fn g() -> Vec { let mut s = String::new(); std::io::stdin().read_line(&mut s).ok(); s.split_whitespace().flat_map(str::parse).collect() } fn main() { let (n, mut v) = (g(), g()); v.sort(); let v: Vec<_> = v.windows(2).map(|a| (a[1] - a[0]).pow(2)).collect(); println!( "{}", v.windows(n[1] - 1) .map(|a| a.iter().sum::()) .min() .unwrap() ) }