#include<stdio.h>
int mod,val,poz,n,m,i,x,y,s;
int arb[100000];
void refresh(int nod,int li,int ls)
{
int mij=(li+ls)/2;
arb[nod]+=val;
if(li<ls)
if(poz<=mij)
refresh(nod*2,li,mij);
else
refresh(nod*2+1,mij+1,ls);
}
void query(int nod,int li,int ls)
{
int mij=(li+ls)/2;
if(x<=li&&y>=ls)
s+=arb[nod];
else
{
if(x<=mij)
query(nod*2,li,mij);
if(y>mij)
query(nod*2+1,mij+1,ls);
}
}
int main(void)
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
{
scanf("%d",&val);
poz=i;
refresh(1,1,n);
}
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&mod,&x,&y);
if(mod)
{
s=0;
query(1,1,n);
printf("%d\n",s);
}
else
{
poz=x;
val=-y;
refresh(1,1,n);
}
}
return 0;
}