#include #include #include #include #include #include #include #include #include #include using namespace std; //#define __int64 long long #define long __int64 #define REP(i,a,b) for(int i=a;i= n){ return false; } x[op] = left / a[op]; if(ans == INT_MAX){ for(int i=0; i<6; i++){ func(op+1, left - a[op] * x[op], ans); if(x[op] == 0){ break; } x[op] --; } return false; }else{ for(int i=0; i<4; i++){ func(op+1, left - a[op] * x[op], ans); if(x[op] == 0){ break; } x[op] --; } return false; } } int main(){ int ans = INT_MAX; cin >> total >> n; rep(i,n){ cin >> a[i]; } sort(a, a + n, greater()); //降順 func(0, total, ans); cout << (ans == INT_MAX ? -1 : ans) << endl; return 0; }