#include <iostream>
#include <vector>
#include <cstdio>
using namespace std;
int main(){
int n;
cin >> n;
vector<int> neg,zero,pos;
int a;
for(int i = 0; i < n; i ++ ) {
cin >>a;
if(a > 0) pos.push_back(a);
else if(a < 0) neg.push_back(a);
else zero.push_back(a);
}
if(pos.size() == 0 ){
pos.push_back(neg.back());
neg.pop_back();
pos.push_back(neg.back());
neg.pop_back();
}
if(neg.size()%2 == 0){
zero.push_back(neg.back());
neg.pop_back();
}
cout << neg.size();
for(int i = 0; i < neg.size();i ++ ) cout<<" "<<neg[i];
cout<<endl;
cout<< pos.size();
for(int i = 0; i < pos.size();i ++ ) cout<<" "<<pos[i];
cout<<endl;
cout<< zero.size();
for(int i = 0; i < zero.size();i ++ ) cout<<" "<<zero[i];
cout<<endl;
return 0;
}