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

int map[256][256];
int w;
int dx[8]={0,0,1,-1,-1,-1,1,1};
int dy[8]={1,-1,0,0,-1,1,-1,1};

int dfs(int x,int y){
	int res=0;
	for(int i=0;i<8;i++){
		int re2=0;
		int cx=x,cy=y;
		while(map[cx][cy]==1 && cx>=0 && cx<w && cy>=0 && cy<w){
			re2++;
			cx+=dx[i];
			cy+=dy[i];
		}
		res=max(res,re2);
	}
	return res;
}

int main(void){
	while(1){
		scanf("%d",&w);
		if(w==0)break;
		memset(map,0,sizeof(map));
		for(int i=0;i<w;i++){
			string str;
			cin >> str;
			for(int j=0;j<w;j++){
				map[j][i]=str[j]-'0';
			}
		}
		int ans=0;
		for(int i=0;i<w;i++){
			for(int j=0;j<w;j++){
				if(map[i][j]==1)ans=max(ans,dfs(i,j));
			}
		}
		printf("%d\n",ans);
	}
    return 0;
}