#include <fstream>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
int n,m;
int a[60004];
void build(int nod,int l,int r,int valori[]){
if(l==r){
a[nod]=valori[l];
}else{
int m=(l+r)/2;
build(2*nod,l,m,valori);
build(2*nod+1,m+1,r,valori);
a[nod]=a[2*nod]+a[2*nod+1];
}
}
void update(int nod,int l,int r,int poz,int val){
if(l==r){
a[nod]-=val;
}else{
int m=(l+r)/2;
if(poz<=m){
update(2*nod,l,m,poz,val);
}else{
update(2*nod+1,m+1,r,poz,val);
}
a[nod]=a[2*nod]+a[2*nod+1];
}
}
int query(int nod,int l,int r,int ql,int qr){
if(ql<=l&&r<=qr){
return a[nod];
}
int m=(l+r)/2;
int sum=0;
if(ql<=m){
sum+=query(2*nod,l,m,ql,qr);
}
if(qr>m){
sum+=query(2*nod+1,m+1,r,ql,qr);
}
return sum;
}
int main(){
cin>>n>>m;
int valori[15001];
for(int i=1;i<=n;i++){
cin>>valori[i];
}
build(1,1,n,valori);
for(int i=0;i<m;i++){
int tip,x,y;
cin>>tip>>x>>y;
if(tip==0){
update(1,1,n,x,y);
}else{
cout<<query(1,1,n,x,y)<<"\n";
}
}
}