Alice 喜欢旅行,她住进了一家非常有趣的酒店。每位希望入住该酒店的客人都需要解决一个关于房间内灯光布置的有趣测验。酒店前台会向每位客人提供有关房间内灯光和连接灯光的开关的信息。根据这些信息,一个或多个灯连接到一个开关,每个灯也连接到一个或多个开关。
Alice 居住的房间里有 $N$ 个灯和 $N$ 个开关。有趣的是,当 Alice 打开一个开关时,不仅会亮起一盏灯,还会同时亮起几盏灯。此外,当一个或多个开关已经打开时,打开另一个开关可能会熄灭一些已经亮着的灯。幸运的是,当所有开关都关闭时,所有灯也都会熄灭。
图 J.1 是 Alice 从酒店前台收到的信息示例,其中 $N = 5$。
图 J.1
为了弄清楚每盏灯是如何受开关影响的,Alice 进行了如下实验。首先,每盏灯和每个开关都进行了编号以便识别。她最初将所有开关关闭。然后,她通过仅打开 #1 号开关来检查哪些灯亮起。之后,她关闭 #1 号开关并打开 #2 号开关,以检查哪些灯亮起。接着,她关闭 #2 号开关并打开 #3 号开关,以此类推。她重复此过程以检查每个开关分别会使哪些灯亮起。
然后,她打开两个或多个开关以寻找存在的规律。结果发现,每盏灯的状态由连接到它的开关共同决定。该规则可以表述如下:
- 当连接到某盏灯且处于开启状态的开关数量为奇数(偶数)时,该灯亮起(熄灭)。
例如,考虑图 J.1 所示的连接信息,并关注 #1 号灯的运作方式。#1 号灯可以通过打开 #1、#2 和 #5 号开关中的每一个来点亮。如果她在所有其他开关(即 #2 和 #5 号开关)都关闭的情况下打开 #1 号开关,#1 号灯会亮起。如果她额外打开 #2 号开关,#1 号灯会熄灭。如果她再额外打开 #5 号开关(即三个开关都打开),#1 号灯会再次亮起。在操作这些开关的同时,其他灯的状态也可能会发生变化。
Alice 想知道,对于每一盏灯,是否可以通过操作某些开关来使其亮起,同时让其余的灯熄灭。
给定开关和灯之间的连接信息,编写一个程序来帮助 Alice。换句话说,你的程序需要判断对于每一盏灯,是否可以通过操作某些开关来使其亮起,同时让其余的灯熄灭。
输入格式
程序从标准输入读取数据。第一行包含一个整数 $N$ ($3 \le N \le 500$)。接下来的 $N$ 行,每行包含 $N$ 个由空格分隔的 $0$ 或 $1$。第 $i$ 行($1 \le i \le N$)中的数字表示哪些灯连接到第 $i$ 个开关。如果第 $i$ 行中的第 $k$ 个值($1 \le k \le N$)为 $1$,则表示第 $k$ 盏灯连接到第 $i$ 个开关;$0$ 表示未连接。
输出格式
程序将结果写入标准输出。如果对于每一盏灯,都可以通过操作某些开关来使其亮起且其余灯熄灭,则打印出应该开启的开关编号,按升序排列。否则,打印 $-1$(如样例所示)。如果输出不是 $-1$,则第 $k$ 行的开关编号应为使第 $k$ 盏灯亮起所需的开关。如果存在多个正确答案,打印其中任意一个即可。
样例
样例输入 1
4 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 0
样例输出 1
1 2 3 1 2 3 4 2 3 1 3 4
样例输入 2
4 1 1 1 0 0 1 0 1 1 0 0 1 0 1 1 1
样例输出 2
-1
样例输入 3
5 1 0 1 1 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1 0 1 1 1
样例输出 3
1 3 2 3 5 1 2 4 1 2 3 4 1 5