from bisect import * N = int(input()) A = list(map(int, input().split())) B = list(map(int, input().split())) D = list(map(int, input().split())) D.sort() dp = [[-1]*(N+1) for _ in range(N+1)] dp[0][0] = N for i in range(N+1): for j in range(N-i+1): mark = bisect_right(D, A[i]+B[j]) if i>0: dp[i][j] = max(dp[i][j], min(mark-1, dp[i-1][j]-1)) if j>0: dp[i][j] = max(dp[i][j], min(mark-1, dp[i][j-1]-1)) ans = 0 for i in range(N+1): for j in range(N-i+1): if dp[i][j]>=0: ans = max(ans, i+j) print(ans)