#include <fstream>
#define DIM 15010
using namespace std;
int A[4*DIM];
int v[DIM];
int n, m, i, a, b, x;
void build(int nod, int st, int dr) {
if (st == dr)
A[nod] = v[st];
else {
int mid = (st + dr)/2;
build(2*nod, st, mid);
build(2*nod+1, mid+1, dr);
A[nod] = A[2*nod] + A[2*nod+1];
}
}
void update(int nod, int st, int dr, int p, int x) {
if (st == dr)
A[nod] -= x;
else {
int mid = (st + dr)/2;
if (p <= mid)
update(2*nod, st, mid, p, x);
else
update(2*nod+1, mid+1, dr, p, x);
A[nod] = A[2*nod] + A[2*nod+1];
}
}
int query(int nod, int st, int dr, int a, int b) {
if (a<=st && dr <= b)
return A[nod];
int mid = (st + dr)/2;
int r = 0;
if (a <= mid)
r += query(2*nod, st, mid, a, b);
if (b>mid)
r += query(2*nod+1, mid+1, dr, a, b);
return r;
}
int main() {
ifstream fin ("datorii.in");
ofstream fout("datorii.out");
fin>>n>>m;
for (i=1;i<=n;i++)
fin>>v[i];
build(1, 1, n);
for (i=1;i<=m;i++) {
fin>>x>>a>>b;
if (x == 1)
fout<<query(1, 1, n, a, b)<<"\n";
else
update(1, 1, n, a, b);
}
return 0;
}