#include <bits/stdc++.h>
int aint[60001];
void update(int nod,int val,int st,int dr,int p){
if(st==dr)
aint[p]+=val;
else {
int mij=(st+dr)/2;
if(nod<=mij){
update(nod,val,st,mij,p*2);
}
else {
update(nod,val,mij+1,dr,p*2+1);
}
aint[p]=aint[p*2]+aint[p*2+1];
}
}
int calc(int a,int b,int st,int dr,int p){
if(a<=st && dr<=b)
return aint[p];
else {
int mij=(st+dr)/2,s=0;
if(a<=mij){
s+=calc(a,b,st,mij,p*2);
}
if(b>mij){
s+=calc(a,b,mij+1,dr,p*2+1);
}
return s;
}
}
int main()
{
int n,q,i,k,t,a,b;
FILE*fi,*fo;
fi=fopen("datorii.in","r");
fo=fopen("datorii.out","w");
fscanf(fi,"%d%d",&n,&q);
for(i=1;i<=n;i++){
fscanf(fi,"%d",&k);
update(i,k,1,n,1);
}
for(i=0;i<q;i++){
fscanf(fi,"%d",&t);
if(t==1){
fscanf(fi,"%d%d",&a,&b);
fprintf(fo,"%d\n",calc(a,b,1,n,1));
}
else {
fscanf(fi,"%d%d",&a,&b);
b=-b;
update(a,b,1,n,1);
}
}
fclose(fo);
fclose(fi);
return 0;
}