# I. 686.
# Rajtik Sándor Barnabás 10. o.
# Budapest, Budapesti Fazekas M. Gyak. Ált. Isk. és Gimn.

a,b=input().split()
a,b=int(a),int(b)

primes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197]

def search(start, end, path):
    if start==end:
        return path

    if start == 1 or end == 1:
        return -1
    
    options = []
    if start not in primes:
        for p in primes:
            if p>start/2:
                break
            if start % p == 0 and p not in path:
                options.append(p)
    else:
        idx = primes.index(start)
        if idx>0:
            sum1=primes[idx-1]+primes[idx]
            if sum1 not in path:
                options.append(primes[idx-1]+primes[idx])
        sum2=primes[idx+1]+primes[idx]
        if sum2 not in path:
            options.append(primes[idx+1]+primes[idx])
    
    if len(options) == 0:
        return -1
    
    for o in options:
        s = search(o, end, path+[o])
        if s != -1:
            return s
    
    return -1

s1 = search(a,b,[a])
s2 = -1
if s1==-1:
    s2 = search(b,a,[b])
    if s2 != -1:
        s2 = " ".join(list(map(str, s2)))
    print(s2)
else:
    s1 = " ".join(list(map(str, s1)))
    print(s1)