#include<iostream>
#include<vector>
#include<list>

using namespace std;

long long p=(long long) 1e9 + 7;

long long powmod(long long a, long long n, long long mod) {
		return n != 0 ? powmod(a * a % mod, n / 2, mod) * (n % 2 == 1 ? a : 1) % mod : 1;
}

int main() {
		long long A, B, C, K;
		cin >> A >> B >> C;
		cin >> K;
		long long prd = A * B % p * C % p;
		cout << powmod(prd, powmod(2, K, p - 1), p) << endl;
}