mod = 10 ** 9 + 7 class counting: def __init__(self, n): self.n = n self.fa = [1] * (self.n + 1) self.fi = [1] * (self.n + 1) for i in range(1, self.n + 1): self.fa[i] = self.fa[i - 1] * i % mod self.fi[i] = pow(self.fa[i], mod - 2, mod) def comb(self, n, r): if n < r:return 0 if n < 0 or r < 0:return 0 return self.fa[n] * self.fi[r] % mod * self.fi[n - r] % mod def per(self, n, r): if n < r:return 0 if n < 0 or r < 0:return 0 return self.fa[n] * self.fi[n - r] % mod n, m = map(int, input().split()) C = counting(m + 1) ans = 0 for i in range(m + 1): cur = C.comb(m, i) * pow(i, n, mod) % mod if (m - i) % 2: cur *= -1 ans += cur ans %= mod print(ans)