1495: 凑数

Memory Limit:128 MB Time Limit:2.000 S
Judge Style:Text Compare Creator:
Submit:16 Solved:3

Description

给定一个存在 $n$ 个正整数的序列 $S$ 。

现在有 $m$ 次询问,每次给定一个正整数 $x$ 。你需要在序列  $S$ 中选出一个子序列 $T$ 。

要求对于闭区间$[1,x]$中的任意正整数 $y$,都可以在序列 $T$ 中选出子序列 $T'$ ,使得 $T'$ 中的所有元素之和等于 $y$ 。

对于每个询问 $x$ 。你需要最小化序列 $T$ 中的元素个数,并输出最小的数量。如果无法满足要求,请输出$-1$。

Input

第一行,两个整数 $n,m$ ,依次代表序列中元素数量以及询问次数。  
第二行,$n$ 个整数,代表序列 $S$ 中的元素。  
接下来 $m$ 行,每行一个整数,代表每次询问的 $x$ 。

数据范围:  

对于 $100\%$ 的数据:  
$1 \le n,m \le 10^5$  
保证序列中的数 $a$ ,满足 $1 \le a \le 10^9$  
$1 \le x \le 10^9$

Output

$m$ 行,每行一个整数。如果能满足询问要求,输出序列 $T$ 的最小元素数量。否则输出 $-1$ 。

Sample Input Copy

5 3
1 2 4 8 32
7
8
16

Sample Output Copy

3
4
-1

HINT

对应样例的第一次询问,我们可以选出$T=\{1,2,4\}$。  
$y=1$时,$T'=\{1\}$  
$y=2$时,$T'=\{2\}$  
$y=3$时,$T'=\{1,2\}$  
$y=4$时,$T'=\{4\}$  
$y=5$时,$T'=\{1,4\}$  
$y=6$时,$T'=\{2,4\}$  
$y=7$时,$T'=\{1,2,4\}$  
样例的第二次询问,可以选出$T=\{1,2,4,8\}$