#D05119. 洗牌2

洗牌2

题目描述

魔术师刘谦要洗牌了,请你写个程序来模拟洗牌的过程。

洗牌分弹牌和切牌两个操作:

弹牌——将牌组等分成两份,然后交错相插,如当前牌为11 22 33 44 55 66,现在开始弹牌,先将牌分成11 22 3344 55 66,然后交错相插,变成11 44 22 55 33 66

切牌——从牌堆里面拿出连续的一段,然后放到顶端。如当前牌为11 22 33 44 55 66,切完2255之间的44张牌后变成22 33 44 55 11 66

输入描述

第一行为两个正整数NNMMNN表示牌堆里面有NN张牌,MM表示共进行MM次洗牌的操作。

第二行有NN个正整数,代表NN张牌上的数字,刘谦用的牌其实就是标有数字的卡片。

接下来MM行,每行一个整数或者三个整数。

如果第一个数为00,那么这一行就这只有一个数,表示弹牌。

如果第一个数为11,那么后面跟着两个正整数bbee,表示把bbee这段牌切到顶端。

输出描述

输出MM次操作后从第一张开始的每张牌上的数字。

相邻两数严格用一个空格隔开。

样例

10 5
46 21 22 1 20 46 50 7 42 19
1 4 8
1 4 4
1 4 7
0
0
46 22 1 21 7 42 20 50 46 19