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

public class B {

	static StringBuilder st = new StringBuilder();

	public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner();
		PrintWriter out = new PrintWriter(System.out);
		
		int n = sc.nextInt() , k = sc.nextInt() , q = sc.nextInt();
		
		TreeSet<Pair> friends = new TreeSet<>();
		
		Pair [] p = new Pair[n + 1] ; 
		
		for(int i = 1 ; i <= n ;i++)
			p[i] = new Pair(i + 1 , sc.nextInt()) ; 
		
		
		while(q-->0)
		{
			if(sc.nextInt() == 1)
			{
				Pair pp = p[sc.nextInt()];
				
				if(friends.size() < k)
					friends.add(pp);
				else
				{
					if(friends.last().t < pp.t)
					{
						friends.pollLast();
						friends.add(pp);
					}
				}
			}
			else
			{
				if(friends.contains(p[sc.nextInt()]))
					out.println("YES");
				else
					out.println("NO");

				
			}
			
			
		}
		
		
		
		
		
		out.flush();
		out.close();

	}
	static class Pair implements Comparable<Pair>
	{
		int id ; 
		int t ;
		
		Pair(int a , int b)
		{
			id = a ; 
			t  = b ; 
		}

		@Override
		public int compareTo(Pair o) {
			return o.t - t;
		}
		
		
		
	}

	static class Scanner {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;

		Scanner() {
		}

		Scanner(String path) throws Exception {
			br = new BufferedReader(new FileReader(path));
		}

		String next() throws Exception {
			while (st == null || !st.hasMoreTokens())
				st = new StringTokenizer(br.readLine());
			return st.nextToken();
		}

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

		long nextLong() throws Exception {
			return Long.parseLong(next());
		}

		double nextDouble() throws Exception {
			return Double.parseDouble(next());
		}
	}

	static void shuffle(int[] a) {
		int n = a.length;
		for (int i = 0; i < n; i++) {
			int r = i + (int) (Math.random() * (n - i));
			int tmp = a[i];
			a[i] = a[r];
			a[r] = tmp;
		}
	}

	static void shuffle(char[] a) {
		int n = a.length;
		for (int i = 0; i < n; i++) {
			int r = i + (int) (Math.random() * (n - i));
			char tmp = a[i];
			a[i] = a[r];
			a[r] = tmp;
		}
	}

	static void shuffle(long[] a) {
		int n = a.length;
		for (int i = 0; i < n; i++) {
			int r = i + (int) (Math.random() * (n - i));
			long tmp = a[i];
			a[i] = a[r];
			a[r] = tmp;
		}
	}

	private static boolean oj = System.getProperty("ONLINE_JUDGE") != null;

	private static void tr(Object... o) {
		if (!oj)
			System.out.println(Arrays.deepToString(o));

	}
}