E. Построить бинарное дерево
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам даны два целых числа $$$n$$$ и $$$d$$$. Нужно построить корневое бинарное дерево из $$$n$$$ вершин с корнем в вершине $$$1$$$ с суммой глубин всех вершин равной $$$d$$$.

Дерево — это связный граф без циклов. Корневое дерево имеет специальную вершину — корень. Родитель вершины $$$v$$$ — это последняя отличная от $$$v$$$ вершина на пути от корня к вершине $$$v$$$. Глубина вершины $$$v$$$ — это длина пути от корня к вершине $$$v$$$. Дети вершины $$$v$$$ — все вершины, для которых $$$v$$$ является родителем. Бинарное дерево — это такое дерево, в котором ни одна вершина не имеет более $$$2$$$ детей.

Вам нужно ответить на $$$t$$$ независимых наборов входных данных.

Входные данные

Первая строка теста содержит одно целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество наборов входных данных.

Единственная строка каждого набора содержит два целых числа $$$n$$$ и $$$d$$$ ($$$2 \le n, d \le 5000$$$) — количество вершин в дереве и требуемую сумму глубин всех вершин.

Гарантируется, что сумма всех $$$n$$$ и сумма всех $$$d$$$ не превышают $$$5000$$$ ($$$\sum n \le 5000, \sum d \le 5000$$$).

Выходные данные

Для каждого набора входных данных выведите ответ на него.

Если невозможно построить такое дерево, выведите «NO» (без кавычек) первой строкой. Иначе выведите «{YES}» первой строкой. Затем выведите $$$n-1$$$ целое число $$$p_2, p_3, \dots, p_n$$$ второй строкой, где $$$p_i$$$ — родитель вершины $$$i$$$. Обратите внимание: последовательность родителей, которую вы выведете, должна описывать некоторое бинарной дерево.

Пример
Входные данные
3
5 7
10 19
10 18
Выходные данные
YES
1 2 1 3 
YES
1 2 3 3 9 9 2 1 6 
NO
Примечание

Изображения, соответствующие первому и второму наборам входных данных из примера: