a = int(input().strip())
M = []#记录所有因子

def getPrime(a):
    if a == 2: 
        M.append(a)
        return
    
    for i in range(2,a//2):
        if a%i == 0: # 存在因数,则继续分解
            getPrime(i)
            getPrime(a//i)
            return
        if i*i > a: # 
            break
    #循环结束后,不存在因数,则本身为质数
    M.append(a)
    return

getPrime(a)
output = ""
for i in range(len(M)):
    output += str(M[i])
    output += ' '
print(output)