#include typedef long long ll; using namespace std; int INF = 1e9; int MOD = 1e9+7; int dp[100010]; main(){ int C,N,A[100]; cin >> C >> N; for(int i = 0;i < N;i++)cin >> A[i]; fill(dp,dp+100010,INF); dp[0] = 0; for(int i = 0;i < N;i++){ for(int j = 0;j < A[i];j++){ for(int k = j+A[i];k <= 100000;k+=A[i]){ dp[k] = min(dp[k],dp[k-A[i]]+1); } } } if(dp[C] == INF)cout << -1 << endl; else cout << dp[C] << endl; }