#include using namespace std; int dp[100001]; int main(void) { cin.tie(0); ios::sync_with_stdio(false); int c, n, t; vector v; cin >> c; cin >> n; for (int i = 0; i < n; i++) { cin >> t; v.push_back(t); } sort(v.rbegin(), v.rend()); fill(dp, dp + 100001, 1e9); dp[0] = 0; for (int i = 0; i < n; i++) { for (int j = 0; j <= c; j++) { if (dp[j] >= 1e9) continue; if (j + v[i] <= c) { dp[j + v[i]] = min(dp[j + v[i]], dp[j] + 1); } } } if (dp[c] >= 1e9) { dp[c] = -1; } cout << dp[c] << '\n'; return 0; }