#include using namespace std; #define ll long long #define pb push_back #define up(l,r,i) for(int i=(l);i<=(r);i++) #define down(r,l,i) for(int i=(r);i>=(l);i--) #define all(x) x.begin(),x.end() ll n; char grid[88][88]; bool rclear1(int x){ bool flag=1; up(1,n-1,i){ if(grid[x][i]=='#')flag=0; } return flag; } bool rclear2(int x){ bool flag=1; up(2,n,i){ if(grid[x][i]=='#')flag=0; } return flag; } bool rclear(int x){ return rclear1(x) || rclear2(x); } bool cclear1(int y){ bool flag=1; up(1,n-1,i){ if(grid[i][y]=='#')flag=0; } return flag; } bool cclear2(int y){ bool flag=1; up(2,n,i){ if(grid[i][y]=='#')flag=0; } return flag; } bool cclear(int y){ return cclear1(y) || cclear2(y); } ll calc1(){ ll ret=0; up(1,n,i)if(rclear(i))ret++; return ret; } ll calc2(){ ll ret=0; up(1,n,i)if(cclear(i))ret++; return ret; } ll calc3(){ ll ret=0; if(rclear1(1))ret++; up(1,n-1,i)if(cclear2(i))++ret; if(cclear(n))ret++; return ret; } ll calc4(){ ll ret=0; if(rclear2(1))ret++; up(2,n,i)if(cclear2(i))++ret; if(cclear(1))ret++; return ret; } ll calc5(){ ll ret=0; if(rclear1(n))ret++; up(1,n-1,i)if(cclear1(i))++ret; if(cclear(n))ret++; return ret; } ll calc6(){ ll ret=0; if(rclear2(n))ret++; up(2,n,i)if(cclear1(i))++ret; if(cclear(1))ret++; return ret; } ll calc7(){ ll ret=0; if(cclear1(1))ret++; up(1,n-1,i)if(rclear2(i))++ret; if(rclear(n))ret++; return ret; } ll calc8(){ ll ret=0; if(cclear2(1))ret++; up(2,n,i)if(rclear2(i))++ret; if(rclear(1))ret++; return ret; } ll calc9(){ ll ret=0; if(cclear1(n))ret++; up(1,n-1,i)if(rclear1(i))++ret; if(rclear(n))ret++; return ret; } ll calc10(){ ll ret=0; if(cclear2(n))ret++; up(2,n,i)if(rclear1(i))++ret; if(rclear(1))ret++; return ret; } int main(){ ios::sync_with_stdio(0); cin.tie(nullptr); cin>>n; up(1,n,i) up(1,n,j) cin>>grid[i][j]; cout<