#1528. 砍木头

砍木头

题目描述

有一条长度为 LL 米的木头,在木头上对于每一个 x=1,2,...,L1x=1,2,...,L-1 ,都有一个劈点,每个劈点距离木头左端为 xx 米。现在有 QQ 个询问,对于每个询问 ii ,都会给你一对数字 (ci,xi)(c_i,x_i)

  • 如果 ci=1c_i = 1 :把木头在 xix_i 点劈开
  • 如果 ci=2c_i = 2 :输出劈点 xix_i 所在的木头的长度

对于所有的询问,保证在询问劈点 xix_i 所在木头长度时劈点 xix_i 还没被劈开。

输入格式

第一行输入两个整数 LLQQ ,表示木头的长度和询问的次数。

接下来的 QQ 行,每行输入两个整数 ci,xic_i,x_i ,表示询问执行的操作

输出格式

对于每一个 ci=2c_i = 2 的询问,输出劈点 xix_i 所在的木头的长度。

样例

样例输入 #1

5 3
2 2
1 3
2 2

样例输出 #1

5
3

样例输入 #2

5 3
1 2
1 4
2 3

样例输出 #2

2

样例输入 #3

100 10
1 31
2 41
1 59
2 26
1 53
2 58
1 97
2 93
1 23
2 84

样例输出 #3

69
31
6
38
38

提示

对于100%100\%的数据:

  • 1L1091 \le L \le 10^9
  • 1Q2×1051 \le Q \le 2 \times 10^5
  • ci=1,2c_i = 1,2
  • 1xiL11 \le x_i \le L-1
  • 对于每个 i(1iQ)i(1 \le i \le Q) ,不存在 j(1j<i)j(1 \le j \lt i) ,让 (cj,xj)=(1,xi)(c_j,x_j) = (1,x_i)
  • 所有的数据都是整数