fn getline() -> String{ let mut __ret=String::new(); std::io::stdin().read_line(&mut __ret).ok(); return __ret; } fn main() { let l = getline(); let n = getline(); let w = getline(); let lv: Vec<_> = l.trim().split(' ').collect(); let nv: Vec<_> = n.trim().split(' ').collect(); let ll: u32 = lv[0].parse().unwrap(); // 箱の幅 let _n: u32 = nv[0].parse().unwrap(); // ブロックの数 let mut ww: Vec<_> = w.trim().split(' ').collect(); // 各ブロックの幅 // 小さい順でブロックを箱に詰めていくのでソートする ww.sort(); let mut count: u32 = 0; let mut sum: u32 = 0; for item in ww.iter() { let x: u32 = item.to_string().parse().unwrap(); sum += x; if sum > ll { break; } count += 1; } println!("{}", count); }