#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  vector<int> s(n);
  for (int i = 0; i < n; ++i) cin >> s[i];
  if (n == 1 && s[0] == 0) {
    cout << "0" << endl;
    return 0;
  }
  sort(s.begin(), s.end());
  vector<int> min;
  vector<int> max;
  int ct = 1;
  for (int i = 0; i < n; ++i) {
    if (s[i] < 0) min.push_back(s[i]);
    if (s[i] > 0) max.push_back(s[i]);
    if (s[i] == 0) ct = 0;
  }
  int count = 0;
  for (int i = 0; i < min.size(); ++i) {
    if (min[i] == -1) ++count;
  }
  if (count != 0 && count != 1)
    for (int i = 0; i < count - 2; ++i) min.pop_back();
  reverse(max.begin(), max.end());
  if (max.size() > 0)
    for (int i = max.size() - 1; i > 0; --i)
      if (max[i] == 1) max.pop_back();
  if (max.size() == 2 && max[0] == 1 && max[1] == 1) max.pop_back();
  if (min.size() == 0 && max.size() == 0 && ct == 0) {
    cout << "0" << endl;
    return 0;
  }
  if (min.size() == 1 && ct == 0 && max.size() == 0) cout << ct << endl;
  if (min.size() == 1 && max.size() == 0 && ct != 0) cout << min[0] << endl;
  if (min.size() > 1 && min.size() % 2 == 0) {
    for (int i = 0; i < min.size(); ++i) cout << min[i] << " ";
  }
  if (min.size() > 1 && min.size() % 2 == 1) {
    min.pop_back();
    for (int i = 0; i < min.size(); ++i) cout << min[i] << " ";
  }
  for (int i = 0; i < max.size(); ++i) cout << max[i] << " ";
  cout << endl;
  return 0;
}
