#include <bits/stdc++.h>
#define rep(i, l, r) for (int i = (l); i < (r); i++)
using namespace std;

typedef long long ll;

ll mod_pow(ll x, ll n, ll mod) {
    ll res = 1;
    while (n > 0) {
        if (n & 1) res = res * x % mod;
        x = x * x % mod;
        n >>= 1;
    }
    return res;
}

int main() {
    ll A, B, C, K, MOD = 1000000007;
    cin >> A >> B >> C >> K;
    ll P = mod_pow(2, K, MOD - 1);
    A = mod_pow(A % MOD, P, MOD);
    B = mod_pow(B % MOD, P, MOD);
    C = mod_pow(C % MOD, P, MOD);
    cout << A * B % MOD * C % MOD << endl;
}