//2013/11/01(金) 動的計画

#include <iostream>
using namespace std;

int main()
{
	int n;
	char X[257][257];
	int count;

	while(true){	

		count=0;

		cin >> n;
		
		if(n==0)
			break;

		for(int j=1; j<=n; j++)
			for(int k=1; k<=n; k++)
				cin >> X[j][k];

		int DP[4][257][257];

		for(int i=0; i<4; i++)
			for(int j=0; j<=n+1; j++)
				for(int k=0; k<=n+1; k++)
					DP[i][j][k] = 0;

		for(int j=1; j<=n; j++){
			for(int k=1; k<=n; k++){
				if(X[j][k] == '1'){
					 DP[0][j][k] = DP[0][j-1][k]+1;
              DP[1][j][k] = DP[1][j][k-1]+1;
              DP[2][j][k] = DP[2][j-1][k-1]+1;
              DP[3][j][k] = DP[3][j-1][k+1]+1;
					
					for(int i=0; i<4; i++)
						if(count < DP[i][j][k])
							count = DP[i][j][k];
				}
			}
		}

		cout << count << endl;
	}	
	return 0;
}
 