C. Интересный ряд
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Петя и его друг, робот Petya++, любят решать увлекательные математические задачи.

Однажды Petya++ придумал числа $$$n$$$ и $$$x$$$ и написал на доске $$$$$$n\ \&\ (n+1)\ \&\ \dots\ \&\ m = x,$$$$$$ где $$$\&$$$ обозначает операцию побитового И. Затем он предложил своему другу Пете найти такое минимальное $$$m$$$ ($$$m \ge n$$$), что равенство на доске выполняется.

К сожалению, Петя не смог решить эту задачу в уме и решил прибегнуть к помощи компьютера. Он довольно быстро написал программу и нашел ответ.

А справитесь ли вы с этой непростой задачей?

Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 2000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

Единственная строка каждого набора входных данных содержит два целых числа $$$n$$$, $$$x$$$ ($$$0\le n, x \le 10^{18}$$$).

Выходные данные

Для каждого набора входных данных выведите одно целое число $$$m$$$ — минимальное число такое, что равенство на доске будет выполняться.

Если равенство не выполнится ни при каком $$$m$$$, то выведите вместо этого $$$-1$$$.

Можно показать, что если требуемое $$$m$$$ существует, то оно не превосходит $$$5 \cdot 10^{18}$$$.

Пример
Входные данные
5
10 8
10 10
10 42
20 16
1000000000000000000 0
Выходные данные
12
10
-1
24
1152921504606846976
Примечание

В первом примере $$$10\ \&\ 11 = 10$$$, но $$$10\ \&\ 11\ \&\ 12 = 8$$$, поэтому ответ равен $$$12$$$.

Во втором примере $$$10 = 10$$$, поэтому ответ равен $$$10$$$.

В третьем примере можно убедиться, что требуемого $$$m$$$ не существует, поэтому необходимо вывести $$$-1$$$.