#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int a[40005], v[15001];
void create(int n, int st, int dr)
{
if(st == dr){a[n] = v[st];return;}
create(n*2, st, (st + dr)/2);
create(n*2+1, (st + dr)/2 + 1, dr);
a[n] = a[n*2] + a[n*2+1];
}
int suma(int n, int st, int dr, int x, int y)
{
if(dr < x || st > y)
return 0;
if(x <= st && dr <= y)
return a[n];
return suma(n*2, st, (st + dr)/2, x, y) + suma(n*2+1, (st + dr)/2+1, dr, x, y);
}
void update(int n, int st, int dr, int poz, int x)
{
if(poz < st || poz > dr)
return;
if(st == dr)
{
a[n] -= x;
return;
}
update(2*n, st, (st + dr)/2, poz, x);
update(2*n + 1, (st + dr)/2 + 1, dr, poz, x);
a[n] = a[2*n] + a[2*n+1];
}
int main()
{
int n, m, op, x, y;
fin>>n>>m;
for(int i = 1; i <= n; i++)
fin>>v[i];
create(1, 1, n);
for(int i = 0; i < m; i++)
{
fin>>op>>x>>y;
if(op)
fout<<suma(1, 1, n, x, y)<<"\n";
else
update(1, 1, n, x, y);
}
return 0;
}