N, p = map(int, input().split()) MOD = 1000000007 a = [0] * N a[0] = 0 a[1] = 1 for i in range(2, N): a[i] = (p * a[i-1] + a[i-2]) % MOD revcum = [0] * N c = 0 for i, v in enumerate(a[::-1]): c = (c + v) % MOD revcum[i] = c ans = 0 for i, j in zip(a, revcum[::-1]): ans += i * j % MOD print(ans % MOD)