//#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("datorii.in");
ofstream cout("datorii.out");
vector<int>x,y;
int n,m,i,a,sum,p,q,r,j;
void bemax(int bal,int jobb,int gyoker,int poz,int k)
{
if(bal==jobb)
{
x[gyoker]=k;
return;
}
int kozep=(jobb+bal)/2;
if(poz<=kozep) bemax(bal,kozep,gyoker*2,poz,k);
else bemax(kozep+1,jobb,gyoker*2+1,poz,k);
x[gyoker]=x[gyoker*2]+x[gyoker*2+1];
}
void leker(int bal,int jobb,int gyoker,int a,int b)
{
if(a<=bal && jobb<=b)
{
sum+=x[gyoker];
return;
}
int kozep=(jobb+bal)/2;
if(a<=kozep) leker(bal,kozep,gyoker*2,a,b);
if(kozep<b) leker(kozep+1,jobb,gyoker*2+1,a,b);
}
int main()
{
cin>>n>>m;
x.resize(4*n+1);
y.resize(n+1);
for(i=1;i<=n;++i)
{
cin>>a;
y[i]=a;
bemax(1,n,1,i,a);
}
for(i=1;i<=m;++i)
{
cin>>p>>q>>r;
if(p==1)
{
sum=0;
leker(1,n,1,q,r);
cout<<sum<<"\n";
}
else
{
y[q]-=r;
bemax(1,n,1,q,y[q]);
}
}
return 0;
}