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.util.*;
import java.util.Scanner;
import java.io.*;
import javax.lang.model.util.ElementScanner6; 
import static java.lang.System.out;


public class A482
{

   
    
    public static void main(String args[])
    {  

        FastReader in=new FastReader();
        PrintWriter pr = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
        int tc=1;
     
        //tc=in.nextInt();
        while(tc-->0)
        {
            
        	int n=in.nextInt();

			int k=in.nextInt();
     
			ArrayList<Integer> al=new ArrayList<Integer>();
			int arr[]=new int[n];
			int temp=n;
			
			if(k==1)
			{
				for(int i =1 ;i <=n;i++)pr.print(i+" ");
				pr.println();
				continue;
				
			}
			
			int c=1;
			for(int i=0;i<n;i++)
			{
				if(i%2==0)
				{
					arr[i]=c;
					c++;
				}
				else arr[i]=temp--;
			
			}	
			
			for(int i=0;i<=k-1;i++)
			{
				al.add(arr[i]);
			}
			
			
			
			if(k%2==0)
			{
				int a1=al.get(al.size()-1);
				for(int i=k;i<n;i++)
				{
						al.add(--a1);
				}
			}
			else
			{
				int a1=al.get(al.size()-1);
				for(int i=k;i<n;i++)
				{
						al.add(++a1);
				}
				
			}
				
			
			
		
			
			for(int i : al) pr.print(i+" ");
			
			pr.println();
			
			/*
			HashSet<Integer> hset=new HashSet<Integer>();
			
			
		
			for(int i =1;i<n;i++)
			{
				int val=Math.abs(al.get(i)-al.get(i-1));
				hset.add(val);
			}
			
			pr.println(hset.size());
			
			*/
			
			



        }
        pr.flush();
    }


    

    static void sort(long[] a) {
		ArrayList<Long> l = new ArrayList<>();
		for (long i : a)
			l.add(i);
		Collections.sort(l);
		for (int i = 0; i < a.length; i++)
			a[i] = l.get(i);
	}
    
    
	static void sort(int[] a) {
		ArrayList<Integer> l = new ArrayList<>();
		for (int i : a)
			l.add(i);
		Collections.sort(l);
		for (int i = 0; i < a.length; i++)
			a[i] = l.get(i);
    }

    
    static class FastReader
    { 
        BufferedReader br; 
        StringTokenizer st; 

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

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

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

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

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

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