Идеальное покрытие треугольниками
시간 제한2초메모리 제한1024 MB
한 변이 2^b인 정사각형마다 가지고 있는 삼각형 타일로 덮을 수 있는 가장 큰 타일 크기를 구한다. 크기 k 타일은 크기 k-1 타일 네 개로 나뉜다.
문제
Соседу Джека, потомственному магу Кевину, поручили заняться организацией праздничного парада гоблинов, вампиров и призраков. Чтобы соблюсти все древние традиции и задобрить духов, шествие должно непременно проходить на квадратной площади, сторона которой --- некоторая степень двойки. Задача Кевина --- украсить ее.
Для украшения площади ее необходимо покрыть треугольными плитками равного размера. Плитки должны иметь форму равнобедренного прямоугольного треугольника с длиной катета для некоторого целого , и разбиваться на пары, образующие квадраты со стороной .
Скажем, что плитка с длиной катета имеет размер . У Кевина есть плиток с размерами , то есть с катетами , , \ldots, и соответственно. При этом он всегда может получить из треугольника со стороной четыре треугольника со стороной для любого .
Кевин считает, что чем больше сторона плиток, тем оформление площади красивее, поэтому хочет покрыть площадь треугольниками с максимальной возможной стороной.
К сожалению, он еще не определился с размерами площади, которую хочет оформлять. Поэтому он просит вас для каждой из интересующих его площадей со сторонами найти максимально возможную сторону плитки, которой можно покрыть площадь, используя только плитки, имеющиеся у него в наличии.
입력
Первая строка содержит два целых числа и , разделенные пробелом (; ) --- количество плиток, которые есть в наличии, и количество интересующих Кевина размеров площадей.
В следующей строке через пробел перечислены целых чисел () --- размеры плиток.
В третьей строке содержатся чисел () --- размеры интересующих Кевина площадей.
출력
Для каждого из запросов выведите в отдельной строке максимально возможный размер плитки, которым Кевин может целиком покрыть площадь со стороной , или же , если всей имеющейся у него плитки не хватит, чтобы покрыть площадь такого размера.
힌트
В примере дано пять треугольных плиток: четыре со стороной и одна со стороной .
- Покрыть площадь со стороной можно, разрезав один треугольник со стороной на и взяв два из них. Плитки других размеров использовать не получится;
- Покрыть площадь со стороной можно, разрезав треугольник со стороной на размером . Имея треугольников размера , покроем площадь. Ясно, что треугольников большего размера у нас нет и такое покрытие идеальное;
- Покрыть площадь со стороной имеющимися плитками не получится.