Шахова Дошка
Limits: 2 sec., 512 MiB
Є шахова дошка \(n \times m\) (n рядків і m стовпців). Верхня ліва клітинка дошки має білий колір, і в ній стоїть Зеник.
Зеник хоче дістатися з верхнього лівого кута у нижній правий, проте Зеник може рухатися лише по білих клітинках. Спочатку Зеник може вибрати якісь рядки та змінити кольори всіх клітинок у вибраних рядках на протилежні. Після того він може вибрати якісь стовпці та змінити кольори всіх клітинок у вибраних стовпцях на протилежні.
Наприклад, якщо Зеник застосує дану операцію до третього рядка, це виглядатиме так:
Зауважте, що оскільки Зеник рухається лише по білих клітинках, після його операцій верхня ліва клітинка має залишатися білою. Яку мінімальну кількість рядків та стовпців треба вибрати Зенику, щоб дійти до нижнього правого кута?
Input
У першому рядку задано два цілих числа n та m — висоту та ширину шахової дошки.
Output
Виведіть ціле число — мінімальну кількість рядків і стовпців які потрібно змінити щоб дійти до нижньої правої клітинки.
Constraints
\(1 \le n, m \le 10^9\).
Оцінювання складається з таких блоків:
по 1 балу за кожен приклад з умови,
40 балів: \(n = 1\),
58 балів: без додаткових обмежень.
Бали за блок ви отримаєте, тільки якщо ваша програма пройде всі тести з блоку.
Samples
| Input (stdin) | Output (stdout) |
|---|---|
| 1 5 | 2 |
| Input (stdin) | Output (stdout) |
|---|---|
| 3 3 | 2 |
Notes
В першому прикладі Зеник може вибрати другий те червертий стовпці.
Submit a solution
| Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
|---|
| Element Type | Created | Who | Problem | Compiler | Result | Time (sec.) | Memory (MiB) | # | Actions |
|---|