#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main(){

	int n;
	int field[256][256];
	while(cin>>n&&n!=0){
		int maxLength=0;
		for(int i = 0; i < n; i++){
			for(int j = 0; j < n; j++){
				char ch;
				cin>>ch;
				field[i][j]=ch-'0';
			}
		}
		for(int i = 0; i < n; i++){
			int len=0;
			for(int j = 0; j < n; j++){
				if(field[i][j]==1){
					len++;
					maxLength=max(maxLength,len);
				}
				else{
					len=0;
				}
			}
		}
		for(int i = 0; i < n; i++){
			int len=0;
			for(int j = 0; j < n; j++){
				if(field[j][i]==1){
					len++;
					maxLength=max(maxLength,len);
				}
				else{
					len=0;
				}
			}
		}
		// ÈÈß
		for(int j = 0; j < n; j++){
			int len=0;
			int cy=0;
			int cx=j;
			while(1){
				if(field[cy][cx]==1){
					len++;
					maxLength=max(maxLength,len);
				}
				else{
					len=0;
				}
				int ny=cy+1;
				int nx=cx-1;
				if(!(ny>=0&&nx>=0&&ny<n&&nx<n)){
					break;
				}
				cx=nx;
				cy=ny;
			}
		}
		// ÈÈß
		for(int j = 0; j < n; j++){
			int len=0;
			int cy=0;
			int cx=j;
			while(1){
				if(field[cy][cx]==1){
					len++;
					maxLength=max(maxLength,len);
				}
				else{
					len=0;
				}
				int ny=cy+1;
				int nx=cx+1;
				if(!(ny>=0&&nx>=0&&ny<n&&nx<n)){
					break;
				}
				cx=nx;
				cy=ny;
			}
		}
		cout<<maxLength<<endl;
	}


	return 0;
}