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. 
import java.io.*;
import java.math.BigInteger;
import java.util.*;
import java.util.Map.Entry;

public class A {

	void run() throws IOException {
		int n = ni(), k = ni();
		int[] d = new int[n];

		int a = 1 - k, b = 1, c = n - k;

		while (c < n) {
			d[c++] = a;
			a += 3;
			if (c == n) {
				break;
			}
			d[c++] = b;
			b += 1;

		}

		for (int i = 1; i <= n; i++) {
			pw.print(i - d[i - 1]);
			pw.print(' ');
		}
		pw.println();

	}

	void skip() throws IOException {
		while (br.ready()) {
			br.readLine();
		}
	}

	int[][] nm(int a_len, int a_hei) throws IOException {
		int[][] _a = new int[a_len][a_hei];
		for (int i = 0; i < a_len; i++)
			for (int j = 0; j < a_hei; j++)
				_a[i][j] = ni();
		return _a;
	}

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

	boolean hasNext() throws IOException {
		while (st == null || !st.hasMoreTokens()) {
			String line = br.readLine();
			if (line == null) {
				return false;
			}
			st = new StringTokenizer(line);
		}
		return true;
	}

	int[] na(int a_len) throws IOException {
		int[] _a = new int[a_len];
		for (int i = 0; i < a_len; i++)
			_a[i] = ni();
		return _a;
	}

	int ni() throws IOException {
		return Integer.parseInt(next());
	}

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

	String nl() throws IOException {
		return br.readLine();
	}

	void tr(String debug) {
		if (!OJ)
			pw.println(" " + debug);
	}

	static PrintWriter pw;
	static BufferedReader br;
	static StringTokenizer st;
	static boolean OJ;

	public static void main(String[] args) throws IOException {
		OJ = System.getProperty("ONLINE_JUDGE") != null;
		pw = new PrintWriter(System.out);
		br = new BufferedReader(OJ ? new InputStreamReader(System.in) : new FileReader(new File("A.txt")));

		if (!OJ) {
			long timeout = System.currentTimeMillis();
			while (br.ready()) {
				new A().run();
				pw.println();
				pw.println("----------------------------------");
			}
			pw.println("time: " + (System.currentTimeMillis() - timeout));
		} else {
			new A().run();
		}
		// new A().stress();
		br.close();
		pw.close();
	}

}
