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: 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
  
  
  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
          set_i = len(set(data[i]))
          ans += min(r, (p - set_i) // 2)
      else:
          ans += p
          r = (q - p) // 2
          set_j = len(set(data[m - i - 2]))
          ans += min(r, (q - set_j) // 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"}]