시계 고장 찾기

연속된 LCD 시계 표시가 주어질 때 가능한 모든 시작 시각과 고장 배치에서 항상 꺼진 세그먼트, 항상 켜진 세그먼트, 정상, 미정인 세그먼트를 판별한다.

어려움9구현완전 탐색시뮬레이션아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

ACME 시계 제작소는 불량 액정 표시 장치(LCD) 때문에 오랫동안 항의와 소송에 시달렸다. 경영진은 이제야 품질 관리를 바로잡기로 결정하고, 품질 컨설턴트인 당신에게 시계를 검사해 표시 장치의 고장을 찾아내는 프로그램을 맡겼다.

이 시계는 네 자리를 모두 표준 7세그먼트 LCD로 표시하고, 쌍점 ':'을 그리는 작은 세그먼트가 두 개 더 있다. 시각은 24시간 형식으로 표시한다. 자정 직전 1분은 23:59이고 자정은 0:00이다. 시가 10보다 작으면 맨 앞자리는 세그먼트를 하나도 켜지 않는다. 고장이 없는 시계라면 쌍점 세그먼트 두 개는 항상 켜져 있다.

어떤 시계가 연속한 몇 분 동안 보여 준 화면이 주어진다. 다만 그 화면이 몇 시 몇 분부터 시작하는지는 모른다. 세그먼트 중 일부는 꺼진 채로 고장 나서 다시 켜지지 않고, 일부는 켜진 채로 고장 나서 다시 꺼지지 않는다. 나머지는 정상이다. 각 세그먼트는 이 세 상태 중 하나이고, 상태는 세그먼트마다 독립이다.

주어진 화면을 설명하는 시작 시각과 세그먼트 상태 배치를 모두 생각했을 때, 어떤 세그먼트가 반드시 고장이고 어떤 세그먼트가 반드시 정상인지 판정하라.

화면은 7행 21열이다. 네 자리는 각각 1열부터 4열, 6열부터 9열, 13열부터 16열, 18열부터 21열을 쓰고, 쌍점은 3행과 5행의 11열을 쓴다. 모든 세그먼트를 켠 화면은 다음과 같다.

.XX...XX.....XX...XX.
X..X.X..X...X..X.X..X
X..X.X..X.X.X..X.X..X
.XX...XX.....XX...XX.
X..X.X..X.X.X..X.X..X
X..X.X..X...X..X.X..X
.XX...XX.....XX...XX.

숫자 0부터 9까지의 모양은 다음과 같다. 숫자 사이의 빈 열은 읽기 쉽도록 넣었다.

.XX. .... .XX. .XX. .... .XX. .XX. .XX. .XX. .XX.
X..X ...X ...X ...X X..X X... X... ...X X..X X..X
X..X ...X ...X ...X X..X X... X... ...X X..X X..X
.... .... .XX. .XX. .XX. .XX. .XX. .... .XX. .XX.
X..X ...X X... ...X ...X ...X X..X ...X X..X ...X
X..X ...X X... ...X ...X ...X X..X ...X X..X ...X
.XX. .... .XX. .XX. .... .XX. .XX. .... .XX. .XX.

그림 1: 각 숫자의 LCD 표시.

입력

첫 줄에 연속한 분의 수 nn(1n1001 \le n \le 100)이 주어진다. 이어지는 8n18n - 1개의 줄에 7×217 \times 21 크기의 화면 nn개가 주어지고, 이웃한 두 화면 사이에는 빈 줄이 하나씩 들어간다.

숫자 세그먼트는 문자 두 개로, 쌍점 세그먼트는 문자 한 개로 표시한다. 문자 'X'는 켜진 세그먼트를 뜻한다. 문자 '.'는 그 밖의 모든 경우, 즉 꺼진 세그먼트이거나 어느 세그먼트에도 속하지 않는 위치를 뜻한다. 세그먼트가 아닌 위치에 'X'가 있는 화면은 주어지지 않고, 문자 두 개짜리 세그먼트가 절반만 켜진 화면도 주어지지 않는다.

출력

7×217 \times 21 크기의 화면 하나를 출력한다. 꺼진 채로 고장 난 세그먼트는 '0', 켜진 채로 고장 난 세그먼트는 '1', 반드시 정상인 세그먼트는 'W', 상태를 확정할 수 없는 세그먼트는 '?'로 출력하고, 어느 세그먼트에도 속하지 않는 위치는 '.'로 출력한다. 주어진 화면이 연속한 nn분의 화면이 될 수 없으면 impossible을 출력한다.