#yuki_37 dp=[-1 for i in xrange(100000)] t=int(raw_input()) n=int(raw_input()) c=map(int,raw_input().split()) v=map(int,raw_input().split()) dp[0]=0 res=0 for i in xrange(n): while v[i]: for j in xrange(t,c[i]-1,-1): if dp[j]: dp[j]=max(dp[j],dp[j-c[i]]+v[i]) v[i]/=2 for i in xrange(t+1): res=max(dp[i],res) print res