N = gets.to_i A = Array.new(3) B = Array.new(3) (0..2).each do |i| A[i], B[i] = gets.split.map(&:to_i) end if A[1]*B[2] < A[2]*B[1] then A[2],B[2],A[1],B[1]=A[1],B[1],A[2],B[2] end if A[0]*B[2] < A[2]*B[0] then A[0],B[0],A[2],B[2]=A[2],B[2],A[0],B[0] end dp = Array.new((A[2]+1)*(A[1]+A[0]), 0) ans=0 (0..(A[2]*(A[0]+A[1]))).each do |i| ans=[ans,dp[i]+(N-i)/A[2]*B[2]].max if N>=i (0..1).each do |j| dp[i+A[j]] = [dp[i+A[j]], dp[i]+B[j]].max end end puts (ans)