N = int(input()) M = min(4000000,N) DP = [- 10**9]*(M+1) DP[0] = 0 A = [list(map(int,input().split())) for i in range(3)] A = [(b/a,a,b) for a,b in A] A.sort(key=lambda x:x[0]) _,a,b = A[0] i = 1 while a*i <= M: DP[a*i] = b*i i+=1 _,a,b = A[1] ans = 0 for i in range(M+1): if i>=a: DP[i] = max(DP[i-a]+b,DP[i]) ans = max(ans,((N-i)//A[2][1])*A[2][2]+DP[i]) print(ans)