Home


Contest: Task: Related: TaskB TaskD

Score : $800$ points

Problem Statement

You are given integers $N,\ A$ and $B$. Determine if there exists a permutation $(P_0,\ P_1,\ ...\ P_{2^N-1})$ of $(0,\ 1,\ ...\ 2^N-1)$ that satisfies all of the following conditions, and create one such permutation if it exists.

  • $P_0=A$
  • $P_{2^N-1}=B$
  • For all $0 \leq i < 2^N-1$, the binary representations of $P_i$ and $P_{i+1}$ differ by exactly one bit.

Constraints

  • $1 \leq N \leq 17$
  • $0 \leq A \leq 2^N-1$
  • $0 \leq B \leq 2^N-1$
  • $A \neq B$
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

$N$ $A$ $B$

Output

If there is no permutation that satisfies the conditions, print NO.

If there is such a permutation, print YES in the first line. Then, print $(P_0,\ P_1,\ ...\ P_{2^N-1})$ in the second line, with spaces in between. If there are multiple solutions, any of them is accepted.


Sample Input 1

2 1 3

Sample Output 1

YES
1 0 2 3

The binary representation of $P=(1,0,2,3)$ is $(01,00,10,11)$, where any two adjacent elements differ by exactly one bit.


Sample Input 2

3 2 1

Sample Output 2

NO