package chart;
import java.util.Scanner;
public class Dfs {
static int i=0;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int [][]G=new int[n][n];
int []visted=new int[n];
int []a=new int[n];
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
G[i][j]=sc.nextInt();
}
}
dfs(G,visted,a);
for(int j=0;j<a.length;j++) {
if(j!=a.length-1)
System.out.print(a[j]+" ");
else
System.out.print(a[j]);
}
System.out.println();
}
public static void dfs(int G[][],int visted[],int a[]) {
for(int i=0;i<visted.length;i++) {
visted[i]=0;
}
for(int i=0;i<visted.length;i++) {
if(visted[i]==0) {
dfs_visted(G,i,visted,a);
}
}
}
public static void dfs_visted(int G[][],int s,int visted[],int a[]){
a[i++]=s;
visted[s]=1;
for(int j=0;j<G.length;j++) {
if(visted[j]==0&&G[s][j]!=0) {
dfs_visted(G,j,visted,a);
}
}
}
}