# D P, K = list(map(int, input().split())) mod = 10**9 + 7 z_i, n_i = 1, 0 for i in range(K): z_i, n_i = (P + 1) * z_i + 2 * n_i, (P - 1) * z_i + 2 * (P - 1) * n_i z_i, n_i = z_i % mod, n_i % mod print(z_i)