#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define BET(a,b,c) ((a)<=(b)&&(b)<(c)) #define FOR(i,n) for(int i=0,i##_end=(int(n));i VI; typedef vector VVI; int main() { int t,N; cin>>t>>N; VI c(N); VI v(N); FOR(i,N) cin>>c[i]; FOR(i,N) cin>>v[i]; VI dp(t + 1); FOR(i,N){ int fun = v[i]; while(fun){ for(int j=t;j-c[i]>=0;j--){ dp[j] = max(dp[j], dp[j-c[i]] + fun); } fun /= 2; } } cout<<*max_element(ALL(dp))<