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

#!/usr/bin/python3

import operator as op
from queue import PriorityQueue
import heapq

class StdReader:
	def read_int(self):
		return int(self.read_string())

	def read_ints(self, sep=None):
		return [int(i) for i in self.read_strings(sep)]

	def read_float(self):
		return float(self.read_string())

	def read_floats(self, sep=None):
		return [float(i) for i in self.read_strings(sep)]

	def read_string(self):
		return input()

	def read_strings(self, sep=None):
		return self.read_string().split(sep)

reader = StdReader()


def main():
	n, k, q = reader.read_ints()
	t = reader.read_ints()

	# queue = PriorityQueue()
	queue = []
	qsize = 0

	# online = [False]*n
	# online_n = 0
	# prior = sorted([(i, t[i]) for i in range(n)], key=op.itemgetter(1), inverse=True)
	# pos = [0]*n
	# for i, p in enumerate(prior):
	# 	pos[p[0]] = i

	for i in range(q):
		qt, qid = reader.read_ints()
		qid -= 1

		if qt == 1:
			# qid online
			# online[qid] = True
			# online_n += 1
			if len(queue) == k:
				# queue.get()
				# heapq.heappop(queue)
				# qsize -= 1
				heapq.heappushpop(queue, (t[qid], qid))
			else:
				heapq.heappush(queue, (t[qid], qid))

			# queue.put((t[qid], qid))
			# heapq.heappush(queue, )
			# qsize += 1
		else:
			# query qid
			box = [i[1] for i in queue]
			# print(box)
			if qid in box:
				print('YES')
			else:
				print('NO')

			# if not online[qid]:
			# 	print('NO')
			# else:
			# 	pass


if __name__ == '__main__':
	main()
