output_description: Print the maximum number of pairs that can be created.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N M
      X_1 X_2 ... X_N
attempt: from collections import defaultdict
  
  printn = lambda x: print(x, end="")
  inn = lambda: int(input())
  inl = lambda: list(map(int, input().split()))
  inm = lambda: map(int, input().split())
  ins = lambda: input().strip()
  DBG = True  # and False
  BIG = 10**18
  R = 10**9 + 7
  
  
  def ddprint(x):
      if DBG:
          print(x)
  
  
  n, m = inm()
  x = inl()
  h = defaultdict(int)
  for y in x:
      h[y] += 1
  od = [0] * m
  ev = [0] * m
  for y in h:
      od[y % m] += h[y] % 2
      ev[y % m] += h[y] - h[y] % 2
  ans = (ev[0] + od[0]) // 2
  if m % 2 == 0:
      ans += (ev[m // 2] + od[m // 2]) // 2
  for i in range(1, m // 2 + m % 2):
      a = od[i]
      b = ev[i]
      c = od[m - i]
      d = ev[m - i]
      if a > c + d:
          ans += c + d + b // 2
      elif c > a + b:
          ans += a + b + d // 2
      else:
          ans += (a + b + c + d) // 2
  print(ans)
  
problem_description: Statement
  
  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.
samples: [{"input": "7 5\n    3 1 4 1 5 9 2", "output": "3\n    \n\nThree pairs (3,2), (1,4) and (1,9) can be created.\n\nIt is possible to create pairs (3,2) and (1,1), but the number of pairs is not\nmaximized with this.\n\n* * *"}, {"input": "15 10\n    1 5 6 10 11 11 11 20 21 25 25 26 99 99 99", "output": "6"}]