#include <bits/stdc++.h>
using namespace std;
long long K = 1000000007;
long long gcd(long long a, long long b, long long& x, long long& y) {
  if (a == 0) {
    x = 0;
    y = 1;
    return b;
  }
  long long x1, y1;
  long long d = gcd(b % a, a, x1, y1);
  x = y1 - (b / a) * x1;
  y = x1;
  return d;
}
int32_t main() {
  long long n, m;
  cin >> n >> m;
  long long ans = n + 1 - m;
  for (long long i = 0; i < m; i++) {
    ans *= (2 * n + 2);
    ans %= K;
  }
  long long x, y;
  gcd(n + 1, K, x, y);
  x *= ans;
  x %= K;
  if (x < 0) x += K;
  cout << x << endl;
  return 0;
}
