AT_arc208_c [ARC208C] Mod of XOR
Description
$ 2^{30} $ 未満の正整数 $ C,X $ が与えられます。
以下の条件を全て満たす正整数 $ n $ が存在するか判定し、存在する場合は一つ求めてください。
- $ 1\le n < 2^{60} $
- $ (n \oplus C) \bmod n=X $
ただし、 $ n \oplus C $ は $ n $ と $ C $ のビット単位 $ \mathrm{XOR} $ を表します。
$ T $ 個のテストケースが与えられるので、それぞれについて答えを求めてください。
ビット単位 $ \mathrm{XOR} $ 演算とは 非負整数 $ X,Y $ のビット単位 $ \mathrm{XOR} $ 、 $ X \oplus Y $ は、以下のように定義されます。
- $ X \oplus Y $ を二進表記した際の $ 2^k $ ( $ k \geq 0 $ ) の位の数は、 $ X,Y $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $ 、そうでなければ $ 0 $ である。
例えば、 $ 3 \oplus 5 = 6 $ となります (二進表記すると: $ 011 \oplus 101 = 110 $ )。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ T $ $ \text{case}_1 $ $ \text{case}_2 $ $ \vdots $ $ \text{case}_T $
各テストケースは以下の形式で与えられる。
> $ C $ $ X $
Output Format
各テストケースに対する答えを順に改行区切りで出力せよ。
各テストケースについて、条件を全て満たす $ n $ が存在しない場合は `-1` を出力せよ。
そうでない場合、条件を全て満たす $ n $ を出力せよ。
条件を全て満たす $ n $ が複数ある場合、どれを出力しても正答となる。
Explanation/Hint
### Sample Explanation 1
$ 1 $ つ目のテストケースについて考えます。
$ n=7 $ は $ (n\oplus C) \bmod n = (7 \oplus 10) \bmod 7 = 13\bmod 7 = 6=X $ より条件を全て満たすことが分かります。したがって、 $ 1 $ 行目には $ 7 $ を出力すると正答となります。
この他にも $ n=12,18,19 $ などを出力しても正答となります。
### Constraints
- $ 1\le T\le 2\times 10^5 $
- $ 1\le C,X < 2^{30} $
- 入力される値は全て整数