#include<iostream>
#include<vector>
#include<string>
#include<cstdio>
#include<cstdlib>

using namespace::std;

int main(){
  int number;
  int i;
  int j;
   char string[300] = {};
  int seq = 0;
  int max = 0;

  cin>>number;

  while(number != 0){
    int matrix[number][number];

  for(i = 0; i < number; i++){
    scanf("%s", string);
    for(j = 0; j < number; j++){
      matrix[i][j] = string[j] - '0';
    }
  }

  for(i = 0; i < number; i++){ // 横
    for(j = 0; j < number; j++){
      if(matrix[i][j] == 1){
        seq++;
      }else{
        seq = 0;
      }
      if(max < seq){
        max = seq;
      }
    }
    seq = 0;
  }
  for(i = 0; i < number; i++){ // たて
    for(j = 0; j < number; j++){
      if(matrix[j][i] == 1){
        seq++;
      }else{
        seq = 0;
      }
      if(max < seq){
        max = seq;
      }
    }
    seq = 0;
  }

  for(i = 0; i < number; i++){
    for(j = 0; j <= i; j++){
      if(matrix[i -j][j] == 1){
        seq++;
      }else{
        seq = 0;
      }
      if(max < seq){
        max = seq;
      }
    }
    seq = 0;
  }

  for(i = 0; i < number - 1; i++){
    for(j = 0; j <= i; j++){
      if(matrix[(number - 1) - (i - j)][(number - 1) - j]){
        seq++;
      }else{
        seq = 0;
      }
      if(max < seq){
        max = seq;
      }
    }
    seq = 0;
  }
  for(i = 0; i < number; i++){
    for(j = 0; j <= i; j++){
      if(matrix[(number - 1) - (i -j)][j] == 1){
        seq++;
      }else{
        seq = 0;
      }
      if(max < seq){
        max = seq;
      }
    }
    seq = 0;
  }
  for(i = 0; i < number - 1; i++){
    for(j = 0; j <= i; j++){
      if(matrix[i -j][(number - 1) - j] == 1){
        seq++;
      }else{
        seq = 0;
      }
      if(max < seq){
        max = seq;
      }
    }
    seq = 0;
  }
  seq = 0;
  printf("%d\n", max);
  max = 0;
  cin>>number;
  }
  return 0;
}