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
import collections

n,m=map(int,input().split())
arr=list(map(int,input().split()))
cnt=collections.Counter(arr)
cnt1=collections.defaultdict(int)
cnt2=collections.defaultdict(int)
for key in cnt.keys():
  tmp=key%m
  val=cnt[key]
  if val%2==0:
    cnt2[tmp]+=val
  else:
    cnt1[tmp]+=1
    cnt2[tmp]+=val-1
ans=0
for i in range(m):
  l=i
  r=(m-i)%m
  if l>r:
    break
  elif l==r:
    ans+=(cnt1[l]+cnt2[l])//2
  else:
    ans+=min(cnt1[l],cnt1[r])
    if cnt1[l]==cnt1[r]:
      ans+=(cnt2[l]+cnt2[r])//2
    elif cnt1[l]<cnt1[r]:
      cnt1[r]-=cnt1[l]
      ans+=min(cnt2[l],cnt1[r])
      cnt2[l]=max(0,cnt2[l]-cnt1[r])
      ans+=(cnt2[l]+cnt2[r])//2
    else:
      cnt1[l]-=cnt1[r]
      ans+=min(cnt1[l],cnt2[r])
      cnt2[r]=max(0,cnt2[r]-cnt1[l])
      ans+=(cnt2[l]+cnt2[r])//2
print(ans)