import math
all_num = []
num = int(input()) #num保存输入的数字
i = 0
while num != 1:
    for i in range(2,int(math.sqrt(num))+1): #寻找num的质数因子,只需要除到sqrt(num),不然会超时
        if num%i == 0: #如果整除,下一步判断是否质数
            flag = 0
            for j in range(1,i + 1):#判断i是否为质数
                flag = j
                if (i % j ==0)&(j!=1)&(j!=i):
                    break
            if(flag == i):#如果上面循环到最后,即i没有除了自己和1之外的因子,认为i是num的一个质数因子
                all_num.append(j) #放到all_num列表中
                num = num/i 
                num = int(num)#num除以找到的因子后继续判断
                break
    if ( i == int(math.sqrt(num))):#到最后num找不到除了1和本身外的因子,认为num是最后一个质数因子
        all_num.append(num)
        num = 1
for i in all_num:
    i = int(i)
    print(i,end =' ')#输出,注意格式要求,没有end = ' '的话就是每个数占一行输出了

ps:本题的难点不在于找质数因子,在于如何不超时,所以如果从2到num的寻找是会超时的,所以只需要找到sqrt(num)即可,数学证明略。