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