MOD = 10**9 + 7 N, M = list(map(int, input().split())) def modinv(a): return pow(a, MOD - 2, MOD) temp_list = [1] for i in range(0, (M // 2)): temp_list.append(int(((temp_list[-1] * ((M - i)) % MOD) * (modinv((i + 1))) % MOD)) % MOD) before = 0 for i in range(1, M + 1): before = ((((temp_list[min([i, (M - i)])]) * pow(i, N, MOD)) % MOD) - before) % MOD print(before % MOD)