#include <bits/stdc++.h>
using namespace std;
struct as {
  long long id, t, z;
} a[150005];
priority_queue<long long, vector<long long>, greater<long long> > bb;
int main() {
  long long n, k, q, s = 1, f = 1;
  scanf("%lld%lld%lld", &n, &k, &q);
  for (long long i = 1; i <= n; i++) {
    scanf("%lld", &a[i].t);
    a[i].id = i;
  }
  for (long long i = 1; i <= q; i++) {
    long long x, y;
    scanf("%lld%lld", &x, &y);
    if (x == 1) {
      if (s <= k) {
        a[y].z = 1;
        s++;
        bb.push(a[y].t);
      } else {
        a[y].z = 1;
        if (bb.top() < a[y].t) {
          bb.pop();
          bb.push(a[y].t);
        }
      }
    } else {
      if (a[y].z == 1) {
        if (bb.top() <= a[y].t) {
          printf("YES\n");
        } else {
          printf("NO\n");
        }
      } else {
        printf("NO\n");
      }
    }
  }
  return 0;
}
