#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;

const ll MOD = 1000000007;

ll modpow(ll x, ll n, ll m){
    ll res = 1, r = x;
    while(n){
        if(n & 1) res = res * r % m;
        r = r * r % m;
        n >>= 1;
    }
    return res;
}

int main()
{
    ll a, b, c;
    ll k;
    cin >> a >> b >> c >> k;
    ll p = modpow(2, k, MOD - 1);
    cout << modpow(a, p, MOD) * modpow(b, p, MOD) % MOD * modpow(c, p, MOD) % MOD << endl;
}