AT_ttpc2019_c XOR Filling

Description

[problemUrl]: https://atcoder.jp/contests/ttpc2019/tasks/ttpc2019_c 自然数 $ N,\ X $ と数列 $ (a_1,\ a_2,\ \ldots,\ a_N) $ が入力として与えられます。 ただし、いくつかの $ a_i $ は情報が欠損しています。また、欠損した $ a_i $ が $ 0\ \leq\ a_i\ \leq\ X $ であることがわかっています。 $ a_1\ \text{\ XOR\ }\ a_2\ \text{\ XOR\ }\ \cdots\ \text{\ XOR\ }\ a_N\ =\ X $ を満たすような数列に復元してください。 XOR とは整数 $ A,\ B $ のビットごとの排他的論理和 $ X $ は、以下のように定義されます。 - $ X $ を二進表記した際の $ 2^k $ ($ k\ \geq\ 0 $)の位の数は、$ A,\ B $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $、そうでなければ $ 0 $ となります。 例えば、 $ 3\ \text{\ XOR\ }\ 5\ =\ 6 $ となります(二進数表記すると: $ 011\ \text{\ XOR\ }\ 101\ =\ 110 $ )。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ X $ $ a_1 $ $ a_2 $ $ \ldots $ $ a_N $

Output Format

条件を満たす数列を 1 つ出力せよ。条件を満たす数列が存在しない場合は `-1` を出力せよ。

Explanation/Hint

### 背景 rian ちゃんは公園で $ N $ 個の整数からなる数列を拾いました。 rian ちゃんはこの数列を、友達の nari くんにプレゼントすることにしました。 ところが、よく見たところ rian ちゃんの拾った数列はいくつかの要素がかすれて読めなくなっていました。 そこで、nari くんが整数 $ X $ が好きだということを思い出した rian ちゃんは、かすれた要素それぞれに $ 0 $ 以上 $ X $ 以下の整数を入れ、$ N $ 個全ての要素の排他的論理和を取った値がちょうど $ X $ になるようにしてから、nari くんに数列をプレゼントすることにしました。 果たして rian ちゃんは nari くんに数列をプレゼントできるでしょうか...? ### 制約 - 入力はすべて整数である。 - $ 1\ \leq\ N\ \leq\ 5\ \times\ 10^5 $ - $ 0\ \leq\ X\ \leq\ 10^9 $ - $ -1\ \leq\ a_i\ \leq\ 10^9 $ $ a_i\ =\ -1 $ のときは、その情報が欠損していることを意味する。 ### Sample Explanation 2 \- このケースでは、これ以外にも条件を満たす数列が存在します。