from Crypto.Util.number import *
import random
flag = bytes_to_long(b'CTF{???}')
while 1:
a,b = random.randint(1,2**64), random.randint(1,2**64)
p = a**5 + 31*a + 1337
q = b**5 + 31*b + 1337
if isPrime(p) and isPrime(q):
break
n = p*q
print(pow(flag,0x10001, n))
print(n)
'''
299283280172784388002621777143112508232897482235938239132301676724645760470709838176572583363898894557257969776348582219682371374315371761439454132629047176255194022346550472893345926373575
364630360821816958168159121172891438234154150910237507963558450347599753587713740340051298831730101264902452950320017666816377883225135609621929933304121406114748546253948502696206562238293
'''
ZnJvbSBDcnlwdG8uVXRpbC5udW1iZXIgaW1wb3J0ICoKaW1wb3J0IHJhbmRvbQpmbGFnID0gYnl0ZXNfdG9fbG9uZyhiJ0NURns/Pz99JykKCndoaWxlIDE6CiAgICBhLGIgPSByYW5kb20ucmFuZGludCgxLDIqKjY0KSwgcmFuZG9tLnJhbmRpbnQoMSwyKio2NCkKICAgIHAgPSBhKio1ICsgMzEqYSArIDEzMzcKICAgIHEgPSBiKio1ICsgMzEqYiArIDEzMzcKICAgIGlmIGlzUHJpbWUocCkgYW5kIGlzUHJpbWUocSk6CiAgICAgICAgYnJlYWsKCm4gPSBwKnEKcHJpbnQocG93KGZsYWcsMHgxMDAwMSwgbikpCnByaW50KG4pCicnJwoyOTkyODMyODAxNzI3ODQzODgwMDI2MjE3NzcxNDMxMTI1MDgyMzI4OTc0ODIyMzU5MzgyMzkxMzIzMDE2NzY3MjQ2NDU3NjA0NzA3MDk4MzgxNzY1NzI1ODMzNjM4OTg4OTQ1NTcyNTc5Njk3NzYzNDg1ODIyMTk2ODIzNzEzNzQzMTUzNzE3NjE0Mzk0NTQxMzI2MjkwNDcxNzYyNTUxOTQwMjIzNDY1NTA0NzI4OTMzNDU5MjYzNzM1NzUKMzY0NjMwMzYwODIxODE2OTU4MTY4MTU5MTIxMTcyODkxNDM4MjM0MTU0MTUwOTEwMjM3NTA3OTYzNTU4NDUwMzQ3NTk5NzUzNTg3NzEzNzQwMzQwMDUxMjk4ODMxNzMwMTAxMjY0OTAyNDUyOTUwMzIwMDE3NjY2ODE2Mzc3ODgzMjI1MTM1NjA5NjIxOTI5OTMzMzA0MTIxNDA2MTE0NzQ4NTQ2MjUzOTQ4NTAyNjk2MjA2NTYyMjM4MjkzCicnJw==