module Main where import Control.Monad import qualified Data.IntMap.Lazy as M fiboMod :: Int -> Int -> Int fiboMod n d = f n where memo = M.fromList $ fmap (\i -> (i, f i)) [1 .. n] f 1 = 0 `mod` d f 2 = 1 `mod` d f x = (memo M.! (x - 2) + memo M.! (x - 1)) `mod` d main :: IO () main = do [n, m] <- fmap read . words <$> getLine :: IO [Int] print $ fiboMod n m