글자 주사위

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

이 문제는 Randall L. Whipkey가 만든 퍼즐을 바탕으로 한다.

글자 주사위 놀이에는 주사위 여러 개가 있다. 주사위의 각 면에는 알파벳이 한 글자씩 적혀 있고, 같은 글자는 주사위 집합 전체에서 두 번 나오지 않는다. 한 집합의 주사위는 많아야 4개이므로 알파벳 26자 중 많아야 24자가 쓰인다.

주사위를 늘어놓고 돌려서 윗면의 글자를 왼쪽부터 읽으면 문자열 하나가 만들어진다. 실제 단어가 나오면 퍼즐이 더 재미있지만, 대문자로만 이루어진 문자열이면 무엇이든 똑같이 다룬다.

어떤 주사위 집합으로 만들 수 있는 문자열이 주어진다. 각 주사위에 어떤 글자가 적혀 있는지 알아내라.

주사위 집합은 정규형으로 적는다. 주사위 하나의 여섯 글자를 알파벳 순으로 늘어놓아 문자열을 만들고, 그렇게 얻은 여섯 글자짜리 문자열을 다시 알파벳 순으로 나열하되 사이마다 공백 하나를 둔다.

주어진 문자열에 한 번도 나오지 않는 글자가 하나 있을 때가 있다. 이때는 문자열만으로 그 글자의 자리를 정할 수 없으므로 그 글자가 무엇인지 따로 알려주며, 이 힌트만 있으면 자리를 정할 수 있다.

입력

입력은 데이터 집합 1개 이상 20개 이하로 이루어진다. 각 데이터 집합의 첫 줄에는 양의 정수 nn (6n306 \le n \le 30)과 문자 cc가 주어진다. 이어지는 nn개 줄에는 대문자로만 이루어진 문자열이 한 줄에 하나씩 주어진다. nn개 문자열의 길이는 모두 같고, 그 길이를 kk라 하면 2k42 \le k \le 4이다. 마지막 데이터 집합 다음 줄에는 0만 적힌 줄이 온다.

한 데이터 집합이 나타내는 주사위 kk개에는 서로 다른 글자 6k6k개가 적혀 있다. 이 6k6k개가 모두 nn개 문자열에 나타나면 cc는 하이픈 '-'이다. 그렇지 않으면 주사위의 글자 중 정확히 하나가 문자열에 나타나지 않고, cc가 바로 그 글자다.

출력

데이터 집합마다 한 줄씩, 그 주사위 집합의 정규형을 출력한다. 즉 여섯 글자짜리 문자열 kk개를 각각 글자를 알파벳 순으로 정렬해서 만들고, 문자열끼리도 알파벳 순으로 공백 하나씩 두고 출력한다.

모든 데이터 집합의 답은 하나뿐이다.