#include <fstream>
using namespace std;
ifstream fin ("datorii.in");
ofstream fout ("datorii.out");
int n, m, i, v[40000], op, a, b, x;
void adaug(int con, int val, int poz, int st, int dr)
{
if(st==dr)
{
v[con]+=val;
return;
}
int mij=(st+dr)/2;
if(poz<=mij)
adaug(con*2, val, poz, st, mij);
else adaug(con*2+1, val, poz, mij+1, dr);
v[con]+=val;
}
int q(int con, int a, int b, int st, int dr)
{
if(a<=st&&dr<=b)
return v[con];
int rez1=0, rez2=0, mij=(st+dr)/2;
if(!(b<st||mij<a))
rez1=q(con*2, a, b, st, mij);
if(!(b<mij+1||dr<a))
rez2=q(con*2+1, a, b, mij+1, dr);
return rez1+rez2;
}
int main()
{
fin >> n >> m;
for(i=1;i<=n;i++)
{
fin >> x;
adaug(1, x, i, 1, n);
}
for(i=1;i<=m;i++)
{
fin >> op >> a >> b;
if(op==0)
adaug(1, -b, a, 1, n);
if(op==1)
fout << q(1, a, b, 1, n) << '\n';
}
return 0;
}