#include <bits/stdc++.h>
using namespace std;
const int maxn = 6010;
int n, k;
int card[maxn], fav[510], joy[15];
int dp[520][maxn];
int f[100010], c[100010];
int main() {
  scanf("%d%d", &n, &k);
  int tot = n * k;
  for (int i = 0; i < tot; i++) {
    scanf("%d", &card[i]);
    c[card[i]]++;
  }
  for (int i = 0; i < n; i++) {
    scanf("%d", &fav[i]);
    f[fav[i]]++;
  }
  for (int i = 1; i < k + 1; i++) scanf("%d", &joy[i]);
  for (int x = 0; x < n; x++)
    for (int y = 0; y < tot; y++)
      for (int i = 0; i < k + 1; i++) {
        dp[x + 1][y + i] = max(dp[x + 1][y + i], dp[x][y] + joy[i]);
      }
  int ans = 0;
  for (int i = 0; i < 100010; i++) {
    if (f[i] != 0) ans += dp[f[i]][c[i]];
  }
  printf("%d\n", ans);
  return 0;
}
