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 mut L: i64 = lv[0].parse().unwrap(); // 箱の幅 let N: i64 = nv[0].parse().unwrap(); // ブロックの数 let mut W: Vec<_> = w.trim().split(' ').collect(); // 各ブロックの幅 // 小さい順でブロックを箱に詰めていくのでソートする W.sort(); let mut count = 0; let mut sum: i64 = 0; for item in W.iter() { let x: i64 = item.to_string().parse().unwrap(); sum += x; if sum > L { break; } count += 1; } println!("{}", count); }