#include <bits/stdc++.h>
int N;
long long M;
std::unordered_map<long long, int> collect;
int main() {
  std::cin >> N >> M;
  long long sum = 0;
  for (int i = 0; i < N; ++i) {
    long long temp;
    std::cin >> temp;
    sum += temp;
    ++collect[sum % M];
  }
  long long ans = 0;
  for (auto i : collect) {
    int temp = i.second;
    ans += temp * (temp - 1) / 2;
  }
  ans += collect[0];
  std::cout << ans << '\n';
  return 0;
}
