N=int(input()) A=list(map(int,input().split())) B=list(map(int,input().split())) D=sorted(map(int,input().split()),reverse=True) DP=[[-1]*(N+1) for i in range(N+1)] DP[0][0]=0 for s in range(N): for i in range(s+1): now=DP[i][s-i] if now==-1: continue next1=A[i+1]+B[s-i] for j in range(now,N): if next1>=D[j]: DP[i+1][s-i]=max(j+1,DP[i+1][s-i]) break next2=A[i]+B[s-i+1] for j in range(now,N): if next2>=D[j]: DP[i][s-i+1]=max(j+1,DP[i][s-i+1]) break ANS=0 for i in range(N+1): for j in range(N+1): if DP[i][j]!=-1: ANS=max(ANS,i+j) print(ANS)