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

Райан хочет преподнести Рейхане подарок, чтобы завоевать её сердце. Однако Рейхане привередлива и примет только k-гармоничное множество перестановок.

Определим k-гармоничное множество перестановок как набор $$$k$$$ попарно различных перестановок $$$p_1, p_2, \ldots, p_k$$$ такого размера $$$n$$$, что для каждой пары индексов $$$i$$$ и $$$j$$$ (где $$$1 \leq i, j \leq n$$$) выполняется следующее условие:

$$$$$$ p_1[i] + p_2[i] + \ldots + p_k[i] = p_1[j] + p_2[j] + \ldots + p_k[j] $$$$$$

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

Мы называем последовательность длины $$$n$$$ перестановкой, если она содержит каждое целое число от $$$1$$$ до $$$n$$$ ровно один раз.

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

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

Каждый набор входных данных состоит из двух целых чисел $$$n$$$ и $$$k$$$ ($$$1 \leq n, k \leq 10^5$$$).

Гарантируется, что сумма $$$n \cdot k$$$ по всем наборам входных данных не превосходит $$$5 \cdot 10^5$$$.

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

Для каждого набора входных данных, если k-гармоничное множество перестановок существует, выведите YES в первой строке. Затем выведите $$$k$$$ строк, которые содержат различные перестановки целых чисел от $$$1$$$ до $$$n$$$.

Если такого набора не существует, в единственной строке выведите NO.

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

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

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

В 1 наборе входных данных мы имеем $$$p_1 = [1, 2, 3]$$$, $$$p_2 = [2, 3, 1]$$$, и $$$p_3 = [3, 1, 2]$$$. Можно заметить, что $$$p_1[1] + p_2[1] + p_3[1] = p_1[2] + p_2[2] + p_3[2] = p_1[3] + p_2[3] + p_3[3] = 6$$$.

Во 2 наборе входных данных у нас есть $$$p_1 = [1, 2, 3, 4]$$$ и $$$p_2 = [4, 3, 2, 1]$$$. Можно заметить, что $$$p_1[1] + p_2[1] = p_1[2] + p_2[2] = p_1[3] + p_2[3] = p_1[4] + p_2[4] = 5$$$.

В 3 наборе входных данных, поскольку в $$$p_1$$$ есть пять различных элементов, очевидно, что ответ — «No».