Description
注意:本题有Q次查询
你手上有n种面值的硬币,不同硬币的面值之间可能不相等也可能相等,还有一个特点就是不论面值是多少,但都是2的某个非负次方,例如:1、2、4、8、1024、4096等
现在,你需要支付m元钱,你准备从你拥有的n枚硬币选一些来支付,你希望使用的硬币数量越少越好,请输出这个最小的数量,如果你完全无法支付这个m元钱,请打印-1
一共有Q次询问,每次询问都是独立的,即每一次的支付不会影响原有硬币的数量。
数据范围:
1<= n,m, Q <=1000
第一行两个整数,分别是n和Q,第二行n个整数,表示这n枚硬币的面值。
接下来Q行,每行一个整数m,代表要支付的金额
输出:你需要输出Q个整数,每个整数单独一行,表示对文涛于每次询问,回答最少用多少枚硬币可以支付,如果不存在支付方案,打印-1