#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll n,m,a[10105],f[10105],b[10005];
ll find(ll x){
if(x>=n) return f[x]=0;
if(f[x]!=INT_MIN) return f[x];
ll ret=INT_MIN;
for(int i=0;i<m;i++){
ret=max(a[x]+find(x+b[i]),ret);
}
return f[x]=ret;
}
int main(){
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>b[i];
}
for(int i=0;i<=n+m;i++) f[i]=INT_MIN;
for(int i=0;i<n;i++) cin>>a[i];
cout<<find(0)<<'\n';
return 0;
}