#include <bits/stdc++.h>
using namespace ::std;
const long long maxn = 2e5 + 1000;
const long long mod = 1e9 + 7;
const long long inf = 1e9 + 500;
int di;
long long poww(long long a, long long b) {
  long long ans = 1;
  di++;
  while (b) {
    if (b & 1) {
      di++;
      ans = (ans * a) % mod;
    }
    a = (a * a) % mod;
    di++;
    b = (b / 2);
  }
  return ans;
}
int main() {
  long long x, k;
  di++;
  cin >> x >> k;
  if (x == 0) {
    di++;
    cout << 0;
    return 0;
  }
  x %= mod;
  di++;
  long long v = (x * poww(2, k + 1)) % mod;
  di++;
  long long u = (poww(2, k) + mod - 1) % mod;
  cout << (v - u + mod) % mod;
  return 0;
}
