#include <bits/stdc++.h>
#define nmax 15005
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int n,m;
int arb[4*nmax];
void update(int st, int dr, int poz, int pz, int val){
if(st>pz || dr<pz) return;
if(st==dr){
arb[poz] -= val;
return;
}
int mid = (st+dr)/2;
update(st,mid,2*poz,pz,val);
update(mid+1,dr,2*poz+1,pz,val);
arb[poz] = arb[2*poz+1] + arb[2*poz];
}
int fnd(int st, int dr, int poz, int a, int b){
if(st>b || dr<a) return 0;
if(st>=a && dr<=b) return arb[poz];
int mid = (st+dr)/2;
int e1 = fnd(st,mid,2*poz,a,b);
int e2 = fnd(mid+1,dr,2*poz+1,a,b);
return e1+e2;
}
void solve(){
in >> n >> m;
for(int i=1; i<=n; i++){
int x;
in >> x;
update(1,n,1,i,-x);
}
for(int i=1; i<=m; i++){
int c,a,b;
in >> c >> a >> b;
if(!c){
update(1,n,1,a,b);
}
else{
out << fnd(1,n,1,a,b) << '\n';
}
}
}
int main(){
solve();
}