#include <fstream>
#include <iostream>
using namespace std;
int n,m,sum;
int aint[15003*4];
void update(int nod,int l,int r,int x,int p)
{
if(l==r)
{
aint[nod]+=x;
return;
}
int k=(l+r)/2;
if(p<=k)update(2*nod,l,k,x,p);
else update(2*nod+1,k+1,r,x,p);
aint[nod]+=x;
}
int querry(int nod,int l,int r,int x,int y)
{
int t=0;
if(x<=l&&r<=y)
return aint[nod];
else{
int k=(l+r)/2;
if(x<=k) t+=querry(2*nod,l,k,x,y);
if(y>k) t+=querry(2*nod+1,k+1,r,x,y);}
return t;
}
int main()
{
int i,op,x,y;
ifstream in("datorii.in");
ofstream out("datorii.out");
in>>n>>m;
for(i=1;i<=n;i++)
{
in>>x;
if(x!=0)
update(1,1,n,x,i);
}
for(i=0;i<m;i++)
{
in>>op>>x>>y;
if(op==1){sum=0;querry(1,1,n,x,y);
out<<querry(1,1,n,x,y)<<'\n';}
else update(1,1,n,-y,x);
}
in.close(),out.close();
return 0;
}