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

# -*- coding: utf-8 -*-
"""
Created on Fri May  6 20:39:24 2016

@author: Alex
"""
'''
from queue import PriorityQueue
[n,k,q] = [int(i) for i in input().split()]
lt = [int(i) for i in input().split()]
it =[0]*n
disp = PriorityQueue()
for i in range(q):
    a,b=[int(j) for j in input().split()]
    if a==1:
        disp.put((lt[b-1],b))
        it[b-1]=1
        if disp.qsize()>k:
            it[disp.get()[1]-1]=0
    if a==2:
        if it[b-1]==1:
            print("YES")
        else:
            print('NO')
#堆排序为什么超时TAT
        '''
from heapq import heappush,heappop
[n,k,q] = list(map(int,input().split()))
lt = list(map(int,input().split()))
disp = []
it = [0]*n
for i in range(q):
    [a,b] =list(map(int,input().split()))
    if a==1:
        heappush(disp,(lt[b-1],b))
        it[b-1]=1
        if len(disp)>k:
            it[heappop(disp)[1]-1]=0
    if a==2:
        if it[b-1]==1:
            print("Yes")
        else:
            print("No")

    
        
    