#include fstream
#define NMax 100005
using namespace std;
ifstream fin(aib.in);
ofstream fout(aib.out);
int N,M,S[NMax];
void Update(int P,int V)
{
for(int i=P;i=N;i+=i&(-i))
S[i]+=V;
}
int Query(int P)
{
int Sum=0;
for(int i=P;i0;i-=i&(-i))
Sum+=S[i];
return Sum;
}
int Search(int V)
{
int Step;
for (Step = 1; Step N; Step = 1);
for(int i = 0; Step; Step = 1) {
if (i+Step = N && V = S[i+Step]) {
i += Step, V -= S[i];
if (!V)
return i;
}
}
return -1;
}
int main()
{
finNM;
for(int i=1;i=N;i++)
{
int X;
finX;
Update(i,X);
}
while(M--)
{
int op,a,b;
finopa;
if(op!=2)
finb;
if(op==0)
{
Update(a,b);
}
if(op==1)
{
foutQuery(b)-Query(a-1)n;
}
if(op==2)
{
foutSearch(a)n;
}
}
return 0;
}