WA #2 Sub1
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,a[1000001];
int phi(int n){
int res=n;
for(int i=2;i*i<=n;++i){
if(n%i==0){
res=res/i*(i-1);
while(n%i==0) n/=i;
}
}
if(n>1) res=res/n*(n-1);
return res;
}
int qpow(int a,int b,int p){
int res=1;
for(;b;b>>=1,a=a*a%p)
if(b&1) res=res*a%p;
return res;
}
int solve(int x,int p){
if(x==n) return a[x]%p;
return qpow(a[x],solve(x+1,phi(p))+phi(p),p);
}
main(){
cin>>n;
for(int i=1;i<=n;++i) cin>>a[i];
cout<<solve(1,10007);
}