Класи#8183

Класи

1 секунда
128 мегабайтів
Легка

У своїх мемуарах комік Джон Кліз з іронією описує відмінності між соціальними класами, порівнюючи походження своїх батьків: його батько належав до класу «середній-середній-середній-нижній-середній», а мати — до класу «вищий-вищий-нижній-середній». Подібні тонкі відмінності нерідко вводять в оману, тому вам пропонується написати програму, яка сортує людей за їхнім соціальним класом, щоб наочно відобразити ці відмінності.

Існує три основних рівні: (вищий), (середній) та (нижній). Очевидно, що клас вищий за , а вищий за . Однак усередині кожного рівня також можливі уточнення. Наприклад, клас upper-upper вищий за middle-upper, який, своєю чергою, вищий за lower-upper. При цьому будь-який клас, що закінчується на , вищий за будь-який клас, що закінчується на .

Аналогічно, всередині складніших позначень можуть зустрічатися додаткові рівні, наприклад lower-middle-upper-middle-upper. При порівнянні класів, якщо рівні мають різну довжину, відсутні рівні слід вважати рівними . Таким чином, класи та middle-upper вважаються еквівалентними, так само як middle-middle-lower-middle та lower-middle.

Вхідні дані

Перший рядок містить ціле число n~(1 \le n \le 1000) — кількість людей.

Кожен із наступних рядків містить ім'я людини (непорожній рядок із малих латинських літер), двокрапку, пробіл та опис класу. Опис класу складається з одного або кількох модифікаторів, за якими слідує слово class. Усі частини розділені одинарними пробілами. Кожен модифікатор має одне зі значень: upper, middle або lower. Гарантується, що вхідні дані коректні та всі імена різні. Довжина кожного рядка не перевищує символів.

Вихідні дані

Виведіть імен, по одному в рядку, у порядку від найвищого класу до найнижчого. Якщо кілька людей належать до одного класу, виведіть їхні імена в лексикографічному порядку.

Приклади

Приклад 1

Loading
Loading