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.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.StringTokenizer;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 *
 * @author neuivn
 */
public class Main {
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        TaskA solver = new TaskA();
        solver.solve(1, in, out);
        out.close();
    }

    static class TaskA {
        public void solve(int testNumber, InputReader in, PrintWriter out) {

            int N = in.nextInt();
            int K = in.nextInt();
            int Q = in.nextInt();
            boolean[] isOnline = new boolean[N + 1];
            int[] val = new int[N + 1];
            for (int i = 1; i <= N; ++i) val[i] = in.nextInt();
            int total = 0;
            ArrayList<Integer> ar = new ArrayList<Integer>();
            for (int q = 0; q < Q; ++q) {
                int type = in.nextInt();
                int id = in.nextInt();
                if (type == 1) {
                    if (total + 1 <= K) {
                        ar.add(id);
                        ++total;
                    } else {
                        int minId = -1;
                        int min = Integer.MAX_VALUE;
                        for (int j = 0; j < ar.size(); ++j) {
                            if (min > val[(ar.get(j))]) {
                                min = val[ar.get(j)];
                                minId = ar.get(j);

                            }
                        }
                        if (val[id] > val[minId]) {
                            for (int z = 0; z < ar.size(); ++z) {
                                if (ar.get(z) == minId) {
                                    ar.remove(z);
                                    break;
                                }
                            }
//                        ar.remove(minId);
                            ar.add(id);
                        }
                    }
                } else {
                    if (ar.contains(id)) out.println("YES");
                    else out.println("NO");
                }
            }
        }

    }

    static class InputReader {
        public BufferedReader reader;
        public StringTokenizer tokenizer;

        public InputReader(InputStream stream) {
            reader = new BufferedReader(new InputStreamReader(stream), 32768);
            tokenizer = null;
        }

        public String next() {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                try {
                    tokenizer = new StringTokenizer(reader.readLine());
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
            return tokenizer.nextToken();
        }

        public int nextInt() {
            return Integer.parseInt(next());
        }

    }
}

