fun quicksort [] = [] | quicksort (h::tl) = let val (s, b) = List.foldl (fn (x, (small, big)) => if x <= h then (x::small, big) else (small, x::big)) ([], []) tl in (quicksort s) @ [h] @ (quicksort b) end fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) val () = let val _ = readInt () val digits_list = List.tabulate (9, fn i => let val c = readInt () in List.tabulate (c, fn _ => i + 1) end) val digits = List.concat digits_list val sorted_digits = List.rev (quicksort digits) val ans = String.concat (List.map (fn d => Int.toString d) sorted_digits) in print (ans ^ "\n") end