#AG0403005. 线段树二分

线段树二分

题目描述

nn 个点,编号从 11nn。初始时每个点都没有被标记。

接下来有 qq 次操作,操作分为如下两种类型:

  • 1 x\mathtt{1\ x}:对编号为 xx 的点进行标记;
  • 2 x k\mathtt{2\ x\ k}:查询前 xx 个点(即第 11 个点到第 xx 个点)从左往右第 kk 个被标记的点的编号。

对于每次查询操作,输出对应的结果。

输入格式

第一行,两个整数 nnqq,以一个空格分隔(1n,q51051 \le n,q \le 5 \cdot 10^5)。

接下来 qq 行,每行包含一次操作,形如:

  • 1 x\mathtt{1\ x}1xn1 \le x \le n 且每次标记的都是之前从未标记过的点),或
  • 2 x k\mathtt{2\ x\ k}1xn1 \le x \le n 且前 xx 个点中至少有 kk 个被标记的数)

输出格式

对于每次查询操作,输出一行,包含一个整数,表示前 xx 个点中从左往右数第 kk 个被标记的点的编号。

样例

10 7
1 3
1 6
1 8
2 7 2
1 4
2 7 2
2 10 4
6
4
8

说明/提示

数据规模与约定

  • 对于 30%30\% 的数据,n,q50n,q \le 50
  • 对于 60%60\% 的数据,n,q5000n,q \le 5000
  • 对于 100%100\% 的数据,n,q5105n,q \le 5 \cdot 10^5