3433 - 括号翻转

通过次数

1

提交次数

3

时间限制 : 2 秒
内存限制 : 512 MB

给定一个长度为 n 的括号序列,要求支持两种操作:

  1. 将[L{i}, R{i}]区间内(序列中的第 L{i}个字符到第 R{i}个字符)的括号全部翻转(左括号变成右括号,右括号变成左括号)。

  2. 求出以L{i}为左端点时,最长的合法括号序列对应的R{i}(即找出最大的R{i}使 [L{i}, R{i}] 是一个合法括号序列)。

输入

输入的第一行包含两个整数 n, m,分别表示括号序列长度和操作次数。

第二行包含给定的括号序列,括号序列中只包含左括号和右括号。

接下来 m 行,每行描述一个操作。如果该行为 1 L R, 表示第一种操作,区间为 \left[L, R\right];如果该行为 2 L 表示第二种操作,左端点为 L

输出

对于每个第二种操作,输出一行,表示对应的R{i}。如果不存在这样的R{i},请输出0。

样例

输入

7 5
((())()
2 3
2 2
1 3 5
2 3
2 1

输出

4
7
0
0

提示

对于所有评测用例,1 \leq n \leq 10^{6}, 1 \leq m \leq 2 \times 10^{5}

来源

蓝桥杯 2021 国赛 A 组 H 题(B 组 I 题)