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.
import sys
from collections import Counter

memo = {}

def f(x):
    if memo.has_key(x):
        return memo[x]
    if x == 0:
        memo[x] = 0
        return 0
    if x % 2 == 0:
        memo[x] = f(x / 2)
        return memo[x]
    memo[x] = f(x / 2) + 1
    return memo[x]

def C2(n):
    return n * (n - 1) / 2

def calc(a):
    cnt = Counter()
    for x in a:
        cnt[f(x)] += 1
    return sum(C2(n) for _, n in cnt.most_common())
    
def solve(lines, output):
    _ = int(lines.readline())
    a = [int(x) for x in lines.readline().split()]
    output.write('{0}\n'.format(calc(a)))

if __name__ == '__main__':
    solve(sys.stdin, sys.stdout)
