#include<stdio.h>
#define tmax 35000
#define nmax 15000
long t[tmax],n,m,a[nmax];
void update(long k,long st,long dr,long i,long a)
{
long m;
if (st==dr)
{
t[k]=a;
return;
}
m=(st+dr)>>1;
if (i<=m)
update(k<<1,st,m,i,a);
else update((k<<1)+1,m+1,dr,i,a);
t[k]=t[k<<1]+t[(k<<1)+1];
}
void read()
{
scanf("%ld%ld",&n,&m);
long i;
for (i=1;i<=n;i++)
{
scanf("%ld",&a[i]);
update(1,1,n,i,a[i]);
}
}
long interogare(long k,long st,long dr,int b,int c)
{
long m,fs=0,fd=0;
if (b<=st && c>=dr)
return t[k];
m=(st+dr)>>1;
if (b<=m)
{
fs=interogare(k<<1,st,m,b,c);
}
if (c>=m+1)
fd=interogare((k<<1)+1,m+1,dr,b,c);
return fs+fd;
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
read();
long i;
int o,b,c;
for (i=1;i<=m;i++)
{
scanf("%d%d%d",&o,&b,&c);
if (o==0)
{
a[b]-=c;
update(1,1,n,b,a[b]);
}
else printf("%ld\n",interogare(1,1,n,b,c));
}
return 0;
}