#include <bits/stdc++.h>
using namespace std;
unordered_map<string, int> m;
int _2[105], _3[105];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n;
  cin >> n;
  vector<long long> v(n);
  for (int i = 0; i < n; i++) {
    cin >> v[i];
    long long V = v[i];
    while (V % 2 == 0) _2[i]++, V /= 2;
    while (V % 3 == 0) _3[i]++, V /= 3;
  }
  vector<int> p;
  for (int i = 0; i < n; i++) p.push_back(i);
  sort(p.begin(), p.end(), [](int a, int b) -> bool {
    if (_2[a] < _2[b] || _3[a] > _3[b]) return true;
    return false;
  });
  for (int i = 0; i < n; i++) cout << v[p[i]] << " ";
}
