请大佬出手相救
#include<bits/stdc++.h>
using namespace std;
long long n,m,p[352],vis[352],ps,max_ps;
bool use[352];
void dp(long long t,long long x){
if(x==0){
max_ps=max(ps,max_ps);
return;
}
for(long long i=1;i<=m;i++){
if(use[i]) continue;
ps+=p[vis[i]+t];
use[i]=1;
dp(t+vis[i],x-1);
ps-=p[vis[i]+t];
use[i]=0;
}
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
for(long long i=1;i<=n;i++)cin>>p[i];
for(long long i=1;i<=m;i++)cin>>vis[i];
ps+=p[1];
dp(1,m);
cout<<max_ps;
return 0;
}