#include<cstdio>
#include<algorithm>
using namespace std;
int arb[400010],x,i,j,sum,a,OK,b,n,m,t;
void update(int st,int dr, int nr){
if(st==dr){
if(OK) arb[nr]=x;
else arb[nr]-=x;
return;
}
int m=(st+dr)/2;
if(j<=m)update(st,m,2*nr);
else update(m+1,dr,2*nr+1);
arb[nr]=arb[2*nr]+arb[2*nr+1];
}
void query(int st,int dr,int nr){
if(a<=st&&dr<=b){
sum+=arb[nr];
return;
}
int m=(st+dr)/2;
if(a<=m)query(st,m,2*nr);
if(m<b)query(m+1,dr,2*nr+1);
// }
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++){
scanf("%d",&x);
j=i;
OK=1;
update(1,n,1);
}
for(i=1;i<=m;i++){
scanf("%d%d%d",&t,&a,&b);
if(t==0){
j=a;
x=b;
OK=0;
update(1,n,1);
}
else{
sum=0;
query(1,n,1);
printf("%d\n",sum);
}
}
}