#CF2143B. 折扣

折扣

B. 折扣

时间限制: 每测试 11
内存限制: 每测试 256256 兆字节

你想购买 nn 个商品,价格分别为 a1,a2,,ana_1, a_2, \dots, a_n。你可以选择以下方式之一购买:

  • 单独购买商品 ii,支付 aia_i 枚硬币;或者
  • 使用折扣券以团购方式购买。

你有 kk 张折扣券,面值分别为 b1,b2,,bkb_1, b_2, \dots, b_k。一张面值为 xx 的折扣券允许你选择恰好 xx 个商品,并且仅支付其中 x1x-1 个最贵的商品,因此你可以认为团购中最便宜的那个商品是免费的。每个商品最多只能被包含在一个折扣组中,即使它不是免费的那个商品。此外,任何一张折扣券最多只能使用一次。

购买所有 nn 个商品所需的最小总花费是多少?


输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 tt (1t104)(1 \leq t \leq 10^4)。接下来是每个测试用例的描述。

第一行包含两个整数 nnkk (1n,k2105)(1 \leq n, k \leq 2 \cdot 10^5) — 商品的数量和可用折扣券的数量。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n (1ai109)(1 \leq a_i \leq 10^9) — 商品的价格。

第三行包含 kk 个整数 b1,b2,,bkb_1, b_2, \dots, b_k (1bin)(1 \leq b_i \leq n) — 折扣券的面值。

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5,且所有测试用例的 kk 之和不超过 21052 \cdot 10^5


输出格式

输出 tt 行。第 ii 行应包含第 ii 个测试用例的答案 — 在该测试用例中购买所有商品所需的最小总花费。


样例

输入

5
5 3
18 3 7 2 9
3 1 1
6 1
1 2 6 3 3 4
5
2 3
1 1
2 2 2
1 1
10
1
5 3
99 99 999 999 123
2 1 4

输出

10
17
1
0
1197

样例解释

第一个测试用例:你可以对商品 2,3,42, 3, 4 使用第一张折扣券。你将支付其中最贵的两个(3377 枚硬币),并获得最便宜的那个免费,花费为 3+7=103 + 7 = 10 枚硬币。然后,对商品 1155 分别使用第二张和第三张折扣券,两个都免费获得。总花费为 1010 枚硬币。

第二个测试用例:你可以对商品 2,3,4,5,62, 3, 4, 5, 6 使用唯一的一张折扣券。其中,最便宜的是商品 22(价格为 22 枚硬币),你免费获得它。你支付其余商品:1+6+3+3+4=171 + 6 + 3 + 3 + 4 = 17 枚硬币。

第三个测试用例:只有一张折扣券可用。你可以对两个商品使用它,获得较便宜的那个免费,并为另一个支付 11 枚硬币。