#include <iostream>
#include <fstream>
#include <sstream>
#include <iomanip>
#include <cstdlib>
#include <cstdio>
#include <bitset>
#include <string>
#include <vector>
#include <deque>
#include <queue>
#include <stack>
#include <map>
#include <set>
#include <algorithm>
#include <numeric>
#include <cmath>

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);

    int n, q;
    std::cin >> n >> q;
    std::vector<int> arr(n);
    for (int& elem : arr) {
        std::cin >> elem;
    }
    int ind = (9 * n + 9) / 10;
    std::set<int> setik1;
    for (int i = 0; i <= ind; ++i) {
        setik1.insert(arr[i]);
    }
    std::set<int> setik2;
    for (int i = ind + 1; i < n; ++i) {
        setik2.insert(arr[i]);
    }
    while (q--) {
        int t, x;
        std::cin >> t >> x;
        if (t == 1) {
            std::swap(arr[x - 1], arr[x]);
            if (x == ind) {
                setik1.erase(arr[x]);
                setik2.erase(arr[x - 1]);
                setik1.insert(arr[x - 1]);
                setik2.insert(arr[x]);
            }
        } else {
            if (arr[ind - 1] == 1) {
                std::cout << ind + setik2.size() << '\n';
            } else {
                std::cout << setik1.size() << '\n';
            }
        }
    }
    return 0;
}