#include <fstream>
using namespace std;
const int NMAX = 15001;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
int n, m;
int aib[NMAX];
inline void update(int pos, int val) {
for (int i = pos; i <= n; i += i & -i)
aib[i] += val;
}
inline int query(int pos) {
int s = 0;
for (int i = pos; i; i -= i & -i)
s += aib[i];
return s;
}
inline void read() {
fin >> n >> m;
for (int i = 1, x; i <= n; ++i) {
fin >> x;
update(i, x);
}
}
inline void solve() {
int op, a, b;
for (int i = 1; i <= m; ++i) {
fin >> op >> a >> b;
if (op == 0) {
update(a, -b);
}
else {
fout << query(b) - query(a - 1) << '\n';
}
}
}
int main()
{
read();
solve();
fin.close();
fout.close();
return 0;
}