import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] arr = new int[n];
// 1. 填充最大的k个数到偶数位置(0, 2, 4, ...)
int largeNum = n - k + 1; // 最大数的起始值(如n=5,k=2时,起始为4)
for (int i = 0; i < k; i++) {
int pos = 2 * i; // 第i个最大数的目标偶数位置
if (pos >= n) break; // 位置超出数组长度,停止放置
arr[pos] = largeNum++;
}
// 2. 填充剩余的小数到所有未被占用的位置
int smallNum = n - k; // 小数的起始值(如n=5,k=2时,起始为3)
for (int i = 0; i < n; i++) {
// 检查当前位置是否已被最大数占用(即是否是有效的偶数位置)
int idx = i / 2; // 若i是偶数位置,idx为0,1,...k-1
boolean isLargePos = (i == 2 * idx) && (idx < k) && (2 * idx < n);
if (!isLargePos) { // 未被占用,填充小数
arr[i] = smallNum--;
}
}
// 输出结果
for (int num : arr) {
System.out.print(num + " ");
}
}
}