#include using namespace std; #define rep(i, j, n) for (int i = (int)j; i < (int)(n); i++) using ll = long long int; int main() { int N, P, Q; cin >> N >> P >> Q; vector A(N); rep(i, 0, N) cin >> A[i]; sort(A.begin(), A.end()); vector o = {10, 9, 7, 5}; vector> a(N, vector (4)); rep(i, 0, N) { rep(j, 0, 4) { ll p = 1; rep(k, 0, A[i]) p = (p * o[j]) % P; a[i][j] = p; } } int ans = 0; auto dfs = [&](auto dfs, int x, int n, int depth) { x = (x + a[n][depth]) % P; if (depth == 3) { if (x % P == Q) ans++; return; } rep(i, n+1, N) { dfs(dfs, x, i, depth+1); } return; }; rep(i, 0, N) dfs(dfs, 0, i, 0); cout << ans << endl; return 0; }