#include <fstream>
using namespace std;
ifstream fin("arbint.in");
ofstream fout("arbint.out");
int i,k,v[50005],j,a,b,c,x,y,d,val,n,m,maxi,in[15001],suma;
void update(int st,int dr,int nod)
{
if(st==dr)
{
v[nod]-=b;
return;
}
int mij=(st+dr)/2;
if(a>mij)
update(mij+1,dr,(nod<<1)+1);
else
update(st,mij,nod<<1);
v[nod]=v[nod<<1]+v[(nod<<1)+1];
}
void build(int st,int dr,int nod)
{
if(st==dr)
{
v[nod]=in[st];
return;
}
int mij=(st+dr)/2;
build(st,mij,nod<<1);
build(mij+1,dr,nod*2+1);
v[nod]=v[nod*2]+v[nod*2+1];
}
void cherry(int st,int dr,int nod)
{
if(st>=a&&dr<=b)
{
suma+=v[nod];
return;
}
int mij=(st+dr)/2;
cherry(st,mij,nod<<1);
cherry(mij+1,dr,nod*2+1);
}
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++)
fin>>in[i];
build(1,n,1);
for(i=1;i<=m;i++)
{
int p;
fin>>p>>a>>b;
if( p == 0 )
{
val=b;
update(1,n,1);
}
else
{
suma=0;
cherry(1,n,1);
fout<<suma<<"\n";
}
}
return 0;
}