#include <stdio.h>
#include <bits/stdc++.h>
int vv[10000], n, m, j, k;
int query(int n, int ll, int rr, int a, int b)
{
if(a <= ll && rr <= b)
return vv[n];
int r = 0, middle = (ll+rr)/2;
if(a <= middle)
r += query(2*n, ll, middle, a, b);
if(b > middle)
r += query(2*n+1, middle+1, rr, a, b);
return r;
}
void update(int n, int ll, int rr, int a, int b, int v)
{
if(a <= ll && rr <= b) {
vv[n] += v;
return;
}
int middle = (ll+rr)/2;
if(a <= middle)
update(2*n, ll, middle, a, b, v);
if(b > middle)
update(2*n+1, middle+1, rr, a, b, v);
vv[n] = vv[n*2]+vv[n*2+1];
}
int main()
{
int i, a, b, d;
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d %d", &n, &m);
for(i = 1; i <= n; ++ i) {
scanf("%d", &a);
update(1, 1, n, i, i, a);
}
for(i = 1; i <=m; ++ i) {
scanf("%d %d %d", &a, &b, &d);
if(a==1) {
int sum = query(1, 1, n, b, d);
printf("%d\n", sum);
}
else { update(1, 1, n, b, b, -d);
}
}
return 0;
}