求调啊QWQ
#include<bits/stdc++.h>
using namespace std;
int main(){
int N,M;
cin>>N>>M;
int a[M],b[N+10086],minf=1e9;
memset(b,0,sizeof(b));
for(int i=0;i<M;i++){
cin>>a[i];
minf=min(minf,a[i]);
}
for(int i=0;i<N;i++){
cin>>b[i];
}
int f[N+10086];
memset(f,0,sizeof(f));
for(int i=1;i<N+10086;i++){
if(i<minf) continue;
int maxf=-1e9;
for(int j=0;j<M;j++){
if(i-a[j]<0) continue;
maxf=max(maxf,f[i-a[j]]+b[i-a[j]]);
}
f[i]=maxf;
}
int ans=-1e9;
for(int i=0;i<N+10086;i++){
ans=max(ans,f[i]);
}
cout<<ans;
return 0;
}