#2676. 吃糖2

吃糖2

题目描述

希蒙有 nn 颗糖果,第ii 颗糖果甜度等于 aia_i 。因此,吃下第 ii 颗糖获得的开心值等于 aia_i

不同于简单版,希蒙有 qq 个问题想问你,他想知道,想要获得 xix_i 的开心值至少需要吃多少颗糖?

如果吃掉这里所有的糖不能满足希蒙,请输出1-1

请注意,他不能两次吃同一颗糖果,并且每次询问互不影响。

输入描述

第一行包含 22 个整数 nnqq( 1n,q1.51051 \leq n, q \leq 1.5\cdot10^5 )分别是希蒙拥有的糖果数量和查询次数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n ( 1ai1041 \leq a_i \leq 10^4 )分别是每颗糖果的甜度。

接下来的 qq 行每行都包含一个整数 xix_i (1xi2109)( 1≤x_i≤2⋅10^9) 即希蒙想要获得开心值。

输出描述

输出 qq 行整数,对于第 ii 行,输出需要吃掉的糖果数量,以达到大于或等于 xix_i 的开心值;如果不可能获得这样的开心值,则打印 -1。

样例

样例输入

8 4
2 5 6 7 8 1 1 1
8
9
16
100

样例输出

1
2
3
-1

注意

对于第一个查询,想要获得 88 的开心值,最少需要吃掉 11 颗糖,并且这颗糖的甜度为88

对于第二个查询,想要获得 99 的开心值,最少需要吃掉 22 颗糖

对于第三个查询,想要获得 1616 的开心值,最少需要吃掉 33 颗糖

对于第四个查询,想要获得 100100 的开心值,可以证明,吃掉所有的糖都无法达到 100100 的开心值