HackTM CTF 2020 Write-up
はじめに
2020/02/01 ~ 2019/02/03に開催されたHackTM CTFにチーム(NekochanNano!)で参加しました.
成績
チームとしては5問解いて171位でした (747チーム中).
今回は自分が解いた3問のWrite-upを書きます.
Crypto
RSA is easy #1 [50pts, 279solved]
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
のenc()
ではflagを1文字ずつ暗号化しています.
そのため,文字を1文字ずつ暗号化し,Encrypted flagと比較することで,平文を特定できます.
以下ソルバです.
import string e, n = 65537, 28150970547901913019901824364390497053600856369839321617996700606130553862041378369018779003752433356889118526332329074054728613209407037089320809898343953157935211086135010436283805891893636870991411236307901650696221491790470635225076251966300189483160148297407974155121570252648252906976186499329924342873 encs = [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] flag = '' for enc in encs: for x in string.printable: if pow(ord(x),e,n) == enc: flag += x break print(flag)
> python solve.py HackTM{why_ar3_MY_pR1va7es_pu8l1C_??}
HackTM{why_ar3_MY_pR1va7es_pu8l1C_??}
RSA is easy #2 [50pts, 157solved]
Provide the flag in this format:
HackTM{words_you_found}
Example:
If you find "i am a flag"
submit:
HackTM{i_am_a_flag}
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: [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]
アプローチ:Encrypted flagを換字式暗号として考える
RSA is easy #2
はRSA is easy #1
から公開鍵情報を削除した問題です.
他に,RSA is easy #1
との相違点を探すとEncrypted flagが非常に長くなっていることが分かります.
このことから,文字の出現頻度を利用したアプローチを行えます.
import string from collections import Counter with open('cipher.txt') as f: ciphers = list(map(int,f.read().strip().split(','))) for cipher, freq in Counter(ciphers).most_common(): print(freq, cipher)
177 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582 123 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909 83 20615543970401106049899252800192288457964182639045355076454473284260002293725082025968310990122731962791617789632077170719345622736070264054367958868239517799808416688171918069309633316391105904609498475463756359094918228354423745819313393742987851160846772360092594149040683896814298190633249373326376461156 66 11754165346287637561545259343840422291909328839266777034181425212469224088636786285072037265988741867852390393052619139981204304725012657494805876058735252784205208373103211292641197325597338249663286939455864193037451288723183790294305055993067129506821935556455779063943868491706701650087037910887657226493 64 1616691599456040168445566414573196426135242040353418621535727203361763119546110811202180542592381606989262060743706931509368561992575755611142039943697929675456007056209371231656367986288172877583606660982468769562130680078575424889216776816820937295397087401890122017587798820436843206222029244517132787091 61 39385543283404473075185452058079832095584936856222212380734415975432643784664927411933026085735951287828134889813409092456274531550067215917681707367020221976856074609811863093935500364044953252851773508292484565675960979638799629224447070845682042579853348896232929185963231949966635800852425193221658914799 60 19987556196019746934559490493908126130478310916985676680825131675475834956269416368131390860400524736253193350877031424890618150894631360660555214791233380817082613242334649401913706349419529298111678642103008577869651397737137307296898997921920272507265954704602147279649946742171997814500423616836127877151 59 51096222195660998838214993398008975443334226469462987938620835940031595422906389948456714314184250584134675031854562918540111185432877967886125365843859202759838619358876321717841898972235167208334603406133491230325950874308071748186279415332768724277308777107769815375150668126847491101640368755019633726889 57 29134244853493331789283603393275291749816044468350702102035506094598790040927938861054634777247830931517686010741339628812116985594232674807263027901600624507630247209184903517192048488176261028761389768656154493158817886581472185760507276853927467270445108103128473821519705668231154797667164681995129099167 44 22727001808817855311403725351156659724989158069800490466458013816315274831050097254851934829809436415084558805190061876535460171481477325886587862814504906096266519469387070277858969077815631009037077538503164118774110740593006218494447633084714757032153557681184383300445044005450878303829523921113090598503 43 12809420335059752622795672675980615147379433503921952871001570329869909602631152404784101902235852407354985529217839517914337978763562477704639713177361527151286904208185025322596545149058203315249298373136118690015234673764106807029822628760444420022929741931249845208516150129504338691005143546218303736485 39 3929570815133494377565674564390309833497202447403079059880445103091097112439963260471815756880162820614427515327977655020489262502104373204431222035394513353720509807520161739252076395126436615051937945259162514387773880075644161755707728744548141441713692993486773337542283702554850976267025978523835156103 31 40134547635227845599825339690894195012168718754712945141544421186023480430553150024357178615922032531442839979802093306933346913584778658886938008884216860952509344521015417521265603939411082620539473525127363853503284782317720170238435878533613693578512044166590440262304835466215502510526120232032001658845 28 19492166218065210361696686707896525268020417715191233863834594410819422493908382086802419877050654000223876689075138373828891333608984761550312273195513504605801530063487641725099161221148773827710266506625126250751074980206372410832787410270736779064975681240662166847411633904532223257736996555482185275717 26 35757511882733355483839947542352804611289303760086802899974215637660071779650145686478637770001786118916493988988448569553752725399372273917548305878712872685951566425456575300012758123702510007669248383698343577662182410702363875166254773789867158011011670420550839163044289826725125706067556429856779495564 25 14576332930836336401134272222550882346965368092028955000954694875179130873398333216454729664378847576041041506775766783029984889520769135364408129680069043197669185727467506703395296323412031069601024043172225202033251709886245288125871615751041310682693335390022558588465347411736471596258937782467179701363 24 15799025644615822656801740434122556637212995922559332084222280459000654656427689834064128147572871045216617743273426836990308480455737076816410648044480511949442083909138576214738788738048193643029632245738932831021072125057111936960522329562306867802898765387374026585757497606153328226325713384411664479472 18 34220770932871364013976724839545041417474666615300575941746695940071552482886462087439379719184240006479394129946558717984964307444237521284361087031583504037093765914149168694482266218524635203263596760639253965500892625668716519628460563860957678979373258071483670494006067028836185890388591731283716604832 16 21825516420085786633620414923499927809866106375209997536887923519665612310710893091548347638116562999505810709467483467910561336083489137335015281764912210385860293937794761219080479166302700347936082258520119437027319181174057624695351433300415797052703957131305247757258587758932996789777812701543305273524 16 2491776416157094729247228546388058805100982106803126656760544775570831165844468695126053157622604400534191689984239642501431889749664796813015093832003828115405081489372948999096884256544945626310866557608968099061130574640407181237631369536699135922165700470873033015069995508536990789193832860645907343986 12 12932315605361356260109350737202295649066381035837249252185795202913980480440863417983883037159810577739986004162343142150811156736478717833534910573828843843135123757197342268856313199793884733585941943828474996180460900240457279087457908434717560236156491751130556115885434115169341757101655831937772066303 11 27576274928869221620126245883590920739381444228403264811604678585326136261919043025439432380393614033747213164606047970194501234144690982453937415512291833747115414764529517980671948859099514533322022692971474660454113892401294955396004739513550951184454650026652626364585678702730119565114784074733394949336 9 1176875645989444228120683125555162464459775615749992327233861740655598304185200372099710632670669740275928889234588484578424676523579010677635946710527054032662591517295007580344076297705713808521731216834723911361610732077241004086348355880037625191238102086425263717843500661215346831687259608549125530807 5 52840621689121797895256363389338274694450461789829175087736646052885972599541176587393339836186116798179639665528641843475425650830795547188378088601848535424795824136246287654182750346069524432086206082201048105736692531622222816403756012329174735009131234941877426201644907061786470186383501136594209222405 4 39071839511948638988080907036852746654085273366404837973213329692814484554408908523546999438831321352816110395822192272922701572846039352688552458816923896373772472819785936751685465282644216513301671688378689515602296293965301386883552780271126801778759956341143215735911106078099952795281272294184101222894 4 50154500011327049415150110613714558756986965132059956858621967629544808661996323441483612798709196285670748400127394046198652122647065373883652074401488461140240807698457285933739509452128499026773680398001271333305476126787388797879767072284116978372707084228927669307533874093727830120482310649071798909223 2 38802989341210530457378237385843973124921316122128304138276723482825938449328688522058677634210417960328667542939425659386994898427574509818766303473446802692515345332427976398389916234534200995301483992776549890379656184952685366723722458147873775598641647772939243953968981681779761004069962129149532525241 1 22898825038689625715487339309684047496088088286379048682632329486928624317960893419908872575544541743109960984821146081005860923057711786824611353925189608095318119267730739890712604642525421504696090823029339278724706589872240410882755614978083387780278129076143536569517954666638462991000336176075614807880 1 32673744615799712487218586784858666657615496658878295924699304141157435241805321678825497057203170526047413088723755930727839423037832480520297361079311603101279858983310265841651031957166707800564192379099456051456890378670008176632913201998572911894331423107676669652519124282681545581828946130363768378027 1 47570760099332538630074246588266937941307517820515142582135658748192399272005539496578959306267521195254022986091052760574620123103280649808061816984656151624030812710123783651478012545264847339309664114861788542619162083048255751820685971177031319072241032895991001430158963380558156843892347920250300986171 1 930044605345939201480478373277413008095802574786191190905074555539638928544692229073288242327962810058855318227403376039279203240132190223148619950893934472181209933145274613718642434124893448103578245304758494945314633484270441574356508120432815219715951750624307928142686494962369790708881847436477126536
出現頻度が最も高い文字を[space]
, 2番目に高い文字をe
と仮定し,を求めます.
RSAではを以下のように計算します.
そのため,は次のように表すことができます.
したがって,のGCDを計算すれば,を求められます.
によっては上手くいかない場合もありますが,FactorDBになげてあげればなんとかなります(?)
from Crypto.Util.number import GCD e = 0x10001 # space c1 = 20208833413145256771572368688664189468143545391164156105460199405734708819434076552216759462791005323959520084836115140504630769338040681414876273881508073569978297202819424741264124574247314460725471331318820764161255759739403546471531796892912689444815674366578876801858606344288032682809803593429599353582 # e c2 = 18218008764547928666818612371880437638590536088955960541217152923316878781023941482176664233664036926858934241182299360237997946767992823894857524509996035969116730840866188239505740019205603874588738160712590494329532220987368292751238523333362017189147629358097781421283836794237708493190976028985458918909 k1_n = pow(ord(' '), e) - c1 k2_n = pow(ord('e'), e) - c2 n = GCD(k1_n, k2_n) print(n)
106722289100028106333442730393961825779877604605535086872680596840706953799749221494444758643089316420424547317489248364875777056603635051238648525173511505121444368345778603560664552707224335172588518202681498311878808031409074943854136615164899327815566628813453310510081039328308224995882181249171863662094
邪魔な係数がついてるのでFactorDBになげます
53361144550014053166721365196980912889938802302767543436340298420353476899874610747222379321544658210212273658744624182437888528301817525619324262586755752560722184172889301780332276353612167586294259101340749155939404015704537471927068307582449663907783314406726655255040519664154112497941090624585931831047
が分かればあとはやるだけです.
import string with open('cipher.txt') as f: ciphers = list(map(int,f.read().strip().split(','))) e = 0x10001 n = 53361144550014053166721365196980912889938802302767543436340298420353476899874610747222379321544658210212273658744624182437888528301817525619324262586755752560722184172889301780332276353612167586294259101340749155939404015704537471927068307582449663907783314406726655255040519664154112497941090624585931831047 flag = '' for c in ciphers: for s in string.printable: if pow(ord(s),e,n) == c: flag += s break print(flag)
> python solve.py when i was in college in the early 70s, 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 dont 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
HackTM{when_it_comes_to_crypto_or_carpet_never_roll_your_own}
Bad keys [197pts, 82solved]
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
flag.enc
2255296633936604604490193777189642999170921517383872458719910324954614900683697288325565056935796303372973284169167013060432104141786712034296127844869460366430567132977266285093487512605926172985342614713659881511775812329365735530831957367531121557358020217773884517112603921006673150910870383826703797655
RSA_PUB
(65537, 2318553827267041599931064141028026591078453523755133761420994537426231546233197332557815088229590256567177621743082082713100922775483908922217521567861530205737139513575691852244362271068595653732088709994411183164926098663772268120044065766077197167667585331637038825079142327613226776540743407081106744519)
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) '''
> 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, 88051162316131292469465204252856397334672387723480165865180209633514313755050858659874111484364935930429293893604430655271246592259685939378371663525862168708113157831045417450025798105829762942546449002712798656762717893350159819387064343998841406565258963717201919776878018099330853017769765709546840465391), (13785998390616341792104955381518218610114490599670872666472590003349106206273965251826727771198996102692143135057678303153001530176490187588102470962034751578717101950870557505740211239981422511461496036836191640241180486060736508366430751200887711980385485178550105810859250514938906705892872045147076991289, 88051162316131292469465204252856397334672387723480165865180209633514313755050858659874111484364935930429293893604430655271246592259685939378371663525862168708113157831045417450025798105829762942546449002712798656762717893350159819387064343998841406565258963717201919776878018099330853017769765709546840465391)) Enter 'k' to generate the next key > k Your RSA keys: ((pub),(priv)) ((e,n),(d,n )) ((65537, 68696651523524886996746044827480935717451768623875675099302556827709043638169999205502403603716684986196543586683629731565080106015927556053810071313682866628297219680434241485867723251895065319814500201735165760665981249615377439393912913231508229191283667182702486243040141529768112697952740881029882182319), (22077435256244276819589929294236896227794515323497710742656979292692797612144842200074639130590060869116248852140479567362310102581861638244126946946134064151533818278112738055020446270162748413472435173777163134588017480420530339765687001268867734569053232104607731464548965788273285273292499279515732565313, 68696651523524886996746044827480935717451768623875675099302556827709043638169999205502403603716684986196543586683629731565080106015927556053810071313682866628297219680434241485867723251895065319814500201735165760665981249615377439393912913231508229191283667182702486243040141529768112697952740881029882182319)) Enter 'k' to generate the next key > k Your RSA keys: ((pub),(priv)) ((e,n),(d,n )) ((65537, 20276323319456892879455257682366324009209759965427225413973361649583409066512491277305221081940520241651390596794816867021769763335645211474994929467340648342448448284630153254252729554022960439415263547110052473132122669553965492432062189867115904797143294425509010060159831766772400300269022931502798309789), (-2109094039530915952198704420719459706284738906027395145445418715614234701106484169818418482927026358962685653880254918328385560472085896617560163482900668412305209608284106657680807569969879092362057886913677606838979841458151309216634915568901280390304084676048711235180025063399453575134002608820163981723, 20276323319456892879455257682366324009209759965427225413973361649583409066512491277305221081940520241651390596794816867021769763335645211474994929467340648342448448284630153254252729554022960439415263547110052473132122669553965492432062189867115904797143294425509010060159831766772400300269022931502798309789))
アプローチ:鍵生成処理をGuessing
タイトルから鍵生成に問題があると分かるのですが,鍵生成処理が公開されていないため,Guessingする必要があります.
- 問題文のencrypted messageをキャプチャしてから送信されたmessageは10k以下という記述
- 操作説明のEnter 'k' to generate the next keyという記述
上記の記述から鍵生成では何らかの漸化的な処理を行っていると考えることができます.
そのため,ここで,一旦を構成するまたはが以下のようになっていると仮定します.
次に,適当に生成したPrivate Keyのサンプルのからを計算し,からを求め,仮定の妥当性を確認します.
import gmpy e = 0x10001 n1 = 88051162316131292469465204252856397334672387723480165865180209633514313755050858659874111484364935930429293893604430655271246592259685939378371663525862168708113157831045417450025798105829762942546449002712798656762717893350159819387064343998841406565258963717201919776878018099330853017769765709546840465391 d1 = 13785998390616341792104955381518218610114490599670872666472590003349106206273965251826727771198996102692143135057678303153001530176490187588102470962034751578717101950870557505740211239981422511461496036836191640241180486060736508366430751200887711980385485178550105810859250514938906705892872045147076991289 k1 = int((e * d1) / n1) phi1 = (e * d1 - 1) // k1 p1_plus_q1 = n1 + 1 - phi1 p1 = (p1_plus_q1 + gmpy.root(p1_plus_q1**2 - 4 * n1,2)[0])//2 q1 = n1 // p1 n2 = 68696651523524886996746044827480935717451768623875675099302556827709043638169999205502403603716684986196543586683629731565080106015927556053810071313682866628297219680434241485867723251895065319814500201735165760665981249615377439393912913231508229191283667182702486243040141529768112697952740881029882182319 d2 = 22077435256244276819589929294236896227794515323497710742656979292692797612144842200074639130590060869116248852140479567362310102581861638244126946946134064151533818278112738055020446270162748413472435173777163134588017480420530339765687001268867734569053232104607731464548965788273285273292499279515732565313 k2 = int((e * d2) / n2) phi2 = (e * d2 - 1) // k2 p2_plus_q2 = n2 + 1 - phi2 p2 = (p2_plus_q2 + gmpy.root(p2_plus_q2**2 - 4 * n2,2)[0])//2 q2 = n2 // p2 print(gmpy.next_prime(p1) == p2)
> python check.py True
どうやら,素数生成にを利用しているという仮定は正しいようです.
したがって,またはを10k程度行えば,RSA_PUB
のを構成するまたはを取得できることが分かります.
Sage(previous_prime)を利用して,を求めると以下のようにflagを得ることができます.
sage: p = 12117717634661447128647943483912040772241097914126380240028878917605920543320951000813217299678214801720664141663955381289172887935222185768 ....: 875580129863163 sage: n = 23185538272670415999310641410280265910784535237551337614209945374262315462331973325578150882295902565671776217430820827131009227754839089222 ....: 175215678615302057371395135756918522443622710685956537320887099944111831649260986637722681200440657660771971676675853316370388250791423276132267 ....: 76540743407081106744519 sage: for i in range(10000): ....: if n % p == 0: ....: print(p) ....: break ....: p = previous_prime(p) ....: 12117717634661447128647943483912040772241097914126380240028878917605920543320951000813217299678214801720664141663955381289172887935222185768875580128178823
from Crypto.Util.number import * c = 2255296633936604604490193777189642999170921517383872458719910324954614900683697288325565056935796303372973284169167013060432104141786712034296127844869460366430567132977266285093487512605926172985342614713659881511775812329365735530831957367531121557358020217773884517112603921006673150910870383826703797655 e = 0x10001 n = 2318553827267041599931064141028026591078453523755133761420994537426231546233197332557815088229590256567177621743082082713100922775483908922217521567861530205737139513575691852244362271068595653732088709994411183164926098663772268120044065766077197167667585331637038825079142327613226776540743407081106744519 p = 12117717634661447128647943483912040772241097914126380240028878917605920543320951000813217299678214801720664141663955381289172887935222185768875580128178823 q = n // p d = inverse(e, (p-1)*(q-1)) m = long_to_bytes(pow(c,d,n)) print(m)
> python solve.py b'HackTM{SanTa_ple@s3_TakE_mE_0ff_yOur_l1st_4f2d20ec18}'
HackTM{SanTa_ple@s3_TakE_mE_0ff_yOur_l1st_4f2d20ec18}
まとめ
- 簡単な問題しか解けなくて悲しくなった
- Forensics, Revにももう少し時間を割けばよかった