# include <stdio.h>
int a[60005],sumf,i,n,b,l,x,y,k,poz;
void arb (int st,int dr,int i)
{
if (st==dr)
a[i]=x;
else
{
int mij=(st+dr)/2;
if (poz<=mij)
arb (st,mij,2*i);
else
arb (mij+1,dr,2*i+1);
a[i]=a[2*i]+a[2*i+1];
}
}
void sum (int st,int dr,int i)
{
if (x<=st && y>=dr)
{
sumf=sumf+a[i];
}
else
{
int mij=(st+dr)/2;
if (x<=mij)
sum (st,mij,2*i);
if (y>mij)
sum (mij+1,dr,2*i+1);
}
}
void inter (int st,int dr,int i)
{
if (st==dr)
a[i]=a[i]-y;
else
{
int mij=(st+dr)/2;
if (x<=mij)
inter (st,mij,2*i);
else
inter (mij+1,dr,2*i+1);
a[i]=a[2*i]+a[2*i+1];
}
}
int main ()
{
freopen ("datorii.in","r",stdin);
freopen ("datorii.out","w",stdout);
scanf ("%i%i",&n,&k);
for (i=1;i<=n;i++)
{
poz=i;
scanf ("%i",&x);
arb (1,n,1);
}
for (i=1;i<=k;i++)
{
scanf ("%i%i%i",&l,&x,&y);
if (l==1)
{
sumf=0;
sum (1,n,1);
printf ("%i\n",sumf);
}
else
inter (1,n,1);
}
return 0;
}