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

def main():
	(n, k, q) = (int(x) for x in input().split())
	bears = [int(x) for x in input().split()]
	#bearsDict = {bears[i]: i for i in range(len(bears))}
	queries = [None] * q
	for i in range(q):
		(typei, idi) = (int(x) for x in input().split())
		queries[i] = (typei, idi)
	solver(k, bears, queries)

def solver(k, bears, queries):
	kBest = set()
	for (typei, idi) in queries:
		if typei == 1:
			handle1(k, kBest, bears, idi)
		elif typei == 2:
			print(handle2(kBest, bears, idi))

def handle1(k, kBest, bears, idi):
	friendship = bears[idi - 1]
	if len(kBest) < k:
		kBest.add(friendship)
	else:
		minimum = min(kBest)
		if minimum < friendship:
			kBest.remove(minimum)
			kBest.add(friendship)

def handle2(kBest, bears, idi):
	friendship = bears[idi - 1]
	if friendship in kBest:
		return "YES"
	else:
		return "NO"

# k = 3
# bears = [50, 20, 51, 17, 99, 24]
# queries = [(1, 3), (1, 4), (1, 5), (1, 2), (2, 4), (2, 2),
# (1, 1), (2, 4), (2, 3)]

# solver(k, bears, queries)
main()