#include <stdio.h>
#include <vector>
#include <algorithm>
#define N 15002
using namespace std;
int i, j, n, m, x, a, b, s, v[N], A[4*N];
bool c;
void up(int k, int l, int r, int p, int val)
{
if(l == r)
A[k] = val;
else
{
int m = (l + r) / 2;
if(p <= m)
up(2 * k, l, m, p, val);
else
up(2 * k + 1, m + 1, r, p, val);
A[k] = A[2 * k] + A[2 * k + 1];
}
}
void q(int k, int l, int r)
{
if(a <= l && r <= b)
s += A[k];
else
{
int m = (l + r) / 2;
if(a <= m)
q(2 * k, l, m);
if(b > m)
q(2 * k + 1, m + 1, r);
}
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d%d", &n, &m);
for(i = 0; i < n; i++)
{
scanf("%d", &v[i]);
up(1, 0, n - 1, i, v[i]);
}
for(i = 0; i < m; i++)
{
scanf("%d%d%d", &c, &a, &b);
a--;
if(c)
{
s = 0;
b--;
q(1, 0, n - 1);
printf("%d\n", s);
}
else
{
v[a] -= b;
up(1, 0, n - 1, a, v[a]);
}
}
return 0;
}