#include <bits/stdc++.h>
using namespace std;
const int N=1e5+1;
int A[N],n,In[N],ok,In2[N];
void Output(){
int cnt1=0,cnt2=0;
for(int i=1;i<=n;i++){
if(In[i]==1)
cnt1++;
if(In[i]==2)
cnt2++;
}
if(cnt2==0){
cnt1--;
cnt2=1;
In[n]=2;
}
if(cnt1==0){
cnt1=1;
cnt2--;
In[n]=1;
}
printf("%d\n",cnt1);
for(int i=1;i<=n;i++){
if(In[i]==1)
printf("%d ",A[i]);
}
printf("\n");
printf("%d\n",cnt2);
for(int i=1;i<=n;i++){
if(In[i]==2){
printf("%d ",A[i]);
}
}
}
void reset1(){
for(int i=1;i<=n;i++){
if(In[i]==2)
In[i]=0;
}
}
bool SimpleCheck(){
int fir=-1,sec=-1,x,cnt=2;
for(int i=1;i<=n;i++){
if(!In[i]){
if(fir==-1){
fir=i;
In[fir]=2;
}
else{
if(sec==-1){
sec=i;
x=A[sec]-A[fir];
In[sec]=2;
}
else{
if(A[i]!=A[fir]+cnt*x){
return 0;
}
else{
In[i]=2;
cnt++;
}
}
}
}
}
return 1;
}
void Solve(int fir,int sec){
In[fir]=1;
int x=A[sec]-A[fir],i=sec,cnt=1,l1=fir,l2=-1; //l1 i l2 are last in first street
while(i!=n+1){
if(A[i]==x*cnt+A[fir]){
In[i]=1;
cnt++;
if(l2==-1)
l2=i;
else{
l1=l2;
l2=i;
}
}
i++;
}
if(SimpleCheck()){
ok=1;
Output();
return;
}
reset1();
In[l2]=0; //last is now in second street
if(SimpleCheck()){
ok=1;
Output();
return;
}
reset1();
int x2=A[l1+1]-A[l1],cnt2=0,f;
In[l1]=0,In[l2]=0;
for(int i=1;i<=n;i++){
if(!In[i]){
f=i; // find first in second street
break;
}
}
for(int i=1;i<=n;i++){
if(A[i]==A[f]+cnt2*x2){
In2[i]=2;
cnt2++;
}
else{
if(i>=l1){ //must fill larger then l1 bc first street won't
ok=0;
return;
}
}
}
cnt=0;
for(int i=1;i<=n;i++){
if(!In2[i]){
if(A[i]!=A[fir]+cnt*x){
ok=0;
return ;
}
else{
In2[i]=1;
cnt++;
}
}
}
for(int i=1;i<=n;i++){
In[i]=In2[i];
}
Output();
ok=1;
}
void reset2(){
for(int i=1;i<=n;i++){
In[i]=0;
In2[i]=0;
}
}
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&A[i]);
}
sort(A+1,A+n+1);
if(n==1){
printf("1\n");
printf("%d",A[0]);
return 0;
}
if(n==2){
printf("1\n");
printf("%d\n",A[0]);
printf("1\n");
printf("%d",A[1]);
return 0;
}
Solve(1,2);
if(ok)
return 0;
reset2();
Solve(1,3);
if(ok)
return 0;
reset2();
Solve(2,3);
if(ok)
return 0;
else
printf("-1");
return 0;
}
/*
8
1 6 3 8 9 5 5 7
*/
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBOPTFlNSsxOwppbnQgQVtOXSxuLEluW05dLG9rLEluMltOXTsKdm9pZCBPdXRwdXQoKXsKICAgIGludCBjbnQxPTAsY250Mj0wOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIGlmKEluW2ldPT0xKQogICAgICAgICAgICBjbnQxKys7CiAgICAgICAgaWYoSW5baV09PTIpCiAgICAgICAgICAgIGNudDIrKzsKICAgIH0KICAgIGlmKGNudDI9PTApewogICAgICAgIGNudDEtLTsKICAgICAgICBjbnQyPTE7CiAgICAgICAgSW5bbl09MjsKICAgIH0KICAgIGlmKGNudDE9PTApewogICAgICAgIGNudDE9MTsKICAgICAgICBjbnQyLS07CiAgICAgICAgSW5bbl09MTsKICAgIH0KICAgIHByaW50ZigiJWRcbiIsY250MSk7CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKyl7CiAgICAgICAgaWYoSW5baV09PTEpCiAgICAgICAgICAgIHByaW50ZigiJWQgIixBW2ldKTsKICAgIH0KICAgIHByaW50ZigiXG4iKTsKICAgIHByaW50ZigiJWRcbiIsY250Mik7CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKyl7CiAgICAgICAgaWYoSW5baV09PTIpewogICAgICAgICAgICBwcmludGYoIiVkICIsQVtpXSk7CiAgICAgICAgfQogICAgfQp9CnZvaWQgcmVzZXQxKCl7CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKyl7CiAgICAgICAgaWYoSW5baV09PTIpCiAgICAgICAgICAgIEluW2ldPTA7CiAgICB9Cn0KYm9vbCBTaW1wbGVDaGVjaygpewogICAgaW50IGZpcj0tMSxzZWM9LTEseCxjbnQ9MjsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICBpZighSW5baV0pewogICAgICAgICAgICBpZihmaXI9PS0xKXsKICAgICAgICAgICAgICAgIGZpcj1pOwogICAgICAgICAgICAgICAgSW5bZmlyXT0yOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICBpZihzZWM9PS0xKXsKICAgICAgICAgICAgICAgICAgICBzZWM9aTsKICAgICAgICAgICAgICAgICAgICB4PUFbc2VjXS1BW2Zpcl07CiAgICAgICAgICAgICAgICAgICAgSW5bc2VjXT0yOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgICAgICBpZihBW2ldIT1BW2Zpcl0rY250KngpewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgSW5baV09MjsKICAgICAgICAgICAgICAgICAgICAgICAgY250Kys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDE7Cn0Kdm9pZCBTb2x2ZShpbnQgZmlyLGludCBzZWMpewogICAgSW5bZmlyXT0xOwogICAgaW50IHg9QVtzZWNdLUFbZmlyXSxpPXNlYyxjbnQ9MSxsMT1maXIsbDI9LTE7ICAgICAgLy9sMSBpIGwyIGFyZSBsYXN0IGluIGZpcnN0IHN0cmVldAogICAgd2hpbGUoaSE9bisxKXsKICAgICAgICBpZihBW2ldPT14KmNudCtBW2Zpcl0pewogICAgICAgICAgICBJbltpXT0xOwogICAgICAgICAgICBjbnQrKzsKICAgICAgICAgICAgaWYobDI9PS0xKQogICAgICAgICAgICAgICAgbDI9aTsKICAgICAgICAgICAgZWxzZXsKICAgICAgICAgICAgICAgIGwxPWwyOwogICAgICAgICAgICAgICAgbDI9aTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpKys7CiAgICB9CiAgICBpZihTaW1wbGVDaGVjaygpKXsKICAgICAgICBvaz0xOwogICAgICAgIE91dHB1dCgpOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIHJlc2V0MSgpOwogICAgSW5bbDJdPTA7ICAgICAgICAgICAvL2xhc3QgaXMgbm93IGluIHNlY29uZCBzdHJlZXQKICAgIGlmKFNpbXBsZUNoZWNrKCkpewogICAgICAgIG9rPTE7CiAgICAgICAgT3V0cHV0KCk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgcmVzZXQxKCk7CgogICAgaW50IHgyPUFbbDErMV0tQVtsMV0sY250Mj0wLGY7CiAgICBJbltsMV09MCxJbltsMl09MDsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICBpZighSW5baV0pewogICAgICAgICAgICBmPWk7ICAgICAgICAgICAgICAgIC8vIGZpbmQgZmlyc3QgaW4gc2Vjb25kIHN0cmVldAogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKyl7CiAgICAgICAgaWYoQVtpXT09QVtmXStjbnQyKngyKXsKICAgICAgICAgICAgSW4yW2ldPTI7CiAgICAgICAgICAgIGNudDIrKzsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgaWYoaT49bDEpeyAgICAgICAgICAgLy9tdXN0IGZpbGwgbGFyZ2VyIHRoZW4gbDEgYmMgZmlyc3Qgc3RyZWV0IHdvbid0CiAgICAgICAgICAgICAgICBvaz0wOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgY250PTA7CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKyl7CiAgICAgICAgaWYoIUluMltpXSl7CiAgICAgICAgICAgIGlmKEFbaV0hPUFbZmlyXStjbnQqeCl7CiAgICAgICAgICAgICAgICBvaz0wOwogICAgICAgICAgICAgICAgcmV0dXJuIDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgSW4yW2ldPTE7CiAgICAgICAgICAgICAgICBjbnQrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICBJbltpXT1JbjJbaV07CiAgICB9CiAgICBPdXRwdXQoKTsKICAgIG9rPTE7Cn0Kdm9pZCByZXNldDIoKXsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKXsKICAgICAgICBJbltpXT0wOwogICAgICAgIEluMltpXT0wOwogICAgfQp9CmludCBtYWluKCkKewogICAgc2NhbmYoIiVkIiwmbik7CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKyl7CiAgICAgICAgc2NhbmYoIiVkIiwmQVtpXSk7CiAgICB9CiAgICBzb3J0KEErMSxBK24rMSk7CiAgICBpZihuPT0xKXsKICAgICAgICBwcmludGYoIjFcbiIpOwogICAgICAgIHByaW50ZigiJWQiLEFbMF0pOwogICAgICAgIHJldHVybiAwOwogICAgfQogICAgaWYobj09Mil7CiAgICAgICAgcHJpbnRmKCIxXG4iKTsKICAgICAgICBwcmludGYoIiVkXG4iLEFbMF0pOwogICAgICAgIHByaW50ZigiMVxuIik7CiAgICAgICAgcHJpbnRmKCIlZCIsQVsxXSk7CiAgICAgICAgcmV0dXJuIDA7CiAgICB9CiAgICBTb2x2ZSgxLDIpOwogICAgaWYob2spCiAgICAgICAgcmV0dXJuIDA7CiAgICByZXNldDIoKTsKCiAgICBTb2x2ZSgxLDMpOwogICAgaWYob2spCiAgICAgICAgcmV0dXJuIDA7CiAgICByZXNldDIoKTsKCiAgICBTb2x2ZSgyLDMpOwogICAgaWYob2spCiAgICAgICAgcmV0dXJuIDA7CiAgICBlbHNlCiAgICAgICAgcHJpbnRmKCItMSIpOwogICAgcmV0dXJuIDA7Cn0KLyoKICAgIDgKICAgIDEgNiAzIDggOSA1IDUgNwogICAgKi8K