#include <iostream>
#include <fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int arb[4000001];
void creare(int x, int st, int dr, int poz, int val)
{
if(poz < st || poz > dr) return;
if(st == dr)
{
arb[x] = val;
return;
}
int mij = (st + dr)/2;
creare(2 * x, st, mij, poz, val);
creare(2 * x +1, mij+1, dr, poz, val);
arb[x] = arb[2*x] + arb[2*x+1];
}
int suma(int x, int st, int dr, int i, int j)
{
if(i > dr || j < st) return 0;
if( st >= i && dr <= j) return arb[x];
int mij = (st + dr)/2;
return suma(2*x, st, mij, i, j) + suma(2*x+1, mij+1, dr, i, j);
}
void modificare(int x, int st, int dr, int poz, int val)
{
if(poz < st || poz > dr) return;
if(st == dr)
{
arb[x]-=val;
return;
}
int mij = (st + dr)/2;
modificare(2*x, st, mij, poz, val);
modificare(2*x+1, mij+1, dr, poz, val);
arb[x] = arb[2*x] + arb[2*x+1];
}
int main()
{
int n, m;
f>>n>>m;
for( int i=1; i<=n; i++)
{
int x;
f>>x;
creare(1, 1, n, i, x);
}
int op, a, b;
for (int i=1; i<=m; i++)
{
f>>op>>a>>b;
if(op)
g<<suma(1, 1, n, a, b)<<endl;
else modificare(1, 1, n, a, b);
}
return 0;
}