#include<fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
const int Nmax = 15002;
int A[15*Nmax];
int v[Nmax];
int N,M;
int Query(int a,int b,int st,int dr,int i){
if(a<=st && dr<=b) return A[i];
int mij=(st+dr)/2;
if(a<=mij && b>mij){
int left=Query(a,mij,st,mij,2*i);
int right=Query(mij+1,b,mij+1,dr,2*i+1);
return left+right;
}
if(b<=mij) return Query(a,b,st,mij,2*i);
else return Query(a,b,mij+1,dr,2*i+1);
}
void Update(int where,int st,int dr,int i){
if(st==dr) A[i]=v[where];
else{
int mij=(st+dr)/2;
if(where<=mij) Update(where,st,mij,2*i);
else Update(where,mij+1,dr,2*i+1);
A[i]=A[2*i]+A[2*i+1];
}
}
int main(){
in>>N>>M;
for(int i=1;i<=N;i++){
in>>v[i];
Update(i,1,N,1);
}
for(int i=1;i<=M;i++){
int a,b,c;
in>>c>>a>>b;
if(c==0){
v[a]-=b;
Update(a,1,N,1);
}
if(c==1){
out<<Query(a,b,1,N,1)<<'\n';
}
}
return 0;
}