#include <bits/stdc++.h>
using namespace std;
long long int po(long long int x, long long int y) {
  long long int res = 1;
  x = x % 1000000007;
  while (y > 0) {
    if (y & 1) res = (res * x) % 1000000007;
    y = y >> 1;
    x = (x * x) % 1000000007;
  }
  return res % 1000000007;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  long long x, k;
  cin >> x >> k;
  if (x == 0) {
    cout << 0;
    return 0;
  }
  long long y = po(2, k + 1);
  x = x % 1000000007;
  y = (y * x) % 1000000007;
  long long z = po(2, k);
  z = (z - 1 + 1000000007) % 1000000007;
  y = (y - z + 1000000007) % 1000000007;
  cout << y;
}
