#include <stdio.h>
#include <stdlib.h>
#define MAXN 15000
int v[MAXN+1];
int aint[4*MAXN+5];
inline int maxim(int a, int b){
return a > b ? a : b;
}
int poz, val;
void update(int p, int st, int dr){
if(st==dr)
aint[p]+=val;
else{
int m=(st+dr)/2;
if(poz<=m)
update(2*p, st, m);
else
update(2*p+1, m+1, dr);
aint[p]=aint[2*p]+aint[2*p+1];
}
}
int left, right;
int rez;
void query(int p, int st, int dr){
if(st>=left && dr<=right)
rez+=aint[p];
else{
int m=(st+dr)/2;
if(left<=m)
query(2*p, st, m);
if(right>m)
query(2*p+1, m+1, dr);
}
}
int main(){
int n, m;
FILE*fi,*fo;
fi=fopen("datorii.in","r");
fo=fopen("datorii.out","w");
fscanf(fi,"%d%d", &n, &m);
for(int i=1;i<=n;i++){
fscanf(fi,"%d", &v[i]);
poz=i;
val=v[i];
update(1, 1, n);
}
for(int i=1;i<=m;i++){
int c, a, b;
fscanf(fi,"%d%d%d", &c, &a, &b);
if(c==1){
left=a;
right=b;
rez=0;
query(1, 1, n);
fprintf(fo,"%d\n", rez);
}
else{
poz=a;
val=-b;
update(1, 1, n);
}
}
fclose(fi);
fclose(fo);
return 0;
}