#include<stdio.h>
void da(int*b,int r);
int main()
{
//输入数据
int n;
scanf("%d",&n);
int a[999];
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
}
//记录重复的数的下标
int t=0;
int b[999];
int p;
for(int i=0;i<n;i++){
p=a[i];
for(int m=0;p!=1;m++){
if(p%2==0){
p/=2;
}else{
p=(3*p+1)/2;
}
for(int q=0;q<n;q++){
if(a[q]==p){
b[t]=q;
t++;
}
}
}
}
//记录不重复的数的下标
int c[999];
int cnt=0;
int s=0;
int r=0;
for(;s<n;s++){
for(int i=0;i<t;i++){
if(s==b[i]){
cnt++;
}
}
if(cnt==0){
c[r]=s;
r++;
}
cnt=0;
}
//记录不重复的数
int d[999];
for(int i=0;i<r;i++){
int u;
u=c[i];
d[i]=a[u];
}
//排序
da(d,r);
//输出
int cnt2=0;
for(int i=0;i<r;i++){
if(cnt2!=0){
printf(" ");
}
printf("%d",d[i]);
cnt2++;
}
return 0;
}
//排序函数(从大到小)
void da(int*b,int r)
{
int t,k,l;
for(k=0;k<r;k++){
for(l=k+1;l<r+1;l++){
if(b[k]<b[l])
{
t=b[k];
b[k]=b[l];
b[l]=t;
}
}
}
}
07-08
1254
