우리는 영어 알파벳의 보통 순서를 알고 있고, 그래서 단어나 다른 문자열을 정렬할 수 있다. 예를 들어 다음 단어는 정렬된 상태다.
ANTLER
ANY
COW
HILL
HOW
HOWEVER
WHATEVER
ZONE
문자열을 정렬할 때는 다음 규칙을 쓴다.
은하 반대편의 고렐리안은 우리 전파에서 영어 문장 표본을 여럿 찾아냈지만, 우리 알파벳의 순서까지는 알아내지 못했다. 매우 조직적이고 질서를 중시하는 종족이라 영어라는 낯선 기호로 적힌 단어에도 순서를 매기고 싶어 한다. 그래서 자기들만의 순서를 정해야 한다. 안타깝게도 의견이 하나로 모이지 않아서, 고렐리안의 해가 바뀔 때마다 논쟁을 벌인 끝에 새 순서로 합의한다.
예를 들어 다음 순서로 합의했다고 하자.
UVWXYZNOPQRSTHIJKLMABCDEFG
그러면 위 단어는 이렇게 정렬된다.
WHATEVER
ZONE
HOW
HOWEVER
HILL
ANY
ANTLER
COW
단어의 첫 글자는 고렐리안의 알파벳 순서를 따른다. 앞부분이 같은 단어끼리는 처음으로 달라지는 글자가 순서를 결정하므로, 고렐리안의 알파벳에서 Y가 T보다 앞이라서 ANY가 ANTLER보다 앞에 온다. HOW는 HOWEVER의 앞부분이므로 HOWEVER는 여전히 HOW 뒤에 온다.
해마다 달라지는 알파벳 순서를 손으로(또는 촉수로) 처리하기는 번거롭다. 주어진 순서를 알파벳 순서로 삼아 정렬하는 프로그램을 작성하라.
입력은 하나 이상의 데이터 집합으로 이루어진다. 각 데이터 집합의 첫 줄에는 정수 n과 문자열 s가 주어진다. s는 영어 대문자 알파벳 26글자를 한 번씩 늘어놓은 순열이고, 다가오는 해에 고렐리안이 쓸 알파벳이다. 이어지는 n개의 줄에는 비어 있지 않은 문자열이 한 줄에 하나씩 주어진다(1≤n≤20). 각 문자열의 길이는 30을 넘지 않는다. 마지막 데이터 집합 다음에는 0만 있는 줄이 온다.
각 데이터 집합마다 먼저 year 다음에 공백 하나와 데이터 집합 번호를 붙인 줄을 출력한다. 번호는 1부터 센다. 그다음 n개의 줄에 입력 문자열을 s가 정한 알파벳 순서로 정렬해 한 줄에 하나씩 출력한다.