# https://yukicoder.me/problems/no/978 MOD = 10 ** 9 + 7 def main(): N, p = map(int ,input().split()) fib = [0] * (N +1) fib[1] = 0 fib[2] = 1 for n in range(3, N +1): ans = p * fib[n - 1] ans %= MOD ans += fib[n - 2] ans %= MOD fib[n] = ans cum_fib_list = [0] * (N + 1) cum_fib = 0 for i in range(N + 1): cum_fib += fib[i] cum_fib %= MOD cum_fib_list[i] = cum_fib answer = 0 for i in range(1, N + 1): a = fib[i] cum_a = cum_fib_list[i] ans = (a * cum_a) % MOD answer += ans answer %= MOD print(answer) if __name__ == "__main__": main()