#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