#include <bits/stdc++.h>
using namespace std;
vector<int> a;
int solve(int n, int p, int k){
unordered_map<int,int> mp;
int ct = 0;
for(int i=0; i<n; i++){
int val = a[i]%p;
int power4 = val;
power4 = (power4 * val)%p;
power4 = (power4 * val)%p;
power4 = (power4 * val)%p;
int req = (power4 - (k*val)%p + p)%p;
if(mp.count(req)){
ct += mp[req];
}
mp[req]++;
}
return ct;
}
int main() {
int n, p, k;
cin >> n >> p >> k;
a.resize(n);
for(int i=0; i<n; i++) cin >> a[i];
cout << solve(n, p, k) << endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yPGludD4gYTsKaW50IHNvbHZlKGludCBuLCBpbnQgcCwgaW50IGspewogICAgdW5vcmRlcmVkX21hcDxpbnQsaW50PiBtcDsKICAgIAogICAgaW50IGN0ID0gMDsKICAgIAogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKICAgICAgICBpbnQgdmFsID0gYVtpXSVwOwogICAgICAgIGludCBwb3dlcjQgPSB2YWw7CiAgICAgICAgcG93ZXI0ID0gKHBvd2VyNCAqIHZhbCklcDsKICAgICAgICBwb3dlcjQgPSAocG93ZXI0ICogdmFsKSVwOwogICAgICAgIHBvd2VyNCA9IChwb3dlcjQgKiB2YWwpJXA7CiAgICAgICAgCiAgICAgICAgaW50IHJlcSA9IChwb3dlcjQgLSAoayp2YWwpJXAgKyBwKSVwOwogICAgICAgIAogICAgICAgIGlmKG1wLmNvdW50KHJlcSkpewogICAgICAgICAgICBjdCArPSBtcFtyZXFdOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBtcFtyZXFdKys7CiAgICAgICAgCiAgICB9CiAgICAKICAgIHJldHVybiBjdDsKICAgIAp9CgppbnQgbWFpbigpIHsKCiAgICBpbnQgbiwgcCwgazsKICAgIGNpbiA+PiBuID4+IHAgPj4gazsKICAgIAogICAgYS5yZXNpemUobik7CiAgICBmb3IoaW50IGk9MDsgaTxuOyBpKyspIGNpbiA+PiBhW2ldOwogICAgCiAgICBjb3V0IDw8IHNvbHZlKG4sIHAsIGspIDw8IGVuZGw7CiAgICAKICAgIHJldHVybiAwOwp9