def pyramid(Nw, W, Nb, B): pyli = [] W_max = max(W) pyli.append(W_max) W.pop(W.index(W_max)) for i in range(10): if len(B) == 0: break for j in range(len(B)): B_max = max(B) if B_max < pyli[-1]: pyli.append(B_max) B.pop(B.index(B_max)) break else: B.pop(B.index(B_max)) else: break if len(W) == 0: break for k in range(len(W)): W_max = max(W) if W_max < pyli[-1]: pyli.append(W_max) W.pop(W.index(W_max)) break else: W.pop(W.index(W_max)) else: break ans = len(pyli) return ans def pyr_judge(Nw, W, Nb, B): W2 = [] + W B2 = [] + B ans1 = pyramid(Nw, W, Nb, B) ans2 = pyramid(Nb, B2, Nw, W2) return max([ans1, ans2]) def main(): Nw = int(input()) W = list(map(int, input().split())) Nb = int(input()) B = list(map(int, input().split())) print(pyr_judge(Nw, W, Nb, B)) if __name__ == '__main__': main()