#include <iostream>
#include <fstream>
using namespace std;
ifstream f("datorii.in"); ofstream g("datorii.out");
int Arb[64003];
int n,m,ans;
void update(int nod, int st, int dr, int poz, int val) {
if(st == dr) {
Arb[nod] = Arb[nod] + val;
return;
}
int mij = (st + dr) / 2;
if(poz <= mij) {
update(nod*2,st,mij,poz,val);
}
else {
update(nod*2+1,mij+1,dr,poz,val);
}
Arb[nod] = Arb[nod*2] + Arb[nod*2+1];
}
void query(int nod, int st, int dr, int x, int y) {
if (st >= x && dr <= y) {
ans += Arb[nod];
return;
}
int mij = (st + dr) / 2;
if(x <= mij) {
query(nod*2,st,mij,x,y);
}
if(y > mij) {
query(nod*2+1,mij+1,dr,x,y);
}
}
int main() {
int i,x,y;
f>>n>>m;
for(i = 1; i <= n; ++i) {
f>>x;
update(1,1,n,i,x);
}
bool c;
for(i = 1; i <= m; ++i) {
f>>c>>x>>y;
if(c == 0) {
y = -y;
update(1,1,n,x,y);
}
if(c == 1) {
ans = 0;
query(1,1,n,x,y);
g<<ans<<'\n';
}
}
return 0;
}