#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{ int n,m,i,j,h,g,nt[1024],nd[1024],s1,s2,s3,s4;
static int a[50][50][50][50];
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++){
scanf("%d",&nt[i]);
}
s1=0;s2=0;s3=0;s4=0;
for(j=1;j<=m;j++){
scanf("%d",&nd[j]);
if(nd[j]==1){s1=s1+1;}
if(nd[j]==2){s2=s2+1;}
if(nd[j]==3){s3=s3+1;}
if(nd[j]==4){s4=s4+1;}}
a[0][0][0][0]=nt[1];
for(i=0;i<=s1;i++){
for(j=0;j<=s2;j++){
for(h=0;h<=s3;h++){
for(g=0;g<=s4;g++){
if(i>=1){if(a[i][j][h][g]<=a[i-1][j][h][g]+nt[i*1+j*2+h*3+g*4+1]){
a[i][j][h][g]=a[i-1][j][h][g]+nt[i*1+j*2+h*3+g*4+1];
} else(a[i][j][h][g]=a[i][j][h][g]);
}
if(j>=1){if(a[i][j][h][g]<=a[i][j-1][h][g]+nt[i*1+j*2+h*3+g*4+1]){
a[i][j][h][g]=a[i][j-1][h][g]+nt[i*1+j*2+h*3+g*4+1];
}else(a[i][j][h][g]=a[i][j][h][g]);}
if(h>=1){if(a[i][j][h][g]<=a[i][j][h-1][g]+nt[i*1+j*2+h*3+g*4+1]){
a[i][j][h][g]=a[i][j][h-1][g]+nt[i*1+j*2+h*3+g*4+1];
}else(a[i][j][h][g]=a[i][j][h][g]);}
if(g>=1){if(a[i][j][h][g]<=a[i][j][h][g-1]+nt[i*1+j*2+h*3+g*4+1]){
a[i][j][h][g]=a[i][j][h][g-1]+nt[i*1+j*2+h*3+g*4+1];
}else(a[i][j][h][g]=a[i][j][h][g]);}
}
}
}
}
printf("%d",a[s1][s2][s3][s4]);
return 0;
}
#include <stdlib.h>
#include <math.h>
int main()
{ int n,m,i,j,h,g,nt[1024],nd[1024],s1,s2,s3,s4;
static int a[50][50][50][50];
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++){
scanf("%d",&nt[i]);
}
s1=0;s2=0;s3=0;s4=0;
for(j=1;j<=m;j++){
scanf("%d",&nd[j]);
if(nd[j]==1){s1=s1+1;}
if(nd[j]==2){s2=s2+1;}
if(nd[j]==3){s3=s3+1;}
if(nd[j]==4){s4=s4+1;}}
a[0][0][0][0]=nt[1];
for(i=0;i<=s1;i++){
for(j=0;j<=s2;j++){
for(h=0;h<=s3;h++){
for(g=0;g<=s4;g++){
if(i>=1){if(a[i][j][h][g]<=a[i-1][j][h][g]+nt[i*1+j*2+h*3+g*4+1]){
a[i][j][h][g]=a[i-1][j][h][g]+nt[i*1+j*2+h*3+g*4+1];
} else(a[i][j][h][g]=a[i][j][h][g]);
}
if(j>=1){if(a[i][j][h][g]<=a[i][j-1][h][g]+nt[i*1+j*2+h*3+g*4+1]){
a[i][j][h][g]=a[i][j-1][h][g]+nt[i*1+j*2+h*3+g*4+1];
}else(a[i][j][h][g]=a[i][j][h][g]);}
if(h>=1){if(a[i][j][h][g]<=a[i][j][h-1][g]+nt[i*1+j*2+h*3+g*4+1]){
a[i][j][h][g]=a[i][j][h-1][g]+nt[i*1+j*2+h*3+g*4+1];
}else(a[i][j][h][g]=a[i][j][h][g]);}
if(g>=1){if(a[i][j][h][g]<=a[i][j][h][g-1]+nt[i*1+j*2+h*3+g*4+1]){
a[i][j][h][g]=a[i][j][h][g-1]+nt[i*1+j*2+h*3+g*4+1];
}else(a[i][j][h][g]=a[i][j][h][g]);}
}
}
}
}
printf("%d",a[s1][s2][s3][s4]);
return 0;
}