#include <iostream>
#include <cmath>
using namespace std;

#define SIZE 255

char M[SIZE][SIZE];

int main() {
  int n, mx, cnt;
  
  while(cin>>n && n) {
    for(int i = 0; i < n; i++) {
      for(int j = 0; j < n; j++) {
	cin >> M[i][j];
      }
    }

    mx = 0;
    // tate
    for(int i = 0; i < n; i++) {
      cnt = 0;
      for(int j = 0; j < n; j++) {
	if(M[i][j]-'0') { 
	  cnt++;
	  mx = max(mx, cnt);
	} else {
	  cnt = 0;
	}
      }
    }
    // yoko
    for(int i = 0; i < n; i++) {
      cnt = 0;
      for(int j = 0; j < n; j++) {
	if(M[j][i]-'0') { 
	  cnt++;
	  mx = max(mx, cnt);
	} else {
	  cnt = 0;
	}
      }
    }
    // migishita
    for(int j = n-1; j >= 0; j--) {
      cnt = 0;
      for(int i = 0; i < n-j; i++) {
	if(M[i+j][j]-'0') {
	  cnt++;
	  mx = max(mx, cnt);
	} else {
	  cnt = 0;
	}
      }
    }
    // hidarishita
    for(int i = n-1; i >= 0; i--) {
      cnt = 0;
      for(int j = n-1; j >= 0; j--) {
	if(M[i+j][j]-'0') { 
	  cnt++;
	  mx = max(mx, cnt);
	} else {
	  cnt = 0;
	}
      }
    }

    cout << mx << endl;
  }
  
  return 0;
}