use std::collections::VecDeque; 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 base: VecDeque = (0..n).collect(); let mut result: Vec = vec![]; for i in 0..n-k { if i % 2 == 0 { result.push(base.pop_front().unwrap()); } else { result.push(base.pop_back().unwrap()); } } for _ in 0..k { result.push(result[result.len()-1]); } println!("{}", result.iter().map(|i| i.to_string()).collect::>().join(" ")); }