#include <iostream>
#include <fstream>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
#define ultb(i) (i&(-i))
void update(int aib[], int poz, int lun, int nract)
{
for (int i = poz; i <= lun; i += ultb(i))
{
aib[i] += nract;
}
}
void scade(int aib[], int poz, int lun, int nract)
{
for (int i = poz; i <= lun; i += ultb(i))
{
aib[i] -= nract;
}
}
int sum(int aib[], int poz)
{
int s = 0;
for (int i = poz; i > 0; i -= ultb(i))
{
s += aib[i];
}
return s;
}
int sum2(int aib[], int pma, int pmi)
{
int s = sum(aib, pma) - sum(aib, pmi - 1);
return s;
}
int main()
{
int lun, cer;
in >> lun >> cer;
int* aib = new int[lun + 1]();
int nract;
for (int i = 1; i <= lun; i++)
{
in >> nract;
update(aib, i, lun, nract);
}
int ceract;
int t, v;
while (cer--)
{
in >> ceract;
in >> t >> v;
if (ceract == 0)
{
scade(aib, t, lun, v);
}
if (ceract == 1)
{
out << sum2(aib, v, t) << "\n";
}
}
delete[] aib;
}