#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#define ll long long
using namespace std;
ll t,n,ans;
struct food{
ll a,b,c;
}f[55];
ll dp[100005];
int cmd(food a,food b)
{
a.b*b.c>a.c*b.b;
}
int main()
{
cin>>t>>n;
for(ll i=1;i<=n;i++)
cin>>f[i].a;
for(ll i=1;i<=n;i++)
cin>>f[i].b;
for(ll i=1;i<=n;i++)
cin>>f[i].c;
sort(f+1,f+1+n,cmd);
for(ll i=1;i<=n;i++)
for(ll l=t;l>=f[i].c;l--)
dp[l]=max(dp[l],dp[l-f[i].c]+f[i].a-l*f[i].b);
for(ll i=1;i<=t;i++)
ans=max(ans,dp[i]);
cout<<ans<<endl;
return 0;
}