#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; int main() { int C; cin >> C; int N; cin >> N; vector A(N); for (int i = 0; i < N; ++i) { cin >> A[i]; } vector dp(C + 1, C + 1); dp[0] = 0; for (int c = 0; c < C; ++c) { for (int i = 0; i < N; ++i) { int a = A[i]; if (a + c > C) continue; dp[a + c] = min(dp[a + c], dp[c] + 1); } } if (dp[C] == C + 1) { cout << -1 << endl; } else { cout << dp[C] << endl; } return 0; }