#1022. 玩链子

玩链子

No testdata at current.

No submission language available for this problem.

Background

Special for beginners, ^_^

Description

有一条链子,上面有 nn 颗钻石,钻石编号为 1~nn。可以对该链子执行两种操作:

CUT a b c (区间切割操作)

切下从第 aa 颗钻石到第 bb 颗钻石的链子,把它插在剩余链子的第 cc 颗钻石后面;

比如 nn 等于 88,链子是 123456781,2,3,4,5,6,7,8,对该链子执行 CUT 3 5 4,会切下 3453,4,5 链子,剩下 126781,2,6,7,8 链子,把 3453,4,5 链子插入第 44 颗钻石之后,现在的链子是 126734581,2,6,7,3,4,5,8

FLIP a b (区间反转操作)

切下从第 aa 颗钻石到第 bb 颗钻石的链子,把链子倒过来放回原来的位置,比如在链子 126734581,2,6,7,3,4,5,8 上执行 FLIP 2 6,则得到的链子是 143762581,4,3,7,6,2,5,8.

问,执行 m 种操作后,链子的外观是怎样的呢?

Format

Input

输入包括多个测试用例,在测试用例的第 1 行,都输入两数字 nnmm (1nm3×1051 ≤ n,m ≤ 3 × 10^5),分别表示链子的钻石总数和操作次数。接下来的 mm 行,每行都输入 CUT a b c 或者 FLIP a b

CUT a b c 表示切割:1abn1 ≤ a ≤ b ≤ n0cn(ba+1)0 ≤ c ≤ n-(b-a+1))

FLIP a b 表示反转:1abn1 ≤ a < b ≤ n

输入结束的标志是两个 -1,不做处理

Output

对每个测试用例,都输出一行 nn 个数字,第 ii 个数字是链子上第 ii 颗钻石的编号。

Samples

8 2
CUT 3 5 4
FLIP 2 6
-1 -1
1 4 3 7 6 2 5 8

Limitation

1s, 1024KiB for each test case.