Задачі
Перебудова павутини
Перебудова павутини
Старому павуку захотілось внести різноманітність у своє життя. Для цього він вирішив перебудувати свою прямокутну павутину. Спочатку павутина являє собою прямокутник розміром \textbf{a}×\textbf{b}. За одну секунду павук може зробити одну з наступних операцій з павутиною \textbf{x}×\textbf{y}:
\begin{enumerate}
\item Дов'язати до павутини полоску \textbf{x}×\textbf{k} так, що отримає прямокутник \textbf{x}×\textbf{(y+k)}, для довільного натурального \textbf{k} ≤ \textbf{y}, яке є дільником числа \textbf{y}.
\item Дов'язати до павутини полоску \textbf{k}×\textbf{y} так, що отримає прямокутник \textbf{(x+k)}×\textbf{y}, для довільного натурального \textbf{k} ≤ \textbf{x}, яке є дільником числа \textbf{x}.
\item Відрізати від павутини полоску розміром \textbf{x}×\textbf{k} так, що отримає прямокутник \textbf{x}×\textbf{(y-k)}, для довільного натурального \textbf{k} < \textbf{y}, яке є дільнико числа \textbf{y}.
\item Відрізати від павутини полоску розміром \textbf{k}×\textbf{y} так, що отримає прямокутник \textbf{(x-k)}×\textbf{y}, для довільного натурального \textbf{k} < \textbf{x}, яке є дільником числа \textbf{x}.
\end{enumerate}
Вам відомі початкові розміри павутини та розміри, які хоче отримати павук. Ваша задача обчислити, який мінімальний час йому для цього потрібно. Орієнтація павутини не має значення (\textbf{a}×\textbf{b} та \textbf{b}×\textbf{a} -- однакові павутини).
\InputFile
Чотири цілих числа \textbf{a}, \textbf{b}, \textbf{c}, \textbf{d} (\textbf{1} ≤ \textbf{a}, \textbf{b}, \textbf{c}, \textbf{d} ≤ \textbf{10^5}).
\OutputFile
Єдине число -- мінімальний час у секундах, необхідний для перебудови павутини \textbf{a}×\textbf{b} у павутину \textbf{c}×\textbf{d}.
Вхідні дані #1
5 2 2 3
Вихідні дані #1
2
Пояснення: Павук може зробити з 5×2 -> 6×2, за допомогою операції 1(k=1). За допомогою операції 4(k=3) отримати з 6×2 -> 3×2, що те ж саме, що 2×3. За одну операцію це зробити не можна. Таким чином, необхідно дві операції.