
#include<iostream>
#include<cstring>
#include<algorithm>
#define x first
#define y second
using namespace std;
typedef pair<int, int> PII;
const int N=1010, M=N*N;
int n;
int g[N][N];
PII q[M];
PII pre[N][N];
void bfs(int sx, int sy)
{
int dx[4]={-1, 0, 1, 0}, dy[4]={0, 1, 0, -1};
int hh=0, tt=0;
q[0]={sx, sy};
memset(pre, -1, sizeof pre);
pre[sx][sy]={0, 0};
while(hh<=tt)
{
PII t=q[hh++];
for(int i=0; i<4; i++)
{
int a=t.x+dx[i], b=t.y+dy[i];
if(a<0 || a>=n ||b<0 ||b>=n) continue;
if(g[a][b]) continue;
if(pre[a][b].x !=-1) continue;
if(a==0 && b==0)
{
pre[a][b]=t;
break;
}
q[++tt]={a, b};
pre[a][b]=t;
}
}
}
int main()
{
cin>>n;
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
scanf("%d", &g[i][j]);
bfs(n-1, n-1);
PII end(0, 0);
while(1)
{
printf("%d %d\n", end.x, end.y);
if(end.x == n-1 && end.y==n-1) break;
end=pre[end.x][end.y];
}
return 0;
}