Permutation p is an ordered set of integers p1, p2, ..., pn, consisting of n distinct positive integers not larger than n. We'll denote as n the length of permutation p1, p2, ..., pn.

Your task is to find such permutation p of length n, that the group of numbers |p1 - p2|, |p2 - p3|, ..., |pn - 1 - pn| has exactly k distinct elements.

Input

The single line of the input contains two space-separated positive integers n, k (1 ≤ k < n ≤ 105).

Output

Print n integers forming the permutation. If there are multiple answers, print any of them.

Examples

Input

3 2


Output

1 3 2


Input

3 1


Output

1 2 3


Input

5 2


Output

1 3 2 4 5

Note

By |x| we denote the absolute value of number x. 
#include <bits/stdc++.h>
using namespace std;
typedef struct node {
  int index, rank;
  char name[1000], pos[1000];
} node;
int sortbyrank(const void *x, const void *y) {
  node *p = (node *)x;
  node *q = (node *)y;
  if (p->rank == q->rank)
    return p->index - q->index;
  else
    return p->rank - q->rank;
}
int sortdec(const void *x, const void *y) {
  int *a = (int *)x;
  int *b = (int *)y;
  if (*a == *b) return 0;
  return *a > *b ? -1 : +1;
}
int sortinc(const void *x, const void *y) {
  int *a = (int *)x;
  int *b = (int *)y;
  if (*a == *b) return 0;
  return *a > *b ? +1 : -1;
}
int main() {
  int k, n, a[1000000] = {0};
  cin >> n >> k;
  int i = 0, j = 1;
  while (i < n) {
    a[i] = j;
    i += 2;
    j++;
  }
  i = 1, j = n;
  while (i < n) {
    a[i] = j;
    i += 2;
    j--;
  }
  if (a[k] < a[k - 1])
    qsort(a + k, n - k, sizeof(int), sortdec);
  else
    sort(a + k, a + n);
  for (i = 0; i < n; i++) cout << a[i] << " ";
}
