#include <bits/stdc++.h>
#define int long long
#define all(v) (v).begin(), (v).end()
#define pb push_back
#define em emplace_back

using namespace std;
template<class C>
using vec = vector<C>;
using vi = vector<int>;

mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
#ifdef LOCAL
    freopen("input", "r", stdin);
#endif
    int n, q;
    cin >> n >> q;
    vi a(n);
    for (auto& i : a) cin >> i;
    while (q--) {
        int c;
        cin >> c;
        if (c == 1) {
            int x;
            cin >> x;
            x--;
            swap(a[x], a[x + 1]);
        } else {
            int y;
            cin >> y;
            y--;
            if (y == 0) {
                cout << 1 << '\n';
                continue;
            }
            vi b;
            deque<int> st;
            for (int i = 0; i < n; i++) {
                if (st.empty()) {
                    st.pb(i);
                    continue;
                }
                if (a[st.back()] == a[i]) {
                    st.pb(i);
                } else {
                    if (st.size() == 1) {
                        b.pb(st[0]);
                        st = {i};
                    } else {
                        b.pb(st.front());
                        b.pb(i);
                        st.pop_front();
                    }
                }
            }
            for (int i = 0; i < st.size(); i++) b.pb(st[i]);
            for (int i = 0; i < n ;i++) {
                if (b[i] == y) {
                    cout << i+1 << '\n';
                }
            }
        }
    }
}