#include <bits/stdc++.h>
using namespace std;
const int maxn=50;
int main()
{
int n,m,x;
cin>>n>>m;
int a[n],b[m];
int dp[maxn][maxn][maxn][maxn];
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
dp[0][0][0][0]=a[1];
for(int i=1;i<=m;i++)
{
cin>>x;
b[i]++;
}
for(int i=0;i<=b[1];i++)
{
for(int j=0;j<=b[2];j++)
{
for(int q=0;q<=b[3];q++)
{
for(int p=0;p<=b[4];p++)
{
int k=1+i+j*2+q*3+p*4;
if(i!=0)
{
dp[i][j][q][p]=max(dp[i][j][q][p],dp[i-1][j][q][p]+a[k]);
}
if(j!=0)
{
dp[i][j][q][p]=max(dp[i][j][q][p],dp[i][j-1][q][p]+a[k]);
}
if(q!=0)
{
dp[i][j][q][p]=max(dp[i][j][q][p],dp[i][j][q-1][p]+a[k]);
}
if(p!=0)
{
dp[i][j][q][p]=max(dp[i][j][q][p],dp[i][j][q][p-1]+a[k]);
}
}
}
}
}
cout<<dp[b[1]][b[2]][b[3]][b[4]];
return 0;
}