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. 
/* @@@@@@@@@@@@@@@@@@@@@@@
 * @@@ Doston Akhmedov @@@
 * @@@@@@@@@@@@@@@@@@@@@@@
 */

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Locale;
import java.util.StringTokenizer;

public class r_275_c {
	static StringTokenizer st;
	static BufferedReader br;
	static PrintWriter pw;

	static class sort implements Comparable<sort> {
		int a, b;

		public sort(int a, int b) {
			this.a = a;
			this.b = b;
		}

		public int compareTo(sort arg0) {
			if (this.a == arg0.a)
				return (this.b - arg0.b);
			return -(this.a - arg0.a);
		}
	}

	public static void main(String[] args) throws IOException {
		Locale.setDefault(Locale.US);
		br = new BufferedReader(new InputStreamReader(System.in));
		pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
				System.out)));
		// gfile();
		int n = nextInt(), k = nextInt(),t=k;
		int l = 1, r = n, p = 0;
		int a[] = new int[n + 1];
		for (int i = 1; i <= n; i++) {
			if (i % 2 == 1 && k > 1) {
				a[++p] = r;
				r--;
				k--;
			} else if (i % 2 == 0 && k > 1) {
				a[++p] = l;
				l++;
				k--;
			}
		}
		for (int i = l; i <= r; i++) {
			a[++p] = i;
		}
		int cnt = 0;
		k=t;
		boolean used[] = new boolean[n + 1];
		for (int i = 1; i <= p - 1; i++) {
			if (!used[Math.abs(a[i + 1] - a[i])]) {
				cnt++;
				used[Math.abs(a[i + 1] - a[i])] = true;
			}
		}
		for (int i = 1; i <= p; i++) {
			if (cnt != k) {
				if (a[i] == a[i - 1]+1) {
					int q = a[i + 1];
					a[i + 1] = a[i];
					a[i] = q;
					cnt++;
				}
			}
			pw.print(a[i] + " ");
		}
		pw.close();
	}

	private static void gfile() throws IOException {
		br = new BufferedReader(new FileReader(new File("input.txt")));
		pw = new PrintWriter(new BufferedWriter(new FileWriter(new File(
				"output.txt"))));
	}

	private static int nextInt() throws IOException {
		return Integer.parseInt(next());
	}

	private static long nextLong() throws IOException {
		return Long.parseLong(next());
	}

	private static double nextDouble() throws IOException {
		return Double.parseDouble(next());
	}

	private static String next() throws IOException {
		while (st == null || !st.hasMoreTokens())
			st = new StringTokenizer(br.readLine());
		return st.nextToken();
	}
}
