#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e6+10;
int a[N],s[N],t[N],inv[N];
int exgcd(int a,int b,int &x,int &y)
{
if(b==0)
{
x=1,y=0;
return a;
}
int xx,yy,d;
d=exgcd(b,a%b,xx,yy);
x=yy,y=xx-a/b*yy;
return d;
}
int quickpow(int a,int b,int p)
{
int res=1;
while(b)
{
if(b&1) res=res*a%p;
a=a*a%p;
b>>=1;
}
return res;
}
int read()
{
int x=0,flag=1;char c;
while((c=getchar())<'0' || c>'9') if(c=='-') flag=-1;
while(c>='0' && c<='9') x=(x<<3)+(x<<1)+(c^48),c=getchar();
return x*flag;
}
signed main()
{
int n,p,k;
n=read(),p=read(),k=read();
int ans=0;
s[0]=1;
for(int i=1;i<=n;i++)a[i]=read();
for(int i=1;i<=n;i++)s[i]=s[i-1]*a[i]%p;
t[n]=quickpow(s[n],p-2,p);
for(int i=n-1;i;i--)t[i]=t[i+1]*a[i+1]%p;
int c=k;
for(int i=1;i<=n;i++) {
ans=(ans+c*(s[i-1]*t[i]))%p;
c*=k;
}
cout<<ans;
}