CF1775C Interesting Sequence
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 Format
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 Format
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} $ .
Explanation/Hint
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 $ .