package main import ( "fmt" ) const MOD = 1000000007 func modpow(a int, n int, mod int) int { m := 1 for n > 0 { if n&1 == 1 { m = (m * a) % mod } a = (a * a) % mod n >>= 1 } return m } func main() { var A, B, C, K int fmt.Scan(&A, &B, &C) fmt.Scan(&K) ABC := (A * B % MOD) * C % MOD fmt.Println(modpow(ABC, modpow(2, K, MOD-1), MOD)) }