#include <cstdio>
#define NMAX 15000
using namespace std;
int aint[NMAX*4],ans,poz,val,left,right;
void update( int p, int st, int dr ) {
if( st == dr ) {
aint[p] += val;
return;
}
else {
int m = (st + dr) / 2;
if( poz <= m )
update( 2*p, st, m );
else
update( 2*p + 1, m + 1, dr );
aint[p] = aint[2*p] + aint[2*p+1];
}
}
void query( int p, int st, int dr ) {
if( left <= st && dr <= right ) {
ans += aint[p];
return;
}
else {
int m = ( st + dr ) / 2;
if( left <= m )
query( 2*p, st, m );
if( m + 1 <= right )
query( 2*p + 1, m + 1, dr );
}
}
int main() {
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
int tip,n,m,i,nr;
scanf("%d%d",&n,&m);
for( i = 1; i <= n; i ++ ) {
scanf("%d",&nr);
val = nr;
poz = i;
update( 1,1,n);
}
for( i = 1; i <= m; i ++ ) {
scanf("%d",&tip);
if( tip == 0 ) {
scanf("%d%d",&poz,&val);
val = val * -1;
update(1,1,n);
}
else {
scanf("%d%d",&left,&right);
ans = 0;
query(1,1,n);
printf("%d\n",ans);
}
}
return 0;
}