#include <bits/stdc++.h>
#define intt int_fast32_t
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
vector<intt> arb(50000);
void update(intt st,intt dr,intt poz, intt val, intt nod){
intt 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);
}
}
intt query(intt st,intt dr,intt p1,intt p2,intt nod){
if(st==p1&&dr==p2)return arb[nod];
intt 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(){
intt n,m;
in>>n>>m;
for(intt i=1;i<=n;i++){
intt nr;
in>>nr;
update(1,n,i,nr,1);
}
for(intt i=0;i<m;i++){
intt 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";
}
}