#agc006b. [agc006_b]Median Pyramid Easy

[agc006_b]Median Pyramid Easy

题目描述

我们有一个金字塔,它由 NN 层阶梯和积木构成。从上到下,每个阶梯按照 11NN 进行编号。对于每个 1iN1≤i≤N,第 ii 层阶梯由 2i12i-1 个水平排列的积木组成。金字塔是这样构建的:每一层的中心积木都是垂直对齐的。

一个包含 N=4N=4 层的金字塔

Snuke在第 NN 层的积木上写下了一个(11, 22, ......, 2N12N-1)的排列。然后,他在剩下的所有积木上写入整数,遵循以下规则:

  • 写入积木 bb 的整数必须等于直接位于 bb 下方的三个积木上写入的整数的中位数,或者是位于 bb 的左下角或右下角的整数。

将整数写入积木

之后,他擦除了所有写在积木上的整数。现在,他只记得第 11 层积木上写的整数是 xx

构造一个(11, 22, ......, 2N12N-1)的排列,这个排列可能被写入第 NN 层的积木上,或者声明 Snuke 的记忆错误,并且不存在这样的排列。

约束条件

  • 2N1052≤N≤10^5
  • 1x2N11≤x≤2N-1

输入

输入以以下格式从标准输入给出:

NN xx

输出

如果无法将(11, 22, ......, 2N12N-1)的排列写入第 NN 层的积木上,则打印 No

否则,第一行打印 Yes,随后再打印 2N12N-1 行。

2N12N-1 行中的第 ii 行应该包含可能排列的第 ii 个元素。


样例输入 1

4 4

样例输出 1

Yes
1
6
3
7
4
5
2

这个案例对应于问题描述中的图。


样例输入 2

2 1

样例输出 2

No

无论写入第 NN 层的积木是什么排列,写在第 11 层积木上的整数都将为 22