import java.util.Scanner; public class Main{ static long mod=1000000007; static long pow(long a,long x,long m){ if(x==0) return 1; else if(x%2==0) return pow((a*a)%m,x/2,m)%m; else return (a*pow((a*a)%m,x/2,m))%m; } public static void main(String[] args){ Scanner sc=new Scanner(System.in); while(sc.hasNext()){ String[] str=(sc.next()).split("\\^"); long a=Long.valueOf(str[0]),b=Long.valueOf(str[1]),c=Long.valueOf(str[2]); long ab=pow(a,b,mod); ab=pow(ab,c,mod); long bc=pow(b,c,mod-1); bc=pow(a,bc,mod); System.out.println(ab+" "+bc); } } }