#include <bits/stdc++.h>
using namespace std;
int dp[355][125][125][125] , a[355] , b[125];
int main () {
freopen("tortoise.in" , "r" , stdin);
freopen("tortoise.out" , "w" , stdout);
int n , m;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= m; i++) {
int x;
cin >> x;
b[x]++;
}
dp[0][0][0][0] = a[1];
for (int i = 0; i <= b[1]; i++) {
for (int j = 0; j <= b[2]; j++) {
for (int k = 0; k <= b[3]; k++) {
for (int l = 0; l <= b[4]; l++) {
int c = 1 + i + j * 2 + k * 3 + l * 4;
dp[i][j][k][l] = max(dp[i][j][k][l] , max(dp[i - 1][j][k][l] + a[c] , max(dp[i][j - 1][k][l] + a[c] , max(dp[i][j][k - 1][l] + a[c] , dp[i][j][k][l - 1] + a[c]))));
}
}
}
}
cout << dp[b[1]][b[2]][b[3]][b[4]];
return 0;
}