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.PriorityQueue;
import java.util.Scanner;

/**
 * Mar 28, 2016 | 6:29:31 PM
 * <pre>
 * <u>Description</u>
 *
 * </pre>
 *
 * @author Essiennta Emmanuel (colourfulemmanuel@gmail.com)
 */
public class ProblemB{

    public void solve(int[] t, int[] type, int[] id, int k){
        PriorityQueue<Integer> pq = new PriorityQueue<>((a, b) -> t[a - 1] - t[b - 1]);
        for (int i = 0; i < type.length; i++)
            if (type[i] == 1)
                if (pq.size() < k)
//                    pq.add(t[id[i] - 1]);
                    pq.add(id[i]);
                else {
                    int min = pq.peek();
                    if (t[min - 1] < t[id[i] - 1]) {
                        pq.remove();
                        pq.add(id[i]);
                    }
                }
            else
                System.out.println(pq.contains(id[i]) ? "YES" : "NO");
    }

    public static void main(String[] args){
        try (Scanner sc = new Scanner(System.in)) {
            int n = sc.nextInt();
            int k = sc.nextInt();
            int q = sc.nextInt();
            int[] t = new int[n];
            for (int i = 0; i < n; i++)
                t[i] = sc.nextInt();
            int[] type = new int[q];
            int[] id = new int[q];
            for (int i = 0; i < q; i++){
                type[i] = sc.nextInt();
                id[i] = sc.nextInt();
            }
            new ProblemB().solve(t, type, id, k);
        }
    }
}
