#include<bits/stdc++.h>
using namespace std;
const int N=2e6+9;
long long a[N],b[N],dp[N];
int main(){
long long n,m;
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>a[i];
}
for(int i=0;i<n;i++){
cin>>b[i];
}
for(int i=0;i<2*n;i++){
dp[i]=-1e9;
}
dp[0]=0;
for(int i=0;i<2*n;i++){
for(int j=0;j<m;j++){
if(i>=a[j]) dp[i]=max(dp[i],dp[i-a[j]]+b[i-a[j]]);
}
}
long long ans=-2e9;
for(int i=n;i<=2*n;i++){
ans=max(ans,dp[i]);
}
cout<<ans;
return 0;
}
请教一下各位大佬,为什么第一个样例过不去?