use std::cmp::Reverse; use proconio::input; fn main() { input! { (n, k): (usize, usize), mut aa: [usize; n], } aa.sort_unstable_by_key(|&a| Reverse(a)); let calc_rem = |bit: usize| { (0..n - 1) .filter(|&i| bit >> i & 1 == 1) .fold(k, |acc, i| acc % aa[i]) % aa[n - 1] }; let ans = (0..1 << n - 1).map(calc_rem).max().unwrap(); println!("{}", ans); }