#include <cstdio>
int n;
int matrix[1001][1001] = {0};
int degree[10001] = {0};
void dfs(int v)
{
for(int i=1; i<=n; i++)
{
if(matrix[v][i] != 0)
{
matrix[i][v]--;
matrix[v][i]--;
dfs(i);
}
}
printf("%d ", v);
}
int main()
{
scanf("%d", &n);
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
scanf("%d", &matrix[i][j]); //[y][x]
degree[i] += matrix[i][j];
}
}
int start_v = 0;
for(int i=1; i<=n; i++)
{
if(degree[i] != 0) start_v = i;
if(degree[i] % 2 == 1)
{
printf("-1");
return 0;
}
}
dfs(start_v);
printf("\n");
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KaW50IG47CmludCBtYXRyaXhbMTAwMV1bMTAwMV0gPSB7MH07CmludCBkZWdyZWVbMTAwMDFdID0gezB9Owp2b2lkIGRmcyhpbnQgdikKewogICAgZm9yKGludCBpPTE7IGk8PW47IGkrKykKICAgIHsKICAgICAgICBpZihtYXRyaXhbdl1baV0gIT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIG1hdHJpeFtpXVt2XS0tOwogICAgICAgICAgICBtYXRyaXhbdl1baV0tLTsKICAgICAgICAgICAgZGZzKGkpOwogICAgICAgIH0KICAgIH0KICAgIHByaW50ZigiJWQgIiwgdik7Cn0KaW50IG1haW4oKQp7CiAgICBzY2FuZigiJWQiLCAmbik7CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKQogICAgewogICAgICAgIGZvcihpbnQgaj0xOyBqPD1uOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBzY2FuZigiJWQiLCAmbWF0cml4W2ldW2pdKTsgLy9beV1beF0KICAgICAgICAgICAgZGVncmVlW2ldICs9IG1hdHJpeFtpXVtqXTsKICAgICAgICB9CiAgICB9CiAgICBpbnQgc3RhcnRfdiA9IDA7CiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKQogICAgewogICAgICAgIGlmKGRlZ3JlZVtpXSAhPSAwKSBzdGFydF92ID0gaTsKICAgICAgICBpZihkZWdyZWVbaV0gJSAyID09IDEpCiAgICAgICAgewogICAgICAgICAgICBwcmludGYoIi0xIik7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgIH0KICAgIGRmcyhzdGFydF92KTsKICAgIHByaW50ZigiXG4iKTsKICAgIHJldHVybiAwOwp9