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

Робот стоит в клетке $$$(0, 0)$$$ бесконечной сетки. Длина его ног может регулироваться. Изначально длина его ног равна $$$1$$$.

Пусть робот сейчас стоит в клетке $$$(x, y)$$$, а длина его ног равна $$$m$$$. За один ход он может исполнить одно из следующих трех действий:

  • прыгнуть в клетку $$$(x + m, y)$$$;
  • прыгнуть в клетку $$$(x, y + m)$$$;
  • увеличить длину ног на $$$1$$$, то есть сделать ее равной $$$m + 1$$$.

Какое наименьшее количество ходов ему потребуется, чтобы достичь клетки $$$(a, b)$$$?

Входные данные

В первой строке записано одно целое число $$$t$$$ ($$$1 \le t \le 100$$$) — количество наборов входных данных.

В единственной строке каждого набора входных данных записаны два целых числа $$$a$$$ and $$$b$$$ ($$$1 \le a, b \le 10^9$$$) — финальная клетка.

Выходные данные

На каждый набор входных данных выведите одно целое число — наименьшее количество ходов, которые потребуется роботу, чтобы достичь клетки $$$(a, b)$$$ из клетки $$$(0, 0)$$$.

Пример
Входные данные
3
1 1
1 6
8 4
Выходные данные
2
5
6
Примечание

В первом наборе входных данных робот может сначала прыгнуть в $$$(0, 1)$$$, затем в $$$(1, 1)$$$. Если он когда-нибудь увеличит длину своих ног, то он сможет только перепрыгнуть $$$(1, 1)$$$.

Во втором наборе робот может прыгнуть в $$$(1, 0)$$$, затем увеличить длину своих ног до $$$2$$$, затем прыгнуть трижды до $$$(1, 6)$$$.

В третьем наборе робот может увеличить длину своих ног трижды, чтобы сделать ее равной $$$4$$$. Затем прыгнуть в $$$(0, 4)$$$. Затем прыгнуть дважды до $$$(8, 4)$$$.