#include using namespace std; #define rep(i,n) for(int i=0; i<(n); i++) #define rep2(i,x,n) for(int i=x; i<(n); i++) #define ALL(n) begin(n),end(n) #define INF ((1<<30)-1) #define LINF (1LL<<60) #define EPS (1e-10) typedef long long Int; typedef pair P; typedef pair pint; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star; long long modpow(long long a, long long n, long long mod) { long long res = 1; if((a%mod==0)&&(n==0)) return 0; while (n > 0) { if (n & 1) res = res * a % mod; a = a * a % mod; n >>= 1; } return res; } int main() { cin.tie(0); ios::sync_with_stdio(false); string s; cin>>s; int a,b,c; a=(Int)(s[0]-'0'); b=(Int)(s[2]-'0'); c=(Int)(s[4]-'0'); Int mod=1000000007; Int fi=modpow(modpow(a,b,mod),c,mod); Int af=modpow(a,modpow(b,c,mod-1),mod); cout<