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.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;

public class B {

    public static void main(String[] args) throws IOException {
        br = new BufferedReader(new InputStreamReader(System.in));
        out = new PrintWriter(System.out);
        st = new StringTokenizer("");
        sb = new StringBuilder();
        
        int n = nxtInt();
        int k = nxtInt();
        
        int[] arr = new int[n];
        boolean[] vis = new boolean[n+1];
        arr[0] = 1;
        vis[1] = true;
        int index = 1;
        int newK = k;
        for( int i = 1;i < n && newK > 0;i++ ){
            int item = (arr[i-1] - newK);
//          System.out.println(i +" " + newK +" ");
            if( item <= 0 ){
                item = arr[i-1] + newK;
            }else{
                if( vis[item] ){
                    item = arr[i-1] + newK;
                }
            }//end else.
            arr[i] = item;
        
            vis[item] = true;
            newK--;
            index++;
        }//end for i.
        int item = 1 + k + 1;
        for( int i = item;i <= n && index < n ;i++ ){
            if( !vis[i] ){
                arr[index] = i;
                index++;
            }
//          item++;
        }
        
        for( int i = 0;i < n;i++ ){
            System.out.print(arr[i]);
            if( i != n - 1 ){
                System.out.print(" ");
            }
        }
        System.out.println();
        
    }//end main.

    
    static BufferedReader br;
    static StringTokenizer st;
    static StringBuilder sb;
    static PrintWriter out;

    static String nxtTok() throws IOException {
        while (!st.hasMoreTokens()) {
            String s = br.readLine();
            if (s == null)
                return null;
            st = new StringTokenizer(s.trim());
        }
        return st.nextToken();
    }

    static int nxtInt() throws IOException {
        return Integer.parseInt(nxtTok());
    }

    static long nxtLng() throws IOException {
        return Long.parseLong(nxtTok());
    }

    static double nxtDbl() throws IOException {
        return Double.parseDouble(nxtTok());
    }

    static int[] nxtIntArr(int n) throws IOException {
        int[] a = new int[n];
        for (int i = 0; i < n; i++)
            a[i] = nxtInt();
        return a;
    }

    static long[] nxtLngArr(int n) throws IOException {
        long[] a = new long[n];
        for (int i = 0; i < n; i++)
            a[i] = nxtLng();
        return a;
    }

    static char[] nxtCharArr() throws IOException {
        return nxtTok().toCharArray();
    }
}