
#include <bits/stdc++.h>
#define int int64_t
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
using namespace std;




int32_t main() {
    int n, q; cin >> n >> q;
    vector<int> a(n);
    for (int &i : a)
        cin >> i;

    


    // int it = 0;

    // penis.push_back(se.front());
    // ids[se.front()] = it++;



    // while (!se.empty()) {

    //     if (fi.empty())
    //         fi.push(se.front()), se.pop();
        
    //     while (!se.empty() && a[se.front()] == a[fi.back()])
    //         fi.push(se.front()), se.pop();

    //     if (se.empty())
    //         break;

    //     ids[fi.front()] = it++;
    //     penis.push_back(fi.front());
    //     ids[se.front()] = it++;
    //     penis.push_back(se.front());

    //     fi.pop();
    //     se.pop();
    // }


    // while (!fi.empty())
    //     ids[fi.front()] = it++, penis.push_back(fi.front()), fi.pop();


    while (q--) {
        int i1, i2;
        cin >> i1 >> i2;

        if (i1 == 1) {
            i1 = i2 -1;
            swap(a[i1], a[i2]);

        } else {


            vector<int> ids(n);
            vector<int> penis;
            vector<bool> used(n);
            int cr = 0;
            int it = 0;

            penis.push_back(cr);
            ids[cr] = it++;
            used[cr] = 1;

            for (int i = 1; i < n; i++) {
            
                int v = -1;
                for (int j = 0; j < n; j++) {
                    if (!used[j] && a[cr] != a[j]) {
                        v = j;
                        break;
                    }
                }

                if (v == -1)
                    v = cr + 1;

                penis.push_back(v), used[v] = 1, ids[v] = it++, cr = v;
            }
            
            cout << ids[i2 - 1] + 1 << '\n';
        }
    }
}