N, M = map(int, input().split()) MOD = 10 ** 9 + 7 modinv = lambda a, mod=MOD: pow(a, -1, mod) if M > N: print(0) exit() ans = 0 comb = 1 for i in range(M + 1): ans += pow(-1, M - i) * comb * pow(i, N, MOD) ans %= MOD comb = comb * (M - i) * modinv(i + 1) % MOD print(ans)