#include<stdio.h>
FILE *fin=fopen("datorii.in","r"),
*fout=fopen("datorii.out","w");
int N,M,A[4*15000];
void add(int b,int e,int i,int nod,int val){
if(b==e)
A[nod]+=val;
else{
if(i<=(b+e)/2){
add(b,(b+e)/2,i,nod*2,val);
A[nod]+=val;
}
else{
add((b+e)/2+1,e,i,nod*2+1,val);
A[nod]+=val;
}
}
}
int ask(int nod,int b,int e,int i,int j){
int p1,p2;
if(i>e || j<b)
return -1;
if(b>=i&&j>=e)
return A[nod];
p1=ask(2*nod,b,(b+e)/2,i,j);
p2=ask(2*nod+1,(b+e)/2+1,e,i,j);
if(p1==-1)
return p2;
if(p2==-1)
return p1;
return p1+p2;
}
int main(){
fscanf(fin,"%d %d",&N,&M);
for(int i=1;i<=N;i++){
int x;
fscanf(fin,"%d",&x);
add(1,N,i,1,x);
}
for(int i=1;i<=M;i++){
int c,x,y;
fscanf(fin,"%d %d %d",&c,&x,&y);
if(c==0)
add(1,N,x,1,-y);
else
fprintf(fout,"%d\n",ask(1,1,N,x,y));
}
fclose(fin);
fclose(fout);
return 0;
}