#include <bits/stdc++.h>
int c[100];
int ans[100];
int cmp(const void *a, const void *b) { return (*((int *)a)) - (*((int *)b)); }
void func(int n) {
  int i, m = 0;
  if (n == 1) {
    printf("%d\n", c[0]);
    return;
  }
  qsort(c, n, sizeof(int), cmp);
  for (i = n - 1; i >= 0 && c[i] > 0; i--) {
    ans[m++] = c[i];
  }
  for (i = 0; i + 2 <= n && c[i + 1] < 0; i += 2) {
    ans[m++] = c[i];
    ans[m++] = c[i + 1];
  }
  if (m == 0) {
    printf("0\n");
    return;
  }
  for (i = 0; i < m - 1; i++) {
    printf("%d ", ans[i]);
  }
  printf("%d\n", ans[i]);
}
int main() {
  int n, i;
  while (scanf("%d", &n) == 1) {
    for (i = 0; i < n; i++) {
      scanf("%d", &c[i]);
    }
    func(n);
  }
  return 0;
}
