#include<bits/stdc++.h>
using namespace std;
int n,s,cnt=1;
set<int>s0,s1;
vector<int>ans[200005];
inline void readint(int &x){
x=0;
short flag=1;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') flag=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
x=(x<<3)+(x<<1)+(c^48);
c=getchar();
}
x*=flag;
}
inline void writeint(int x){
if(x<0){
putchar('-');
x=-x;
}
if(x>9) writeint(x/10);
putchar(x%10+'0');
}
int main(){
readint(n);
for(int i=1;i<=n;i++){
readint(s);
if(s==1) s0.insert(s);
else s1.insert(s);
}
while(!s0.empty()||!s1.empty()){
int a=*s0.begin();
int b=*s1.begin();
if(a<b){
a=remove(s0,a);
ans[cnt].push_back(a);
a=remove(s1,a);
ans[cnt].push_back(a);
}else{
b=remove(s0,b);
ans[cnt].push_back(b);
a=remove(s1,b);
ans[cnt].push_back(b);
}
}
while(!s0.empty()){
cnt++;
ans[cnt].push_back(*s1.begin());
s1.erase();
}
while(!s1.empty()){
cnt++;
ans[cnt].push_back(*s1.begin());
s1.erase();
}
for(int i=1;i<=cnt;i++){
while(!ans[cnt].empty()){
cout<<ans[cnt].front()<<" ";
}
cout<<endl;
}
return 0;
}//set 编译错误