#include using namespace std; long long a, b, c, k; const long long M = 1e9 + 7; long long powm(long long a, long long b, long long m) { long long u = 1, v = a; while (b > 0) { if (b & 1) u = u * v % m; b >>= 1; v = v * v % m; } return u; } int main() { cin >> a >> b >> c >> k; a = a % M * (b % M) % M * (c % M) % M; cout << powm(a, powm(2, k, M - 1), M) << endl; }