#include <cstdio>
#define NMAX 15005
#include <cmath>
#include <algorithm>
using namespace std;
int arb[4*NMAX], k, n, m, x, cer, a, b;
void init(int poz, int x)
{
if(poz<1)
return;
arb[poz]+=x;
init(poz/2, x);
}
int cauta(int st, int dr, int poz_arb, int a, int b)
{
if(st>=a && dr<=b)
return arb[poz_arb];
if(st>b || dr<a)
return 0;
int med=(st+dr)/2;
return cauta(st, med, 2*poz_arb, a, b) + cauta(med+1, dr, 2*poz_arb+1, a, b);
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
scanf("%d %d", &n, &m);
double aux=log2(n);
aux=ceil(aux);
k=aux;
k=(1<<(k));
for(int i=1;i<=n;i++)
{
scanf("%d", &x);
arb[k+i-1]=x;
init((k+i-1)/2, x);
}
//printf("%d", arb[1]);
for(int i=1;i<=m;i++)
{
scanf("%d %d %d", &cer, &a, &b);
if(cer==0)
{
b=b*(-1);
init(k+a-1, b);
//printf("%d\n", arb[1]);
}
else
{
printf("%d\n", cauta(1, k, 1, a, b));
}
}
return 0;
}