#include<bits/stdc++.h>
using namespace std;
long long n=0;
long long m=0;
long long a[108]={0};
long long b[10008]={0};
long long dp[2000008]={0};
long long ans=(-1000000008);
int main(){
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
cin>>b[i];
dp[i]=-1000000008;
}
sort(a,a+m);
for(int i=n;i<=n+a[m]-1;i++){
dp[i]=-1000000008;
}
dp[0]=0;
for(int i=0;i<n+a[m-1]-1;i++){
for(int j=0;j<m;j++){
if(i-a[j]>=0 && i-a[j]<n){
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;
}