#include <stdio.h>
#include <algorithm>
using namespace std;

int P, K;

int main()
{
	scanf ("%d %d", &P, &K);

	long long a = 1, b = 0;
	while (K--){
		long long c = a * (P + 1) + b * 2;
		long long d = a * (P - 1) + b * (2 * P - 2);
		a = c % 1000000007;
		b = d % 1000000007;
	}

	printf ("%lld\n", a);
	return 0;
}