/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static int check(int row, int col, char [][] lab, int [][] visited, ArrayDeque <Integer> plan){//находим количество стен рядом с каждой клеткой
int empty = 0;//пустые клетки
if(visited[row][col]!=1){
if(lab[row+1][col]=='.'){//проверяем нижнюю клетку
empty++;
if(visited[row+1][col]!=1){
plan.offer(row+1);
plan.offer(col);
}
}
if(lab[row-1][col]=='.'){//проверяем верхнюю клетку
empty++;
if(visited[row-1][col]!=1){
plan.offer(row-1);
plan.offer(col);
}
}
if(lab[row][col+1]=='.'){//проверяем правую клетку
empty++;
if(visited[row][col+1]!=1){
plan.offer(row);
plan.offer(col+1);
}
}
if(lab[row][col-1]=='.'){//проверяем левую клетку
empty++;
if(visited[row][col-1]!=1){
plan.offer(row);
plan.offer(col-1);
}
}
visited[row][col]=1;//отмечаем, что клетка пройдена
return 4-empty;//количество стен рядом с клеткой
}
return 0;
}
{
Scanner in
= new Scanner
(System.
in);
int N = in.nextInt();
char [][] lab = new char [N+2][];
int [][] visited = new int [N+2][];
for(int i=0; i<N+2; i++){
lab[i] = new char [N+2];
visited[i] = new int [N+2];
for(int j=0; j<N+2; j++){
visited[i][j] = 0;//массив для проверки посещённости клеток
if(i==0||i==N+1||j==0||j==N+1){
lab[i][j]='*';//вокруг данного лабиринта делаем стену
}
}
}
for(int i=1; i<N+1; i++){
line = in.next();
for(int j=1; j<N+1; j++){
lab[i][j]=line.charAt(j-1);//заполняем лабиринт
}
}
ArrayDeque <Integer> plan = new ArrayDeque<Integer>();
plan.offer(1);//начинаем считать с левой верхней клетки
plan.offer(1);
int walls=0;
while(!plan.isEmpty()){
int row=plan.poll();
int col=plan.poll();
walls+=check(row, col, lab, visited, plan);
}
if(visited[N][N]!=1){//если не попали в правую нижнюю клетку
plan.offer(N);//считаем начиная с неё
plan.offer(N);
while(!plan.isEmpty()){
int row=plan.poll();
int col=plan.poll();
walls+=check(row, col, lab, visited, plan);
}
}
walls-=4;//стены у левого верхнего и правого нижнего угла отсутствуют
int meters = walls * 9;
}
}