import Control.Monad import qualified Data.ByteString.Char8 as B import Data.Maybe (mapMaybe) import Data.List (splitAt) readInts :: B.ByteString -> [Int] readInts = map fst . mapMaybe B.readInt . B.words getInts = liftM readInts B.getLine main = do [n, m] <- getInts as <- getInts let f [] cs = cs f (x:xs) cs = f xs ((last fs) : (init fs) ++ ss) where (fs, ss) = splitAt x cs in print $ head $ f as [1..n]