第一行给出两个整数代表位置的数量和操作次数。
第二行个字符,代表初始状态第
个位置积木上的字符。
随后行,每行一个操作:`1 x y`、`2 x y`或`3 x`,其中第一个数字代表操作类型与题面描述一一对应,
的含义与上述题面相同,保证
。
共行,第
行代表第
个位置上从下往上连接得到的字符串通过括号序列得到的结果,若括号序列不合法,输出`-1`。否则先输出一个整数
代表第
个位置通过括号序列得到的字符串数量(忽略空串),随后
个字符串,按照得到的顺序输出,字符串之间以一个空格为间隔,行首行末无多余空格。
样例解释:
第次操作将位置
上的积木从下到上取出,并堆叠至位置
,位置
上的积木从下到上分别为`a`、`b`。
第次操作将位置
上的积木从上到下取出,并堆叠至位置
,位置
上的积木从下到上分别为`(`、`b`、`a`。
第次操作将位置
上的积木从上到下取出,并堆叠至位置
,位置
上的积木从下到上分别为`(`、`b`、`a`、`)`。
第次操作将位置
上的积木从上到下取出,并堆叠至位置
,位置
上的积木从下到上分别为`c`、`b`。
第次操作将位置
上的积木从下到上取出,并堆叠至位置
,位置
上的积木从下到上分别为`)`、`c`、`b`。
第次操作将位置
上的积木堆叠至原来的位置上,位置
上变为`)`、`b`、`c`。
括号匹配例子:
对于串`ab(abb(ab)a)c` :
第一次配对发生在第个字符`(` 和第
个字符`)` ,从两个括号中间可以得到第
个字符串`ab` ,随后将区间
的内容从串中删除,得到新串`ab(abba)c` 。
第二次配对发生在新串的第个字符`(` 和第
个字符`)` ,从中可以得到第
个字符串`abba` ,将区间
的内容从串中删除,得到第
个字符串`abc` 。
最终字符串`ab` 、`abba` 、`abc` 就是字符串`ab(abb(ab)a)c` 通过括号序列从左到右匹配得到的结果。