#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n, i, x;
  vector<int> pos, neg, zero;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> x;
    if (x > 0)
      pos.push_back(x);
    else if (x < 0)
      neg.push_back(x);
    else
      zero.push_back(x);
  }
  if (pos.size() == 0) {
    pos.push_back(neg[neg.size() - 1]);
    neg.erase(neg.end() - 1);
    pos.push_back(neg[neg.size() - 1]);
    neg.erase(neg.end() - 1);
  }
  if ((int)neg.size() % 2 == 0) {
    zero.push_back(neg[neg.size() - 1]);
    neg.erase(neg.end() - 1);
  }
  cout << (int)neg.size() << ' ';
  for (i = 0; i < neg.size(); i++) {
    cout << neg[i] << ' ';
  }
  cout << endl << (int)pos.size() << ' ';
  for (i = 0; i < pos.size(); i++) {
    cout << pos[i] << ' ';
  }
  cout << endl << (int)zero.size() << ' ';
  for (i = 0; i < zero.size(); i++) {
    cout << zero[i] << ' ';
  }
  return 0;
}
