#include <bits/stdc++.h>
using namespace std;
//#define fo(NOIp_a,NOIp_b,NOIp_c,NOIp_d) for(int NOIp_a=NOIp_b;NOIp_a<=NOIp_c;NOIp_a+=NOIp_d)
//#define of(NOIp_a,NOIp_b,NOIp_c,NOIp_d) for(int NOIp_a=NOIp_b;NOIp_a>=NOIp_c;NOIp_a-=NOIp_d)
const int N=1e5+10;
int a[N],b[N],num[N],l[N],n[N];
bool vis[N];
bool cmp(int a,int b){
return a>b;
}
/*inline int fast_read(){
int fast_read_s=0,fast_read_f=1; char fast_read_ch=getchar();
while(fast_read_ch<'0'||fast_read_ch>'9'){if(fast_read_ch=='-') fast_read_f=-1; fast_read_ch=getchar();}
while(fast_read_ch>='0'&&fast_read_ch<='9'){fast_read_s=fast_read_s*10+fast_read_ch-'0'; fast_read_ch=getchar();}
return fast_read_s*fast_read_f;
}*/
int main(){
int t;cin>>t;
for(int i=1;i<=t;i++){
cin>>a[i];
b[i]=a[i];
num[a[i]]=i;
l[i]=i-1;
n[i]=i+1;
}
/*stable_*/sort(a+1,a+t+1,cmp);
/*for(int i=1;i<=t;i++) cout<<a[i]<<" ";
cout<<endl;*/
int u=t;
for(int i=1;i<=t;i++){
if(num[a[i]]==u) continue;
int k=a[i];
int p=num[k];
int t=n[p];
int o=b[t];
if((!vis[k])&&(!vis[o])){
cout<<k<<" "<<o<<" ";
vis[k]=1;
vis[o]=1;
n[l[p]]=n[t];
l[n[t]]=l[p];
if(num[a[i]]==u-1) u-=2;
}
}
cout<<endl;
return 0;
}