# include <fstream>
# define DIM 33000
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int v[DIM],n,m,x,i,val,st,dr,nr;
void build(int nod,int st,int dr){
if(st==dr){
fin>>x;
v[nod]=x;
}
else{
int mij=(st+dr)/2;
build(2*nod,st,mij);
build(2*nod+1,mij+1,dr);
v[nod]=v[2*nod]+v[2*nod+1];
}
}
void update(int nod,int st,int dr,int poz,int val){
if(st==dr)
v[nod]-=val;
else{
int mij=(st+dr)/2;
if(poz<=mij)
update(2*nod,st,mij,poz,val);
else
update(2*nod+1,mij+1,dr,poz,val);
v[nod]=v[2*nod]+v[2*nod+1];
}
}
void query(int nod,int st,int dr,int p,int u){
if(p<=st&&u>=dr)
nr+=v[nod];
else{
int mij=(st+dr)/2;
if(p<=mij)
query(2*nod,st,mij,p,u);
if(u>mij)
query(2*nod+1,mij+1,dr,p,u);
}
}
int main () {
fin>>n>>m;
build(1,1,n);
for(i=1;i<=m;i++){
fin>>val>>st>>dr;
if(val==0){
update(1,1,n,st,dr);
continue;
}
nr=0;
query(1,1,n,st,dr);
fout<<nr<<"\n";
}
return 0;
}