#include <bits/stdc++.h>
using namespace std;
int n,k;
long long a[5510];
map<int,int>ma;
long long f[501];
long long h[101];
vector<int>v;
map<int,int>freq;
long long solve(int idx,map<int,int>m)
{
   // cout<<m[f[idx]]<<endl;
    if(idx>n)
    {
        return 0;
    }

    int i;
    long long ans=0;
    if(m[f[idx]]==0)
    {
        return solve(idx+1,m);
    }
    long long int g=m[f[idx]];
    for(i=1;i<=min(g,(long long)k);i++)
    {
        m[f[idx]]--;
        long long ans1=h[i]+solve(idx+1,m);
        if(ans1>ans)
        {
            ans=ans1;
        }
    }
    return ans;
}
int main()
{
    cin>>n>>k;
    int i;
    for(i=1;i<=n*k;i++)
    {
        cin>>a[i];
        freq[a[i]]++;
    }
    for(i=1;i<=n;i++)
    {
        cin>>f[i];
    }

    for(i=1;i<=k;i++)
    {
        cin>>h[i];
    }
    cout<<solve(1,freq)<<endl;
}
