N, M = map(int, input().split()) if N < M: print(0) exit(0) r, c = 0, 1 for i in range(M): r += (-1) ** i * c * pow(M - i, N, (10 ** 9 + 7)) r %= (10 ** 9 + 7) c *= M - i c %= (10 ** 9 + 7) c *= pow(i + 1, (10 ** 9 + 7) - 2, (10 ** 9 + 7)) c % (10 ** 9 + 7) print(r)