#include<fstream>
using namespace std;
ifstream f("datorii.in");
ofstream g("datorii.out");
int arb[60045],v[15010];
void creare(int nod,int st,int dr)
{
if(st==dr)
{
arb[nod]=v[st];
return;
}
int mij=(st+dr)/2;
creare(2*nod,st,mij);
creare(2*nod+1,mij+1,dr);
arb[nod]=arb[2*nod]+arb[2*nod+1];
}
void achitare(int nod,int st,int dr,int poz,int plata)
{
if(st==dr)
{
arb[nod]-=plata;
return;
}
else
{
int mij=(st+dr)/2;
if(poz<=mij)
achitare(2*nod,st,mij,poz,plata);
else
achitare(2*nod+1,mij+1,dr,poz,plata);
arb[nod]=arb[2*nod]+arb[2*nod+1];
}
}
int interogare(int nod,int st,int dr,int inceput,int sfarsit)
{
if(inceput<=st && dr<=sfarsit)
return arb[nod];
int mij=(st+dr)/2,sum=0;
if(inceput<=mij)
sum=interogare(2*nod,st,mij,inceput,sfarsit);
if(mij<sfarsit)
sum+=interogare(2*nod+1,mij+1,dr,inceput,sfarsit);
return sum;
}
int main()
{
int n,m,r,a,b;
f>>n>>m;
for(int i=1;i<=n;i++)
f>>v[i];
creare(1,1,n);
for(int i=1;i<=m;i++)
{
f>>r>>a>>b;
if(r==0)
achitare(1,1,n,a,b);
else
g<<interogare(1,1,n,a,b)<<"\n";
}
return 0;
}