#include <stdio.h>
#define NMAX 15005
using namespace std;
FILE *fin = fopen("datorii.in", "r");
FILE *fout = fopen("datorii.out", "w");
int n,q,cerinta,a,b,poz,start,finish,sum[4*NMAX],i,val;
void update(int nod, int left, int right, int val)
{
if(left == right)
{
sum[nod] += val;
return;
}
int mid = (left+right) /2;
if(poz <= mid)
update(2*nod, left, mid, val);
else
update(2*nod+1, mid+1, right, val);
sum[nod] += val;
}
int query(int nod, int left, int right)
{
int r1 = 0, r2 = 0;
if(start<=left and right<=finish)
return sum[nod];
int mid = (left+right) /2;
if(start <= mid)
r1 = query(2*nod, left, mid);
if(finish > mid)
r2 = query(2*nod+1, mid+1, right);
return r1+r2;
}
int main()
{
fscanf(fin, "%d%d", &n,&q);
for(i=1; i<=n; ++i)
{
fscanf(fin, "%d", &val);
poz = i;
update(1, 1, n, val);
}
while(q)
{
fscanf(fin, "%d%d%d", &cerinta,&a,&b);
if(cerinta)
{
start = a;
finish = b;
fprintf(fout, "%d\n", query(1, 1, n));
}
else
{
poz = a;
update(1, 1, n, -b);
}
--q;
}
fclose(fin);
fclose(fout);
return 0;
}