#include<iostream>
#include<fstream>
using namespace std;
int i,n,m,v[15005], aint[100005], p, x, p1, p2, c;
void add(int pos, int x, int tip)
{
while (pos > 0)
{
aint[pos] += tip*x;
pos /= 2;
}
}
int sum(int pos,int st, int dr, int x, int y)
{
if (x > y)
return 0;
if(st == x && dr == y)
return aint[pos];
int mij = (st + dr) / 2;
return sum(2 * pos, st, mij, x, min(mij, y))+sum(2 * pos + 1, mij + 1, dr, max(mij+1, x), y);
}
int main()
{
freopen("datorii.in","r",stdin);
freopen("datorii.out","w",stdout);
scanf("%d%d", &n,&m);
for(p=1;p<n;p=p<<1);
for(int i=1;i<=n;i++)
{
scanf("%d", &v[i]);
add(p+i-1, v[i], 1);
}
for(int i=1;i<=m;i++)
{
scanf("%d%d%d", &c, &p1, &p2);
if(c==0)
{
add(p1+i-1, p2, -1);
}
else {
printf("%d\n",sum(1, 1, p, p1, p2));
}
}
}