# include <stdio.h>
# define nmax 15001
# define FIN "datorii.in"
# define FOUT "datorii.out"
int n,m,i,a,b,c,H[4*nmax],x,rez;
void update(int c,int x,int y,int poz, int val)
{
int mij;
if (x==y)
H[c]+=val;
else
{
mij=(x+y) >> 1;
if (poz<=mij) update(c << 1,x,mij,poz,val);
else update(c << 1 | 1,mij+1,y,poz,val);
H[c]=H[c << 1]+H[c << 1 | 1];
}
}
void query(int c,int li,int lf)
{
int mij;
if (a<=li && lf<=b)
{
rez+=H[c];
return;
}
mij=(li+lf) >> 1;
if (a<=mij) query(c << 1,li,mij);
if (b>mij) query(c << 1 | 1,mij+1,lf);
}
int main()
{
freopen(FIN,"r",stdin);
freopen(FOUT,"w",stdout);
scanf("%d %d",&n,&m);
for (i=1; i<=n; i++)
{
scanf("%d",&x);
update(1,1,n,i,x);
}
for (i=1; i<=m; i++)
{
scanf("%d%d%d",&c,&a,&b);
if (c==0) update(1,1,n,a,-1b);
else
{
rez=0;
query(1,1,n);
printf("%d\n",rez);
}
}
return 0;
}