#include <bits/stdc++.h>
using namespace std;
long long T;
long long n;
struct food{
long long a;
long long b;
long long c;
long long key;
}eat[60];
long long f[100005];
bool cmp(food a,food b){
return a.key<b.key;
}
int main(){
cin>>T>>n;
for(long long i=1;i<=n;i++){
cin>>eat[i].a;
}
for(long long i=1;i<=n;i++){
cin>>eat[i].b;
}
for(long long i=1;i<=n;i++){
cin>>eat[i].c;
}
for(long long i=1;i<=n;i++){
eat[i].key=eat[i].b*eat[i].c;
}
long long ans=0;
sort(eat+1,eat+n+1,cmp);
for(long long i=1;i<=n;i++){
for(long long j=T;j>=0;j--){
if(j-eat[i].c>=0){
f[j]=max(f[j],f[j-eat[i].c]+eat[i].a-j*eat[i].b);
}
ans=max(ans,f[j]);
}
}
for(int i=1;i<=n;i++){
}
cout<<ans;
return 0;
}