People worry that computers will get too smart and take over the world, but the real problem is that they're too stupid and they've already taken over the world.
— Pedro Domingos
Вы работаете в известном универмаге, который использует передовые технологии и машинный труд — а, иначе говоря, роботов!
Отдел, в котором вы работаете, продает \(n \cdot k\) товаров. Первый товар стоит \(1\) доллар, второй — \(2\) доллара, и так далее: \(i\)-й товар стоит \(i\) долларов. Товары расположены на полках и образуют прямоугольную сетку: на каждой из \(n\) полок расположено по \(k\) товаров. Мы будем обозначать цену \(j\)-го товара (считая слева направо) на \(i\)-й полке за \(a_{i,j}\), \(1 \le i \le n, 1 \le j \le k\).
Время от времени роботы задумываются над следующим вопросом: какое среднее арифметическое цен товаров \(a_{i,l}, a_{i,l+1}, \ldots, a_{i,r}\) для некоторой полки \(i\) и индексов \(l \le r\)? К сожалению, старые роботы умеют работать только с целыми числами, и если средняя цена оказывается нецелым числом, они ломаются.
Вы заботитесь о благосостоянии роботов и потому хотите упорядочить товары так, чтобы роботы не могли сломаться. Формально, вы хотите найти такой двумерный массив \(a\), что:
- Каждое число от \(1\) до \(n \cdot k\) (включительно) встречается в массиве ровно один раз.
- Для всех \(i, l, r\) средняя цена товаров с \(l\)-го по \(r\)-й на \(i\)-й полке — целое число.
Выясните, возможно ли такое расположение товаров, и если да, приведите любой подходящий пример.
Выходные данные
Выведите ответ для каждого набора входных данных:
Если подходящая расстановка существуют, выведите «YES» в отдельной строке. Далее в \(n\) строках выведите по \(k\) чисел — цены товаров на каждой из полок. Каждое число от \(1\) до \(n \cdot k\) должно встречаться ровно один раз.
Если ответа не существует, то выведите единственное слово «NO» в отдельной строке.