크기가 $1 \times 1$인 정사각형 칸으로 이루어진 $W \times H$ 크기의 지도가 있다. 각 칸은 빈 칸이거나 벽이며, 그중 두 칸은 문자 C로 표시되어 있다.
C로 표시된 두 칸을 레이저로 연결하려고 한다. 레이저는 C에서 상·하·좌·우 중 한 방향으로 발사되며, 빈 칸에 거울 / 또는 \를 설치하면 그 칸에서 레이저의 진행 방향을 90도 꺾을 수 있다. 벽이 있는 칸으로는 레이저가 지나갈 수 없다.
두 C를 레이저로 연결하기 위해 설치해야 하는 거울 개수의 최솟값을 구하는 프로그램을 작성하시오.
아래 그림은 $H = 8$, $W = 7$인 예시로, 빈 칸은 ., 벽은 *로 나타냈다. 왼쪽은 초기 상태이고, 오른쪽은 거울을 최소 개수만큼 사용하여 두 C를 연결한 모습이다.
7 . . . . . . . 7 . . . . . . .
6 . . . . . . C 6 . . . . . /-C
5 . . . . . . * 5 . . . . . | *
4 * * * * * . * 4 * * * * * | *
3 . . . . * . . 3 . . . . * | .
2 . . . . * . . 2 . . . . * | .
1 . C . . * . . 1 . C . . * | .
0 . . . . . . . 0 . \-------/ .
0 1 2 3 4 5 6 0 1 2 3 4 5 6
첫째 줄에 지도의 가로 크기 $W$와 세로 크기 $H$가 주어진다. ($1 \le W, H \le 100$)
둘째 줄부터 $H$개의 줄에 걸쳐 지도가 주어지며, 각 줄은 $W$개의 문자로 이루어진다. 각 문자의 의미는 다음과 같다.
.: 빈 칸*: 벽C: 레이저로 연결해야 하는 칸C는 항상 정확히 두 개이며, 두 칸을 레이저로 연결할 수 있는 입력만 주어진다.
두 C를 연결하기 위해 설치해야 하는 거울 개수의 최솟값을 첫째 줄에 출력한다.