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: 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 += min(cnt2[l], cnt2[r])
              if cnt2[l] == cnt2[r]:
                  continue
              elif cnt2[l] < cnt2[r]:
                  ans += (cnt2[r] - cnt2[l]) // 2
              else:
                  ans += (cnt2[l] - cnt2[r]) // 2
          elif cnt1[l] < cnt1[r]:
              ans += min(cnt2[l], cnt1[r])
              if cnt2[l] <= cnt1[r]:
                  ans += cnt2[r] // 2
              else:
                  cnt2[l] -= cnt1[r]
                  ans += min(cnt2[l], cnt2[r])
                  if cnt2[l] == cnt2[r]:
                      continue
                  elif cnt2[l] < cnt2[r]:
                      ans += (cnt2[r] - cnt2[l]) // 2
                  else:
                      ans += (cnt2[l] - cnt2[r]) // 2
          else:
              ans += min(cnt1[l], cnt2[r])
              if cnt2[r] <= cnt1[l]:
                  ans += cnt2[l] // 2
              else:
                  cnt2[r] -= cnt1[l]
                  ans += min(cnt2[l], cnt2[r])
                  if cnt2[l] == cnt2[r]:
                      continue
                  elif cnt2[l] < cnt2[r]:
                      ans += (cnt2[r] - cnt2[l]) // 2
                  else:
                      ans += (cnt2[l] - cnt2[r]) // 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"}]