nw = int(input()) whiteBrick = [int(x) for x in input().split()] nb = int(input()) blackBrick = [int(x) for x in input().split()] res = 0 whiteBrick.sort(reverse=True) blackBrick.sort(reverse=True) whiteNow = 0 blackNow = 0 now = 1000 whiteSaki = 0 for i in range(nw + nb): if whiteNow >= nw: break whiteFind = False for iw in range(whiteNow, nw): if whiteBrick[iw] < now: now = whiteBrick[iw] whiteNow = iw + 1 whiteSaki += 1 whiteFind = True break if not whiteFind: break if blackNow >= nb: break blackFind = False for ib in range(blackNow, nb): if blackBrick[ib] < now: now = blackBrick[ib] blackNow = ib + 1 whiteSaki += 1 blackFind = True break if not blackFind: break whiteNow = 0 blackNow = 0 now = 1000 blackSaki = 0 for i in range(nw + nb): if blackNow >= nb: break blackFind = False for ib in range(blackNow, nb): if blackBrick[ib] < now: now = blackBrick[ib] blackNow = ib + 1 blackSaki += 1 blackFind = True break if not blackFind: break if whiteNow >= nw: break whiteFind = False for iw in range(whiteNow, nw): if whiteBrick[iw] < now: now = whiteBrick[iw] whiteNow = iw + 1 blackSaki += 1 whiteFind = True break if not whiteFind: break res = max(whiteSaki, blackSaki) print(res)