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