#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-1); i++) { mocnina = ((2*mocnina) % 1000000007); // printf("%llu\n", mocnina); } printf("%d\n", (int) ((mocnina * K) % 1000000007)); return 0; }