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;
long long int modpow(long long int a, long long int n, long long int temp) {
  long long int res = 1, y = a;
  while (n > 0) {
    if (n & 1) res = (res * y) % temp;
    y = (y * y) % temp;
    n /= 2;
  }
  return res % temp;
}
long long int gcd(long long int a, long long int b) {
  long long int c;
  while (a != 0) {
    c = a;
    a = b % a;
    b = c;
  }
  return b;
}
void seive() {
  int i, j;
  int MAX = 1000006;
  int isprime[1000006];
  isprime[0] = isprime[1] = 1;
  for (i = 4; i < MAX; i += 2) isprime[i] = 1;
  for (i = 3; i * i < MAX; i += 2) {
    if (!isprime[i]) {
      for (j = i * i; j < MAX; j += 2 * i) {
        isprime[j] = 1;
      }
    }
  }
}
int main() {
  int n, k, i, j;
  scanf("%d", &n);
  scanf("%d", &k);
  int a[100005];
  a[0] = 1;
  j = 1;
  for (i = k; i >= 1; i--) {
    if (j % 2 == 1)
      a[j++] = (a[j - 1] + i);
    else
      a[j++] = (a[j - 1] - i);
  }
  for (i = k + 2; i <= n; i++) {
    a[j++] = i;
  }
  for (i = 0; i < j; i++) {
    cout << a[i] << " ";
  }
  cout << endl;
  return 0;
}
