Задачі
І знову ланцюжок
І знову ланцюжок
Розглянемо ланцюжок, який скадається з \textbf{N }кілець. Яку мінімальну кількість кілець необхідно розцепити, щоб із кусочків, що залишаться, можна було б зібрати ланцюжки довільної довжини від \textbf{1 }до \textbf{N }кілець? При створенні нових ланцюжків можна використовувати розцеплені кільця.
\includegraphics{https://static.e-olymp.com/content/f2/f2863deb6d07a2bb4e75f40a392dc3572457f3bb.jpg}
Наприклад, при \textbf{N = 21}, достатньо розцепити усього \textbf{2 }кільця таким чином, щоб утворились ланцюжки довжиною \textbf{3}, \textbf{5 та 11}. Два розцеплених кільця важаються ланцюжками одиничної довжини.
Напишіть програму, яка за натуральним числом \textbf{N -} довжині початкового ланцюжка, знаходить мінімальну кількість кілець, які необхідно розцепити для досягнення описаної мети.
\InputFile
Одне ціле число \textbf{N} (\textbf{1} ≤ \textbf{N} ≤ \textbf{10^9}).
\OutputFile
Вивести одне ціле число - знайдену мінімальну кількість кілець.
Вхідні дані #1
21
Вихідні дані #1
2