lastWork :: [Int] -> Int lastWork (w : d : _) = lastWork' w d where lastWork' w' 1 = w' lastWork' w' d' = lastWork' (w' - w' `div` (d' * d')) (d' - 1) main :: IO () main = print . lastWork . map read . lines =<< getContents