N,p=map(int,input().split())
Mod=10**9+7

if N==1:
    print(0)
    exit()

A=[0]*(N+1)
A[2]=1
for i in range(3,N+1):
    A[i]=(p*A[i-1]+A[i-2])%Mod

two_inv=pow(2,Mod-2,Mod)
A=A[1:]

X=(sum(A)**2)%Mod
Y=sum([a*a%Mod for a in A])%Mod
print(two_inv*(X+Y)%Mod)