#include<bits/stdc++.h>
using namespace std;
int col[1000],s[10000],n;
char ss[300][300];
int bfs(int x){
    int l=0,r=0;
    for(int i=1;i<=n;i++) col[i]=0;
    s[++r]=x;col[x]=1;
    while(l<r){
	x=s[++l];
	for(int i=1;i<=n;i++)
	    if(ss[x][i]-'0'){
		if(col[i]==0){
		    col[i]=col[x]+1;
		    s[++r]=i;
		}else if(abs(col[i]-col[x])!=1) return -1;
	    }
    }
    return col[s[r]];
}
int main(){
    int ans=-1;
    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%s",ss[i]+1);
    for(int i=1;i<=n;i++)
	ans=max(ans,bfs(i));
    printf("%d",ans);
}
