#include using namespace std; using pii = pair; using ll = long long; const int N = 2000010, MOD = 1e9 + 7, INF = 0x3f3f3f3f; int n, m, w[N]; ll qmi(ll a, ll b, ll c) { ll res = 1; while (b) { if (b & 1) res = res * a % c; a = a * a % c; b >>= 1; } return res; } int c; ll s[N], is[N]; void solve() { scanf("%d%d%d", &n, &m, &c); s[0] = is[0] = 1; for (int i = 1; i < n + 1; i++) scanf("%d", w + i), s[i] = s[i - 1] * (w[i] ? w[i] : 1) % m, is[i] = is[i - 1] * (w[i] ? qmi(w[i], m - 2, m) : 1) % m; map ma; ma[1] = 1; ll res = 0; int t = 0; for (int i = 1; i < n + 1; i++) { if (!w[i]) ma.clear(), t = i; if (c) res += ma[c * is[i] % m]; else res += t; ma[is[i]]++; } printf("%lld\n", res); } int main() { int T = 1; // scanf("%d", &T); while (T--) solve(); return 0; }