도미노사

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

문제

서로 다른 기호가 nn가지 있을 때, 두 기호를 짝지은 순서 없는 쌍은 n(n+1)/2n(n+1)/2가지다. 같은 기호끼리 짝지은 쌍도 여기에 들어간다. 쌍마다 도미노를 하나씩 만들면 한 벌이 되고, 한 벌은 정확히 n(n+1)n(n+1)개의 칸을 덮으므로 nnn+1n+1열 직사각형에 빈틈없이 놓인다.

한 벌을 이렇게 놓은 다음 도미노의 경계를 지우고 칸에 적힌 기호만 남기면 퍼즐이 된다. 아래 그림에서 왼쪽은 0부터 6까지의 수 일곱 가지로 만든 28개짜리 한 벌의 원래 배치이고, 오른쪽은 경계를 지운 퍼즐이다.

퍼즐을 읽어 원래 배치를 복원하는 프로그램을 작성하라. 원래 배치는 항상 존재하고 유일하다.

입력

입력은 퍼즐 여러 개로 이루어진다.

각 퍼즐의 첫 줄에는 정수 nn (2n122 \le n \le 12)이 주어진다. 이어지는 nn개의 줄에는 각각 n+1n+1개의 문자가 공백 하나로 구분되어 주어진다. 문자는 알파벳 소문자 중 앞의 nn개, 곧 a부터 nn번째 글자까지만 쓴다.

n×(n+1)n \times (n+1) 격자는 순서 없는 쌍 n(n+1)/2n(n+1)/2가지를 각각 정확히 한 번씩 놓아 만든 것이고, 격자와 맞아떨어지는 배치는 하나뿐이다.

0 하나만 있는 줄이 나오면 입력이 끝난다.

출력

퍼즐마다 복원한 배치를 입력과 같은 형식으로 출력한다. 다만 가로로 놓인 도미노를 이루는 두 문자 사이에는 공백 대신 등호(=)를 넣는다. 나머지 자리는 공백 하나를 그대로 둔다.

연속한 두 격자 사이에는 빈 줄을 하나 출력하고, 마지막 격자 뒤에는 빈 줄을 출력하지 않는다.