#P1609F. Interesting Sections

    ID: 222 Type: RemoteJudge 2000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>data structuresdivide and conquermeet-in-the-middletwo pointers*2800

Interesting Sections

No submission language available for this problem.

Description

William has an array of non-negative numbers a1,a2,,ana_1, a_2, \dots, a_n. He wants you to find out how many segments lrl \le r pass the check. The check is performed in the following manner:

  1. The minimum and maximum numbers are found on the segment of the array starting at ll and ending at rr.
  2. The check is considered to be passed if the binary representation of the minimum and maximum numbers have the same number of bits equal to 1.

The first line contains a single integer nn (1n1061 \le n \le 10^6), the size of array aa.

The second line contains nn integers a1,a2,,ana_1, a_2, \dots, a_n (0ai10180 \le a_i \le 10^{18}), the contents of array aa.

Output a single number  — the total number of segments that passed the check.

Input

The first line contains a single integer nn (1n1061 \le n \le 10^6), the size of array aa.

The second line contains nn integers a1,a2,,ana_1, a_2, \dots, a_n (0ai10180 \le a_i \le 10^{18}), the contents of array aa.

Output

Output a single number  — the total number of segments that passed the check.

Samples

Sample Input 1

5
1 2 3 4 5

Sample Output 1

9

Sample Input 2

10
0 5 7 3 9 10 1 6 13 7

Sample Output 2

18