#include <bits/stdc++.h>
int n, i, z = 0, x = 0, c = 0, a, s[10001], t[10001], r[10001];
int main() {
  scanf("%d", &n);
  for (i = 1; i <= n; i++) {
    scanf("%d", &a);
    if (a > 0) {
      z++;
      s[z] = a;
    } else if (a == 0) {
      x++;
      t[x] = a;
    } else {
      c++;
      r[c] = a;
    }
  }
  if (c % 2 == 0) {
    x++;
    t[x] = r[c];
    c--;
  }
  if (z == 0) {
    z = 2;
    s[1] = r[c];
    s[2] = r[c - 1];
    c = c - 2;
  }
  printf("%d ", c);
  for (i = 1; i <= c; i++) printf("%d ", r[i]);
  printf("\n");
  printf("%d ", z);
  for (i = 1; i <= z; i++) printf("%d ", s[i]);
  printf("\n");
  printf("%d ", x);
  for (i = 1; i <= x; i++) printf("%d ", t[i]);
  return 0;
}
