ks = [[1, 1], [1, 0]] N, M = map(int, input().split()) N -= 1 def mp(a, b): c = [[0, 0], [0, 0]] for i in range(2): for j in range(2): for k in range(2): c[i][j] += a[i][k] * b[k][j] c[i][j] %= M return c A = [[1, 0], [0, 1]] for i in range(N.bit_length()): if (N >> i) & 1: A = mp(A, ks) ks = mp(ks, ks) print(A[1][0])