编程题
### 问题描述
小然有一个长度为 $N$ 的整数数组 $A$。
我们定义一个三元组数组为所有满足 $1 \leq i < j < k \leq N$ 的 $(i, j, k)$ 对应的 $\min(A_i, A_j, A_k)$ 的集合。
现在我们有 $Q$ 个查询,每个查询给出一个整数 $K$,你的任务是返回三元组数组中第 $K$ 小的元素。
### 输入格式
第一行输入一个整数 $T$,表示测试用例的数量。
每个测试用例包含多行:
- 第一行输入两个整数 $N$ 和 $Q$,分别表示数组 $A$ 的长度和查询的数量。
- 第二行输入 $N$ 个整数,分别是 $A_1$,$A_2$,...,$A_N$,表示数组 $A$ 的元素。
- 接下来 $Q$ 行,每行输入一个整数 $K$,表示一个查询。
### 输出格式
对于每个查询,输出一行,表示三元组数组中第 $K$ 小的元素。
### 样例输入
```text
2
6 2
3 3 3 3 3 3
18
1
4 4
2 4 2 1
1
2
3
4
```
### 样例输出
```text
3
3
1
1
1
2
```
### 说明
样例中的第一个测试用例:这里,三元组数组中的所有元素都等于 3。
样例中的第二个测试用例:排序后的三元组数组是 $[1, 1, 1, 2]$。
### 评测数据范围
$1 \leq T \leq 1000$。
$3 \leq N \leq 3 \times 10^5$。
$1 \leq Q \leq 3 \times 10^5$。
$-10^9 \leq A_i \leq 10^9$。
$1 \leq K \leq \binom{N}{3}$。
所有测试用例中 $N$ 和 $Q$ 的和不超过 $3 \times 10^5$。