#include <iostream>
#include <fstream>
#define Nmax 15005
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int arb[4*Nmax], ans, n, m, x, qu, a, b;
void upd(int nod, int l, int r, int poz, int val,int scad)
{
int middle = (l + r) / 2;
if(l == r)
{
arb[nod] += val - scad;
return;
}
if(poz <= middle)
upd(2*nod , l , middle, poz, val,scad);
else
upd(2*nod + 1, middle + 1, r, poz, val,scad);
arb[nod] = arb[2*nod] + arb[2*nod + 1];
}
void q(int nod, int l ,int r,int L, int R)
{
int middle = (l + r) / 2;
if(L <= l && r <= R)
{
ans += arb[nod];
return;
}
if(l > R || r < L)
{
return;
}
q(2*nod, l, middle, L, R);
q(2*nod + 1, middle + 1, r, L , R);
}
int main()
{
fin >> n >> m;
for(int i = 1; i <= n; i++)
{
fin >> x;
upd(1, 1, n, i, x, 0);
}
for(int i = 1; i <= m; i++)
{
fin >> qu >> a >> b;//valoare zi
if(qu == 0)upd(1, 1, n, a, 0, b);
else
{
ans = 0;
q(1, 1, n, a, b);
fout << ans <<'\n';
}
}
return 0;
}