В трактир «Адмирал Бенбоу» привезли новую партию рома — всего 2n − 1 бутылок, и каждая из них имеет свой номер от 1 до 2n − 1. Кроме того, в трактире есть 2n − 1 коробок, также пронумерованных от 1 до 2n − 1.
Джимми Гоккинс хочет разложить все бутылки рома по коробкам, при этом соблюдая необычное правило: если он кладет бутылку с номером k в коробку с тем же номером k, то появляется дополнительная бутылка, чей номер равен количеству единиц в двоичной записи числа k. Однако если это количество единиц совпадает с самим k, то новая бутылка не появляется.
Джимми решил, что будет класть бутылку с номером k только в коробку с номером k. Также ему стало интересно, сколько бутылок рома окажется в каждой из коробок с номерами ai. Помогите Джимми узнать ответ!
Исходные данные
В первой строке вводится целое число n (1 ≤ n ≤ 60).
Во второй строке вводится целое число q — количество коробок, которые интересуют Джимми (1 ≤ q ≤ 10 5).
В следующей строке идут q целых чисел ai — номера коробок, которые интересны Джимми (1 ≤ i ≤ q, 1 ≤ ai ≤ 2 n − 1).
Результат
Выведите в одной строке q чисел — количество бутылок рома в коробках с номерами ai.
Пример
исходные данные | результат |
---|
5
2
8 4 | 1 6 |
Замечания
В коробку с номером 8 попадёт одна бутылка из начального набора. В коробку с номером 4 также попадёт бутылка из начального набора и еще пять дополнительных, полученных из коробок с номерами: 30=111102, 29=111012, 27=110112, 23=101112, 15=11112
Автор задачи: Артём Кутузов
Источник задачи: Уральская командная олимпиада по программированию 2024