A student of z-school found a kind of sorting called z-sort. The array a with n elements are z-sorted if two conditions hold:

  1. ai ≥ ai - 1 for all even i, 
  2. ai ≤ ai - 1 for all odd i > 1. 



For example the arrays [1,2,1,2] and [1,1,1,1] are z-sorted while the array [1,2,3,4] isn’t z-sorted.

Can you make the array z-sorted?

Input

The first line contains a single integer n (1 ≤ n ≤ 1000) — the number of elements in the array a.

The second line contains n integers ai (1 ≤ ai ≤ 109) — the elements of the array a.

Output

If it's possible to make the array a z-sorted print n space separated integers ai — the elements after z-sort. Otherwise print the only word "Impossible".

Examples

Input

4
1 2 2 1


Output

1 2 1 2


Input

5
1 3 2 2 5


Output

1 5 2 3 2
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Queue;


import java.util.StringTokenizer;


 public class Test
 {
    
    static PrintWriter pw = new PrintWriter(System.out);

    public static void main(String[] args)throws Exception
    {
        Reader.init(System.in);
        int n = Reader.nextInt();
        ArrayList<Integer> list1 = new ArrayList();
        ArrayList<Integer> list2 = new ArrayList();
        
        for(int i = 0 ; i<n ; i++)
            list1.add(Reader.nextInt());
        
        if(n == 1)
        {
            pw.print(list1.get(0));
            pw.close();
            return;
        }
        
        Collections.sort(list1);
        
        int L = 0;
        int R = n-1;
        while(L<=R)
        {
            if(L == R)
            {
                int a = list1.get(R);
                int last = list2.size();
                int b = list2.get(last - 1);
                
                if( ((last+1)%2 == 0 && a<b) || ( (last + 1)%2 != 0 && a>b ))
                {
                    pw.print("Impossible");
                    pw.close();
                    return;
                }
                
                list2.add(a);
            }
            else
            {
                int a = list1.get(L);
                int b = list1.get(R);
                
                if(list2.isEmpty())
                {
                    list2.add(a);
                    list2.add(b);
                    L++;
                    R--;
                    continue;
                }
                
                int last = list2.size();
                int c = list2.get(last-1);
                
                if( ((last+1)%2 == 0 && a<c) || ( (last + 1)%2 != 0 && a>c ))
                {
                    pw.print("Impossible");
                    pw.close();
                    return;
                }
                
                list2.add(a);
                list2.add(b);
            }
            
            L++;
            R--;
        }
            
        StringBuilder res = new StringBuilder();
        for(int i = 0 ; i<n ; i++)
            res.append(list2.get(i)).append(" ");
        
        pw.print(res);
        pw.close();
    }
        
}

class Reader {

    static BufferedReader reader;
    static StringTokenizer tokenizer;

    public static int pars(String x) {
        int num = 0;
        int i = 0;
        if (x.charAt(0) == '-') {
            i = 1;
        }
        for (; i < x.length(); i++) {
            num = num * 10 + (x.charAt(i) - '0');
        }

        if (x.charAt(0) == '-') {
            return -num;
        }

        return num;
    }

    static void init(InputStream input) {
        reader = new BufferedReader(
                new InputStreamReader(input));
        tokenizer = new StringTokenizer("");
    }

    static void init(FileReader input) {
        reader = new BufferedReader(input);
        tokenizer = new StringTokenizer("");
    }

    static String next() throws IOException {
        while (!tokenizer.hasMoreTokens()) {
            tokenizer = new StringTokenizer(
                    reader.readLine());
        }
        return tokenizer.nextToken();
    }

    static int nextInt() throws IOException {
        return pars(next());
    }

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

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