레이저 통신

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

문제

크기가 $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를 연결하기 위해 설치해야 하는 거울 개수의 최솟값을 첫째 줄에 출력한다.