using System; using System.Collections.Generic; using System.Linq; class Solution { static Dictionary memo = new Dictionary(); static int GetFib(int n, int m) { if(n == 1) { return 0; } if (n == 2) { return 1%m; } if (memo.ContainsKey(n)) { return memo[n]; } var fib = (GetFib(n - 1,m) + GetFib(n - 2, m))% m; memo[n] = fib; return fib; } static void Main() { var vals = Console.ReadLine().Split(' ').Select(int.Parse).ToArray(); var n = vals[0]; var m = vals[1]; Console.WriteLine(GetFib(n,m)); } }