D. Divide by three, multiply by two
//map,long long int
#include<bits/stdc++.h>
using namespace std;
vector<long long int>a;
map<long long int , int>pre;
map<long long int, long long int>prea;
map<long long int , long long int>preb;
int main()
{
int n;
scanf("%d", &n);
for(int i=0;i<n;i++)
{
long long int x;
scanf("%lld", &x);
a.push_back(x);
pre[x]=1;
}
sort(a.begin(), a.end());
long long int point;
for(int i=0;i<n;i++)
{
long long int x = a[i]*3;
long long int y = 0;
if(a[i]%2==0)
{
y = a[i]/2;
}
// cout<<a[i]<<"@@@@@@@"<<x<<"****"<<y<<"^^^^^^"<<pre[x]<<"^^^^"<<pre[y]<<endl;
if(pre[x])
{
prea[x] = a[i];
preb[a[i]] = x;
}
else if(pre[y])
{
prea[y] = a[i];
preb[a[i]] = y;
}
else
point = a[i];
}
for(int i=0;i<n;i++)
{
// printf("**%lld %lld**\n", prea[a[i]], preb[a[i]]);
printf("%lld%c", point ,i==n-1?'\n':' ');
point = prea[point];
}
return 0;
}