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 random, bisect

class friend(object):
    def __init__(self, ID, t):
        self.ID = ID
        self.t = t
    def __gt__(self, friend2):
        return self.t > friend2.t
    def __repr__(self):
        return "[" + str(self.ID) + ": " + str(self.t) + "]"
        


n, k, q = (int(n) for n in raw_input().strip().split())
ts = [0] + [int(n) for n in raw_input().strip().split()]

fds = []
for m in xrange(q):
    cmd, f = (int(n) for n in raw_input().strip().split())
    if cmd == 1:
        fd = friend(f, ts[f])
        bisect.insort(fds, fd)
        if len(fds) > k:
            fds.pop(0)
    else:
        for fd in fds:
            if fd.ID == f:
                print "YES"
                break
        else:
            print "NO"
        