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.util.*;
import java.io.*;

public class CF658B{ 
  public static int index;
  public static void main(String[] args)throws Exception {
    InputReader in = new InputReader(System.in);
    PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));
    int n = in.nextInt(), k = in.nextInt(), q = in.nextInt();
    
    int a[] = new int[n+1];
    for(int i = 1; i <= n; i++)
      a[i]= in.nextInt();
    
    boolean[] mark = new boolean[n+1];
    
    ArrayList<Pair> list = new ArrayList<Pair>();
    
    for(int i = 0; i < q; i++){
      int id = in.nextInt(), num = in.nextInt();
     // System.err.println(id+" "+num);
      if(id == 1){
        if(list.size() < k){
          list.add(new Pair(num, a[num]));
          mark[num] = true;
        }
        else if(list.get(0).t < a[num]){
          mark[list.get(0).idx] = false;
          list.remove(0);
          list.add(new Pair(num, a[num]));
          mark[num] = true;
        }                   
        Collections.sort(list);
//        for(Pair p: list) System.out.print(p.idx+" ");
//        System.err.println();
      }
      
      else{
        if(mark[num]) pw.println("YES");
        else pw.println("NO");
      }
    }
    
    pw.close();
  }
  
static class Pair implements Comparable<Pair>{
  public int t; 
  public int idx;
  public Pair(int idxx, int tt){
    idx = idxx; t =tt;
  }
  public int compareTo(Pair p) {
    return this.t-p.t;
 }
}
  
  static class InputReader {
    public BufferedReader reader;
    public StringTokenizer tokenizer;
    
    public InputReader(InputStream stream) {
      reader = new BufferedReader(new InputStreamReader(stream));
      tokenizer = null;
    }
    
    public String next() {
  
      try {
        while (tokenizer == null || !tokenizer.hasMoreTokens())
          tokenizer = new StringTokenizer(reader.readLine());
      } catch (IOException e) {
        return null;
      }
      
      return tokenizer.nextToken();
    }
    
    public String nextLine() {
      String line = null;
      try {
        tokenizer = null;
        line =  reader.readLine();
      } catch (IOException e) {
        throw new RuntimeException(e);
      }
      return line;
    }
    
    public int nextInt() {
      return Integer.parseInt(next());
    }
    
    public double nextDouble() {
      return Double.parseDouble(next());
    }
    
    public long nextLong() {
      return Long.parseLong(next());
    }
    public boolean hasNext(){
      try {
        while (tokenizer == null || !tokenizer.hasMoreTokens())
          tokenizer = new StringTokenizer(reader.readLine());
      } 
      catch (Exception e) {
        return false;
      }
     
    return true; 
    
    }
  }
}