제한된 대응
시간 제한1초메모리 제한1024 MB
최대 11개의 문자열 쌍이 주어질 때, 선택한 서로 다른 쌍들의 왼쪽 문자열 연결과 오른쪽 문자열 연결이 같아지는 가장 짧은 수열을 찾고, 길이가 같으면 사전순으로 앞선 것을 고른다.
문제
폴란드 수학자 Emil은 영국 친구 Alan에게 간단한 퍼즐을 우편으로 보냈다. Alan은 그런 사소한 일에 쓸 무한한 시간이 없다는 답장을 보냈다. Emil은 퍼즐을 조금 더 제한된 형태로 바꾸어 다시 Alan에게 보냈고, Alan은 그 퍼즐을 풀었다.
Emil이 처음 보낸 퍼즐은 다음과 같다. 문자열 쌍의 수열 가 주어질 때, 다음을 만족하는 비어 있지 않은 수열 을 찾아라.
여기서 는 문자열 연결을 나타낸다. Emil이 다시 보낸 수정된 퍼즐에는 다음 제한이 추가되었다. 모든 에 대해 이다. Emil의 원래 퍼즐을 풀 시간은 없다. 수정된 버전을 풀 수 있겠는가?
입력
각 테스트 케이스는 정수 이 있는 한 줄로 시작하고, 이어서 개의 줄이 주어진다. 개의 줄 각각은 쌍을 나타내는 두 개의 공백으로 구분된 소문자 알파벳 문자열을 포함한다. 각 문자열의 길이는 최대 100자이다.
출력
각 케이스마다 케이스 번호를 출력하고, 그 뒤에 찾은 수열을 출력한다(수열을 만들 수 있는 경우). 만들 수 없다면 “IMPOSSIBLE”을 출력한다. 가능한 수열이 여러 개라면 가장 짧은 것(출력의 길이 기준)을 선택해야 한다. 가장 짧은 수열이 여러 개라면 사전 순으로 가장 앞선 것을 선택한다. 출력 형식은 샘플 출력을 따른다.