#include<bits/stdc++.h>
using namespace std;
#define N 20200
int n,m,a[110],b[N],f[N];
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
scanf("%d",&a[i]);
for(int i=0;i<2*n;i++)
f[i]=-1e9;
for(int i=1;i<=n;i++)
scanf("%d",&b[i]);
f[1]=0;
for(int i=1;i<=n*2;i++){
for(int j=1;j<=m;j++)
if(i-a[j]>0)
f[i]=max(f[i],f[i-a[j]]+b[i-a[j]]);
}
int res=-1e9;
for(int i=n;i<=n*2;i++)
res=max(res,f[i]);
printf("%d",res);
return 0;
}