#include<bits/stdc++.h>
using namespace std;
long long dp[20010];
long long a[105];
long long b[10010];
long long n,m;
long long ans=-0x7fffffff;
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>a[i];
dp[a[i]]=0;
}
for(int i=1;i<=n;i++)
{
cin>>b[i];
}
for(int i=1;i<=n+n;i++)
{
dp[i]=-0x7fffffff;
}
dp[1]=0;
for(int i=1;i<=n+n;i++)
{
for(int j=1;j<=m;j++)
{
if(i-a[j]>=1)
{
dp[i]=max(dp[i],dp[i-a[j]]+b[i-a[j]]);
if(i>=n)
{
ans=max(ans,dp[i]);
}
}
}
}
cout<<ans;
return 0;
}