#include<stdio.h>
#include<iostream>
#include<algorithm>
#define MAX 1000
#define TRUE '.'
#define BLOCK '*'

using namespace std;

char buff[MAX][MAX];
int size;
int T[MAX][MAX];

int getLangestRectangle(){
	for(int i=0;i<size;i++){
		T[0][i]=(buff[0][i]==BLOCK)?0:1;
		T[i][0]=(buff[i][0]==BLOCK)?0:1;
	}
	int maxwidth=0;
	for(int i=0;i<size;i++){//ツ債カツ、ツ湘」ツづ可つ「ツつュツづァツ行ツつッツづゥツつゥツづーツ記ツ録
		for(int j=0;j<size;j++){
			if(buff[i][j]==BLOCK){
				T[i][j]=0;
			}else{
				T[i][j]=min(T[i-1][j-1],min(T[i][j-1],T[i-1][j]))+1;
				maxwidth=max(maxwidth,T[i][j]);
			}
		}
	}
	/*
	for(int i=0;i<size;i++){
		for(int j=0;j<size;j++){
			cout<<T[i][j]<<" ";
		}
		cout<<endl;
	}
	*/
	return maxwidth;
}
int main(){
	while(cin>>size){
		if(size==0)return 0;
		for(int i=0;i<size;i++){
			for(int j=0;j<size;j++){
				cin>>buff[i][j];
			}
		}
		cout<<getLangestRectangle()<<endl;
	}	
	return 0;
}