import java.util.LinkedList;
import java.util.Scanner;
public class Main {
private static Scanner s = new Scanner(System.in) ;
public static void main(String[] args) {
int n = s.nextInt() ;
int a[][] = new int[n][n] ;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
a[i][j] = s.nextInt() ;
}
}
for (int i = 0; i < a.length; i++) {
a[i][i] = 1 ;
}
boolean visited[] = new boolean[a.length] ;
LinkedList<Integer> queue = new LinkedList<Integer>() ;
queue.add(0) ;
System.out.print(0+ " ") ;
visited[0] = true ;
while(queue.size()!=0){
int k = queue.pollFirst() ;
for (int i = 0; i < visited.length; i++) {
if(visited[i]==false&&a[k][i]==1){
visited[i] = true ;
queue.add(i) ;
System.out.print(i+" ") ;
}
}
}
System.out.println();
}
}
/**************************************************************
Problem: 2160
User: admin
Language: Java
Result: Accepted
Time:881 ms
Memory:44592 kb
****************************************************************/