import bisect from collections import deque N = int(input()) A = [int(a) for a in input().split()] B = [int(b) for b in input().split()] D = [int(d) for d in input().split()] D.sort() dp = [[N]*(N+1) for _ in range(N+1)] for i in range(N+1): for j in range(N+1): if i+j > N: continue c = A[i] + B[j] dp[i][j] = bisect.bisect_right(D, c) - 1 ans = 0 q = deque() q.append((0, 0, N)) while q: temp = q.popleft() i = temp[0] j = temp[1] cnt = temp[2] ans = max(ans, i+j) if i+j == N: continue if 0 < dp[i+1][j] < cnt: q.append((i+1, j, dp[i+1][j])) elif dp[i+1][j] >= cnt > 0: q.append((i+1, j, cnt-1)) if 0 < dp[i][j+1] < cnt: q.append((i, j+1, dp[i][j+1])) elif dp[i][j+1] >= cnt > 0: q.append((i, j+1, cnt-1)) print(ans)