#include <bits/stdc++.h>
using namespace std;
int a[200 * 1000];
int fsum(int r) {
  int result = 0;
  for (; r >= 0; r = (r & (r + 1)) - 1) result += a[r];
  return result;
}
void finc(int i) {
  for (; i < 200 * 1000; i = (i | (i + 1))) a[i] += 1;
}
int main() {
  int n, k, q;
  cin >> n >> k >> q;
  vector<int> t(n + 1);
  map<int, int> zip;
  vector<int> tmp;
  set<int> u;
  for (int(i) = (0); (i) < (int)(n); ++(i)) {
    cin >> t[i + 1];
    tmp.push_back(t[i + 1]);
  };
  sort(tmp.begin(), tmp.end());
  for (int i = 0; i < n; ++i) {
    zip[tmp[i]] = i + 1;
  }
  for (int(i) = (0); (i) < (int)(q); ++(i)) {
    int tp, f;
    cin >> tp >> f;
    if (tp == 1) {
      finc(zip[t[f]]);
      u.insert(zip[t[f]]);
    } else {
      int zt = zip[t[f]];
      int v = fsum(200 * 1000 - 10) - fsum(zt);
      cout << ((u.count(zt) && v < k) ? "YES" : "NO") << endl;
    }
  }
  return 0;
}
