#include <iostream>
#include <fstream>
#define dim 15004
using namespace std;
ifstream f ("datorii.in");
ofstream g ("datorii.out");
int arb[4*dim + 5], x, i,n, m, s, caz, a,b;
void update(int st,int dr,int poz,int val,int nod,int semn)
{
if(st == dr)
{
if(semn == 1)
arb[nod] = val;
else arb[nod] -= val;
return;
}
int m = (st + dr) / 2;
if(poz <= m) update(st,m,poz,val,2*nod,semn);
else update(m + 1, dr,poz,val,2*nod + 1,semn);
arb[nod] = arb[2*nod + 1] + arb[2*nod];
}
inline void query(int st,int dr,int a,int b,int nod)
{
if(a <= st && dr <= b)
{
s += arb[nod];
return;
}
int m = (st + dr) / 2;
if(a <= m)
query(st,m,a,b,2*nod);
if(m < b)
query(m + 1,dr,a,b,2*nod + 1);
}
int main()
{
f >> n >> m;
for(i = 1; i <= n; i++)
{
f >> x;
update(1,n,i,x,1,1);
}
for(i = 1; i <= m; i++)
{
f >> caz >> a >> b;
if (caz == 0)
update(1,n,a,b,1,-1);
else
{
s = 0;
query(1,n,a,b,1);
g << s << '\n';
}
}
return 0;
}