#include<bits/stdc++.h>
#define rep(i,l,r) for(int i=l;i<=r;i++)
using namespace std;
int arr[10000],sub[10000];
int main(){
int n,q,a,x,y;
scanf("%d%d",&n,&q);
rep(i,1,n)scanf("%d",&arr[i]);
rep(i,1,n){
int ans=1;
rep(j,1,n){
if(arr[j]<arr[i])ans++;
if(arr[j]==arr[i]&&j<i)ans++;
}
sub[i]=ans;
}
rep(i,1,q){
scanf("%d",&a);
if(a==1){
scanf("%d%d",&x,&y);
if(arr[x]!=y){
rep(j,1,x-1)if((arr[j]-arr[x])*(arr[j]-y)<0)sub[j]+=y>arr[x]?-1:1;
rep(j,x+1,n)if((arr[j]-arr[x])*(arr[j]-y)<0)sub[j]+=y>arr[x]?-1:1;
rep(j,1,x-1)if(arr[j]==y&&y>arr[x])sub[j]-=1;else if(arr[j]==arr[x]&&y<arr[x])sub[j]+=1;
rep(j,x+1,n)if(arr[j]==arr[x]&&y>arr[x])sub[j]-=1;else if(arr[j]==y&&y<arr[x])sub[j]+=1;
int ans=1;
arr[x]=y;
rep(j,1,n)if(arr[j]<arr[x])ans++;else if(arr[j]==arr[x]&&j<x)ans++;
sub[x]=ans;
}
}
if(a==2){
scanf("%d",&x);
printf("%d\n",sub[x]);
}
}
return 0;
}
零散着WA了几个点(时间没超,最后几个点500ms),看来看去看不出哪里有问题