#include <bits/stdc++.h>
using namespace std;
long long int a[200007];
int digit(int);
int main() {
  int i, j;
  long long int n, k;
  long long int chart[17];
  long long int dig_c[17] = {0};
  long long int pre_c[17] = {0};
  scanf("%I64d %I64d", &n, &k);
  chart[0] = 1;
  for (i = 1; i <= 10; i++) {
    chart[i] = (chart[i - 1] * 10) % k;
  }
  map<long long int, long long int> mp[17];
  for (i = 0; i < n; i++) {
    scanf("%I64d", &a[i]);
    int d = digit(a[i]);
    mp[d][a[i] % k]++;
  }
  long long int counti = 0;
  for (i = 0; i < n; i++) {
    for (j = 1; j <= 10; j++) {
      counti += mp[j][(k - (((a[i] % k) * chart[j]) % k)) % k];
    }
    if ((k - (((a[i] % k) * chart[digit(a[i])]) % k + a[i] % k)) % k == 0)
      counti--;
  }
  printf("%I64d\n", counti);
  return 0;
}
int digit(int n) {
  int i;
  int d = 10;
  if (n < 1) return 1;
  for (i = 1; d <= n; i++) {
    d *= 10;
  }
  return i;
}
