#include <iostream> 
#include <vector>
using namespace std;

int min(int a,int b){return a>b?b:a;} 
int max(int a,int b){return a<b?b:a;} 

int main() 
{   
	int n,i,j,res;   
	char f[1000][1001];   
	vector< vector<int> > m(1000);
	for(int i = 0; i < 1000; ++i)
	{
		m[i].resize(1000);
	}
	for(;;)
	{     
		scanf("%d",&n); 
		if(!n)break;     
		for(i=0;i<n;i++)scanf("%s",f[i]);     
		for(i=0;i<n;i++)
		{       
			m[0][i]=f[0][i]=='*'?0:1;       
			m[i][0]=f[i][0]=='*'?0:1;     
		}     
		res=0;     
		for(i=1;i<n;i++)
		{       
			for(j=1;j<n;j++)
			{         
				if(f[i][j]=='*')m[i][j]=0;         
				else
				{           
					m[i][j]=min(m[i-1][j-1],min(m[i][j-1],m[i-1][j]))+1;
					res=max(m[i][j],res);         
				}       
			}     
		}     
		printf("%d\n",res);   
	}   
	return 0; 
}