11344. Каракал проти монстра
Каракал бореться з монстром. Здоров'я монстра - \(H\). Каракал може атакувати, вибравши одного монстра. Коли на монстра атакують, залежно від здоров’я цього монстра, відбувається наступне:
якщо здоров’я монстра дорівнює 1, воно знижується до 0.
Якщо здоров’я монстра, \(X\), більше 1, цей монстр зникає. Потім з’являються два нових монстра, кожен із здоров’ям \(\lfloor X/2 \rfloor\) (\(\lfloor r \rfloor\) позначає найбільше ціле число, що не перевищує r.)
Каракал перемагає, коли здоров'я всіх існуючих монстрів стає 0 або нижче.
Знайдіть мінімальну кількість атак, яку потрібно зробити каракалу для перемоги.
Формат вхідних даних
Вхідний потік містить ціле число \(H\) (\(1 \le N \le 10^{12}\))
Формат вихідних даних
У вихідний потік виведіть мінімальну кількість атак.
Примітка
До прикладу 1:
Коли каракал атакує першого монстра, він зникає, і з’являються два монстра, кожен із здоров’ям 1.
Тоді каракал може атакувати кожного з цих нових монстрів один раз і виграти загалом трьома атаками.
Приклад вхідних даних
2
Приклад вихідних даних
3
Приклад вхідних даних
4
Приклад вихідних даних
7
Приклад вхідних даних
1000000000000
Приклад вихідних даних
1099511627775
Коментарі