1 1 1
1000000000
2 1
 20 2 15
12698951 55128070 116962690 156763505 188535242 194018601 269939893 428710623 442819431 483000923 516768937 552903993 633087286 656092270 671535141 714291344 717660646 846508634 879748146 937368929
2 7
1 2
2 4
1 19
1 12
1 5
2 18
2 11
1 16
2 1
2 3
2 19
1 17
2 9
2 6
 6 3 10
62417580 78150524 410053501 582708235 630200761 760672946
2 2
1 5
1 2
1 4
2 4
2 1
2 1
1 6
2 5
2 6

NO
 NO
NO
NO
NO
NO
NO
YES
NO
NO
 NO
YES
NO
NO
YES
YES

#include <bits/stdc++.h>
using namespace std;
int maxm(int* mc, int n) {
  int x = mc[0];
  for (int i = 0; i <= n - 1; i++) {
    if (x < mc[i]) {
      x = mc[i];
    }
  }
  return x;
}
int* strdel(int num, int n, int* genom) {
  int* f;
  f = new int[n - 1];
  for (int i = 0; i < n; i++) {
    if (i == num) continue;
    if (i < num) f[i] = genom[i];
    if (i > num) f[i - 1] = genom[i];
  }
  delete[] genom;
  return f;
}
int main() {
  int j1 = 0, j2 = 0, n1, x, n, k, q, r1, r2, j = 1;
  cin >> n;
  cin >> k;
  cin >> q;
  int* req1 = new int[q];
  int* req2 = new int[q];
  int* mf = new int[n];
  int* friends = new int[n];
  int* friends1 = new int[n];
  for (int i = 0; i < n; i++) {
    cin >> friends[i];
    friends1[i] = friends[i];
  }
  n1 = n;
  for (int i = 0; i < n; i++) {
    x = maxm(friends1, n1);
    while (x != friends[j1]) {
      j1++;
    }
    while (x != friends1[j2]) {
      j2++;
    }
    friends1 = strdel(j2, n1, friends1);
    n1--;
    mf[j1] = j;
    j++;
    j1 = 0;
    j2 = 0;
  }
  int* fonline = new int[n];
  for (int i = 0; i < n; i++) {
    fonline[i] = 0;
  }
  for (int i = 0; i < q; i++) {
    cin >> r1;
    cin >> r2;
    req1[i] = r1;
    req2[i] = r2;
  }
  for (int i = 0; i < q; i++) {
    if (req1[i] == 1) {
      fonline[req2[i] - 1] = 1;
    } else {
      if (fonline[req2[i] - 1] == 0) {
        cout << "NO\n";
      } else {
        cout << mf[req2[i] - 1] << '\n';
        if (mf[req2[i] - 1] <= k) {
          cout << "YES\n";
        } else {
          cout << "NO\n";
        }
      }
    }
  }
  return 0;
}
