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 main() {
  int n, K, Q;
  while (scanf("%d", &n) == 1) {
    scanf("%d", &K), scanf("%d", &Q);
    map<int, int> mapa;
    vector<int> x(n);
    for (int i = 0; i < n; i++) {
      scanf("%d", &x[i]);
      mapa[x[i]] = i;
    }
    set<int> SET;
    for (int it = 0; it < Q; it++) {
      int type;
      scanf("%d", &type);
      if (type == 1) {
        int id;
        scanf("%d", &id);
        id--;
        SET.insert(x[id]);
        while (((int)(SET).size()) > K) SET.erase(SET.begin());
      } else {
        int id;
        scanf("%d", &id);
        id--;
        bool found = 0;
        for (auto x : SET)
          if (mapa[x] == id) {
            found = 1;
            break;
          }
        puts(found ? "YES" : "NO");
      }
    }
  }
}
