def F(B,W):
    X=float("inf")
    K=0
    Mode=0

    A=[B,W]
    Index=[0,0]

    Flag=True
    while True:
        while True:
            if Index[Mode]==len(A[Mode]):
                Flag=False
                break
            if A[Mode][Index[Mode]]>=X:
                Index[Mode]+=1
            else:
                X=A[Mode][Index[Mode]]
                Index[Mode]+=1
                break

        if not Flag:
            break
        K+=1;Mode^=1

    return K
#================================================
N=int(input())
W=list(map(int,input().split()))

M=int(input())
B=list(map(int,input().split()))

W.sort(reverse=True);B.sort(reverse=True)
print(max(F(W,B),F(B,W)))