#!/usr/bin/env python3 # %% import sys read = sys.stdin.buffer.read readline = sys.stdin.buffer.readline readlines = sys.stdin.buffer.readlines MOD = 10**9 + 7 # %% N, M = map(int, read().split()) # %% fact = [1] * (M + 1) for n in range(1, M + 1): fact[n] = fact[n - 1] * n % MOD fact_inv = [1] * (M + 1) fact_inv[M] = pow(fact[M], MOD - 2, MOD) for n in range(M, 0, -1): fact_inv[n - 1] = fact_inv[n] * n % MOD # %% x = 0 for i in range(M): comb = fact[M] * fact_inv[i] * fact_inv[M - i] % MOD p = pow(M - i, N, MOD) x += (-1) ** i * comb * p print(x % MOD)