#include <iostream>
#include <fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int a[100001], n, q, v[15100], x, y;
void build(int st, int dr, int poz)
{
if (st == dr)
{
a[poz] = v[st];
return;
}
int mij = (st + dr) / 2;
build(st, mij, 2 * poz);
build(mij + 1, dr, 2 * poz + 1);
a[poz] = a[2 * poz] + a[2 * poz + 1];
}
void update(int st, int dr, int poz,int t, int val)
{
if (st == dr)
{
a[poz] = val;
return;
}
int mij = (st + dr) / 2;
if (t <= mij)
update(st, mij - 1, 2 * poz,t, val);
else
update(mij + 1, dr, 2 * poz + 1,t, val);
a[poz] = a[2 * poz] + a[2 * poz + 1];
}
int query(int st, int dr, int poz)
{
if (st>=x && dr<=y)
return a[poz];
int mij = (st + dr) / 2;
if (mij < x)
return query(mij + 1, dr, 2 * poz + 1);
else if(mij>=y)
return query(st, mij, 2 * poz);
return query(mij + 1, dr, 2 * poz + 1)+query(st, mij, 2 * poz);;
}
int main()
{
int cerinta, t, val, i;
f >> n >> q;
for (i = 1; i <= n; i++)
{
f >> v[i];
}
build(1, n, 1);
for ( i = 1; i <= q; i++)
{
f >> cerinta >> t >> val;
if (cerinta == 0)///achitare=>actualizare
{
v[t] -= val;
update(1, n, 1, t,val);
}
else ///interogaree
{
x = t, y = val;
g << query(1, n, 1) << '\n';
}
}
return 0;
}