#include <stdio.h>
#include <stdlib.h>
int v[100000],sum,val,p,a,b;
void creare(int, int, int);
void actualiz(int,int,int);
void suma(int, int, int);
int main()
{
int l,i,x,m;
FILE *f,*g;
f=fopen("datorii.in","r");
g=fopen("datorii.out","w");
fscanf(f,"%d%d",&l,&m);
for(i=1;i<=l;i++){
fscanf(f,"%d",&x);
p=i;
val=x;
creare(1,1,l);
}
for(i=1;i<=m;i++){
fscanf(f,"%d%d%d",&x,&a,&b);
if(x==0){
p=a;
val=b;
actualiz(1,1,l);
}
else {
sum=0;
suma(1,1,l);
fprintf(g,"%d\n",sum);
}
}
f=fclose(f);
g=fclose(g);
}
void creare(int n, int s, int d){
int m;
if(s==d){
v[n]=val;
}
else{
m=(s+d)/2;
if(p<=m){
creare(2*n,s,m);
}
else creare(2*n+1,m+1,d);
v[n]=v[2*n]+v[2*n+1];
}
}
void actualiz(int n, int s, int d){
int m;
if(s==d){
v[n]-=val;
}
else{
m=(s+d)/2;
if(p<=m){
actualiz(2*n,s,m);
}
else actualiz(2*n+1,m+1,d);
v[n]=v[2*n]+v[2*n+1];
}
}
void suma(int n, int s, int d){
int m;
if(a<=s && b>=d){
sum+=v[n];
}
else {
m=(s+d)/2;
if(a<=m)
suma(2*n,s,m);
if(m+1<=b)
suma(2*n+1,m+1,d);
}
}