#include<stdio.h>
#include<iostream>
using namespace std;
#define N 55
char map[N][N];
int n;
bool judge(int x,int y)
{
int count=0;
for(int i=1;i<n;i++)
{
if(x+i>n || x-i<1 || y+i>n || y-i<1)
break;
if(map[x+i][y]=='#' && map[x-i][y]=='#' && map[x][y+i]=='#' && map[x][y-i]=='#')
{
// return false;
count++;
if(map[x+i][y-1]=='#' || map[x+i][y+1]=='#')
return false;
if(map[x-i][y-1]=='#' || map[x-i][y+1]=='#')
return false;
if(map[x-1][y+i]=='#' || map[x+1][y+i]=='#')
return false;
if(map[x-1][y-i]=='#' || map[x+1][y-i]=='#')
return false;
}
else
{
if(map[x+i][y]=='#' || map[x-i][y]=='#' || map[x][y+i]=='#' || map[x][y-i]=='#')
return false;
if(count<1)
return false;
else
return true;
}
}
if( x+i<=n && map[x+i][y]=='#')
return false;
if( x-i>=1 && map[x+i][y]=='#')
return false;
if( y+i<=n && map[x][y+i]=='#')
return false;
if( y-i>=1 && map[x][y-i]=='#')
return false;
if(count<1)
return false;
return true;
}
int main()
{
int i,j,count;
while(scanf("%d",&n)!=EOF)
{
if(n==0) break;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>map[i][j];
count=0;
for(i=2;i<=n-1;i++)
for(j=2;j<=n-1;j++)
if(map[i][j]=='#' && judge(i,j))
count++;
printf("%d\n",count);
}
return 0;
}