#include <cstdio>
#include<algorithm>
using namespace std;
int a[15005];
int t[60005];
void build(int v,int tl,int tr)
{
if(tl==tr)
t[v]=a[tl];
else
{
int tm=(tl+tr)/2;
build(2*v,tl,tm);
build(2*v+1,tm+1,tr);
t[v]=t[2*v]+t[2*v+1];
}
}
int getsum(int v,int tl,int tr, int l,int r)
{
if(l>r)
return 0;
if(tl==l && tr==r)
return t[v];
else
{
int tm=(tl+tr)/2;
return getsum(2*v,tl,tm,l,min(r,tm))+getsum(2*v+1,tm+1,tr,max(l,tm+1),r);
}
}
void update (int v, int tl, int tr, int pos,int val)
{
if(tl==tr)
t[v]-=val;
else
{
int tm=(tl+tr)/2;
if(pos<=tm)
update(2*v,tl,tm,pos,val);
else
update(2*v+1,tm+1,tr,pos,val);
t[v]=t[2*v]+t[2*v+1];
}
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
int n,m;
scanf("%d%d",&n,&m);
for(int i=1; i<=n; i++)
scanf("%d",&a[i]);
build(1,1,n);
for(int i=1; i<=m; i++)
{
int t,a,b;
scanf("%d%d%d",&t,&a,&b);
if(t==0)
update(1,1,n,a,b);
else
printf("%d\n",getsum(1,1,n,a,b));
}
return 0;
}