#include<cstdlib>
#include<cstdio>
FILE *f=fopen("datorii.in","r"),*g=fopen("datorii.out","w");
int n,m,arb[400000],a,b,index,val;
void update(int nod,int st,int dr)
{
if (st==dr)
{
arb[nod]+=val;
return;
}
int mij=(st+dr)/2;
if (index<=mij)
update(nod*2,st,mij);
else
update(nod*2+1,mij+1,dr);
arb[nod]=arb[nod*2]+arb[nod*2+1];
}
int query(int nod,int st,int dr)
{
if (a<=st && b>=dr)
return arb[nod];
int s=0,mij=(st+dr)/2;
if (a <= mij)
s+=query(nod*2,st,mij);
if (mij < b)
s+=query(nod*2+1,mij+1,dr);
return s;
}
int main()
{
int i,op,x;
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++)
{
fscanf(f,"%d",&x);
index=i;val=x;
update(1,1,n);
}
for(i=1;i<=m;i++)
{
fscanf(f,"%d%d%d",&op,&a,&b);
if (op==1)
{
index=a;val=b;
op=query(1,1,n);
fprintf(g,"%d\n",op);
}
else
{
index=a;val=-b;
update(1,1,n);
}
}
fclose(f);
fclose(g);
return 0;
}