#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;

int n,dp[1001][1001],maxi;
char mas[1001][1001];

int dynamic_p(){
  for(int x=0;x<n;x++){
    if(mas[x][0]!='*') dp[x][0] = 1;
  }
  for(int x=0;x<n;x++){
    if(mas[0][x]!='*') dp[0][x] = 1;
  }
  for(int i=1;i<n;i++){
    for(int j=1;j<n;j++){
      if(mas[i][j]!='*') dp[i][j] = 1 + min(min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1]);
      maxi = max(maxi,dp[i][j]);
    }
  }
  return maxi;
}

int main(){
  while(cin >> n,n){
    maxi = 0;
    memset(dp,0,sizeof(dp));
    for(int i=0;i<n;i++){
      for(int j=0;j<n;j++) cin >> mas[i][j];
    }
    cout << dynamic_p() << endl;
  }
}