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.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.HashMap;

public class NewClass1 {
    public static void main(String[] args) throws Exception {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
        int[] A = iarray(in.readLine(), 3);
        int n = A[0];
        int k = A[1];
        int q = A[2];
        HashMap<Integer, Integer> map = new HashMap<>();
        int[] t = iarray(in.readLine(), n);
        int[] type = new int[q];
        int[] id = new int[q];
        for (int i=1; i<=n; i++) {
            map.put(i, 0);
        }
        ArrayList<Integer> list = new ArrayList<>();
        for (int i=0; i<q; i++) {
            int[] B = iarray(in.readLine(), 2);
            type[i] = B[0];
            id[i] = B[1];
            if (B[0]==1) {
                if (list.size()<k) {
                    map.put(B[1], 1);
                    list.add(B[1]);
                }
                else {
                    int min = t[list.get(0)-1];
                    int index=0;
                    for (int j=0; j<k; j++) {
                        if (t[list.get(j)-1]<min) {
                            min = t[list.get(j)-1];
                            index=j;
                        }
                    }
                    if (t[B[1]-1]>min) {
                        map.put(list.get(index), 0);
                        list.remove(index);
                        list.add(B[1]);
                        map.put(B[1], 1);
                    }
                }
            }
            else {
                if (map.get(B[1])==1) {
                    out.write("YES\n");
                }
                else {
                    out.write("NO\n");
                }
            }
        }
        out.flush();
    }
    
    private static int iparse (String s) {
        int n = Integer.parseInt(s);
        return n;
    }
    
    private static long lparse (String s) {
        long n = Long.parseLong(s);
        return n;
    }
    
    private static double dparse (String s) {
        double n = Double.parseDouble(s);
        return n;
    }
    
    private static int[] iarray (String s, int n) {
        String[] s1 = s.split(" ");
        int[] A = new int[n];
        for (int i=0; i<n; i++) {
            A[i] = Integer.parseInt(s1[i]);
        }
        return A;
    }
    
    private static long[] larray (String s, int n) {
        String[] s1 = s.split(" ");
        long[] A = new long[n];
        for (int i=0; i<n; i++) {
            A[i] = Long.parseLong(s1[i]);
        }
        return A;
    }
    
    private static double[] darray (String s, int n) {
        String[] s1 = s.split(" ");
        double[] A = new double[n];
        for (int i=0; i<n; i++) {
            A[i] = Double.parseDouble(s1[i]);
        }
        return A;
    }
}