下标从1开始
#include <bits/stdc++.h>
using namespace std;
int n,m,a[110],b[100010],ans=-1e9; long long f[200010];
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++) cin>>a[i];//每个关卡的delta
for(int i=1;i<=n;i++) cin>>b[i];//从这个关卡走开的分数
for(int i=1;i<=2*n;i++) f[i]=-1e9;
f[1]=0;
for(int i=1;i<=2*n;i++)
{
for(int j=1;j<=m;j++)
f[i+a[j]]=max(f[i+a[j]],f[i]+b[i]);
}
for(int i=1;i<=2*n;i++) ans=max((long long)ans,f[i]);
cout<<ans;
}