题目描述
hr有 $n$ 颗糖果。 $i$-th糖果的糖量等于 $a_i$ 。因此,吃下 $i$ 颗糖果,hr消耗的糖的数量等于 $a_i$ 。
hr会就他的糖果向你提出 $q$ 个问题。对于 $j$-th个问题,你必须回答他需要吃多少颗糖果才能达到大于或等于$x_j$的糖量,如果不可能达到这样的糖量,则打印-1。
换句话说,你应该打印出最小可能的 $k$ ,这样在吃了 $k$ 颗糖果后,hr消耗的糖量至少为$x_j$ ,或者说不存在可能的 $k$ 。
请注意,他不能两次吃同一种糖果,而且查询是相互独立的(hr可以在不同的查询中使用同一种糖果)。
输入
第一行包含 $2$ 个整数 $n$ 和 $q$ ( $1 \leq n, q \leq 150000$ )--分别是 hr拥有的糖果数量和需要打印答案的查询次数。
第二行包含 $n$ 个整数 $a_1$,$a_2$,...,$a_n$( $1 \leq a_i \leq 10^4$ ) --分别是每颗糖果中糖的数量。
接下来是 $q$ 行。
接下来的每行 $q$ 都包含一个整数 $x_j$( $1 \leq x_j \leq 2*10^9$ ) - 即 hr希望达到的给定查询量
输出
输出 $q$ 行。对于 $j$-th 行,输出 hr需要吃多少颗糖果才能使糖的数量大于或等于$x_j$ ;如果无法获得这样的数量,则打印-1。
8 7
4 3 3 1 1 4 5 9
1
10
50
14
15
22
30
提示
对于第一个查询,hr可以吃任何糖果,并且他将达到所需的数量。
对于第二个查询,hr可以通过吃 $7$-th和 $8$-th两颗糖果达到至少 $10$ 的数量,因此消耗的糖的数量等于 $14$ 。
对于第三个问题,没有可能的答案。
对于第四个问题,hr可以通过吃 $7$-th $8$-th两颗糖果达到至少 $14$ 的数量,因此消耗的糖的数量等于 $14$ 。
由于本题输入输出较大,请使用scanf、printf进行输入和输出。