//#include <iostream>
#include <stdio.h>
#define nmax 100001
using namespace std;
FILE *f=fopen("arbint.in","r"),*g=fopen("arbint.out","w");
int a,b,n,arb[4*nmax],poz,val;
inline int maxi(int a,int b)
{
if(a<b)
return b;
return a;
}
int query(int nod, int st, int dr)
{int mijl,sum=0;
if(st==dr)
return arb[nod];
mijl=(st+dr)/2;
if(a<=mijl)
sum+=query(nod*2,st,mijl);
if(b>mijl)
sum+=query(nod*2+1,mijl+1,dr);
return sum;
}
void update(int nod, int st, int dr)
{
int mijl=(st+dr)/2;
if(st==dr)
arb[nod]-=val;
else {
if(poz<=mijl)
update(nod*2,st,mijl);
else
update(nod*2+1,mijl+1,dr);
arb[nod]=arb[nod*2]+arb[nod*2+1];
}
}
int main()
{
int i,j,m,t,p=1,maxim;
fscanf(f,"%d %d",&n,&m);
while(p<n)
p*=2;
for(i=1;i<=n;i++)
{fscanf(f,"%d",&val);
val=-val;
poz=i;
update(1,1,p);
}
for(j=1;j<=m;j++)
{
fscanf(f,"%d %d %d",&t,&a,&b);
if(t==1)
fprintf(g,"%d\n",query(1,1,p));
else {
poz=a;
val=b;
update(1,1,p);
}
}
fclose(f);
fclose(g);
return 0;
}