#AG0403010. 查询标记点

查询标记点

题目描述

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

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

  • 1 x\mathtt{1\ x}:对编号为 xx 的点进行标记;
  • 2 l r k\mathtt{2\ l\ r\ k}:查询从第 ll 个点开始到第 rr 个点结束(包含第 ll 和第 rr 个点)范围内从左往右第 kk 个被标记的点的编号。

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

输入格式

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

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

  • 1 x\mathtt{1\ x}1xn1 \le x \le n 且每次标记的都是之前从未标记过的点),或
  • 2 l r k\mathtt{2\ l\ r\ k}1lrn1 \le l \le r \le n 且第 ll 到第 kk 个点范围内至少有 kk 个被标记的数)

输出格式

对于每次查询操作,输出一行,包含一个整数,表示第 ll 个点开始到第 rr 个点范围内从左往右数第 kk 个被标记的点的编号。

样例

10 7
1 3
1 6
1 8
2 1 7 2
1 4
2 1 7 2
2 3 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