#include <bits/stdc++.h>
#define int int_fast32_t
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
vector<int> arb(50000);
void update(int st,int dr,int poz, int val, int nod){
int mij=(st+dr)/2;
arb[nod]+=val;
if(st!=dr){
if(poz<=mij) update(st,mij,poz,val,nod*2);
else update(mij+1,dr,poz,val,nod*2+1);
}
}
int query(int st,int dr,int p1,int p2,int nod){
if(st==p1&&dr==p2)return arb[nod];
int mij=(st+dr)/2;
if(p2<=mij) return query(st,mij,p1,p2,nod*2);
if(p1>mij) return query(mij+1,dr,p1,p2,nod*2+1);
return query(st,mij,p1,mij,nod*2)+query(mij+1,dr,mij+1,p2,nod*2+1);
}
int main(){
int n,m;
in>>n>>m;
for(int i=1;i<=n;i++){
int nr;
in>>nr;
update(1,n,i,nr,1);
}
for(int i=0;i<m;i++){
int t,a,b;
in>>t>>a>>b;
if(t==0) update(1,n,a,-b,1);
else out<<query(1,n,a,b,1)<<"\n";
}
return 0;
}