N, p = map(int, input().split()) mod = 10**9 + 7 dp = [0 for i in range(2*10**6+1)] dp[1] = 1 for i in range(2, 2*10**6+1): dp[i] = p*dp[i-1] + dp[i-2] dp[i] %= mod ans = sum(dp[:N])**2 for i in range(N): ans += dp[i]**2 print((ans//2) % mod)