#include <stdio.h>
#define dim 15002
int n, m, arb[4*dim+66], lo, hi, val, pos;
void update(int nod, int l, int r)
{
if (l==r)
{
arb[nod]+=val;
return;
}
int div=(l+r)/2;
if (pos<=div) update(2*nod, l, div);
else update(2*nod+1, div+1, r);
arb[nod]=arb[2*nod]+arb[2*nod+1];
}
void query(int nod, int l, int r)
{
if (lo<=l && r<=hi)
{
val+=arb[nod];
return;
}
int div=(l+r)/2;
if (lo<=div) query(nod*2, l, div);
if (div<hi) query(nod*2+1, div+1, r);
}
int main()
{
int i, op;
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d %d\n", &n, &m);
for (i=1; i<=n; i++)
{
scanf("%d ", &val);
pos=i;
update(1, 1, n);
}
for (i=1; i<=m; i++)
{
scanf("%d ", &op);
if (!op)
{
scanf("%d %d\n", &pos, &val);
val=-val;
update(1, 1, n);
continue;
}
scanf("%d %d\n", &lo, &hi);
val=0;
query(1, 1, n);
printf("%d\n", val);
}
return 0;
}