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)))