k,M=map(int,input().split())
k=pow(2,k,M*M-1)
mul=lambda a,b:[(a[0]*b[0]+3*a[1]*b[1])%M,(a[1]*b[0]+b[1]*a[0])%M]
x=[2,1]
e=[1,0]
while k>0:
 if k%2:e=mul(e,x)
 x=mul(x,x);k//=2
print((2*e[0]-2)%M)