#arc138d. [arc138_d]Differ by K bits

[arc138_d]Differ by K bits

给出两个正整数 N,KN,K,构造排列 P0,P1,...,P2N1P_0,P_1,...,P_{2^N-1} 使得对于所以 i(0i2N1)i(0\le i\le 2^N-1)PiP_iPi+1P_{i+1} 的二进制前 NN 位正好相差 KK 位。另外,比较的两者都要用 00 补齐到至少 NN 位。


输入一行两个正整数 N,KN,K

若有合法的构造,第一行输出 Yes,第二行输出 2N2^N 个数,表示你构造的 P0,P1,...,P2N1P_0,P_1,...,P_{2^N-1},给出任意一组构造即可。

否则输出一行 No