#include<stdio.h>
#define N 15005
FILE *f=fopen("datorii.in","r"), *g=fopen("datorii.out","w");
int n, a[N*4+N/2], start, final, pos, maxim, left, right ,m, val, test;
void update(int nod, int left, int right)
{
if(left==right)
{
if(a[nod]) a[nod]-=val;
else a[nod]=val;
return;
}
int div=left+(right-left)/2;
if( pos <= div)
update(2*nod, left, div);
else update(2*nod+1, div+1, right);
a[nod]=a[nod*2]+a[nod*2+1];
}
void caut(int nod, int left, int right)
{
if( start<= left && right <= final)
{
maxim+=a[nod];
return ;
}
int div= left + (right-left)/2;
if(start <= div)
caut(2*nod, left, div);
if(div< final)
caut(2*nod+1, div+1, right);
}
int main()
{
fscanf(f,"%d %d" , &n, &m);
for(int i=1; i<=n;i++)
{
fscanf(f,"%d", &val);
pos=i;
update(1,1,n);
}
for(int i=1;i<=m;i++)
{
fscanf(f,"%d", &test);
if(test==0)
{
fscanf(f,"%d %d", &pos, &val);
update(1,1,n);
}
else
{
fscanf(f,"%d %d", &start, &final);
maxim=0;
caut(1,1,n);
fprintf(g,"%d\n", maxim);
}
}
return 0;
}