#include<bits/stdc++.h>
using namespace std;
int n,m,f[20005],a[20005],b[20005];
int main(){
cin>>n>>m;
memset(f,-0x3f,sizeof(f));
f[1]=0;
for(int i=1;i<=m;++i) cin>>a[i];
for(int i=1;i<=n;++i) cin>>b[i];
for(int i=2;i<=2*n;++i)
for(int j=1;j<=m;++j)
if(i>=a[j]) f[i]=max(f[i],f[i-a[j]]+b[i-a[j]]);
int ans=-0x3f;
for(int i=n;i<=2*n;++i) ans=max(ans,f[i]);
cout<<ans;
}
不知道为什么80ptsQAQ