// 80 p (un TLE)
#include <stdio.h>
#define DIM 5*15001
int s[DIM];
int n, m;
int i, x;
int cod, k, v, a, b; // cod, ziua, valoarea, intervalul
int ans;
int X, Y;
void Update(int, int, int);
void Query(int, int, int);
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d%d", &n, &m);
for (i = 1; i <= n; i++ )
{
scanf("%d", &v);
k = i;
Update(1, 1, n);
}
for (i = 1; i <= m; i++ )
{
scanf("%d%d%d", &cod, &X, &Y);
if ( cod == 0 )
{
k = X;
v = -Y;
Update(1, 1, n);
}
else
{
a = X, b = Y;
Query(1, 1, n);
printf("%d\n", ans);
ans = 0;
}
}
return 0;
}
void Update(int nod, int left, int right)
{
if ( left == right )
{
s[nod] += v;
return;
}
int mid = (left + right) / 2;
if ( k <= mid )
Update(2 * nod, left, mid);
else
Update(2 * nod + 1, mid + 1, right);
s[nod] = s[2 * nod] + s[2 * nod + 1];
}
void Query(int nod, int left, int right)
{
if ( a <= left && right <= b )
{
ans += s[nod];
return;
}
int mid = (left + right) / 2;
if ( a <= mid )
Query(2 * nod, left, mid);
if ( b > mid )
Query(2 * nod + 1, mid + 1, right);
}