Preparando MOJI

Interesting Sequence

1000ms 262144K

Description:

Petya and his friend, robot Petya++, like to solve exciting math problems.

One day Petya++ came up with the numbers $$$n$$$ and $$$x$$$ and wrote the following equality on the board: $$$$$$n\ \&\ (n+1)\ \&\ \dots\ \&\ m = x,$$$$$$ where $$$\&$$$ denotes the bitwise AND operation. Then he suggested his friend Petya find such a minimal $$$m$$$ ($$$m \ge n$$$) that the equality on the board holds.

Unfortunately, Petya couldn't solve this problem in his head and decided to ask for computer help. He quickly wrote a program and found the answer.

Can you solve this difficult problem?

Input:

Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 2000$$$). The description of the test cases follows.

The only line of each test case contains two integers $$$n$$$, $$$x$$$ ($$$0\le n, x \le 10^{18}$$$).

Output:

For every test case, output the smallest possible value of $$$m$$$ such that equality holds.

If the equality does not hold for any $$$m$$$, print $$$-1$$$ instead.

We can show that if the required $$$m$$$ exists, it does not exceed $$$5 \cdot 10^{18}$$$.

Sample Input:

5
10 8
10 10
10 42
20 16
1000000000000000000 0

Sample Output:

12
10
-1
24
1152921504606846976

Note:

In the first example, $$$10\ \&\ 11 = 10$$$, but $$$10\ \&\ 11\ \&\ 12 = 8$$$, so the answer is $$$12$$$.

In the second example, $$$10 = 10$$$, so the answer is $$$10$$$.

In the third example, we can see that the required $$$m$$$ does not exist, so we have to print $$$-1$$$.

Informação

Codeforces

Provedor Codeforces

Código CF1775C

Tags

bitmasksmath

Submetido 0

BOUA! 0

Taxa de BOUA's 0%

Datas 09/05/2023 10:35:24

Relacionados

Nada ainda