#include<bits/stdc++.h>
using namespace std;
int n, m, ans, cnt[5];
vector<int> v;
void dfs(int x, int y, int sum){
if(y == n - 1){
ans = max(ans, sum);
return;
}if(y >= n or x > m)
return;
for(int i = 1; i <= 4; ++i){
if(cnt[i] and y + i < n){
--cnt[i];
dfs(x + 1, y + i, sum + v[y + i]);
++cnt[i];
}else if(y + i >= n)
return;
}
}signed main(){
cin >> n >> m;
for(int i = 0; i < n; ++i){
int k;
scanf("%d", &k);
v.push_back(k);
}for(int i = 0; i < m; ++i){
int k;
scanf("%d", &k);
++cnt[k];
}dfs(0, 0, v[0]);
cout << ans;
return 0;
}