#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 7;
const int mod = 1e9 + 7;
struct poi {
  int X;
  int Y;
  int Z;
  bool operator<(const poi& R) const {
    return X == R.X ? Y == R.Y ? Z < R.Z : Y < R.Y : X < R.X;
  }
};
long long GCD(long long a, long long b) {
  return (b == 0) ? (a) : (GCD(b, a % b));
}
long long LCM(long long a, long long b) { return a / GCD(a, b) * b; }
int main() {
  long long N, M;
  long long A[100001];
  long long a[100001];
  cin >> N >> M;
  for (int i = 0; i < N; i++) {
    cin >> A[i];
  }
  for (int i = 0; i < N; i++) {
    A[i + 1] += A[i];
  }
  for (int i = 0; i < N + 1; i++) {
    a[i] = (A[i] % M);
  }
  sort(a, a + N + 1);
  long long ans = 0;
  for (int i = 0; i < N; i++) {
    int c = 1;
    if (a[i] != a[i + 1]) {
      continue;
    } else {
      while (i <= N && a[i] == a[i + 1]) {
        i++;
        c++;
      }
      ans += c * (c - 1) / 2;
    }
  }
  cout << ans << endl;
  return 0;
}
