#include <cstdio>
#define NMAX 15002
using namespace std;
int n, q, pos, val, sum, start, finish;
int Arb[4*NMAX+66];
void update(int nod, int st, int dr)
{
if(st == dr)
{
Arb[nod]=Arb[nod]+val;
}
else
{
int mid=(st+dr)/2;
if(pos<=mid) update(2*nod,st,mid);
else update(2*nod+1,mid+1,dr);
Arb[nod]=Arb[nod*2]+Arb[nod*2+1];
}
}
void query(int nod, int st, int dr)
{
if(start<=st && dr<=finish)
{
sum=sum+Arb[nod];
}
else
{
int mid=(st+dr)/2;
if(start<=mid)
{
query(nod*2,st,mid);
}
if(mid<finish)
{
query(nod*2+1,mid+1,dr);
}
}
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
int cod,a,b,x;
scanf("%d%d", &n, &q);
for(int i=1; i<=n; i++)
{
scanf("%d", &x);
pos=i;
val=x;
update(1,1,n);
}
while(q--)
{
scanf("%d%d%d", &cod, &a, &b);
if(!cod)
{
pos=a;
val=-b;
update(1,1,n);
}
else
{
sum=0;
start=a;
finish=b;
query(1,1,n);
printf("%d\n", sum);
}
}
return 0;
}