output_description: Print the number of the pairs (l, r) that satisfy the conditions.
  
  Note that the number may not fit into a 32-bit integer type.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N M
      A_1 A_2 ... A_N
attempt: # def f(As, M):
  #     prev = None
  #     c = 0
  #
  #     for i, A in enumerate(As):
  #         A %= M
  #         if i == 0:
  #             prev = {A: 1}
  #             if A == 0:
  #                 c += 1
  #             continue
  #
  #         ccc = {A: 1}
  #         for k in prev.keys():
  #             v = prev[k]
  #             newv = (k + A) % M
  #             if newv in ccc:
  #                 ccc[newv] += v
  #             else:
  #                 ccc[newv] = v
  #         c += ccc[0] if 0 in ccc else 0
  #         prev = ccc
  #     return c
  def f(As, M):
      res = 0
      totals = [As[0] % M]
      for A in As[1:]:
          l = (totals[-1] + A) % M
          if l == 0:
              res += 1
          totals.append(l)
  
      # N = len(As)
  
      ddd = {}
      for t in totals:
          if t not in ddd:
              ddd[t] = 0
          res += ddd[t]
          ddd[t] += 1
  
      # for i in range(N):
      #     ii = totals[N - 1 - i]
      #     if ii == 0:
      #         res += 1
      #     for j in range(i + 1, N):
      #         jj = totals[N - 1 - j]
      #
      #         if jj == ii:
      #             res += 1
      return res
  
  
  def main():
      N, M = [int(a) for a in input().split()]
      As = [int(a) for a in input().split()]
      print(f(As, M))
  
  
  if __name__ == "__main__":
      main()
  
problem_description: Statement
  
  There are N boxes arranged in a row from left to right. The i-th box from the
  left contains A_i candies.
  
  You will take out the candies from some consecutive boxes and distribute them
  evenly to M children.
  
  Such being the case, find the number of the pairs (l, r) that satisfy the
  following:
  
    * l and r are both integers and satisfy 1 \leq l \leq r \leq N.
    * A_l + A_{l+1} + ... + A_r is a multiple of M.
samples: [{"input": "3 2\n    4 1 5", "output": "3\n    \n\nThe sum A_l + A_{l+1} + ... + A_r for each pair (l, r) is as follows:\n\n  * Sum for (1, 1): 4\n  * Sum for (1, 2): 5\n  * Sum for (1, 3): 10\n  * Sum for (2, 2): 1\n  * Sum for (2, 3): 6\n  * Sum for (3, 3): 5\n\nAmong these, three are multiples of 2.\n\n* * *"}, {"input": "13 17\n    29 7 5 7 9 51 7 13 8 55 42 9 81", "output": "6\n    \n\n* * *"}, {"input": "10 400000000\n    1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000 1000000000", "output": "25"}]