def generate_sequence(n):
    """生成xxx定律序列"""
    if not 1 < n <= 1000:
        return []
    
    sequence = []
    seen = set()  # 防止循环
    while n != 1 and n not in seen:
        sequence.append(n)
        seen.add(n)
        if n % 2 == 0:
            n = n // 2
        else:
            n = 3 * n + 1
            n = n // 2  # 修改:加入这一步
    sequence.append(n)  # 添加最后一个数
    return sequence

def find_key_numbers(numbers):
    """查找关键数"""
    key_nums = []
    covered = set()
    
    # 按原始顺序生成序列
    for num in numbers:
        seq = generate_sequence(num)
        # 将除第一个数外的所有数加入覆盖集
        for x in seq[1:]:
            covered.add(x)
    
    # 从后往前检查关键数
    for num in reversed(numbers):
        if num not in covered:
            key_nums.append(num)
    
    return " ".join(map(str, key_nums))

def main():
    while True:
        try:
            n = int(input())
            if not 1 <= n <= 500:
                continue
            
            numbers = list(map(int, input().split()))
            if len(numbers) != n or not all(1 < x <= 1000 for x in numbers):
                continue
                
            print(find_key_numbers(numbers))
            
        except EOFError:
            break

if __name__ == "__main__":
    main()