这是一个交互式问题。
你的公司正在生产多种类型的产品。起初,你只有一种类型,你称之为 Type 1。后来你推出了一种更昂贵的产品,称之为 Type 2。接着又出现了一种更昂贵的产品,你称之为 Type 3——到目前为止,一切都很顺利。
然而,后来你推出了一种新类型,它的成本比 Type 2 高,但比 Type 3 低,而你的客户已经习惯了类型编号越高代表成本越高的事实。因此,你决定将旧的 Type 3 重命名为 Type 4,并将新类型发布为 Type 3。
你的麻烦并没有就此结束,因为你决定生产的下一种类型比所有现有的四种类型都便宜。你决定不使用零或负数,所以现在你必须重命名所有现有的类型!为了让情况更具前瞻性,你将现有的 Type 1 重命名为 Type 20,Type 2 重命名为 Type 30,Type 3 重命名为 Type 40,Type 4 重命名为 Type 50,并添加了新的最便宜的 Type 10。
当然,即使有了这个聪明的想法,在几次添加之后,你可能还是不得不再次重命名现有类型……
你决定自动化你的决策,编写一个程序来分配类型编号并为你执行重命名,使得重命名操作的总数不会太多。
你的程序将反复被告知新添加的类型在排序后的顺序中出现的位置,并需要为新添加的类型响应一个类型编号,以及一个可选的重命名操作列表,以维持按类型编号排序的顺序。
注意,交互器将表现得具有适应性(有些人可能会称之为对抗性),新添加类型给出的位置将取决于你为现有类型分配的类型编号。
交互
交互包含多轮。在每一轮中,会添加一个新类型。你的程序需要读取整数 $a_i$ —— 表示新类型在排序后的顺序中恰好位于该类型之后,如果新类型需要成为第一种类型,则读取 0。然后你的程序需要打印分配给新类型的类型编号 $b_i$ ($1 \le b_i \le 65535$),你想要在这一轮中执行的重命名操作数量 $n_i$,以及 $n_i$ 对整数,每对整数描述一个重命名操作:重命名之前和之后的类型编号,按此顺序。重命名后的类型编号也必须在 1 到 65535 之间(含)。
注意,重命名操作将同时发生,并且在新类型添加之前,因此你可以重用正在被重命名的类型编号之一作为新类型,或者将其中一种类型重命名为另一个正在被重命名的类型的旧编号。记得在打印决策后刷新输出。
在最多 10000 轮之后,你的程序将读取整数 -1,这意味着交互结束,你的程序应该退出。
在第一轮之前,没有任何类型,所以你读取的第一个整数总是 0 或 -1。
如果每一轮之后的类型编号都是不同的,在上述范围内,并且正确排序,且对于每个 $m$,前 $m$ 轮之后的重命名操作总数不超过 $100 \cdot m$,即 $\sum_{i=1}^m n_i \le 100 \cdot m$,你的解将被接受。
样例
样例输入 1
0 1 2 2 0 -1
样例输出 1
1 0 2 0 3 0 3 1 3 4 10 4 1 20 2 30 3 40 4 50
样例输入 2
0 100 111 -1
样例输出 2
100 0 200 1 100 111 150 0
说明
注意,题目描述开头描述的前几个类型编号和重命名仅作为示例,你的程序需要从空集开始,并自行做出所有决策。
第一个样例输入/输出对应于题目描述中的例子。