바둑

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

문제

N×NN \times N 크기의 바둑판이 있다. 흰돌은 o, 검은돌은 x, 빈 칸은 .으로 나타낸다. 처음 주어지는 바둑판에서는 어떤 두 흰돌도 상하좌우로 붙어 있지 않으므로, 흰돌은 모두 한 점짜리 돌이다.

홍준이는 빈 칸에 검은돌을 원하는 만큼 더 놓을 수 있다. 어떤 흰돌의 상하좌우 네 방향이 모두 검은돌이거나 바둑판 바깥이면 그 흰돌은 잡혀서 판에서 사라지고, 그 자리는 빈 칸이 된다. 실제 바둑과 조금 다르게 흰돌은 검은돌을 잡지 못하므로, 한 번 놓은 검은돌은 끝까지 판에 남는다.

홍준이가 보는 것은 마지막에 남는 빈 칸의 개수다. 검은돌을 놓아 흰돌을 잡으면 그 자리가 빈 칸으로 바뀌지만, 검은돌이 덮은 칸은 빈 칸이 아니게 된다. 그래서 어디에 몇 개를 놓을지 고민에 빠졌다.

홍준이를 도와 빈 칸의 개수를 최대로 하는 프로그램을 작성하시오.

입력

첫째 줄에 바둑판의 크기 NN이 주어진다 (3N503 \le N \le 50). 다음 NN개의 줄에는 바둑판의 상태가 한 줄에 NN글자씩 주어진다. 흰돌은 o, 검은돌은 x, 빈 칸은 .이다. 어떤 두 흰돌도 상하좌우로 인접하지 않는다.

출력

홍준이가 만들 수 있는 빈 칸의 최대 개수를 첫째 줄에 출력한다.