mod = 10 ** 9 + 7 n, k = map(int, input().split()) fact = [1] * (n + 1) permk = [1] * (n + 1) for i in range(n): fact[i + 1] = fact[i] * (i + 1) % mod permk[i + 1] = permk[i] * (k - i) % mod ifact = [1] * (n + 1) ifact[n] = pow(fact[n], mod - 2, mod) for i in range(n)[::-1]: ifact[i] = ifact[i + 1] * (i + 1) % mod ans = sum(permk[n - i] * ifact[n - i] * fact[n - 1] * ifact[n - 1 - i] * ifact[i] * pow(2, n - 1 - i, mod) for i in range(n)) % mod print(ans)