[ABC126F] XOR Matching

题意翻译

请构造一个长度为 $2^{m+1}$ 的序列 $a$ 满足 - $\forall i \in[1, 2^{m+1}], a_i \in [0, 2^m-1]$ 且每个数都恰好出现两次。 - 对于任意一对 $(i, j)$ 满足 $a_i = a_j$,$a_i\oplus a_{i+1} \oplus \cdots \oplus a_{j-1} \oplus a_j = k$ $\oplus$ 表示按位异或。 若不存在满足要求的序列,输出```-1```。 若存在多个满足要求的序列,输出任意一个即可。

题目描述

[problemUrl]: https://atcoder.jp/contests/abc126/tasks/abc126_f 以下の条件を満たす、長さ $ 2^{M\ +\ 1} $ の数列 $ a $ = {$ a_1,\ a_2,\ ...,\ a_{2^{M\ +\ 1}} $} を、存在するならば $ 1 $ つ構築してください。 - $ a $ は $ 0 $ 以上 $ 2^M $ 未満の整数を、それぞれちょうど $ 2 $ つずつ含む。 - $ a_i\ =\ a_j $ を満たす任意の $ i,\ j\ (i\ <\ j) $ について、$ a_i\ xor\ a_{i\ +\ 1}\ xor\ ...\ xor\ a_j\ =\ K $ である。 xor (排他的論理和) とは 整数 $ c_1,\ c_2,\ ...,\ c_n $ の xor は以下のように定義されます。 - $ c_1\ xor\ c_2\ xor\ ...\ xor\ c_n $ を二進表記した際の $ 2^k $ ($ k\ \geq\ 0 $) の位の数は、$ c_1,\ c_2,\ ...,\ c_n $ のうち二進表記した際の $ 2^k $ の位の数が $ 1 $ となるものが奇数個ならば $ 1 $、偶数個ならば $ 0 $ である。 例えば、$ 3\ xor\ 5\ =\ 6 $ です (二進表記すると: `011` $ xor $ `101` $ = $ `110` です)。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ M $ $ K $

输出格式


条件を満たす数列 $ a $ が存在しなければ `-1` を出力せよ。 存在するならば、$ a $ の要素を空白区切りで出力せよ。 条件を満たす数列が複数存在する場合、どれを出力してもよい。

输入输出样例

输入样例 #1

1 0

输出样例 #1

0 0 1 1

输入样例 #2

1 1

输出样例 #2

-1

输入样例 #3

5 58

输出样例 #3

-1

说明

### 制約 - 入力は全て整数である。 - $ 0\ \leq\ M\ \leq\ 17 $ - $ 0\ \leq\ K\ \leq\ 10^9 $ ### Sample Explanation 1 このケースでは、条件を満たす数列は複数存在します。 例えば $ a $ = {$ 0,\ 0,\ 1,\ 1 $} の場合、$ a_i\ =\ a_j $ を満たす $ (i,\ j)\ (i\ <\ j) $ として $ (1,\ 2) $ と $ (3,\ 4) $ があります。$ a_1\ xor\ a_2\ =\ 0,\ a_3\ xor\ a_4\ =\ 0 $ であるため、この $ a $ は与えられた条件を満たしています。 ### Sample Explanation 2 条件を満たす数列は存在しません。 ### Sample Explanation 3 条件を満たす数列は存在しません。