There are n players sitting at the card table. Each player has a favorite number. The favorite number of the j-th player is f_j.

There are k ⋅ n cards on the table. Each card contains a single integer: the i-th card contains number c_i. Also, you are given a sequence h_1, h_2, ..., h_k. Its meaning will be explained below.

The players have to distribute all the cards in such a way that each of them will hold exactly k cards. After all the cards are distributed, each player counts the number of cards he has that contains his favorite number. The joy level of a player equals h_t if the player holds t cards containing his favorite number. If a player gets no cards with his favorite number (i.e., t=0), his joy level is 0.

Print the maximum possible total joy levels of the players after the cards are distributed. Note that the sequence h_1, ..., h_k is the same for all the players.

Input

The first line of input contains two integers n and k (1 ≤ n ≤ 500, 1 ≤ k ≤ 10) — the number of players and the number of cards each player will get.

The second line contains k ⋅ n integers c_1, c_2, ..., c_{k ⋅ n} (1 ≤ c_i ≤ 10^5) — the numbers written on the cards.

The third line contains n integers f_1, f_2, ..., f_n (1 ≤ f_j ≤ 10^5) — the favorite numbers of the players.

The fourth line contains k integers h_1, h_2, ..., h_k (1 ≤ h_t ≤ 10^5), where h_t is the joy level of a player if he gets exactly t cards with his favorite number written on them. It is guaranteed that the condition h_{t - 1} < h_t holds for each t ∈ [2..k].

Output

Print one integer — the maximum possible total joy levels of the players among all possible card distributions.

Examples

Input

4 3
1 3 2 8 5 5 8 2 2 8 5 2
1 2 2 5
2 6 7


Output

21


Input

3 3
9 9 9 9 9 9 9 9 9
1 2 3
1 2 3


Output

0

Note

In the first example, one possible optimal card distribution is the following:

  * Player 1 gets cards with numbers [1, 3, 8]; 
  * Player 2 gets cards with numbers [2, 2, 8]; 
  * Player 3 gets cards with numbers [2, 2, 8]; 
  * Player 4 gets cards with numbers [5, 5, 5]. 



Thus, the answer is 2 + 6 + 6 + 7 = 21.

In the second example, no player can get a card with his favorite number. Thus, the answer is 0.
#include <bits/stdc++.h>
using namespace std;
int n, k;
int joy[15];
int dp[505][5005];
int solve(int play, int cards) {
  for (int i = 0; i <= play; i++)
    for (int j = 0; j <= cards; j++) dp[i][j] = 0;
  for (int i = 1; i <= play; i++)
    for (int j = 1; j <= cards; j++)
      for (int l = 1; l <= min(k, j); l++)
        dp[i][j] = max(dp[i][j], dp[i - 1][j - l] + joy[l]);
  return dp[play][cards];
}
int main() {
  int x;
  cin >> n >> k;
  unordered_map<int, int> c, f;
  for (int i = 0; i < n * k; i++) {
    cin >> x;
    c[x]++;
  }
  for (int i = 0; i < n; i++) {
    cin >> x;
    f[x]++;
  }
  for (int i = 1; i <= k; i++) cin >> joy[i];
  joy[0] = 0;
  int ans = 0;
  for (auto it = f.begin(); it != f.end(); it++) {
    ans += solve(it->second, min(k * (it->second), c[it->first]));
  }
  cout << ans << endl;
  return 0;
}
