#include<bits/stdc++.h>
using namespace std;
const int mod = 10007;
const int Eu = 10006;
const int N = 1234570;
typedef long long LL;
typedef __int128 _i;
int n;
LL mi[N];
LL sum = 1;
LL read()
{
LL k = 0, op = 1;
char c = getchar();
while(c < '0'||c > '9')
{
if(c == '-') op = -1;
c = getchar();
}
while(c >='0'&& c<= '9')
{
k = k*10 + c -'0';
c = getchar();
}
return k*op;
}
int Eular_lower(_i m)
{
if(m < Eu)
return m;
else
return m%Eu+Eu;
}
_i power(_i a,_i b,int p)
{
_i ans = 1%p;
for(;b;b>>=1){
if(b&1) ans = ans * a;
ans = Eular_lower( ans );
a = (long long)a * a % p;
}
return ans;
}
int main()
{
n = read();
for(int i=1;i<=n;i++)
mi[i] = read();
for(int i=1;i<=n;i++)
mi[i] = Eular_lower(mi[i]);
sum = mi[n];
for(int i = n - 1;i >= 2;i --)
{
sum = power(mi[i],sum,Eu);
sum += Eu;
}
LL temp = power(mi[1],sum,mod);
printf("%lld",temp);
return 0;
}