#include<stdio.h>
int A[30002],s,m;
void act(int n,int st,int dr,int i,int x)
{if(st==dr) A[n]+=x;
else {int m=(st+dr)/2;
if(i<=m)act(2*n,st,m,i,x);
else act(2*n+1,m+1,dr,i,x);
A[n]=A[2*n]+A[2*n+1];}
}
void in(int n,int st,int dr,int a,int b)
{if(a<=st&&dr<=b)
s+=A[n];
else
{int m=(st+dr)/2;
if(a<=m) in(2*n,st,m,a,b);
if(b>m) in(2*n+1,m+1,dr,a,b);}
}
int main()
{FILE *f=fopen("datorii.in","r"),*g=fopen("datorii.out","w");
int x,p,q,n;
fscanf(f,"%d%d",&n,&m);
for(x=1;x<=n;++x)
{fscanf(f,"%d",&q);
act(1,1,n,x,q);}
for(;m;--m)
{fscanf(f,"%d%d%d",&x,&p,&q);
if(x){s=0;
in(1,1,n,p,q);
fprintf(g,"%d\n",s);}
else act(1,1,n,p,-q);}
fclose(f);
fclose(g);
return 0;
}