N = gets.to_i A, B, C = gets.split.map(&:to_i) dp = Array.new(N + 1, 0) 0.upto(N) do |i| if i + 3 <= N && dp[i + 3] < dp[i] + A dp[i + 3] = dp[i] + A end if i + 5 <= N && dp[i + 5] < dp[i] + B dp[i + 5] = dp[i] + B end if i + 10 <= N && dp[i + 10] < dp[i] + C dp[i + 10] = dp[i] + C end end puts dp.max