#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
//英语 看博友分析 抄博友程序 dfs 巧妙 背
char da[108][108];
int hs[108][108];
int ans;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
int n;
void update(int x,int y,int val)//巧妙
{
for(int i=0;i<4;i++)
{
int tx=x;
int ty=y;
while(1)
{
if(tx<0 || tx>n || ty<0 || ty>n)
{
break;
}
if(da[tx][ty]!='.')
{
break;
}
hs[tx][ty]=hs[tx][ty]+val;
tx=tx+dx[i];
ty=ty+dy[i];
}
}
}
void dfs(int x,int y,int num)//背
{
if(y==n)
{
x++;
y=0;
}
if(x==n)
{
ans=max(ans,num);
return ;
}
if(da[x][y]=='.'&& hs[x][y]==0)
{
update(x,y,1);
dfs(x,y+1,num+1);
update(x,y,-1);
}
dfs(x,y+1,num);//背
}
int main()
{
while(1)
{
cin>>n;
if(n==0)
{
break;
}
memset(hs,0,sizeof(hs));
for(int i=0;i<n;i++)
{
cin>>da[i];
//cout<<da[i]<<endl;
}
ans=0;
dfs(0,0,0);
cout<<ans<<endl;
}
return 0;
}