N×N 크기의 바둑판이 있다. 흰돌은 o, 검은돌은 x, 빈 칸은 .으로 나타낸다. 처음 주어지는 바둑판에서는 어떤 두 흰돌도 상하좌우로 붙어 있지 않으므로, 흰돌은 모두 한 점짜리 돌이다.
홍준이는 빈 칸에 검은돌을 원하는 만큼 더 놓을 수 있다. 어떤 흰돌의 상하좌우 네 방향이 모두 검은돌이거나 바둑판 바깥이면 그 흰돌은 잡혀서 판에서 사라지고, 그 자리는 빈 칸이 된다. 실제 바둑과 조금 다르게 흰돌은 검은돌을 잡지 못하므로, 한 번 놓은 검은돌은 끝까지 판에 남는다.
홍준이가 보는 것은 마지막에 남는 빈 칸의 개수다. 검은돌을 놓아 흰돌을 잡으면 그 자리가 빈 칸으로 바뀌지만, 검은돌이 덮은 칸은 빈 칸이 아니게 된다. 그래서 어디에 몇 개를 놓을지 고민에 빠졌다.
홍준이를 도와 빈 칸의 개수를 최대로 하는 프로그램을 작성하시오.
첫째 줄에 바둑판의 크기 N이 주어진다 (3≤N≤50). 다음 N개의 줄에는 바둑판의 상태가 한 줄에 N글자씩 주어진다. 흰돌은 o, 검은돌은 x, 빈 칸은 .이다. 어떤 두 흰돌도 상하좌우로 인접하지 않는다.
홍준이가 만들 수 있는 빈 칸의 최대 개수를 첫째 줄에 출력한다.