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.awt.Point;
import java.io.*;
import java.util.*;

public class Main {

	static MyScanner sc = new MyScanner();

	public static void main(String[] args) {
		// TODO Auto-generated method stub
//		long c1 = sc.nextLong(),c2 = sc.nextLong(),x = sc.nextLong(), y = sc.nextLong()  ;
//		long a = (c1),b = c2+1 ;
//		a = a + (c1)/x;
//		b = b + (c2)/y;
//		System.out.println(a+" "+b);
//		long ans1 = (Math.max(a, b));
//		long temp = c1;
//		c1 = c2 ; c2 = temp ;
//		a = (c1);b = c2+1 ;
//		a = a + (c1)/x;
//		b = b + (c2)/y;
//		System.out.println(a+" "+b);
//		long ans2 = (Math.max(a, b));
//		System.out.println(Math.min(ans2, ans1));
		
		int n = sc.nextint(),k = sc.nextint() - 1 ;
		boolean dp[] = new boolean[n+1] ;
		int dif = n - 1 ;
		boolean flag = true ;
		int now = 1 ;
		while(k-->0){
			if(flag){
				System.out.print(now+" ");
				dp[now] = true ;
				now += dif--;
				flag = false ;
			}else{
				System.out.print(now+" ");
				dp[now] = true ;
				now -= dif--;
				flag = true ;
			}
		}
		if(flag){
			for(int i = 1 ; i <= n ; i++)if(!dp[i])
				System.out.print(i+" ");
		}else
			for(int i = n ; i > 0 ; i--)if(!dp[i])
				System.out.print(i+" ");
	}
	
}

class MyScanner {
	BufferedReader br;
	StringTokenizer st;

	public MyScanner() {
		br = new BufferedReader(new InputStreamReader(System.in));
	}

	public int mod(long x) {
		// TODO Auto-generated method stub
		return (int) x % 1000000007;
	}

	public int mod(int x) {
		return x % 1000000007;
	}

	public ArrayList<Integer> getPrimes(int n) {
		// TODO Auto-generated method stub
		boolean arr[] = new boolean[n + 1];
		ArrayList<Integer> ans = new ArrayList<Integer>();
		for (int i = 2; i <= n; i++)
			if (!arr[i]) {
				ans.add(i);
				for (int j = i + i; j <= n; j += i)
					arr[j] = true;
			}
		return ans;
	}

	boolean hasNext() {
		if (st.hasMoreElements())
			return true;
		try {
			st = new StringTokenizer(br.readLine());
		} catch (IOException e) {
			e.printStackTrace();
		}
		return st.hasMoreTokens();
	}

	String next() {
		while (st == null || !st.hasMoreElements()) {
			try {
				st = new StringTokenizer(br.readLine());
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return st.nextToken();
	}

	int nextInt() {
		return Integer.parseInt(next());
	}

	int nextint() {
		return Integer.parseInt(next());
	}

	double nextDouble() {
		return Double.parseDouble(next());
	}

	String nextLine() {
		String str = "";
		try {
			str = br.readLine();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return str;
	}

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

}