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


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Administrator
 */
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.HashMap;
import java.util.StringTokenizer;

//codeforce
public class Main4545454 {

	private static BufferedReader in;
	private static PrintWriter out;
	private static StringTokenizer input;
	static int numerOnlineUsers = 0;

	static class Person implements Comparable<Person> {

		int id;
		int p;
		boolean isOnline;

		Person(int id, int p, boolean isOnline) {
			this.id = id;
			this.p = p;
			this.isOnline = isOnline;

		}

		@Override
		public int compareTo(Person person) {
			if (this.p > person.p) {
				return -1;
			} else if (this.p > person.p) {
				return 1;
			} else {
				return 0;
			}
		}

	}

	public static void main(String[] args) throws IOException {
		// -------------------------------------------------------------------------
		// Initializing...
		new Main4545454();
		// -------------------------------------------------------------------------
		// put your code here... :)
		int n = nextInt();
		int k = nextInt();
		int q = nextInt();
		Person[] persons = new Person[n];
		Person[] personsOnline = new Person[k];
		int indexOnline = 0;
		for (int i = 0; i < persons.length; i++) {
			Person p = new Person(i, nextInt(), false);
			persons[i] = p;
		}
		Arrays.sort(persons);
		HashMap<Integer, Integer> map = new HashMap<>();
		for (int i = 0; i < persons.length; i++) {
			map.put(persons[i].id, i);
		}
		for (int i = 0; i < personsOnline.length; i++) {
			Person p = new Person(0, 0, false);
			personsOnline[i]=p;
		}
		for (int i = 0; i < q; i++) {
			int op = nextInt();
			int id = nextInt() - 1;
			int validId = map.get(id);
			switch (op) {
			case 1:
				if (indexOnline < k) {
					personsOnline[indexOnline++] = persons[validId];
					Arrays.sort(personsOnline);
				} else {
					if (personsOnline[personsOnline.length - 1].p < persons[validId].p) {
						personsOnline[personsOnline.length - 1] = persons[validId];
						Arrays.sort(personsOnline);
						break;
					}
				}
				break;
			case 2:
				searchOnlineUser(id, personsOnline, k,indexOnline);
			default:
				break;
			}
		}

		end();

		// --------------------------------------------------------------------------
	}

	static void searchOnlineUser(int id, Person[] persons, int k,int indexOnine) {
		for (int i = 0; i < indexOnine; i++) {
			if (persons[i].id == id) {
				System.out.println("YES");
				return;
			}
		}
		System.out.println("NO");

	}

	public Main4545454() throws IOException {
		// Input Output for Console to be used for trying the test samples of
		// the problem
		in = new BufferedReader(new InputStreamReader(System.in));
		out = new PrintWriter(System.out);
		// -------------------------------------------------------------------------
		// Initalize Stringtokenizer input
		input = new StringTokenizer(in.readLine());
	}

	private static int nextInt() throws IOException {
		if (!input.hasMoreTokens())
			input = new StringTokenizer(in.readLine());
		return Integer.parseInt(input.nextToken());
	}

	private static void end() throws IOException {
		in.close();
		out.close();
		System.exit(0);
	}

}
