깊이 순서
시간 제한1초메모리 제한128 MB
겹쳐진 직사각형들의 픽셀 영상이 가능한 배치인지 판정하고 질의한 직사각형이 가질 수 있는 깊이 순서 범위를 구합니다.
문제
물체들을 사진으로 찍으면 이미지가 만들어진다. 이미지는 물체들을 담고 있지만, 물체 공간에 대한 정보의 일부는 이미지에서 사라질 수 있다. 이렇게 사라진 정보를 복원하는 일은 흥미롭고 때로는 까다롭다.
다음 시나리오를 가정한다.
- [A1] 이미지는 방향에서 직사각형들을 촬영하여 얻는다. 각 직사각형의 변은 축 또는 축과 평행하고, 각 직사각형의 면은 평면과 평행하다.
- [A2] 직사각형들의 좌표는 모두 다르다. 직사각형들의 깊이 순서는 부터 까지 번호를 매기며, 가장 위(즉 좌표가 가장 작은 것)에 있는 직사각형의 순서가 이다.
각 직사각형의 깊이 정보(좌표)는 이미지에 나타나지 않지만, 두 직사각형 중 어느 것이 위에 있는지 추론할 수 있는 경우가 있다(물론 추론할 수 없는 경우도 있다). 예를 들어 그림 1에서는 점선 직사각형 이 짙은 색 직사각형 위에 있음을 쉽게 알 수 있다. 이때 "이 위에 있다", "가 아래에 있다"고 말한다. [A2]에 따르면 의 깊이 순서는 , 의 깊이 순서는 이다.

그림 1
[A1] 때문에 위/아래 관계는 추이적이다. 즉 이 위에 있고 가 위에 있으면 이 위에 있다고 결론지을 수 있다. 그림 2에서는 회색 직사각형 가 위에 있고 이 위에 있으므로, 점선 직사각형 이 짙은 색 직사각형 위에 있다고 결론지을 수 있다. 반면 오른쪽 아래 직사각형 에 대해서는 아무 정보도 얻을 수 없다. 이런 경우 와 다른 어떤 직사각형 사이의 깊이 순서도 추론할 수 없다고 말한다. 마찬가지로 짙은 색 직사각형 와 가로줄로 채워진 직사각형 사이의 깊이 순서도 추론할 수 없다. [A2]에 따르면 의 깊이 순서는 또는 , 는 또는 , 는 , , 중 하나, 는 , , 중 하나, 는 부터 까지 중 어느 것이든 될 수 있다.

그림 2
모든 이미지가 유효한 것은 아니다. 그림 3은 [A1]과 [A2] 가정 아래에서는 얻을 수 없는 "불가능한" 이미지의 예를 보여준다.

그림 3
이미지 하나와 추가로 직사각형 가 주어진다. 이미지가 [A1]과 [A2] 아래에서 얻을 수 없는 것이면 IMPOSSIBLE을 출력한다. 그렇지 않으면 두 정수 와 ()를 출력한다. 여기서 의 깊이 순서가 가질 수 있는 가장 넓은 범위가 이다.
입력
입력은 개의 테스트 케이스로 이루어진다. 입력의 첫 줄에 가 주어진다.
각 테스트 케이스의 첫 줄에는 세 정수 , , (; )가 공백으로 구분되어 주어진다. 은 직사각형의 개수이고, 와 는 각각 이미지의 너비와 높이이다.
이어지는 개의 줄에는 각각 개의 픽셀이 공백으로 구분되어 주어진다. 각 픽셀은 배경을 나타내는 기호 $이거나, 직사각형을 나타내는 a, b, ..., z, A, B, ..., Z 중 한 글자이다. 대문자와 소문자는 서로 다른 것으로 구분한다. 가장 작은 직사각형은 까지 작을 수 있다.
각 테스트 케이스의 마지막 줄에는 글자 가 주어진다. 이는 깊이 순서의 가장 넓은 범위를 출력해야 하는 직사각형이다.
출력
각 테스트 케이스에 대해, 이미지가 [A1]과 [A2] 아래에서 얻을 수 없는 것이면 한 줄에 IMPOSSIBLE을 출력한다.
그렇지 않으면 두 정수 와 ()를 하나의 공백으로 구분하여 출력한다. 여기서 의 깊이 순서가 가질 수 있는 가장 넓은 범위가 이다.