#include <iostream>
#include <fstream>
using namespace std;
const int n=15000;
int N,M,arb[3*n],i,x,operatie,p,q;
void update(int nod, int st, int dr, int Index, int valoare)
{
if (st==dr)
{
arb[nod]=arb[nod]+valoare;
return;
}
int mijloc=(st+dr)/2;
if (Index<=mijloc) update(2*nod,st,mijloc,Index,valoare);
else update(2*nod+1,mijloc+1,dr,Index,valoare);
arb[nod]=arb[2*nod]+arb[2*nod+1];
}
int suma(int nod, int st, int dr, int L, int R)
{
if (L<=st && dr<=R) return arb[nod];
int mijloc=(st+dr)/2;
int stanga=0, dreapta=0;
if (L<=mijloc) stanga=suma(2*nod,st,mijloc,L,R);
if (R>mijloc) dreapta=suma(2*nod+1,mijloc+1,dr,L,R);
return stanga+dreapta;
}
int main()
{ ifstream f("datorii.in");
ofstream g("datorii.out");
f>>N>>M;
for (i=1;i<=N;i++)
{
f>>x;
update(1,1,N,i,x);
}
for (i=1;i<=M;i++)
{
f>>operatie>>p>>q;
if (operatie==1) g<<suma(1,1,N,p,q)<<"\n";
else if (operatie==0) update(1,1,N,p,-q);
}
f.close();
g.close();
return 0;
}