#include <bits/stdc++.h>
const double pi = acos(-1.0);
const long long mod = 25 * 1E8;
using namespace std;
long long a[105];
struct data {
  int x, y, pos;
} d[105];
bool cmp(const data a, const data b) {
  if (a.y == b.y) return a.x < b.x;
  return a.y > b.y;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  memset(d, 0, sizeof(d));
  for (int i = 0; i < n; i++) {
    cin >> a[i];
    d[i].pos = i;
  }
  for (int i = 0; i < n; i++) {
    long long k = a[i];
    while (1) {
      if (k % 2 == 0) {
        k /= 2;
        d[i].x++;
      }
      if (k % 3 == 0) {
        k /= 3;
        d[i].y++;
      }
      if (k % 2 != 0 && k % 3 != 0) break;
    }
  }
  sort(d, d + n, cmp);
  for (int i = 0; i < n - 1; i++) printf("%lld ", a[d[i].pos]);
  printf("%lld\n", a[d[n - 1].pos]);
  return 0;
}
