Стрибки з поворотом#8261

Стрибки з поворотом

1 секунда
64 мегабайти
Дуже складна

Вані сниться сон, що він стоїть на клітчастому полі розміру n \times m, і йому хочеться побувати у всіх клітинках цього поля рівно по одному разу.

Ваня може спочатку стати в центр будь-якої клітинки і потім може перестрибувати з клітинки, де він знаходиться, на іншу клітинку. Після стрибка Ваня опиняється в центрі відповідної клітинки.

Ваня може дострибнути від будь-якої клітинки до будь-якої іншої, але не все так просто. Кожного разу після стрибка він повинен повертатися строго ліворуч. А саме, для будь-яких трьох клітинок, які Ваня відвідав підряд, повинна виконуватися наступна умова: якщо дивитися з центру першої клітинки в напрямку центру другої клітинки, то центр третьої клітинки повинен лежати в лівій півплощині, не включаючи саму пряму між центрами першої і другої клітинки. Зокрема, центри трьох підряд ідучих клітинок не повинні лежати на одній прямій.

Стовпці поля пронумеровані зліва направо від до , а рядки — знизу вгору від до .Допоможіть Вані, знайдіть спосіб відвідати всі клітинки, або визначте, що це неможливо.

Вхідні дані

В єдиному рядку знаходяться два цілих числа і — кількість стовпців і рядків (1 \leq n,m \leq 100).

Вихідні дані

У першому рядку виведіть «Yes», якщо відвідати всі клітинки описаним способом можливо, інакше виведіть «No».

Якщо рішення існує, виведіть ще n \times m рядків, в -му з яких виведіть два цілих числа x_i і y_i — номер стовпця і номер рядка, на перетині яких знаходиться клітинка, в яку Ваня повинен стрибнути -й за рахунком (1 \leq x_i \leq n, 1 \leq y_i \leq m).

8261_1.jpg

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading

Примітка

Пояснення для першого тесту:

8261_2.jpg

Пояснення для другого тесту