#include<stdio.h>
#define N 15005
int s;
int t[3*N],n,m,a,b,val,poz,x,y,z;
void actual(int p,int u,int i)
{
t[i]-=val;
if(p==u)
return;
int m=(p+u)>>1;
if(poz<=m)
actual(p,m,i<<1);
else
actual(m+1,u,(i<<1)+1);
}
void actual1(int p,int u,int i)
{
t[i]+=val;
if(p==u)
return;
int m=(p+u)>>1;
if(poz<=m)
actual1(p,m,i<<1);
else
actual1(m+1,u,(i<<1)+1);
}
void suma(int p,int u,int i)
{
if(a<=p && u<=b)
{
s+=t[i];
return;
}
int m=(p+u)>>1;
if(a<=m)
suma(p,m,i<<1);
if(b>m)
suma(m+1,u,(i<<1)+1);
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&n,&m);
for(poz=1; poz<=n; poz++)
{
scanf("%d",&val);
actual1(1,n,1);
}
for(; m; m--)
{
scanf("%d%d%d",&x,&y,&z);
if(x)
{
s=0;
a=y;
b=z;
suma(1,n,1);
printf("%d\n",s);
}
else
{
poz=y;
val=z;
actual(1,n,1);
}
}
return 0;
}