简易版第k大
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

有一个长度为n的序列,序列每个元素取值范围[1, 1e6],现在有q次操作,每次操作:
1 k:查询整个序列第 k 大元素(指的是从小到大排序后第 k 个元素)
2 x y:将下标为x(下标从1开始)的元素值修改为y

输入描述:

第一行输入两个数n,q (1 <= n, q <=3e5)

第二行输入n个数,表示序列的元素ai(1 <= ai <= 1e6)

接下来q行每行输入 1 k 或者 2 x y (1 <= x <= n,1 <= y <= 1e6)

输出描述:

对于每次操作 1 k,输出一个数表示答案
示例1

输入

复制
5 3
1 2 3 4 5
1 3
2 1 5
1 3

输出

复制
3
4