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.util.*;

public class Main {
    /**
     * author geshpaniec
     * 23.10.2014
     */

    StringTokenizer in;
    BufferedReader inb;
    PrintWriter out;
    static boolean local;
    final String problemname = "success";
    final static String _localArg="geshpaniec";
    final static byte IO=1;
        /* IO:
         * 1 - standard I/O
         * 2 - input.txt/output.txt
         * 3 - problemname.in/problemname.out
         */

    public void solve() throws Exception {
        int n=nextInt();
        int k=nextInt();
//        int position=1;
//        if (k!=1)
//        out.print(1+" ");
//        k--;
//        int i=1;
//        for (i=1;i<=k;i++){
//            if (i%2==1)
//                out.print((n-position+1)+" ");
//            else
//                out.print((position)+" ");
//            position++;
//        }
//        if (i%2==0){
//            for (int j=n-position;j>position;j--)
//                out.print(j+" ");
//        }
//        else{
//            for (int j=position;j<=n-position;j++)
//                out.print(j+" ");
//        }
        int l=2,r=n;
        out.print(1+" ");
        int j=1;
        if (k>=2){
            out.print((r--)+" ");
            k-=2;
            while (k!=0){
                if (j%2==1) {
                    out.print((l++)+" ");
                }
                else{
                    out.print((r--)+" ");
                }
                k--;
                j++;
            }
        }
        else{
            for (int i=2;i<=n;i++){
                out.print(i+" ");
            }
            return;
        }
        if (j%2==0)
            for (int i=l;i<=r;i++)
            out.print(i+" ");
        else
            for (int i=r;i>=l;i--)
                out.print(i+" ");
    }


    public static void main(String[] args) throws Exception {
        local = false;
        if (args.length == 1 && args[0].equals(_localArg))
            local = true;
        new Main().run();

    }

    public void run() throws Exception {
        if (local) {
            inb = new BufferedReader(new FileReader("input.txt"));
            out = new PrintWriter(new OutputStreamWriter(System.out));
        } else {
            switch (IO){
                case 1:
                    inb = new BufferedReader(new InputStreamReader(System.in));
                    out = new PrintWriter(new OutputStreamWriter(System.out));
                    break;
                case 2:
                    inb = new BufferedReader(new FileReader("input.txt"));
                    out = new PrintWriter(new FileWriter("output.txt"));
                    break;
                case 3:
                    inb = new BufferedReader(new FileReader(problemname+".in"));
                    out = new PrintWriter(new FileWriter(problemname+".out"));
                    break;
            }
        }
        in = new StringTokenizer("");
        double Time=System.nanoTime();
        solve();
        if (local){
            Time=System.nanoTime()-Time;
            out.println();
            out.println(" Time work: "+Time/(1e9)+" seconds");
        }
        out.flush();
    }

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

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

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

    String next() throws Exception {
        if (!in.hasMoreTokens())
            in=new StringTokenizer(inb.readLine());
        return in.nextToken();
    }

    int[] nextArray(int n) throws Exception{
        int[] a=new int[n];
        for (int i=0;i<n;i++)
            a[i]=nextInt();
        return a;
    }

    long[] nextLArray(int n) throws Exception{
        long[] a=new long[n];
        for (int i=0;i<n;i++)
            a[i]=nextLong();
        return a;
    }

    double[] nextDArray(int n) throws Exception{
        double[] a=new double[n];
        for (int i=0;i<n;i++)
            a[i]=nextDouble();
        return a;
    }

    String[] nextSArray(int n) throws Exception{
        String[] a=new String[n];
        for (int i=0;i<n;i++)
            a[i]=next();
        return a;
    }

    void print(int[] a){
        for (int i=0;i<a.length;i++)
            out.println(a[i]);
    }

    void print(double[] a){
        for (int i=0;i<a.length;i++)
            out.println(a[i]);
    }

}