#include <stdio.h>
int a[60001],arr[15001],n,nr,m;
void plas(int pos,int st,int dr,int nod)
{
if(st==dr)
{
a[nod]=nr;
}
else
{
int mij=(st+dr)/2;
if(pos<=mij) plas(pos,st,mij,2*nod);
else plas(pos,mij+1,dr,2*nod+1);
a[nod]=a[2*nod]+a[2*nod+1];
}
}
int inter(int p1,int p2,int st,int dr,int nod)
{
if(st==p1&&dr==p2) return a[nod];
else
{
int mij=(st+dr)/2;
if(p2<=mij) return inter(p1,p2,st,mij,2*nod);
else if(p1>mij) return inter(p1,p2,mij+1,dr,2*nod+1);
else
{
return inter(p1,mij,st,mij,2*nod)+inter(mij+1,p2,mij+1,dr,2*nod+1);
}
}
}
int main()
{
freopen ("datorii.in","r",stdin);
freopen ("datorii.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&nr);
arr[i]=nr;
plas(i,1,n,1);
}
int tip,p1,p2;
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&tip,&p1,&p2);
if(tip==1) printf("%d\n",inter(p1,p2,1,n,1));
else
{
arr[p1]-=p2;
nr=arr[p1];
plas(p1,1,n,1);
}
}
}