#include <bits/stdc++.h>
using namespace std;
int n, cnt;
bool f;
vector<int> p, m, z;
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    int x;
    scanf("%d", &x);
    if (x < 0) m.push_back(x);
    if (x > 0) p.push_back(x);
    if (x == 0) z.push_back(x);
  }
  printf("1 %d\n", m[0]);
  if (p.size() > 0)
    printf("1 %d \n", p[0]);
  else {
    printf("2 %d %d\n", m[1], m[2]);
    f = true;
  }
  cnt = z.size();
  for (int i = (f ? 0 : 1); i < p.size(); i++) cnt++;
  for (int i = (f ? 3 : 1); i < m.size(); i++) cnt++;
  printf("%d ", cnt);
  for (int i = 0; i < z.size(); i++) printf("%d ", z[0]);
  for (int i = (f ? 0 : 1); i < p.size(); i++) printf("%d ", p[i]);
  for (int i = (f ? 3 : 1); i < m.size(); i++) printf("%d ", m[i]);
  return 0;
}
