#include<iostream>
#include<algorithm>
#include<cstdio>
#include<string>
#include<vector>
#include<string.h>
#include<map>
#include<cmath>
#include<queue>
#define ll long long
#define INF 0x7fffffff
#define MAX 0x3f3f3f3f
#define maxn 100005
#define mem(a) memset(a,0,sizeof(a))
#define ull unsigned long long
using namespace std;
int n;
char f[55][55];
int dfs(int x,int y)
{
int i=1;
while(1)
{
if(f[x-i][y]!=f[x+i][y]) return 0;
if(f[x][y-i]!=f[x][y+i]) return 0;
if(f[x-i][y]!=f[x][y-i]) return 0;
if(f[x-i][y]=='o'&&f[x][y-i]=='o') return 1;
if(f[x-i][y+1]=='#') return 0;
if(f[x-i][y-1]=='#') return 0;
if(f[x+i][y-1]=='#') return 0;
if(f[x+i][y+1]=='#') return 0;
if(f[x+1][y+i]=='#') return 0;
if(f[x-1][y+i]=='#') return 0;
if(f[x+1][y-i]=='#') return 0;
if(f[x-1][y-i]=='#') return 0;
i++;
}
}
int main()
{
int s,i,j;
while(scanf("%d",&n)&&n)
{
s=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf(" %c",&f[i][j]);
for(i=0;i<=n+1;i++)
{
f[0][i]='o';f[n+1][i]='o';
f[i][0]='o';f[i][n+1]='o';
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(f[i][j]=='#'&&f[i+1][j]=='#'&&f[i-1][j]=='#'&&f[i][j+1]=='#'&&f[i][j-1]=='#')
s+=dfs(i,j);
printf("%d\n",s);
}
}