inv=3451657199285664
m=1504170715041707
d=4503599627370517
"""
def check_start (start):
    print ("trying start=", start)
    last=1
    for f_result in range(start, 300000):
        f_input=f_result*inv % d
        if f_input>last:
            last=f_input
            f_result_recheck=f_input*m % d
            assert f_result==f_result_recheck
            print (f_input, f_result)
            if f_result==258162:
                print ("stop! start=", start)
                exit(0)
            if f_result>258162:
                break

#for start in range(0,30**5):
#    check_start(start)

check_start(107159)
for i in range(107159, 0, -1):
    tmp=i*inv % d
    print (i, tmp)
"""

tmp=[]
for i in range(1, 668000):
    tmp.append(i*inv % d)
tmp2=sorted(tmp)
#print (tmp2[0:10])

last=668000
for t in tmp2:
    a=t*m % d
    if a<last:
        print (a)
        last=a

