/// no time to waste
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define eb emplace_back
#define pii pair <int, int>
#define pli pair <ll, int>
#define fi first
#define se second
#define all(ac) ac.begin(), ac.end()
#define MASK(x) (1LL << x)
#define ub(i, j) ((i >> j) & 1)
#define FBIT(x) (MASK(x) - 1)
#define FLIP(x, y) (FBIT(x) ^ y)
#define ii make_pair
const int MX = 1e5 + 1;
int n, H[MX];
namespace subfull {
bool vis[MX];
bool check(int s1, int s2) {
int d = H[s2] - H[s1];
int last = s2;
memset(vis, 0, sizeof vis);
vis[s1] = vis[s2] = 1;
int cnt = 0;
for(int i=s2 + 1;i<=n;i++) {
if(H[i] - H[last] == d) vis[i] = 1, last = i, cnt++;
else
if(H[last] == H[i]) vis[last] = 0, vis[last = i] = 1;
}
if(cnt > n - 2) return 1;
bool flag = 0;
last = d = -1;
for(int i=1;i<=n;i++) if(!vis[i]) {
if(last != -1) {
d = H[i] - H[last];
last = i;
break;
}
last = i;
}
int ed = n + 1;
for(int i=n;i>=1;i--) {
if(vis[i]) ed = i;
else break;
}
for(int i=last + 1;i<=n;i++) {
if(flag) vis[i] = 0;
else
if(i == ed) break;
if(H[i] - H[last] == d) {
if(vis[i]) flag = 1, vis[i] = 0;
last = i;
}
else
if(!vis[i]) return 0;
}
return 1;
}
void Output() {
int cnt = accumulate(vis + 1, vis + n + 1, 0);
if(cnt == n) vis[n] = 0, cnt--;
cout << cnt << '\n';
for(int x=1;x<=n;x++) if(vis[x]) cout << H[x] << ' ';
cout << '\n' << n - cnt << '\n';
for(int x=1;x<=n;x++) if(!vis[x]) cout << H[x] << ' ';
return;
}
void solve() {
if(check(1, 2)) Output();
else
if(check(1, 3)) Output();
else
if(check(2, 3)) Output();
else cout << -1;
return;
}
}
int32_t main() {
ios::sync_with_stdio(false);
cin.tie(0), cout.tie(0);
#define task "tet"
if(fopen(task".inp", "r")) {
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
cin >> n;
for(int i=1;i<=n;i++) cin >> H[i];
sort(H + 1, H + n + 1);
subfull::solve();
return 0;
}
Ly8vIG5vIHRpbWUgdG8gd2FzdGUKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZWIgZW1wbGFjZV9iYWNrCiNkZWZpbmUgcGlpIHBhaXIgPGludCwgaW50PgojZGVmaW5lIHBsaSBwYWlyIDxsbCwgaW50PgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgYWxsKGFjKSBhYy5iZWdpbigpLCBhYy5lbmQoKQojZGVmaW5lIE1BU0soeCkgKDFMTCA8PCB4KQojZGVmaW5lIHViKGksIGopICgoaSA+PiBqKSAmIDEpCiNkZWZpbmUgRkJJVCh4KSAoTUFTSyh4KSAtIDEpCiNkZWZpbmUgRkxJUCh4LCB5KSAoRkJJVCh4KSBeIHkpCiNkZWZpbmUgaWkgbWFrZV9wYWlyCgpjb25zdCBpbnQgTVggPSAxZTUgKyAxOwppbnQgbiwgSFtNWF07CgpuYW1lc3BhY2Ugc3ViZnVsbCB7CiAgICBib29sIHZpc1tNWF07CiAgICBib29sIGNoZWNrKGludCBzMSwgaW50IHMyKSB7CiAgICAgICAgaW50IGQgPSBIW3MyXSAtIEhbczFdOwogICAgICAgIGludCBsYXN0ID0gczI7CiAgICAgICAgbWVtc2V0KHZpcywgMCwgc2l6ZW9mIHZpcyk7CiAgICAgICAgdmlzW3MxXSA9IHZpc1tzMl0gPSAxOwogICAgICAgIAogICAgICAgIGludCBjbnQgPSAwOwogICAgICAgIGZvcihpbnQgaT1zMiArIDE7aTw9bjtpKyspIHsKICAgICAgICAgICAgaWYoSFtpXSAtIEhbbGFzdF0gPT0gZCkgdmlzW2ldID0gMSwgbGFzdCA9IGksIGNudCsrOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmKEhbbGFzdF0gPT0gSFtpXSkgdmlzW2xhc3RdID0gMCwgdmlzW2xhc3QgPSBpXSA9IDE7IAogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZihjbnQgPiBuIC0gMikgcmV0dXJuIDE7CiAgICAgICAgCiAgICAgICAgYm9vbCBmbGFnID0gMDsKICAgICAgICBsYXN0ID0gZCA9IC0xOwogICAgICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKSBpZighdmlzW2ldKSB7CiAgICAgICAgICAgIGlmKGxhc3QgIT0gLTEpIHsKICAgICAgICAgICAgICAgIGQgPSBIW2ldIC0gSFtsYXN0XTsKICAgICAgICAgICAgICAgIGxhc3QgPSBpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGFzdCA9IGk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGludCBlZCA9IG4gKyAxOwogICAgICAgIGZvcihpbnQgaT1uO2k+PTE7aS0tKSB7CiAgICAgICAgICAgIGlmKHZpc1tpXSkgZWQgPSBpOwogICAgICAgICAgICBlbHNlIGJyZWFrOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBmb3IoaW50IGk9bGFzdCArIDE7aTw9bjtpKyspIHsKICAgICAgICAgICAgaWYoZmxhZykgdmlzW2ldID0gMDsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICBpZihpID09IGVkKSBicmVhazsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmKEhbaV0gLSBIW2xhc3RdID09IGQpIHsKICAgICAgICAgICAgICAgIGlmKHZpc1tpXSkgZmxhZyA9IDEsIHZpc1tpXSA9IDA7CiAgICAgICAgICAgICAgICBsYXN0ID0gaTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIGlmKCF2aXNbaV0pIHJldHVybiAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMTsKICAgIH0KCiAgICB2b2lkIE91dHB1dCgpIHsKICAgICAgICBpbnQgY250ID0gYWNjdW11bGF0ZSh2aXMgKyAxLCB2aXMgKyBuICsgMSwgMCk7CiAgICAgICAgaWYoY250ID09IG4pIHZpc1tuXSA9IDAsIGNudC0tOwogICAgICAgIGNvdXQgPDwgY250IDw8ICdcbic7CiAgICAgICAgZm9yKGludCB4PTE7eDw9bjt4KyspIGlmKHZpc1t4XSkgY291dCA8PCBIW3hdIDw8ICcgJzsKICAgICAgICBjb3V0IDw8ICdcbicgPDwgbiAtIGNudCA8PCAnXG4nOwogICAgICAgIGZvcihpbnQgeD0xO3g8PW47eCsrKSBpZighdmlzW3hdKSBjb3V0IDw8IEhbeF0gPDwgJyAnOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICB2b2lkIHNvbHZlKCkgewogICAgICAgIGlmKGNoZWNrKDEsIDIpKSBPdXRwdXQoKTsKICAgICAgICBlbHNlCiAgICAgICAgaWYoY2hlY2soMSwgMykpIE91dHB1dCgpOwogICAgICAgIGVsc2UKICAgICAgICBpZihjaGVjaygyLCAzKSkgT3V0cHV0KCk7CiAgICAgICAgZWxzZSBjb3V0IDw8IC0xOwogICAgICAgIHJldHVybjsKICAgIH0KfQoKaW50MzJfdCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZSgwKSwgY291dC50aWUoMCk7CiAgICAjZGVmaW5lIHRhc2sgInRldCIKICAgIGlmKGZvcGVuKHRhc2siLmlucCIsICJyIikpIHsKICAgICAgICBmcmVvcGVuKHRhc2siLmlucCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4odGFzayIub3V0IiwgInciLCBzdGRvdXQpOwogICAgfQoKICAgIGNpbiA+PiBuOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspIGNpbiA+PiBIW2ldOwogICAgc29ydChIICsgMSwgSCArIG4gKyAxKTsKICAgIAogICAgc3ViZnVsbDo6c29sdmUoKTsKICAgIHJldHVybiAwOwp9Cg==