题意:
Dima是一名初级程序员。 在他的工作中,他经常不断地重复以下操作:从数组中删除每个第二个元素。 有一天,他对这个问题的解决方案感到厌倦,他提出了以下华丽的算法。
假设有一长度为2n的数组,最初的数组包含从1到n的n个数字,数字i位于序号为2i - 1的单元格中(序号从1开始编号),并且数组的其他单元格为空。每个步骤你需要选择一个最大序号的非空单元格,并将其中的数字移动到它左边最近的空单元格。一直循环该过程,直到所有n个数字出现在数组的前n个单元格中。例如,如果n = 4,则数组更改如下:
您必须编写一个程序,输出在该算法完成后,序号为x(1≤x≤n)的单元格中的数字。
输入格式:
第一行包含两个整数n和q(1≤n≤1e18,1≤q≤200 000),数组中元素的数量以及查询数量。
接下来的q行包含一个整数xi(1≤xi≤n),xi为算法完成后,第xi个单元格。
输出格式:
对于q个查询中的每一个,输出一个整数,即相应数组单元格中的值。
样例:
inputCopy
4 3
2
3
4
outputCopy
3
2
4
inputCopy
13 4
10
5
4
8
outputCopy
13
3
8
9