#include <bits/stdc++.h>
using namespace std;
const int INF = INT_MAX / 2;
int main() {
  int n, k, q;
  scanf("%d%d%d", &n, &k, &q);
  vector<int> vec(n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &vec[i]);
  }
  set<pair<int, int> > st;
  map<int, int> mp;
  for (int i = 0; i < q; i++) {
    int type, id;
    scanf("%d%d", &type, &id);
    id--;
    if (type == 1) {
      if (st.size() < k) {
        st.insert(make_pair(vec[id], id));
        mp[id] = 1;
      } else {
        set<pair<int, int> >::iterator it = st.begin();
        if ((*it).first < vec[id]) {
          mp.erase((*it).second);
          st.erase(it);
          st.insert(make_pair(vec[id], id));
          mp[id] = 1;
        }
      }
    } else {
      if (mp.count(id))
        printf("YES\n");
      else
        printf("NO\n");
    }
  }
  return 0;
}
