TSALVIA技術メモ

CTFのWriteupや気になったツールについて書いていきます。また、このサイトはGoogle Analyticsを利用しています。

HackTM CTF Quals 2020 Writeup

HackTM CTF Quals 2020 について

HackTM CTF Quals 2020 が開催されました。
2020年02月01日午後5時~2020年02月03日午後5時(48時間)

ctf.hacktm.ro

HackTM CTF 2020の予選大会が開催されました。上位10チームは、ルーマニアに招待してもらえるそうです。 難易度は結構高く、全然解くことができませんでした。頑張って解いたつもりが、終了後振り返ってみると、4.2%しか解けていなかったようです。 今回は、1人で参加しました。 結果は、133/747位で、516点でした。実際に6問解くことができたので、そのWriteupを紹介します。

f:id:tsalvia:20200203224938p:plain

HackTM CTF Quals 2020 Writeup(6問)

RSA is easy #1(crypto)

問題

(問題文なし、作者名のみ)

Author: stackola

添付ファイル

  • challenge_files.zip

解答例

zipファイルを展開すると、rsa.pyとc というファイルが入っていました。 rsa.py は、以下のようになっていました。

import random
from my_math import next_prime

from flag import flag

def egcd(a, b):
    x, y, u, v = 0, 1, 1, 0
    while a != 0:
        q, r = b//a, b % a
        m, n = x-u*q, y-v*q
        b, a, x, y, u, v = a, r, u, v, m, n
        gcd = b
    return gcd, x, y

def gen_keys(p, q):
    e = 65537
    n = p * q
    phi = (p - 1) * (q - 1)
    gcd, d, b = egcd(e, phi)
    # Keys:((pub),  (priv))
    return ((e, n), (d, n))


def enc(key, p):
    e, n = key
    cipher = [pow(ord(char), e, n) for char in p]
    return cipher

def dec(pk, c):
    key, n = pk
    plain = [chr(pow(char, key, n)) for char in c]
    return ''.join(plain)


p = next_prime(random.SystemRandom().getrandbits(512))
q = next_prime(random.SystemRandom().getrandbits(512))

flag_key=gen_keys(p, q)

print("Public key:")
print(flag_key[0])

flag_c=(enc(flag_key[0], flag))

print("Encrypted flag:")
print(flag_c)

また、cファイルには、公開鍵と暗号化されたデータが書かれていました。

Public key:
(65537, 28150970547901913019901824364390497053600856369839321617996700606130553862041378369018779003752433356889118526332329074054728613209407037089320809898343953157935211086135010436283805891893636870991411236307901650696221491790470635225076251966300189483160148297407974155121570252648252906976186499329924342873)

Encrypted flag:
[24603931406187071861602497345394097692989773194039735745762181586628499407802825983901643034231448504738113184470035863824128031443012073830520233613935485192804104698999763287388765215634314977991988580048221541560353418280294402691661980705832590960497587810514295642811714680627768268704899874164681718449, 11226318059664066669163529308725576208632153806776762372429671026861927737060205604020741904348343722215670471225630839065129589767356765848271000166982882271636977663052775953958080543340165408211633442938366994031562890034541604362383645601883118173819506187865617998294930587997187071040181458961091560176, 15645290594995180815865397749136800126080704684884296404807344870555186823350216705796063922278419585484662234210001661578549560411864952462380096494781766394542247609648743673312823946783517115542404474786395934886667795692210287283039316418126796934535150832709500306153601987121172178183970841498331059732, 24345863558959407738249127568820138362115734211146549194534219311913032290216606859385934708675962835857804566049600710875035366973110422262131331932310524891713319358676673958738776644229757625523955354996402750265022578843637525183704187498194489645838490640529841182709661371499013082259193633000753627261, 9620679224297488175028367924764722982789333194446063577221477359704180638294602848741035585656113543497776415635770748468725814916994577398023154224563920936523717884116880223345204061598438291740007518025998041449406726084042681798053863495542392481059281588020105313791046017356493739244555377217866496734, 1681724029430984846089508679185107538104072555994133932050319175633667369916570440070548756805254789524599169177371471218251246349461689959989338169394649813424706418737543924129213419625988100326558802566046751879531469160120914735332858786199496335523515150741728027296830843112416558460932541777024522279, 20629854768856798537062426042570334097651328955665698429979954410631113160492201197690192324881508105172595216229624523572595589920695165876501026993810936392510720968159305964832449680889041278532807173859579419197780294984519222830572413180237776797800176462492384318120546495539728732366110782215071262307, 7440918084186181327822271261394344901791253526257166181264874776746516620936925799031445704193589071453959493392065321806281801023425299535553522582376879027448581379760896052013060957519595664095702210758316558762834545655992756483227787274192094065257224706388623944855362716578806372564148647945479173348, 5097867843777034076271397095201528351784693372027998615436445410912131141882225577577253530396333413579756394884096318434100382509189974240357351425474190558456256750742731090012822064840481143528081027106843123030275420215136304130321013605031261372665636366377162666476737296028608455229357416005773064242, 10420107412794383499391199999666100864853724770814620968725971207705900061273163202891569477729023724554388008575891113425781557296798472693974759813058067631655217722786373465395279381307973425004404348124524059844749313287030234750535347511172780349725636807760402334957881556461382950021814486095167001394, 20895198446192697825002890636650624361863759520944494391240191454443921345578043873584884838772334163748883476104011030592329948454531053024873263786017045083052443924403769542324123323834338391361149767913830998218951574784777785739566046139742309557536025214334831372509789246522325522982945241815388133477, 11226318059664066669163529308725576208632153806776762372429671026861927737060205604020741904348343722215670471225630839065129589767356765848271000166982882271636977663052775953958080543340165408211633442938366994031562890034541604362383645601883118173819506187865617998294930587997187071040181458961091560176, 16657126895659048065404729920028465477385009450133540950695155983380795627778054526133891673615252510518969355629562948102050307259107355106086468465392660721567070464708776158039303608428552547481825035736610837329720474688421062759594907620576318249542577396722737724172954532394471909440668625218820801756, 11113777356910731413424023299582648618258376222028450254478672148119889617557563576704932635131420845868165014982665717620845578039880527701593963719893467068820107811384041511295664833904504511210342105242330522375476482706044695838957591685781703894244561607764476555630573446589408768780659378128082633769, 20895198446192697825002890636650624361863759520944494391240191454443921345578043873584884838772334163748883476104011030592329948454531053024873263786017045083052443924403769542324123323834338391361149767913830998218951574784777785739566046139742309557536025214334831372509789246522325522982945241815388133477, 1681724029430984846089508679185107538104072555994133932050319175633667369916570440070548756805254789524599169177371471218251246349461689959989338169394649813424706418737543924129213419625988100326558802566046751879531469160120914735332858786199496335523515150741728027296830843112416558460932541777024522279, 5237767970074646857079948735567615361735616179074197239639640947679550920349684166643572837235712904929824521258264241503059989875517915784117038966236672390569320206379357882906463342282254405974383459878863044723383164329146669331810709270455492110346838097216174137176255793792848357953314563364460847842, 20895198446192697825002890636650624361863759520944494391240191454443921345578043873584884838772334163748883476104011030592329948454531053024873263786017045083052443924403769542324123323834338391361149767913830998218951574784777785739566046139742309557536025214334831372509789246522325522982945241815388133477, 2141625583250052666579569568613448089970148215959031795439930595139028085767825695294403905882459409861220995951141855281841435481587946825079031782977651718402048988278639212978854590412709087674713750292922397103941195760574072700517109381299788645871729355745594573785064162048047595009933642068871994670, 278354276293884030290100330445865286604723740111170856624965259573282278044823323212960304154629174664076141280100412502135750130875356944835909175355370317285768658282746817782130476757714384697086179400629156643250500432197002583758692394681401772203578628635926749457621478296182304772136118691761841359, 6039667595601233082552071610487048398346324705021423176423484623705376133358539134558362499891954091431687578305623106726900655384011241742715735786166290331136153240702822544221903404870992713778423167867663948083662620087859096707381620051266745156545213726214080049764382107442159825610310695543673475542, 21353765873487781085375016306418205544750755310255410963646737671193146222650262290683259548572190880304009015662963424520575937651278866672082973874806201031606257157229306007587966460187818647603633973019548401357989358306250139692325474674826791149726161678649996852062656272851387461089863388359261125336, 11226318059664066669163529308725576208632153806776762372429671026861927737060205604020741904348343722215670471225630839065129589767356765848271000166982882271636977663052775953958080543340165408211633442938366994031562890034541604362383645601883118173819506187865617998294930587997187071040181458961091560176, 20576388598886140095325204584799302384454378372204683348252463729525849583734948105765087991438423260690623246579570440405616572326057536248148020737810766134083795050076636686776809469271643188562482921546497071402873405706504773345621716428511481598704631451463399778602486417840466985891815649711178813963, 17347447662661486040040289855519394974371562320877472776529836975445205017304164550202099250096382852783253959549113036367974281750823938616836362593312254792770954856762797438690474329666549947795964992533463700161635382925555835347885819042031312006167190561233042383984087765920275010577545908085026177611, 11788628214684738246695632901992250075758959059858474645166125685861157046466064692980236734739634298802473894878268029860203026238925142258303727438570051822763330338744774300757888262747314093511013562545738571326771345495509434761853742569509480619380000424215527153118231084573851377049921456961916278761, 20895198446192697825002890636650624361863759520944494391240191454443921345578043873584884838772334163748883476104011030592329948454531053024873263786017045083052443924403769542324123323834338391361149767913830998218951574784777785739566046139742309557536025214334831372509789246522325522982945241815388133477, 2141625583250052666579569568613448089970148215959031795439930595139028085767825695294403905882459409861220995951141855281841435481587946825079031782977651718402048988278639212978854590412709087674713750292922397103941195760574072700517109381299788645871729355745594573785064162048047595009933642068871994670, 2710029303357232932696197225263692040597986927359269224740812600224998707144266259851604978553286889767425982708691908438984279442981540971935737617354609856642312100797081348174935195638083002333058089328102430432526612805955273581245352312630845237670744276402867230550537275379675828467791243032108754996, 19981107233593350929447953514006501458466479260151660185153999799085657467921097940751860717309377498501638075002136637344148955811617399850718322497572421311807629329642551519284713638882025500074565475569618691516951449764680555447185364165687596161053684299589053909233984617244886185728811651967713024530, 3975884358027162862622932959187611984655247354547659825042810425039322096401899672988989768997134724085482147901304365437476311647149733392577446833370358728610677436154877051592307539990184750467273668379065865808900410057533079113476991204462719784464847498582643056503810805516315622314948257403761762299, 6039667595601233082552071610487048398346324705021423176423484623705376133358539134558362499891954091431687578305623106726900655384011241742715735786166290331136153240702822544221903404870992713778423167867663948083662620087859096707381620051266745156545213726214080049764382107442159825610310695543673475542, 14296542628093736444815382636071360035549021313467366701986569710120268508807886041986007828960248665683292143486565404978073122476968882030310174125355932205646388813061197657253533595700948593692407928813318978600474254105007396254987998953819782624738628334271910759242195864082910860797444993756044746481, 20895198446192697825002890636650624361863759520944494391240191454443921345578043873584884838772334163748883476104011030592329948454531053024873263786017045083052443924403769542324123323834338391361149767913830998218951574784777785739566046139742309557536025214334831372509789246522325522982945241815388133477, 7983594351048693624291138893287137601848867970873700373034058935656045095987011116108642350616654713531373295621458596238107660073931212524833777531450461876588350132328332972361857441613098452082271331281504722310376573085001395356078670960667878342134517577992585442881605030717788248137764480486762452442, 7983594351048693624291138893287137601848867970873700373034058935656045095987011116108642350616654713531373295621458596238107660073931212524833777531450461876588350132328332972361857441613098452082271331281504722310376573085001395356078670960667878342134517577992585442881605030717788248137764480486762452442, 23267174349531278768420819619439317179083929128083924515569762521057285892931325108327037262091624670335579302436476096123152288550738706103166820604983405317430467198343871458522070337902643863890959573514405066297449924638838605501211486861582957963752388608487593217237563529201436917108304692859773404548]

rsa.pyをよく読むと、文字列を1文字ずつに分解して、それぞれを暗号化しているようです。 また、公開鍵があるので、eとnが判明しています。

1文字ずつ暗号化しているので、総当たりで暗号化して比較すれば、どの文字が暗号化されているのかが分かりそうです。 以下のように総当たりで暗号化して比較するスクリプトを作成しました。

import string

def main():
    with open("c", "r") as f:
        lines = f.readlines()    
    e, n = eval(lines[1])
    c_list = eval(lines[4])

    flag = ""
    for c in c_list:
        for char in string.printable:
            if c == pow(ord(char), e, n):
                flag += char
                break
    print(flag)

if __name__ == "__main__":
    main()

実行するとフラグを取得することができました。

$ python solve.py
HackTM{why_ar3_MY_pR1va7es_pu8l1C_??}

FLAG

HackTM{why_ar3_MY_pR1va7es_pu8l1C_??}

RSA is easy #2(crypto)

問題

Provide the flag in this format:

HackTM{words_you_found}

Example:
If you find "i am a flag"
submit:
HackTM{i_am_a_flag}

Author: stackola

添付ファイル

  • challenge_files_2.zip

解答例

zipファイルを展開すると、rsa.pyとc というファイルが入っていました。 rsa.py は、「RSA is easy #1」と同じファイルでした。 cというファイルは、以下のようになっていました。

Public key:
[DATA CORRUPTED]

Encrypted flag:
[34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 22898825038689625715487339309684047496088088286379048682632329486928624317960893419908872575544541743109960984821146081005860923057711786824611353925189608095318119267730739890712604642525421504696090823029339278724706589872240410882755614978083387780278129076143536569517954666638462991000336176075614807880, 32673744615799712487218586784858666657615496658878295924699304141157435241805321678825497057203170526047413088723755930727839423037832480520297361079311603101279858983310265841651031957166707800564192379099456051456890378670008176632913201998572911894331423107676669652519124282681545581828946130363768378027, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 39071839511948638988080907036852746654085273366404837973213329692814484554408908523546999438831321352816110395822192272922701572846039352688552458816923896373772472819785936751685465282644216513301671688378689515602296293965301386883552780271126801778759956341143215735911106078099952795281272294184101222894, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 27576274928869221620126245883590920739381444228403264811604678585326136261919043025439432380393614033747213164606047970194501234144690982453937415512291833747115414764529517980671948859099514533322022692971474660454113892401294955396004739513550951184454650026652626364585678702730119565114784074733394949336, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1176875645989444228120683125555162464459775615749992327233861740655598304185200372099710632670669740275928889234588484578424676523579010677635946710527054032662591517295007580344076297705713808521731216834723911361610732077241004086348355880037625191238102086425263717843500661215346831687259608549125530807, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 27576274928869221620126245883590920739381444228403264811604678585326136261919043025439432380393614033747213164606047970194501234144690982453937415512291833747115414764529517980671948859099514533322022692971474660454113892401294955396004739513550951184454650026652626364585678702730119565114784074733394949336, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1176875645989444228120683125555162464459775615749992327233861740655598304185200372099710632670669740275928889234588484578424676523579010677635946710527054032662591517295007580344076297705713808521731216834723911361610732077241004086348355880037625191238102086425263717843500661215346831687259608549125530807, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 1176875645989444228120683125555162464459775615749992327233861740655598304185200372099710632670669740275928889234588484578424676523579010677635946710527054032662591517295007580344076297705713808521731216834723911361610732077241004086348355880037625191238102086425263717843500661215346831687259608549125530807, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 52840621689121797895256363389338274694450461789829175087736646052885972599541176587393339836186116798179639665528641843475425650830795547188378088601848535424795824136246287654182750346069524432086206082201048105736692531622222816403756012329174735009131234941877426201644907061786470186383501136594209222405, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 52840621689121797895256363389338274694450461789829175087736646052885972599541176587393339836186116798179639665528641843475425650830795547188378088601848535424795824136246287654182750346069524432086206082201048105736692531622222816403756012329174735009131234941877426201644907061786470186383501136594209222405, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 38802989341210530457378237385843973124921316122128304138276723482825938449328688522058677634210417960328667542939425659386994898427574509818766303473446802692515345332427976398389916234534200995301483992776549890379656184952685366723722458147873775598641647772939243953968981681779761004069962129149532525241, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 52840621689121797895256363389338274694450461789829175087736646052885972599541176587393339836186116798179639665528641843475425650830795547188378088601848535424795824136246287654182750346069524432086206082201048105736692531622222816403756012329174735009131234941877426201644907061786470186383501136594209222405, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 39071839511948638988080907036852746654085273366404837973213329692814484554408908523546999438831321352816110395822192272922701572846039352688552458816923896373772472819785936751685465282644216513301671688378689515602296293965301386883552780271126801778759956341143215735911106078099952795281272294184101222894, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1176875645989444228120683125555162464459775615749992327233861740655598304185200372099710632670669740275928889234588484578424676523579010677635946710527054032662591517295007580344076297705713808521731216834723911361610732077241004086348355880037625191238102086425263717843500661215346831687259608549125530807, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 50154500011327049415150110613714558756986965132059956858621967629544808661996323441483612798709196285670748400127394046198652122647065373883652074401488461140240807698457285933739509452128499026773680398001271333305476126787388797879767072284116978372707084228927669307533874093727830120482310649071798909223, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 1176875645989444228120683125555162464459775615749992327233861740655598304185200372099710632670669740275928889234588484578424676523579010677635946710527054032662591517295007580344076297705713808521731216834723911361610732077241004086348355880037625191238102086425263717843500661215346831687259608549125530807, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 27576274928869221620126245883590920739381444228403264811604678585326136261919043025439432380393614033747213164606047970194501234144690982453937415512291833747115414764529517980671948859099514533322022692971474660454113892401294955396004739513550951184454650026652626364585678702730119565114784074733394949336, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 27576274928869221620126245883590920739381444228403264811604678585326136261919043025439432380393614033747213164606047970194501234144690982453937415512291833747115414764529517980671948859099514533322022692971474660454113892401294955396004739513550951184454650026652626364585678702730119565114784074733394949336, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 1176875645989444228120683125555162464459775615749992327233861740655598304185200372099710632670669740275928889234588484578424676523579010677635946710527054032662591517295007580344076297705713808521731216834723911361610732077241004086348355880037625191238102086425263717843500661215346831687259608549125530807, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 27576274928869221620126245883590920739381444228403264811604678585326136261919043025439432380393614033747213164606047970194501234144690982453937415512291833747115414764529517980671948859099514533322022692971474660454113892401294955396004739513550951184454650026652626364585678702730119565114784074733394949336, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 39071839511948638988080907036852746654085273366404837973213329692814484554408908523546999438831321352816110395822192272922701572846039352688552458816923896373772472819785936751685465282644216513301671688378689515602296293965301386883552780271126801778759956341143215735911106078099952795281272294184101222894, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 27576274928869221620126245883590920739381444228403264811604678585326136261919043025439432380393614033747213164606047970194501234144690982453937415512291833747115414764529517980671948859099514533322022692971474660454113892401294955396004739513550951184454650026652626364585678702730119565114784074733394949336, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 27576274928869221620126245883590920739381444228403264811604678585326136261919043025439432380393614033747213164606047970194501234144690982453937415512291833747115414764529517980671948859099514533322022692971474660454113892401294955396004739513550951184454650026652626364585678702730119565114784074733394949336, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 52840621689121797895256363389338274694450461789829175087736646052885972599541176587393339836186116798179639665528641843475425650830795547188378088601848535424795824136246287654182750346069524432086206082201048105736692531622222816403756012329174735009131234941877426201644907061786470186383501136594209222405, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 39071839511948638988080907036852746654085273366404837973213329692814484554408908523546999438831321352816110395822192272922701572846039352688552458816923896373772472819785936751685465282644216513301671688378689515602296293965301386883552780271126801778759956341143215735911106078099952795281272294184101222894, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 50154500011327049415150110613714558756986965132059956858621967629544808661996323441483612798709196285670748400127394046198652122647065373883652074401488461140240807698457285933739509452128499026773680398001271333305476126787388797879767072284116978372707084228927669307533874093727830120482310649071798909223, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 38802989341210530457378237385843973124921316122128304138276723482825938449328688522058677634210417960328667542939425659386994898427574509818766303473446802692515345332427976398389916234534200995301483992776549890379656184952685366723722458147873775598641647772939243953968981681779761004069962129149532525241, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 27576274928869221620126245883590920739381444228403264811604678585326136261919043025439432380393614033747213164606047970194501234144690982453937415512291833747115414764529517980671948859099514533322022692971474660454113892401294955396004739513550951184454650026652626364585678702730119565114784074733394949336, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 50154500011327049415150110613714558756986965132059956858621967629544808661996323441483612798709196285670748400127394046198652122647065373883652074401488461140240807698457285933739509452128499026773680398001271333305476126787388797879767072284116978372707084228927669307533874093727830120482310649071798909223, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1176875645989444228120683125555162464459775615749992327233861740655598304185200372099710632670669740275928889234588484578424676523579010677635946710527054032662591517295007580344076297705713808521731216834723911361610732077241004086348355880037625191238102086425263717843500661215346831687259608549125530807, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 1176875645989444228120683125555162464459775615749992327233861740655598304185200372099710632670669740275928889234588484578424676523579010677635946710527054032662591517295007580344076297705713808521731216834723911361610732077241004086348355880037625191238102086425263717843500661215346831687259608549125530807, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 52840621689121797895256363389338274694450461789829175087736646052885972599541176587393339836186116798179639665528641843475425650830795547188378088601848535424795824136246287654182750346069524432086206082201048105736692531622222816403756012329174735009131234941877426201644907061786470186383501136594209222405, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 27576274928869221620126245883590920739381444228403264811604678585326136261919043025439432380393614033747213164606047970194501234144690982453937415512291833747115414764529517980671948859099514533322022692971474660454113892401294955396004739513550951184454650026652626364585678702730119565114784074733394949336, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 47570760099332538630074246588266937941307517820515142582135658748192399272005539496578959306267521195254022986091052760574620123103280649808061816984656151624030812710123783651478012545264847339309664114861788542619162083048255751820685971177031319072241032895991001430158963380558156843892347920250300986171, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 930044605345939201480478373277413008095802574786191190905074555539638928544692229073288242327962810058855318227403376039279203240132190223148619950893934472181209933145274613718642434124893448103578245304758494945314633484270441574356508120432815219715951750624307928142686494962369790708881847436477126536, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 27576274928869221620126245883590920739381444228403264811604678585326136261919043025439432380393614033747213164606047970194501234144690982453937415512291833747115414764529517980671948859099514533322022692971474660454113892401294955396004739513550951184454650026652626364585678702730119565114784074733394949336, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 50154500011327049415150110613714558756986965132059956858621967629544808661996323441483612798709196285670748400127394046198652122647065373883652074401488461140240807698457285933739509452128499026773680398001271333305476126787388797879767072284116978372707084228927669307533874093727830120482310649071798909223, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1176875645989444228120683125555162464459775615749992327233861740655598304185200372099710632670669740275928889234588484578424676523579010677635946710527054032662591517295007580344076297705713808521731216834723911361610732077241004086348355880037625191238102086425263717843500661215346831687259608549125530807, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524, 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103, 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 27576274928869221620126245883590920739381444228403264811604678585326136261919043025439432380393614033747213164606047970194501234144690982453937415512291833747115414764529517980671948859099514533322022692971474660454113892401294955396004739513550951184454650026652626364585678702730119565114784074733394949336, 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472, 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889, 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582, 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151, 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832, 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799]

今回は、公開鍵も隠されているようです。ただし、ファイルサイズがかなり大きくなっています。

ls -lh c
-rwxr-xr-x 1 root root 337K Feb  2 09:50 c

まずは、暗号化されたデータが何パターンあるのかを調べてみました。どうやら、31パターンあるようです。 アルファベット(26文字)+5つの文字?で構成されているようです。

$ tail -n 1 c | sed "s/\[//" | sed "s/\]//" | sed "s/, /\n/g" | sort | uniq | wc -l 
31

とりあえず、適当な31文字を割り当てて出力させてみます。以下のスクリプトで割り当てました。

import string

def main():
    with open("c", "r") as f:
        lines = f.readlines()
    c_flags = lines[4].strip()[1:-1].split(", ")

    key_list = string.ascii_lowercase + "!#$%&"
    pattern = dict(zip(set(c_flags), key_list[:31]))

    for c in c_flags:
        print(pattern[c], end="")
    print()

if __name__ == "__main__":
    main()

実行すると以下のようになります。

$ python solve.py
n$stkfknezkftk&pllscskftka$skseylbk%wzvkfkusifzsukn$eakfkdslfsisuknezkekdyfllfetakst&ybxafptkz&$sgs!kekzfgxlskxzsrupyetupgktrgdsykzaysegknezkeuusukapka$skxleftashakzaysegkapk&yseask&fx$syasha!ka$fzknprlukzssgftclbka$neyaketbk#ysorst&bketelbzfzkp#ka$sk&fx$syashavketuknprlukdskrt&ye&jedlsksistkapka$skgpzakyszpry&s#rlkcpisytgstakftasllfcst&skecst&fsz!kfk#slakzpkzgrckedprakgbke&$fsisgsta!kbseyzkleasyvkfkufz&pisysuka$fzkzegskz&$sgskftkzsisyelkftaypur&apybk&ybxapcyex$bkashazketukarapyfelkxexsyz!k$pnktf&s!kpa$syk&ybxapcyex$syzk$euka$prc$akp#ka$skzegskz&$sgs!krt#pyarteaslbvka$skz&$sgsknezkxyszstasukezkekzfgxlsk$pgsnpyjkezzfctgstakptk$pnkapkrzskslsgstaeybk&ybxaetelbaf&kas&$tforszkapkayfifellbk&ye&jkfa!kzpkgr&$k#pykgbkdyfllfetakz&$sgs!k#ypgka$fzk$rgdlftckshxsyfst&skfklseytsuk$pnksezbkfakfzkapk#ellkftapkek#elzskzstzskp#kzs&ryfabkn$stkusifzftcketkst&ybxafptkelcpyfa$g!kgpzakxspxlskuptmakyselfqsk$pnk#fstufz$lbkuf##f&rlakfakfzkapkusifzsketkst&ybxafptkelcpyfa$gka$eak&etknfa$zaetukekxyplptcsuketukusasygftsukeaae&jkdbkekyszpry&s#rlkpxxptsta!k$syskfzka$sk#lec!kn$stkfak&pgszkapk&ybxapkpyk&eyxsaktsisykypllkbprykpnt

次にこの文字列の頻度分析をしてみます。 今回は以下のサイトで行いました。

tools.m-bsys.com

分析結果は、以下のような感じになりました。

f:id:tsalvia:20200206025217p:plain

英文の場合、一番多くなる文字は、スペースです。そのため、最も出現回数の多い、kをスペースに置き換えました。 また、次の工程の都合上すべてのアルファベットが存在していたほうがいいので、#とkを置き換えました。

置換作業は、CyberChefで行いました。

f:id:tsalvia:20200206030654p:plain

n$st f nez ft &pllscs ft a$s seylb %wzv f usifzsu n$ea f dslfsisu nez e dyfllfeta st&ybxafpt z&$sgs! e zfgxls xzsrupyetupg trgdsy zayseg nez euusu ap a$s xleftasha zayseg ap &yseas &fx$syasha! a$fz nprlu zssgftclb a$neya etb 
kysorst&b etelbzfz pk a$s &fx$syashav etu nprlu ds rt&ye&jedls sist ap a$s gpza yszpry&skrl cpisytgsta ftasllfcst&s ecst&fsz! f ksla zp zgrc edpra gb e&$fsisgsta! bseyz leasyv f ufz&pisysu a$fz zegs z&$sgs ft zsisyel ftaypur&apyb 
&ybxapcyex$b ashaz etu arapyfel xexsyz! $pn tf&s! pa$sy &ybxapcyex$syz $eu a$prc$a pk a$s zegs z&$sgs! rtkpyarteaslbv a$s z&$sgs nez xyszstasu ez e zfgxls $pgsnpyj ezzfctgsta pt $pn ap rzs slsgstaeyb &ybxaetelbaf& 
as&$tforsz ap ayfifellb &ye&j fa! zp gr&$ kpy gb dyfllfeta z&$sgs! kypg a$fz $rgdlftc shxsyfst&s f lseytsu $pn sezb fa fz ap kell ftap e kelzs zstzs pk zs&ryfab n$st usifzftc et st&ybxafpt elcpyfa$g! gpza xspxls uptma yselfqs $pn 
kfstufz$lb ufkkf&rla fa fz ap usifzs et st&ybxafpt elcpyfa$g a$ea &et nfa$zaetu e xyplptcsu etu usasygftsu eaae&j db e yszpry&skrl pxxptsta! $sys fz a$s klec! n$st fa &pgsz ap &ybxap py &eyxsa tsisy ypll bpry pnt

上記の文字列をquipqiupにかけてみました。

quipqiup.com

以下、変換結果となります。それっぽい英文になってきました。

f:id:tsalvia:20200206030847p:plain

w$en i was in &ollege in t$e early %csj i devised w$at i believed was a brilliant en&ryption s&$eme! a simple pseudorandom number stream was added to t$e plaintext stream to &reate &ip$ertext! t$is would seemingly t$wart 
any frequen&y analysis of t$e &ip$ertextj and would be un&ra&kable even to t$e most resour&eful government intelligen&e agen&ies! i felt so smug about my a&$ievement! years laterj i dis&overed t$is same s&$eme in 
several introdu&tory &ryptograp$y texts and tutorial papers! $ow ni&e! ot$er &ryptograp$ers $ad t$oug$t of t$e same s&$eme! unfortunatelyj t$e s&$eme was presented as a simple $omework assignment on $ow to use 
elementary &ryptanalyti& te&$niques to trivially &ra&k it! so mu&$ for my brilliant s&$eme! from t$is $umbling experien&e i learned $ow easy it is to fall into a false sense of se&urity w$en devising an en&ryption algorit$m! 
most people donht realize $ow fiendis$ly diffi&ult it is to devise an en&ryption algorit$m t$at &an wit$stand a prolonged and determined atta&k by a resour&eful opponent! $ere is t$e flag! w$en it &omes to &rypto or &arpet 
never roll your own

ここからは、CyberChefで調整します。

f:id:tsalvia:20200206031817p:plain

最終的に以下の文書が出てきました。

when i was in college in the early %cs, i devised what i believed was a brilliant encryption scheme. 
a simple pseudorandom number stream was added to the plaintext stream to create ciphertext. 
this would seemingly thwart any frequency analysis of the ciphertext, and would be uncrackable even to the most resourceful government intelligence agencies. 
i felt so smug about my achievement. 
years later, i discovered this same scheme in several introductory cryptography texts and tutorial papers. 
how nice. 
other cryptographers had thought of the same scheme. 
unfortunately, the scheme was presented as a simple homework assignment on how to use elementary cryptanalytic techniques to trivially crack it. 
so much for my brilliant scheme. 
from this humbling experience i learned how easy it is to fall into a false sense of security when devising an encryption algorithm. 
most people donht realize how fiendishly difficult it is to devise an encryption algorithm that can withstand a prolonged and determined attack by a resourceful opponent. 
here is the flag. 
when it comes to crypto or carpet never roll your own

「here is the flag. when it comes to crypto or carpet never roll your own」と書かれているので、 フラグは、HackTM{when_it_comes_to_crypto_or_carpet_never_roll_your_own} となります。

FLAG

HackTM{when_it_comes_to_crypto_or_carpet_never_roll_your_own}

Bad keys(crypto)

問題

I captured this encrypted message a while ago.
Today, I got into their network and managed to take a snapshot of their key server. I don't think more than 10k messages have been sent between when I captured the message and when I took the snapshot.

You can access the snapshot here:
nc 138.68.67.161 60005

Author: stackola
Hint! You do NOT need to get 10k keys from the server to solve this challenge.

添付ファイル

  • challenge_files.zip

解答例

zipファイルを展開すると、rsa.py、RSA_PUB、flag.encというファイルが入っていました。 rsa.py は、以下のようになっていました。

def int_to_bytes(x: int) -> bytes:
    return x.to_bytes((x.bit_length() + 7) // 8, 'big')


def int_from_bytes(xbytes: bytes) -> int:
    return int.from_bytes(xbytes, 'big')


def egcd(a, b):
    x, y, u, v = 0, 1, 1, 0
    while a != 0:
        q, r = b//a, b % a
        m, n = x-u*q, y-v*q
        b, a, x, y, u, v = a, r, u, v, m, n
        gcd = b
    return gcd, x, y


def enc(key, plaintext):
    e, n = key
    m = int_from_bytes(plaintext.encode())
    return pow(m, e, n)


def dec(key, ciphertext):
    d, n = key
    plain = ""
    return int_to_bytes(pow(ciphertext, d, n))

# keys: Public: (e,n), Private (d,n)


def generate_keypair(p, q):
    e = 65537
    n = p * q
    phi = (p - 1) * (q - 1)
    gcd, d, b = egcd(e, phi)
    # Keys:((pub),  (priv))
    return ((e, n), (d, n))

'''
#demo usage

message = "Hello there"
k = generate_keypair(p, q)
c = enc(k[0], message)
p = dec(k[1], c)

print(k)
print(c)
print(p)
'''

RSA_PUBは、以下のようになっていました。

(65537, 2318553827267041599931064141028026591078453523755133761420994537426231546233197332557815088229590256567177621743082082713100922775483908922217521567861530205737139513575691852244362271068595653732088709994411183164926098663772268120044065766077197167667585331637038825079142327613226776540743407081106744519)

flag.encは、以下のようになっていました。

2255296633936604604490193777189642999170921517383872458719910324954614900683697288325565056935796303372973284169167013060432104141786712034296127844869460366430567132977266285093487512605926172985342614713659881511775812329365735530831957367531121557358020217773884517112603921006673150910870383826703797655

今回は、「RSA is easy」問題と違い、2文字以上で暗号化しているようです。また、RSA鍵を取得するためのサーバも用意されていました。 接続してみると、以下のような出力となっていました。

$ nc 138.68.67.161 60005
Starting key server from snapshot #8055 ...
Enter 'k' to generate the next key
> k
Your RSA keys:
((pub),(priv))
((e,n),(d,n ))
((65537, 157881229359772769714848243968068862463625997582345288232056584741314473985996617962450846231719495546470148462598626085067565208140283367153293493384457457550266123872607654948335527118776973103659245655803667136606703981989414874502738890970876351598067034702209404379539250985879761048604965542951204994791), (53478270451158821961638710466563325721806514187870715068792043039389047530633671393997990989791126869342368825567647290269845736843403733271830603470429994383742221745911931763546385145143651302908921750006314286141259990023811574860761467203121821987998973790435378759450668015181853807551371473198883686617, 157881229359772769714848243968068862463625997582345288232056584741314473985996617962450846231719495546470148462598626085067565208140283367153293493384457457550266123872607654948335527118776973103659245655803667136606703981989414874502738890970876351598067034702209404379539250985879761048604965542951204994791))
Enter 'k' to generate the next key
> 

何個も鍵を取得することができ、かつタイトルが「Bad keys」となっているので、 鍵に使用されている素数が使いまわされているかもしれないと、以下のスクリプトを書いて確認してみました。

#!/usr/bin/env python3
from fractions import gcd
from pwn import *

HOST = '138.68.67.161'
PORT = 60005

def get_n(host, port):
    io = remote(HOST, PORT)
    io.sendlineafter('> ', 'k')
    resp = io.readuntil("Enter 'k' to generate the next key")
    ((e,n),(d,n)) = eval(resp.decode().split('\n')[3])
    log.info('get_n: {}'.format(n))
    io.close()
    return n

def solve_p(n1, n2):
    return gcd(n1, n2)

def main():
    n1 = get_n(HOST, PORT)
    n2 = get_n(HOST, PORT)
    p = solve_p(n1, n2)

    log.info('n1: {}'.format(n1))
    log.info('n2: {}'.format(n2))
    log.info('p: {}'.format(p))

    q1 = n1//p
    q2 = n2//p
    log.info('q1: {}'.format(q1))
    log.info('q2: {}'.format(q2))

    log.info('n1 == p*q1: {}'.format(n1==p*q1))
    log.info('n2 == p*q2: {}'.format(n2==p*q2))

if __name__ == "__main__":
    main()

実行すると、以下のようになりました。予想通り、12117717634661447128647943483912040772241097914126380240028878917605920543320951000813217299678214801720664141663955381289172887935222185768875580129863163 が使いまわされているようです。

$ python test.py 
[+] Opening connection to 138.68.67.161 on port 60005: Done
[*] get_n: 53319925448856672322236843509779016248190802092190279777009714966875612646942713462649719504154649958668078165429532291223312452398952372819643710916082310731569654500409619464726423984516505927955056766188809066613629717700838970044823482381151088365001437253473232617915843139237779016158467347011192908383
[*] Closed connection to 138.68.67.161 port 60005
[+] Opening connection to 138.68.67.161 on port 60005: Done
[*] get_n: 24015810877005139987917516906830839587896158648690839014400968518231643036640520047667991009243044790218469792596450951184139421010454791384968733134781801389161064249432268321511602333422088847281701915942249335321977954963168372985886362543554703788878940825322413766469685473405953972039869271009363407371
[*] Closed connection to 138.68.67.161 port 60005
[*] n1: 53319925448856672322236843509779016248190802092190279777009714966875612646942713462649719504154649958668078165429532291223312452398952372819643710916082310731569654500409619464726423984516505927955056766188809066613629717700838970044823482381151088365001437253473232617915843139237779016158467347011192908383
[*] n2: 24015810877005139987917516906830839587896158648690839014400968518231643036640520047667991009243044790218469792596450951184139421010454791384968733134781801389161064249432268321511602333422088847281701915942249335321977954963168372985886362543554703788878940825322413766469685473405953972039869271009363407371
[*] p: 12117717634661447128647943483912040772241097914126380240028878917605920543320951000813217299678214801720664141663955381289172887935222185768875580129863163
[*] q1: 4400162394966249759084109006540080878594914334925253131457135935352058605010812844351706613437234231148157078142449546063322706005750408032483092837544941
[*] q2: 1981875762504191220822778089963290298324708790405750814261721622649183949626250545785224757064640775994852515158166919708058115534674041064723827037927217
[*] n1 == p*q1: True
[*] n2 == p*q2: True

求めたpを使って、flag.encを復号しようとしてみましたが、うまくいきませんでした。どうやら、先ほど求めたpは、使われていないようです。

ここで問題文を振り返ってみると、「I captured this encrypted message a while ago.」と書かれています。 少し前なので、現在のpに近い値かつpより小さい素数が使われているかもしれないと考えました。 sympyのprevprimeを使って1つずつ前の素数を辿っていくように調整しました。

#!/usr/bin/env python3
from fractions import gcd
from sympy import prevprime
from egcd import egcd
from Crypto.Util.number import *
from pwn import *

HOST = '138.68.67.161'
PORT = 60005

def get_n(host, port):
    io = remote(HOST, PORT)
    io.sendlineafter('> ', 'k')
    resp = io.readuntil("Enter 'k' to generate the next key")
    ((e,n),(d,n)) = eval(resp.decode().split('\n')[3])
    log.info('get_n: {}'.format(n))
    io.close()
    return n

def solve_p(n1, n2):
    return gcd(n1, n2)

def search_prime(n, current_p):
    p = current_p
    while True:
        p = prevprime(p)
        q = n//p
        if n == p*q:
            break
    return (p, q)

def calc_d(e, p, q):
    phi = (p-1)*(q-1)
    d = egcd(e, phi)[1]
    if d < 0:
        d += phi
    return d

def main():
    n1 = get_n(HOST, PORT)
    n2 = get_n(HOST, PORT)
    current_p = solve_p(n1, n2)

    log.info('n1: {}'.format(n1))
    log.info('n2: {}'.format(n2))
    log.info('currnt_p: {}'.format(current_p))

    with open("RSA_PUB", "r") as f:
        e, n = eval(f.readline())

    log.info('e: {}'.format(e))
    log.info('n: {}'.format(n))

    p, q = search_prime(n, current_p)

    log.info('p: {}'.format(p))
    log.info('q: {}'.format(q))
    
    d = calc_d(e, p, q)
    log.info('d: {}'.format(d))

    with open("flag.enc", "r") as f:
        c = int(f.readline())
    log.info('c: {}'.format(c))

    m = pow(c, d, n)
    log.info('m: {}'.format(long_to_bytes(m).decode("utf-8")))

if __name__ == "__main__":
    main()

実行すると、pを特定することができました。特定したpを使ってflag.encを復号すると、フラグを取得することができました。

$ python solve.py
[+] Opening connection to 138.68.67.161 on port 60005: Done
[*] get_n: 18281887655641124885261826127400013895934350002546878242817029330833820859931623691117255168713635493624084952573804355195527071599182410750402620804471250989090533765187676387281440928222042918457825183980202555532465787842705001561929658798371910629712031647310190316819110442914129507961084215156920556587
[*] Closed connection to 138.68.67.161 port 60005
[+] Opening connection to 138.68.67.161 on port 60005: Done
[*] get_n: 78465080994718747950131323692763733829227186616316601557852832392150274425031253507870952138651230136827085230153382778047193202136027740842197749297431682842237493175100181329682260917174473797079498092035879035105108422444616250407199811384568015163220590309826790762984967156211681166631507219900815454507
[*] Closed connection to 138.68.67.161 port 60005
[*] n1: 18281887655641124885261826127400013895934350002546878242817029330833820859931623691117255168713635493624084952573804355195527071599182410750402620804471250989090533765187676387281440928222042918457825183980202555532465787842705001561929658798371910629712031647310190316819110442914129507961084215156920556587
[*] n2: 78465080994718747950131323692763733829227186616316601557852832392150274425031253507870952138651230136827085230153382778047193202136027740842197749297431682842237493175100181329682260917174473797079498092035879035105108422444616250407199811384568015163220590309826790762984967156211681166631507219900815454507
[*] currnt_p: 12117717634661447128647943483912040772241097914126380240028878917605920543320951000813217299678214801720664141663955381289172887935222185768875580129863163
[*] e: 65537
[*] n: 2318553827267041599931064141028026591078453523755133761420994537426231546233197332557815088229590256567177621743082082713100922775483908922217521567861530205737139513575691852244362271068595653732088709994411183164926098663772268120044065766077197167667585331637038825079142327613226776540743407081106744519
[*] p: 12117717634661447128647943483912040772241097914126380240028878917605920543320951000813217299678214801720664141663955381289172887935222185768875580128178823
[*] q: 191335851945837067856377662680848400296318974773300853031596930993909166558084000989878627579396244459141148723017644937657511582545081598962216442940353
[*] d: 2043314668072425068087011483488040829163956851420194098881431580605258944043681864237632574742152439821024427407650515758435235008371212103399871724292806951168923522722704683003512030221232905519279116289520649589591362133740351349387154813919618825576125226745251858019443068382321303211961987200618339457
[*] c: 2255296633936604604490193777189642999170921517383872458719910324954614900683697288325565056935796303372973284169167013060432104141786712034296127844869460366430567132977266285093487512605926172985342614713659881511775812329365735530831957367531121557358020217773884517112603921006673150910870383826703797655
[*] m: HackTM{SanTa_ple@s3_TakE_mE_0ff_yOur_l1st_4f2d20ec18}

FLAG

HackTM{SanTa_ple@s3_TakE_mE_0ff_yOur_l1st_4f2d20ec18}

Strange PCAP(forensics)

問題

We managed to get all the data to incriminate our CEO for selling company secrets. Can you please help us and give us the secret data that he has leaked?

Author: Legacy

添付ファイル

  • Strange.pcapng

解答例

pcapファイルなので、とりあえずWiresharkで開いてみました。どうやらUSBのキャプチャデータのようです。

f:id:tsalvia:20200207223004p:plain

これだけだとよく分からないので、stringsコマンドを打ってみました。 Flag.txtやSECRET ZIPのような文字列が見えました。

$ strings Strange.pcapng | sort | uniq
.
..
$<(8
        0       1
19{j:
1JQk
3f;F
;5'l:
62:i:
64-bit Windows 10 (1909), build 18363
,6'l(
93:i(
A$_h
A$_h.
A$_h$
A$_hg
AADREC~1
a*k#
An operating system wasn't found. Try disconnecting any drives that don't
a..PK
BIST
/b*k
(!Bl!
*Bl!
BOOTMGR
B)Ul
C!Bl
C}k#
CLIENT~1
contain an operating system.
DISK
Disk error
DUMj
Dumpcap (Wireshark) 3.2.0 (v3.2.0-0-ge0ed4cfa3d72)
eF&h
Error loading operating system
f@Iu
Flag.txt
fSfSfUfh
fXfXfXfX
Fz#k(
 g[&
Generic Flash Disk      8.07
)g( RNO NAME    FAT32   3
I{dk#
INDEXE~1
Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz (with SSE4.2)
Invalid partition table
IQk:
itNk
:{j(
jdl:
jkei:
,JQk
{JQk(
`jX%
}kdl
kdl(
m!Bl(
Missing operating system
MSDOS5.0
nC}k
nei(
P%D#
[pLk#
Press any key to restart
r,fh
rrAa
RRaA
Rwi:
s{a},+
SECRET  ZIP
~sk#
s"Pe
s"P"P
[Swi
`Swi
Swi(
SYSTEM~1
TCPAu2
t&fh
TMj:
tNk#
t"P"P
(Ul:
<)Ul
?UMj
UMj(
USBC
USBC@:
USBC`
USBC`7
USBC`jX%
USBCP
USBCP%D#
USBS
USBS@:
USBS`
USBS`7
USBS`jX%
USBSP
USBSP%D#
u)Ul(
 W[$
wireshark_extcap1920
WPSETT~1DAT
xkdl
y~Ii:
=y#k:
YUY2

何かファイルがありそうなので、foremostコマンドで抽出させてみます。zipファイルを抽出することができました。

$ foremost Strange.pcapng
Processing: Strange.pcapng
|foundat=Flag.txt
9ZZA#!kU ˜bidSȎ84)J
s{a},+\IiBHia..PK?
*|

zipを展開しようとすると、パスワードが聞かれてしまいました。次はパスワードを特定する必要があります。

$ unzip output/zip/00015665.zip
Archive:  output/zip/00015665.zip
[output/zip/00015665.zip] Flag.txt password:

USBのpcapについて調べていると、以下のページを見つけました。

ctf-wiki.github.io

上記のページを見てみると、キーボード入力について書かれていました。キー入力からパスワードを特定することができるかもしれません。 以下のツールが紹介されていたので、使ってみました。

github.com

実行してみましたが、うまく出力されません。いくつかバグを見つけたので、以下のように修正しました。

github.com

実行すると、以下のような文字列が出力されました。

$ python UsbKeyboardDataHacker.py Strange.pcapng 
[+] Found : 7vgj4SSL9NHVuK0D6d3F<RET>

上記の文字列(を除く)をzipのパスワードとして入力すると、展開することができました。 中にあったFlag.txtを開くと、フラグが書かれていました。

FLAG

HackTM{88f1005c6b308c2713993af1218d8ad2ffaf3eb927a3f73dad3654dc1d00d4ae}

Romanian Gibberish(misc)

問題

https://en.wikipedia.org/wiki/Gibberish_(language_game)
HapackTM{Wepelcopomepe_Topo_HAPACKTMCTF_2020!}

解答例

Gibberish (language_game) に関するWikipediaのページとフラグっぽい文字列が渡されました。 まずは、Gibberishについて調べてみました。Gibberishは、赤ちゃん言葉など、理解しにくい無意味な言語の総称だそうです。

問題のタイトルは、Romanian Gibberishとなっています。Wikipediaによると、ルーマニア語のGibberishには、pa、pe、poのような音(bird talk)が入る場合があるそうです。 HapackTM{Wepelcopomepe_Topo_HAPACKTMCTF_2020!} からpa、pe、poを取り除くと、フラグとなっていました。

f:id:tsalvia:20200203233950p:plain

FLAG

HackTM{Welcome_To_HACKTMCTF_2020!}

The dragon sleeps at night(misc)

問題

I made this console based dragon RPG.
Go kill the beast!

nc 138.68.67.161 60004

Author: stackola

解答例

とりあえず、netcatで接続してみると、以下の出力が返ってきました。 コンソールベースのドラゴンRPGだそうです。ドラゴンを倒すことが目標のようです。

$ nc 138.68.67.161 60004
Welcome to our little town!
We're glad you've decided to help us fight the dragon and bring back this town to it's old glory.

We have a shop where you can buy many different weapons for your fight!
There's also a mine for you to work at. The boss is a very trusting guy, don't try to scam him please.

-------------------------------
-------------------------------
Day: 0
Time: 00:00
Your balance: $0
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 

まずは、storeに行ってみました。storeには、Level 1~5の剣が売っています。 どうにかしてお金を稼ぎ、Level 5の剣を買うことを目標にしてみます。

-------------------------------
Day: 0
Time: 00:00
Your balance: $0
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 1
-------------------------------
Welcome to the store:
-------------------------------
Level 1 Sword: 10 Damage
Price: $10
-------------------------------
Level 2 Sword: 100 Damage
Price: $100
-------------------------------
Level 3 Sword: 1,000 Damage
Price: $1,000
-------------------------------
Level 4 Sword: 10,000 Damage
Price: $1,000,000
-------------------------------
Level 5 Sword: 100,000 Damage
Price: $1,000,000,000
-------------------------------
What do you want? (1-5 or e for exit) >1
Not enough money.

次にお金を稼ぐため、働きに出てみました。働いた後、ボスから何時間働いたかを聞かれました。 適当に100と答えると、$100もらえました。100時間働いたことになっているのに、6時間しか進んでいません。 働いた時間の報告は、適当でもいいようです。

-------------------------------
Day: 0
Time: 06:00
Your balance: $0
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 2
-------------------------------
Going to work...
Time passes...
Slowly...
-------------------------------
Boss wants to know how many hours you worked: > 100
100.0 hours at $1/hour? That's $100.0.
$100.0 received.
-------------------------------
Day: 0
Time: 12:00
Your balance: $100.0
-------------------------------

今度は、1000000000と答えてみましたが、どうやら3文字しか入力できないようです。

Boss wants to know how many hours you worked: > 1000000000
Only 3 characters allowed

また、-1 と答えると、しっかりと-1ドル引かれてしまいました。 整数オーバーフローとかでもなさそう。

Boss wants to know how many hours you worked: > -1
-1.0 hours at $1/hour? That's $-1.0.
$-1.0 received.
-------------------------------
A day passes.
-------------------------------
-------------------------------
Day: 1
Time: 00:00
Your balance: $99.0

この後、色々入力してみましたが、よく分からず、一旦あきらめて、HackTM CTF の Discordを眺めていると、以下のようなチャットを見つけました。 どうやらこのプログラムは、Pythonで動いているようです。

f:id:tsalvia:20200203235836p:plain

100.0 のように返ってくることから、入力した文字列をfloatで変換していると予想し、以下のようなスクリプトを作成して検証してみました。 ランダムな3文字を生成し、floatで数値に変換し、999より大きい値になるパターンを探しました。

import random
import string

def fuzz(n):
   rand_list = [random.choice(string.printable) for i in range(n)]
   return ''.join(rand_list)

def main():
    while True:
        s = fuzz(3)
        try:
            f = float(s)
        except ValueError:
            continue

        if f > 999.0:
            print("{}: {}".format(s, f))
            break

if __name__ == "__main__":
    main()

実行してみると、以下のような結果が返ってきました。 9e7やinfのような入力ができるようです。

$ python fuzz.py
9e7: 90000000.0
$ python fuzz.py
inf: inf

働いた後、9e9と入力してみると、$9000000000.0をもらうことができました。

Boss wants to know how many hours you worked: > 9e9
9000000000.0 hours at $1/hour? That's $9000000000.0.
$9000000000.0 received.
-------------------------------
Day: 0
Time: 06:00
Your balance: $9000000000.0

お金がたまったので、storeに行ってLevel 5 の剣を買い、ドラゴンと戦ってみました。 どうやらドラゴンが起きているとダメなようです。

-------------------------------
Welcome to the store:
-------------------------------
Level 1 Sword: 10 Damage
Price: $10
-------------------------------
Level 2 Sword: 100 Damage
Price: $100
-------------------------------
Level 3 Sword: 1,000 Damage
Price: $1,000
-------------------------------
Level 4 Sword: 10,000 Damage
Price: $1,000,000
-------------------------------
Level 5 Sword: 100,000 Damage
Price: $1,000,000,000
-------------------------------
What do you want? (1-5 or e for exit) > 5
Received Sword level 5.
-------------------------------
Day: 0
Time: 12:00
Your balance: $8000000000.0
Your sword: 5
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 3
-------------------------------
Welcome to the dragon's cave
-------------------------------
The dragon is awake.
He sees you first and instantly kills you with a large fireball.
Game over

次は、適当に時間をつぶして、深夜にドラゴンと戦ってみました。

-------------------------------
Day: 1
Time: 00:00
Your balance: $8000000000.0
Your sword: 5
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 3
-------------------------------
Welcome to the dragon's cave
-------------------------------
You see the dragon sleeping next to a pile of bodies.
They look disturbingly fresh.
Carrying your glorious level 5 sword, you slowly walk over.
Carefully, you position the mighty weapon exactly over his skull.
BOOM! Perfect hit!
The dragon wakes up! He's not dead?
I was told level 5 would be enough!
'if only there was a level 6 sword' are your last thoughts...
...as the dragon obliterates you with a hurricane of fire.

寝ているドラゴンに不意打ちができたようですが、Level 5では火力が足りないようです。 どうやら、Level 6の剣を装備する必要があるようです。

今度は、Storageを試してみます。 Storageに預け、1日経つとLevelが1つ下がってしまうようです。

-------------------------------
Storage for up to (1) sword.
Please note: Swords degrade by 1 level for each day they are left in storage.
-------------------------------
Storage is empty.
Do you want to deposit your sword? (y/n) > y
Deposited sword level 5
-------------------------------

また、Go homeを選択すると、1日休むことができるようです。 -1 と入力すると、前日に戻ることができました。Storageに預けていた剣もLevel 6に上がっていました。 これでドラゴンを倒せそうです。

Your home.
Here you can take a rest.
How many days do you want to rest for? > -1
Sleeping for -1 days
A sword in storage has degraded from 5 to 6.
You woke up well rested.

最終的な入力は、以下の通りです。ドラゴンを倒すとフラグを取得することができました。

Welcome to our little town!
We're glad you've decided to help us fight the dragon and bring back this town to it's old glory.

We have a shop where you can buy many different weapons for your fight!
There's also a mine for you to work at. The boss is a very trusting guy, don't try to scam him please.

-------------------------------
-------------------------------
Day: 0
Time: 00:00
Your balance: $0
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 2
-------------------------------
Going to work...
Time passes...
Slowly...
-------------------------------
Boss wants to know how many hours you worked: > 9e9
9000000000.0 hours at $1/hour? That's $9000000000.0.
$9000000000.0 received.
-------------------------------
Day: 0
Time: 06:00
Your balance: $9000000000.0
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 1
-------------------------------
Welcome to the store:
-------------------------------
Level 1 Sword: 10 Damage
Price: $10
-------------------------------
Level 2 Sword: 100 Damage
Price: $100
-------------------------------
Level 3 Sword: 1,000 Damage
Price: $1,000
-------------------------------
Level 4 Sword: 10,000 Damage
Price: $1,000,000
-------------------------------
Level 5 Sword: 100,000 Damage
Price: $1,000,000,000
-------------------------------
What do you want? (1-5 or e for exit) > 5
Received Sword level 5.
-------------------------------
Day: 0
Time: 12:00
Your balance: $8000000000.0
Your sword: 5
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 5
-------------------------------
Storage for up to (1) sword.
Please note: Swords degrade by 1 level for each day they are left in storage.
-------------------------------
Storage is empty.
Do you want to deposit your sword? (y/n) > y
Deposited sword level 5
-------------------------------
Day: 0
Time: 18:00
Your balance: $8000000000.0
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 4 
Your home.
Here you can take a rest.
How many days do you want to rest for? > -1
Sleeping for -1 days
A sword in storage has degraded from 5 to 6.
You woke up well rested.
-------------------------------
Day: -1
Time: 06:00
Your balance: $8000000000.0
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 5
-------------------------------
Storage for up to (1) sword.
Please note: Swords degrade by 1 level for each day they are left in storage.
-------------------------------
Storage contains a sword level 6
Do you want to take the sword out? (y/n) > y
Receiving level 6 sword.
-------------------------------
Day: -1
Time: 12:00
Your balance: $8000000000.0
Your sword: 6
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 5
-------------------------------
Storage for up to (1) sword.
Please note: Swords degrade by 1 level for each day they are left in storage.
-------------------------------
Storage is empty.
Do you want to deposit your sword? (y/n) > n
-------------------------------
Day: -1
Time: 18:00
Your balance: $8000000000.0
Your sword: 6
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 5
-------------------------------
Storage for up to (1) sword.
Please note: Swords degrade by 1 level for each day they are left in storage.
-------------------------------
Storage is empty.
Do you want to deposit your sword? (y/n) > n
-------------------------------
A day passes.
-------------------------------
-------------------------------
Day: 0
Time: 00:00
Your balance: $8000000000.0
Your sword: 6
-------------------------------
1: Go to store
2: Go to work
3: Go to dragons cave
4: Go home
5: Storage
> 3
-------------------------------
Welcome to the dragon's cave
-------------------------------
You see the dragon sleeping next to a pile of bodies.
They look disturbingly fresh.
Carrying your level 6 sword, you walk over to the dragon
You're still dizzy from the time travelling
About half way towards the dragon, the blade starts vibrating
As if by magic, it's pulled out of your hands, and towards the dragon
As it reaches approximately Mach 2 right before impact, you take cover behind a cliff

The impact can only be compared to a small bomb. The entire cave shakes not unlike during an earthquake.
As you look up from you cover, you see the level 6 sword floating in place, just where the dragon used to be.
You walk up to the sword and inspect it closely.

On the blade you can see a faint inscription. You are pretty sure this wasn't here before:

HackTM{g3t_m0re_sl33p_and_dr1nk_m0re_water}

FLAG

HackTM{g3t_m0re_sl33p_and_dr1nk_m0re_water}