#YDRG005B. 《年轻人的第一节排序课》

《年轻人的第一节排序课》

OIer 选手要学会扣好算法人生的第一粒扣子。那这枚扣子为什么不能是排序呢?

题目背景

想当年 yummy 被喵了个喵创退役了,于是他认为构造要从 J 组抓起。但是同时不能太创,因此你的任务是老掉牙的排序。

题目描述

你有 nn 个队列,队列里所有数都是正整数。

你要用不超过 8×1058\times 10^5 次操作将每个队列的元素分别从小到大排序(队头小队尾大)。每次操作给出 x,yx,y,将队列 xx 的队头加到队列 yy 队尾。

输入格式

输入第一行有一个正整数 nn

之后有 nn 行,其中第 ii 行先输入自然数 lil_i 表示队列 ii 长度,再输入 lil_i 个正整数表示这个队列(左边是队头)。

输出格式

若干行,每行两个正整数 x,yx,y 表示一次操作。

所有操作结束后,输出一行 0 0

如有多种操作方案,只需输出任意一种。

样例 #1

样例输入 #1

3
2 2 1
3 1 10 100
3 99 9 9

样例输出 #1

1 3
1 2
2 1
2 2
2 2
3 3
3 3
3 3
3 1
3 3
0 0

提示

【样例解释】

11 次操作后,队列 11 变成 [1][1],队列 33 变成 [99,9,9,2][99,9,9,2]

1010 次操作全部结束后,队列 11 变成 [1,2][1,2],队列 22 变成 [1,10,100][1,10,100],队列 33 变成 [9,9,99][9,9,99]

尽管现在队列 1111 来自队列 22,但是看上去结果一样,我们就认为它合法。

【数据范围】

LL 为所有队列里数字个数总和,MM 为队列中最大的数。

请注意,表格里 nn 用的是等号,不是小于等于。

测试点编号 n=n= LL\le MM\le lil_i\le 特殊性质
11 100100 198198 100100 22 l1=0l_1=0
242\sim 4 99009900 10810^8 100100
575\sim 7 10410^4
898\sim 9 4×1044\times 10^4 4×1054\times 10^5 2×1042\times 10^4 2×1042\times 10^4 个队列为空
101210\sim 12 4×1044\times 10^4
131513\sim 15 2×1052\times 10^5 10810^8 10410^4
161816\sim 18 4×1054\times 10^5 4×1044\times 10^4 所有队列不存在相等数字
192019\sim 20 4×104\mathbf{4\times 10^4}
212221\sim 22 103\mathbf{10^3} 2×1052\times 10^5 数据随机
232523\sim 25 4×1054\times 10^5
  • “数据随机”指队列内数字随机,即随机生成一整个序列再以不随机的 lil_i 切割成 nn 段。
  • 请注意,212521\sim 25 的数据范围并不是全部数据的范围。

对于全部数据,保证 3n4×1043\le n\le 4\times 10^41L4×1051\le L\le 4\times 10^51M1081\le M\le 10^80li4×1040\le l_i\le 4\times 10^4