Робот стоит в клетке \((0, 0)\) бесконечной сетки. Длина его ног может регулироваться. Изначально длина его ног равна \(1\).
Пусть робот сейчас стоит в клетке \((x, y)\), а длина его ног равна \(m\). За один ход он может исполнить одно из следующих трех действий:
- прыгнуть в клетку \((x + m, y)\);
- прыгнуть в клетку \((x, y + m)\);
- увеличить длину ног на \(1\), то есть сделать ее равной \(m + 1\).
Какое наименьшее количество ходов ему потребуется, чтобы достичь клетки \((a, b)\)?
Выходные данные
На каждый набор входных данных выведите одно целое число — наименьшее количество ходов, которые потребуется роботу, чтобы достичь клетки \((a, b)\) из клетки \((0, 0)\).
Примечание
В первом наборе входных данных робот может сначала прыгнуть в \((0, 1)\), затем в \((1, 1)\). Если он когда-нибудь увеличит длину своих ног, то он сможет только перепрыгнуть \((1, 1)\).
Во втором наборе робот может прыгнуть в \((1, 0)\), затем увеличить длину своих ног до \(2\), затем прыгнуть трижды до \((1, 6)\).
В третьем наборе робот может увеличить длину своих ног трижды, чтобы сделать ее равной \(4\). Затем прыгнуть в \((0, 4)\). Затем прыгнуть дважды до \((8, 4)\).
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 1 1 1 6 8 4
|
2
5
6
|