#include<stdio.h> #include<algorithm> #include<iostream> #include<string.h> #include<math.h> using namespace std;
typedef long long ll;
const int maxn = 1200;
int n; char mat[maxn][maxn]; int dp[maxn][maxn];
int main() { while (~scanf("%d",&n)&&n) { memset(dp,0,sizeof(dp)); for (int i = 1 ; i <= n ; i ++) { scanf("%s",mat[i]+1); } int maxx = 1; for (int i = 1 ; i <=n ; ++i) { for (int j = 1 ; j <= n ; j ++) { if (i==1||j==n) { dp[i][j] = 1; continue; } int cnt = 0; for (int k = 1 ; k +j<=n && i - k>=1 ; k ++) { if (mat[i-k][j]==mat[i][j+k]) cnt++; else break; } if (cnt>=dp[i-1][j+1]) dp[i][j] = dp[i-1][j+1]+1; else dp[i][j] = cnt+1; maxx = max(dp[i][j],maxx); } } printf("%d\n",maxx); }