#include <stdio.h>


void BubbleSort(int a[], int len){
    int i, j, temp;
    for (j = 0; j < len - 1; j++){
        for (i = 0; i < len - 1 - j; i++)
            if (a[i] < a[i + 1]){
                temp = a[i];
                a[i] = a[i + 1];
                a[i + 1] = temp;
            }
    }
}

int main() {

    int n,i=0,j=0,temp,len=0;
    int a[100];//输入的数组
    int b[10086] = {0};//求解过程的数组
    int c[101] = {0};//最终结果数组
    scanf("%d", &n);//输入n

    do {
        scanf("%d", &a[i++]);
    } while (getchar() != '\n');
    i = 0;

    for (j = 0; j < n; j++) {
        b[a[j]]=a[j];
    }

    while (i<n) {
        temp = a[i];
        while (temp != 1) {
            if (temp % 2 == 0) {
                temp /= 2;
                b[temp] = 0;
            }
            else {
                temp = (temp * 3 + 1) / 2;
                b[temp] = 0;
            }
        }
        i++;
    }

    j = 0;
    for (i = 0; i < 101; i++) {
        if (b[i] != 0) {
            c[j++] = b[i];
            len++;
        }
    }

    BubbleSort(c, len);//冒泡排序
    i = 0;
    while (c[i] != 0) {
        printf("%d%c", c[i++], c[i + 1] ? ' ' : '\0');
    }

}