human
Dima got into number sequences. Now he's got sequence a1, a2, ..., an, consisting of n positive integers. Also, Dima has got a function f(x), which can be defined with the following recurrence:

  * f(0) = 0.

  * f(2·x) = f(x).

  * f(2·x + 1) = f(x) + 1. 


Dima wonders, how many pairs of indexes (i, j) (1 ≤ i < j ≤ n) are there, such that f(ai) = f(aj). Help him, count the number of such pairs. 

Input

The first line contains integer n (1 ≤ n ≤ 105). The second line contains n positive integers a1, a2, ..., an (1 ≤ ai ≤ 109).

The numbers in the lines are separated by single spaces.

Output

In a single line print the answer to the problem.

Please, don't use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specifier.

Examples

Input

3
1 2 4

Output

3

Input

3
5 3 1

Output

1

Note

In the first sample any pair (i, j) will do, so the answer is 3.

In the second sample only pair (1, 2) will do.
The above is tricky. Write me a correct solution in PYTHON3.
assistant
#Here is Python program to print the answer to the problem.

def main():
    from collections import defaultdict
    
    def f(x):
        if x < L:
            return prec[x]
        return f(x // 2) + x % 2
    
    n = int(input())
    
    a = [int(i) for i in input().split()]
    
    L = 10**5
    prec = [0]
    for i in range(1, L):
        if i % 2 == 1:
            prec.append(prec[i - 1] + 1)
        else:
            prec.append(prec[i // 2])
    
    d = defaultdict(int)
    
    for i in a:
        d[f(i)] += 1
    
    result = 0
    for i in d.values():
        result += i * (i - 1) // 2
    
    print(result)

main()