rt,
#include <bits/stdc++.h>
using namespace std;
inline int read(){
int x=0;bool f=1;char c=getchar();
while(c>'9'||c<'0'){if(c=='-')f=0;c=getchar();}
while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}
return f?x:-x;
}
int n,in[5005],cnt,st;
vector<int> g[5005];
bitset<5005> b[5005];
queue<int> q;
int main(){
n=read();
for(int i=1;i<=n;getchar(),i++)
for(int j=1;j<=n;j++)
if(b[i][j]=(getchar()^48))
in[j]++,g[i].push_back(j);
for(int i=1;i<=n;i++)
if(!in[i])
q.push(i),cnt++;
while(q.size()){
int u=q.front();
q.pop();
for(int i=0;i<g[u].size();i++)
if(!(--in[g[u][i]]))
q.push(g[u][i]),cnt++;
}
for(int i=1;i<=n;i++)
if(in[i]){
st=i;
break;
}
for(int i=0;i<g[st].size();i++)
for(int j=1;j<=n;j++)
if(b[g[st][i]][j]&&b[j][st])
return !printf("%d %d %d\n",st,g[st][i],j);
puts("-1");
return 0;
}