use std::io::Read; fn main() { let mut s = String::new(); std::io::stdin().read_to_string(&mut s).ok(); let n: Vec = s.split_whitespace().flat_map(str::parse).collect(); let mut r = vec![0]; n[2..].iter().for_each(|a| { let q: Vec<_> = r .iter() .flat_map(|r| if r + a <= n[1] { Some(r + a) } else { None }) .collect(); r.extend(q); }); r.sort(); println!("{}", r.last().unwrap()); }