1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
n, m, q = map(int, input().split())
S = "1" * n
zbiory_zlozone = [None, int(S, 2)]
for i in range(1, n):
    S = ("0" * i + "1") * (n // (i + 1))
    zbiory_zlozone.append(int(S + "0" * (n - len(S)), 2))
for _ in range(m):
    op = map(int, input().split())
    typ = next(op)
    if typ == 1:
        zbiory_zlozone.append(zbiory_zlozone[next(op)] | zbiory_zlozone[next(op)])
    elif typ == 2:
        zbiory_zlozone.append(zbiory_zlozone[next(op)] & zbiory_zlozone[next(op)])
    else:
        zbiory_zlozone.append(~zbiory_zlozone[next(op)])
for _ in range(q):
     x, v = map(int, input().split())
     iv = 1 << (n - v)
     print("TAK" if zbiory_zlozone[x] & iv != 0  else "NIE")