use std::io; fn main() { let nm: Vec = { let mut s = String::new(); io::stdin().read_line(&mut s); s.trim().split_whitespace().map(|x| x.parse().unwrap()).collect() }; let n = nm[0]; let m = nm[1]; let k: u32 = { let mut s = String::new(); io::stdin().read_line(&mut s); s.trim().parse().unwrap() }; let mut a: Vec = { (1..n).into_iter().map(|_| { let mut s = String::new(); io::stdin().read_line(&mut s); s.trim().parse().unwrap() }).collect() }; a.sort(); for i in 0..a.len() { let us = k + a[i]; let mut gt_us = 0; let mut tail = a.len() - 1; if tail == i { tail -= 1; } for head in 0..a.len() { if head == i { continue; } if head >= tail { break; } if a[head] + a[tail] > us { gt_us += 1; if gt_us >= m { break; } tail -= 1; if tail == i { tail -= 1; } continue; } } if gt_us < m { println!("{}", a[i]); return; } } println!("-1"); }