#include<bits/stdc++.h>
using namespace std;
int f[45][45][45][45];
int l[400];
int cnt[5];
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>l[i];
}
for(int i=1;i<=m;i++){
int x;
cin>>x;
cnt[x]++;
}
for(int a=0;a<=cnt[1];a++){
for(int b=0;b<=cnt[2];b++){
for(int c=0;c<=cnt[3];c++){
for(int d=0;d<=cnt[4];d++){
int s=a+2*b+3*c+4*d;
f[a][b][c][d]=l[s];
int ans=0;
if(a){
ans=max(ans,f[a-1][b][c][d]);
}
if(b){
ans=max(ans,f[a][b-1][c][d]);
}
if(c){
ans=max(ans,f[a][b][c-1][d]);
}
if(d){
ans=max(ans,f[a][b][c][d-1]);
}
f[a][b][c][d]=ans+l[s];
}
}
}
}
cout<<f[cnt[1]][cnt[2]][cnt[3]][cnt[4]];
return 0;
}