올림피아드 등록
면접 대비시간 제한2초메모리 제한512 MB
각 행은 두 가지 순서 중 하나로 기록되었고, 이름이 최소 두 번 등장한다는 조건을 이용해 각 참가자의 성, 이름, 부칭을 알아낸 뒤 성을 기준으로 정렬하는 문제입니다.
문제
페티아와 바샤는 프로그래밍 올림피아드를 준비한다. 참가자가 너무 많아서 모두 등록시키려면 페티아와 바샤가 둘이서 함께 일해야 했다.
등록하려면 각 참가자가 자신의 이름, 성, 부칭을 말하고, 페티아와 바샤는 그 정보를 공용 전자 표에 적는다. 참가자는 많고 준비할 시간은 부족해서 페티아와 바샤는 표에 참가자 데이터를 기록하는 형식을 미리 정하지 못했고, 즉석에서 처리해야 했다. 페티아는 각 참가자에 대해 성, 이름, 부칭 순으로 적기로 했고, 바샤는 이름, 부칭, 성 순으로 적기로 했다.
등록이 끝난 뒤, 이 표로는 올림피아드 결과를 정리할 수 없다는 것이 분명해졌다. 참가자가 자신을 찾기 불편할 것이기 때문이다. 그래서 표를 다음과 같은 형태로 바꾸기로 했다.
- 모든 참가자에 대해 성을 먼저 쓰고, 그다음 이름, 그다음 부칭을 쓴다.
- 표의 참가자는 성을 기준으로 사전순으로 정렬한다.
사전순은 사전의 순서와 같다. 단어는 첫 글자, 그다음 두 번째 글자 순으로 비교한다. 어떤 단어의 해당 글자가 다른 단어의 글자보다 작으면 그 단어가 사전순으로 더 작다. 끝까지 차이가 발견되지 않아 한 단어가 다른 단어의 접두사이면, 그 단어가 더 작다고 본다.
페티아와 바샤는 모든 참가자의 성이 서로 다르고, 각 이름은 적어도 두 번 나타난다는 것을 알아냈다. 또한 어떤 이름도 어떤 참가자의 성이나 부칭이 아니며, 마찬가지로 어떤 성과 부칭도 일치하지 않는다.
이 정보를 이용해 표를 원하는 형태로 바꾸도록 도와주자.
입력
첫째 줄에 전자 표의 전체 기록 수 ()이 주어진다. 다음 개 줄에 각각 세 단어 , , 가 주어진다. 각 단어는 1개 이상 20개 이하의 라틴 문자로 이루어지며, 첫 글자는 대문자이고 나머지 글자는 모두 소문자이다. 각 줄은 페티아나 바샤가 적은 기록 하나에 해당한다. 단어는 공백 하나로 구분된다.
출력
개 줄을 출력한다. 각 참가자에 대해 성, 이름, 부칭 순으로 쓰고, 모든 기록을 사전순으로 정렬한 전자 표를 출력한다.