Олимпиадный тренинг

Задача . E. Кевин и двудольный граф


Оружейный завод нуждается в шаблоне дизайна постера и обращается за помощью к Кевину.

Шаблон дизайна постера — это двудольный граф с \( 2n \) вершинами в левой части и \( m \) вершинами в правой части, где существует ребро между каждой вершиной в левой части и каждой вершиной в правой части, в результате чего получается в общей сложности \( 2nm \) рёбер.

Кевин должен раскрасить каждое ребро в положительное целое число из отрезка \( [1, n] \). Шаблон дизайна постера является хорошим, если в двудольном графе нет одноцветных циклов\(^{\text{∗}}\).

Кевин нуждается в вашей помощи в построении хорошего двудольного графа или в том, чтобы сообщить ему, если это невозможно.

\(^{\text{∗}}\)Одноцветным циклом называется простой цикл, в котором все рёбра окрашены в один и тот же цвет.

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

Каждый тест содержит несколько наборов входных данных. Первая строка содержит количество наборов входных данных \( t \) (\( 1 \le t \le 100 \)).

Единственная строка каждого набора входных данных содержит два целых числа \( n \) и \( m \) (\( 1 \le n, m \leq 10^3 \)) — двудольный граф имеет \( 2n \) вершин в левой части и \( m \) вершин в правой части.

Гарантируется, что сумма \( n \) и сумма \( m \) по всем наборам входных данных не превышают \( 10^3 \).

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

Для каждого набора входных данных, если решения нет, выведите «No».

В противном случае выведите «Yes», а затем выведите \( 2n \) строк, каждая из которых содержит \( m \) положительных целых чисел. \( j \)-е целое число в \( i \)-й строке представляет цвет ребра между \( i \)-й вершиной в левой части и \( j \)-й вершиной в правой части.

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

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

Примечание

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

Для второго набора входных данных можно доказать, что нет допустимого решения.


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

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w643
Комментарий учителя