#include <iostream>
using namespace std;
const int NMax = 15005;
int aint[NMax*4], sum;
void build(int nod, int st, int dr)
{
if(st==dr)
cin>>aint[nod];
else
{
int mij=(st+dr)/2;
build(2*nod, st, mij);
build(2*nod+1, mij+1, dr);
aint[nod] = aint[nod*2] + aint[nod*2+1];
}
}
void query(int nod, int st, int dr, int a, int b)
{
//cout << nod << " " << st << " " << dr << '\n';
if (a <= st && dr <= b)
{
sum+=aint[nod];
}
else
{
int mij=(st+dr)/2;
if (a <= mij)
query(2*nod, st, mij, a, b);
if (b > mij)
query(2*nod+1, mij+1, dr, a, b);
}
}
void update(int nod, int st, int dr, int a, int b)
{
if (st==dr)
aint[nod]-=b;
else
{
int mij=(st+dr)/2;
if (a <= mij)
update(2*nod, st, mij, a, b);
else
update(2*nod+1, mij+1, dr, a, b);
aint[nod] -= b;
}
}
int main()
{
freopen("datorii.in", "r", stdin);
freopen("datorii.out", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n, m;
cin>>n>>m;
build(1,1,n);
while(m--)
{
int op,a,b;
cin>>op>>a>>b;
if(op==1)
{
sum=0;
query(1,1,n,a,b);
cout<<sum<<'\n';
}
else
update(1,1,n,a,b);
}
return 0;
}