n;r; char s[99][99]; char t[99][99]; f(x,y,a){ for(x=0;x<n-1;++x){ if(t[0][x]=='#'){ return; } } a=1; for(x=0;x<n-1;++x){ for(y=1;y<n;++y){ if(t[y][x]=='#'){ goto dame1; } } ++a; dame1:; } if(t[0][n-1]!='#'||t[n-1][n-1]!='#'){ for(y=1;y<n-1;++y){ if(t[y][n-1]=='#'){ goto dame2; } } ++a; dame2:; } if(r<a) r=a; } g(x,y,a){ a=0; for(x=0;x<n;++x){ if(t[0][x]=='#'&&t[n-1][x]=='#'){ goto dame; } for(y=1;y<n-1;++y){ if(t[y][x]=='#'){ goto dame; } } ++a; dame:; } if(r<a) r=a; } h(i){ for(i=0;i<n;++i){ if(t[0][i]=='#') return; if(t[n-1][i]=='#') return; if(t[i][0]=='#') return; if(t[i][n-1]=='#') return; } if(r<4) r=4; } main(x,y){ scanf("%d ",&n); for(y=0;y<n;++y){ gets(s[y]); } for(y=0;y<n;++y){ for(x=0;x<n;++x){ t[y][x]=s[y][x]; } } h(); g(); f(); for(y=0;y<n;++y){ for(x=0;x<n;++x){ t[y][x]=s[y][n-1-x]; } } h(); f(); for(y=0;y<n;++y){ for(x=0;x<n;++x){ t[y][x]=s[n-1-y][x]; } } f(); for(y=0;y<n;++y){ for(x=0;x<n;++x){ t[y][x]=s[n-1-y][n-1-x]; } } f(); for(y=0;y<n;++y){ for(x=0;x<n;++x){ t[y][x]=s[x][y]; } } g(); f(); for(y=0;y<n;++y){ for(x=0;x<n;++x){ t[y][x]=s[x][n-1-y]; } } f(); for(y=0;y<n;++y){ for(x=0;x<n;++x){ t[y][x]=s[n-1-x][y]; } } f(); for(y=0;y<n;++y){ for(x=0;x<n;++x){ t[y][x]=s[n-1-x][n-1-y]; } } f(); printf("%d",r); }