#include <bits/stdc++.h>
using namespace std;
long long n, b, k, x;
long long MOD = 1000000007;
long long temp[110][110], a[110][110], c[110][110], num[20];
void chen(long long p[][110]) {
  int i, j, t;
  memset(temp, 0, sizeof(temp));
  for (i = 0; i < x; i++)
    for (j = 0; j < x; j++) {
      for (t = 0; t < x; t++)
        temp[i][j] = (temp[i][j] + c[i][t] * p[t][j]) % MOD;
    }
  for (i = 0; i < x; i++)
    for (j = 0; j < x; j++) c[i][j] = temp[i][j];
}
void mut(int ci) {
  if (ci == 1) {
    for (int i = 0; i < x; i++)
      for (int j = 0; j < x; j++) c[i][j] = a[i][j];
  } else {
    mut(ci / 2);
    if (ci % 2 == 0) {
      chen(c);
    } else {
      chen(c);
      chen(a);
    }
  }
}
int main() {
  int i, j, t, y;
  cin >> n >> b >> k >> x;
  memset(num, 0, sizeof(num));
  memset(a, 0, sizeof(a));
  for (i = 1; i <= n; i++) {
    cin >> y;
    num[y]++;
  }
  for (i = 0; i < x; i++)
    for (j = 1; j < 10; j++) {
      t = (i * 10 + j) % x;
      a[i][t] += num[j];
    }
  mut(b);
  cout << c[0][k] << endl;
  i = 1;
}
