B. Соберите числа
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Существует $$$2n$$$ карточек с числами $$$1,1,2,2,\ldots,n,n$$$, написанными на них. Другими словами, для всех $$$j=1,2,\ldots,n$$$ есть ровно $$$2$$$ карточки с номером $$$j$$$. На каждой карточке написано только одно число на лицевой стороне.

Вы будете играть в игру с переворотом карточек. Изначально все $$$2n$$$ карточек лежат лицом вниз (стороной без чисел). На каждом ходу вы переворачиваете ровно две карточки. Если две карточки имеют одинаковое число, вы выбрасываете эти две карточки. В противном случае вы переворачиваете их обратно в исходное положение. Вы выигрываете, когда все $$$2n$$$ карточек выброшены. Обратите внимание, что вам не нужно переворачивать две карточки одновременно, поэтому вы можете решить, какую карточку выбрать второй, после того как увидите число на первой.

Рассмотрим следующий «жадный» алгоритм для игры. Изначально $$$2n$$$ карточек размещены в ряд произвольно. Затем ваша стратегия на каждом ходе следующая:

  • Если есть две карточки, которые вы уже перевернули ранее и которые имеют одинаковое число, переверните эти две карточки.
  • В противном случае переверните первую карточку$$$^\text{*}$$$, которую вы еще не переворачивали, как первую. Предположим, эта карточка имеет номер $$$x$$$.
    • После этого, если есть другая карточка с номером $$$x$$$, которую вы перевернули ранее, переверните эту карточку.
    • В противном случае переверните первую карточку$$$^{\text{∗}}$$$ которую вы еще не переворачивали (включая текущий ход) как вторую.

Можно показать, что стратегия алгоритма уникально определяется на каждом ходе.

Вы должны решить следующую задачу, касающуюся вышеуказанного алгоритма.

  • По данным $$$n$$$ и $$$k$$$ найдите расположение $$$2n$$$ карточек, для которого указанный выше алгоритм требует ровно $$$k$$$ ходов, чтобы выиграть игру.

Кроме того, если такого расположения не существует, пожалуйста, сообщите об этом.

$$$^{\text{∗}}$$$Здесь «первая карточка» некоторого условия относится к самой ранней карточке в ряду, удовлетворяющей этому условию.

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^3$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

Единственная строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 300\,000$$$, $$$1 \le k \le 1\,000\,000$$$).

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$300\,000$$$.

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

Если существует расположение карточек, которое удовлетворяет условиям, выведите «YES» на новой строке.

Затем выведите $$$2n$$$ целых числа $$$a_1,a_2,\ldots,a_{2n-1},a_{2n}$$$ на следующей строке. Здесь $$$a_i$$$ — это число, написанное на $$$i$$$-й карточке.

Обратите внимание, что последовательность $$$a$$$ должна удовлетворять следующим условиям:

  • Для каждого $$$1 \le i \le 2n$$$, $$$1 \le a_i \le n$$$;
  • Для каждого $$$1 \le j \le n$$$, $$$j$$$ появляется в $$$a$$$ ровно дважды;
  • Когда карточки размещены в этом порядке, указанный выше алгоритм требует ровно $$$k$$$ ходов, чтобы выиграть игру.

Если существует несколько решений, выведите любое из них.

Если нет ориентации карточек, которая удовлетворяет условиям, выведите «NO» на отдельной строке.

Вы можете выводить ответ в любом регистре. Например, строки «yEs», «yes», и «Yes» также будут распознаны как положительные ответы.

Пример
Входные данные
6
2 3
3 4
3 2
3 5
6 10
6 67
Выходные данные
YES
2 1 2 1
YES
1 3 2 2 1 3
NO
YES
1 2 3 1 2 3
YES
2 1 3 4 5 4 1 2 6 5 6 3
NO
Примечание

Для первого набора входных данных выборы на каждом ходе следующие:

  1. $$$[\color{red}{2},\color{red}{1},2,1]$$$: Две карточки имеют разные числа, поэтому они переворачиваются обратно в начальное положение.
  2. $$$[\color{red}{2},\color{blue}{1},\color{red}{2},1]$$$: Две карточки имеют одинаковое число, поэтому они выбрасываются.
  3. $$$[\color{red}{1},\color{red}{1}]$$$: Две карточки имеют одинаковое число, поэтому они выбрасываются.

Здесь красные числа указывают на карточки, перевернутые в текущем ходе, а синие числа указывают на карточки, которые вы перевернули ранее.

Для четвертого набора входных данных выборы на каждом ходе следующие:

  1. $$$[\color{red}{1},\color{red}{2},3,1,2,3]$$$: Две карточки имеют разные числа, поэтому они переворачиваются обратно в начальное положение.
  2. $$$[\color{blue}{1},\color{blue}{2},\color{red}{3},\color{red}{1},2,3]$$$: Две карточки имеют разные числа, поэтому они переворачиваются обратно в положение.
  3. $$$[\color{red}{1},\color{blue}{2},\color{blue}{3},\color{red}{1},2,3]$$$: Две карточки имеют одинаковое число, поэтому они выбрасываются.
  4. $$$[\color{red}{2},\color{blue}{3},\color{red}{2},3]$$$: Две карточки имеют одинаковое число, поэтому они выбрасываются.
  5. $$$[\color{red}{3},\color{red}{3}]$$$: Две карточки имеют одинаковое число, поэтому они выбрасываются.

Алгоритм потребовал ровно $$$k=5$$$ ходов, чтобы выиграть игру.