MOD = 10**9 + 7

P, K = map(int, input().split())

dp0 = 1  # initially at 0
dpnz = 0

for _ in range(K):
    new_dp0 = (( (P + 1) * dp0 ) % MOD + (2 * dpnz) % MOD) % MOD
    new_dpnz = (( (P - 1) * dp0 ) % MOD + ( (2 * (P - 1) % MOD ) * dpnz ) % MOD) % MOD
    dp0, dpnz = new_dp0, new_dpnz

print(dp0 % MOD)