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