#include <bits/stdc++.h>
using namespace std;
ifstream in("datorii.in");
ofstream out("datorii.out");
int datorii[1000001];
int nrElemente, nrOperatii, operatie, element, stanga, dreapta, V, T, A;
int suma(int nod, int stanga, int dreapta, int T, int V) {
if (V < stanga or T > dreapta)
return 0;
if (T <= stanga and dreapta <= V) {
return datorii[nod];
}
return suma(nod * 2, stanga, (stanga + dreapta) / 2, T, V) + suma(nod * 2 + 1, (stanga + dreapta) / 2, dreapta, T, V);
}
void achitare(int nod, int stanga, int dreapta, int T, int V) {
if (T < stanga || dreapta < T)
return;
if (stanga == dreapta) {
datorii[nod] += V;
return;
}
if (T <= (stanga + dreapta) / 2)
achitare(nod * 2, stanga, (stanga + dreapta) / 2, T, V);
else
achitare(nod * 2 + 1, (stanga + dreapta) / 2 + 1, dreapta, T, V);
datorii[nod] = datorii[nod * 2] + datorii[nod * 2 + 1];
}
int main() {
in >> nrElemente >> nrOperatii;
for (int i = 1; i <= nrElemente; i++) {
in >> A;
achitare(1, 1, nrElemente, i, A);
}
for (int i = 1; i <= nrOperatii; i++) {
in >> operatie >> T >> V;
if(operatie)
out << suma(1, 1, nrElemente, T, V) << "\n";
else
achitare(1, 1, nrElemente, T, -V);
}
}