金克丝(Jinx)又在幻想炸毁东西了,这时她看到了一些排列整齐的碎石堆。
“你说呢,鱼骨头(Fishbones)?我们要把它炸了吗?”
她的规则很简单:如果一个碎石堆的大小为偶数,她就会把它分成两个大小为原来一半的碎石堆。她会递归地重复这个过程,直到所有的碎石堆的大小都为奇数。
当一个碎石堆被分成两个时,它相对于其他碎石堆的左右位置不会改变。例如,大小为 3 2 5 的碎石堆可能会变成 3 1 1 5。
金克丝仍在计划如何在“皮尔特沃夫的执法官们”(Piltover's finest)来扫兴之前炸毁所有的碎石。在此期间,她希望你能够计算出——从左到右观察新的碎石堆——第 $i$ 个碎石堆的大小会是多少?
金克丝有很多询问——也有很多炸药——所以你最好快点回答,以防万一。
输入格式
第一行包含两个整数 $n$ 和 $q$($1 \le n, q \le 10^5$),分别表示初始碎石堆的数量和询问的数量。
第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$($1 \le a_i \le 10^{18}$),表示每个碎石堆的大小。保证 $\sum_{i=1}^n a_i \le 2 \cdot 10^{18}$。
接下来的 $q$ 行,每行包含一个整数 $x_i$($1 \le x_i \le 10^{18}$),表示在所有爆炸完成后,要查询的碎石堆的(从 1 开始的)下标。
输出格式
对于每个询问,输出一行,包含在所有爆炸完成后,下标为 $x_i$ 的碎石堆的大小。如果下标超出范围,则输出 $-1$。
样例
输入样例 1
5 5 2 3 6 3 8 8 7 4 6 10
输出样例 1
1 1 3 3 1
输入样例 2
1 1 4398046511104 2072689968062
输出样例 2
1