#include <bits/stdc++.h>
#define ll long long
#define N 500005
using namespace std;
int n;
ll X[N],k;
ll power(ll x,ll POWER,ll MOD)
{
ll ret=1;
while(POWER>0){
if(POWER&1)
ret=(ret*x)%MOD;
x=(x*x)%MOD;
POWER>>=1;
}
return ret%=MOD;
}
void init()
{
for(int i=0;i<n;++i)
cin >> X[i];
cin >> k;
}
ll dfs(ll now,ll MOD)
{
if(now==n-1)
return X[now];
ll nextMOD=MOD,tmp=MOD;
for(ll i=2;i*i<=tmp;++i){
if(tmp%i==0)
nextMOD=nextMOD/i*(i-1);
while(tmp%i==0){
tmp/=i;
}
}
if(tmp!=1)
nextMOD=nextMOD/tmp*(tmp-1);
return power(X[now],dfs(now+1,nextMOD),MOD);
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
while(cin >> n && n!=0){
init();
cout << dfs(0,k) << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgTiA1MDAwMDUKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbjsKbGwgWFtOXSxrOwoKbGwgcG93ZXIobGwgeCxsbCBQT1dFUixsbCBNT0QpCnsKCWxsIHJldD0xOwoJd2hpbGUoUE9XRVI+MCl7CgkJaWYoUE9XRVImMSkKCQkJcmV0PShyZXQqeCklTU9EOwoJCXg9KHgqeCklTU9EOwoJCVBPV0VSPj49MTsKCX0KCXJldHVybiByZXQlPU1PRDsKfQoKdm9pZCBpbml0KCkKewoJZm9yKGludCBpPTA7aTxuOysraSkKCQljaW4gPj4gWFtpXTsKCWNpbiA+PiBrOwp9CgpsbCBkZnMobGwgbm93LGxsIE1PRCkKewoJaWYobm93PT1uLTEpCgkJcmV0dXJuIFhbbm93XTsKCglsbCBuZXh0TU9EPU1PRCx0bXA9TU9EOwoJZm9yKGxsIGk9MjtpKmk8PXRtcDsrK2kpewoJCWlmKHRtcCVpPT0wKQoJCQluZXh0TU9EPW5leHRNT0QvaSooaS0xKTsKCQl3aGlsZSh0bXAlaT09MCl7CgkJCXRtcC89aTsKCQl9Cgl9CglpZih0bXAhPTEpCgkJbmV4dE1PRD1uZXh0TU9EL3RtcCoodG1wLTEpOwoJcmV0dXJuIHBvd2VyKFhbbm93XSxkZnMobm93KzEsbmV4dE1PRCksTU9EKTsKfQoKaW50IG1haW4oKQp7Cglpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKCWNpbi50aWUobnVsbHB0cik7CWNvdXQudGllKG51bGxwdHIpOwoKCXdoaWxlKGNpbiA+PiBuICYmIG4hPTApewoJCWluaXQoKTsKCQljb3V0IDw8IGRmcygwLGspIDw8IGVuZGw7Cgl9CgoJcmV0dXJuIDA7Cn0K