1470_A. Strange Birthday Party
Petya organized a strange birthday party. He invited n friends and assigned an integer k_i to the i-th of them. Now Petya would like to give a present to each of them. In the nearby shop there are m unique presents available, the j-th present costs c_j dollars (1 ≤ c_1 ≤ c_2 ≤ … ≤ c_m). It's not allowed to buy a single present more than once.

For the i-th friend Petya can either buy them a present j ≤ k_i, which costs c_j dollars, or just give them c_{k_i} dollars directly.

Help Petya determine the minimum total cost of hosting his party.

Input

The first input line contains a single integer t (1 ≤ t ≤ 10^3) — the number of test cases.

The first line of each test case contains two integers n and m (1 ≤ n, m ≤ 3 ⋅ 10^5) — the number of friends, and the number of unique presents available.

The following line contains n integers k_1, k_2, …, k_n (1 ≤ k_i ≤ m), assigned by Petya to his friends. 

The next line contains m integers c_1, c_2, …, c_m (1 ≤ c_1 ≤ c_2 ≤ … ≤ c_m ≤ 10^9) — the prices of the presents.

It is guaranteed that sum of values n over all test cases does not exceed 3 ⋅ 10^5, and the sum of values m over all test cases does not exceed 3 ⋅ 10^5.

Output

For each test case output a single integer — the minimum cost of the party.

Examples

Input


2
5 4
2 3 4 3 2
3 5 12 20
5 5
5 4 3 2 1
10 40 90 160 250


Output


30
190


Input


1
1 1
1
1


Output


1

Note

In the first example, there are two test cases. In the first one, Petya has 5 friends and 4 available presents. Petya can spend only 30 dollars if he gives

  * 5 dollars to the first friend. 
  * A present that costs 12 dollars to the second friend. 
  * A present that costs 5 dollars to the third friend. 
  * A present that costs 3 dollars to the fourth friend. 
  * 5 dollars to the fifth friend. 



In the second one, Petya has 5 and 5 available presents. Petya can spend only 190 dollars if he gives

  * A present that costs 10 dollars to the first friend. 
  * A present that costs 40 dollars to the second friend. 
  * 90 dollars to the third friend. 
  * 40 dollars to the fourth friend. 
  * 10 dollars to the fifth friend. 
```python
import bisect
import collections
import copy
import functools
import heapq
import itertools
import math
import random
import re
import sys
import time
import string
from typing import List
sys.setrecursionlimit(99999)

t, = map(int, sys.stdin.readline().split())
for _ in range(t):
    n, m = map(int, sys.stdin.readline().split())
    arrk = list(map(int,sys.stdin.readline().split()))
    arrc = list(map(int,input().split()))
    arrk.sort()
    ans = 0

    ak = collections.deque()
    for c in arrk:
        ak.append(c)
        if len(ak)>c:
            ans+= arrc[ak.popleft()-1]
    
    while ak and  arrc[ak[0]-1]< arrc[len(ak)-1]:
        ans += arrc[ak.popleft()-1]
    print(ans+ sum(arrc[:len(ak)]))

```