문자 판독
시간 제한2초메모리 제한512 MB
두 이진 이미지가 같은 문자를 나타내는지 판정한다. 연결 요소의 개수와 각 요소 사이의 둘러쌈 관계를 비교해 위상적으로 같은 구조인지 확인한다.
문제
정체를 알 수 없는 조직이 남긴 이미지 데이터가 발견되었다. 당신은 이 데이터를 분석해야 한다. 조직원은 스스로 만든 문자를 썼고, 이진 이미지 한 장에는 흰 종이에 검은 잉크로 쓴 문자 하나가 들어 있다.
겉모습이 다른 이미지가 같은 문자를 나타내는 경우가 많다. 두 이미지가 같은 문자를 나타내는지는 연결 성분 사이의 둘러싸기 관계로 판정한다. 정의는 다음과 같다. 주어진 이미지의 바깥은 모두 흰 픽셀로 채워져 있다고 가정한다.
- 흰색 연결 성분: 가로나 세로로 이어진 흰 픽셀의 집합.
- 검은색 연결 성분: 가로, 세로, 대각선으로 이어진 검은 픽셀의 집합.
- 연결 성분: 흰색 연결 성분 또는 검은색 연결 성분.
- 배경 성분: 이미지 바깥의 픽셀을 포함하는 연결 성분. 따라서 이미지 가장자리에 있는 흰 픽셀은 모두 배경 성분에 속한다.
흰 픽셀의 연결성.
검은 픽셀의 연결성.
이미지의 연결 성분 하나를 , 같은 이미지에서 색이 반대인 다른 연결 성분을 라고 하자. 에도 에도 속하지 않는 픽셀을 모두 의 색으로 바꾼 이미지를 생각한다. 과 가 둘 다 배경 성분이 아니면 이미지 바깥의 픽셀도 의 색으로 바꾼다. 이렇게 바꾼 이미지에서 의 픽셀이 배경 성분에 하나도 속하지 않으면, 원래 이미지에서 이 를 둘러싼다고 한다.

다음 두 조건을 모두 만족하면 두 이미지는 같은 문자를 나타낸다.
- 두 이미지의 연결 성분 개수가 같다.
- 두 이미지의 연결 성분 집합을 각각 , 라고 할 때 다음 조건을 만족하는 전단사 함수 가 존재한다.
- 에 속하는 모든 연결 성분 에 대하여 의 색은 의 색과 같다.
- 에 속하는 모든 , 에 대하여, 이 를 둘러싸는 것과 이 를 둘러싸는 것은 서로 필요충분조건이다.
아래 그림에 있는 두 이미지의 연결 성분은 다음 둘러싸기 관계를 이룬다.
- 이 를 둘러싼다.
- 가 을 둘러싼다.
- 가 를 둘러싼다.
- 이 를 둘러싼다.
- 가 을 둘러싼다.
- 가 를 둘러싼다.
전단사 함수를 로 잡으면 위 두 조건을 모두 만족하므로 두 이미지는 같은 문자를 나타낸다.


주어진 두 이미지가 같은 문자를 나타내는지 판정하는 프로그램을 작성하시오.
입력
입력은 데이터 집합 최대 200개로 이루어진다. 0이 두 개 적힌 줄이 나오면 입력이 끝난다. 각 데이터 집합의 형식은 다음과 같다.
image 1
image 2
각 이미지의 형식은 다음과 같다.
h w
p(1,1) ... p(1,w)
...
p(h,1) ... p(h,w)
와 는 이미지의 세로와 가로 픽셀 수이고, , 이다. 이어지는 개의 줄에는 각각 문자 개가 구분자 없이 붙어서 주어진다. 는 위에서 번째 줄, 왼쪽에서 번째 픽셀의 색이다. 마침표(".")는 흰색을, 샵 기호("#")는 검은색을 뜻한다.
출력
각 데이터 집합마다 두 이미지가 같은 문자를 나타내면 yes를, 그렇지 않으면 no를 한 줄에 출력한다. 다른 문자는 출력하지 않는다.



