public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String[] temp = scanner.nextLine().split(" ");
int n = temp.length;
int[][] map = new int[n][n];
for (int i = 0; i < n; i++) {
map[0][i] = Integer.parseInt(temp[i]);
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < n; j++) {
map[i][j] = scanner.nextInt();
}
}
// 对每个服务器遍历
ArrayList<HashSet<Integer>> res = new ArrayList<>();
for (int i = 0; i < n; i++) {
HashSet<Integer> set = new HashSet<>();
if (res.size() == 0){
set.add(i);
dfs(set, map, i);
}
for (HashSet<Integer> s :
res) {
if (!s.contains(i)) {
set.add(i);
dfs(set, map, i);
break;
}
}
if (set.size() > 0){
res.add(set);
}
}
System.out.println(res);
}
private static void dfs(HashSet<Integer> set, int[][] map, int i) {
for (int j = 0; j < map.length; j++) {
if (map[i][j] == 1 && !set.contains(j)) {
set.add(j);
dfs(set, map, j);
}
}
}