#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define sc second
#define ft first
ifstream fin("arbint.in"); ofstream fout("arbint.out");
int A[15010], N, M;
int a,b;
int T[60010];
long long construct(int l, int r, int nod){
if(r==l){T[nod]=A[r];}
else{int mij=l+r; mij/=2;
T[nod]=construct(l, mij, nod*2)+construct(mij+1, r, 2*nod+1);}
return T[nod];
}
int sum(int n, int al, int ar, int l, int r){
if(l>r){return 0;}
if(al==l && ar==r){return T[n];}
int mij=ar+al; mij/=2;
return sum(2*n, al, mij, l, min(mij,r))+sum(2*n+1, mij+1, ar, max(l, mij+1), r) ;
}
void update(int n, int al, int ar, int p, int v){
if(ar==al){T[n]-=v;}
else{
int mij=ar+al; mij/=2;
if(p<=mij){
update(2*n, al, mij, p, v);
}
else{
update(2*n+1, mij+1, ar, p, v);
}
T[n]=T[2*n]+T[2*n+1];
}
}
int main() {
fin>>N>>M;
for(int i=1; i<=N; i++){
fin>>A[i];
}
construct(1, N, 1);
bool o;
for(;M;M--){
fin>>o;
if(!o){fin>>a>>b; update(1, 1, N, a, b);}
else{fin>>a>>b;
fout<<sum(1, 1, N, a, b)<<"\n";
}
}
}