1165 - 搬砖块
描述

仿真是计算机科学中的重要研究领域。而你身为一名初级研究员,现在有一个简单的小任务。通过你的仿真程序,模拟以下情况。

在你面前的桌子上有一条机械臂和 n个砖块。这 n 个砖块按 1,2,…,n−2,n−1,n 顺序依次被编号,并且被排成一行放置在桌上(初始状态)。


机械臂有以下2种指令:

1. clear a   把 a 上方的木块全部放回其初始位置
2. move a over b   把 a 和 a 上方的所有木块(如果有)放在 b 所在木块堆的最上面。

如果有非法指令(例如:a和b在同一堆),应当忽略,非法指令不会造成任何影响。
所有操作输入完毕后,从左到右,从下到上输出每个位置的木块编号。 


输入
第一行:两个整数n,m,n表示桌上初始的木块数量 (2<=n<=25) m表示将要执行的操作数量
随后m行:一条机械臂操作指令。(5 <= m <= 10000)


输出
输出是桌上木块的的最终状态。
输出共有 n 行,每一行的开头编号为 行数 并紧跟一个冒号。表示编号为 i(1 < i ≤ n,其中n是块数)的木块的最原始位置。
如果该位置上有木块,则从下到上,先输出一个空格再输出木块的编号。


样例

输入

10 8
move 8 over 1
move 6 over 1
move 10 over 1
move 3 over 2
move 9 over 2
move 7 over 3
move 9 over 6
clear 10

输出

1: 1 8 6 10
2: 2 3
3:
4: 4
5: 5
6:
7: 7
8:
9: 9
10:
提示

move 8 over 1        木块8移到木块1上方
move 6 over 1        木块6移到木块1、8上方
move 10 over 1      木块10移到木块1、8、6上方
move 3 over 2        木块3移到木块2上方
move 9 over 2        木块9移到木块2、3上方
move 7 over 3        木块7移到木块2、3、9上方
move 9 over 6        木块9、7移到木块1、8、6、10上方
clear 10                   木块10上方的木块9、7回到最初的位置

题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 1
通过次数 1