#include typedef long long i64; using std::cout; using std::endl; using std::cin; int main(){ int T, n; cin >> T >> n; std::vector t(n); for(int i = 0; i < n; i++) cin >> t[i]; std::vector vec; std::vector li(1 << n, false); for(int i = 1; i < (1 << n); i++) { int tmp = 0; for(int j = 0; j < n; j++) if((i >> j) & 1) tmp += t[j]; if(tmp > T) continue; li[i] = true; } std::vector dp(1 << n, 1 << 30); dp[0] = 0; for(int i = 0; i < (1 << n); i++) { for(int bit = ~i & ((1 << n) - 1); bit >= 0; bit--) { bit &= ~i & ((1 << n) - 1); if(li[bit]) dp[i | bit] = std::min(dp[i | bit], dp[i] + 1); } } cout << dp[(1 << n) - 1] << endl; return 0; }