C = gets.to_i N = gets.to_i a = gets.split.map(&:to_i) INF = C + 1 dp = Array.new(C + 1, INF) dp[0] = 0 a.each do |x| (0..C-x).each do |y| dp[y + x] = [dp[y + x], dp[y] + 1].min end end ans = if dp[C] < INF dp[C] else -1 end puts ans