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 mut q: Vec<_> = r.iter().map(|r| r + a).filter(|&r| r <= n[1]).collect(); r.append(&mut q); }); r.sort(); println!("{}", r.last().unwrap()); }