use std::io::Read;

fn main() {
	let mut s = String::new();
	std::io::stdin().read_to_string(&mut s).ok();
	let n: Vec<usize> = 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());
}