use proconio::input; use itertools::Itertools; fn rec(count: usize, rest: usize, w: Vec) -> usize { if rest <= w[count] { count } else { rec(count+1, rest - w[count], w) } } fn main() { input! { l: usize, n: usize, w: [usize; n], } let sorted: Vec = w.into_iter().sorted().collect(); println!("{}", rec(0, l, sorted)); }