# -*- coding: utf-8 -*- """ No.526 フィボナッチ数列の第N項をMで割った余りを求める https://yukicoder.me/problems/no/526 """ import sys from sys import stdin input = stdin.readline Memo = [-1, 0, 1] def modfibo(N, M): global Memo if N <= len(Memo): return Memo[N] else: for i in range(len(Memo), N+1): Memo.append((Memo[-2] + Memo[-1])%M) return Memo[N] def main(args): N, M = map(int, input().split()) ans = modfibo(N, M) print(ans) if __name__ == '__main__': main(sys.argv[1:])