P,K=map(int,input().split()) mod=10**9+7 DP=[[1,0]] for i in range(K): DP.append([0,0]) DP[i+1][0]=(DP[i][0]*(P+1)+DP[i][1]*2)%mod DP[i+1][1]=(DP[i][0]*(P-1)+DP[i][1]*(2*P-2))%mod print(DP[K][0])