N=int(input())
assert 2<=N<=10**5,"Nが制約違反(N={})".format(N)

A=list(map(int,input().split()))
B=list(map(int,input().split()))
P=list(map(int,input().split()))

assert len(A)==N,"Aの長さがNではない(長さ:{})".format(len(A))
assert len(B)==N,"Bの長さがNではない(長さ:{})".format(len(B))
assert len(P)==N,"Pの長さがNではない(長さ:{})".format(len(P))

for i in range(N):
    assert 0<=A[i]<=1000,"{}人目のAが制約違反(A_i={})".format(i+1,A[i])
    assert 0<=B[i]<=1000,"{}人目のBが制約違反(B_i={})".format(i+1,B[i])
    assert 0<=P[i]<=100,"{}人目のPが制約違反(P_i={})".format(i+1,P[i])

Q=int(input())
assert 1<=Q<=2*10**5,"Qが制約違反(Q={})".format(Q)

for i in range(Q):
    X,Y=map(int,input().split())
    assert 1<=X<=N,"X_{}が制約違反(X_{}={})".format(i+1,i+1,X)
    assert 1<=Y<=N,"Y_{}が制約違反(Y_{}={})".format(i+1,i+1,Y)
    assert X!=Y,"X_{}=Y_{}(={})".format(i+1,i+1,X)

print("OK")