#include<bits/stdc++.h>
using namespace std;
long long qpow(long long x,long long k,long long mod){
long long ans=1;
x%=mod;
while(k){
if(k&1)ans=(ans*x)%mod;
x=(x*x)%mod;
k>>=1;
}
return ans;
}
long long qmod(long long a,long long b,long long mod){
long long ans;
ans=a*qpow(b,mod-2,mod);
return (ans%mod+mod)%mod;
}
long long n,p,k,a[2000005],tms=1,sm=0,bs=0;
long long qzj[2000005],hzj[2000005];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>p>>k;
bs=k;
for(int i=1;i<=n;i++){
cin>>a[i];
tms=(tms*a[i])%p;
}
qzj[0]=1;
hzj[n+1]=1;
for(int i=1;i<=n;i++)qzj[i]=(qzj[i-1]*a[i])%p;
for(int i=n;i>0;i--)hzj[i]=(hzj[i+1]*a[i])%p;
for(int i=1;i<=n;i++){
sm=(sm+bs*(qzj[i-1]%p*hzj[i+1])%p)%p;
bs=(bs*k)%p;
}
cout<<qmod(sm,tms,p);
}