Інтерпретатор мови програмування Base_ABC може виконувати присвоєння вигляду A := B * C (де A, B і C — імена змінних), але не може безпосередньо виконувати піднесення до натурального степеня. Тому обчислення виразів типу A^N слід замінити послідовністю команд множення.
Наприклад, команду X := A^5 можна записати як послідовність із трьох присвоєнь, кожне з яких містить одне множення:
R_1 := A * A
R_2 := A * R_1
X := R_1 * R_2За заданим визначте мінімальну кількість команд присвоєння з одним множенням для обчислення A^N.
Вхідні дані містять одне число (2 \leq N \leq 2000).
Виведіть одне число — відповідь до задачі.
Приклад 1