项链
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

scimoon 意外得到了一个项链,这个项链非常的神奇:它有 N 个珠子,一开始每个珠子有一个编号,从左到右编号分别是 1 至 N,scimoon 进行了 M 次操作,每次操作有下面这么几种:

1 x y :表示将编号为 x 的珠子移到编号为 y 的珠子的后面

2 x y :表示将编号为 x 的珠子移到编号为 y 的珠子的前面

3 :表示翻转这个项链,注意翻转后 1,2 操作中的前后关系会改变

4 :从编号 1 的珠子开始从左到右输出每个珠子的编号

如果您没有完全理解题意,您可以通过阅读样例解释帮助理解

输入描述:

第一行两个数: N 和 M 

行:输入每一次操作

输出描述:

对于每次操作 4,输出这个项链每位置上的珠子的编号。
示例1

输入

复制
5 6
1 2 4
4
2 5 3
4
3
4

输出

复制
1 3 4 2 5
1 5 3 4 2
1 2 4 3 5

说明

第一次操作后,2 号珠子被放到了 4 号珠子的后面,项链为 [1,3,4,2,5]

第二次操作输出当前的项链 [1,3,4,2,5]

第三次操作后,5 号珠子被放到了 3 号珠子的前面,项链为 [1,5,3,4,2]

第四次操作输出当前的项链 [1,5,3,4,2]

第五次操作翻转当前项链 [2,4,3,5,1]

第六次操作中,由于我们需要从 1 开始输出项链,因此输出 [1,2,4,3,5]

备注:

 

保证操作 4 不超过 50 次