#include <fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int A[60001];
void scade(int nod, int left, int right, int poz, int x)
{
if(poz < left || poz > right)
return;
if(left == right)
{
A[nod] -= x;
return;
}
scade(nod * 2, left, (left + right) / 2, poz, x);
scade(nod * 2 + 1, (left + right) / 2 + 1, right, poz, x);
A[nod] = A[2 * nod] + A[2 * nod + 1];
}
int suma(int nod, int left, int right, int st, int dr)
{
if(dr < left || st > right)
return 0;
if(st <= left && right <= dr)
return A[nod];
return suma(nod * 2, left, (left + right) / 2, st, dr) + suma(nod * 2 + 1, (left + right) / 2 + 1, right, st, dr);
}
void actualizare(int nod, int left, int right, int poz, int x)
{
if(poz < left || poz > right)
return;
if(left == right)
{
A[nod] = x;
return;
}
actualizare(nod * 2, left, (left + right) / 2, poz, x);
actualizare(nod * 2 + 1, (left + right) / 2 + 1, right, poz, x);
A[nod] = A[nod * 2] + A[nod * 2 + 1];
}
int main()
{
int n, m, a, b, instr;
f >> n >> m;
for(int i = 1; i <= n; i++)
{
f >> a;
actualizare(1, 1, n, i, a);
}
for(int i = 0; i < m; i++)
{
f >> instr >> a >> b;
if(instr == 0)
scade(1, 1, n, a, b);
if(instr == 1)
g << suma(1, 1, n, a, b) << "\n";
}
return 0;
}