题目描述
我们有一块长 $L$ 米的木材。
对于每个 $x = 1, 2, \dots, L-1$,在距离木材左端点 $x$ 米的位置均有一个标记,称作 $\text{Mark }x$。
有 $Q$ 次询问,第 $i$ 次询问将给定一对数 $(c_i, x_i)$。请按根据 $i$ 升序对每个询问进行处理:
- 如果 $c_i = 1$:从 $\text{Mark }x_i$ 所在的位置将其砍断,将这块木材分成两半。
- 如果 $c_i = 2$:选择 $\text{Mark }x_i$ 所在的那块木材,输出它的长度。
保证在处理任意一种询问时,标记 $\text{Mark }x_i$ 处还没有被砍断。
输入格式
输入按照以下格式给定:
> $L$ $Q$
> $c_1$ $x_1$
> $c_2$ $x_2$
> $\vdots$
> $c_Q$ $x_Q$
#### 限制
- $1 \le L \le 10^9$
- $1 \le Q \le 2 \times 10^5$
- $c_i = 1, 2$ $(1 \le i \le Q)$
- $1 \le x_i \le L - 1$ $(1 \le i \le Q)$
- 对于每个 $i$ $(1 \le i \le Q)$:没有 $j$ 满足 $1 \le j \lt i$ 并且 $(c_j, x_j) = (1, x_i)$
- 所有输入的数字均为整数
输出格式
对于每次 $c_i = 2$ 的询问,在一行内输出对应的答案。
样例输入 #1
5 3
2 2
1 3
2 2
样例输入 #2
5 3
1 2
1 4
2 3
样例输入 #3
100 10
1 31
2 41
1 59
2 26
1 53
2 58
1 97
2 93
1 23
2 84