K
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}小歪正在出题,他想要构造一个长度为 n 的数组 \{a_1,a_2,\dots,a_n\} \left( 0 \leqq a_i \leqq n \right) ,使得选手找出最长的区间,满足区间中元素两两不同。为了便于描述,我们称这样的区间为“极大不同区间”。
\hspace{15pt}这看起来太容易了,小龙提出了挑战,对于给定的 k ,能否构造出这样的数组,使得“极大不同区间”的数量恰好为 k

输入描述:

\hspace{15pt}在一行上输入两个整数 n,k \left( 1 \leqq n,k \leqq 2 \times 10^5 \right) 代表数组中的元素数量、小龙给出的构造限制。

输出描述:

\hspace{15pt}如果存在这样的数组,在第一行上输出 \rm YES ,随后在第二行上输出 n 个整数,代表构造得到的符合要求的数组。
\hspace{15pt}否则,直接输出 \rm NO
示例1

输入

复制
6 3

输出

复制
YES
1 1 4 5 1 4

说明

在这个样例中,构造的数组恰好有 3 个满足条件的区间:[2,4][3,5][4,6]
示例2

输入

复制
6 20

输出

复制
NO