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.InputStreamReader;
import java.io.PrintWriter;

public class BearAndDisplayedFriends {
    static int[] deskId;
    static int[] deskValue;
    
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        PrintWriter pw = new PrintWriter(System.out);
        StringBuilder sb = new StringBuilder();
        String[] inputData = br.readLine().split(" ");
        String[] inputData2 = br.readLine().split(" ");
        int n = Integer.parseInt(inputData[0]), k = Math.min(6, Integer.parseInt(inputData[1])), q = Integer.parseInt(inputData[2]);
        int[] t = new int[n];
        int[] onDesk = new int[n];
        deskId = new int[k];
        deskValue = new int[k];
        int type, id, i, l = 0;
        for (i = 0; i < n; i++) {
            t[i] = Integer.parseInt(inputData2[i]);
            onDesk[i] = 0;
        }
        for (i = 0; i < q; i++) {
            inputData = br.readLine().split(" ");
            type = Integer.parseInt(inputData[0]);
            id = Integer.parseInt(inputData[1]) - 1;
            if (type == 1) {
                if (l < k) {
                    onDesk[id] = 1;
                    deskId[l] = id;
                    deskValue[l] = t[id];
                    l++;
                }
                else {
                    int temp = t[id];
                    quickSort(deskValue, 0, k - 1);
                    if (temp > deskValue[0]) {
                        onDesk[id] = 1;
                        onDesk[deskId[0]] = 0;
                        deskValue[0] = temp;
                        deskId[0] = id;
                    }
                }
            }
            else {
                if (onDesk[id] == 1)
                    sb.append("YES\n");
                else
                    sb.append("NO\n");
            }
        }
        pw.println(sb.toString());
        pw.close();
    }

    static int partition(int arr[], int left, int right) {
        int i = left, j = right;
        int tmp;
        int pivot = arr[(left + right) / 2];
        while (i <= j) {
            while (arr[i] < pivot)
                i++;
            while (arr[j] > pivot)
                j--;
            if (i <= j) {
                tmp = arr[i];
                arr[i] = arr[j];
                arr[j] = tmp;
                tmp = deskId[i];
                deskId[i] = deskId[j];
                deskId[j] = tmp;
                i++;
                j--;
            }
        }
        return i;
    }
    
    static void quickSort(int arr[], int left, int right) {
        int index = partition(arr, left, right);
        if (left < index - 1)
            quickSort(arr, left, index - 1);
        if (index < right)
            quickSort(arr, index, right);
    }
}


