격자 위의 블록을 향해 공을 발사해 블록을 깨는 게임은 1976년 아타리가 만든 Breakout 이후 알카노이드를 비롯한 수많은 후속작으로 이어질 만큼 역사가 길다. 현종이와 태현이는 이런 게임 하나의 기록을 두고 경쟁하고 있다. 현종이는 이미 자기 차례를 마쳤고, 태현이의 점수에 따라 누가 벌칙을 받을지 정해진다. 벌칙은 본선 무대의 책상을 혼자 다 설치하는 것이다.
규칙은 단순하다. 게임판은 0≤y≤M, 0≤x≤N인 영역이다. 맨 아래 선분 y=0 위의 한 점에서 공을 왼쪽 위 45도 방향으로 쏘아 올리면, 공은 직진하다가 벽에 닿으면 반사되고 다시 y=0에 도달하는 순간 그 턴이 끝난다. 벽은 세 선분 x=0, x=N, y=M이다. 최초 발사 위치이자 최후 도착 위치인 y=0 선분만 빼고 게임판을 감싸는 선분들이다. 공이 두 벽이 만나는 꼭짓점에 정확히 도달하면 두 벽에서 모두 반사되므로 온 길을 그대로 되돌아간다.
블록은 M행 N열 격자에 딱 맞게 놓여 있다. 블록 하나를 제거하면 1점을 얻는다. 한 블록은 여러 개의 연결된 칸으로 이루어질 수 있고, 연결이란 두 칸이 상하좌우로 맞닿아 있다는 뜻이다. 칸 세 개가 L자로 이어져 한 블록을 이룰 수도 있고 그보다 복잡한 모양일 수도 있다. 맞닿은 두 칸이 서로 다른 블록에 속하는 경우도 있다.
태현이에게는 승부를 가를 마지막 공 한 번이 남았다. 마지막 공에는 특수 능력이 있어서 블록이 없는 것처럼 뚫고 지나가며 그 블록을 부순다. 그래서 블록에 닿았을 때 무슨 일이 일어나는지는 생각하지 않아도 되고, 벽에 부딪혀 튕기며 쓸고 지나갈 블록만 따지면 된다.
공의 경로가 어떤 블록에 속한 칸의 내부를 지나가면 그 블록이 부서진다. 한 블록의 칸을 여러 번 지나가도 점수는 1점이다. 경로가 칸을 꼭짓점 한 점에서만 스치고 지나가면 그 칸의 블록은 부서지지 않는다.
원하는 옆에서 팝콘을 먹다가 태현이가 어디로 쏘면 좋을지 잠깐 고민해 보기로 했다. 게임판의 상태와 발사 위치가 주어질 때 태현이가 부수는 블록의 수를 구하라.
첫 줄에 게임판의 크기를 나타내는 두 정수 N, M (1≤N,M≤100)과 공의 출발 위치 K가 주어진다. K는 0보다 크고 N보다 작으며 0.5의 배수이다.
이어지는 2M+1개의 줄에 게임판의 상태가 한 줄에 2N+1개의 문자씩 주어진다. 각 문자는 +, |, -, B, O, . 중 하나이다.
게임판 입력의 i번째 줄 (1≤i≤2M+1) j번째 칸 (1≤j≤2N+1)에 들어가는 문자는 다음과 같다.
+가 주어진다. 격자를 구분하기 위한 문자이다.B 또는 O가 주어진다. 두 좌표 (j/2−1, M−i/2)와 (j/2, M+1−i/2)를 마주보는 꼭짓점으로 하는 칸을 뜻하며, B는 그 칸에 블록이 있음을, O는 블록이 없음을 뜻한다.|, -, . 중 하나가 주어진다. 이 문자를 사이에 두고 이웃한 두 칸의 관계를 나타낸다. 두 칸에 모두 블록이 있고 그 둘이 하나의 블록이면 .이 주어진다. 그 밖의 경우 i가 홀수면 -, j가 홀수면 |가 주어진다.첫 줄에 마지막 턴에 얻는 점수를 출력한다.
첫 번째 예제의 진행 과정이다.
