#include <cstdio>
#include <cstdlib>
FILE *fin=fopen("datorii.in","r");
FILE *fout=fopen("datorii.out","w");
int a[100000];
void zero(int nod, int x, int y)
{
a[nod]=0;
if (x<y)
{
int mij = (x+y)/2;
zero(nod*2+1, x, mij);
zero(nod*2+2, mij+1, y);
}
}
void update(int nod, int x, int y, int p, int v)
{
a[nod]+=v;
if (x<y)
{
int mij = (x+y)/2;
if (p<=mij)
update(nod*2+1,x,mij,p,v);
else
update(nod*2+2,mij+1,y,p,v);
}
}
int query(int nod, int x, int y, int aa, int bb)
{
if ((aa<=x) && (y<=bb))
return a[nod];
else
{
int sum = 0;
int mij = (x+y)/2;
if (aa<=mij)
sum+=query(nod*2+1,x,mij,aa,bb);
if (bb>mij)
sum+=query(nod*2+2,mij+1,y,aa,bb);
return sum;
}
}
int main (int argc, char * const argv[]) {
int n,m;
fscanf(fin, "%d%d",&n,&m);
// zero(0,1,n);
for (int i=0; i<n; i++)
{
int x;
fscanf(fin, "%d", &x);
update(0,1,n,i+1,x);
}
for (int i=0; i<m; i++)
{
int c,x,y;
fscanf(fin, "%d%d%d",&c,&x,&y);
if (c)
fprintf(fout,"%d\n",query(0,1,n,x,y));
else
update(0,1,n,x,-y);
}
fclose(fin);
fclose(fout);
return 0;
}