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)