Студенты пришли в аудиторию писать контрольную и расселись некоторым образом. Преподаватель подумал: «Наверняка они сели так, чтобы им было удобней списывать друг у друга. Надо их пересадить так, чтобы ранее сидевшие рядом студенты рядом не сидели.»
Можно представить себе аудиторию как прямоугольное поле n на m, в каждой клетке сидит по студенту. Два студента сидят рядом друг с другом, если соответствующие им клетки смежны по стороне.
Пронумеруем студентов от 1 до n·m по строчкам. Т.е. студент, изначально сидящий в клетке в i-й строчке и j-м столбце будет иметь номер (i - 1)·m + j. Вам требуется найти таблицу, в которой будет n строчек и m столбцов, в которой каждое число от 1 до n·m будет записано ровно один раз, а также соседние числа в изначальной таблице не должны быть соседними в получившейся, либо сказать, что такой не существует.
В единственной строке находятся два целых числа n и m (1 ≤ n, m ≤ 105; n·m ≤ 105) — количество строк и столбцов в искомой таблице соответственно.
Если искомой таблицы не существует, в единственной строке выведите «NO» (без кавычек).
Если же она существует, то в первой строке выведите «YES» (без кавычек), а в следующих n строках выведите по m целых чисел — искомую таблицу.
2 4
YES
5 4 7 2
3 6 1 8
2 1
NO
Разберём первый тест. Изначальная таблица выглядит так:
1 2 3 4
5 6 7 8
Легко видеть, что никакие две пары студентов не являются соседями одновременно в обеих таблицах.
Во втором тесте существует всего два варианта рассадить студентов, и в любом случае пара 1 2 будет сидеть рядом.
Название |
---|