def gets; ARGF.gets; end

def main
  n, m = gets.split.map(&:to_i)

  # 累積mod配列
  accum_mod = 0
  nums = gets.split.map do |s|
    accum_mod = (s.to_i + accum_mod) % m
    accum_mod
  end
  # pp nums

  ans = 0
  0.upto(nums.length-1) do |i|
    m0 = nums[i]

    # 起点が0、つまりその箱だけで条件を満たしている
    ans += 1 if m0 == 0

    # 後に続く m0 と同じ値をカウントアップする
    (i+1).upto(nums.length-1) do |j|
      ans += 1 if nums[j] == m0
    end
  end

  puts ans
end

if __FILE__ == $0
  main
end
