#joi2007yod. [joi2007yo_d]カードの並び替え

[joi2007yo_d]カードの並び替え

问题

问题描述:2n2n 张卡片,卡片上从上到下依次编号为 1,2,3,ldots,2n1, 2, 3, \\ldots, 2n

现在按照以下方式对这些卡片进行排序:

使用整数 kk 进行切割

将从上方取出的 kk 张卡片放到堆 A 中,剩余的卡片放到堆 B 中,在堆 A 的顶部放置堆 B。

card01.png

混洗

将从上方取出的 nn 张卡片放到堆 A 中,剩余的卡片放到堆 B 中,使得从上到下依次为 A 的第一张牌,B 的第一张牌,A 的第二张牌,B 的第二张牌,ldots\\ldots,A 的第 nn 张牌,B 的第 nn 张牌,将它们合并成一堆。

card02.png

按照输入指示,编写一个程序来输出重新排列后的卡片编号,按顺序从上到下输出。


输入

  • 第 1 行:一个整数 nn (1n1001 \leqq n \leqq 100),表示卡片的数量为 2n2n
  • 第 2 行:一个整数 mm (1m10001 \leqq m \leqq 1000),表示操作的次数。
  • 第 3 行到第 m+2m + 2 行:mm 行整数,每行为 002n12n - 1 中的一个数字 kk,按顺序指定卡片的排序方式。
    • k=0k = 0 时,进行混洗操作。
    • 1k2n11 \leqq k \leqq 2n-1 时,进行以 kk 为参数的切割操作。

输出

输出 2n2n 行。第 1 行输出排序后最上面一张卡片的编号,第 2 行输出排序后从上往下第 2 张卡片的编号,依此类推,第 ii 行输出从上往下第 ii 张卡片的编号。


输入示例 1

2
2
1
0

输出示例 1

2
4
3
1

输入示例 2

3
4
2
4
0
0

输出示例 2

1
5
4
3
2
6