import Control.Monad.State main :: IO () main = do w <- readLn d <- readLn print $ evalState simulate (w,d) simulate :: State (Int, Int) Int simulate = do (w,d) <- get put (w-w`div`d^2,d-1) if d == 1 then return w else simulate