#include<cstdio>
#include<algorithm>
using namespace std;
int aint[100005];
int ans;
void update(int nod,int st,int dr,int p,int v)
{
if(st==dr)
{
aint[nod]-=v;
return;
}
int med=(st+dr)/2;
if(p>med)
update(2*nod+1,med+1,dr,p,v);
else
update(2*nod,st,med,p,v);
aint[nod]=aint[2*nod]+aint[2*nod+1];
}
void query(int nod,int st,int dr,int x,int y)
{
if(x<=st && dr<=y)
{
ans+=aint[nod];
return;
}
int med=(st+dr)/2;
if(x<=med)
query(2*nod,st,med,x,y);
if(y>med)
query(2*nod+1,med+1,dr,x,y);
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
int n,m,p,q,t;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%d",&p);
update(1,1,n,i,-p);
}
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&t,&p,&q);
if(t==0)
update(1,1,n,p,q);
else
{
ans=0;
query(1,1,n,p,q);
printf("%d\n",ans);
}
}
return 0;
}