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

public class B {
	
	class Friend implements Comparable<Friend>{
		public int i, t;

		public Friend(int i, int t) {
			super();
			this.i = i;
			this.t = t;
		}

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

		@Override
		public int hashCode() {
			final int prime = 31;
			int result = 1;
			result = prime * result + getOuterType().hashCode();
			result = prime * result + i;
			return result;
		}

		@Override
		public boolean equals(Object obj) {
			if (this == obj)
				return true;
			if (obj == null)
				return false;
			if (getClass() != obj.getClass())
				return false;
			Friend other = (Friend) obj;
			if (!getOuterType().equals(other.getOuterType()))
				return false;
			
			if (i != other.i)
				return false;
			
			return true;
		}

		private B getOuterType() {
			return B.this;
		}
			
		
	}
	
	public void solve(InputReader in, PrintWriter out) {
        int n, k, q;
        n = in.nextInt();
        k = in.nextInt();
        q = in.nextInt();
        
        int t[] = new int[n+1];
        for(int i = 1; i <= n; i++) t[i] = in.nextInt();
		
        PriorityQueue<Friend> pq = new PriorityQueue<Friend>();
        
        for(int i = 0; i < q; i++) {
        	int type, id;
        	type = in.nextInt();
        	id = in.nextInt();
        	if (type == 1) {
        		pq.add(new Friend(id, t[id]));
        		while(pq.size() > k) pq.poll();
        		
//        		for(Friend f : pq) System.out.print(f.t + " ");
//        		System.out.println();
        	} else {
        		if(pq.contains(new Friend(id, -1))) {
        			System.out.println("YES");
        		} else {
        			System.out.println("NO");
        		}
        		
        	}
        }
    }
	
    public static void main(String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        PrintWriter out = new PrintWriter(outputStream);
        B solver = new B();
        solver.solve(in, out);
        out.close();
    }

    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());
        }
        
        public double nextDouble() {
            return Double.parseDouble(next());
        }
    }
}
