#include<bits/stdc++.h>
using namespace std;
const int M=200+10,N=2e4+10;
int arr[N],tool[M],f[N];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>tool[i];
}
for(int i=1;i<=n;i++){
cin>>arr[i];
}
for(int i=1;i<N;i++){
f[i]=-1*0x3f3f3f3f;
}
f[0]=0;
for(int i=1;i<=n*3;i++){
for(int j=1;j<=m;j++){
f[i]=max(f[i],f[max(0,i-tool[j])]+arr[max(0,i-tool[j])]);
}
}
int maxa=-0x3f3f3f3f;
for(int i=n+1;i<=3*n;i++){
maxa=max(maxa,f[i]);
}
cout<<maxa;
return 0;
}