#include<iostream>
#include<vector>
#include<algorithm>
#include<cstring>
#include<map>
#include<cmath>
#include<unordered_map>
#define rep(a,b,c) for(int a=b;a<=c;a++)
#define drep(a,b,c) for(int a=b;a>=c;a--)
#define all(a) a.begin(),a.end()
#define ai_jiang signed main()
using namespace std;
typedef long long ll;
namespace ai {
int n,a[1000010],p[1000010];
vector<int> f,q;
}
using namespace ai;
ai_jiang {
cin.tie(0);
cout.tie(0);
cin>>n;
rep(i,1,n) cin>>a[i],p[i]=a[i];
sort(p+1,p+n+1);
rep(i,1,n) {
if(p[i]>=0) f.push_back(p[i]);
else q.push_back(p[i]);
}
reverse(f.begin(),f.end());
int at=0,bt=0,ta=f.size()-1,tb=q.size()-1;
rep(i,1,n) {
if(i&1) {
if(at<=ta) cout<<f[at++]<<" ";
else cout<<q[bt++]<<" ";
} else {
if(bt<=tb) cout<<q[bt++]<<" ";
else cout<<f[ta--]<<" ";
}
}
cout<<endl;
reverse(f.begin(),f.end());
at=0,bt=0,ta=f.size()-1,tb=q.size()-1;
rep(i,1,n) {
if(!(i&1)) {
if(at<=ta) cout<<f[ta--]<<" ";
else cout<<q[tb--]<<" ";
} else {
if(bt<=tb) cout<<q[bt++]<<" ";
else cout<<f[at++]<<" ";
}
}
return 0;
}