#include <bits/stdc++.h>
using namespace std;
#define n_Max 15000
ifstream f("datorii.in");
ofstream g("datorii.out");
int arb[n_Max*4+3];
int a1[n_Max];
void update (int nod,int a,int b,int poz,int val){
int mij;
if(a==b) arb[nod]=val;
else {
mij=(a+b)/2;
if(poz<=mij) update(2*nod,a,mij,poz,val);
else update(2*nod+1,mij+1,b,poz,val);
arb[nod]=arb[2*nod]+arb[2*nod+1];
}
}
int querry (int nod,int a,int b,int qa,int qb){
int mij,rez1=0,rez2=0;
if(qa<=a && b<=qb) return arb[nod];
mij=(a+b)/2;
if(qa<=mij) rez1+=querry(2*nod,a,mij,qa,qb);
if(mij<qb) rez2+=querry(2*nod+1,mij+1,b,qa,qb);
return rez1+rez2;
}
int main(){
int n,m;
f>>n>>m;
for(int i=1;i<=n;++i){
f>>a1[i];
update(1,1,n,i,a1[i]);
}
int a,b,c;
for(int i=1;i<=m;++i){
f>>c>>a>>b;
if(c==0){
a1[a]-=b;
update(1,1,n,a,a1[a]);
}
else
g<<querry(1,1,n,a,b)<<'\n';
}
}