#CF1098C. Construct a tree

Construct a tree

markdown C. 构造一棵树
每个测试的时间限制:11
每个测试的内存限制:256256 MB
输入:标准输入
输出:标准输出

Misha 在雪地里散步,他被树木深深吸引,决定画一棵属于自己的树!
Misha 想要构造一棵有 nn 个顶点的有根树,顶点编号从 11nn,其中根节点的编号为 11。每个其他顶点都有一个父节点 pip_i,并且称该顶点为顶点 ii 的子节点。顶点 uu 属于顶点 vv 的子树,当且仅当从 uu 不断向上迭代父节点(u,pu,ppu,u, p_u, p_{p_u}, \dots)可以到达 vv。显然,每个顶点都属于它自己的子树,子树中顶点的数量称为该子树的大小。Misha 只关心那些每个顶点都属于顶点 11 的子树的树。

下面是一棵有 n=7n = 7 个顶点的树。顶点 22 的子树包含顶点 2,5,6,72, 5, 6, 7,因此它的子树大小为 44

树的分支系数定义为所有顶点中子节点数量的最大值。例如,上图中的树的分支系数为 33

你的任务是构造一棵有 nn 个顶点的树,使得所有顶点的子树大小之和等于 ss,并且分支系数尽可能小。

输入
仅一行,包含两个整数 nnss —— 树的顶点数和所需的子树大小之和(1n1051 \le n \le 10^51s10101 \le s \le 10^{10})。

输出
如果所需的树不存在,则输出 «No»。否则,第一行输出 «Yes»,接下来一行输出 n1n-1 个整数 p2,p3,,pnp_2, p_3, \dots, p_n,其中 pip_i 表示顶点 ii 的父节点。

输入样例 1

3 5

输出样例 1

Yes
1 1

输入样例 2

4 42

输出样例 2

No

输入样例 3

6 15

输出样例 3

Yes
1 2 3 1 5

注意
对于第一个样例,一种可能的解法如下图所示。子树大小之和为 3+1+1=53 + 1 + 1 = 5,分支系数为 22

对于第三个样例,一种可能的解法如下图所示。子树大小之和为 6+3+2+1+2+1=156 + 3 + 2 + 1 + 2 + 1 = 15,分支系数为 22