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

public class Main {

	public static void main(String[] args) {
		InputStream inputStream = System.in;
		OutputStream outputStream = System.out;

		InputReader in = new InputReader(inputStream);
		OutputWriter out = new OutputWriter(outputStream);

		TaskA solver = new TaskA();
		solver.solve(in, out);

		out.close();
	}

}

class TaskA {

	public void solve(InputReader in, OutputWriter out) {
		
		int n,k,q;
		n = in.nextInt();
		k = in.nextInt();
		q = in.nextInt();
		int[] t = new int[n];
		for(int i = 0; i < n; i++)
			t[i] = in.nextInt();
		
		TreeSet<Pair> set = new TreeSet<Pair>();
		for(int i = 0; i < q; i++) {
			int type = in.nextInt();
			int index = in.nextInt();
			
			if(type == 1) {
				set.add(new Pair(index, t[index - 1]));
			} else {
				out.writeln(set.contains(new Pair(index, t[index - 1])) ? "YES" : "NO");
			}
			while(set.size() > k) {
				set.remove(set.first());
			}
			
		}
		
	}

}

class Pair implements Comparable<Pair>{
	
	public Pair(int index, int t) {
		this.index = index;
		this.t = t;
	}
	
	public int compareTo(Pair p) {
		if(t == p.t)
			return index - p.index;
		else
			return t - p.t;
	}
	
	int index;
	int t;
}

class InputReader {

	public InputReader(InputStream inputStream) {
		tokenizer = null;
		reader = new BufferedReader(new InputStreamReader(inputStream));
	}

	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 String nextLine() {
		try {
			return reader.readLine();
		} catch (IOException e) {
			throw new RuntimeException(e);
		}
	}

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

	StringTokenizer tokenizer;
	BufferedReader reader;
}

class OutputWriter {

	public OutputWriter(OutputStream outputStream) {
		out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
				outputStream)));
	}

	public void write(Object... o) {
		for (Object x : o)
			out.print(x);
	}

	public void writeln(Object... o) {
		write(o);
		out.println();
	}

	public void close() {
		out.close();
	}

	PrintWriter out;
}
