#include <bits/stdc++.h>
using namespace std;
const double PI = 22.0 / 7.0;
const double EPS = 1e-6;
const int infi = (int)1e9;
const long long infl = (long long)1e16;
const int MOD = (int)1e9 + 7;
const int MAX = (int)2e5 + 9;
const int dx[] = {1, -1, 0, 0, 1, 1, -1, -1};
const int dy[] = {0, 0, -1, 1, 1, -1, 1, -1};
long long a[150009], n, q, k;
vector<pair<long long, long long> > ans;
bool operator>(pair<long long, long long> a, pair<long long, long long> b) {
  return a.first > b.first;
}
void add(long long val) {
  vector<pair<long long, long long> > res;
  pair<long long, long long> toPush = make_pair(a[val], val);
  res.clear();
  bool c = 0;
  int i = 0;
  for (; (int)res.size() < min(6ll, k);) {
    if (i >= (int)ans.size()) {
      if (!c) res.push_back(toPush);
      break;
    }
    pair<long long, long long> toComp = ans[i];
    if (toPush > toComp) {
      c = 1;
      res.push_back(toPush);
      toPush = make_pair(0, 0);
    } else {
      res.push_back(toComp);
      i++;
    }
  }
  ans.clear();
  for (int i = 0; i < (int)res.size(); i++) ans.push_back(res[i]);
}
void check(long long val) {
  for (int i = 0; i < (int)ans.size(); i++) {
    if (val == ans[i].second) {
      cout << "YES\n";
      return;
    }
  }
  cout << "NO\n";
}
int main() {
  cin >> n >> k >> q;
  for (int i = 1; i <= n; i++) cin >> a[i];
  while (q--) {
    long long id, val;
    cin >> id >> val;
    if (id == 1)
      add(val);
    else
      check(val);
  }
  return 0;
}
