100 atcoder#ABC153D. [ABC153D] Caracal vs Monster

[ABC153D] Caracal vs Monster

Score : 400400 points

Problem Statement

Caracal is fighting with a monster.

The health of the monster is HH.

Caracal can attack by choosing one monster. When a monster is attacked, depending on that monster's health, the following happens:

  • If the monster's health is 11, it drops to 00.
  • If the monster's health, XX, is greater than 11, that monster disappears. Then, two new monsters appear, each with the health of X/2\lfloor X/2 \rfloor.

(r\lfloor r \rfloor denotes the greatest integer not exceeding rr.)

Caracal wins when the healths of all existing monsters become 00 or below.

Find the minimum number of attacks Caracal needs to make before winning.

Constraints

  • 1H10121 \leq H \leq 10^{12}
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

HH

Output

Find the minimum number of attacks Caracal needs to make before winning.

2
3

When Caracal attacks the initial monster, it disappears, and two monsters appear, each with the health of 11.

Then, Caracal can attack each of these new monsters once and win with a total of three attacks.

4
7
1000000000000
1099511627775