这是一道运行两次的题目。在每个测试中,你的程序都会运行两次。
在信息学课上,Алеся 和 Борис 正在学习密码学。他们决定发明自己的消息加密方法。
Алеся 从 $1$ 到 $n$ 中选择 $k$ 个互不相同的整数,并将得到的集合记为 $T$。Алеся 希望将集合 $T$ 作为消息,以加密的形式传递给 Борис。为此,Алеся 将根据集合 $T$ 构造另一个集合 $R$ 并传递给 Борис,$R$ 同样由 $1$ 到 $n$ 中的整数组成。
他们不希望加密后消息的大小发生变化,因此 $R$ 也必须恰好包含 $k$ 个数。另外,他们认为,如果 $T$ 和 $R$ 至少有一个共同元素,那么这种加密就不够可靠。因此,不应存在同时属于 $T$ 和 $R$ 的数,也就是说,集合 $T$ 和 $R$ 不能相交。保证 $k \le n/2$,因此根据集合 $T$ 总能构造出至少一个集合 $R$。
当 Борис 收到加密消息 $R$ 时,他必须将其解密,得到原始消息 $T$。
请帮助 Алеся 和 Борис 设计并实现加密和解密算法。第一次运行时,你的程序扮演 Алеся 的角色;第二次运行时,则扮演 Борис 的角色。
输入格式
输入的第一行包含一个数 $a$,其值为 $1$ 或 $2$,表示你的程序的运行编号。
第二行包含一个数 $m$,表示你的程序需要加密(第一次运行)或解密(第二次运行)的消息数量($1 \le m \le 300\,000$)。
接下来的 $2m$ 行描述 $m$ 条消息,每条消息占两行。
每条消息的第一行包含两个整数 $n_i$ 和 $k_i$($2 \le n_i \le 10^9$,$1 \le k_i \le 300\,000$,$k_i \le \frac{n_i}{2}$)。第二行按递增顺序包含 $k_i$ 个互不相同的整数,每个整数均在 $1$ 到 $n_i$ 之间。
保证一个测试中所有 $k_i$ 的总和不超过 $300\,000$。
如果 $a = 1$,则这些数是原始消息。如果 $a = 2$,则这些数是你的程序在第一次运行时,对某条消息进行加密所产生的结果。
输出格式
程序应输出 $m$ 行,第 $i$ 行应按递增顺序包含 $k_i$ 个互不相同的整数,每个整数均在 $1$ 到 $n_i$ 之间。
第一次运行时,对于每条原始消息 $T_i$,程序应输出集合 $R_i$,且 $R_i$ 与 $T_i$ 不能相交。
第二次运行时,程序应对每条加密消息 $R_i$ 恢复原始消息 $T_i$。
样例
第一次运行
输入格式 1
1 2 2 1 1 5 2 1 4
输出格式 1
2 2 3
第二次运行
输入格式 2
2 2 5 2 2 3 2 1 2
输出格式 2
1 4 1
说明
注意,样例给出了第一次运行的输出和第二次运行的输入的具体方案。如果你的程序输出不同的集合 $R$,第二次运行的输入也会不同。
另外,第二次运行时,加密消息传递给选手程序的顺序不一定与第一次运行时的顺序相同。
子任务
为了说明输入数据的额外限制,将组成集合 $T_i$ 的数列记为 $t_1, t_2, \ldots, t_{k_i}$。它们按递增顺序排列。
将一个测试中所有 $n_i$ 的总和记为 $N$。
将一个测试中所有 $k_i$ 的总和记为 $K$。
| 子任务 | 分值 | 额外限制:$n_i, N$ | 额外限制:$k_i, K$ | 额外限制:$t_j$ | 前置子任务 | 测试信息 |
|---|---|---|---|---|---|---|
| 1 | 9 | $N \le 5000$ | $k_i = 1$ | 首次错误 | ||
| 2 | 11 | $N \le 5000$ | $k_i = 2$ | 首次错误 | ||
| 3 | 9 | $N \le 300\,000$ | $k_i = \frac{n_i}{2}$ | 首次错误 | ||
| 4 | 7 | $n_i \le 7$,$N \le 5000$ | 样例 | 首次错误 | ||
| 5 | 9 | $t_{j+1} - t_j \ge 2$,$t_{k_i} \le n_i - 1$ | 首次错误 | |||
| 6 | 9 | $t_{k_i} - t_1 \le \frac{n_i}{2} - 1$ | 首次错误 | |||
| 7 | 10 | $N \le 5000$ | $t_{k_i} \le n_i - k_i$ | 首次错误 | ||
| 8 | 12 | $N \le 100$ | 样例 | 首次错误 | ||
| 9 | 3 | $N \le 5000$ | 样例, 1–2, 4, 7–8 | 首次错误 | ||
| 10 | 7 | $N \le 300\,000$ | 样例, 1–4, 7–9 | 首次错误 | ||
| 11 | 7 | $K \le 5000$ | 样例, 1–2, 4, 7–9 | 首次错误 | ||
| 12 | 7 | 无额外限制 | 样例, 1–11 | 首次错误 |