var v : array[1..15000*4+10] of integer;
i,j,n,m,op,a,b,sum : longint;
f,g : text;
procedure add(nod,p,u,t,s : integer);
var m : integer;
begin
inc(v[nod],s);
if p<u then
begin
m:=(p+u)div 2;
if t<=m then add(2*nod,p,m,t,s)
else add(2*nod+1,m+1,u,t,s);
end;
end;
procedure query(nod,p,u,x,y : integer);
var m : integer;
begin
if (x<=p)and(u<=y)then inc(sum,v[nod])
else
begin
m:=(p+u)div 2;
if x<=m then query(2*nod,p,m,x,y);
if y>m then query(2*nod+1,m+1,u,x,y);
end;
end;
begin
assign(f,'datorii.in');reset(f);
assign(g,'datorii.out');rewrite(g);
read(f,n,m);
for i:=1 to n do
begin
read(f,a);
add(1,1,n,i,a);
end;
for i:=1 to m do
begin
read(f,op,a,b);
if op=0 then add(1,1,n,a,-b)
else
begin
sum:=0;
query(1,1,n,a,b);
writeln(g,sum);
end;
end;
close(g);
end.