B. Пересаживание студентов
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Студенты пришли в аудиторию писать контрольную и расселись некоторым образом. Преподаватель подумал: «Наверняка они сели так, чтобы им было удобней списывать друг у друга. Надо их пересадить так, чтобы ранее сидевшие рядом студенты рядом не сидели.»

Можно представить себе аудиторию как прямоугольное поле 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 будет сидеть рядом.