#include<bits/stdc++.h>
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("avx,avx2,bmi,bmi2,popcnt,lzcnt")
#define all(p) p.begin(),p.end()
using namespace std;
// #define int long long
int n;
int a[100001];
int cur[100001];
map<int, int>anses;
int get(int x) {
    if (x == n) {
        return n;
    }
    if (anses.find(x) != anses.end()) {
        return anses[x];
    }
    int ans = 0;
    int pt = 1;
    int ptt = 0;
    int sz = 0;
    int pr = 0;
    for (int i = 1; i <= n; i++) {
        if (i == n || a[i + 1] != a[i]) {
            while (ptt < sz && pt <= i && a[cur[ptt]] != a[pt]) {
                int d = cur[ptt];
                int b = pt;
                if (pr == a[d]) {
                    swap(d, b);
                }
                ans++;
                if (d == x) {
                    return anses[x] = ans;
                }
                ans++;
                if (b == x) {
                    return anses[x] = ans;
                }
                pr = a[b];
                // cur.pop_front();
                ptt++;
                pt++;
            }
            for (int j = pt; j <= i; j++) {
                cur[sz++] = j;
            }
            pt = i + 1;
        }
        // cout << "! ";
        // for (auto u : cur1) {
        //     cout << u << ' ';
        // }
        // cout << "    ";
        // for (auto u : cur2) {
        //     cout << u << ' ';
        // }
        // cout << endl;
    }
    while (ptt < sz) {
        ans++;
        if (cur[ptt] == x) {
            return anses[x] = ans;
        }
        ptt++;
    }
}
signed main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int q;
    cin >> n >> q;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    while (q--) {
        int t;
        cin >> t;
        if (t == 1) {
            int x;
            cin >> x;
            swap(a[x], a[x + 1]);
            anses.clear();
        } else {
            int x;
            cin >> x;
            cout << get(x) << endl;
            // for (auto u : ans) {
            //     cout << u << ' ';
            // }
            // cout << endl;
        }
    }
}