#include <bits/stdc++.h>
using namespace std;
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
const int long long MOD = 1;
static const int MAX = 100;
static const int INF = (1 << 23);
int long long fact(int long long n) {
  if (n == 0)
    return 1;
  else
    return n * fact(n - 1) % MOD;
}
int long long calc(int long long n, int long long k) {
  if (k == 0) return 1;
  int long long m = n * n % MOD;
  if (k % 2)
    return n * calc(m, k / 2) % MOD;
  else
    return calc(m, k / 2) % MOD;
}
int long long comb(int long long n, int long long k) {
  int long long ret = fact(n);
  ret = ret * calc(fact(k), MOD - 2) % MOD;
  ret = ret * calc(fact(n - k), MOD - 2) % MOD;
  return ret;
}
int main() {
  int long long n, m;
  cin >> n >> m;
  vector<int long long> a(n);
  int long long ans = 0;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  vector<int long long> u(n + 1, 0);
  int long long sum = 0;
  for (int i = 0; i < n; i++) {
    u[i + 1] += u[i] + a[i];
  }
  map<int, int> ma;
  for (int i = 1; i < n + 1; i++) {
    int k = u[i] % m;
    ma[k]++;
  }
  for (auto &a : ma) {
    if (a.first == 0) {
      ans += a.second;
    }
    if (a.second >= 2) {
      ans += (a.second) * (a.second - 1) / 2;
    }
  }
  cout << ans << endl;
  return 0;
}
