#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MOD=1e9+7;
const int INF=1e9;

int main(){
	int n;
	cin>>n;
	string s[n];
	for(int i=0;i<n;i++){
		cin>>s[i];
	}
	int ans=-1;
	for(int i=0;i<n;i++){
		int d[n];
		memset(d,-1,sizeof(d));
		d[i]=0;
		queue<int> q;
		q.push(i);
		while(q.size()){
			int v=q.front();
			q.pop();
			for(int j=0;j<n;j++){
				if(s[v][j]=='0')continue;
				if(d[j]!=-1){
					if((d[j]+d[v]+1)%2!=0){
						cout<<-1<<endl;
						return 0;
					}
				}
				else{
					d[j]=d[v]+1;
					ans=max(ans,d[j]);
					q.push(j);
				}
			}
		}
	}
	cout<<ans+1<<endl;
}
