거울 환영
시간 제한2초메모리 제한512 MB
단위 격자 선분 위에 놓인 양면 거울들 사이로 (0.75, 0.25)에서 나아간 빛이 벽에 닿거나 출발점으로 돌아올 때까지 추적하여 그 지점을 센티미터 단위로 출력한다.
문제
어느 부자가 보안을 위해서인지 아니면 그냥 재미로 정사각형 방에 거울을 설치했다. 방의 각 변의 길이는 8미터이다. 바닥, 천장, 벽은 특별하지 않지만, 벽이나 수직 칸막이로 방에 거울을 얼마든지 설치할 수 있다.
거울은 모두 너비 1미터, 벽과 같은 높이이고, 양면이 완전히 반사되며, 두께가 없다.
거울을 고정하는 기둥은 방의 모서리, 벽, 방 안에 있다. 기둥의 위치는 1미터 간격으로 놓인 81개의 격자점이다. 거울은 서로 1미터 떨어진 두 기둥 사이에 고정할 수 있다. 기둥을 기호 "+"로 나타내면 방의 구조를 다음과 같이 그릴 수 있다.

바닥 위의 한 위치를 직교좌표계에서 (x, y)로 나타내자. 예를 들어 방의 네 모서리의 좌표는 각각 (0,0), (8,0), (0,8), (8,8)이다. 위치 (x, y)가 방 안에 있으려면 0 ≤ x ≤ 8이고 0 ≤ y ≤ 8이어야 한다. 0 ≤ i ≤ 8, 0 ≤ j ≤ 8인 정수 i, j에 대해 (i, j)는 기둥의 위치를 나타낸다.
어느 날 한 도둑이 천장을 뚫고 들어왔는지 이 방에 침입했다. 그는 (0.75, 0.25)에 서서 거의 방의 중앙을 향해 바라보았다. 정확히는 눈높이가 같은 점 (1, 0.5)를 향해 바라보았다. 그렇다면 그는 시야의 중앙에서 무엇을 보았을까? 그는 다음 중 하나를 보았을 것이다.
- 거울이 하나도 없다면, 그는 (8, 7.5)에 있는 벽을 보았다.
- (8, 7)과 (8, 8)에 있는 두 기둥 사이에 거울이 하나 있다면, 그는 (7.5, 8)에 있는 벽을 보았다. (이 두 기둥을 잇는 선분을 (8, 7)-(8, 8)로 나타내자.)
- (8, 7)-(8, 8), (7, 8)-(8, 8), (0, 0)-(0, 1), (0, 0)-(1, 0)에 거울이 네 개 있다면, 그는 (0.75, 0.25)에서 자기 자신을 보았다.
- (2, 1)-(2, 2), (1, 2)-(2, 2), (0, 0)-(0, 1), (0, 0)-(1, 0)에 거울이 네 개 있다면, 그는 (0.75, 0.25)에서 자기 자신을 보았다.
주어진 거울 배치에서 도둑이 벽이나 자기 자신을 본 위치를 출력하는 프로그램을 작성하시오.
입력
입력은 방에 거울을 어떻게 설치하는지를 나타내는 여러 개의 데이터 세트로 이루어진다. 데이터 세트는 다음 형식으로 주어진다.
n
d1 i1 j1
d2 i2 j2
. . .
dn in jn
첫 번째 정수 n은 거울의 개수이며, 0 ≤ n ≤ 144이다. k번째 (1 ≤ k ≤ n) 거울이 어떻게 고정되는지는 dk와 (ik, jk)로 주어진다. dk는 거울의 방향을 나타내며 'x' 또는 'y'이다. dk가 'x'이면 거울은 (ik, jk)-(ik + 1, jk)에 고정된다. dk가 'y'이면 거울은 (ik, jk)-(ik, jk + 1)에 고정된다. 입력의 끝은 음의 정수로 나타낸다.
출력
각 데이터 세트마다 도둑이 벽이나 자기 자신을 본 위치 (x, y)를 출력한다. 위치는 x와 y를 각각 센티미터 단위의 정수로 나타내어 하나의 공백으로 구분한 한 줄에 출력한다. 여분의 줄이나 공백이 있어서는 안 된다.