#include<stdio.h>
#include<stdlib.h>
char map[99][99];
int maxsum=0;
int sum=0;
int N;
int safe(int x,int y)
{
for(int i=x;i>=0;i--)
{
if(map[i][y]=='X')
break;
if(map[i][y]=='1')
return 0;
}
for(int i=x;i<N;i++)
{
if(map[i][y]=='X')
break;
if(map[i][y]=='1')
return 0;
}
for(int j=y;j<N;j++)
{
if(map[x][j]=='X')
break;
if(map[x][j]=='1')
return 0;
}
for(int j=y;j>=0;j--)
{
if(map[x][j]=='X')
break;
if(map[x][j]=='1')
return 0;
}
return 1;
}
void jian(int step)
{
if(step==N*N)
{
if(maxsum<sum)
maxsum=sum;
return ;
}
if(safe(step/N,step%N)&&map[step/N][step%N]=='.')
{
map[step/N][step%N]='1';
sum++;
jian(step+1);
sum--;
map[step/N][step%N]='.';
}
jian(step+1);
}
int main()
{
//freopen("in.txt","r",stdin);
while(scanf("%d",&N))
{
maxsum=0;
sum=0;
if(N==0)
break;
for(int i=0;i<N;i++)
scanf("%s",map[i]);
jian(0);
printf("%d\n",maxsum);
}
return 0;
}