#include "bits/stdc++.h"
using namespace std;
struct node {
int num;
node* next;
};
class Chain
{
public:
Chain()
{
head=tail=new node;
}
void GetElement(int ele)//单个元素补充
{
tail->num=ele;
tail->next=new node;
tail=tail->next;
}
void GetChain(int num)//知长度输入
{
int k;cin>>k;
while (num--)
{
GetElement(k);
}
}
void output()
{
node* cur=head;
while (cur!= tail)
{
cout << " " << cur->num ;
cur = cur->next;
}
cout<<endl;
}
void quchong()//去重
{
node*cur=head;
node*temp=head->next;
while (cur!= tail)
{
while(temp!=tail)
{
if (cur->num==temp->num)
{
node* x=head;
while(x->next!=temp)x=x->next;
x->next=temp->next;
}
temp=temp->next;
}
cur = cur->next;
temp=cur->next;
}
}
void paixu()//比较傻逼的冒泡排序
{
for (node*temp=head; temp!=tail; temp=temp->next)
{
for (node*cur=head; cur->next!=tail; cur=cur->next)
{
if (cur->next->num<cur->num)
{
int k;
k=cur->next->num;
cur->next->num=cur->num;
cur->num=k;
}
}
}
}
public:
node *head;
node *tail;
};
void Deal()
{
Chain chain;
int num;
cin>>num;
chain.GetChain(num);
chain.quchong();
chain.paixu();
Chain qi,ou;
node *temp=chain.head;
while (temp!=chain.tail)
{
if (temp->num%2==0)
{
ou.GetElement(temp->num);
}
else
{
qi.GetElement(temp->num);
}
temp=temp->next;
}
chain.output();
qi.output();
ou.output();
}
int main()
{
Deal();
system("pause");
return 0;
}