5995 - NOI:树套树:模板(树状数组+线段树)

通过次数

2

提交次数

8

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

给定一个含有 n 个数的序列 a_1,a_2 \dots a_n,需要支持两种操作:

  • Q l r k 表示查询下标在区间 [l,r] 中的第 k 小的数;
  • C x y 表示将 a_x 改为 y

输入

第一行两个正整数 n,m,表示序列长度与操作个数。
第二行 n 个整数,表示 a_1,a_2 \dots a_n
接下来 m 行,每行表示一个操作,都为上述两种中的一个。

输出

对于每一次询问,输出一行一个整数表示答案。

样例

输入

5 3
3 2 1 4 7
Q 1 4 3
C 2 6
Q 2 5 3

输出

3
6

提示

【数据范围】

对于 10\% 的数据,1\le n,m \le 100
对于 20\% 的数据,1\le n,m \le 1000
对于 50\% 的数据,1\le n,m \le 10^4
对于 100\% 的数据,1\le n,m \le 10^51 \le l \le r \le n1 \le k \le r-l+11\le x \le n0 \le a_i,y \le 10^9