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
****************************************************************/