一年级一班的教室里,有 N 个座位,座位编号为 1 \dotsm N。
有 N 名同学学号为 1 \dotsm N。开学当天,老师让第 i 名学生坐在第 i 号座位上。
经过了几天的课堂学习,同学们互相熟悉了,产生了换座位的想法。
每位同学给老师都写了一份自己的喜欢的座位偏好表,第 i 位同学提交的座位偏好表中有 N 个座位编号:A_1, A_2, \dots A_n,表示该同学最希望坐到编号为 A_1 的座位,如果无法实现,则第二喜欢的座位编号为 A_2 \dots
老师收到了所有同学提交的座位偏好表之后,想请爱好编程的你,帮助同学们重新调整座位。在调整结束后,要保证每名学生最终的座位要么和原来的一样,要么是自己偏好顺序表中更靠前的座位。
请编程计算出在合理的重新分配之后,每位同学有可能得到的最好的座位编号。
第一行输入一个整数 N。
接下来 N 行,每行包含 N 个整数:A_1, A_2, \dots A_n,保证这是一个 1 \dotsm N 的排列,表示对应同学的座位偏好顺序表。
输出 N 行,第 i 行输出学生 i 在重新分配后有可能得到的最好的座位编号。
4 1 2 3 4 1 3 2 4 1 2 3 4 1 2 3 4
1 3 2 4
6 1 2 3 4 5 6 3 4 5 6 1 2 4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 3 4 5 2 3 4 5 6 1
1 3 4 5 6 2
8 4 1 6 7 2 5 8 3 3 2 4 7 5 1 6 8 8 4 7 1 3 6 2 5 7 8 1 3 4 6 2 5 5 2 7 1 3 8 6 4 1 5 6 3 4 7 2 8 7 3 8 5 4 6 2 1 4 7 1 2 6 5 8 3
4 3 8 8 5 1 7 4
在这个例子中:
可以看到,学生 1 和 4 没法得到更靠前的选择,而学生 2 和 3 都能换到自己更喜欢的座位。
对于 20\% 的数据,满足 N \le 8。
对于 100\% 的数据,满足 1 \le N \le 500。