#P1005. Eating Queries

Eating Queries

帖木儿有 nn 颗糖果。第 ii 颗糖果的糖量等于 aia_i。因此,吃下第 ii 颗糖果,帖木儿消耗的糖的数量等于 aia_i

帖木儿会就他的糖果向你提出 qq 个问题。对于第 jj 个查询,你必须回答他需要吃多少颗糖果才能达到大于或等于 xjx_j 的糖量,如果不可能达到这样的糖量,则打印 -1。换句话说,你应该打印出最小可能的 kk,使得在吃了 kk 颗糖果后,帖木儿消耗的糖量至少为 xjx_j,或者不存在可能的 kk

请注意,他不能两次吃同一种糖果,而且查询是相互独立的(帖木儿可以在不同的查询中使用同一种糖果)。

【输入格式】

从文件 b.in 中读入数据。

  • 第一行包含一个整数 tt (1 ≤ tt ≤ 1000) -- 测试用例数。
  • 对于每个测试用例:
    • 第一行包含两个整数 nnqq (1 ≤ nn, qq ≤ 1.5⋅10⁵) -- 分别是帖木儿拥有的糖果数量和查询次数。
    • 第二行包含 nn 个整数 a1,a2,...,ana_1, a_2, ..., a_n (1 ≤ aia_i ≤ 10⁴) -- 每颗糖果的糖量。
    • 接下来的 qq 行,每行包含一个整数 xjx_j (1 ≤ xjx_j ≤ 2⋅10⁹) -- 即帖木儿希望达到的糖量。

【输出格式】

  • 对于每个查询,输出帖木儿需要吃多少颗糖果才能使糖量大于或等于 xjx_j。如果不可能获得这样的数量,则输出 -1

【输入样例】

3
8 7
4 3 3 1 1 4 5 9
1
10
50
14
15
22
30
4 1
1 2 3 4
3
1 2
5
4
6

【输出样例】

1
2
-1
2
3
4
8
1
1
-1

### 【样例解释】

#### 示例 1:

- **第 1 次查询**:帖木儿可以吃任何糖果,即可达到所需的糖量,故答案为 `1`。
- **第 2 次查询**:帖木儿可以通过吃第 7 颗糖果(糖量为 5)和第 8 颗糖果(糖量为 9),达到至少 10 的糖量,总糖量为 14,故答案为 `2`。
- **第 3 次查询**:没有可能的组合能使糖量达到 50,故答案为 `-1`。
- **第 4 次查询**:帖木儿可以通过吃第 7 颗和第 8 颗糖果,达到至少 14 的糖量,总糖量为 14,故答案为 `2`。

#### 示例 2:

- **第 1 次查询**:我们可以选择第三颗糖果,这样铁木尔就可以从中得到恰好 3 的糖。选择第四种糖果也可以得到相同的答案。

### 数据范围

* 对于20%的数据 $1 \leq t, n, q \leq  100$
* 对于50%的数据 $1 \leq t, n, q \leq 1 \times 10^4$

- 对于所有测试用例:
  - $(1 \leq t, n, q \leq 1.5 \times 10^5)$ —— 每个测试用例中的糖果数量和查询次数。
  - $(1 \leq a_i \leq 10^4)$ —— 每颗糖果的糖量。
  - $(1 \leq x_j \leq 2 \times 10^9)$ —— 每个查询所需达到的糖量。
  - 测试用例中的 $n$ 和 $q$ 的总和不超过 $(1.5 \times 10^5)$。