Problem10842--ABC153 - D - Caracal vs Monster

10842: ABC153 - D - Caracal vs Monster

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 512 MiB

Description

Caracal is fighting with a monster.

The health of the monster is $H$.

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 $1$, it drops to $0$.
-   If the monster's health, $X$, is greater than $1$, that monster disappears. Then, two new monsters appear, each with the health of $\lfloor X/2 \rfloor$.

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

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

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

Input

Input is given from Standard Input in the following format:

```
$H$
```

Output

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

Constraints

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

Sample 1 Input

2

Sample 1 Output

3

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

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

Sample 2 Input

4

Sample 2 Output

7

Sample 3 Input

1000000000000

Sample 3 Output

1099511627775

Source/Category