Соседу Джека, потомственному магу Кевину, поручили заняться организацией праздничного парада гоблинов, вампиров и призраков. Чтобы соблюсти все древние традиции и задобрить духов, шествие должно непременно проходить на квадратной площади, сторона которой --- некоторая степень двойки. Задача Кевина --- украсить ее.
Для украшения площади ее необходимо покрыть треугольными плитками равного размера. Плитки должны иметь форму равнобедренного прямоугольного треугольника с длиной катета 2i для некоторого целого i, и разбиваться на пары, образующие квадраты со стороной 2i.
Скажем, что плитка с длиной катета 2i имеет размер i. У Кевина есть n плиток с размерами a_i, то есть с катетами 2a_1, 2a_2, \ldots, и 2a_n соответственно. При этом он всегда может получить из треугольника со стороной 2k четыре треугольника со стороной 2k−1 для любого k.
Кевин считает, что чем больше сторона плиток, тем оформление площади красивее, поэтому хочет покрыть площадь треугольниками с максимальной возможной стороной.
К сожалению, он еще не определился с размерами площади, которую хочет оформлять. Поэтому он просит вас для каждой из m интересующих его площадей со сторонами 2b_j найти максимально возможную сторону плитки, которой можно покрыть площадь, используя только плитки, имеющиеся у него в наличии.
Первая строка содержит два целых числа n и m, разделенные пробелом (1≤n≤5⋅105; 1≤m≤5⋅105) --- количество плиток, которые есть в наличии, и количество интересующих Кевина размеров площадей.
В следующей строке через пробел перечислены n целых чисел a_i (0≤a_i≤2⋅105) --- размеры плиток.
В третьей строке содержатся m чисел b_i (0≤b_j≤2⋅105) --- размеры интересующих Кевина площадей.
Для каждого из m запросов выведите в отдельной строке максимально возможный размер плитки, которым Кевин может целиком покрыть площадь со стороной 2b_j, или же −1, если всей имеющейся у него плитки не хватит, чтобы покрыть площадь такого размера.
В примере дано пять треугольных плиток: четыре со стороной 21 и одна со стороной 22.