Pejntbrasz

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

문제

카롤렉은 크리스마스 선물로 컴퓨터를 받았습니다. 하지만 산타에게 보낸 편지에 게임도 함께 넣어 달라고 적어 두지 않은 탓에, 지뢰 찾기와 카드놀이(솔리테어)만으로 만족해야 했습니다. 그러던 어느 날, 앞의 두 게임보다 훨씬 흥미로운 프로그램 하나를 발견했습니다.

바로 흑백 그림을 그리는 간단한 프로그램 Pejntbrasz입니다. 이 프로그램으로는 직사각형 모양의 흑백 그림을 만들 수 있습니다. 크기가 h×wh \times w인 그림은 정사각형 픽셀 h×wh \times w개로 이루어집니다. 카롤렉이 가장 마음에 들어 한 기능은 색 채우기 도구였고, 여기에서 새로운 게임을 떠올렸습니다. 규칙은 간단합니다. 흑백 그림이 주어졌을 때, 색 채우기 연산을 되도록 적게 사용하여 모든 픽셀을 같은 색으로 만드는 것입니다.

주어진 그림에 대해 게임을 끝내는 데 필요한 색 채우기 연산의 최소 횟수를 구하는 프로그램을 작성하세요.

색 채우기 도구의 자세한 동작

두 픽셀이 변을 공유하면 서로 인접한다고 합니다. 두 픽셀 pAp_A, pBp_B가 연결되어 있다는 것은, 같은 색 픽셀들의 나열 pA=p0,p1,,pk=pBp_A = p_0, p_1, \dots, p_k = p_B가 존재하여 모든 0i<k0 \le i < k에 대해 pip_ipi+1p_{i+1}이 서로 인접함을 뜻합니다. 영역이란 서로 연결된 픽셀들의 극대 집합입니다. 색 채우기 도구를 쓰려면 그림에서 픽셀 하나를 고릅니다. 그러면 고른 픽셀이 속한 영역의 모든 픽셀의 색이 한꺼번에 바뀝니다.

입력

첫째 줄에 그림의 높이와 너비를 나타내는 두 양의 정수 hhww가 주어집니다. 그림의 픽셀 수는 500500을 넘지 않습니다(즉 h×w500h \times w \le 500). 이어지는 hh개의 줄에 그림이 주어지며, 각 줄에는 문자 ww개가 있습니다. '.'는 흰색 픽셀을, 'X'는 검은색 픽셀을 나타냅니다.

출력

모든 픽셀을 같은 색으로 만드는 데 필요한 색 채우기 연산의 최소 횟수를 한 줄에 출력합니다.