#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; using ull = unsigned long long; constexpr ll Mod=1e9+7; ll mod_pow(ll a,ll b,ll mod){ a%=mod; if(b==0)return 1; if(b==1)return a; ll res=mod_pow(a,b/2,mod)%mod; res*=res; res%=mod; if(b%2)res*=a; return res%mod; } int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); ll a,b,c; scanf("%lld^%lld^%lld",&a,&b,&c); printf("%lld ",mod_pow(mod_pow(a,b,Mod),c,Mod)); ll res=mod_pow(a,mod_pow(b,c,Mod-1),Mod); if(a%Mod==0)res=0; printf("%lld\n",res); }