#AT1106. XOR匹配

XOR匹配

题目描述

构造一个长度为2M+12^{M+1}的序列a=a1a2,,a2M+1a={a_1,a_2,…,a_{2^{M+1}}},使得如果存在这样的序列则满足以下条件。

  • aa中,每个介于002M12^M - 1之间(包括2M12^M - 1)的整数都出现了两次。

  • 对于任意ij(i<j)i和j(i < j),满足ai=aja_i = a_j时,公式ai xor ai+1 xor ... xor aj=Ka_i\ xor\ a_{i+1}\ xor \ ...\ xor\ a_j=K成立。

什么是异或(按位异或)? 整数c1,c2,...cnc_1,c_2,...c_n的异或定义如下: 当将c1 xor c2 xor ... cnc_1\ xor\ c_2\ xor\ ...\ c_n写成二进制时,在2k2^k的位上(k0k \geq 0)的数为1,如果c1,c2...cmc_1,c_2...c_m中的二进制表示形式在2k2^k的位上有奇数个数字,否则为0。

例如,3 xor 5=6。(如果写成二进制形式: 011 xor 101=110\ 011\ xor\ 101=110。)

输入

输入一行共两个整数M,KM,K

输出

如果不存在满足条件的序列aa,输出-1。

如果存在这样的序列aa,以空格分隔打印一个这样的序列aa的元素。

如果有多个满足条件的序列,任何一个都将被接受。

1 0
0 0 1 1

样例解释

对于这个例子,有多个满足条件的序列。例如,当a=0,0,1,1a= {0,0,1,1}时,有两对(i,j)(i<j)(i,j)(i < j)满足a¡=aj:(1,2)a_¡ = a_j:(1,2)和(3,4)。由于a1xora2=0a_1 xor a_2 = 0a3ora4=0a_3 or a_4 =0,这个序列aa满足条件。

1 1
-1
5 58
-1

提示

0M17 0 \leq M \leq 17

0K1090 \leq K \leq 10^9