천장에 달린 카메라가 어느 공무원의 책상 위에 놓인 서류들을 위에서 내려다보며 사진 한 장으로 찍었다. 서류들은 서로 많이 겹쳐 있지만, 이 공무원은 정리광이라 모든 서류가 책상의 변과 평행하도록 반듯하게 놓여 있다.
분석의 준비 단계로, 다른 프로그램들이 종이의 색·경계선 등의 단서를 이용해 사진의 각 픽셀에 그 위치에서 보이는 서류가 무엇인지 이미 라벨을 붙여 두었다. 그 결과는 대략 다음과 같다.
...aaaaaaaa.dd
...aaaaaaaa.ee
.ccaaaaaaaa...
.ccaaaabbaa...
.ccaaaabbaa...
.ccaaaabbaa...
.ccaaaaaaaa...
..............
'.'는 아무것도 없는 책상 바닥을 나타내고, 소문자 'a', 'b', 'c', ...는 서로 다른 서류를 나타낸다. 라벨은 임의의 순서로 붙지만 중간에 건너뛰는 문자 없이 연속적으로 사용된다.
모든 서류는 직사각형이며, 픽셀과 픽셀 '사이'에서 잃어버리는 정보는 없고, 카메라는 책상 전체를 담았으며, 완전히 가려져 전혀 보이지 않는 서류는 없다고 가정한다.
각 서류에 대해(라벨 순서대로), 그 서류 전체가 보인다는 것이 시각적 증거로 확실히 증명되는지, 아니면 일부가 다른 서류 밑에 가려져 있을 가능성이 조금이라도 있는지를 판정하라.
입력은 여러 개의 스냅숏으로 이루어진다.
각 스냅숏은 두 정수 $R$과 $C$가 적힌 줄로 시작한다. 각각 스냅숏의 행 수와 열 수를 뜻하며 $1 \le R, C \le 40$이다.
그다음 $R$개의 줄에는 각각 $C$개의 문자가 들어 있다. 각 문자는 소문자 알파벳이거나 마침표('.')이다. 알파벳은 서로 다른 서류의 보이는 부분을, 마침표는 책상 바닥 부분을 나타낸다.
모든 스냅숏은 직사각형 서류들의 유효한 배치에 대응한다. 불가능한 배치는 주어지지 않는다.
마지막 스냅숏 다음에는 공백으로 구분된 두 개의 0이 적힌 줄이 온다.
각 스냅숏마다 한 줄을 출력한다. 그 줄은 "Uncovered:"라는 단어와 공백 한 칸으로 시작한다. 이어서 같은 줄에, 전체가 확실히 보이는 서류들을 문자 코드 순서로 공백 없이 나열한다.