m = gets.to_i n = gets.to_i c_list = gets.chomp.split.map(&:to_i) prime_list = [2] 3.upto(10000) do |i| prime_list.push(i) if prime_list.none? {|p| i % p == 0} end dp = Array.new(10001, -1) dp[m] = 0 c_list.each do |c| m.downto(1) do |j| k = j - c next if dp[j] == -1 break if k < 0 dp[k] = [dp[k], dp[j] + 1].max end end result = 0 prime_list.each do |p| result += dp[p] if dp[p] != -1 end result += dp.max puts result