N, p = map(int, input().split()) mod = 10 ** 9 + 7 P = [1] * (N + 1) for i in range(N): P[i + 1] = P[i] * p P[i + 1] %= mod invp = pow(p-1, mod-2, mod) ans = 0 A = [0] * (N + 1) A[1] = 1 for i in range(2, N + 1): A[i] = p * A[i - 1] + A[i - 2] A[i] %= mod Ac = [0] * (N + 1) Ac[0] = A[0] for i in range(1, N + 1): Ac[i] = Ac[i - 1] + A[i] Ac[i] %= mod for i in range(1, N): ans += A[i] * Ac[i] ans %= mod print(ans)