#include <bits/stdc++.h>
using namespace std;
int min(int a, int b) { return (a > b) ? b : a; }
int max(int a, int b) { return (a > b) ? a : b; }
int abs(int a) { return (a > 0) ? a : -a; }
void swap(int a, int b) {
  int t = a;
  a = b;
  b = t;
  return;
}
int main() {
  int n, q, k;
  scanf("%d %d %d", &n, &k, &q);
  map<int, bool> s;
  vector<int> a(n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
  }
  int t, id;
  for (int i = 0; i < q; i++) {
    scanf("%d %d", &t, &id);
    id--;
    if (t == 1) {
      s[a[id]] = true;
    } else {
      int kk = 0;
      bool printed = false;
      for (map<int, bool>::iterator it = s.end(); kk < k; --it) {
        if (it == s.begin() && it == s.end()) break;
        if (it == s.end()) it--;
        kk++;
        if (a[id] == it->first) {
          printf("YES\n");
          printed = true;
        }
        if (it == s.begin()) break;
      }
      if (!printed) printf("NO\n");
    }
  }
}
