P26225 [AtCoder] Differ by K bits
提高
题目描述

Problem Statement

You are given integers N and K.
Determine whether there exists $a permutation P=(P_0,P_1,\cdots,P_{2^N-1})$ of $(0,1,\cdots,2^N-1)$ satisfying the condition below, and construct one such sequence if it exists. Note that P is 0-indexed.

  • For every $i (0 \leq i \leq 2^N-1), P_i$ and $P_{i+1 \mod 2^N}$ differ by exactly K bits in binary representation.
    The comparison is made after zero-padding both integers to N bits.

Input

Input is given from Standard Input in the following format:
N K

Output

If there is no P satisfying the condition, print No.
If there is such a P, print it in the following format:
Yes
$P_0 P_1 \cdots P_{2^N-1}$

If there are multiple solutions satisfying the condition, printing any of them will be accepted.

Constraints

  • $1 \leq K \leq N \leq 18$
  • All values in input are integers.

Sample Input 1

3 1

Sample Output 1

Yes
0 1 3 2 6 7 5 4

Here, we have P=(000,001,011,010,110,111,101,100) in binary representation.
We can see that P_1=001 and P_2=011, for example, differ by exactly 1 bit, satisfying the condition for i=1.
The same goes for every i.

Sample Input 2

2 2

Sample Output 2

No

输入格式

见题面 Input 部分

输出格式

见题面 Output 部分

样例输入
3 1
样例输出
Yes 0 1 3 2 6 7 5 4