#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 100;
int t[maxn], n, q, k;
struct node {
  int val, id;
  node(int _val = 0, int _id = 0) {
    val = _val;
    id = _id;
  }
  bool operator<(node b) const { return val > b.val; }
};
node a[maxn];
int an;
void solve() {
  an = 0;
  for (int i = 1; i <= q; i++) {
    int typ, id;
    scanf("%d%d", &typ, &id);
    if (typ == 1) {
      a[an] = node(t[id], id);
      an++;
      sort(a, a + an);
      an = min(an, k);
    } else {
      int flag = 0;
      for (int i = 0; i < min(an, k); i++) {
        if (a[i].id == id) {
          flag = 1;
          break;
        }
      }
      if (flag) {
        printf("YES\n");
      } else {
        printf("NO\n");
      }
    }
  }
}
int main() {
  while (scanf("%d%d%d", &n, &k, &q) != EOF) {
    for (int i = 1; i <= n; i++) {
      scanf("%d", &t[i]);
    }
    solve();
  }
  return 0;
}
