#[allow(dead_code)] mod cc_input { pub fn read_string() -> String { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); return s.trim().to_string(); } pub fn read() -> T { read_string().parse().ok().unwrap() } pub fn read_vec() -> Vec { read_string() .split_whitespace() .map(|e| e.trim().parse().ok().unwrap()) .collect() } pub fn read_pair() -> (T, T) { let mut xs: Vec = read_vec(); xs.reverse(); return (xs.pop().unwrap(), xs.pop().unwrap()); } pub fn drop_line() { read_string(); } } fn main() { let l: isize = cc_input::read(); cc_input::drop_line(); let mut ws: Vec = cc_input::read_vec(); let (mut _sum, mut _count) = (0, 0); ws.sort(); for e in ws.iter() { _sum += e; if _sum > l { break; } _count += 1; } println!("{}", _count); }