fun readInt () = valOf (TextIO.scanStream (Int.scan StringCvt.DEC) TextIO.stdIn) fun insertionSort l = let fun insert x [] = [x] | insert x (y::ys) = if x <= y then x::y::ys else y::(insert x ys) in foldl (fn (x, acc) => insert x acc) [] l end val () = let val l = readInt () val n = readInt () val w_s = List.tabulate (n, fn _ => readInt ()) val sorted = insertionSort w_s fun findAns [] _ = 0 | findAns (h::tl) space = if h <= space then 1 + findAns tl (space - h) else 0 val ans = findAns sorted l in print ((Int.toString ans) ^ "\n") end