펀 하우스

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

American Carnival Makers Inc.(ACM)는 오랫동안 놀이기구와 어트랙션을 설계해 온 회사다. 그중 인기 있는 시설이 거울의 방이 딸린 펀 하우스다. 이 회사의 특징은 입구에서 앞을 바라보면 출구가 정면에 있는 것처럼 보이도록 방을 꾸미는 것이다. 방 곳곳에는 45도로 기울어진 양면 거울이 서 있어서 출구는 어느 벽에나 생길 수 있다. 무대 디자이너는 입구와 거울만 배치하고 출구는 끝내 표시하지 않는다. 원래 설계도를 받아 출구 자리를 정하는 것이 시공 팀인 당신의 일이다.

방은 문자 격자로 주어진다. 별표(*)는 입구, 소문자 x는 벽, 빗금(/)과 역빗금(\)은 거울, 마침표(.)는 아무것도 가로막지 않는 빈칸이다. 출구는 앰퍼샌드(&)로 표시한다. 입력 도면에는 출구 자리에 아직 x가 놓여 있으므로, 알맞은 x 하나를 &로 바꾸면 된다.

빛은 입구에서 방 안쪽으로 곧게 들어가고 거울을 만날 때마다 90도 꺾인다. /를 만난 빛은 동쪽에서 북쪽으로, 북쪽에서 동쪽으로, 서쪽에서 남쪽으로, 남쪽에서 서쪽으로 꺾인다. \를 만난 빛은 동쪽에서 남쪽으로, 남쪽에서 동쪽으로, 서쪽에서 북쪽으로, 북쪽에서 서쪽으로 꺾인다. 빛이 처음 닿는 벽이 출구다.

입구와 출구는 어느 벽에나 놓일 수 있지만 모서리에는 놓이지 않는다. 그리고 출구가 입구와 같은 칸이 되는 일은 물리적으로 불가능하다. (왜 그런지 이해할 필요는 없지만, 한번 생각해 보면 재미있다.)

입력

각 방 앞에는 정수 두 개 WWLL이 주어진다. WW는 바깥 벽을 포함한 방의 너비로 5W205 \le W \le 20이고, LL은 바깥 벽을 포함한 방의 길이로 5L205 \le L \le 20이다. 이어서 LL개의 줄에 방 도면이 주어지며, 각 줄은 *, x, ., /, \ 다섯 문자 중 WW개로 이루어진다. 테두리는 입구를 나타내는 별표 하나를 빼면 모두 벽이고, 출구는 아직 표시되어 있지 않다. 0이 두 개 적힌 줄이 나오면 입력이 끝난다.

출력

방마다 먼저 HOUSE, 공백 하나, 그 방의 번호를 한 줄에 출력한다. 번호는 1부터 시작해 입력에 나온 순서대로 매긴다. 그 다음 줄부터는 출구를 앰퍼샌드(&)로 표시한 방 도면을 출력한다.

C++과 Java에서는 역빗금(\)이 문자 리터럴과 문자열 리터럴 안에서 이스케이프 문자로 쓰인다. 소스 코드에서 역빗금 한 개를 나타내려면 \\라고 써야 한다.