小可爱序列
题号:NC20880
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

我愿意舍弃一切,以想念你,终此一生。
”到后来,只能将记忆拼凑。“ ——QAQ
小可爱刚刚把KR的序列切开了,但是她还没有玩够,于是就又双叒叕打乱了佳佳刚刚买回来的序列。
但是还好,佳佳通过监控记录下来了小可爱的打乱方式,于是把小可爱送回家之后,现在佳佳要还原这个序列。
佳佳需要维护一个长度为n的序列,小可爱只用了以下两种操作:
a.将最后一个数挪到第一位
b.将序列第3位挪到第一位
你需要给出最后的序列

输入描述:

第一行两个数
n,m为序列长度,不同的操作“次数”
接下来m行,每行一个由数字+字母组成的字符串
保证所有的字符串只有一个字母,字符集S为S={'a','b'}并且只会在字符串最后一位出现。
字符串表示的是,要做的操作次数,操作类型。
比如“3a”就是你这一步要重复3次a操作,
"4b"就是这一步要重复操作4次b操作。

输出描述:

一行用空格隔开的n个数,表示所有操作做完之后的序列
示例1

输入

复制
4 2
1 2 3 4 
1a 
2b 

输出

复制
1 2 4 3

说明

第一次做一次a操作 变为 4 1 2 3

第二次连着做两次b操作 变为1 2 4 3

备注:

20pts:n<10,m<100

40pts:n<100,m<1000

60pts:n<1000,m<2000

80pts:n<2000,m<5000

对于所有数据

4<=n<=2000

m<=100000

对于每次操作的操作数<=998244353

保证n>3