몰로코의 탭 타이탄즈 (쉬움)

n x n 흑백 판에서 한 번 누르면 같은 색으로 연결된 영역 전체가 뒤집힌다. 판 전체를 한 색으로 만드는 최소 탭 수를 구한다.

보통6그래프BFS동적 계획법비트 연산면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

몰로코 직원 중에는 'Tap Titanz' 같은 클리커 게임을 하는 사람이 있다.

Tap Titanz에서 플레이어는 각 칸이 검은색 또는 흰색인 n×nn \times n 체스판을 받는다. 두 칸이 변을 맞대고 있으면 두 칸은 인접하다고 한다. 한 칸에서 다른 칸까지 같은 색 인접 칸만 밟고 갈 수 있으면 두 칸은 연결되어 있다고 한다. 따라서 연결된 두 칸의 색은 항상 같다.

플레이어가 한 칸을 탭하면 그 칸의 색이 바뀌고, 그 칸과 같은 색으로 인접한 칸, 다시 그 칸과 같은 색으로 인접한 칸의 색도 바뀐다. 정리하면 탭한 칸과 그 칸에 연결된 모든 칸의 색이 동시에 바뀐다.

이 게임의 목표는 판의 모든 칸을 같은 색(검은색이든 흰색이든)으로 만드는 것이고, 탭 횟수는 최소여야 한다.

입력

첫째 줄에 정수 nn이 주어진다. (1n151 \le n \le 15)

다음 nn개의 줄에는 체스판의 각 행을 나타내는 길이 nn의 문자열이 위에서부터 차례로 주어진다. 각 문자열은 검은색을 뜻하는 'B'와 흰색을 뜻하는 'W'로만 이루어져 있다.

출력

모든 칸을 같은 색으로 만드는 데 필요한 최소 탭 횟수를 정수 하나로 출력한다.