珂朵莉给了你一个序列,支持单点修改,或者询问满足区间 or 和大于等于一个数的区间的最短可能长度,无解输出 −1。
输入格式
第一行有两个整数 n,m。
接下来一行 n 个整数,表示这个序列 a。
接下来 m 行,形如:
- 1 i x 表示将 ai 修改为 x。
- 2 k 表示询问最短的一个长度,满足存在一个该长度的区间,其 or 和 ≥k。
输出格式
对所有 2 操作,输出一行,包含一个整数,表示答案,无解输出 −1。
样例数据
样例输入
2 3 0 2 2 3 1 1 1 2 3
样例输出
-1 2
提示
Idea:kczno1,
Solution:kczno1( O(m√nloga) solution ),liu_cheng_ao(O(mlog2nlog2a ) solution ),142857cs(O(mlognlog2a ) solution )
Code:kczno1( O(m√nloga) code ),liu_cheng_ao(O(mlog2nlog2a ) code )
,Data:kczno1
对于 100% 的数据,0≤ai,k≤230,1≤n,m≤5×104。