#include <stdio.h>
#include <math.h>
long n, m, choice, num1, num2, arb[60010], i, a[15010];
void add(long val, long poz, long nod, long stanga, long dreapta) {
if (poz > dreapta || poz < stanga) {
return;
}
arb[nod] += val;
if (stanga != dreapta) {
add(val, poz, nod * 2, stanga, (stanga + dreapta) / 2);
add(val, poz, nod * 2 + 1, (stanga + dreapta) / 2 +1, dreapta);
}
}
long suma(long left, long right, long nod, long stanga, long dreapta) {
if (right < stanga || left > dreapta) {
return 0;
}
if (stanga >= left && dreapta <= right) {
return arb[nod];
}
return suma(left, right, nod * 2, stanga, (stanga + dreapta) / 2) +
suma(left, right, nod * 2 + 1, (stanga + dreapta) / 2 + 1, dreapta);
}
int main() {
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%ld%ld", &n, &m);
for (i = 1; i <= n; ++i) {
scanf("%ld", &a[i]);
add(a[i], i, 1, 1, n);
}
for (i = 1; i <= m; ++i) {
scanf("%ld%ld%ld", &choice, &num1, &num2);
if (choice == 0) {
add(-num2, num1, 1, 1, n);
} else {
printf("%ld\n", suma(num1, num2, 1, 1, n));
}
}
return 0;
}