#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int t, n; cin >> t >> n; vector c(n), v(n); for(int i=0; i> c[i]; for(int i=0; i> v[i]; vector dp(t+1, 0); for(int i=0; i 0){ for(int j=t; j>=c[i]; --j) dp[j] = max(dp[j], dp[j-c[i]] + v[i]); v[i] /= 2; } } cout << dp[t] << endl; return 0; }