#yuki949 n=int(raw_input()) a=map(int,raw_input().split()) b=map(int,raw_input().split()) d=map(int,raw_input().split()) a.reverse() b.reverse() d.sort() dp=[[0 for i in range(3003)] for j in range(3003)] for i in range(n+1): for j in range(n+1): if i>0: dp[i][j]=max(dp[i][j],dp[i-1][j]) if j>0: dp[i][j]=max(dp[i][j],dp[i][j-1]) if dp[i][j]==n: continue if i==n and j==n: continue if a[i]+b[j]>=d[dp[i][j]]: dp[i][j]+=1 print dp[n][n]