В этой задаче вам нужно построить сетку из $n$ строк и $n$ столбцов. В каждой ячейке сетки находится целое число, где $a_{i,j}$ обозначает число в ячейке, расположенной в $i$-й строке и $j$-м столбце. Каждое целое число от $1$ до $n^2$ (включительно) встречается в сетке ровно один раз.
Мы называем целое число $x$ «бинго-числом» этой сетки, если выполняется хотя бы одно из двух следующих условий: Существует хотя бы одна строка, в которой все числа в ячейках меньше или равны $x$. Существует хотя бы один столбец, в котором все числа в ячейках меньше или равны $x$.
Легко заметить, что сетка может иметь несколько бинго-чисел, однако в этой задаче нас интересует только наименьшее бинго-число.
Даны целые числа $n$ и $k$. Постройте сетку из $n$ строк и $n$ столбцов такую, чтобы её наименьшее бинго-число было в точности равно $k$.
Входные данные
Входные данные содержат несколько тестовых случаев. Первая строка содержит целое число $T$ ($1 \le T \le 50$), указывающее количество тестовых случаев. Для каждого тестового случая: Первая и единственная строка содержит два целых числа $n$ и $k$ ($1 \le n \le 50$, $1 \le k \le n^2$).
Выходные данные
Для каждого тестового случая:
Если возможно построить сетку из $n$ строк и $n$ столбцов такую, что её наименьшее бинго-число равно $k$, сначала выведите Yes в одной строке. Затем выведите $n$ строк, где $i$-я строка содержит $n$ целых чисел $a_{i,1}, a_{i,2}, \dots, a_{i,n}$, разделенных пробелом, обозначающих числа в $i$-й строке сетки. Не забудьте, что каждое целое число от $1$ до $n^2$ (включительно) должно встречаться в сетке ровно один раз. Если существует несколько подходящих ответов, вы можете вывести любой из них.
Если найти ответ невозможно, просто выведите No в одной строке.
Примеры
Входные данные 1
4 3 5 4 10 5 2 1 1
Выходные данные 1
Yes 4 2 5 7 1 9 8 6 3 Yes 14 9 2 13 1 11 16 8 10 3 7 5 6 15 4 12 No Yes 1