#include <stdio.h>
#include <string.h>
#define maxn 51
int isvisited[maxn],mat[maxn][maxn],n;
void bfs(int vo){
int i;
printf("%d ",vo);
isvisited[vo]=1;
for (i=0;i<n;i++)
{
if (isvisited[i]==0&&mat[vo][i]==1)
{
bfs(i);
}
}
}
int main(){
int i,j;
// freopen("1.txt","r",stdin);
while (scanf("%d",&n)!=EOF)
{
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
scanf("%d",&mat[i][j]);
}
}
memset(isvisited,0,sizeof(isvisited));
for (i=0;i<n;i++)
{
if (isvisited[i]==0)
{
bfs(i);
printf("\n");
}
}
}
// fclose(stdin);
return 0;
}
/**************************************************************
Problem: 2161
User: admin
Language: C
Result: Accepted
Time:16 ms
Memory:1156 kb
****************************************************************/