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 ForProblems {

    Random rnd = new Random();

    void solve() throws IOException {

        int n = readInt();
        int k = readInt();
        int q = readInt();
        int[] friendship = new int[n];
        for (int i = 0; i < n; i++) {
            friendship[i] = readInt();
        }
        TreeSet<Integer> online = new TreeSet<Integer>();
        for (int i = 0; i < q; i++) {
            int type = readInt();
            int id = readInt() - 1;
            if (type == 1) {
                online.add(friendship[id]);
                if (online.size() > k) {
                    online.remove(online.first());
                }
            }
            else {
                if (online.contains(friendship[id])) {
                    out.print("YES\n");
                }
                else {
                    out.print("NO\n");
                }
            }
        }
    }


    BufferedReader in;
    PrintWriter out;
    StringTokenizer tok = new StringTokenizer("");

    final boolean ONLINE_JUDGE = System.getProperty("ONLINE_JUDGE") != null;

    public static void main(String[] args){

        new ForProblems().run();
    }

    public void run() {

        try {
            long timeBegin = System.currentTimeMillis();
            Locale.setDefault(Locale.US);

            init();
            solve();

            out.close();

            long timeEnd = System.currentTimeMillis();
            System.err.println("Time = " + (timeEnd - timeBegin));
        } catch (Exception e) {
            e.printStackTrace(System.err);
            System.exit(-1);
        }
    }

    void init() throws FileNotFoundException {

        Locale.setDefault(Locale.US);

        if (ONLINE_JUDGE) {
            in = new BufferedReader(new InputStreamReader(System.in));
            out = new PrintWriter(System.out);
        } else {
            in = new BufferedReader(new FileReader("input.txt"));
            out = new PrintWriter("output.txt");
        }
    }

    String readString() throws IOException {
        while(!tok.hasMoreTokens()){
            try{
                tok = new StringTokenizer(in.readLine());
            } catch (Exception e) {
                return null;
            }
        }
        return tok.nextToken();
    }

    int readInt() throws IOException {
        return Integer.parseInt(readString());
    }

    long readLong() throws IOException {
        return Long.parseLong(readString());
    }

}