n, p = map(int, input().split()) fib = [0, 1] for i in range(n - 2): fib.append((fib[-1] * p + fib[-2]) % (10 ** 9 + 7)) cnt = 0 for i in fib: cnt += i ** 2 print(((sum(fib) ** 2 + cnt) // 2) % (10 ** 9 + 7) if not (n == 1 and p == 1) else 0)