#include<bits/stdc++.h>
using namespace std;
int n,m,point[352],card[122],points,max_points;
bool use[122];
void dfs(int turtle,int x){
if(x==0){
max_points=max(points,max_points);
return;
}
for(int i=1;i<=m;i++){
if(use[i]) continue;
points+=point[card[i]+turtle];
use[i]=1;
dfs(turtle+card[i],x-1);
points-=point[card[i]+turtle];
use[i]=0;
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>point[i];
}
for(int i=1;i<=m;i++){
cin>>card[i];
}
points+=point[1];
dfs(1,m);
cout<<max_points;
return 0;
}