atcoder#CF17FINALI. Full Tournament

Full Tournament

Score : 16001600 points

Problem Statement

2N2^N players competed in a tournament. Each player has a unique ID number from 11 through 2N2^N. When two players play a match, the player with the smaller ID always wins.

This tournament was a little special, in which losers are not eliminated to fully rank all the players.

We will call such a tournament that involves 2n2^n players a full tournament of level n. In a full tournament of level nn, the players are ranked as follows:

  • In a full tournament of level 00, the only player is ranked first.
  • In a full tournament of level n (1n)n\ (1 \leq n), initially all 2n2^n players are lined up in a row. Then:
  • First, starting from the two leftmost players, the players are successively divided into 2n12^{n-1} pairs of two players.
  • Each of the pairs plays a match. The winner enters the "Won" group, and the loser enters the "Lost" group.
  • The players in the "Won" group are lined up in a row, maintaining the relative order in the previous row. Then, a full tournament of level n1n-1 is held to fully rank these players.
  • The players in the "Lost" group are also ranked in the same manner, then the rank of each of these players increases by 2n12^{n-1}.

For example, the figure below shows how a full tournament of level 33 progresses when eight players are lined up in the order 3,4,8,6,2,1,7,53,4,8,6,2,1,7,5. The list of the players sorted by the final ranking will be 1,3,5,6,2,4,7,81,3,5,6,2,4,7,8.

Takahashi has a sheet of paper with the list of the players sorted by the final ranking in the tournament, but some of it blurred and became unreadable. You are given the information on the sheet as a sequence AA of length NN. When AiA_i is 11 or greater, it means that the ii-th ranked player had the ID AiA_i. If AiA_i is 00, it means that the ID of the ii-th ranked player is lost.

Determine whether there exists a valid order in the first phase of the tournament which is consistent with the sheet. If it exists, provide one such order.

Constraints

  • 1N181 \leq N \leq 18
  • 0Ai2N0 \leq A_i \leq 2^N
  • No integer, except 00, occurs more than once in AiA_i.

Input

Input is given from Standard Input in the following format:

NN

A1A_1 A2A_2 ...... A2NA_{2^N}

Output

If there exists a valid order in the first phase of the tournament, print YES first, then in the subsequent line, print the IDs of the players sorted by the final ranking, with spaces in between. If there is no such order, print NO instead.

3
0 3 0 6 0 0 0 8
YES
3 4 8 6 2 1 7 5

This is the same order as the one in the statement.

1
2 1
NO