#include <bits/stdc++.h>
#define INF 10
using namespace std;
int n;
int arb[60000], poz, val, a, b;
void update(int p, int st, int dr)
{
if(st == dr)
{
arb[p] += val;
return;
}
int m = (st + dr) / 2;
if(poz <= m)
update(2*p, st, m);
else
update(2*p+1, m+1, dr);
arb[p] = arb[2*p] + arb[2*p+1];
}
int query(int p, int st, int dr)
{
if(a <= st && dr <= b)
return arb[p];
int m = (st + dr) / 2, m1 = -INF, m2 = -INF;
if(a <= m)
{
m1 = query(2*p, st, m);
if(b > m)
return m1 + query(2*p+1, m+1, dr);
return m1;
}
if(b > m)
return query(2*p+1, m+1, dr);
return 0;
}
int main()
{
FILE * fin = fopen("datorii.in", "r");
FILE * fout = fopen("datorii.out", "w");
ios_base::sync_with_stdio(false);
int m, i, x;
fscanf(fin, "%d%d", &n, &m);
for(poz = 1; poz <= n; ++poz)
{
fscanf(fin, "%d", &val);
update(1, 1, n);
}
do {
fscanf(fin, "%d", &x);
if(x == 0)
{
fscanf(fin, "%d%d", &poz, &val);
val = -val;
update(1, 1, n);
}
else
{
fscanf(fin, "%d%d", &a, &b);
fprintf(fout, "%d\n", query(1, 1, n));
}
} while(--m);
return 0;
}