#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);
cin>>n>>m;
for(p=1;p<n;p=p<<1);
for(int i=1;i<=n;i++)
{
cin>>v[i];
add(p+i-1, v[i], 1);
}
for(int i=1;i<=m;i++)
{
cin>>c;
if(c==0)
{
cin>>p1>>x;
add(p1+i-1, x, -1);
}
else {
cin>>p1>>p2;
cout<<sum(1, 1, p, p1, p2)<<endl;
}
}
}