소 미인 대회

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

문제

농부 존은 최신 유행이 등에 반점이 두 개 있는 소라는 말을 듣고, 반점이 두 개인 소들을 한 무리 통째로 사들였다. 그런데 유행은 빠르게 바뀌어서, 이제 가장 인기 있는 것은 반점이 하나뿐인 소가 되어 버렸다!

존은 소들을 다시 유행에 맞추기 위해, 각 소의 두 반점이 하나로 합쳐지도록 색을 칠하려고 한다. 소의 가죽 무늬는 $N \times M$ 크기의 문자 격자로 주어진다 ($1 \le N, M \le 50$).

................
..XXXX....XXX...
...XXXX....XX...
.XXXX......XXX..
........XXXXX...
.........XXX....

X는 반점의 일부이다. 두 X가 상하 또는 좌우로 인접하면 같은 반점에 속한다(대각선으로 맞닿은 것은 인접으로 치지 않는다). 따라서 위 가죽에는 정확히 두 개의 반점이 있다. 무리의 모든 소는 반점이 정확히 두 개이다.

존은 가능한 한 적게 칠해서 두 반점을 하나로 합치고 싶다. 위 예에서는 X를 세 칸만 더 칠하면 된다(아래에서 새로 칠한 칸은 보기 쉽도록 *로 표시했다).

................
..XXXX....XXX...
...XXXX*...XX...
.XXXX..**..XXX..
........XXXXX...
.........XXX....

두 반점이 하나의 반점으로 합쳐지도록 새로 칠해야 하는 X의 최소 개수를 구하여라.

입력

  • 첫째 줄: 공백으로 구분된 두 정수 $N$과 $M$.
  • 둘째 줄부터 $N+1$째 줄까지: 각 줄은 X.로 이루어진 길이 $M$의 문자열이며, 가죽 무늬의 한 행을 나타낸다.

출력

  • 무늬가 하나의 반점이 되도록 새로 칠해야 하는 X의 최소 개수를 한 줄에 출력한다.

힌트

입력 무늬에는 서로 다른 두 반점이 있으며, 아래에서 각각 12로 표시하였다.

................
..1111....222...
...1111....22...
.1111......222..
........22222...
.........222....

새로운 X 세 칸이면 두 반점을 하나로 이을 수 있다.

................
..1111....222...
...1111X...22...
.1111..XX..222..
........22222...
.........222....