#include <iostream>
#include <algorithm>
using namespace std;
const int MAX_N = 300;

int n,cnt;
int wx[]={1,-1},hy[]={1,-1};
int x1[]={1,-1},y1[]={1,-1};
int x2[]={1,-1},y2[]={-1,1};
int in[MAX_N][MAX_N];
int s[MAX_N][MAX_N];

void Wcheck(int x,int y){
    if(0 > x || n <= x) return;
    s[x][y] = 0;
    cnt++;
    
    for(int i = 0 ; i < 2 ; i++){
        int nx = x + wx[i];
        if(0 <= nx && nx < n && s[nx][y] == 1) Wcheck(nx,y);
    }
}

void Hcheck(int x,int y){
    if(0 > y || n <= y) return;
    s[x][y] = 0;
    cnt++;
    
    for(int i = 0 ; i < 2 ; i++){
        int ny = y + hy[i];
        if(0 <= ny && ny < n && s[x][ny] == 1) Hcheck(x,ny);
    }
}

void t1(int x,int y){
    if(0 > x || n <= x || 0 > y || n <= y) return;
    s[x][y] = 0;
    cnt++;
    
    for(int i = 0 ; i < 2 ; i++){
        int nx = x + x1[i];
        int ny = y + y1[i];
        
        if(0 <= nx && nx < n && 0 <= ny && ny < n && s[nx][ny] == 1){
            t1(nx,ny);
        }
    }
}

void t2(int x,int y){
    if(0 > x || n <= x || 0 > y || n <= y) return;
    s[x][y] = 0;
    cnt++;
    
    for(int i = 0 ; i < 2 ; i++){
        int nx = x + x2[i];
        int ny = y + y2[i];
        
        if(0 <= nx && nx < n && 0 <= ny && ny < n && s[nx][ny] == 1){
            t2(nx,ny);
        }
    }
}
void cp_str(){
    for(int i = 0 ; i < n ; i++){
        for(int j = 0 ; j < n ; j++){
            s[i][j] = in[i][j];
        }
    }
}

int main(){
    char ch;
    while(cin >> n ,n){
        int a = 0,b = 0,c = 0,d = 0;
        for(int i = 0 ; i < n ; i++){
            for(int j = 0 ; j < n ; j++){
                cin >> ch;
                in[i][j] = ch - '0';
            }
        }
        
        cp_str();
        for(int i = 0 ; i < n ; i++){
            for(int j = 0 ; j < n ; j++){
                cnt = 0;
                if(s[i][j] == 1) Wcheck(i,j);
                a = max(a,cnt);
            }
        }
        
        cp_str();
        for(int i = 0 ; i < n ; i++){
            for(int j = 0 ; j < n ; j++){
                cnt = 0;
                if(s[i][j] == 1) Hcheck(i,j);
                b = max(b,cnt);
            }
        }

        cp_str();
        for(int i = 0 ; i < n ; i++){
            for(int j = 0 ; j < n ; j++){
                cnt = 0;
                if(s[i][j] == 1) t1(i,j);
                c = max(c,cnt);
            }
        }
        
        cp_str();
        for(int i = 0 ; i < n ; i++){
            for(int j = 0 ; j < n ; j++){
                cnt = 0;
                if(s[i][j] == 1) t2(i,j);
                d = max(d,cnt);
            }
        }
        
        cout << max(max(a,b),max(b,d)) << endl;
    }
    
    return 0;
}