#include using namespace std; #define REP(i, n) for(int(i)=0;(i)<(n);++(i)) #define in(T,V) T V;cin>>V; const int LIM = 1000000; int dp[111111]; int main(){ in(int,C); in(int,N); REP(i,C+1) dp[i] = LIM; dp[0] = 0; REP(i,N){ in(int,v); for(int j = v; j <= C; j++) dp[j] = min(dp[j], dp[j-v] + 1); } cout << (dp[C] >= LIM ? -1 : dp[C]) << endl; }