Link to this code:
https://cses.fi/paste/f6d67be71a9ea489c6d637//* 777 */
#include <bits/stdc++.h>
using namespace std;
#define FAST_IO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
void solve() {
int n, m, cnt = 1; cin >> n >> m;
vector<int> vec(n + 1), pos(n + 2, 0);
pos[n + 1] = n + 1;
for (int i = 1 ; i <= n ; ++i) {
cin >> vec[i];
pos[vec[i]] = i;
}
for (int x = 2 ; x <= n ; ++x) cnt += pos[x - 1] > pos[x];
while (m--) {
int i, j; cin >> i >> j;
set<int> st = {vec[i], vec[i] + 1, vec[j], vec[j] + 1};
for (auto& x : st) cnt -= pos[x - 1] > pos[x];
swap(vec[i], vec[j]);
swap(pos[vec[i]], pos[vec[j]]);
for (auto& x : st) cnt += pos[x - 1] > pos[x];
cout << cnt << '\n';
}
}
int32_t main() {
FAST_IO
solve();
}