#include<bits/stdc++.h>
using namespace std;
const long long inff=LONG_LONG_MIN;
long long n,m,a[10001],b[10001],dp[10001],maxx=inff,bu;
int main() {
cin>>n>>m;
for(int i=1; i<=m; i++) {
cin>>a[i];
}
for(int i=1; i<=n; i++) {
cin>>b[i];
}
for(int i=1; i<=n; i++)dp[i]=inff;
dp[1]=b[1];
for(int i=2; i<=n; i++) {
for(int j=1; j<=m; j++) {
if(i-a[j]>0) {
dp[i]=max(dp[i],b[i]+dp[i-a[j]]);
maxx=max(maxx,dp[i]);
}
}
}
cout<<maxx;
return 0;
}