#include <bits/stdc++.h>
using namespace std;
ifstream fin("datorii.in");
ofstream fout("datorii.out");
const int cst=15005;
int v[cst],arb[4*cst];
void build(int nod,int i1,int i2)
{
if(i1==i2)
arb[nod]=v[i1];
else
{
int mij=(i1+i2)/2;
build(2*nod,i1,mij);
build(2*nod+1,mij+1,i2);
arb[nod]+=arb[2*nod]+arb[2*nod+1];
}
}
void mod(int nod,int i1,int i2,int i,int a)
{
if(i1==i2)
arb[nod]-=a;
else
{
int mij=(i1+i2)/2;
if(i<=mij)
mod(2*nod,i1,mij,i,a);
else
mod(2*nod+1,mij+1,i2,i,a);
arb[nod]-=a;
}
}
int calc(int nod,int i1,int i2,int a,int b)
{
if(i1>=a&&b>=i2)
return arb[nod];
else
{
int mij=(i1+i2)/2;
if(b<=mij)
return calc(2*nod,i1,mij,a,b);
else if(a>=mij+1)
return calc(2*nod+1,mij+1,i2,a,b);
return calc(2*nod,i1,mij,a,b)+calc(2*nod+1,mij,i2,a,b);
}
}
int main()
{
int n,k;
fin>>n>>k;
for(int i=1; i<=n; i++)
{
fin>>v[i];
}
build(1,1,n);
for(int i=1; i<=n; i++)
{
int c,a,b;
fin>>c>>a>>b;
if(!c)
mod(1,1,n,a,b);
else
fout<<calc(1,1,n,a,b)<<'\n';
}
return 0;
}