#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <time.h>
#include <string>
#include <map>
#include <stack>
#include <vector>
#include <set>
#include <queue>
#define inf 0x3f3f3f3f
#define mod 1000000007
typedef long long ll;
using namespace std;
const int N = 100000;
const int MAX = 2000;
int n,m,maxn=-1,cnt=0;
int a[N],s[N];
void dfs(int l,int r,int num) {
int mid=(l+r)/2+1;
s[num*2]=a[mid];
s[num*2+1]=a[l+1];
cnt+=2;
if(mid<r) {
dfs(mid,r,num*2);
dfs(l+1,mid-1,num*2+1);
}
if(cnt>=n) {
printf("%d",s[1]);
for(int i=2; i<=cnt; i++) {
printf(" %d",s[i]);
}
printf("\n");
exit(0);
}
}
int main() {
cin>>n;
for(int i=0; i<n; i++) {
cin>>a[i];
}
if(n==1){
cout<<a[0]<<endl;
exit(0);
}
sort(a,a+n);
s[1]=a[0];cnt++;
dfs(0,n-1,1);
return 0;
}