[n,k]=list(map(int,input().split())) def myPow(a,b,c): rootB=int(b**0.5) amari=b-rootB**2 a1=1 a2=1 a3=1 ans=1 for i in range(0,rootB): a1*=a a1=a1%c for i in range(0,rootB): a2*=a1 a2=a2%c for i in range(0,amari): a3*=a a3=a3%c return a2*a3%c k=k%1000000007 kp=k*(k+3)%1000000007 kq=k*(k+1)%1000000007 if(kp%2!=0): kp+=1000000007 if(kq%2!=0): kq+=1000000007 p=int(kp/2) q=int(kq/2) print((myPow(p,n,1000000007)-myPow(q,n,1000000007))%1000000007)