#include /*unsigned long long int faktorial(unsigned long long int x) { if (x <= 1) return 1; else return (x * faktorial(x - 1)); }*/ int main() { int A, B, K, C; unsigned int i; // unsigned long long int mocnina; // printf("%lf", (pow(2, 30) / 1000000007)); // printf("%llu", (unsigned long long int) ((pow(2, 1000) * 1000) / 2) % 1000000007); // 582344007 // 211602592 scanf("%d %d %d %d", &A, &B, &K, &C); // unsigned long long int *mocnina = (unsigned long long int *) malloc(sizeof(unsigned long long int) * K); unsigned long long int mocnina = 1; // *mocnina = 1; for (i = 0; i < K; i++) { mocnina = (mocnina * 2) % 1000000007; // printf("%llu\n", mocnina); } printf("%llu\n", ((mocnina * K) / 2) % 1000000007); return 0; }