#include typedef long long int ln; int modPow(ln r,int n,int mod){ ln res=1; ln t=r; while(n>0){ res=res*(n&0x01?t:1)%mod; t=t*t%mod; n>>=1; } return res; } void run(void){ ln a,b,c; scanf("%lld^%lld^%lld",&a,&b,&c); const int mod=1000000007; int a_bc=modPow(a%mod,(int)((b%(mod-1))*c%(mod-1)),mod); int a_b_c=modPow(a%mod,modPow(b%(mod-1),c%(mod-2),mod-1),mod); printf("%d %d\n",a_bc,a_b_c); return; } int main(void){ run(); return 0; }