fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) fun findAns [] cards = List.hd cards | findAns (h::tl) cards = let val taked = List.take (cards, h) val dropped = List.drop (cards, h) val nextTop = List.hd (List.rev taked) val nextFirstHalf = List.rev (List.tl (List.rev taked)) in findAns tl (nextTop :: (nextFirstHalf @ dropped)) end val () = let val n = readInt () val m = readInt () val a_s = List.tabulate (m, fn _ => readInt ()) val initialCards = List.tabulate (n, fn i => i + 1) val ans = findAns a_s initialCards in print (Int.toString ans ^ "\n") end