Takahashi is playing with N cards.

The i-th card has an integer X_i on it.

Takahashi is trying to create as many pairs of cards as possible satisfying one of the following conditions:

* The integers on the two cards are the same.
* The sum of the integers on the two cards is a multiple of M.



Find the maximum number of pairs that can be created.

Note that a card cannot be used in more than one pair.

Constraints

* 2≦N≦10^5
* 1≦M≦10^5
* 1≦X_i≦10^5

Input

The input is given from Standard Input in the following format:


N M
X_1 X_2 ... X_N


Output

Print the maximum number of pairs that can be created.

Examples

Input

7 5
3 1 4 1 5 9 2


Output

3


Input

15 10
1 5 6 10 11 11 11 20 21 25 25 26 99 99 99


Output

6
from collections import Counter
n, m = map(int,input().split())
x = list(map(int,input().split()))
data = [[] for i in range(m)]


def mod(x):
    return x%m - 1
def insert(x):
    y = mod(x)
    data[y].append(x)
for i in x:
    insert(i)


ans = len(data[m-1])//2

#print(data)

for i in range(m//2):
    p = len(data[i])
    q = len(data[m-i-2])
    if  p == q:
        if i != m-i-2:
            ans += p
        else:
            ans += p//2
    elif p > q:
        ans += q
        r = (p-q)//2
        same = 0
        set_i = Counter(data[i])
        for keys in set_i:
            same +=set_i[keys]//2
        #print(set_i)
        ans += min(r,same)
    else:
        ans += p
        r = (q-p)//2
        set_j = Counter(data[m-i-2])
        same = 0
        for keys in set_j:
            same += set_j[keys] // 2
        #print(set_j)
        ans += min(r,same)

print(ans)