#codefestival2017qualaf. [code_festival_2017_quala_f]Squeezing Slimes

[code_festival_2017_quala_f]Squeezing Slimes

Problem Statement

There are AA slimes lining up in a row. Initially, the sizes of the slimes are all 11.

Snuke can repeatedly perform the following operation.

  • Choose a positive even number MM. Then, select MM consecutive slimes and form M/2M / 2 pairs from those slimes as follows: pair the 11-st and 22-nd of them from the left, the 33-rd and 44-th of them, ......, the (M1)(M-1)-th and MM-th of them. Combine each pair of slimes into one larger slime. Here, the size of a combined slime is the sum of the individual slimes before combination. The order of the M/2M / 2 combined slimes remain the same as the M/2M / 2 pairs of slimes before combination.

Snuke wants to get to the situation where there are exactly NN slimes, and the size of the ii-th (1iN1 ≤ i ≤ N) slime from the left is aia_i. Find the minimum number of operations required to achieve his goal.

Note that AA is not directly given as input. Assume A=a1+a2+...+aNA = a_1 + a_2 + ... + a_N.

Constraints

  • 1N1051 ≤ N ≤ 10^5
  • aia_i is an integer.
  • 1ai1091 ≤ a_i ≤ 10^9

Input

Input is given from Standard Input in the following format:

NN a1a_1 a2a_2 ...... aNa_N

Output

Print the minimum number of operations required to achieve Snuke's goal.


Sample Input 1

2
3 3

Sample Output 1

2

One way to achieve Snuke's goal is as follows. Here, the selected slimes are marked in bold.

  • (1, 1, 1, 1, 1, 1) → (1, 2, 2, 1)
  • (1, 2, 2, 1) → (3, 3)

Sample Input 2

4
2 1 2 2

Sample Output 2

2

One way to achieve Snuke's goal is as follows.

  • (1, 1, 1, 1, 1, 1, 1) → (2, 1, 1, 1, 1, 1)
  • (2, 1, 1, 1, 1, 1) → (2, 1, 2, 2)

Sample Input 3

1
1

Sample Output 3

0

Sample Input 4

10
3 1 4 1 5 9 2 6 5 3

Sample Output 4

10