在你赢得梦寐以求的奖杯回到家后,发现它在行李箱中碎成了碎片。现在剩下的只有修复它了。
你的奖杯原本是一个 $3 \times N$ 的矩形($N \geqslant 1$ 为某个整数),由 3 行 $N$ 列组成,总共包含 $3N$ 个单位正方形。它碎成了 $K$ 个碎片,第 $k$ 个碎片是一个 $A_k \times B_k$ 的矩形,其中 $A_k$ 和 $B_k$ 为满足 $1 \leqslant A_k \leqslant B_k \leqslant 3$ 的整数。在行李箱的混乱中,这些碎片可能已经被旋转,甚至翻转。
作为修复奖杯的第一步,你需要将它们重新拼装成一个 $3 \times N$ 的矩形。更准确地说,你在纸上画了一个 $3 \times N$ 的矩形,并将 $K$ 个碎片放置在其中。你需要确定对于所有 $i \leqslant 3$ 和 $j \leqslant N$,哪个碎片覆盖了矩形中第 $i$ 行第 $j$ 列的单位正方形。
输入格式
输入包含三行,每行包含空格分隔的整数。第一行包含数字 $K$ 和 $N$。第二行包含数字 $A_1, A_2, \dots, A_K$。第三行包含数字 $B_1, B_2, \dots, B_K$。
输出格式
输出应包含三行,每行包含 $N$ 个空格分隔的整数。如果你计划用第 $k$ 个碎片覆盖第 $i$ 行第 $j$ 列的单位正方形,则第 $i$ 行的第 $j$ 个数字应为整数 $k$。
如果存在多种将碎片重新拼装成 $3 \times N$ 矩形的方法,输出其中任意一种均视为正确。
数据范围
- $1 \leqslant K \leqslant 300\,000$;
- $1 \leqslant N \leqslant 100\,000$;
- 对于所有 $k \leqslant K$,满足 $1 \leqslant A_k \leqslant B_k \leqslant 3$;
- 输入中描述的碎片可以重新拼装成一个 $3 \times N$ 的矩形。
样例
输入格式 1
16 17 1 2 1 1 2 1 2 1 1 1 1 1 2 2 1 1 3 3 1 3 2 3 3 1 1 2 2 3 3 3 1 3
输出格式 1
1 2 2 2 12 6 4 13 13 16 16 16 9 10 10 7 7 1 2 2 2 12 6 4 13 13 5 5 14 14 14 11 7 7 1 3 15 8 12 6 4 13 13 5 5 14 14 14 11 7 7
说明
该输出代表了以下拼装方式:
输入格式 2
16 17 1 2 1 1 2 1 2 1 1 1 1 1 2 2 1 1 3 3 1 3 2 3 3 1 1 2 2 3 3 3 1 3
输出格式 2
4 2 2 2 1 1 1 7 7 6 6 6 10 10 15 14 14 4 2 2 2 16 16 16 7 7 5 5 13 13 13 9 14 14 4 11 11 3 12 12 12 7 7 5 5 13 13 13 8 14 14
说明
该输出代表了以下拼装方式:
尽管样例输入 1 和 2 相同,但两种拼装方式均为有效。