#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
const int N = 15005;
int a[N],t[4*N],q,n,m,x,y,sol,i;
void build(int v,int l,int r){
if(l==r){
t[v]=a[l];
}else{
int mid=(l+r)/2;
build(2*v,l,mid);
build(2*v+1,mid+1,r);
t[v]=t[2*v]+t[2*v+1];
}
}
void up(int v,int l,int r,int pos,int val){
if(l==r){
t[v]-=val;
return;
}
int mid=(l+r)/2;
if(pos<=mid)
up(2*v,l,mid,pos,val);
else
up(2*v+1,mid+1,r,pos,val);
t[v]=t[2*v]+t[2*v+1];
}
void get(int v,int l,int r,int tl,int tr,int &sol){
if(tl<=l && r<=tr){
sol+=t[v];
}else{
int mid=(l+r)/2;
if(tl<=mid)get(2*v,l,mid,tl,tr,sol);
if(tr>mid)get(2*v+1,mid+1,r,tl,tr,sol);
}
}
int32_t main(){
in>>n>>m;
for(i=1;i<=n;i++)in>>a[i];
build(1,1,n);
for(i=1;i<=m;i++){
in>>q>>x>>y;
if(q==0){
up(1,1,n,x,y);
}else{
sol=0;
get(1,1,n,x,y,sol);
out<<sol<<'\n';
}
}
return 0;
}