1 1 1
1000000000
2 1
 20 2 15
12698951 55128070 116962690 156763505 188535242 194018601 269939893 428710623 442819431 483000923 516768937 552903993 633087286 656092270 671535141 714291344 717660646 846508634 879748146 937368929
2 7
1 2
2 4
1 19
1 12
1 5
2 18
2 11
1 16
2 1
2 3
2 19
1 17
2 9
2 6
 6 3 10
62417580 78150524 410053501 582708235 630200761 760672946
2 2
1 5
1 2
1 4
2 4
2 1
2 1
1 6
2 5
2 6

NO
 NO
NO
NO
NO
NO
NO
YES
NO
NO
 NO
YES
NO
NO
YES
YES

#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;
}
