#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,ok=0;
inline int suma(int a,int b)
{
return a+b;
}
void update(int nod, int st,int dr)
{
if(st==dr)
{
if(ok)
arb[nod]=arb[nod]-x;
else
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)
{
S+=arb[nod];
return;
}
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);
}
ok=1;
for(i=1;i<=M;i++)
{
fscanf(f,"%d%d%d",&X,&A,&B);
if(X==0)
{
p=A;
x=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;
}