#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){ while(x[op] >= 0){ func(op+1, left - a[op] * x[op], ans); x[op] --; } x[op] = 0; return false; }else{ for(int i=0; i<5; i++){ func(op+1, left - a[op] * x[op], ans); 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; }