#include <bits/stdc++.h>

using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n, q;
    cin >> n >> q;
    vector<int> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    while (q--) {
        int x;
        cin >> x;
        if (x == 1) {
            int i;
            cin >> i;
            i--;
            swap(a[i], a[i + 1]);
            continue;
        }
        int j;
        cin >> j;
        j--;
        vector<set<int>> s(n + 1);
        set<pair<int, int>> col;
        int last = a[0];
        int cnt = 1;
        if (j == 0) {
            cout << 1 << '\n';
            continue;
        }
        bool f = false;
        for (int i = 1; i < n; i++) {
            while (true) {
                if (col.size() == 0) {
                    break;
                }
                if (s[last].size() == 0) {
                    auto [v, u] = (*col.begin());
                    col.erase({v, u});
                    s[u].erase(v);
                    cnt++;
                    if (v == j) {
                        f = true;
                        cout << cnt << '\n';
                        break;
                    }
                    if (s[u].size() > 0) {
                        col.insert({(*s[u].begin()), u});
                    }
                    last = u;
                } else {
                    col.erase({(*s[last].begin()), last});
                    if (col.size() == 0) {
                        col.insert({(*s[last].begin()), last});
                        break;
                    }
                    auto [v, u] = (*col.begin());
                    col.erase({v, u});
                    s[u].erase(v);
                    cnt++;
                    if (v == j) {
                        f = true;
                        cout << cnt << '\n';
                        break;
                    }
                    if (s[u].size() > 0) {
                        col.insert({(*s[u].begin()), u});
                    }
                    col.insert({(*s[last].begin()), last});
                    last = u;
                }
            }
            s[a[i]].insert(i);
        }
        while (true) {
            if (col.size() == 0) {
                break;
            }
            if (s[last].size() == 0) {
                auto [v, u] = (*col.begin());
                col.erase({v, u});
                s[u].erase(v);
                cnt++;
                if (v == j) {
                    f = true;
                    cout << cnt << '\n';
                    break;
                }
                if (s[u].size() > 0) {
                    col.insert({(*s[u].begin()), u});
                }
                last = u;
            } else {
                col.erase({(*s[last].begin()), last});
                if (col.size() == 0) {
                    col.insert({(*s[last].begin()), last});
                    break;
                }
                auto [v, u] = (*col.begin());
                col.erase({v, u});
                s[u].erase(v);
                cnt++;
                if (v == j) {
                    f = true;
                    cout << cnt << '\n';
                    break;
                }
                if (s[u].size() > 0) {
                    col.insert({(*s[u].begin()), u});
                }
                col.insert({(*s[last].begin()), last});
                last = u;
            }
        }
        if (f) {
            continue;
        }
        while (true) {
            cnt++;
            if ((*s[a[j]].begin()) == j) {
                cout << cnt << '\n';
                break;
            }
            s[a[j]].erase((*s[a[j]].begin()));
        }
        continue;
    }
}
