use std::{collections::{BTreeMap, BinaryHeap}, cmp::Reverse}; fn main() { let mut nk = String::new(); std::io::stdin().read_line(&mut nk).ok(); let nk: Vec = nk.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let n = nk[0]; let k = nk[1]; let mut a = String::new(); std::io::stdin().read_line(&mut a).ok(); let a: Vec = a.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let mut result = 0usize; let mut minidx = n; let mut a = a.into_iter().skip(1).enumerate().collect::>(); a.sort_by_key(|&(i, v)| (Reverse(v), i%2, i)); for i in 0..k-1 { let (idx, val) = a[i]; minidx = idx.min(minidx); result += val; } for i in k-1..n-1 { let (idx, val) = a[i]; let minidx = idx.min(minidx); if minidx % 2 == 0 { result += val; break; } } println!("{}", result); }