1. ​确定好元素的位置​​:选择k个不相邻的位置,例如前k个奇数位置(1, 3, 5, ..., 2k-1)。这些位置必须保证互不相邻。
  2. ​填充好元素的值​​:在这些位置中填入最大的k个数,按从小到大的顺序排列。最后一个位置填入最大的数n,以确保后续元素不会成为好元素。
  3. ​填充剩余数值​​:剩下的数(1到n-k)按升序填入剩余的位置,确保它们不会成为好元素。
n, k = map(int, input().split())

# 生成好元素的位置(1-based的pos列表)
pos = [2 * i + 1 for i in range(k)]

# 检查位置是否超过n,这里假设输入是有效的,即2k-1 <=n
# 生成好元素的数值,从n-k+1到n,按顺序填充到pos中
good_values = list(range(n - k + 1, n + 1))

# 初始化排列数组
ans = [0] * n

# 将好元素的值填入对应的位置(注意转换为0-based的索引)
for i in range(k):
    ans[pos[i] - 1] = good_values[i]

# 生成剩下的数值,即不在good_values中的数,按升序排列
remaining_values = sorted(set(range(1, n + 1)) - set(good_values))

# 将剩下的数值填充到ans中的剩余位置(0-based)
remaining_index = 0
for i in range(n):
    if ans[i] == 0:
        ans[i] = remaining_values[remaining_index]
        remaining_index += 1

# 输出结果
print(' '.join(map(str, ans)))