A, B, K, C, = input().split() A = int(A) B = int(B) K = int(K) C = int(C) K_max = K if K == 0: print(0) elif C != A and C != B: print(0) else: """ # verze pro C++ M = [512, 256, 128, 64, 32, 16, 8, 4, 2, 1] pom = [0,0,0,0,0,0,0,0,0,0] novy = [] hodnoty = [518219190, 792845273, 279632277, 582344008,294967268,65536,256,16,4,2] for i in range(10): if K >= M[i]: K -= M[i]; pom[i] = 1; vysledek = 1 for i in range(10): if pom[i] == 1: vysledek *= hodnoty[i] vysledek = vysledek % 1000000007 vysledek = int(vysledek * K_max / 2) vysledek = vysledek % 1000000007""" vysledek = ((2 ** (K - 1)) * K) % 1000000007 print(vysledek)