N,M = map(int,input().split()) def mul(A,B): l = len(A) m = len(A[0]) n = len(B[0]) C = [[0] * n for i in range(l)] for i in range(l): for j in range(n): for k in range(m): C[i][j] += A[i][k] * B[k][j] C[i][j] %= M return C def matrixpow(A,n): N = len(A) UNIT = [[1 if j == i else 0 for j in range(N)] for i in range(N)] R = UNIT if n == 0: return R if n == 1: return A if n % 2 == 1: R = A T = matrixpow(A,n//2) return mul(mul(T,T),R) A = [[1,1],[1,0]] B = [[1],[0]] if N >= 2: C = matrixpow(A,N-2) D = mul(C,B) print(D[0][0])