#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,m,a[1001],b[100001],f[100001],ans;
int main(){
cin>>n>>m;
for (ll i=1;i<=m;i++) cin>>a[i];
for (ll i=0;i<=n;i++) cin>>b[i];
memset(f,-0x3f,sizeof(f));
f[0]=b[0];
for (ll i=1;i<=n;i++) for (ll j=1;j<=m;j++) if (i>=a[j]) f[i]=max(f[i],f[i-a[j]]+b[i]);
for (ll i=0;i<=n;i++) ans=max(f[i],ans);
cout<<ans;
}