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

import java.io.*;
import java.util.*;
public class Solve2 {

  public static void main(String[] args) {
	MyScanner scanner = new MyScanner();
	PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
	int n = scanner.nextInt();
    int k = scanner.nextInt();
    int q = scanner.nextInt();

	int[] t = new int[n];
	int[] t2 = new int[n];
	for(int i = 0; i < n; i++)
	  t[i] = t2[i] = scanner.nextInt();
	Arrays.sort(t2);
	HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
	for(int i = 0; i < n; i++) {
	  map.put(t2[i], i + 1);
	}

    int inf = 1000000000;
	Tree tree = new Tree(n + 3);
	
	for(int i = 0; i < q; i++) {
	  int type = scanner.nextInt();
	  int id = scanner.nextInt() - 1;
	  if (type == 1) {
	    tree.update(map.get(t[id]), 1);  
	  } else {
	    //System.out.println(tree.query(map.get(t[id]), n + 2));
		int nr = map.get(t[id]);
	    if(tree.get(nr) > 0 && tree.query(nr, n + 2) <= k)
	      out.println("YES");
		else
          out.println("NO");		
	  }
	}
	out.close();
  }
   static  class Tree{
	int n;
	long[] d;
	Tree(int nmin) {
		for(n = 1; n < nmin; n *= 2);
		d = new long[2 * n];
		Arrays.fill(d, 0);
	}
	void update(int i, long x) {
		d[n + i] = x;
		for(int k = (n + i) / 2; k > 0; k >>= 1)
			d[k] = d[k * 2] + d[k * 2 + 1];
	}
	long get(int i) { return d[n + i]; }
	//[l, r)
	long query(int l, int r) {
		long m = 0;
		for(; l != 0 && l + (l&-l) <= r; l += l&-l)
			m = m + d[(n + l) / (l&-l)];
		for(; l < r; r -= r&-r)
			m = m + d[(n + r) / (r&-r) - 1];
		return m;
	}
   }
  
  
  public static class MyScanner {
      BufferedReader br;
      StringTokenizer st;
 
      public MyScanner() {
         br = new BufferedReader(new InputStreamReader(System.in));
      }
 
      String next() {
          while (st == null || !st.hasMoreElements()) {
              try {
                  st = new StringTokenizer(br.readLine());
              } catch (IOException e) {
                  e.printStackTrace();
              }
          }
          return st.nextToken();
      }
 
      int nextInt() {
          return Integer.parseInt(next());
      }
 
      long nextLong() {
          return Long.parseLong(next());
      }
 
      double nextDouble() {
          return Double.parseDouble(next());
      }
 
      String nextLine(){
          String str = "";
	  try {
	     str = br.readLine();
	  } catch (IOException e) {
	     e.printStackTrace();
	  }
	  return str;
      }

   }
}
