#include #define int long long using namespace std; const int M=1e9+7,P=1000000013000000042; bool flag; int mul(int a,int b,int p) { int ans=0; while(b) { if(b&1) { ans+=a; if(ans>=p) flag=true,ans%=p; } (a+=a)%=p,b>>=1; } return ans; } int power(int a,int b,int p) { int ans=1; while(b) { if(b&1) ans=mul(ans,a,p); a=mul(a,a,p),b>>=1; } return ans; } signed main() { int a,b,c; scanf("%lld^%lld^%lld",&a,&b,&c); printf("%lld ",power(power(a,b,M),c,M)); flag=false; int k=power(b,c,P)+P*flag; printf("%lld",power(a,k,M)); return 0; }