#include "bits/stdc++.h" using namespace std; #define FOR(i,j,k) for(int (i)=(j);(i)<(int)(k);++(i)) #define rep(i,j) FOR(i,0,j) #define each(x,y) for(auto &(x):(y)) #define mp make_pair #define all(x) (x).begin(),(x).end() #define debug(x) cout<<#x<<": "<<(x)< pii; typedef vector vi; typedef vector vll; int main(){ int T, N; cin >> T >> N; vector dp(T + 1, -100000000); dp[0] = 0; vi C(N), V(N); rep(i, N)scanf("%d", &C[i]); rep(i, N)scanf("%d", &V[i]); rep(i, N){ int c=C[i], v=V[i]; while(v > 0){ for(int j = T-c; j >= 0; --j){ smax(dp[j + c], dp[j] + v); } v /= 2; } } int ans = *max_element(all(dp)); cout << ans << endl; }