Classy

세부 등급이 없는 자리는 middle로 간주해 계급 순으로 사람을 정렬하고 동률은 이름순으로 출력합니다.

쉬움3정렬문자열구현면접 대비아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

코미디언 존 클리스는 회고록에서 아버지를 middle-middle-middle-lower-middle 계급, 어머니를 upper-upper-lower-middle 계급이라고 적었다. 이렇게 잘게 나뉜 계급은 서로 구분하기 어렵다. 사람들을 계급이 높은 순서로 정렬하는 프로그램을 작성하라.

기본 계급은 upper, middle, lower 세 가지다. upper가 가장 높고 lower가 가장 낮다. 같은 기본 계급 안에서도 등급이 갈린다. upper-upper는 middle-upper보다 높고, middle-upper는 lower-upper보다 높다. 다만 upper에 속하는 upper-upper, middle-upper, lower-upper는 모두 어떤 middle 계급보다도 높다.

세분한 계급을 다시 세분할 수 있어서 lower-middle-upper-middle-upper 같은 계급도 나온다. 두 계급을 비교하다가 한쪽의 세부 단계가 먼저 끝나면, 남은 단계는 모두 middle로 본다. 그래서 upper 계급과 middle-upper 계급은 같은 계급이고, middle-middle-lower-middle 계급과 lower-middle 계급도 같은 계급이다.

입력

첫째 줄에 사람 수 nn이 주어진다 (1n10001 \le n \le 1\,000).

다음 nn개 줄에는 사람의 이름, 콜론, 공백, 그 사람의 계급이 차례로 주어진다. 이름은 소문자 한 개 이상으로 이루어진다. 계급은 수식어 한 개 이상과 단어 class로 이루어지고, 콜론과 수식어와 class는 공백 하나로 구분된다. 수식어는 upper, middle, lower 중 하나다. 마지막 수식어가 기본 계급이고, 그 앞의 수식어는 바로 뒤 수식어를 한 단계 더 세분한다. 이름이 같은 사람은 없다. 입력의 각 줄은 256자를 넘지 않는다.

출력

nn명의 이름을 계급이 높은 순서로 한 줄에 하나씩 출력한다. 계급이 같은 사람은 이름의 사전순으로 출력한다.