#include <stdio.h>
FILE *f,*g;
int v[50000];
void add(int nod,int st, int dr, int pos , int val)
{
int m;
v[nod]+=val;
if (st!=dr) {
m=(st+dr)/2;
if (pos<=m)
add(nod*2,st,m,pos,val);
else
add(nod*2+1,m+1,dr,pos,val);
}
}
int sum;
void ask(int nod, int st, int dr, int aa, int bb)
{
if (aa<=st && dr<=bb)
sum+=v[nod];
else {
int mij=(st+dr)/2;
if (aa<=mij)
ask(nod*2,st,mij,aa,bb);
if (bb>mij)
ask(nod*2+1,mij+1,dr,aa,bb);
}
}
int n,m,x,i,bol,s1,s2;
int main() {
f=fopen("datorii.in","r");
g=fopen("datorii.out","w");
fscanf(f,"%d%d",&n,&m);
for (i=1;i<=n;i++) {
fscanf(f,"%d",&x);
add(1,1,n,i,x);
}
for (i=1;i<=m;i++) {
fscanf(f,"%d%d%d",&bol,&s1,&s2);
if (bol==0)
add(1,1,n,s1,-s2);
else
{
sum=0;
ask(1,1,n,s1,s2);
fprintf(g,"%d\n",sum);
}
}
fclose(g);
return 0;
}