#include <bits/stdc++.h>
using namespace std;
long long int mod;
long long int mod1 = 1e9 + 7;
long long int power(long long int a, long long int b) {
  if (b == 0) return 1;
  long long int ans = power(a, b / 2);
  ans = (ans * ans) % mod;
  if (b % 2) ans *= a;
  return ans % mod;
}
long long int mul(long long int a, long long int n, long long int mod) {
  long long int ret;
  if (n == 0) return 0;
  ret = mul(a, n / 2, mod);
  ret = (ret + ret) % mod;
  if (n % 2) ret = (ret + a) % mod;
  return ret;
}
vector<long long int> solve(vector<long long int> &base, int n, int x) {
  if (n == 1) return base;
  vector<long long int> c = solve(base, n / 2, x);
  vector<long long int> d(x, 0);
  for (int i = 0; i < x; i++) {
    for (int j = 0; j < x; j++)
      d[((i * power(10, n / 2)) % x + j) % x] =
          (d[((i * power(10, n / 2)) % x + j) % x] + (c[i] * c[j]) % mod1) %
          mod1;
  }
  if (n % 2) {
    vector<long long int> ans(x, 0);
    for (int i = 0; i < x; i++) {
      for (int j = 0; j < x; j++)
        ans[(i * 10 + j) % x] =
            (ans[(i * 10 + j) % x] + (d[i] * base[j]) % mod1) % mod1;
    }
    return ans;
  }
  return d;
}
int main() {
  ios_base::sync_with_stdio(false);
  cout.tie(NULL);
  cin.tie(NULL);
  int n, b, val, k, x;
  cin >> n >> b >> k >> x;
  mod = x;
  vector<long long int> base(x, 0);
  for (int i = 1; i <= n; i++) {
    cin >> val;
    base[val % x]++;
  }
  vector<long long int> ans = solve(base, b, x);
  cout << ans[k];
}
