#include <bits/stdc++.h>
using namespace std;
long long a[100009];
map<long long, long long> mp;
map<long long, long long> mp1;
int main() {
  cin.sync_with_stdio(false);
  long long i, j, k, l, c, v, b[1000], aa[1009], bb[1000], n, m, r, t;
  long long x1, x2, y1, y2, x3, x4, x5, x6;
  string s, s1, s2, s3, ss[10000];
  mp.clear();
  mp1.clear();
  set<long long> mn;
  set<long long>::iterator it;
  while (cin >> n >> m >> k) {
    for (i = 0; i < n; i++) {
      cin >> r;
      mp[r] = i + 1;
      mp1[i + 1] = r;
    }
    j = 0;
    for (i = 0; i < k; i++) {
      cin >> r >> t;
      if (r == 1) {
        j++;
        if (j > m) {
          for (it = mn.begin(), l = 0; l < 1; ++it, l++) {
            n = *it;
          }
          if (mp1[t] > n) {
            mn.insert(mp1[t]);
            mn.erase(n);
          }
        } else {
          mn.insert(mp1[t]);
        }
      } else {
        it = mn.find(mp1[t]);
        if (mp1[t] == *it)
          cout << "YES" << endl;
        else
          cout << "NO" << endl;
      }
    }
  }
}
