#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define N 500010
ll a[N],d[N],tot,ans[N];
int id[N],c[N],b[N],n,m;
void add(int x,int v){
for(;x<=n;x+=x&(-x)) c[x]+=v;
}
void add2(int x,ll v){
for(;x<=n;x+=x&(-x)) ans[x]+=v;
}
int qu(int x){
int ret=0;
for(;x;x-=x&(-x)) ret+=c[x];
return ret;
}
ll qu2(int x){
ll ret=0;
for(;x;x-=x&(-x)) ret+=ans[x];
return ret;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
id[a[i]]=i;
if(i>1) add(i,1);
}
for(int i=1;i<=n;i++){
b[i]=qu(id[i]);
tot+=(ll)(b[i]);
d[1]++;d[b[i]+1]--;
add(id[i],-1);
}
add2(1,tot);
for(int i=1;i<n;i++){
d[i]+=d[i-1];
add2(i+1,-d[i]);
}
for(int i=1;i<=m;i++){
int opt,x;
cin>>opt>>x;
if(opt==1){
if(a[x]>a[x+1]) {
swap(a[x],a[x+1]);
swap(b[x],b[x+1]);
b[x]--;
add2(1,-1ll);
add2(b[x]+2,1ll);
}
else{
add2(1,1ll);
add2(b[x]+2,-1ll);
b[x]++;
swap(a[x],a[x+1]);
swap(b[x],b[x+1]);
}
}
else cout<<qu2(min(x,n-1)+1)<<'\n';
}
}