Time Limit : sec, Memory Limit : KB
English

D: XORANDORBAN

Problem Statement

You are given a positive integer N. Your task is to determine a set S of 2^N integers satisfying the following conditions:

  • All the integers in S are at least 0 and less than 2^{N+1}.
  • All the integers in S are distinct.
  • You are also given three integers X, A, and O, where 0 \leq X, A, O < 2^{N+1}. Then, any two integers (a, b) in S must satisfy a {\it xor} b \neq X, a {\it and} b \neq A, a {\it or} b \neq O, where {\it xor}, {\it and}, {\it or} are bitwise xor, bitwise and, bitwise or, respectively. Note that a and b are not necessarily different.

Input

N X A O

Constraints

  • 1 \leq N \leq 13
  • 0 \leq X, A, O < 2^{N+1}
  • Inputs consist only of integers.

Output

If there is no set satisfying the conditions mentioned in the problem statement, output No in a line. Otherwise, output Yes in the first line, and then output 2^N integers in such a set in the second line. If there are multiple sets satisfying the conditions, you can output any of them.

Sample Input 1

2 6 1 5

Output for Sample Input 1

Yes
0 3 4 7

Sample Input 2

3 0 5 1

Output for Sample Input 2

No

Sample Input 3

3 4 2 5

Output for Sample Input 3

Yes
1 0 6 15 8 9 14 7