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 Counter
  
  N, M = map(int, input().split())
  
  
  X = list(map(int, input().split()))
  Xremainder = [x % M for x in X]
  
  Xcount = Counter(X)
  Xremaindercount = Counter(Xremainder)
  
  
  # print(Xcount)
  # print(Xremaindercount)
  # 余りが0のものは２個ずつとって1組に
  answer = Xremaindercount[0] // 2
  Xremaindercount[0] -= (Xremaindercount[0] // 2) * 2
  # print(answer)
  
  if M % 2 == 0:
      # Mが偶数のとき、余りがM//2のものは余り0のものと同様に扱える
      limit = int(M // 2)
      answer += Xremaindercount[M // 2] // 2
      Xremaindercount[M // 2] -= (Xremaindercount[M // 2] // 2) * 2
  else:
      limit = int(M // 2 + 1)
  
  for i in range(1, limit):
      # 余りがiとM-iのものを組み合わせるとMの倍数の組ができる
      s = Xremaindercount[i]
      t = Xremaindercount[M - i]
      answer += min(s, t)
      Xremaindercount[i] -= min(s, t)
      Xremaindercount[M - i] -= min(s, t)
  
  # print(Xremaindercount)
  # print(answer)
  
  
  for i in Xcount:
      # 余りで組み合わせた後,同じ数同士のものが残り得るかを判定し、残っていたら組み合わせる
      if Xremaindercount[i % M] >= 2 and Xcount[i] >= 2:
          answer += min(Xremaindercount[i % M], Xcount[i]) // 2
          Xremaindercount[i % M] -= (min(Xremaindercount[i % M], Xcount[i]) // 2) * 2
  
  print(answer)
  
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"}]