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.math.BigInteger;
import java.util.*;
 
 
public class Main {
	static HashSet<Integer> hs=new HashSet<Integer>();
	static int count=0;
	static int citi=0;
		public static void main(String[] args) throws IOException 
		{
		InputReader in = new InputReader(System.in);
		PrintWriter pw = new PrintWriter(System.out);
//int n=in.nextInt();
/*BST b=new BST();
Node root=b.NewNode(1);
root.left=b.NewNode(2);
root.right=b.NewNode(3);
root.left.left=b.NewNode(4);
root.left.left.left=b.NewNode(5);
root.left.left.left.left=b.NewNode(6);
root.left.right=b.NewNode(7);
root.left.right.right=b.NewNode(8);
root.left.right.right.right=b.NewNode(9);
//System.out.println(b.Diameter(root));
b.PrintAncestors(root, 7);*/
		int n=in.nextInt();
		int k=in.nextInt();
		int q=in.nextInt();
		HashMap<Integer,Integer> hm=new HashMap<Integer,Integer>();
		int a[]=new int[n+1];
		for(int i=1;i<=n;i++)
		{
			a[i]=in.nextInt();
			hm.put(i, a[i]);
		}
	    TreeSet<Integer> set=new TreeSet<Integer>();
		while(q-->0)
		{
			int i=in.nextInt();
			if(i==1)
			{
				int x=in.nextInt();
			set.add(a[x]);
			}
			else
			{
				int y=in.nextInt();
				int val=hm.get(y);
				if(set.contains(val))
				{
					System.out.println("YES");
				}
				else
					System.out.println("NO");
			}
			if(set.size()>k)
				set.remove(set.first());
		}
		}
public static void dfs(int s,ArrayList<Integer> adj[],boolean visited[])
{
	visited[s]=true;
	
	hs.add(s);
	System.out.print(s+" ");
	for(int i=0;i<adj[s].size();i++)
	{
		if(!visited[adj[s].get(i)])
		{
		
            dfs(adj[s].get(i),adj,visited);
		}
	}
	
}
		public static long power(long a,long b)
		{
			long result=1;
			while(b>0)
			{
				if(b%2==1)
					result*=a;
				a=a*a;
				b/=2;
			}
			return result;
		}
				public static long pow(long n,long p,long m)
	{
		 long  result = 1;
		  if(p==0)
		    return 1;
		if (p==1)
		    return n;
		while(p!=0)
		{
		    if(p%2==1)
		        result *= n;
		    if(result>=m)
		    result%=m;
		    p >>=1;
		    n*=n;
		    if(n>=m)
		    n%=m;
		}
		return result;
	}
	static class Pair implements Comparable<Pair>{
		int val;
		int fr;
		Pair(int mr,int er){
			val=mr;
			fr=er;
			
		}
		@Override
		public int compareTo(Pair o) {
			return 1;
			}
	}
	public static long gcd(long a, long b) {
		  if (b == 0) return a;
		  return gcd(b, a%b);
		}
	static class InputReader {
 
		private InputStream stream;
		private byte[] buf = new byte[8192];
		private int curChar, snumChars;
		private SpaceCharFilter filter;
 
		public InputReader(InputStream stream) {
			this.stream = stream;
		}
 
		public int snext() {
			if (snumChars == -1)
				throw new InputMismatchException();
			if (curChar >= snumChars) {
				curChar = 0;
				try {
					snumChars = stream.read(buf);
				} catch (IOException e) {
					throw new InputMismatchException();
				}
				if (snumChars <= 0)
					return -1;
			}
			return buf[curChar++];
		}
 
		public   int nextInt() {
			int c = snext();
			while (isSpaceChar(c))
				c = snext();
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = snext();
			}
			int res = 0;
			do {
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = snext();
			} while (!isSpaceChar(c));
			return res * sgn;
		}
 
		public long nextLong() {
			int c = snext();
			while (isSpaceChar(c))
				c = snext();
			int sgn = 1;
			if (c == '-') {
				sgn = -1;
				c = snext();
			}
			long res = 0;
			do {
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				res *= 10;
				res += c - '0';
				c = snext();
			} while (!isSpaceChar(c));
			return res * sgn;
		}
 
		public int[] nextIntArray(int n) {
			int a[] = new int[n];
			for (int i = 0; i < n; i++)
				a[i] = nextInt();
			return a;
		}
 
		public String readString() {
			int c = snext();
			while (isSpaceChar(c))
				c = snext();
			StringBuilder res = new StringBuilder();
			do {
				res.appendCodePoint(c);
				c = snext();
			} while (!isSpaceChar(c));
			return res.toString();
		}
 
		public boolean isSpaceChar(int c) {
			if (filter != null)
				return filter.isSpaceChar(c);
			return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
		}
 
		public interface SpaceCharFilter {
			public boolean isSpaceChar(int ch);
		}
	}
}