#include <bits/stdc++.h>

typedef long long ll;
#define int ll

using namespace std;

const int N=210;

string s[N];
int dist[N];

signed main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    int n;
    cin>>n;
    for(int i=0;i<n;i++)
        cin>>s[i];
    int ans=-1;
    for(int ft=0;ft<n;ft++)
    {
        memset(dist,255,sizeof(dist));
        dist[ft]=0;
        queue<int> q;
        q.push(ft);
        while(!q.empty())
        {
            int v=q.front();
            q.pop();
            for(int to=0;to<n;to++)
                if(s[v][to]=='1'&&dist[to]==-1)
                {
                    dist[to]=dist[v]+1;
                    q.push(to);
                }
        }
        bool ok=true;
        for(int i=0;i<n;i++)
            for(int j=0;j<n;j++)
                if(s[i][j]=='1'&&abs(dist[i]-dist[j])!=1)
                    ok=false;
        if(ok)
            ans=max(ans,*max_element(dist,dist+n)+1);
    }
    cout<<ans;
}
