N=int(input()) A=list(map(int,input().split())) B=list(map(int,input().split())) D=sorted(map(int,input().split()),reverse=True) DP=[[N+100]*(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]=min(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]=min(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]!=N+100: ANS=max(ANS,i+j) print(ANS)