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.InputStreamReader;
import java.io.PrintWriter;

public class codeforces652B {
	static int s = 0;
	static int e;

	public static void main(String[] args) throws Exception {
		// BufferedReader br = new BufferedReader(new
		// FileReader("/home/ouda/eclipse-workspace/ACM/txtin"));
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		PrintWriter out = new PrintWriter(System.out);
		int x = Integer.parseInt(br.readLine());
		String[] num = br.readLine().split(" ");
		int[] line = new int[x];
		for (int j = 0; j < x; j++) {
			line[j] = Integer.parseInt(num[j]);
		}
		if(x==1) {
			System.out.println(line[0]);
			return;
		}
		merge_sort(line, 0, x - 1);
		out.flush();

	}

	static void merge_sort(int A[], int start, int end) {
		if (start < end) {
			int mid = (start + end) / 2;
			merge_sort(A, start, mid);
			merge_sort(A, mid + 1, end);

			merge(A, start, mid, end);
		}
	}

	static void merge(int A[], int start, int mid, int end) {
		s = start;
		e = end;
		int p = start, q = mid + 1;
		int[] Arr = new int[end - start + 1];
		int k = 0;

		for (int i = start; i <= end; i++) {
			if (p > mid)
				Arr[k++] = A[q++];

			else if (q > end) {
				Arr[k++] = A[p++];

			} else if (A[p] < A[q]) {
				Arr[k++] = A[p++];
			} else {
				Arr[k++] = A[q++];
			}
		}
		for (p = 0; p < k; p++)
			A[start++] = Arr[p];
		StringBuilder sb = new StringBuilder();
		if (s == 0 && e == A.length - 1) {
			int w = A.length - 1;
			for (int i = 0; i < Math.ceil(A.length / 2.0); i++) {
				sb.append(A[i] + " ");
				if (w >= Math.ceil(A.length / 2.0))
					sb.append(A[w--] + " ");
			}
			System.out.println(sb.toString().substring(0,sb.length()-1));
		}
	}

}
