#ds104. 树状数组二分

树状数组二分

树状数组二分

题目描述

给nn个数a1,a2,a3,…,ana_1, a_2, a_3, \dots, a_n。

支持qq个操作:

  1. 1 x d,修改ax=da_x = d。
  2. 2 s,查询最大的T(0≤T≤n)T (0 \leq T \leq n)满足∑i=1Tai≤s\sum_{i=1} ^T a_i \leq s。

输入格式

第一行两个整数n,q(1≤n,q≤2×105)n, q (1\leq n, q\leq 2 \times 10^5)。

接下来一行nn个整数a1,a2,…,an(1≤ai≤109)a_1, a_2, \dots, a_n (1\leq a_i\leq 10^9)。

接下来qq行,每行一个形如1 x d或者2 s的操作,保证$1\leq x\leq n, 1\leq d\leq 10^9, 1\leq s\leq 10^{14}$。

输出格式

对于每个查询,输出一行,表示答案。

样例输入

5 5
1 2 3 4 5
2 6
2 5
1 1 100
2 10
2 1000

样例输出

3
2
0
5