#include<iostream>
#include<string>
using namespace std;
int main(){
long n,i,j;
string s[256],t[512];
string::size_type p,q,m,l;
while(cin>>n){
if(n==0)break;
for(i=0;i<n;i++)cin>>s[i];
m=0;
for(i=0;i<n;i++){
q=-1;
for(;;){
p=s[i].find('1',q+1);if(p==string::npos)break;
q=s[i].find('0',p+1);if(q==string::npos){if(m<n-p)m=n-p;break;}
if(m<q-p)m=q-p;
}
}
for(i=0;i<n;i++){
t[i]="";
for(j=0;j<n;j++)t[i]+=s[j][i];
}
for(i=0;i<n;i++){
q=-1;
for(;;){
p=t[i].find('1',q+1);if(p==string::npos)break;
q=t[i].find('0',p+1);if(q==string::npos){if(m<n-p)m=n-p;break;}
if(m<q-p)m=q-p;
}
}
for(i=0;i<n*2-1;i++){
t[i]="";
for(j=0;j<n;j++){if(i-j>=0&&i-j<n)t[i]+=s[i-j][j];}
}
for(i=0;i<n*2-1;i++){
q=-1;l=t[i].size();
for(;;){
p=t[i].find('1',q+1);if(p==string::npos)break;
q=t[i].find('0',p+1);if(q==string::npos){if(m<l-p)m=l-p;break;}
if(m<q-p)m=q-p;
}
}
for(i=0;i<n*2-1;i++){
t[i]="";
for(j=0;j<n;j++){if(n-i+j>=0&&n-i+j<n)t[i]+=s[n-i+j][j];}
}
for(i=0;i<n*2-1;i++){
q=-1;l=t[i].size();
for(;;){
p=t[i].find('1',q+1);if(p==string::npos)break;
q=t[i].find('0',p+1);if(q==string::npos){if(m<l-p)m=l-p;break;}
if(m<q-p)m=q-p;
}
}
cout<<m<<endl;
}
return 0;
}