FJ 有 N 个礼物给他的 N 头奶牛,这 N 个礼物和 N 头奶牛都被标记为 1⋯N(1≤N≤500) 。 每头奶牛都有一个愿望单,记录着一个含有 N 个礼物的排列。比起在愿望单中出现更晚的礼物,奶牛更喜欢先出现在愿望单中的礼物。
因为 FJ 太懒了,他直接把 i 号礼物分配给了 i 号奶牛。现在,奶牛们聚在了一起,决定重新分配礼物,以便在重新分配后,每头奶牛都能得到跟原来一样,或是它更喜欢的礼物。
对于每个 i (i 从 1 到 N),计算出重新分配后, i 号奶牛可能拿到的最好的礼物(这个奶牛经过重新分配后能拿到的最喜欢的礼物)。
第一行输入 N 。之后 N 行每行包含一个奶牛的愿望单。保证这 N 行都是 1⋯N 的排列
输出 N 行,第 i 行输出重新分配后 i 号奶牛可能得到的最好礼物。
在这个例子中,有两种可能的分配方案
由 tzyt 翻译
# 题目描述
FJ 有 $N$ 个礼物给他的 $N$ 头奶牛,这 $N$ 个礼物和 $N$ 头奶牛都被标记为 $1 \dotsm N (1 \le N \le 500)$ 。 每头奶牛都有一个愿望单,记录着一个含有 $N$ 个礼物的排列。比起在愿望单中出现更晚的礼物,奶牛更喜欢先出现在愿望单中的礼物。
因为 FJ 太懒了,他直接把 $i$ 号礼物分配给了 $i$ 号奶牛。现在,奶牛们聚在了一起,决定重新分配礼物,以便在重新分配后,每头奶牛都能得到跟原来一样,或是它更喜欢的礼物。
对于每个 $i$ ($i$ 从 $1$ 到 $N$),计算出重新分配后, $i$ 号奶牛可能拿到的最好的礼物(这个奶牛经过重新分配后能拿到的最喜欢的礼物)。
# 输入格式
第一行输入 $N$ 。之后 $N$ 行每行包含一个奶牛的愿望单。保证这 $N$ 行都是 $1 \dotsm N$ 的排列
# 输出格式
输出 $N$ 行,第 $i$ 行输出重新分配后 $i$ 号奶牛可能得到的最好礼物。
# 样例解释
在这个例子中,有两种可能的分配方案
- 最初的方案:一号奶牛得到一号礼物,二号奶牛得到二号礼物,三号奶牛得到三号礼物,四号奶牛得到四号礼物
- 重新分配后的方案:一号奶牛得到一号礼物,二号奶牛得到三号礼物,三号奶牛得到二号礼物,四号奶牛得到四号礼物。可以发现一号和二号奶牛都拿不到比FJ分配的更好的礼物。不过二号和三号都可以。
# 数据范围
- $2 \sim 3$ 号测试点满足 $N \le 8$
- $4 \sim 11$ 号测试点没有别的限制
由 [tzyt](https://www.luogu.com.cn/user/394488) 翻译