#include <cstdio>
#define Nmax 15001
FILE *f=fopen("datorii.in","r");
FILE *g=fopen("datorii.out","w");
int N,M,arb[4*Nmax],x,p,A,B,X,S;
inline int suma(int a,int b)
{
return a+b;
}
void update(int nod, int st,int dr)
{
if(st==dr)
{
arb[nod]=x;
return;
}
int mij=(st+dr)/2;
if(p<=mij)
update(2*nod,st,mij);
else
update(2*nod+1,mij+1,dr);
arb[nod]=suma(arb[2*nod],arb[2*nod+1]);
}
void query(int nod,int st,int dr)
{
if(A<=st && dr<=B)
{
return;
}
S+=arb[nod];
int mij=(st+dr)/2;
if(A<=mij)
query(2*nod,st,mij);
if(mij<B)
query(2*nod+1,mij+1,dr);
}
void citire()
{
fscanf(f,"%d%d",&N,&M);
int i;
for(i=1;i<=N;i++)
{
fscanf(f,"%d",&x);
p=i;
update(1,1,N);
}
for(i=1;i<=4*N;i++)
fprintf(g,"%d ",arb[i]);
fprintf(g,"\n");
for(i=1;i<=M;i++)
{
fscanf(f,"%d%d%d",&X,&A,&B);
if(X==0)
{
p=A;
x=arb[p]-B;
update(1,1,N);
}
else
{
S=0;
query(1,1,N);
fprintf(g,"%d\n",S);
}
}
fclose(f);
fclose(g);
}
int main()
{
citire();
return 0;
}