#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>

using namespace std;

int tate[300][300];
int yoko[300][300];
int ue_l[300][300];
int ue_r[300][300];

int main(){
	
	int n, max;
	
	string str[500];
	
	while(true){
		cin >> n;
		if(n == 0){
			break;
		}else if(n < 2 || n > 300){
			printf("NA\n");
			continue;
		}
		for(int i = 0; i < n; i++){
			cin >> str[i];
		}
		
		for(int x = 0; x < n; x++){
			if(str[0][x] == '1'){
				tate[0][x] = 1;
			}else{
				tate[0][x] = 0;
			}
		}
		for(int y = 1; y < n; y++){
			for(int x = 0; x < n; x++){
				if(str[y][x] == '1'){
					tate[y][x] = tate[y - 1][x] + 1;
				}else{
					tate[y][x] = 0;
				}
			}
		}
		
		max = 0;
		
		for(int y = 0; y < n; y++){
			for(int x = 0; x < n; x++){
				if(max < tate[y][x]){
					max = tate[y][x];
				}
			}
		}
		
		for(int y = 0; y < n; y++){
			if(str[y][0] == '1'){
				yoko[y][0] = 1;
			}else{
				yoko[y][0] = 0;
			}
		}
		for(int x = 1; x < n; x++){
			for(int y = 0; y < n; y++){
				if(str[y][x] == '1'){
					yoko[y][x] = yoko[y][x - 1] + 1;
				}else{
					yoko[y][x] = 0;
				}
			}
		}
		
		for(int y = 0; y < n; y++){
			for(int x = 0; x < n; x++){
				if(max < yoko[y][x]){
					max = yoko[y][x];
				}
			}
		}
		
		for(int y = 0; y < n; y++){
			if(str[y][0] == '1'){
				ue_l[y][0] = 1;
			}else{
				ue_l[y][0] = 0;
			}
		}
		
		for(int x = 0; x < n; x++){
			if(str[0][x] == '1'){
				ue_l[0][x] = 1;
			}else{
				ue_l[0][x] = 0;
			}
		}
		
		for(int x = 1; x < n; x++){
			for(int y = 1; y < n; y++){
				if(str[y][x] == '1'){
					ue_l[y][x] = ue_l[y - 1][x - 1] + 1;
				}else{
					ue_l[y][x] = 0;
				}
			}
		}
		
		for(int y = 0; y < n; y++){
			for(int x = 0; x < n; x++){
				if(max < ue_l[y][x]){
					max = ue_l[y][x];
				}
			}
		}
		
		for(int y = 0; y < n; y++){
			if(str[y][n - 1] == '1'){
				ue_r[y][n - 1] = 1;
			}else{
				ue_r[y][n - 1] = 0;
			}
		}
		
		for(int x = 0; x < n; x++){
			if(str[0][x] == '1'){
				ue_r[0][x] = 1;
			}else{
				ue_r[0][x] = 0;
			}
		}
		
		for(int y = 1; y < n; y++){
			for(int x = 0; x < n - 1; x++){
				if(str[y][x] == '1'){
					ue_r[y][x] = ue_r[y - 1][x + 1] + 1;
				}else{
					ue_r[y][x] = 0;
				}
			}
		}
		
		for(int y = 0; y < n; y++){
			for(int x = 0; x < n; x++){
				if(max < ue_r[y][x]){
					max = ue_r[y][x];
				}
			}
		}
		printf("%d\n", max);
	}
	
	return 0;
}