#include <iostream>
#include <bits/stdc++.h>
#include <math.h>
using namespace std;
int solve(vector<int>A,int k,int p){
int n=A.size();
int cnt=0;
unordered_map<int,int>mpp;
for(int i=0;i<n;i++){
int x=A[i];
int val=pow(x,4);
int required=(val%p)-((k*x)%p)+p;
required=required%p;
cnt+=mpp[required];
mpp[required]++;
}
return cnt;
}
int main(){
int n;
cin>>n;
vector<int>A(n);
for(int i=0;i<n;i++){
cin>>A[i];
}
int k,p;
cin>>k>>p;
int number_of_pairs=solve(A,k,p);
cout<<"Number of pairs that are valid: "<<number_of_pairs<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGUgPG1hdGguaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgppbnQgc29sdmUodmVjdG9yPGludD5BLGludCBrLGludCBwKXsKICAgIGludCBuPUEuc2l6ZSgpOwogICAgaW50IGNudD0wOwogICAgdW5vcmRlcmVkX21hcDxpbnQsaW50Pm1wcDsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgIGludCB4PUFbaV07CiAgICAgICAgaW50IHZhbD1wb3coeCw0KTsKICAgICAgICBpbnQgcmVxdWlyZWQ9KHZhbCVwKS0oKGsqeCklcCkrcDsKICAgICAgICByZXF1aXJlZD1yZXF1aXJlZCVwOwogICAgICAgIGNudCs9bXBwW3JlcXVpcmVkXTsKCiAgICAgICAgbXBwW3JlcXVpcmVkXSsrOwogICAgfQogICAgcmV0dXJuIGNudDsKfQoKaW50IG1haW4oKXsKICAgIGludCBuOwogICAgY2luPj5uOwogICAgdmVjdG9yPGludD5BKG4pOwogICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgY2luPj5BW2ldOwogICAgfQoKICAgIGludCBrLHA7CiAgICBjaW4+Pms+PnA7CiAgICBpbnQgbnVtYmVyX29mX3BhaXJzPXNvbHZlKEEsayxwKTsKICAgIGNvdXQ8PCJOdW1iZXIgb2YgcGFpcnMgdGhhdCBhcmUgdmFsaWQ6ICI8PG51bWJlcl9vZl9wYWlyczw8ZW5kbDsKICAgIHJldHVybiAwOwp9