#P6040. [nerc 2022] BinCoin

[nerc 2022] BinCoin

背景

在BinCoin公司中有nn名员工,编号为11nn。该公司的上下级结构是一个根树。换句话说:

  • 公司中有一个CEO,即总负责人。
  • 每位其他员工只有一个直接上级。
  • 上下级结构中没有循环。

此外,由于BinCoin公司的CEO对二进制结构的偏爱,公司上下级结构是一个二叉根树。这意味着每个员工直接负责零个或两个其他员工。

在CEO看来,在该公司工作几乎和在矿井中一样危险。因此,员工有时需要签署责任声明。这一过程如下进行:最初,CEO拿到文件夹并签署,然后递归地执行以下过程:

  • 如果拿到文件夹的员工没有下属,他们签署文件并将其交还给上级。如果是CEO,那么流程停止,因为CEO没有上级。
  • 否则,
    • 他们随机选择两个直接下属中的一个,并将文件夹交给他们;
    • 当他们收到文件夹时,他们签署文件;
    • 然后他们将文件夹交给另一个直接下属;
    • 当他们再次收到文件夹时,将其交还给上级。如果是CEO,流程则停止。

所有随机选择都是独立的。

有一天,CEO意识到自己不记得公司的上下级结构了。幸运的是,他们有一份包含kk条记录的文件夹,每条记录是员工签署文件的顺序。

帮助CEO恢复上下级结构树。

描述

输入

第一行包含两个整数nnkk——员工数量和文件夹中的记录数量(1n999;50k100)(1 \leq n \leq 999; 50 \leq k \leq 100)

接下来的kk行中的每一行包含一个从11nn的排列——表示该记录中的员工签署顺序。

保证输入是通过上述描述的流程真实生成的。

输出

输出nn个整数pip_i。如果ii是CEO,则pip_i应为1-1。否则,pip_i应为ii的直接上级的编号。

输出应对应于一个二叉根树。如果有多个满足输入条件的树,输出其中任意一个。

3 50
1 2 3 1 2 3 3 2 1 1 2 3
3 2 1 1 2 3 1 2 3 1 2 3
1 2 3 3 2 1 1 2 3 3 2 1
1 2 3 3 2 1 1 2 3 3 2 1
1 2 3 1 2 3 3 2 1 1 2 3
3 2 1 1 2 3 3 2 1 1 2 3
1 2 3 3 2 1 1 2 3 1 2 3
1 2 3 1 2 3 3 2 1 1 2 3
3 2 1 3 2 1 1 2 3 3 2 1
1 2 3 3 2 1 3 2 1 1 2 3
1 2 3 3 2 1 1 2 3 3 2 1
3 2 1 3 2 1 1 2 3 1 2 3
3 2 1 3 2 1
2 -1 2
5 60
2 4 3 5 1 1 5 2 4 3 1 5 2 4 3
1 5 2 4 3 1 5 3 4 2 1 5 3 4 2
1 5 3 4 2 1 5 3 4 2 1 5 3 4 2
3 4 2 5 1 2 4 3 5 1 1 5 2 4 3
3 4 2 5 1 2 4 3 5 1 2 4 3 5 1
1 5 2 4 3 3 4 2 5 1 3 4 2 5 1
1 5 2 4 3 2 4 3 5 1 1 5 2 4 3
1 5 3 4 2 3 4 2 5 1 1 5 3 4 2
1 5 2 4 3 1 5 3 4 2 1 5 2 4 3
2 4 3 5 1 2 4 3 5 1 2 4 3 5 1
2 4 3 5 1 2 4 3 5 1 1 5 2 4 3
1 5 3 4 2 1 5 2 4 3 3 4 2 5 1
1 5 3 4 2 3 4 2 5 1 3 4 2 5 1
1 5 2 4 3 2 4 3 5 1 1 5 2 4 3
1 5 3 4 2 2 4 3 5 1 2 4 3 5 1
1 5 2 4 3 1 5 2 4 3 1 5 2 4 3
1 5 2 4 3 1 5 2 4 3 3 4 2 5 1
3 4 2 5 1 3 4 2 5 1 1 5 2 4 3
1 5 3 4 2 1 5 3 4 2 2 4 3 5 1
3 4 2 5 1 1 5 2 4 3 3 4 2 5 1
5 4 4 5 -1