#16. 能量补给 (worm)

能量补给 (worm)

题目描述

仓库中有 nn 枚能量晶块,第 ii 枚晶块可以提供 aia_i 点能量。每次任务开始前,系统会给出一个需求值 xx,表示至少需要获得 xx 点能量。

为了尽量减少携带数量,你可以任意选择若干枚晶块。对于每次询问,请求出至少需要选择多少枚晶块才能使总能量不小于 xx。如果把所有晶块都选上仍然不足,则输出 1-1

输入格式

在文件 worm.in 中读入。

第一行输入两个整数 nnqq,表示晶块数量和询问次数。

第二行输入 nn 个正整数,表示每枚晶块的能量 aia_i

接下来 qq 行,每行输入一个正整数 xx,表示一次任务的能量需求。

输出格式

在文件 worm.out 中输出。

对于每次询问,输出一行一个整数,表示满足需求所需的最少晶块数量;若无法满足需求,则输出 1-1

样例

样例输入 #1

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

样例输出 #1

1
2
-1
2
3
4
8

数据范围

对于 30%30\% 的数据,1n,q1031\le n,q\le 10^31ai1041\le a_i\le 10^41x1091\le x\le 10^9

对于 100%100\% 的数据,1n,q1.5×1051\le n,q\le 1.5\times 10^51ai1041\le a_i\le 10^41x1091\le x\le 10^9