#ABC126F. XOR Matching

XOR Matching

题目描述

Construct a sequence aa = {a1, a2, ..., a2M+1a_1,\ a_2,\ ...,\ a_{2^{M + 1}}} of length 2M+12^{M + 1} that satisfies the following conditions, if such a sequence exists.

  • Each integer between 00 and 2M12^M - 1 (inclusive) occurs twice in aa.
  • For any ii and jj (i<j)(i \lt j) such that ai=aja_i = a_j, the formula ai xor ai+1 xor ... xor aj=Ka_i \ xor \ a_{i + 1} \ xor \ ... \ xor \ a_j = K holds.

What is xor (bitwise exclusive or)?

The xor of integers c1,c2,...,cnc_1, c_2, ..., c_n is defined as follows:

  • When c1 xor c2 xor ... xor cnc_1 \ xor \ c_2 \ xor \ ... \ xor \ c_n is written in base two, the digit in the 2k2^k's place (k0k \geq 0) is 11 if the number of integers among c1,c2,...cmc_1, c_2, ...c_m whose binary representations have 11 in the 2k2^k's place is odd, and 00 if that count is even.

For example, 3 xor 5=63 \ xor \ 5 = 6. (If we write it in base two: 011 xorxor 101 == 110.)

如果存在长度为 2M+12^{M + 1} 的序列 aa = { a1, a2, ..., a2M+1a_1,\ a_2,\ ...,\ a_{2^{M + 1}} } ,请构建一个满足以下条件的序列。

  • 介于 002M12^M - 1 之间的每个整数都在 2M12^M - 1 中出现两次。(之间的每个整数都在 aa 中出现两次。}
  • 对于任何 iijj (i<j)(i \lt j) 这样的 ai=aja_i = a_j ,公式 ai xor ai+1 xor ... xor aj=Ka_i \ xor \ a_{i + 1} \ xor \ ... \ xor \ a_j = K 成立。

什么是 xor(位排他或)?

整数 c1,c2,...,cnc_1, c_2, ..., c_n 的 xor 定义如下:

  • 当以二进制写入 c1 xor c2 xor ... xor cnc_1 \ xor \ c_2 \ xor \ ... \ xor \ c_n 时,如果二进制表示的 c1,c2,...cmc_1, c_2, ...c_m2k2^k 位上有 11 的整数个数是奇数,则 2k2^k 位上的数字( k0k \geq 0 )是 11 ;如果是偶数,则 00 位上的数字是 00

例如, 3 xor 5=63 \ xor \ 5 = 6 。(如果用二进制来写:011 xorxor 101 == 110)。

输入格式

输入内容按以下格式标准输入:

MM KK

输出格式

如果没有序列 aa 满足条件,则打印 -1

如果存在这样的序列 aa ,则打印一个这样的序列 aa 的元素,中间空格。

如果有多个序列满足条件,则接受其中任何一个序列。

样例 #1

样例输入 #1

1 0

样例输出 #1

0 0 1 1

样例 #2

样例输入 #2

1 1

样例输出 #2

-1

样例 #3

样例输入 #3

5 58

样例输出 #3

-1

说明

数据规模与约定

  • 所有输入值均为整数。
  • 0M170 \leq M \leq 17
  • 0K1090 \leq K \leq 10^9

样例 11 解释

在这种情况下,有多个序列满足条件。

例如,当 aa = { 0,0,1,10, 0, 1, 1 } 时,有两对 (i, j) (i<j)(i,\ j)\ (i \lt j) 可以满足 ai=aja_i = a_j 的条件: (1,2)(1, 2)(3,4)(3, 4) 。由于 a1 xor a2=0a_1 \ xor \ a_2 = 0a3 xor a4=0a_3 \ xor \ a_4 = 0 ,所以这个序列 aa 满足条件。

样例 22 解释

没有序列满足条件。

样例 33 解释

没有序列满足条件。