F. Инверсии композиции
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам дана перестановка $$$p$$$ длины $$$n$$$, а также целое неотрицательное число $$$k$$$. Вам нужно построить перестановку $$$q$$$ длины $$$n$$$ такую, что $$$\operatorname{inv}(q) + \operatorname{inv}(q \cdot p) = k {}^\dagger {}^\ddagger$$$, или определить, что это сделать невозможно.

$$${}^\dagger$$$ Для двух перестановок $$$p$$$ и $$$q$$$ одинаковой длины $$$n$$$ перестановка $$$w = q \cdot p$$$ такова, что $$$w_i = q_{p_i}$$$ для всех $$$1 \le i \le n$$$.

$$${}^\ddagger$$$ Для перестановки $$$p$$$ длины $$$n$$$ функция $$$\operatorname{inv}(p)$$$ возвращает количество инверсий $$$p$$$, то есть количество пар индексов $$$1 \le i < j \le n$$$ таких, что $$$p_i > p_j$$$.

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

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

Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 3 \cdot 10^5, 0 \le k \le n(n - 1)$$$) — длину $$$p$$$ и требуемое количество инверсий.

Вторая строка каждого набора входных данных содержит $$$n$$$ целых чисел $$$p_1, p_2, \ldots, p_n$$$ ($$$1 \le p_i \le n$$$, $$$p_i$$$ попарно различны) — перестановку $$$p$$$.

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

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

Для каждого набора входных данных выведите в отдельной строке «YES», если существует перестановка $$$q$$$, удовлетворяющая заданному условию, или «NO», если такой перестановки не существует.

Если ответ «YES», то во второй строке выведите $$$n$$$ целых чисел $$$q_1, q_2, \ldots, q_n$$$, которые представляют собой удовлетворяющую условию перестановку $$$q$$$. Если таких $$$q$$$ несколько, выведите любую из них.

Пример
Входные данные
5
3 4
2 3 1
5 5
2 3 5 1 4
6 11
5 1 2 3 4 6
9 51
3 1 4 2 5 6 7 8 9
1 0
1
Выходные данные
YES
3 2 1
NO
NO
YES
1 5 9 8 7 6 4 3 2
YES
1
Примечание

В первом наборе входных данных имеем $$$q \cdot p = [2, 1, 3]$$$, $$$\operatorname{inv}(q) = 3$$$, и $$$\operatorname{inv}(q \cdot p) = 1$$$.

В четвертом наборе входных данных имеем $$$q \cdot p = [9, 1, 8, 5, 7, 6, 4, 3, 2]$$$, $$$\operatorname{inv}(q) = 24$$$, и $$$\operatorname{inv}(q \cdot p) = 27$$$.