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
n, m = map( int, raw_input().strip().split() )
data = map( int, raw_input().strip().split() )

ans = 0

freq1 = [0] * ( max( data ) + 1 )
for x in data:
	freq1[ x ] += 1

freq2 = [0] * m
freq3 = [0] * m

for i in range( len( freq1 ) ):
	freq2[ i % m ] += freq1[i]
	freq3[ i % m ] += 2 * ( freq1[i] / 2 )

for i in range(m) :
	if ( i + i ) % m == 0:
		ans += freq2[i] / 2
	else:
		mx = 0
		val = min( freq2[i], freq2[m-i] )
		ans += val
		ans += min( freq3[i], freq2[i] - val ) / 2
		ans += min( freq3[m-i], freq2[m-i] - val ) / 2
		freq2[i] = freq2[ m-i ] = 0
		freq3[i] = freq3[ m-i ] = 0

print ans 