easyRSA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from Crypto.Util.number import *
from tqdm import tqdm
import string


c = [36143793706265337073034755285680078528436882895525190723507534395950828118997628925090404438993072380573400767902990067482880570130224609722931177274849457403547171263972983019187913817796665882873998616231519206734202450449317963141346836996876520731298139484504046340552763094411316198407383338208856130870, 30485289317489122513627424533258350515279207179552977911285197688270281245828407217991247923748564161409175076285380310289577344106125220128702373704159801265509969544840793736965464878414914537483701234228629064639374176394892003747894000649142798022157683437062596618574582761554787284372511226003550269371, 3230183840782130132728550718879398529949011218584590214219970581894471595561557004203362354709970356734066395359248387914135714547693183197530370374482377328163905611411567039058080693820629261772459519178070810812194846437468479192532415093386483496307005949701166752528549311380452280458293080276726829603, 25710430894158079311830714889718580974171581911002161989735153974074319352353008048142133029367435263698163394834768816086041815027231628825846495139208493868114079735178838159083476440613688096615701599646904740303121960899627887799112605887484922771885397056359474573599547493670021831421281871544848617729, 19732968894700182005170322933853544733918556507218610879172101330791135258760048103574784092873604313932829411687518781796870112528816456829131236447610238430534513141439255353077893832475969071823784414902688155677656081948848412872244494057776570244585895585353001527113887752049634607310624731379054225973, 49603823166275212373225350577680850241791038694173725226894961732112441988775475186232426203286108859938201515004660268704496760935793272426803644906304390902690585052664086332034549639604388540879672250182582474531712807630874468538276983688370936840051189314399257931504052240291478721105604232683571965735, 3230183840782130132728550718879398529949011218584590214219970581894471595561557004203362354709970356734066395359248387914135714547693183197530370374482377328163905611411567039058080693820629261772459519178070810812194846437468479192532415093386483496307005949701166752528549311380452280458293080276726829603, 36143793706265337073034755285680078528436882895525190723507534395950828118997628925090404438993072380573400767902990067482880570130224609722931177274849457403547171263972983019187913817796665882873998616231519206734202450449317963141346836996876520731298139484504046340552763094411316198407383338208856130870, 30959931770895661365773662470290660506825261406067897465047950420463062950618600456650627514353480704138525843506175906147163722415875078456195887237951065474208725566820929688439489181815653581366068782107495855200442175091769300191401276169525885040982173400894816740864495713267532055984024720558728143611, 10474662672025033041773365514312335540902032242267504195623117415683501726504952603558055485682046183041535826673296800918383074606402787027709571720464778282861332844110321181367277759299138792649236387268813934955882087855452773130837737108740698574126516301715777091874051282126020284661182410257231179753, 39111600477742118705806395027906988208445577416201550388650540742347022379939784851496417589057003798020634385485932858409451138352913390310896030166781799764397194165567776360446226818994394507391829127511769351762441609027121311846867992195447845664286406943953929567958814340505351947630455475804285727484, 36143793706265337073034755285680078528436882895525190723507534395950828118997628925090404438993072380573400767902990067482880570130224609722931177274849457403547171263972983019187913817796665882873998616231519206734202450449317963141346836996876520731298139484504046340552763094411316198407383338208856130870, 20410654833843880836232625906280502202859672782729125051826685074510132406319832186711328043576717168143926086499155426957562863035893608063763496001467692730847514246434999398419384281899893374238711551517649464555301605989912669722238859406226125066118408050493138139068479714147539973518962897827574079593, 36143793706265337073034755285680078528436882895525190723507534395950828118997628925090404438993072380573400767902990067482880570130224609722931177274849457403547171263972983019187913817796665882873998616231519206734202450449317963141346836996876520731298139484504046340552763094411316198407383338208856130870, 7921134582753161322624290128634847155380402724851782664296670731383021765698194698795488878351754017043009294851033981478038403743577671361192735771763306447070861526914346664563552250711401128380349734350523225717871629577515929322968751140532497166587257175822120828394599888045317806403391547870859918022, 10474662672025033041773365514312335540902032242267504195623117415683501726504952603558055485682046183041535826673296800918383074606402787027709571720464778282861332844110321181367277759299138792649236387268813934955882087855452773130837737108740698574126516301715777091874051282126020284661182410257231179753, 37809519162220134190794179869071656253660637222651595716890486816819198670240449273217219092611534466839003562406526012393170182490664346796859412314807051075958172496172197098653619849179731703176156384686342627654694902901988586296739592097270627294547101302528720466472915869502035253270880461930808493388, 37809519162220134190794179869071656253660637222651595716890486816819198670240449273217219092611534466839003562406526012393170182490664346796859412314807051075958172496172197098653619849179731703176156384686342627654694902901988586296739592097270627294547101302528720466472915869502035253270880461930808493388, 3230183840782130132728550718879398529949011218584590214219970581894471595561557004203362354709970356734066395359248387914135714547693183197530370374482377328163905611411567039058080693820629261772459519178070810812194846437468479192532415093386483496307005949701166752528549311380452280458293080276726829603, 39111600477742118705806395027906988208445577416201550388650540742347022379939784851496417589057003798020634385485932858409451138352913390310896030166781799764397194165567776360446226818994394507391829127511769351762441609027121311846867992195447845664286406943953929567958814340505351947630455475804285727484, 30959931770895661365773662470290660506825261406067897465047950420463062950618600456650627514353480704138525843506175906147163722415875078456195887237951065474208725566820929688439489181815653581366068782107495855200442175091769300191401276169525885040982173400894816740864495713267532055984024720558728143611, 15747738389149130546683323352487624099130536202521411140249777871780143886920854454890229471824528461849537673346295452973409717079527784378744780352239762449801001678008011753760911978134166483356246071627173861470601418554748959055745539267882513648338847817602838808623857409763494613906204746380746041743, 37809519162220134190794179869071656253660637222651595716890486816819198670240449273217219092611534466839003562406526012393170182490664346796859412314807051075958172496172197098653619849179731703176156384686342627654694902901988586296739592097270627294547101302528720466472915869502035253270880461930808493388, 49603823166275212373225350577680850241791038694173725226894961732112441988775475186232426203286108859938201515004660268704496760935793272426803644906304390902690585052664086332034549639604388540879672250182582474531712807630874468538276983688370936840051189314399257931504052240291478721105604232683571965735, 37809519162220134190794179869071656253660637222651595716890486816819198670240449273217219092611534466839003562406526012393170182490664346796859412314807051075958172496172197098653619849179731703176156384686342627654694902901988586296739592097270627294547101302528720466472915869502035253270880461930808493388, 41816082923294550015345177100947705941041384208212791124911658070475546413503648718489777663979623501758652560264344194036417126974018212069759723298990493830911260380987927219778671357273815320923993066160279132764029408453741387628321086125359271717932477562073380143941135757967992556738856891243384983881, 2289661747463432904864726014469820089868859807681341604602724331315868027626911256942237265741150662379120096087503128257053991282511669446600149018298385954324456893093185337113453867043111379604256625373327695708031540726940582948952961996209717576768629087376812686254364929371492740503955614801880755029, 4769150487876088158092207801833930492410418508766701697944250605734573379553037277899162828229262014063643323820460512403565006283703666233290157946979202583798598785822720156680345481949741468336883744252416349425692863975145641191695837839335637368844322856886906613050961753097516258566929761607581854452, 30959931770895661365773662470290660506825261406067897465047950420463062950618600456650627514353480704138525843506175906147163722415875078456195887237951065474208725566820929688439489181815653581366068782107495855200442175091769300191401276169525885040982173400894816740864495713267532055984024720558728143611, 10474662672025033041773365514312335540902032242267504195623117415683501726504952603558055485682046183041535826673296800918383074606402787027709571720464778282861332844110321181367277759299138792649236387268813934955882087855452773130837737108740698574126516301715777091874051282126020284661182410257231179753, 7921134582753161322624290128634847155380402724851782664296670731383021765698194698795488878351754017043009294851033981478038403743577671361192735771763306447070861526914346664563552250711401128380349734350523225717871629577515929322968751140532497166587257175822120828394599888045317806403391547870859918022, 30959931770895661365773662470290660506825261406067897465047950420463062950618600456650627514353480704138525843506175906147163722415875078456195887237951065474208725566820929688439489181815653581366068782107495855200442175091769300191401276169525885040982173400894816740864495713267532055984024720558728143611, 36143793706265337073034755285680078528436882895525190723507534395950828118997628925090404438993072380573400767902990067482880570130224609722931177274849457403547171263972983019187913817796665882873998616231519206734202450449317963141346836996876520731298139484504046340552763094411316198407383338208856130870, 17682515232429855272035901906772793825487721364344744362854466453245309632533244423538397321529685198664897252467080139806066355278301576555901412750048173484094398286014082522669828578258761701764108260931807262691138889541639002660481520728386113333127824444193307376521294377427870384102128500516960684947, 4769150487876088158092207801833930492410418508766701697944250605734573379553037277899162828229262014063643323820460512403565006283703666233290157946979202583798598785822720156680345481949741468336883744252416349425692863975145641191695837839335637368844322856886906613050961753097516258566929761607581854452, 30959931770895661365773662470290660506825261406067897465047950420463062950618600456650627514353480704138525843506175906147163722415875078456195887237951065474208725566820929688439489181815653581366068782107495855200442175091769300191401276169525885040982173400894816740864495713267532055984024720558728143611, 33837532960782971009791077799738764896858649583072963199517227302081393621122306404955447605996320839470145314998033425661115068801570111325727613277035152575774982876149450313082012824128743218000149252557836744280911674724684003561337786214393597090329060449104920400289411467319248511722415235332423804311, 30030303315850134541983623762793648940576863243875408346383336740002014977915867166596483716837565090899781937786444667011603255898645014579568163387075249462739655058635864271192704361549774337456607506026964549661765427917083344151333423310742416015343716142879418000874164534510255100626106244640607206741]
n = 53868412634233045090369153437747412878975425992040754576346754596620347350784422917543759897936684646663150893442998869763798006729979997564587680875175995309635877031073898192380128134509976889005408768734374216063639902277690308505919178272615191163114645916867249827856751349851814346547505622471483949937

for i in tqdm(range(3, 20000)):
if pow(bytes_to_long(b'f'), i, n) == c[0]:
e = i
break

flag_set = string.printable
flag_val = [pow(bytes_to_long(i.encode()), e, n) for i in flag_set]

for i in c:
print(flag_set[flag_val.index(i)], end='')
>>> flag{caf94ef5f8400ae920c0bd79489f3791}

hardRSA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from Crypto.Util.number import *


pr = 4049584030002970545664080823848129582938411034556792600914380229461546791772327894437844974694562804322320098597200821632361860404029749610290918822378230751309535193434791281064861182569710224863795884931806318447090299326829551214573212997789976022379378237846483710647686355658059931581771863291348036943
q = 3141886348112988339174865432179206412942588390228169645162293920470188882447855208783220899752887620221059861467348059334030873350571979462363834615231089
c = 8696771272015513736887843395612361647314297287781507609196936354183211655364744684164300710583625473872942712063309507651496314800393009480421886926137403759228421858414833429980059903049311837014449093365911603108158352871851677457256058510822509157407703210866317472894586087554001158540951787167699161720491198674848526093644131709561995379565643716017359731201935855247285498574923656191121426618306186331615280461405913653781283860760013215603007314688132
lowd = 0x414946b9c40728f9801e61e98ec6d17525cbe4163a5ffb8367b65c652ae4cc3abce62e70afbfb84fcf937b3119953b48922be19ef4312c4f3a88313368ca6c9b1d658b7
e = 7
leakbits = 540

def LowD(lowd, n, c, e):
maybe_p = []
for k in range(1, e):
p = var('p')
p0 = solve_mod([e*p*lowd == p + k*(q-1)*(n*p - p^2 - n + p)], 2^leakbits)
maybe_p += [int(x[0]) for x in p0]
print('found', len(maybe_p), 'possible p')
for i in maybe_p:
if n % i == 0:

pr = 4049584030002970545664080823848129582938411034556792600914380229461546791772327894437844974694562804322320098597200821632361860404029749610290918822378230751309535193434791281064861182569710224863795884931806318447090299326829551214573212997789976022379378237846483710647686355658059931581771863291348036943
c = 8696771272015513736887843395612361647314297287781507609196936354183211655364744684164300710583625473872942712063309507651496314800393009480421886926137403759228421858414833429980059903049311837014449093365911603108158352871851677457256058510822509157407703210866317472894586087554001158540951787167699161720491198674848526093644131709561995379565643716017359731201935855247285498574923656191121426618306186331615280461405913653781283860760013215603007314688132
e = 7

p = pr // i
r = i


n = p*q*r
d = inverse(e, (p - 1) * (q - 1) * (r - 1))
print(long_to_bytes(pow(c,d,n)))

LowD(lowd, pr, c, e)

image-20200731220812982

Alicehomework

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
import random
import math
from tqdm import tqdm
from functools import cmp_to_key

alist = [551718171636773184198630008866540500372857793814210951849139198793812315178988934035009509645371356784604538141981732207958286614986768380502485738855303024929657552338866269650745533251972926378477959082923398967310732647532901016139291163199486399278968084543522765025246384796784636322450082503192, 432186971347944827562312513168083296507826465046656533260371521870680203224077032030866545978069363121932660659406107589145325338044664450976974706296686963005403214250581332976505281677228126407870649508436663390790585211530281132411744363718763885906270940431256206984825314168728197462655653908946, 727906646110817751958031927639599439893707868759673760266342433565248129005267304848500210848105216917817146943396157310226193909546455346304327585043941981311168240778217224380828345856268877114480054506511432036335991861700626672729230452245358178473366951503357471313061869451205769789799885541705, 449159049588191796802569971542048273834462801696079629446709486608982571958366645562315815521911679980382562827677237987693876669182997966502702894959699213404556213576359528909865720356090278871013984530763468897360546204940343293583815666778732456346145004880921553321036793165371182227729752209190, 84570943203639903803685612165067576824400846450757565119355006863861663047811828978016534866339472646681380144478709238508898093965082469729963187034036946332889035331531909621790122606265284290024880864967298886315518883859366736776667416672553599786329588642361746001374940798532585811039964458952, 145868401846317496069987303218380178438449516702261832215592286592066337978430524425849072785822196660775082778394165383399509035679643497565146855550709217337642169262111269270391197037566515324136037995001923878882580306894118577840781067675949943764981440279667001621588400674837177797636637691779, 659539106627362331458466660005772791933827498986794313265739834610099607676327780394112979715312566379441137879509520080277870748434250339959828322331531308718558478577854892190806011846649051518647934776241531299028169315389121062034881491803889512931207403022843712931570129154485667763734771602139, 372570224848560948195324433617966400336702638194103718976653246045719251053072122312313947805890760066532626615747459859157095345790384934887214488400810241015592005246065984127050740969773237224608366866133622265220577392478760556519019318452486580062491100205893508005017358840732450501039086050335, 699885125746415894592627851967623698134732065057255901306539392710579558499667624758106101371215402689539644005777738825476128218959052112865224813368741400757134535846091135407077741782634006703472162886117514299176800656183101903099310666942851527647000973778815666105208416500924767797694944518697, 641896451865175618914746069665505651581622051296377553995308474351823095648029651371631635895924114268541018872188933534301165527805661445820738895745394622411080909148817709473201717119705882746050652193017213899770253225102245803012857421718137021460976895916503515576362915901055491561806538395507, 49255467108114081004803942708409339524825566624110420044591390874612097331282244778611177733150005526210668910007999106988676759446420027047809889506128070926932809604582575164830562727182084363879122050056440898838019596881470086373556435601882315036811046030321829469325198346868772885564696012836, 242997139717631085960237003381462708670791713156957402173272909712396555497463328421103210446047769402406913453791682679140192512163497590409507758247579978247889703355678532303744929688007359770131187643204177875761260062812526323164409078590075560068225200883905011148391374206311754022702347490117, 418662929070247490194987300510336272124979035284880922916867476958451927495675482799508026215408012391502601829436334885529065704724855518625063134356118369175428809222498218085892348496394688433927074009977389502700971847026772287304921777025864721617855482951580402635360718695734701863440086851222, 341701659855371436697632803059612603246243363502586528777055873693740511672631988570315881526265754468934099658554319774080172751070883123648162928184476261099499656779793079781880055468333321134926674282231559547196607196980187841347590473384645897436751511044486784452293419400437497694819145115397, 575665412116337331570151204778309389669195142135891503636346566585491252152297134828870007167070962481618298846043442151346954646776299065601636126410287626281656948317745939968299913990361158046317488948838463660565242243478444726691754992657654924582971461795375252241454722334233825617972934616841, 457546828722589388850412919524966067193418819906840620918236418191923825799761997852754123371215275764470221226119397760886121012011667491515643756314058176497112022608055844028205594359039221326668979287982672087276072460543492517022946828692152746264959365308632938990185047568819963210085587303040, 311476671444084734308273236859377219872100035838555367962427146254781172719077909470422572096587550132624997354801410663662296336363651915524652981577873013893007899087655184580687661236254214650939538597749763695625846595833910875052096055408747189091054076841084013950509209175976114877984975420225, 732385307681088380513020681021186354837180365853943431606277256763150764747028846710944328182980373282786520221682904128811861609896349908425731061992898619407671335345575601081330805353267237621699964540600306239410778958857158946453672870355106427646081658620948645584330566889808426675373863292863, 177423144786354092361356305359221531677122464544803552842246369460931244375712442471438434378940575071592270974439288126154551798206701973263837723141712555955545970884905621086097641515802287441503691519244143070909683723530811393401637660602612597444181181574073374415805149313908676615445234767882, 597684075591464395423770043027384130815250356870897024957535057667308257730765229223254924747907784335365628444926962328383136740690544739264058518873371733970872361769061616781486084177238792508566383743434167007470503331555301461402237411108932259497435191234355648532318335422890259427058222943430, 526343711716329219679761363584219173960454499021640628869675333305227673964155198752214934164909321166479133582342177068251140948103859306799824611739993601443896812239048907854168817666174584668254624774342477603770852111637852747626147786517532366773220381226096829040364990879567694302952756305530, 182887048832301617140586199394214697111876711123289838262853896552688058043154235392507328651698447177989522390245414419505638682138381389142407574326114107161716706934199554648844052335231115417111393133206654016839685959787714092931723312158573639833288197126276831320791343557911424726702674753230, 166697888526743728251436940852705635298917214196552423652912848107221087313205190244842435279843133426596421302200369971308608030551968310307800779284860243710882684563412958691014535683156100066429410723120607980245791262010457488236434554576881432661509823990062540838518355681672182442466498676729, 174241781133613261051766320711471136358327092118906274405876233802767780731039336547894997292482817052036763158893870969630415416601564939221507854881181711457970898711671236827914654859053725076610535246912067521516642445697022011695443928881815968098110040165299047998727095520761544371497584217150, 718050097963732110870796735992391372912925395881632151580682783403497079805181908018556028636265065713875142361037709230666032184871879558783452763555522457366335910107864575790788525636420462468897724640480931512853207673959294431422924716604028432074934601075432543593519368981747503651738203149439, 542162296329794250906040932311852979002601174294136692596537209235640110701358294919478482249355012297567877628937326377808857987398447993495025048643240060357919669492857505449296401568402668075676731063072774755234037347703780001680555169582229061239336733828518754720549005942619908188374837531181, 454497493678577907209803535885926787783070427121889717779476615039389204934492475106446861960809555063205554850274213987786969120175041189902319432889683951058439365686884942726936638054427356664554866189977586701553041835481626701267182102605400803163444995027764781942062936049820201713705249238744, 322663558490029344269435159381998417354845924063275448107590854342687695421484951640084363277706527456862872643036744309695030663961111187572816996293507747838861594602686809774568887653171025855822957349129856584503077352485418376503281592806554924405584669275189751268827468590643981078651066070058, 308875060213047342999638003427234117568588763344939649827273156611420032259752574786209709464418278644089880163333918448887101018347353605896806009359743784980484714889590831104059866023576123456453544390172980194892206590918465609179331708860868190098303892865308584388275001965298871295991912778858, 296613058128845876281397810897488043276968029171898354133305794445395823576054580595728132465782795301670891536436315261910334792339131604562348345577954341555807194693391723751120127795731116432552926313651101641875375446287150053957641946555377038357470531804501737211363605079949222699629944547466, 599556073534792443818403910717174848552362469386509692177146037248170116245168925249645420761618998779210719950480371764133944149773877669128136205882729020776294494788754219517444975622545894514221797527838803569398806785592923361510644275522710392763490335930997060131514732443572811021999838073693, 439823077093927843898387189895790640520366935651319573068411032200009826338846784710956828491744506941208707473060223570384789994980872042993760959872715860935561971554651919786687215201832993219047540566380005595366154594560454890069872304074719157845085740131305440713209223245018033181803876191986, 563724038070849405181741834220525275307325559703490468315697388756118866747350283376099997424109747392738595395819739703033755652141021089628562340019794348098471855467810879902428647893708256926913521108656928549664041463796037484824704940245390587472447565414451936888144297083391965112458845749498, 59690807653908846942341564356709150209386791080461386433807225677461877457878085502456331186729670951562926844496396916524111850173629721569216250635845979142086095826578561805143303651889865510776932975227683992700373278057376210730205913050906961803586007020662705126166498312013812237675918939020, 25191997204884795405868143312472192835263202435894691419413285243339451252307717524081957713940060512041671918718448593344456584415004781690071143607687106602717435733996579247968577687759320527112979160186285540107113099331753128067181920843087245218823910904926005216595806057466518418774329052277, 159812173714818529083884041455880989609273462209581697440436795148944317409445061098245790656508919232621971690511463634845849956739252795652226056538978685493405315079624797236299500670243160895471440766959540247327876373108046825579762233615582147237365361047833974093567627852322598715837304836258, 465871586593734025185177520032624018571121335908605358400951312246181569157295730803110348212285824356803416153336066203593841541251075041112784744392889072217005560177867231008318731965073653691186913343413904432267802977667269358037070516873565880287675597374263428292029693206233902927156458149221, 24165072650623857788137184528946198293197746779501426145170275931903788230131262102367120555060134600882670916528075427602293619565459443953279298870414535669540762973266895169943706565061472577999634234435289485513944350299409218822233928929285525197334193147131146141477812644738957547134310334335, 723230330649794725565599753622073132006717577413024898092751431701359283199026657398970148473904008785750390988736198576971673586585113877092681278754541541462767978373063151037318318220961935514501260481803711961391363667053283952122703522680814063237859716291530092498882136820430389813576439615450, 267096795783828111811541989421398875421942891038700303524651930968030791521621812355533341378405962176071006038380056756702119314875687160093980436418428572370144646909895161370809566066774047673492728181888250466015246888289562659132191038894590648278029344853925766468567024207377519452750769119041, 482398600833995483303105217204127363207067518344801302082292493551975809762078469410622192726036068035262181997514838098971391449905288363847775979260294378979674476684749156350220175739222149429344035395349638945619663424780347398864831137938552575544056187230673233501781881899890242012759686724337, 189650872221210900394521707269498870659258243171185407129891047076019497756439217449359472660866798071631446599833681667281227560202136594271867333371669164254742899872956408180123022415722315122299939369766232497542469688768948150858660331229850494117388194075968809957008668198739241112141564560297, 687998292197668302755181138192181931696404527886659391247216101506186436068085500362685025583172304244540982483528593853540161281554539162446699483090241816863363955618439635016965549750302264911988077431465158671068697943088307881165922310666602100748810880769863302000278282019626642258701941863932, 140840230827148884387712330431155878241497919658435020792601093005858641012239663512974166486972245148900135631606733877185502302772927993602517235608509897439779216626635797533192569036161610518158464103144206124409943431146686341866289370526056543736858746374290953788145113896648668620410287075238, 445868785429023691121619401003502407248505668098059822617417126204808317850358990546951852046758009852859530724058032686147250626114850915715094499117227240686856470969354209458135241056493332785897660121768503992686504911425537901223862321092463571033135662760761478226889356326439504640239447740211, 139807113595539382040444492555154140045305279959462743072991623589325784300017957122518661261091885978048997608295196510639413265434602746885842280369510894487000567323583422247165875959407292876249365236718634714858996069854726856600218474985306854747824889675901737790221643216568658377424751765588, 369925946264075369022987050416124117084796841211889477206425057665888740851185167052017923905205547495781085794622191636590616246049882410980200921487832732494736950332337386406728419828013211153532916655832899906074020177876319986074559111193223283633613458828382334509547090553857657892538749190612, 139641932728523138846882664313132261284955579795750721874000163101878740489488605747231714804358766066428033510043102271703619075409176792128400739847400460121139249963954832973497910739088897758236519277227363431190749099437338338769760444776488849811843174673669280586781884501626016220478815361579, 608124455844484046994970482202906889861738325669491692000522672862388349754322930516752610384386734902184671612226250041537021142913650441316217456007129134190287519961302876093201769481019404261835894402110492060555064053746850467298916800434630202604662843503684345447422356986473922372980888548442, 382716678726961171541973284380779009417522021363475256405836265137734649361816145185038634460758380059569283846125784046590930795763899190990412601919861431308229307340933487783700525303545295940327351768894221227706285513903934066909434445614200582912737282369640741153292969191103983174030331398424, 300786274753486871286967698931375187738086806119362193347559741279097046487392146368769750193993686133363581641608528446025184959656917049243823570996793173816833677847765941753408225336146783376437213097743873402257673305184098599455437162330452600838810747605008260621397855645664167027323120647938, 93609701102582526824566096410914046634648295955670862479158998201121166521743511101084802021443610470305458156957525543927248966973911919904446463071644666439245247166172733485605727683501834333787568230437793434068944656886704031392802362741905058761861725285103719844486148398611629732777572309989, 442328213883436850792367490564581565599847743623856701369406962135681320323639396150148541057793509111667613172440623035514524117126889209429685310893696769392392171087298232989130206645234774687468425294268959585844820219885954128820274656299785339665759838683599868951206501354664007055363220442814, 695895989832283869575381512292272750543112264516068734487743786037182514394303468927262204867955011832579496044585512172625374583758964866092379710202295190551576783257724400643118324579644628800664981434348216433878955343943389358393560680130945247767273144454317165177050598225196965281676382087438, 398502511409736205068370062619408935262390061399250285264237376117377100544832898793470389524606003334731184935285936700226956661483032360832815868289439881451998980667237041944729144083376459790401388787757115400075552326157185156934820915892930395991524996121745377800006285774781459898018894928184, 335795051786843156675472416505448344349722505279100001486032195311965136749023461915872189778576671642762207513098914828180614332383676979173547096593274744734713552034032100958464336363649554895489726231962122612480962031773241763730230029369236732503994650349549203795794993708330865005472596577999, 310133296033295861561512559545224871199193639282936833117254938960584526468806353082448931004170668527115805665014631871952447914289992060914829159042959564078816312025301671295899324055318293940202063329556460836163306201935911567471992950000949158336656230832623261053555254075926453379216070056633, 293747763881626141009204698576251642555994221809862186161496332738251235616763468019722426246064823819108179599277985359727335103203493222558833455936904402243264793371778949727408849612664011285545263581705524430255569482783274377294262004927190947692576669757380818057170893693361059390413884636090, 246609234120556969703429347313945546805661604961597984385775737686348368499645462583930137054574916695462253245786785693180906756686851108247571079553600448635723846128846266648389596108981224517135488744065671154865674070410829045795834734794465317422710264314614399690278172804979139694096397047920, 695107049741864945495229969186308926973661478269953943477951887785847710394283920672219899682681147096900848499145867165867471478116898305330519110677489476788784392720402344631318762402221330167655816211223459444709091000521805892301925433351682927860711943184390689041135773779809198820480043932085, 508029679842451436956569436671109115749464362732682441620320684090020847177259852471294535582375308025520350803296961506856576661036037341033659812796228609241614034381306205777041846499945075328107286075349571754765116573996678103400670033373249815527723947213115471692637942579000318131630965810386, 570549433035213422171677751135502477423608491944893625387898052240268201930060393682290751057594402214621995766305102492979789834550430496348816842347032083998199747171421913712936338847735163919831218707191794027505077423815406385757010395502166500398552290703854417166698482280182165558153463957945, 687711164515870814589197670910214454976038797925634767083673125682560173695774370405864563133396055866193432364507607516654810627296779000699819410195992687262571872984311320810535741765722211869575859925141991220484224348816066471368581586073486059435463057474965315167784400568485494648909764091254, 243738712529196345886472880625961062258177016496561820681791606651493064630314161227171206679040322607785203865534655367565926540639617750533610022893983546323080415423017414147731101291515202756346459796377900033121792518351691392448674510749600645977043406029888581174611267844394860395293810951142, 347569358111806944872379800189697858385285270830314775577979516813091179790968392996173645161099428891080863195286632964816763505186790906472814713400036732517146902464795765646117211349202158878180080477765739855967334130762776803296965685971795178857044561088350147225030189399897056081358523346556, 468792061893289583141203358472602177597787186084835858422456060104106325868712474873389707146095545463061171502108371513323510008085398719091912078657408651321748658257717313852854050639653943115645998839387038112010519616352897069190087623483589386926575153516983332074341489237700998576716844376218, 396783986422017283310605481472495372966296401225265213518261959370774154043003819518542604640240712897394302359624646939118989996278841813686412314013353790144976461840067227062853000581790395180458633258332663573939696354714635311494008008885949324347623125248222652985457772723890599526236093439503, 420917642365510097274953510732672976660090878118731141247480665926515510697340069453321695647763737833482084813690359182498149811426215694070555061000088298179074831653139399134712523421073175909374262026093232944423719549431019727798396112847419054014226956785729900148464813957201135591907975260236, 84379448919023151583218916437731851388765474758226402374341020929854343724384225828524053494430638696361560843475033172239983295653602258494811246021714863962111923668273440243473184363218484663193760141773381420689198542957789339746595300593534512876176854964547822725540412643487838609497742419941, 27948623319816340645836499340226355678251793321581374073502775472873797657304158937089786879622926250985278127784361430798295013263713087107653801153779565844505595566037388037608859653778593770806934100803339996908452271433654699267145936528054066941962500907029121508195781995150373799134843245794, 556086866992935894363913591938236440972727113271272546646758931191948794126253723207435218215391986626074766207058020302329827524916263122128301553676035174927432454203115932103962318758561129438809383393295550555814942553376996674416973247974800164562120981601506866651664646518766225067083073645648, 531528739516372404451424096534320392609919982282548034826436443394005175312944340888200544005182914461893991949682616348152994249885091041124629571853649624740572214229626626066964898090912040506749447170006411962389020589154274505456538939798306164545121326106198517771865972504151701052193231653894, 572145607395464509732558188883057109076962763897168591289108081999306512857425564834120834954867589334175671758518913343983536026244570978247301799706026465984810822980944531375426552727285044044770526926333305607438008452532192017662652877943991495675397499444735589031758999768818198367675139036856, 472954276172708531597523295968635129138423322724522258603762481306950443612284923177444804612578063682012926143650236119513911727087309691554400820089992336851932664409551070993079805193454747307634277235372932460311613679662555288078403241935482669835713645980614572899571667931472961447910841535632, 264083276376477309201113419494875971718162686386701648415386000728062029540282263611620145987394156874857663431584015067325013232292929925664140563535987212845781913740912737409115690900360452259698163613750945708024020155646261552367547208110308370983591157798090256233106279352390993968026496438406, 45929261681281220290240365686850671726357508009204552890476072708524661057471422353476602784774089342448386980533215603049867060843943711530408634518381093284720985969427452985439918324177149433065960833386799102870328665478501614774426809795192242627473422178655513911700889539088159242044671566580, 463753193895825809149812413889970744558914728641702268396752027081353646833081906866181095063008256782730385943150912129233584336083130792567540232069126688955269927875430523530482030036478421974115766483278772402986898780927675403996214009993974329155627974412264941747665331592064954658023221009747, 623180003032928283695302292435224729572046300455502295905947887509379899015217025179022451170654032880834823573582088232938955490115312585453134562550130183124684947089250451865624513845111085884804322006222819635678243597679110327220761762194829729734214992322828712538700804337468513590872820029651, 408241372831872199955020776968154286017398316716864917776300404205031867339083304374891998351889366978016502295109727645576933438851889684574181821238056858457121820436970617953970828018577059845056014977418146488752652774160570876504965263482939663566182376551615710873144624928576292596789058804603, 420748067389856115942188497123589530852009171554242047794017873881412027844982258118825585416825144287557613245280987465727507695699847420592547887872057223222641980426669816675520826374252655367707767445698167404739001385405469256108938899759171703451583969295973398511696166038292713741170468136243, 56253957829434648381189113993259301108134603489837845832662495341398764852110963602554536080135396309166522028683093940083909096372256220776900234225384610512175843124435851774302437007787959821614777260502510068563382631053463206207399699693592296633873036562132054559935532128211949227212336245206, 292308722370675278432478925068363411002962535314175442940348055554564198139168814847720193208889535099041192086043947897835215372970554673629244438195476508803602952531724183636968933083500702807934330999518422668011262809892947112243635748827918824310050658665463039077466816200798272026802231483929, 563240965136755399091621528306370605642784958803765145390988560471772897101638643170833019179908685390418669675349303095912682648826442097274230373724709376365013788652951813988283399645137304483722476788117924160331213354752198537267933609315912005218096723752384488726585236053055531358021704916349, 488765543706184327161275780336436994787092081541999380624935342831928649705586546448017400548324248139360458700289068094917526226681472040088446138536342510433235100130387543106911099923013691865210324894781458465582885213821314430337162663968264389707566171181230463348321715814971154833824222148327, 571457978087228732779366920254715103455066386961269060572454695917228274254219313476708107525991172551047196686708239938721478093971275758389305145636063080997417128579251826149883377079007982108525385021107942131592012636527747217105894671884015951546792125360891439454218577560097183519891333864520, 150078518728587802214850542579011249643092450976002650811454977359773019079293511390000597814778613664165064245109211660651359905516678954958848638041205816439361986576046498979397713236025600906617388262208072613667833937710907408709002441528287369266033504483623994480215231880337104059808160920431, 503832755737229461765331490632460383541926713439225294055475015524036401101595592818574031154578203302874015555517783481327982626071821867898429607033163347102826062960449804386359684692489141501060242429217285114975463995119216025310043206829750153471896754879343624379953251017358638504660820114906, 262754749893928118730617688867347531236754374872332408076510866865815648302242871525822787681563080639515307406742732884094859449707078292013314627103698167786102573882008820641602359987467790013631703396319181448451568866850338501659702167835097706698299111833865805360921081533924163394088582258876, 215886157061127053230696120948618318836514328217289128348697064915890028378326215912469651471001965191218914938998469038769356826469601431263332053009638204673288179460995297743128986921524398580741226575995740942839171940297851125599587455241300716862750470989114247004513377447112995398093861276200, 424358367988157817583620584051057205642565797939699292223928196046422029264915027757324629021689404595820809862403228726483216565434012764030366368389073701111713923082832520726724389814930054819977164283557208140098702578588967985201181505697992668487430091806759591418138425307471511136680203462203, 180414134029708312931820209187007846667958697678666063563805981977701263949425438560798544996855057553915892816567270652190967607824122636756354585532681715926216654512535807153830319762784591001658916898624810859925382516730896370722382097550724787113840892783402588487331863714629977383473066710415, 188648002430713983919100695132542236437604709121390905677194863711483334980443131041238283061221037755397769666029828069307437094526301472369938776083491679762709860133948364996786961840435239204272318327571492524113481191134278118168767499768231301571020740829782775292337616598621420166534082361194, 459000027393715569647992880386464261133332021075705790048122127209283070105220551213721709398429981006852125570967947873625828314665092779759924079623124592707084762767407260384115543100376320646855814602756399730741279074795486574061104522006043656544483459871984762262102835961049947743960422308128, 115391015110137773720993642125369214220947534965981254858686391483186549985616512172472373708744958870896853815951225207329045319169309288449705792420781722505059972250892430705643150942245351434700488586322215236482178205998924152144590399661940893294723984871301481841752442518440004701829644732693, 190316670192979141991979597745670750387222580721220730377508545257517908400486832379850246544554092119671093631810036789298366975632578925616471951437380137851590078274442183126320220845988411754994078034664846367926979356874300340229730485998154596376405396336071079539311649566671161795762811178374, 364783959251185825142502651453787994373359772778852957599040696809256579622770628049512811389177172985495185989907057094111368739171464868328215413205483817921056745750927346703510271772874020681739494970298384694485454525019691581500981409122439197607066220657757818588120306013014571049848279491232, 592126309027479576128825410357970620337326059226201761493197251512805764409881257293844313697197142311553330843016773146120292964805910734589006726575393387757318008652036271832382323505351504524682423510025046536481217276348923748671673124521309215331474391007533640106038600570029437484435813614917, 460611418485014165205339998594134670580869391299007370982682003443840069957383670666921214763147569508663638149006761936042303324749991980713037662811343221718081117686627272309085829994874820227736864970920456397876048482336373018120482331720414994697579538809317400638411890265250154500703340136242, 253074274811998679160037259954603703916210009807503836694473718384163398243879895858396195442358644002409452472136207294022167335943947950830403069658340071355211575275116402007127902557026622164152112871854983594120266132896401042214259159582135297566692499219327351538695061077552891032955082371491, 499415980437358799064423195976249320029470776623874337889917068876233526868397904660429614306210990861720958028461755657843142287106647557657805714018971507523718907256824103747549376081032747461414838018022153685818287209476067340414565867187410680003560262287395067405236149483599430941925709273480, 615036816243281985673429377731736053001150782187976719867650565807309947883969425416953853379797842558988355774043905057586133587037190382164467306582819223030233027810015479666000623576036331589377566037186391623127120548916460525694906146031990474973652012145814159397440339227723871439887722775324, 610470752021107803497827915139960426047841936386236453462595311125328519520122573700567757213815580762343240588943996029893587782997817591698377128627279859202255218715021010975588577643572861022168929496409060539105517517430451318927747997889775462051763062232002019174008540669577041766123713646058, 244296519816392032720035509943853397560030229332787135259139845106793185244693283796429661733102199962749152378577240896337575152168352087042457869967845629784368379312005280894870251006509655195763625155711988546437317725202359980017907414613172529659454957178825347187092734741920663605767806466139, 202600955782015053605102412783163161535463037408723677053763651067429772459160649149323148943098432826695872600047376405497475212629699293723854065500176653592670924238964519254497343326290958742868372313569116813493549228554601502894778204253786244881259920547001513847900365958335713411940814540979, 128434964012920378396025306072706484107622393438976709131063003820004498639083506452465625852132563846054649750185222178882027847494005826299161505197299486315553042200401312502400835674329323634534689935460501375041992179210387106429220802396420441823399554586091132329845644671189730801502398232908, 171950579299621526112180799377503574580834687353477458604188103951694859301561972495023160351931656781131372802611366283869370250644598841936606111865806668811500842768506797392754176079481651419630568944005666795175586336386172044743061848099084319742226712665934374062363679315937107798970864388976, 267041227990211759631882795338499273352943727291018788795844887723623777511417234797002211666114193573631371569200208953826785073280530230008641215642301861572125316867216962011930656330697781993255407810646080627661845536763882562061838599873049019774505396507640144517690327995001793161870690292440, 586842723710017731917632770908057217039593382052032758733562860323018388611479325151487781022558325115935604707160171611291891212304392231073116590888543643801491662093754151585225420838460111067860710205837767253093909682394113971401496062811496559879405365972442730471692883252047811914873993354366, 708703164501716401511622698122476922692692586181935265917382835377008656817550882347605544396499242158376100115681289390614808021464766321069383956799128784128261071293572443122108133098046783165597293245702621723140994345429887296428608385178121738867693508936505572109898814822493182381311068755028, 482732227211046044458048512455378135481623105247276255079060344821835331717490883120576344884102024872418095837405423958092109131127833905110190184084541727734629079820762647001309863976821847434594162987869563534067946304083522221120991734192727801500634022586140440717932094437534322317516868375140, 189500784154115504441781136753789820712273973822756665948699794731187576003520917447176846419035606393206962705074296949207298328186883863380333309866881588576546138954235678392283019114790046300537230414647688706777514629303205756312126001254952559812718746233119261146722988479291731151142929874075, 702281787552551026760877644110634254874557784091581491716870023022015819873199123030846404970674562836354122556766854806121999880732541967238125309963806629000346689410210927267875107404245978970980988531146137837255749884615747815324454106490757566756022468478121861810850855256604319882753828853518, 372243292773874565857512713606570934311355530387039192736025188701839255598970135577461015704656139914048202781318731409179260136026435547185900228353745934991786189383014327500762089726305949828352894390580114520859332600967739134722083839716811016164891547740334816017820947483749924558644414867642, 584884915450302851330558308451883472312878740672928584473935658028706748790820913653772836529060388134304820283684249730538545605496279398068478583342785600232837901482314251693559226546819645359512467524818764647731100250133824356376397189501464963299418520173324758153552071910461929437726230575762, 211174081716075305874825704870775007677537193519133387737793610698323227476253383473595479531012220753377238719462102245295521509033143707457963514861063290325767649080772995211169596174280830715296625207990639032678740687928316124834679918389404808351775593400764715619584772097944444609888695474299, 280127211565447116766397017977673585152974635358025104326976149560580046486223053557202984736447911553061401405128959036536063162366188619130612393422771628797334223606949333596853532869016305183134247039779078668615956476739977523028674191474208872521396896558058786546521923359631599996749458975393, 413202941986428654545773346666854863169489829138467589271417703006680069324064570077553649976001011051167149232129088553623623418775828049626788227023360258955283509429380939632658581794649902365370384019778695760971380560167774829474373967599615301893603188008997601735235597119008258021501674842882, 575353299718729283733753060862814943499899795513760984276746835000527481203448288379926077915014824322083267971385339411038265837179385347285009337312177451077389200650480793104296551158072546533964559763869245450806252545801949049042812322557402464593374959263960173704575998839099225064312002111979, 613405612139911421373582287074713901125400787936107266716457076103306417755758923548642305114680705035635667983922967791822958801911608629935458122889433417981821855061857882624027439705209826773006311523665032899990453437928134863557634690287059488877662531194976793223574680579812565778181914041334, 501058227630220991535411757127133096144383947714884782470924159592566957787342219969017663743481431413118684323397716361824849269380411123641670444861876636565993333209039320530907129683439881450442682792091916665429502676387975743001040556636990665830532031384290999721510383365386690724878215190891, 180819799498502230591698801193322445403587824655550423972066862036370121580513981766066933488955584809756841969146869721140734991738457786000371318539825951334328739984197464012800576570432742001382032184400377178284847977117146814852613836627602897483388976275451295250851076607464299740008454377103, 35058003972856706631786517245709479298109779789701933280814726458808573904993162396806112764831642380210568685509070349505709433463115181143429078713785113419593546345392613774087397819520082568575431871987155859198533122647159497591936510797102444935940417665819405292704303525338517521194658444115, 350427427132433933232972869063713195462049197013057416293511303625324856656300155830649343554860628411451539235888035310080076334636470825311042352188986967905874514412878678635539196197891942559516756931719326172162969977289254482057752609574429751345790957548022501012123370664458376063254410030016, 385542483870339414864775717569364781112820201356317856244717530346696520150953503688492300965278618714504764300062685611147116786947766687577556911629241819642308832307727744190263176266347319215623972671079697185266210482387748204058277547224297917431593825740054930153020587897729458124494554722230, 636365869373914373920737706256177703907109418522239731294781118169215384959505380176865822604786246546882520405637819989478674734502021734178201391229393895926517953864111340372497453516739197536481332887672918172168681212196417024936797158804408471989594381712709211505757844929300794188836196680102, 303071537597896888064504359927240610105177780118925221168565598473886652150177793964319843837684978235619637707306234876043080865285002694450109446719814609961341111264075882147936586244684735271445574382897227633295348107707432642999699567094290151100445699495966570908080532134394319130546028850502, 225557702648380010211439217357402230481021213144150320093242074575306908058131631480784314094823993444237995400463440215540487614750909573505747330139482415411267991965493354191109584032654206591546952190251876258978637905944463553081124970850018997233105216134482131491587862687034610001817448492133, 695089932565793482835951580076804265185864678635136335711018947969155783844998079920622264671877148183929002427589798480237944113527544344003269300383723655564733383704976112806174628433336533023059725172148452413390423444507236720981126808555983706209887972872544842464900969673825386952049962914489, 22610729137152389613060173216764331555444953581449799849706629420276914633603987165102550889763712273853493381976614803301512179705265228411461523709482160128140736650267371536562585307638678573255275757632453438726399399372359881441172695494399922968464841030736079336081437656582381190001338702272, 219858262762677947301203836198277594075198296734879809439795332145475753321192854123575066591780279242612777026531559084157457522990583652033272690853585825719346886356588506355671251565747594161241145090390970205634125684695125295144947718681945515853501827915720531833663339078066591526064967495184, 140464438133873114541086620352510414910329776375477835971491889252221066344624051835265355680014644457799303542738154064712630067470165187881756802062535788693539907707197809433831716925933682299657268768473390072484218997003985408770273785022688391361999745987343657696767115646552856036976513896471, 652547401585839909493367592085816151719641836793688973419936194950318234548848063419672605125035457628328250252005320886409893766464683405334692977839940160939259256048918026157691576063091609415343058345700910531709382337423125845985205301949733630497167642056818859309686866920458290432159913256047, 16197886013186360599400902719217769077956959830459686956408756481853244516413220208627706865717603603156095879287362378470100852484935892306878387775467260118500504116021630840589272022155718640985083725713829847552355188419139529019713328641430692572032166675610694276695066539212297439370335782901, 30089458627097679195321183028740052845257299401165674054579665028671807792519654208931675623796838473848512231898369762245599967315647042780786181403134947185011971933437368943509258860575575039294111071037238708244175442189102908832056344558965955676416046684762945388114447042719533744770188208239, 135465748631846297256790625027938603363546160722491915634713019851588165344579038408762525672679291416042275446955885898404280425119255430798468973995815306075900300753107057377200839537779655384896886445858962985768455069998055637992582797123714049486096479923716399382618316813629595694627703737441, 549151361529557961883551165687253577275662348063063814129893556857982195000611413194911780443033814363187341377648682624548427219653389568992699135289737977314466239827357093651452948441868022666994906162312727457161462588908518166435144225644096245375908803000930489670985487655607964906969543149616, 678767920053829162781830453919920530550693490052041122900983280971522555792176704431442257398605364170606352049109963933620539608732756982966219031173317606085626405047849322360285465716904357290326639276626248544132954079131233215593702930615671336335089377405708372903850784046600593338531729617857, 232290224691088728868717813857633145995091762769848265894534255418418052174885602071218639295337248684389391450928003310916101773431784646858480451761708047180026294233211086048024161837741490996994699521016927866176374665842238953769230149754124035081970218513969318878217878885577964170697866156583, 84342444552909291502508466981390584026021198832713303748949614680029705427092069704221874262727806490750062273261968685427578737190655791514061239266147356649494747642891580619193641942590375443581570841271830218740778997362199934431690257651749112973467618237146146436622892904689689984401296367870, 67111329448796913111733903874512132474738092604020301503352530278043378898128666487072658047798272181744308233389826637981459324257306775136260727786449199479253943479166912958663248678810297407913937491641975737956332395524544491952653721142318766899727198021777427024200543111075194889319668524505, 155711950218864366419146006209838681865243841855578485702743623919066179389618370453394807883645286823512916735829668491772103441406102579634412271982144147582374666920833484730442132868486823323964548058197271758746876418012161948042539616627462155933820469314021950660548726461209234643450152958389, 401081490760614641716579662719477347509696460210052360809732098106909185901313495723641228579527894888719095817660079520089703008335877485427102356420445942461723382510357396612172380007466214061811546045048272440197948003257219306031948100466550496374151431564790378607998951210303805468893681403289, 60722653660618848085785562899868192669518781781274955393343218463503931246311748932153687208524398938062703333519437008574073656693114222810664526479318530880287276243934395233292343378416010459195031440352236312647765094934753585059511372808441530603389772586313109069076791589211961445531375360766, 352779268745879120564239758054474761760100091926799079040648953824999663917562554164799886028204693645110448640995795384087345124454070558267569414314826935231396134842982272788750143767838414498862080478463368061353956324595615315421282860141424662238641122116466091129099268047345868107548191422079, 512369250013300470744465706567581819152212279932356055900073647307966495091114256393377045750021472331905165695714002685391344697495516640632351130705569405322304508988128524012033879181057859179936057852552685502768049287570971334007235970572433877630144980961404083244579184367679233853317763563800, 53018001726070034421284027628966339253838995681606096823772481487327093298977875315237101614034809924574291374108841461352760033852773362560491314683460962155293134558127001996867524392406386521420443029287619897616472766494556458495394061047709448847934594684139935281978058848970237886287288430935, 77539301645104281987286862001839910798023218656030809353882045602156216466521223515483684970160528641697536516880806853680335840326591257463897043594877637161201679017182743573579619206391482839155667127929811608787245490548140150035930963531412439946147300623715132242179083676648841184310727712653, 700783707397353627165941617856389758326638608505029865678914814953271647969009108356540711347890779388983232531047081577169496870721917637229607985237208560260168941451955591408438377588822161576498640251937709229401300426242536429230665954852104162462292985931107346102143658177444545849384265019907, 392628031496790590607179413149256674182803195542138533718524020589691425614558260172528667788229433176349927109550008107490239552557793820031021703933861874462476147140965135002493359320152995521868385651787259308697066149669741475037925634738291070512444132950706758328600745133697159177922472846267, 123865747719003344225745871443733674700623086895574003975751107326684338589465848092356031631217081567693604501702426902665001795185112641824350638163812736065311149415679383447225104876948856457572027888942870135747581602881155442453363063366949294267249731202976335156813340621035871024222701249334, 686002888373086868832946174033125626213653901728683767847837257256192793497277639272147775347284512074947210641642469347998408587292601992978059260262526064335772653280340035592098549341011746619986341822941958463262216701158245489593550306178500960694597896195202510663175562841687839077596861670088,
728255690033913871737905278258318518397654782796356093260417597408549514174619558288578671982587377888840537391492190322596287947637400429963265224401743378906099351977913276100938137009400470109112146710144274097675916842414014016460104681638157150838779178321353823901240540690269667047827431920740, 390763176994906943261590878766132633491543041924787564098681382991991168969404533984726049088675923664760248191874127759460196925396607192734742113064195512842053837631226177186887168697655608381782779934177800125766351659631639561370340856357641335658742226837847241717785962583333396813545066623519, 186804536653066220185449030536603246747680012170152396356959379490958818979092130921498384066657718135207556568382004059888567641642119214647870473274584676387557965726513906782089984473820513869569069180285539921699787146726784673867990108608408426975720235670261288945643970262184659111786762451540, 135586896224393038318225213982544495041898261277047658062152604843064353405612562768925633847794766170165406859396699800731365140528121974025475872038665030733391539893434317730921819089074070023262911440984820021162721194445008515187365309115228898960995126472164231782957532732086158287258389778436, 719448205811741101777861727190913136966748850102653829888051025988807412989906853923722428154454793241179900369593776505461046145862990095578975699547876135386265082986743791180704916253343501304349912836629973217905792304757472653785456775415556847132482731346192019778763286672769852662609813962047, 154789661593431324867881026741198729982618547797777916900878342634292186741631952412691762832493057157507888231584031697563113943149064204527174288744585659076074148156064496652987915840037056141452556366609171008900277050931269914518573386046477653880672516921492416737167118420246606971202040168934, 74183584558907965794252644909242103583252955709674271420483318828540143615871058145798733570290367082972206134245717016157633248871439118395807475728382079361656867989842963601339468186439944764438742041786015111386655016235367786764722079622182046377939459422588941088209193515662591338725630327631, 487856801358437084883058723632464234278338004785807142942590448205663563128611552052592318503123662908785138341858083213921739083978693882323943688796872886427590865359527278458875437095113329886963951773914949349753566984490146229424779287712912726170427861850782902253720255684849501898000182397269, 534134637409382257406382171672861918191992324088906711071936464184754777802194710461373175962196146862308216290312319662365818090749078280726817672616293238068684178591362117131899076063667980573859217429936206870878948857251538473547578834350215031762384591595044341695680708408273100855381235517417, 352127670938409252832064447157084956867248153128754231826105033305038887369366863912349190075021819171873038621146500401258944489250959026709973974279105286275433936389112528216670345124301682217639751705478472150600306349365162528469451333062704993043318759477227298303993443739267833535259927195725, 288620884062033822127198352999346775471860100404958124159292667969344516988199323269032870155162519580317091771321108609686892235699465614676755497822438606102178544694886260212226547626769490866224332836511104916040408260735133162391498412172772762824255999561339384883168207646525228675777861174294, 207378487407977201118325415609205217421074707425670363642895503184283934805426063060825935952082176469406623407018301781067850199905288565834300217516856249875465661127212338784971230686334466855593906456157079820547216921463405425821950836185716594535646376816763780807923855695565830124661170549328, 578541522921947491087126186003159087855646416574306047997282750324834958213521125706866194599728739936241245483309732932692771634095212042214446237368638075316027015726466003301869459666365856558826302523641105461863444275710649933292088028485783982727914875025875030719265439359988077486419783915807, 325238511922686847955421887936407982921767335160957234371252858424400889412596180310538711159219291281149871752509773124643509450387796696937741043514539209844098496636854090598977812442746865602686615852300718332062839239903790566929455764524890221820001233705326687107612917014621452986215671937574, 466648772082082875820519495176136619751775198922977449676859827006800718596679064675308017381714696775294504924671722111277252860763822080006347902120492566877756597799641503490245907452683199870645548349172719413915623225203143414304644128723142270610531720846602565431161310550440737040468237684922, 691228656363191018063169216086427169334368532305260871842838503565694609608039978309140996958457235562303250388757727076481115871898087557760623492142954609727899877108443582529862481488905223495163234187639827975480030206078877504553942245417497022993999367563464404027816744109787370858922739240991, 530302736277672322830030537245588618050878846004402236366780932283620973636982632423471292916915273349087452866163719569336315583115724494242032876868441109141363837942707856098471847363590307919471303694834799636192971503716569981839980066441552346679526084942944924950859570929810910699094666183439, 320332314407177513758235352860340206580105453445896532257908810865826338228261803299705925078272002211660472576672474477821078045040658999587505414073475455946071941484661275496715854099408556415161873453608556832572307348476034745422089410568484891204127248873065770738834320547385213957105727792723, 659027750791302483584001103381128339214730060352275073490843216098752148262325165815353169433044640330447935847717264391317011757316649651494957934182371152932973947410232299174034365428953415575247002134832965423630492808589360612251729985276590618163381465110556924253991712507799183900167584910524, 676383826112010460520320931636221944424243132403896589739916741679381675048070671809340376168923899377558658668426447934465768586017036758067882277746408636743415990496353966550676542947838797077762813936216978735438485938435785762906745487781699749441644676885869745520659970632453762881939747475488, 397832459610130331132611210127257239272880580504797789725264814297183439255381041423232904327486326096534810730907668131057509910502804327771826789718834963319727861173314098533594641887773227955704184522959962631932253990236675456912616293784416891079416629991716890564619102458061966660355149637163, 250571677137441827929271960491250764714643072892988467492619229130763681800536671614995139738066905795218458011837803969246167654524382619561286918531182563790802958726770139943837000034535170774863893843446397697552406790046797071687868170598401553792475451356505057096036427281407454802507926520785, 656405472692027697884385656248478167465333867396202876037431798075256904501769870409125335602615544474236296305391421783004831763473006092545592687784119136528526481523905003503980206242052535026552660614175713335141784334713980742995904822164669650925775161123920271406278798079045128060191635854868, 24725097170763962721127540190344798545293541934651253630910401069587378825392706004389547694118746400486017060800596491851456239606713347237923815580337117881378639127171501045784664636259354866611549735493782492752916973597755143578619161033077097433637766818751217510784944107669815860670650106457, 301936022210254667935976708952564011033967532061602418599167040155383298065744367934920439255958488128973215334839883818218078290807232514803350688253752639037345480219520707335250124914041055513022531466923282378658243121897119915458381603844446156919950360689374048392102523785308189690266927878346, 455690495913557627608577474067752509260787131192911341811217289823626117865080883436824626776795174991427863068894910193683856583898371700985270836199851146349613190466062952168041285990515985786893104437236363000558601783884685606145348240186217956711410890772953592218877373123340444937905685520735, 487266948417135123280178184375485243172209011804005612821046419580097612548724803862487121019403972450507797554037918849275436617992758399795289789108369093651278059250812250357367754496214194438408890456281442860895792961833277452557076183603105754378976990764593698803095607513295779057488893312350, 281872915620689855198812987541791520693780965127152947951460728692846329143755604174314231776030857809206497554402883014132589823018517262501112371414241696325324286419474951297769168884907336373820650610133297463516522476534769344809058708023134201864737240536041813959667359170038306580618521868393, 600347088498445930887246070485944553676840610859754952681053586681310831159269064742015555676168394736531930220727402132883101746456805791924119044973632037275872220423422543930596737009834569035341931954535911704763555412406522007799171984164233297650211660894057524798718929977616829121362267291648, 618586984306892333609680929425275319447722812179650875889759236292241844295292589633717708953887540192873546080805094677463145897923373157729836277750863637495017816511514627505108969186003451494695976597568327549938905116143857742541769982560962805558383797136146835891360903096999028260494907754280, 248836107779731751706359120078967204147665119093513396823130678889876029030876937104452746872639751517052057287906193307868928537233616336628520648104658882183408149663988022251047339547001642726959709422727525318601551469879163418779279858024102274343370839934970043759345997971398281908741448089340, 372217331946732579889497928603036795379298081274504418892854741547876567834771660469247810204859750135975727435941865310745850588452107736908706308057827869383893671519949431702548497074709168748015966152421328645791648647301028237067771506334892912739531396958035703873961630075533990882504177054742, 154063006479408693210515876829337150619491862191373536775914410402502907464413753642138044029594356904674215671201034222665341923280636405355784674305589440172218984878068455262187109617200485876286178141432660397067464990555304252447106766828753945206310363834977105989328141272523390354457948107356, 691539376321772386869901260279800791300027627055770448974332869445866372361441772144451863591649262582575780990875586633471087047886607183384197980333632814352759790470958380575174984669522244838248301879254226087553046957142522781688086495268871217841405233108388337194183101088318005412696304130364, 418130725094836103969945247573780187183160498869422124185713644881935371420078539320831581119812081621927646973099614606640607315427529690985021960976905893936010425162359458480660079825510019173336266008674487459425586158407284543458910460324283273813918581711665653723070528676133502387164151859730, 590343282305882013925947091411128832799103620468388236622007471345081935992789909151959071047041906706466089535363369013440153096742157206968891586699859371983587983713501902514726687455247835536360955143339464050105439749963787299318044418051507059595397666013958765061935513574767713775082135046718, 180211319456245582184737854947364589091297546786291565994385673741683557858008535605543782449181683435067268009601714117218291458993810662829255099427621382190003104782780235598638982948024837382497126988745044625433391113529335484008640302202334979391200802953120539266165997596565816876420701717463, 409573984924921635170730082487283903618893817773206157999663263981186783340330874795309746788933687500769299176713439883331815357178221123273351544953455448940529742703032143742852907417906397231927788623566327593683741568141449654682001146459614754953092508109690317412640067382476571051955421066934, 23550902591448803051349295324487906745498923059141483908138450032686840291428334822939220879129756062187158037152756077583780497050153435439352401422122751294145299748671252495704125087435797274890712243088655483760120755231739272875904247292185517445364054384582769145120254869394513415812010453957, 594696609217199716101420980220245047965013638658456489155967938524081013048493223752862279959842439493782018488753219093285591315981864643349437362900697764193346309051342559062638623572614051185418324228827204975964450565474477603418832194693422418867704372499395382236040495304102652199617183313321, 459299602297503885922580779806619449339300068153576783383372017683145877413344321309598788453392166511589558209808073000265913046920859691914910070009004403030304030739387227020643727862640846942406760264528881655388971442370695977244375797173429922142073739722840999046251608758381398853615277255330, 366549275424575837575557709429848159227510021835109403530656658159010254918724700207933047045670070714568793878799749211025039197726134871383001038430410794995033506870576763307054305389907665919981319014155944366476677170040634541867394713180677070539318772110736011374828903660245159053652042359389, 106166331600815998546814654814440263358324819884706309309472461559333266596070015487030571497780961216776104829139355773566144447636856565170297653942161049526113904204664328324994298306395954671734067962177308897127151269335243866647531354828834964136342870135772060570403215665083696512958116831906, 88663649924997111239186478142901848854956144772567963752950903453669410522190557999825509058009966416354812910083125655072589662569664995310883995484344149544834967174411506220423509907111059973284109668532407909664908095148445407636429388709195723061466061923970532474866981147238940586655379741731, 367911184647847765664865773123375647053384932665190137370441532257820744386011056195320885974043247803293132459451070680850633522714463552698009932727487310920563038139913030198965459635806789959673901689882225518357707994953104291507344627093407556854217056193307083090104298756538954228867181742732, 730136345717805194304027276428125443175291819835313924526640830826765119166644148902753740730623916805120010498420897067394685254060991754500312712848094331158052257174032487834121023928356931749419724826719948439639455838423981784523107603112683582092380339529986354372846742454287955439258788373495, 364908307839884593560233632587063196840064005429888602429454293892306366676129505163893147057025840938016830136613516521405337156105920697122957752591454116201217188915226661082083736782022659187754396327911861586399761243991550178554538774552434584253631690334336060316130563462471136534263470758286, 476417100743857993623311069268326459616145389195841885478894274030242513097859624064852330593249366713446252307026449803341923895847856560761081391388232232515490932215538192387223345516366228265915029675979180363763568907325407927690025902994443310951484446917511733827818661091993631585667065176030, 240228349015173328861065121943012414553540675681916221044909102548735597142967150955874119094218725087919238845724243824656585037039925276611498606902058151780469636788174022846626009366219020353921692629521311503254655684951094217062094497909039540955200854144294368141108655033090937044924134317866, 704758603819944767537181095953171896345358455977336972902246816781518414078567023334588176253269266172245972741306790747593062617615128938649595971641428681896440643231084723299993348389948807544545949666594141398571265906244626771807684789251018455614337465998029286809934777869837951216754811974288, 211957628630204855467049657072620648936495829524306200239167571666904308366188638874822611668722740332250637714269386274797230477646529305852012064580243366889284649431981374399604913439446651922948812605056822302298718492148149063177357836497835578792438106492630259582760607609110067333396589193673, 282442582049335635952660536484175397940663952428602376964747314082128461073877048672611860808285763498539130126228450927843055195717830473570235337673280204796186099244250629698995826385565427222201371807357212925630326718234749362492798998847371252563408221401899091665874253546830126997389672454347, 273468400354817300574222727700313479619970623153163250412593965760574829495306571805742393712211423511216168607805010974014870419657845704409621325954969794284724332959598423426951482543785136936479967484304957337429915635980284335275396076574037505124165936676785697470848061064709816055070681913280, 308955345504595891336814999849722647587900562083299695118696782202476137811711047659702292750790173297588991603202579556314607346803284462273787889241167166741353055713560551115579475979978104863670999100380649100217476803980382503911070226517956532997325276852548186167284905810966132151394371821300, 704316918142394584443113416081929809734244863685476160967799699016443997455799950522366365029956521040887085149378643945843815484106059338026175187371460610083657833970365287690217680604267473692944421331282949403067024907024998754585603882928442479183157097242438683218243324316741015196865056558109, 546160652337981539814783437967988953259681142956244051892433784833043115383618252611342813245996571553348309850660334710595481841220200325178364511371563524133052031269971129641935254173170893346100886124135277910822507137367721065061446940676441441401942600157663952990376151174991306816335017944184, 721708952842068691189393632366302502382120377685872683965174256300599346334881916930152350278651739478604879325282791928625056608217324526852365669542034050391327464081167695632208738023465940621293934669007733038300023574143351811431000573042590932559690140331954550852934492714593836223394693694360, 300432717604514721721869852550692176666003137263700556142194243476060351440044058481500520688195427870149838506370214181826424127645107073700067450659826391686337997876235065120871791830792736769669915043898727098027295981905519737074185308622797142897795972497619568819742935672057252439865597085149, 648800122532584323021683443299663981962651593398895078835688176255327209124769355260996849645020858687503116975920041796157046244455406915042142274022208602436694681072607360965572023644339965705531421236164891582818200151831168717401429149078493321127456512426402092159729873805949390149103426874032, 374880870921120533554911628009660990306287604567756640733902010872476888102534323867568774264325096242839887394812776479494585841697732494237158484841144720233677881054813502917697149646485175223972995876630253269056660760535991519083712594461378545846470535397719084888134035418888416332101321553500, 16941007925466282210758024692678464007726590772050048904558198798724724653999863628062854010551860430896926754037116154663098620778096438555796950738592405478295412314421821356550026731145116682007291622989561862679283553913599025477856467243643295621089003671675811454262970809207667691918862033672, 206481309933449332746709012905697108443784660124200057273334393362113656024698336130926981853737655645892007982045066502444849464322264159266678345982412725843998034920542581604086522559286501645846051157062301857967649288947382623947148092674051229801933051777297109603599046618617534856087113344295, 393597573659390963834688572208640481290138157416492716829366531846374060668745137727269549307200320335306480071531457382835888287533467703840537022964632568583787955624551155487930061629273314131126643760096211552574438250841670652373064457503093636863635232886235813976167850013332252285530184961586, 88938092742892981690869124417993367026737142769757309031210276483216270870414005016530111433880383501681929145522593361320196114463691800036215688160926392231379180865612197666960135057191659982324033963813474813156271524162215776444569318931406606286145987746961097840822343421320072788956695507773, 241655148335648634863102969047043441041318877821013204297443394477801605367194315778055474654116310780590740945701903940357196364040981485456175964599622659252234405575331353136611572668379893637774330913110665179199326623183617060506147826618235540102869955241147248757739098024535985308524071083071, 194459397627444577357392041656511592840826500338606891871342552274348990459964485690613286639279307021442485087144879703140943762669041796357852416864456830311271951370707026440102136436423674465477280480817712737665853918894582840143268459087345004112652171709932007053578876350009502043939838737428, 26760518749177150252433139131797238177029021344668441633104241448725706108409698988560934041333026913940437578437300166281432161325647521957005144859971135980779327532170328395004748746948113455168425364281406749525319842925023048398304490420833632709493842395136223120370298683773506454217541433109, 169944325619150863752565463011971714950867938656710361241339275833125124858220017163870204947475382771282719477137006505866071225028214160342549259951347214285686106594076941237117636556609010470494211248847741285721282226807910204031078335104469824024081967624012309684325789141818886277830456291242, 594142282997800857953270277522832263158729226075153685544755758535205362222596278142835701521189504726862179527657178149164977698650866352034325351471817275607088448217573107723137855473677185300325229653456127676906078022583399842544293131868911589083448976993651974395997786920379474046154407135135, 617994380943343998545480478609776228720648986082006777951116504335190568601742590433987150130095519349968280950085648598556189186731523501323311731068750657081814692646307445799267358503003452304502173019924297778864980630871457618045094249574691163964108874643461991749698551221978103281894807022398, 457928435578847760828673487267933946293894660380960003725513096661830481297163047154117833411855677905855362037765407413061384084845877194722736375783387930910427601261492213677005949312283340842238010869154588028685735050549628748816423909531094824237016014358928136249571086205361671543157876459998, 269097264938217718311530164101094989001453665026088391764728372943565487166176199038238906223276690977202886218830940271325510509612788183081590200410182454821040127797079882455259959333627137698554068645320284167149646353732490892543640289664459634823088291482806747467304104805490207462741401221686, 431193075429801242981247311321768641310166244546539231866548952701972937196206986592753386202639179033961428515536395850681081282237991349528803434379175823178263692477593108509304896436079039549528503948023598560529254008022192199306634598176502656156166416489488398344295839121876607005045113556263, 231660361042096789368717601190339040477877093319746435720799651434687905338742444601840584522272400027954608545487568231016918214670165401269900271512672582837983504213196607838474389866540831032500428668308859784569491385384350844251546927060379341384263019662633807480201389388755455494399739160323, 480533422464539668103852501941629126323783711899286526995871333958660414862592530841085657240878909765745680223566640614362744564443979430393177692768699285972030527818522790538536202943729317387067739854594281004250588080644708684522849659479818317353955564118191931596080551921070417236497575941626, 302323586061712842216585844996426729424374063715084099037203986392888075272407218046878884562402261873124665216541058145761997807050125309995142019555887736206654493060054756567441967253068716369188957899517767603395009406724482932881899090044373471288745204671272575663948074518685539302290545337088, 402979921218160077526450177777986512044295973268241008082438890984161869335623475458781126471823908853619657291710280915841391145484189119872893274234238159511458959050116610723571209775255939718879753159487320596385167061453767892971304389466243299281394570727879984647683707500942416525614230440107, 166792347083000899556516636852040207201680303771072915064155240547750137159630017218151369912610674216219812705198577057803359412401518441784639570694352674237084924538696484847651092826275528522750001087659483147805471499625644456328675012054289375755860948538741790565251947674763044869922414839676, 567142258978371052811026726423421591159648569660780925104511037579671470215534728354041270808243670158337375395113319288427450562381811946015296276487137802204779237147428751877936715942498615688842279272947192693699018344751240016699684853190873367571794814006209840493183716306191885171471692327286, 13221563240376692334277899140481683401016166001258389473166032836154384227701327132376642139317335161663954469504592051703968786739390094027552068644400759291998469634902440429114425327545557875347972484154764074752334652175295914959984440099049953988794069437324054256733499268055880584620981711621, 133265445228737672715705676809650772055344562434219547284583269207323959648520594238914305792287191488399738027451887540602491369824285433243393882623641582222149128239368118664187512520362285952806178368915492784132326581637455364225014790245526167061484054573635108328019208117672287843447576740369, 447187834257994881686282042855443911883591999368109360473284402802703502022053148311383985268193304215743124164943144660309931327351829920138802803824235380437516327891550327825333664936820636537634600674342013602039833457690236776825875069711901688095377315924859817577386105251246357689104761979214, 101942432267589039154681848934107988725646536498622041013757824684795000755555577497024231237933403319964992523435996340192266258197373401280473820239009734118004458628436232686722681644685838789444758644127499381497138293727091903753526122872720038486218087012543041349924014127085522369615951882330, 126546416338246546596190192088049472352572887229166765621703245528340376717136815845628021288091757318618684031014655023877148035006204103500036144988008799388927365360246843011611575341335610876046758641007868950561813149268339560592673543016220581984875983670228406138713408780278797341659982628335, 346970251575211891304813222519843330829991696608050748048993763138281096417681579788293199954480170683780664477664686106348786012557277615989528693572071978358570984474581511707235536698153448606956357410262926397634482647614352905628613584450348233053821674118915962409255657759832313651037612673070, 598442576713263417182255436858001517307655846510410033106169781483508082040863388550294333654626121700017402024139872050411777566127188283634904064049461515382896629877244962908836431047311540785768738908281952017837496602729158648034038217893115115475568413963188064638686570283233278931274659996103, 281030533051306324048606644257673298754590531333238122453654322888377300861394654669343699531543814467316911336244582047181703236397437508218732382000536509688971183249386513441465766362532719748035082626792052515634251089943473122420411040996634006308821437546564259933861976248744693087812833105554, 57459125297559757654520623562030578631200417153599446737406951275208097438406480720581563107404746975093199042258180484169477506888386522602275122178597069919219240010942316104643253180318746400666419848675095608200926409920749705395491858691516933854583708825524271651418671988192240986072631439605, 431734796451568036596256637043491461381889281507821272909858524701859941552425719763489375786174166652549070787632108301791664186637458322114647329922086266065436106306454810465868361344290898784671079610237717289908242771349029314863837594003740883687745880084770653193731383273499745935989833589464, 106552193195855481180395744006236929880981178518140018717470734788968927851079103683112121710055786704864252729409952260608505958391677702941188279271743392632101941774349571615950226548925873035408672599867964990326945496171125300610404583574874074783591791740230590178286197121565808547196712002546, 206705843435131465412362162138748728150801459246503608155861562533729924502370861775205446739359322455329543961164007174930922830620370154641933388002517579753460443634290560306785106229669606497939783565761121542126628740774579651973092439446003286484519577841991628149116839547789462474467584610725, 237729331569260183543065000917344305305579701478558051485451156735026890608485613883303211903815010325817482223145244416456012187065642353138015874708515441360951345876562571877045323964753708120897904750375826394011065909744285212879784239761521008154031539246883618684244336948957281483296490561354, 721421342204317449212531969540014995364880733263114085357485936758353971436996864284729250692109760035504960104654704560246482096069342384808876312088065541254150810220457440055505039926295186312858050462462697596658237189499860983574886340892420475802376660996132243902324458351141449688479619351104, 578200432890180531336989583277113532599037714017943359124602729282386819158253152226273079447798341154284343615803754315536730702881504113462924069897722912358021377839392184263032162986668390032744724310867217196818265617405745238826405452712139833558391618596685748890397455460779663373899499136923, 114272636435311597546248757213187244889107230770361868975636948924309384204326980377861277664001146459147103901042975122930480245300116280572192554463688867146537084119266044542719477448278375302553136032001325449638951178229150923974228637323172860403273148382216697072891362791539202589379059228781, 565706055595124037581989007042514214082820878982489076011062071818790518814618979636622955227505854448768398886187797504517691220783751240663128546864174246470872992405146985651345425989549226468713143137743382537833839107860359872643542946672669237522659171529733797792947747611834345102161889747065, 90978420890984627760611756527265155290396150339733350800905283430872112719592858896138833683250234218763339659428681875581612578917694973444326512756845222594441806833835592093351139050098788021575511369997764209268947239469631879953733509162451204909860002420833355728187948830141482731999665126754, 221326214298336993418977368537232223702835087100207909898239181362778312973221192032518479082607426841649270003446908269985719840267470387776589759099877157668158835937613375886118575535599356311116534615890801270767906570275111605778312821476694470751433317127710670585957445894608365885693938117965, 409261662438724819420863683724947082929150532344187736061224753646573383036857055519329068545159651879719890929264480146142124458858731881791178366388380564230915603858495529267729077166903780565893115782047527694370774824670760790600676245845432994802719977528470006537099773451946443768876928103978, 372358251718434557731619961401978572150154609230329690173749529331500948792904694907733775211309978585392106498764584072382803008943895888593593475511543991008299636476361281325262177136098398109609382926382950741795624607454006508475511325998216170981370869664969595929317452367094611955825995638925, 273734558026647825643445360883755175578272132364779683268251427017021046291503360270212072106718661777306916446451347978642002540826169881527699876632546366269808663291389570430787393681565567700913355208332206577706104475246601719319210230796554219172236567071809596784089928574674905535375334041886, 303497777731459102825720664007132783972971224110054638202573931674714138096118279791349498904329739321708982515294895037219376117289329596649116451328670740981335151556102520325886858286231729295395638696390362027980307751046531086782878587800232491466901337406873588601399005002125416813214725507837, 284668467915506473817945059639980354667992754043994621990597192097439773652227109099902951602159370144168820244668298298736744205387393479200648661989627086627651500162330579522474667354893573374042290381161886575606509462526145944348557397228131103804598997951106765607349959784603459961187762771697, 158306231637029313983979203948952322393282269343311492805532545443770645656536022025530243562139663982068344921908265600046839039783230310639360064091897492441448633109997531379405444293873741871722046886836403912017853916758303217323302864977567177037163420908210472716738269002174139300868922973272, 684774757404303029197306901749072663516695664595373352118684487338637601691053312931053022272620830008529575499467077334035332114506727803882253144060492860821742337681339633186047272197907416262127479155123714723491359124570591663125539769580259831153828746028093043731754927905660122431631334579724, 340721805046379815062455268819412641962131955895272224703539454256651422510010542931544958847544466853100256698601377976755163392465883225794288552483123647212534448404398303600187813998180585096343299563950540254778396208356098209773071039385773441306456383125849410171056611423362353622612743653493, 621468808954779403978575380747334181012556797731572879051439663749567695474872580364942249539213577087508140162685886230824569785110641374103180815458325143497434496511939141641728894880699174225427364702514286275046678533911796613201692928951478437095071180445977624864778799529286354201111880338228, 17510017134453865568500325264024070546590452068253438803830646336701407710544869353805479915152035419608432027188025835791059373863483945355557134283079429920453408870559938421498402606054784347063777005007994018561209342749342160640152548216182457624831939234416016039872688215359036024715319252535, 634836599609506060416651286261920603518869939059065495349498379647787309769898061167254339084430090392682123541350927708409554238679049974033864146734921313198664057114605426872099272355612436337112707183919072104462931491149612218268615470936770413062633352924064893078736502607318511071416664130071, 298706693550547251520386397295450562145983020413960164323166199232346701745951725017179384739239842664118881030271773214783614071377864962895520371149950493125344991342113910377878318573539971944936054794333200572294918546238355332090015986365079093630319097295244194702052749393994460306555579780989, 460001605783415697294358583330510727871443832337648548804849065832852327247846986334206914890052464156348345946084685026315083377645648047207716536205082325076884767349477430975511843893087029746213016109827546060725311357599117696602502356194200451013034862088230174875351966051540233395177391120610, 292172704086213612985971760524824215914836839719675654910830802893266833307775069703606478086362616673891201554716832838263283738797055331370329746922483252652757023138566308375830081230682345728054946010524545878539913537624773030982884536411792152030943408341205169331426140142840688934534549777138, 396733963274685185995554309627882083797151764933020722742583517113487003454749934281486823846364296622509219633448387170765642701727071628781035277093580695754208308809339595202972566178323851849854997425666011769988596276494292327235254528351850054545670775301320595287247947609464531248277002065767, 610607102035011351069040891686454461702658150172949060377126913509479901887921261668575292591398481346287574004575004059205826657942762747037044213579943631606466603666942732753456260891445913291710071821189207390541746157567003387304099516965787614390943593660760072200831226360310643991141400908112, 416673371502239493366457615965892800814560664336894251158185563090554084289006502944926828462734573624155104741726479682295408195029393031287397931071083210675328367143558035385302192094073431624560815798541250634028567702162883852510308446405097104847734541287568588637990351441802647642995315364871, 80391800890198716229562739522421124207734420930840292944079877369321149762255906491364468667548551448249013119343324498698586733373436766267854794205614485616711860996690004030410079068735828664526447807868567698500437215774789896176235766271955812681940961665272694241187701096647160351190817541990, 491577233719118613539488990976909804319976164684838675936344665584362252797706021831945263021127365228792393945728614859036866861889801416222467567655705102745421716003808884265024964845860345555271221237583069929521824512828932426191092002260001288736634549632045209176504230959871957743579564121161, 487556030578204326246883136595830026466572917805646328849829515244460230832645701917282516445410968123261721516923312980146407831608998487768175693110774885848345032343933030368294663935679821374366379352235766456147962059562854562568327025829608067970253838110670876259068096081074557214628394625905, 421666058819966011543079615267945060213444141951246310826423466039720938356531638850362482412255191672135939644054089417201721421333316467977334593657290563987125811114153191803761722997764711953678337240917016041057145265939168364543007265893460140539591356246744970826299326144955410335605449908215, 59217057238783508267415835195104587083149796725487136023964393934067064457472245050682511048284224321278464015707391828473913117929332962893029580690732086639316501857386857143359096917562041112388450750566659065803310469545940954404163509320697910824553387104488965872598302594289641401353759161682, 555937702701768068433819803397313451883954763843123242950777418566726916510739647463193819133093428235830217614511094664595626388195389526625396235300916493122159805654918985331144561022945304920785838668256830100086294688663090920528310372922169909082410340452340192841885342170785704732056906228127, 506775457622405633078489805740475366887261407636611347889249937416216698303604526126594425984808684551540164020191367050858760992115541612930232391212214057669355443242014399188670856835614157450346441168979456575178422107486287098625181527610378365482620198732828789622565572643759241913244591489644, 591302574636275230532235967647758907648668847249281557034242085939217823819971087491053119988510970200727205801562655857967706096007065328137693352553332564672547028164253418124937495377676209303385542424462003731276108691086094068796738310093625065087555262110622956910962844628029076109510888166507, 288717419175503069362660789274303817686942616330488492252294425565068646089884057246763035933201106941565116155143560238232276861741379820469859354338689371868762720715774300093062282086128959541221385540422919624294099482906735559528987075606631588633372386604082654580026583651355297571087262313995, 543705002514173919990706052857473757707706767949776054292848040429991907560633343127765355983403102188788359766248409986571828988553270301652407286174155093886852080457060076329728646605002662411143428416041201554972555043243122243390383761655863445403182161014690398046885213555331244351893223616810, 217443504936495747614036836769664110569479710395425428651904712551398295053906195595760831067381820906716361947102343567383215429317492496015774398618801282758515967058605293676308939269965260496991890958223296227696609082349768370520092081372832899227231469587942297164549708633240247093796370058097, 529945524641297035832951417769990299882541763879145170801899017600029471963626648600863795532681748905883169866523923963489186265039307001509871629561299731324548233654401301053291709728970589377845658808434471214299498071137403967970415200748744052627297670687371899544922719843129878931466987825034, 84383508651597197557891990294009843579513753187180858981005970667149143566311749695251303085130273652349281343204223490797352755490713905926262021844627184480902207992525604997445321731640222581818440888628542086584786032061722159186186451314400007484297398395779747354676743884800776127853700422936, 314161693070432154060005356263989121184349612024179842323825537484865485845200443970070801772495220245334912416977837654142003327685784282023988171237562008458307333340783667560405952673850811981058338942616908438040918878946855994191409654725651360645766773915622207531773690995495030689534383967397, 561393896515092608121260293101774343977373257661591686336900917794926341854734382352352666887080057713767476167378194271608455724645026300547860786486976075839757121156344928059092338920425836035300873220586206613114113442340900123076355103551894987294308103219983629401481070613134114959803606460704, 530023525557206624823087853086722412113306726392221124734537464953646105586625767733581069827021017550614474559830446927027893267307231665561104748923282895406934679288812823526694653243198600588903158356998141871994685136462787992805444115112543599547739589087986136780734927536906675532458424861045, 494148299666992228467801983045795102223879902313556273566462357279676034848941065035630966669851491526506284664774620233317610147848995753363253462158491509779777136745516458068969505769037542297472689698648803669294910475830547861117857280926516112354575613478344660278296165060137833195848292152866, 256222555108186618627211788448938023565705739561866302410991924379232672582418526667478573387733562319596438115793000500795170873212707328501626249756521304920366550267461645267219612060476651786111922354560534624840411724141076949465472510222197733334257194655704207834272767704313771211322338461777, 46495510506913367776356823976115172914545208367704204157600305906808194726357428633514714841442246504951457170962638879423130537337743042537977967192023604005119691612557572650679949294861415662015775132583926695368281623665570213176917842987177699719776934794750114799598357611071718077923111378908, 632336486642140451066197614922572740564913940556914661100393367637567462013963824136175325285799754527063780060997827497844295365226429989937789677169858712932788382578013339926667512095630477639572443964344061700628396978010070849655358754156579896534324815438398208215589404501857083277884926185481, 170755024398919024687068478483638603050593914654710377187987984807201640204861501297036369952498191183802904926475299423034799578223697559220900652000088061582642012479832432104388724458556487521225826495733437932687583712942147678945467854063476140724924999518604784432743554393889842755652614328818, 457391298075933544007686910870963908885871903121386210068333020870937441276672643549471209320121947117805273591907193151904985581933073813113962174224037884445747749871368316361648956371300151625955735666412309878289351536485749867214955471937657563721293270842522346977553973942907084731519808620012, 500639019602535781197302142191764760447980154421781262688329365376511663588807274775689687628258981313994827769793091422774629216627520390426285139653956980437298173306176196479138238889592576171166321299945602629451398823664158490424413093238441959800444140513043893301969265918559735700609329272464, 678551104262500911167147409893042890072672925966638489181593188525187961922610532979384759341847371767158485754785749313878232207534172389460662134483711756305575941266914571316121390029962887592249579839248896448027752468119851361888765330772536424528805673309253017554500649336535451235462340858776, 434614795864576132320557706918191092429862989130609425762135335714594150013008865149085576902845585873639445260005508475727793092849888311979105566816672926258417586269354601346288636395254294878769489295027623205539425578574752198950810016452667742467682379429733821544788395326170994304893601365655, 476379597802343219924072286022760404382442715007259974344687047623045440305696033451925794573254626172467513486979934204144067651322005148705437901659773426725520495048920737821827294494796922679407549785953649379454493281397557616386439398883788645073103508347353149084213561405775522809750170398578, 126992812255050951032830481593407507654831504675506262897903767925936286072503366221873974252656074698616657517289117711193784098054927821912900638796570305963517172253618358690332676672363643828025370166890876412680742926332939598650402606608255306223017831030808396297382985608622995183581050722458, 489220923357828207529438470955331311408712681130650495687428684653451595594469053964697410736243101828223017827208575483298763390570820689381016590121489980029315285631249623716173479335527760799708986876684045603050006931844968581786263975777131192146291333876488917290203759818917405347231223745139, 407522900267746298513980794418203104514422247938578441493741299563830169658916786685975680299989122475454381834068954705595359217737029188604335125490301166385549592490726300885824498056597888343307471398647806166302029280791779637744182353668297332952904400744858399247423238170036611419683956158967, 554839878813031369175175851534967484934211080161576721580249446497785884425796072334475474844663903640378930659280699570214353676268275334384039697628152847289092325487119047928375572576541198023117037896770851551917351212892694907153070089907431433858925482502401528754181399905927861985007729184081, 57402122855647676608912178654327552284271860904999590780584399642458762908690453176017072579793967822944040656942846795443015582106231947118070992152774323487868500974350557721190353512125280287053049946115655382882230082560427357710623927334834592802534594410341931570177526063824093855206316236373, 203569136965686675146998990825278787541456277148321123844857229556023835360687058360096076741028070436626703634531632119886565047840091134626745640169097364778770533575680499775141997372461978088729514515776436684727270455679865773369130023715152597288678332659695955929196136455251382358899656218165, 709434019074800050119255011253228682365254927390705649488442224077924875337790108157817846882145288922649218329797675058413185159872035265604321930530465020323512163114427049959272603712013882776252416354814834523735886765135878684620851619585012392704397091214567192788680589299065299832407725431023, 28181586098627325036945398687753765440009260949125177910012226681851845837048851247408872208224406137204508413162551825656190262076820361645576657962411672311044452838580777069397515969501402974599554046152821266200382875503884057597773096910791785091830311229443367438044126571998952691815721512952, 203185432448269654304907894853885183487566227172687108281103110522495050766599781354681269538896195544601688336193923657926730507836470395640891831512937645614934071273454391721934106763508201972590287391274412165841984931541257324532215516059787682554118820709779565014837985267710219589903878025275, 549491502630699281810259485254267882793896817280131823496370781074423061457133719112390332644999804872962705021680549402932890095744972688721433529502271964735684060248894135265694811514499977737230808065478272279273624403310442326226464831997335834748061148653943276846660329513411896619571916995894, 334590807091232046993882317669368504294132122585130168955355272747771193866459110831296502013462208839541275812120391328187870999037904087310669673083582326466188430232652012489751105699094775162254514246017626551148323893222225961814636209852106401388838235091796142826514219396248688601163014532595]
s = 48900138654057608906330336094404001410012416314129947343718254788658710361958972300167501443635234828803130486373878734082851314709567051747373094122800043398642622361749518265923115930476719470463043632323571459743381102290686602475870167398059452505895370462341540956691006903515181773586159733875651
n = len(alist)

blist = [[] for i in range(n + 1)]
for i in range(len(blist)):
if i < len(blist) - 1:
blist[i] = [2 if i == j else 0 for j in range(n)]
blist[i] += [n * alist[i], 0]
else:
blist[i] = [1 for i in range(n)]
blist[i] += [n * s, 1]
print(n/RR(log(max(map(abs, alist)),2)))
print('reduce...')


def clone_runoob(li1):
li_copy = li1[:]
return li_copy

def compare(x, y):
return norm(x) - norm(y)

def listadd(x, y):
assert (len(x) == len(y))
return [x[i] + y[i] for i in range(len(x))]

def listsub(x, y):
assert (len(x) == len(y))
return [x[i] - y[i] for i in range(len(x))]

def check(zlist):
for j in range(len(zlist)):
flag = False
for i in zlist[j]:
if abs(zlist[j][i]) == 1 or zlist[i][j] == 0:
flag = True
else:
flag = False
break
if flag:
return True
def checkz(zlist):
satisfy = []
for i in zlist:
flag1 = 0
flag2 = 0
flag3 = 1
for j in range(n+2):
if j == n+1 and abs(i[j]) == 1:
flag1 = 1
elif j == n and i[j] == 0:
flag2 = 1
elif i[j] != 1 and i[j] != -1:
flag3 = 0
judge = (flag1 & flag2 & flag3)
if judge == 1:
satisfy.append(i)
if len(satisfy) != 0:
for j in satisfy:
out = []
for i in range(n):
out.append(abs(j[i]-j[n+1])/2)
print(out)

def norm(vs):
res = 0
for i in range(len(vs)):
res += vs[i] * vs[i]
return math.sqrt(res)



for inc in tqdm(range(1000)):

# step3 - reduce
print("\rstep3...")
m = matrix(ZZ,blist)
zlist = m.LLL()
print('norm', norm(zlist[0]))
print(list(zlist[:3]))
blist=[]
for i in range(n):
blist.append(list(zlist[i]))

#step4 - check

# step5 - find
print("\rstep5...", end='')
f = True
while f:
f = False
blist = sorted(blist, key=cmp_to_key(compare))
for j in range(n):
for k in range(j):
if norm(listadd(blist[j], blist[k])) < norm(blist[j]):
blist[j] = listadd(blist[j], blist[k])
f = True
elif norm(listsub(blist[j], blist[k])) < norm(blist[j]):
blist[j] = listsub(blist[j], blist[k])
f = True

image-20200731221714506

After we found SVP, we shoud do a little change on the SVP we got, then it’s easy next

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from Crypto.Util.number import *
alist = [551718171636773184198630008866540500372857793814210951849139198793812315178988934035009509645371356784604538141981732207958286614986768380502485738855303024929657552338866269650745533251972926378477959082923398967310732647532901016139291163199486399278968084543522765025246384796784636322450082503192, 432186971347944827562312513168083296507826465046656533260371521870680203224077032030866545978069363121932660659406107589145325338044664450976974706296686963005403214250581332976505281677228126407870649508436663390790585211530281132411744363718763885906270940431256206984825314168728197462655653908946, 727906646110817751958031927639599439893707868759673760266342433565248129005267304848500210848105216917817146943396157310226193909546455346304327585043941981311168240778217224380828345856268877114480054506511432036335991861700626672729230452245358178473366951503357471313061869451205769789799885541705, 449159049588191796802569971542048273834462801696079629446709486608982571958366645562315815521911679980382562827677237987693876669182997966502702894959699213404556213576359528909865720356090278871013984530763468897360546204940343293583815666778732456346145004880921553321036793165371182227729752209190, 84570943203639903803685612165067576824400846450757565119355006863861663047811828978016534866339472646681380144478709238508898093965082469729963187034036946332889035331531909621790122606265284290024880864967298886315518883859366736776667416672553599786329588642361746001374940798532585811039964458952, 145868401846317496069987303218380178438449516702261832215592286592066337978430524425849072785822196660775082778394165383399509035679643497565146855550709217337642169262111269270391197037566515324136037995001923878882580306894118577840781067675949943764981440279667001621588400674837177797636637691779, 659539106627362331458466660005772791933827498986794313265739834610099607676327780394112979715312566379441137879509520080277870748434250339959828322331531308718558478577854892190806011846649051518647934776241531299028169315389121062034881491803889512931207403022843712931570129154485667763734771602139, 372570224848560948195324433617966400336702638194103718976653246045719251053072122312313947805890760066532626615747459859157095345790384934887214488400810241015592005246065984127050740969773237224608366866133622265220577392478760556519019318452486580062491100205893508005017358840732450501039086050335, 699885125746415894592627851967623698134732065057255901306539392710579558499667624758106101371215402689539644005777738825476128218959052112865224813368741400757134535846091135407077741782634006703472162886117514299176800656183101903099310666942851527647000973778815666105208416500924767797694944518697, 641896451865175618914746069665505651581622051296377553995308474351823095648029651371631635895924114268541018872188933534301165527805661445820738895745394622411080909148817709473201717119705882746050652193017213899770253225102245803012857421718137021460976895916503515576362915901055491561806538395507, 49255467108114081004803942708409339524825566624110420044591390874612097331282244778611177733150005526210668910007999106988676759446420027047809889506128070926932809604582575164830562727182084363879122050056440898838019596881470086373556435601882315036811046030321829469325198346868772885564696012836, 242997139717631085960237003381462708670791713156957402173272909712396555497463328421103210446047769402406913453791682679140192512163497590409507758247579978247889703355678532303744929688007359770131187643204177875761260062812526323164409078590075560068225200883905011148391374206311754022702347490117, 418662929070247490194987300510336272124979035284880922916867476958451927495675482799508026215408012391502601829436334885529065704724855518625063134356118369175428809222498218085892348496394688433927074009977389502700971847026772287304921777025864721617855482951580402635360718695734701863440086851222, 341701659855371436697632803059612603246243363502586528777055873693740511672631988570315881526265754468934099658554319774080172751070883123648162928184476261099499656779793079781880055468333321134926674282231559547196607196980187841347590473384645897436751511044486784452293419400437497694819145115397, 575665412116337331570151204778309389669195142135891503636346566585491252152297134828870007167070962481618298846043442151346954646776299065601636126410287626281656948317745939968299913990361158046317488948838463660565242243478444726691754992657654924582971461795375252241454722334233825617972934616841, 457546828722589388850412919524966067193418819906840620918236418191923825799761997852754123371215275764470221226119397760886121012011667491515643756314058176497112022608055844028205594359039221326668979287982672087276072460543492517022946828692152746264959365308632938990185047568819963210085587303040, 311476671444084734308273236859377219872100035838555367962427146254781172719077909470422572096587550132624997354801410663662296336363651915524652981577873013893007899087655184580687661236254214650939538597749763695625846595833910875052096055408747189091054076841084013950509209175976114877984975420225, 732385307681088380513020681021186354837180365853943431606277256763150764747028846710944328182980373282786520221682904128811861609896349908425731061992898619407671335345575601081330805353267237621699964540600306239410778958857158946453672870355106427646081658620948645584330566889808426675373863292863, 177423144786354092361356305359221531677122464544803552842246369460931244375712442471438434378940575071592270974439288126154551798206701973263837723141712555955545970884905621086097641515802287441503691519244143070909683723530811393401637660602612597444181181574073374415805149313908676615445234767882, 597684075591464395423770043027384130815250356870897024957535057667308257730765229223254924747907784335365628444926962328383136740690544739264058518873371733970872361769061616781486084177238792508566383743434167007470503331555301461402237411108932259497435191234355648532318335422890259427058222943430, 526343711716329219679761363584219173960454499021640628869675333305227673964155198752214934164909321166479133582342177068251140948103859306799824611739993601443896812239048907854168817666174584668254624774342477603770852111637852747626147786517532366773220381226096829040364990879567694302952756305530, 182887048832301617140586199394214697111876711123289838262853896552688058043154235392507328651698447177989522390245414419505638682138381389142407574326114107161716706934199554648844052335231115417111393133206654016839685959787714092931723312158573639833288197126276831320791343557911424726702674753230, 166697888526743728251436940852705635298917214196552423652912848107221087313205190244842435279843133426596421302200369971308608030551968310307800779284860243710882684563412958691014535683156100066429410723120607980245791262010457488236434554576881432661509823990062540838518355681672182442466498676729, 174241781133613261051766320711471136358327092118906274405876233802767780731039336547894997292482817052036763158893870969630415416601564939221507854881181711457970898711671236827914654859053725076610535246912067521516642445697022011695443928881815968098110040165299047998727095520761544371497584217150, 718050097963732110870796735992391372912925395881632151580682783403497079805181908018556028636265065713875142361037709230666032184871879558783452763555522457366335910107864575790788525636420462468897724640480931512853207673959294431422924716604028432074934601075432543593519368981747503651738203149439, 542162296329794250906040932311852979002601174294136692596537209235640110701358294919478482249355012297567877628937326377808857987398447993495025048643240060357919669492857505449296401568402668075676731063072774755234037347703780001680555169582229061239336733828518754720549005942619908188374837531181, 454497493678577907209803535885926787783070427121889717779476615039389204934492475106446861960809555063205554850274213987786969120175041189902319432889683951058439365686884942726936638054427356664554866189977586701553041835481626701267182102605400803163444995027764781942062936049820201713705249238744, 322663558490029344269435159381998417354845924063275448107590854342687695421484951640084363277706527456862872643036744309695030663961111187572816996293507747838861594602686809774568887653171025855822957349129856584503077352485418376503281592806554924405584669275189751268827468590643981078651066070058, 308875060213047342999638003427234117568588763344939649827273156611420032259752574786209709464418278644089880163333918448887101018347353605896806009359743784980484714889590831104059866023576123456453544390172980194892206590918465609179331708860868190098303892865308584388275001965298871295991912778858, 296613058128845876281397810897488043276968029171898354133305794445395823576054580595728132465782795301670891536436315261910334792339131604562348345577954341555807194693391723751120127795731116432552926313651101641875375446287150053957641946555377038357470531804501737211363605079949222699629944547466, 599556073534792443818403910717174848552362469386509692177146037248170116245168925249645420761618998779210719950480371764133944149773877669128136205882729020776294494788754219517444975622545894514221797527838803569398806785592923361510644275522710392763490335930997060131514732443572811021999838073693, 439823077093927843898387189895790640520366935651319573068411032200009826338846784710956828491744506941208707473060223570384789994980872042993760959872715860935561971554651919786687215201832993219047540566380005595366154594560454890069872304074719157845085740131305440713209223245018033181803876191986, 563724038070849405181741834220525275307325559703490468315697388756118866747350283376099997424109747392738595395819739703033755652141021089628562340019794348098471855467810879902428647893708256926913521108656928549664041463796037484824704940245390587472447565414451936888144297083391965112458845749498, 59690807653908846942341564356709150209386791080461386433807225677461877457878085502456331186729670951562926844496396916524111850173629721569216250635845979142086095826578561805143303651889865510776932975227683992700373278057376210730205913050906961803586007020662705126166498312013812237675918939020, 25191997204884795405868143312472192835263202435894691419413285243339451252307717524081957713940060512041671918718448593344456584415004781690071143607687106602717435733996579247968577687759320527112979160186285540107113099331753128067181920843087245218823910904926005216595806057466518418774329052277, 159812173714818529083884041455880989609273462209581697440436795148944317409445061098245790656508919232621971690511463634845849956739252795652226056538978685493405315079624797236299500670243160895471440766959540247327876373108046825579762233615582147237365361047833974093567627852322598715837304836258, 465871586593734025185177520032624018571121335908605358400951312246181569157295730803110348212285824356803416153336066203593841541251075041112784744392889072217005560177867231008318731965073653691186913343413904432267802977667269358037070516873565880287675597374263428292029693206233902927156458149221, 24165072650623857788137184528946198293197746779501426145170275931903788230131262102367120555060134600882670916528075427602293619565459443953279298870414535669540762973266895169943706565061472577999634234435289485513944350299409218822233928929285525197334193147131146141477812644738957547134310334335, 723230330649794725565599753622073132006717577413024898092751431701359283199026657398970148473904008785750390988736198576971673586585113877092681278754541541462767978373063151037318318220961935514501260481803711961391363667053283952122703522680814063237859716291530092498882136820430389813576439615450, 267096795783828111811541989421398875421942891038700303524651930968030791521621812355533341378405962176071006038380056756702119314875687160093980436418428572370144646909895161370809566066774047673492728181888250466015246888289562659132191038894590648278029344853925766468567024207377519452750769119041, 482398600833995483303105217204127363207067518344801302082292493551975809762078469410622192726036068035262181997514838098971391449905288363847775979260294378979674476684749156350220175739222149429344035395349638945619663424780347398864831137938552575544056187230673233501781881899890242012759686724337, 189650872221210900394521707269498870659258243171185407129891047076019497756439217449359472660866798071631446599833681667281227560202136594271867333371669164254742899872956408180123022415722315122299939369766232497542469688768948150858660331229850494117388194075968809957008668198739241112141564560297, 687998292197668302755181138192181931696404527886659391247216101506186436068085500362685025583172304244540982483528593853540161281554539162446699483090241816863363955618439635016965549750302264911988077431465158671068697943088307881165922310666602100748810880769863302000278282019626642258701941863932, 140840230827148884387712330431155878241497919658435020792601093005858641012239663512974166486972245148900135631606733877185502302772927993602517235608509897439779216626635797533192569036161610518158464103144206124409943431146686341866289370526056543736858746374290953788145113896648668620410287075238, 445868785429023691121619401003502407248505668098059822617417126204808317850358990546951852046758009852859530724058032686147250626114850915715094499117227240686856470969354209458135241056493332785897660121768503992686504911425537901223862321092463571033135662760761478226889356326439504640239447740211, 139807113595539382040444492555154140045305279959462743072991623589325784300017957122518661261091885978048997608295196510639413265434602746885842280369510894487000567323583422247165875959407292876249365236718634714858996069854726856600218474985306854747824889675901737790221643216568658377424751765588, 369925946264075369022987050416124117084796841211889477206425057665888740851185167052017923905205547495781085794622191636590616246049882410980200921487832732494736950332337386406728419828013211153532916655832899906074020177876319986074559111193223283633613458828382334509547090553857657892538749190612, 139641932728523138846882664313132261284955579795750721874000163101878740489488605747231714804358766066428033510043102271703619075409176792128400739847400460121139249963954832973497910739088897758236519277227363431190749099437338338769760444776488849811843174673669280586781884501626016220478815361579, 608124455844484046994970482202906889861738325669491692000522672862388349754322930516752610384386734902184671612226250041537021142913650441316217456007129134190287519961302876093201769481019404261835894402110492060555064053746850467298916800434630202604662843503684345447422356986473922372980888548442, 382716678726961171541973284380779009417522021363475256405836265137734649361816145185038634460758380059569283846125784046590930795763899190990412601919861431308229307340933487783700525303545295940327351768894221227706285513903934066909434445614200582912737282369640741153292969191103983174030331398424, 300786274753486871286967698931375187738086806119362193347559741279097046487392146368769750193993686133363581641608528446025184959656917049243823570996793173816833677847765941753408225336146783376437213097743873402257673305184098599455437162330452600838810747605008260621397855645664167027323120647938, 93609701102582526824566096410914046634648295955670862479158998201121166521743511101084802021443610470305458156957525543927248966973911919904446463071644666439245247166172733485605727683501834333787568230437793434068944656886704031392802362741905058761861725285103719844486148398611629732777572309989, 442328213883436850792367490564581565599847743623856701369406962135681320323639396150148541057793509111667613172440623035514524117126889209429685310893696769392392171087298232989130206645234774687468425294268959585844820219885954128820274656299785339665759838683599868951206501354664007055363220442814, 695895989832283869575381512292272750543112264516068734487743786037182514394303468927262204867955011832579496044585512172625374583758964866092379710202295190551576783257724400643118324579644628800664981434348216433878955343943389358393560680130945247767273144454317165177050598225196965281676382087438, 398502511409736205068370062619408935262390061399250285264237376117377100544832898793470389524606003334731184935285936700226956661483032360832815868289439881451998980667237041944729144083376459790401388787757115400075552326157185156934820915892930395991524996121745377800006285774781459898018894928184, 335795051786843156675472416505448344349722505279100001486032195311965136749023461915872189778576671642762207513098914828180614332383676979173547096593274744734713552034032100958464336363649554895489726231962122612480962031773241763730230029369236732503994650349549203795794993708330865005472596577999, 310133296033295861561512559545224871199193639282936833117254938960584526468806353082448931004170668527115805665014631871952447914289992060914829159042959564078816312025301671295899324055318293940202063329556460836163306201935911567471992950000949158336656230832623261053555254075926453379216070056633, 293747763881626141009204698576251642555994221809862186161496332738251235616763468019722426246064823819108179599277985359727335103203493222558833455936904402243264793371778949727408849612664011285545263581705524430255569482783274377294262004927190947692576669757380818057170893693361059390413884636090, 246609234120556969703429347313945546805661604961597984385775737686348368499645462583930137054574916695462253245786785693180906756686851108247571079553600448635723846128846266648389596108981224517135488744065671154865674070410829045795834734794465317422710264314614399690278172804979139694096397047920, 695107049741864945495229969186308926973661478269953943477951887785847710394283920672219899682681147096900848499145867165867471478116898305330519110677489476788784392720402344631318762402221330167655816211223459444709091000521805892301925433351682927860711943184390689041135773779809198820480043932085, 508029679842451436956569436671109115749464362732682441620320684090020847177259852471294535582375308025520350803296961506856576661036037341033659812796228609241614034381306205777041846499945075328107286075349571754765116573996678103400670033373249815527723947213115471692637942579000318131630965810386, 570549433035213422171677751135502477423608491944893625387898052240268201930060393682290751057594402214621995766305102492979789834550430496348816842347032083998199747171421913712936338847735163919831218707191794027505077423815406385757010395502166500398552290703854417166698482280182165558153463957945, 687711164515870814589197670910214454976038797925634767083673125682560173695774370405864563133396055866193432364507607516654810627296779000699819410195992687262571872984311320810535741765722211869575859925141991220484224348816066471368581586073486059435463057474965315167784400568485494648909764091254, 243738712529196345886472880625961062258177016496561820681791606651493064630314161227171206679040322607785203865534655367565926540639617750533610022893983546323080415423017414147731101291515202756346459796377900033121792518351691392448674510749600645977043406029888581174611267844394860395293810951142, 347569358111806944872379800189697858385285270830314775577979516813091179790968392996173645161099428891080863195286632964816763505186790906472814713400036732517146902464795765646117211349202158878180080477765739855967334130762776803296965685971795178857044561088350147225030189399897056081358523346556, 468792061893289583141203358472602177597787186084835858422456060104106325868712474873389707146095545463061171502108371513323510008085398719091912078657408651321748658257717313852854050639653943115645998839387038112010519616352897069190087623483589386926575153516983332074341489237700998576716844376218, 396783986422017283310605481472495372966296401225265213518261959370774154043003819518542604640240712897394302359624646939118989996278841813686412314013353790144976461840067227062853000581790395180458633258332663573939696354714635311494008008885949324347623125248222652985457772723890599526236093439503, 420917642365510097274953510732672976660090878118731141247480665926515510697340069453321695647763737833482084813690359182498149811426215694070555061000088298179074831653139399134712523421073175909374262026093232944423719549431019727798396112847419054014226956785729900148464813957201135591907975260236, 84379448919023151583218916437731851388765474758226402374341020929854343724384225828524053494430638696361560843475033172239983295653602258494811246021714863962111923668273440243473184363218484663193760141773381420689198542957789339746595300593534512876176854964547822725540412643487838609497742419941, 27948623319816340645836499340226355678251793321581374073502775472873797657304158937089786879622926250985278127784361430798295013263713087107653801153779565844505595566037388037608859653778593770806934100803339996908452271433654699267145936528054066941962500907029121508195781995150373799134843245794, 556086866992935894363913591938236440972727113271272546646758931191948794126253723207435218215391986626074766207058020302329827524916263122128301553676035174927432454203115932103962318758561129438809383393295550555814942553376996674416973247974800164562120981601506866651664646518766225067083073645648, 531528739516372404451424096534320392609919982282548034826436443394005175312944340888200544005182914461893991949682616348152994249885091041124629571853649624740572214229626626066964898090912040506749447170006411962389020589154274505456538939798306164545121326106198517771865972504151701052193231653894, 572145607395464509732558188883057109076962763897168591289108081999306512857425564834120834954867589334175671758518913343983536026244570978247301799706026465984810822980944531375426552727285044044770526926333305607438008452532192017662652877943991495675397499444735589031758999768818198367675139036856, 472954276172708531597523295968635129138423322724522258603762481306950443612284923177444804612578063682012926143650236119513911727087309691554400820089992336851932664409551070993079805193454747307634277235372932460311613679662555288078403241935482669835713645980614572899571667931472961447910841535632, 264083276376477309201113419494875971718162686386701648415386000728062029540282263611620145987394156874857663431584015067325013232292929925664140563535987212845781913740912737409115690900360452259698163613750945708024020155646261552367547208110308370983591157798090256233106279352390993968026496438406, 45929261681281220290240365686850671726357508009204552890476072708524661057471422353476602784774089342448386980533215603049867060843943711530408634518381093284720985969427452985439918324177149433065960833386799102870328665478501614774426809795192242627473422178655513911700889539088159242044671566580, 463753193895825809149812413889970744558914728641702268396752027081353646833081906866181095063008256782730385943150912129233584336083130792567540232069126688955269927875430523530482030036478421974115766483278772402986898780927675403996214009993974329155627974412264941747665331592064954658023221009747, 623180003032928283695302292435224729572046300455502295905947887509379899015217025179022451170654032880834823573582088232938955490115312585453134562550130183124684947089250451865624513845111085884804322006222819635678243597679110327220761762194829729734214992322828712538700804337468513590872820029651, 408241372831872199955020776968154286017398316716864917776300404205031867339083304374891998351889366978016502295109727645576933438851889684574181821238056858457121820436970617953970828018577059845056014977418146488752652774160570876504965263482939663566182376551615710873144624928576292596789058804603, 420748067389856115942188497123589530852009171554242047794017873881412027844982258118825585416825144287557613245280987465727507695699847420592547887872057223222641980426669816675520826374252655367707767445698167404739001385405469256108938899759171703451583969295973398511696166038292713741170468136243, 56253957829434648381189113993259301108134603489837845832662495341398764852110963602554536080135396309166522028683093940083909096372256220776900234225384610512175843124435851774302437007787959821614777260502510068563382631053463206207399699693592296633873036562132054559935532128211949227212336245206, 292308722370675278432478925068363411002962535314175442940348055554564198139168814847720193208889535099041192086043947897835215372970554673629244438195476508803602952531724183636968933083500702807934330999518422668011262809892947112243635748827918824310050658665463039077466816200798272026802231483929, 563240965136755399091621528306370605642784958803765145390988560471772897101638643170833019179908685390418669675349303095912682648826442097274230373724709376365013788652951813988283399645137304483722476788117924160331213354752198537267933609315912005218096723752384488726585236053055531358021704916349, 488765543706184327161275780336436994787092081541999380624935342831928649705586546448017400548324248139360458700289068094917526226681472040088446138536342510433235100130387543106911099923013691865210324894781458465582885213821314430337162663968264389707566171181230463348321715814971154833824222148327, 571457978087228732779366920254715103455066386961269060572454695917228274254219313476708107525991172551047196686708239938721478093971275758389305145636063080997417128579251826149883377079007982108525385021107942131592012636527747217105894671884015951546792125360891439454218577560097183519891333864520, 150078518728587802214850542579011249643092450976002650811454977359773019079293511390000597814778613664165064245109211660651359905516678954958848638041205816439361986576046498979397713236025600906617388262208072613667833937710907408709002441528287369266033504483623994480215231880337104059808160920431, 503832755737229461765331490632460383541926713439225294055475015524036401101595592818574031154578203302874015555517783481327982626071821867898429607033163347102826062960449804386359684692489141501060242429217285114975463995119216025310043206829750153471896754879343624379953251017358638504660820114906, 262754749893928118730617688867347531236754374872332408076510866865815648302242871525822787681563080639515307406742732884094859449707078292013314627103698167786102573882008820641602359987467790013631703396319181448451568866850338501659702167835097706698299111833865805360921081533924163394088582258876, 215886157061127053230696120948618318836514328217289128348697064915890028378326215912469651471001965191218914938998469038769356826469601431263332053009638204673288179460995297743128986921524398580741226575995740942839171940297851125599587455241300716862750470989114247004513377447112995398093861276200, 424358367988157817583620584051057205642565797939699292223928196046422029264915027757324629021689404595820809862403228726483216565434012764030366368389073701111713923082832520726724389814930054819977164283557208140098702578588967985201181505697992668487430091806759591418138425307471511136680203462203, 180414134029708312931820209187007846667958697678666063563805981977701263949425438560798544996855057553915892816567270652190967607824122636756354585532681715926216654512535807153830319762784591001658916898624810859925382516730896370722382097550724787113840892783402588487331863714629977383473066710415, 188648002430713983919100695132542236437604709121390905677194863711483334980443131041238283061221037755397769666029828069307437094526301472369938776083491679762709860133948364996786961840435239204272318327571492524113481191134278118168767499768231301571020740829782775292337616598621420166534082361194, 459000027393715569647992880386464261133332021075705790048122127209283070105220551213721709398429981006852125570967947873625828314665092779759924079623124592707084762767407260384115543100376320646855814602756399730741279074795486574061104522006043656544483459871984762262102835961049947743960422308128, 115391015110137773720993642125369214220947534965981254858686391483186549985616512172472373708744958870896853815951225207329045319169309288449705792420781722505059972250892430705643150942245351434700488586322215236482178205998924152144590399661940893294723984871301481841752442518440004701829644732693, 190316670192979141991979597745670750387222580721220730377508545257517908400486832379850246544554092119671093631810036789298366975632578925616471951437380137851590078274442183126320220845988411754994078034664846367926979356874300340229730485998154596376405396336071079539311649566671161795762811178374, 364783959251185825142502651453787994373359772778852957599040696809256579622770628049512811389177172985495185989907057094111368739171464868328215413205483817921056745750927346703510271772874020681739494970298384694485454525019691581500981409122439197607066220657757818588120306013014571049848279491232, 592126309027479576128825410357970620337326059226201761493197251512805764409881257293844313697197142311553330843016773146120292964805910734589006726575393387757318008652036271832382323505351504524682423510025046536481217276348923748671673124521309215331474391007533640106038600570029437484435813614917, 460611418485014165205339998594134670580869391299007370982682003443840069957383670666921214763147569508663638149006761936042303324749991980713037662811343221718081117686627272309085829994874820227736864970920456397876048482336373018120482331720414994697579538809317400638411890265250154500703340136242, 253074274811998679160037259954603703916210009807503836694473718384163398243879895858396195442358644002409452472136207294022167335943947950830403069658340071355211575275116402007127902557026622164152112871854983594120266132896401042214259159582135297566692499219327351538695061077552891032955082371491, 499415980437358799064423195976249320029470776623874337889917068876233526868397904660429614306210990861720958028461755657843142287106647557657805714018971507523718907256824103747549376081032747461414838018022153685818287209476067340414565867187410680003560262287395067405236149483599430941925709273480, 615036816243281985673429377731736053001150782187976719867650565807309947883969425416953853379797842558988355774043905057586133587037190382164467306582819223030233027810015479666000623576036331589377566037186391623127120548916460525694906146031990474973652012145814159397440339227723871439887722775324, 610470752021107803497827915139960426047841936386236453462595311125328519520122573700567757213815580762343240588943996029893587782997817591698377128627279859202255218715021010975588577643572861022168929496409060539105517517430451318927747997889775462051763062232002019174008540669577041766123713646058, 244296519816392032720035509943853397560030229332787135259139845106793185244693283796429661733102199962749152378577240896337575152168352087042457869967845629784368379312005280894870251006509655195763625155711988546437317725202359980017907414613172529659454957178825347187092734741920663605767806466139, 202600955782015053605102412783163161535463037408723677053763651067429772459160649149323148943098432826695872600047376405497475212629699293723854065500176653592670924238964519254497343326290958742868372313569116813493549228554601502894778204253786244881259920547001513847900365958335713411940814540979, 128434964012920378396025306072706484107622393438976709131063003820004498639083506452465625852132563846054649750185222178882027847494005826299161505197299486315553042200401312502400835674329323634534689935460501375041992179210387106429220802396420441823399554586091132329845644671189730801502398232908, 171950579299621526112180799377503574580834687353477458604188103951694859301561972495023160351931656781131372802611366283869370250644598841936606111865806668811500842768506797392754176079481651419630568944005666795175586336386172044743061848099084319742226712665934374062363679315937107798970864388976, 267041227990211759631882795338499273352943727291018788795844887723623777511417234797002211666114193573631371569200208953826785073280530230008641215642301861572125316867216962011930656330697781993255407810646080627661845536763882562061838599873049019774505396507640144517690327995001793161870690292440, 586842723710017731917632770908057217039593382052032758733562860323018388611479325151487781022558325115935604707160171611291891212304392231073116590888543643801491662093754151585225420838460111067860710205837767253093909682394113971401496062811496559879405365972442730471692883252047811914873993354366, 708703164501716401511622698122476922692692586181935265917382835377008656817550882347605544396499242158376100115681289390614808021464766321069383956799128784128261071293572443122108133098046783165597293245702621723140994345429887296428608385178121738867693508936505572109898814822493182381311068755028, 482732227211046044458048512455378135481623105247276255079060344821835331717490883120576344884102024872418095837405423958092109131127833905110190184084541727734629079820762647001309863976821847434594162987869563534067946304083522221120991734192727801500634022586140440717932094437534322317516868375140, 189500784154115504441781136753789820712273973822756665948699794731187576003520917447176846419035606393206962705074296949207298328186883863380333309866881588576546138954235678392283019114790046300537230414647688706777514629303205756312126001254952559812718746233119261146722988479291731151142929874075, 702281787552551026760877644110634254874557784091581491716870023022015819873199123030846404970674562836354122556766854806121999880732541967238125309963806629000346689410210927267875107404245978970980988531146137837255749884615747815324454106490757566756022468478121861810850855256604319882753828853518, 372243292773874565857512713606570934311355530387039192736025188701839255598970135577461015704656139914048202781318731409179260136026435547185900228353745934991786189383014327500762089726305949828352894390580114520859332600967739134722083839716811016164891547740334816017820947483749924558644414867642, 584884915450302851330558308451883472312878740672928584473935658028706748790820913653772836529060388134304820283684249730538545605496279398068478583342785600232837901482314251693559226546819645359512467524818764647731100250133824356376397189501464963299418520173324758153552071910461929437726230575762, 211174081716075305874825704870775007677537193519133387737793610698323227476253383473595479531012220753377238719462102245295521509033143707457963514861063290325767649080772995211169596174280830715296625207990639032678740687928316124834679918389404808351775593400764715619584772097944444609888695474299, 280127211565447116766397017977673585152974635358025104326976149560580046486223053557202984736447911553061401405128959036536063162366188619130612393422771628797334223606949333596853532869016305183134247039779078668615956476739977523028674191474208872521396896558058786546521923359631599996749458975393, 413202941986428654545773346666854863169489829138467589271417703006680069324064570077553649976001011051167149232129088553623623418775828049626788227023360258955283509429380939632658581794649902365370384019778695760971380560167774829474373967599615301893603188008997601735235597119008258021501674842882, 575353299718729283733753060862814943499899795513760984276746835000527481203448288379926077915014824322083267971385339411038265837179385347285009337312177451077389200650480793104296551158072546533964559763869245450806252545801949049042812322557402464593374959263960173704575998839099225064312002111979, 613405612139911421373582287074713901125400787936107266716457076103306417755758923548642305114680705035635667983922967791822958801911608629935458122889433417981821855061857882624027439705209826773006311523665032899990453437928134863557634690287059488877662531194976793223574680579812565778181914041334, 501058227630220991535411757127133096144383947714884782470924159592566957787342219969017663743481431413118684323397716361824849269380411123641670444861876636565993333209039320530907129683439881450442682792091916665429502676387975743001040556636990665830532031384290999721510383365386690724878215190891, 180819799498502230591698801193322445403587824655550423972066862036370121580513981766066933488955584809756841969146869721140734991738457786000371318539825951334328739984197464012800576570432742001382032184400377178284847977117146814852613836627602897483388976275451295250851076607464299740008454377103, 35058003972856706631786517245709479298109779789701933280814726458808573904993162396806112764831642380210568685509070349505709433463115181143429078713785113419593546345392613774087397819520082568575431871987155859198533122647159497591936510797102444935940417665819405292704303525338517521194658444115, 350427427132433933232972869063713195462049197013057416293511303625324856656300155830649343554860628411451539235888035310080076334636470825311042352188986967905874514412878678635539196197891942559516756931719326172162969977289254482057752609574429751345790957548022501012123370664458376063254410030016, 385542483870339414864775717569364781112820201356317856244717530346696520150953503688492300965278618714504764300062685611147116786947766687577556911629241819642308832307727744190263176266347319215623972671079697185266210482387748204058277547224297917431593825740054930153020587897729458124494554722230, 636365869373914373920737706256177703907109418522239731294781118169215384959505380176865822604786246546882520405637819989478674734502021734178201391229393895926517953864111340372497453516739197536481332887672918172168681212196417024936797158804408471989594381712709211505757844929300794188836196680102, 303071537597896888064504359927240610105177780118925221168565598473886652150177793964319843837684978235619637707306234876043080865285002694450109446719814609961341111264075882147936586244684735271445574382897227633295348107707432642999699567094290151100445699495966570908080532134394319130546028850502, 225557702648380010211439217357402230481021213144150320093242074575306908058131631480784314094823993444237995400463440215540487614750909573505747330139482415411267991965493354191109584032654206591546952190251876258978637905944463553081124970850018997233105216134482131491587862687034610001817448492133, 695089932565793482835951580076804265185864678635136335711018947969155783844998079920622264671877148183929002427589798480237944113527544344003269300383723655564733383704976112806174628433336533023059725172148452413390423444507236720981126808555983706209887972872544842464900969673825386952049962914489, 22610729137152389613060173216764331555444953581449799849706629420276914633603987165102550889763712273853493381976614803301512179705265228411461523709482160128140736650267371536562585307638678573255275757632453438726399399372359881441172695494399922968464841030736079336081437656582381190001338702272, 219858262762677947301203836198277594075198296734879809439795332145475753321192854123575066591780279242612777026531559084157457522990583652033272690853585825719346886356588506355671251565747594161241145090390970205634125684695125295144947718681945515853501827915720531833663339078066591526064967495184, 140464438133873114541086620352510414910329776375477835971491889252221066344624051835265355680014644457799303542738154064712630067470165187881756802062535788693539907707197809433831716925933682299657268768473390072484218997003985408770273785022688391361999745987343657696767115646552856036976513896471, 652547401585839909493367592085816151719641836793688973419936194950318234548848063419672605125035457628328250252005320886409893766464683405334692977839940160939259256048918026157691576063091609415343058345700910531709382337423125845985205301949733630497167642056818859309686866920458290432159913256047, 16197886013186360599400902719217769077956959830459686956408756481853244516413220208627706865717603603156095879287362378470100852484935892306878387775467260118500504116021630840589272022155718640985083725713829847552355188419139529019713328641430692572032166675610694276695066539212297439370335782901, 30089458627097679195321183028740052845257299401165674054579665028671807792519654208931675623796838473848512231898369762245599967315647042780786181403134947185011971933437368943509258860575575039294111071037238708244175442189102908832056344558965955676416046684762945388114447042719533744770188208239, 135465748631846297256790625027938603363546160722491915634713019851588165344579038408762525672679291416042275446955885898404280425119255430798468973995815306075900300753107057377200839537779655384896886445858962985768455069998055637992582797123714049486096479923716399382618316813629595694627703737441, 549151361529557961883551165687253577275662348063063814129893556857982195000611413194911780443033814363187341377648682624548427219653389568992699135289737977314466239827357093651452948441868022666994906162312727457161462588908518166435144225644096245375908803000930489670985487655607964906969543149616, 678767920053829162781830453919920530550693490052041122900983280971522555792176704431442257398605364170606352049109963933620539608732756982966219031173317606085626405047849322360285465716904357290326639276626248544132954079131233215593702930615671336335089377405708372903850784046600593338531729617857, 232290224691088728868717813857633145995091762769848265894534255418418052174885602071218639295337248684389391450928003310916101773431784646858480451761708047180026294233211086048024161837741490996994699521016927866176374665842238953769230149754124035081970218513969318878217878885577964170697866156583, 84342444552909291502508466981390584026021198832713303748949614680029705427092069704221874262727806490750062273261968685427578737190655791514061239266147356649494747642891580619193641942590375443581570841271830218740778997362199934431690257651749112973467618237146146436622892904689689984401296367870, 67111329448796913111733903874512132474738092604020301503352530278043378898128666487072658047798272181744308233389826637981459324257306775136260727786449199479253943479166912958663248678810297407913937491641975737956332395524544491952653721142318766899727198021777427024200543111075194889319668524505, 155711950218864366419146006209838681865243841855578485702743623919066179389618370453394807883645286823512916735829668491772103441406102579634412271982144147582374666920833484730442132868486823323964548058197271758746876418012161948042539616627462155933820469314021950660548726461209234643450152958389, 401081490760614641716579662719477347509696460210052360809732098106909185901313495723641228579527894888719095817660079520089703008335877485427102356420445942461723382510357396612172380007466214061811546045048272440197948003257219306031948100466550496374151431564790378607998951210303805468893681403289, 60722653660618848085785562899868192669518781781274955393343218463503931246311748932153687208524398938062703333519437008574073656693114222810664526479318530880287276243934395233292343378416010459195031440352236312647765094934753585059511372808441530603389772586313109069076791589211961445531375360766, 352779268745879120564239758054474761760100091926799079040648953824999663917562554164799886028204693645110448640995795384087345124454070558267569414314826935231396134842982272788750143767838414498862080478463368061353956324595615315421282860141424662238641122116466091129099268047345868107548191422079, 512369250013300470744465706567581819152212279932356055900073647307966495091114256393377045750021472331905165695714002685391344697495516640632351130705569405322304508988128524012033879181057859179936057852552685502768049287570971334007235970572433877630144980961404083244579184367679233853317763563800, 53018001726070034421284027628966339253838995681606096823772481487327093298977875315237101614034809924574291374108841461352760033852773362560491314683460962155293134558127001996867524392406386521420443029287619897616472766494556458495394061047709448847934594684139935281978058848970237886287288430935, 77539301645104281987286862001839910798023218656030809353882045602156216466521223515483684970160528641697536516880806853680335840326591257463897043594877637161201679017182743573579619206391482839155667127929811608787245490548140150035930963531412439946147300623715132242179083676648841184310727712653, 700783707397353627165941617856389758326638608505029865678914814953271647969009108356540711347890779388983232531047081577169496870721917637229607985237208560260168941451955591408438377588822161576498640251937709229401300426242536429230665954852104162462292985931107346102143658177444545849384265019907, 392628031496790590607179413149256674182803195542138533718524020589691425614558260172528667788229433176349927109550008107490239552557793820031021703933861874462476147140965135002493359320152995521868385651787259308697066149669741475037925634738291070512444132950706758328600745133697159177922472846267, 123865747719003344225745871443733674700623086895574003975751107326684338589465848092356031631217081567693604501702426902665001795185112641824350638163812736065311149415679383447225104876948856457572027888942870135747581602881155442453363063366949294267249731202976335156813340621035871024222701249334, 686002888373086868832946174033125626213653901728683767847837257256192793497277639272147775347284512074947210641642469347998408587292601992978059260262526064335772653280340035592098549341011746619986341822941958463262216701158245489593550306178500960694597896195202510663175562841687839077596861670088,
728255690033913871737905278258318518397654782796356093260417597408549514174619558288578671982587377888840537391492190322596287947637400429963265224401743378906099351977913276100938137009400470109112146710144274097675916842414014016460104681638157150838779178321353823901240540690269667047827431920740, 390763176994906943261590878766132633491543041924787564098681382991991168969404533984726049088675923664760248191874127759460196925396607192734742113064195512842053837631226177186887168697655608381782779934177800125766351659631639561370340856357641335658742226837847241717785962583333396813545066623519, 186804536653066220185449030536603246747680012170152396356959379490958818979092130921498384066657718135207556568382004059888567641642119214647870473274584676387557965726513906782089984473820513869569069180285539921699787146726784673867990108608408426975720235670261288945643970262184659111786762451540, 135586896224393038318225213982544495041898261277047658062152604843064353405612562768925633847794766170165406859396699800731365140528121974025475872038665030733391539893434317730921819089074070023262911440984820021162721194445008515187365309115228898960995126472164231782957532732086158287258389778436, 719448205811741101777861727190913136966748850102653829888051025988807412989906853923722428154454793241179900369593776505461046145862990095578975699547876135386265082986743791180704916253343501304349912836629973217905792304757472653785456775415556847132482731346192019778763286672769852662609813962047, 154789661593431324867881026741198729982618547797777916900878342634292186741631952412691762832493057157507888231584031697563113943149064204527174288744585659076074148156064496652987915840037056141452556366609171008900277050931269914518573386046477653880672516921492416737167118420246606971202040168934, 74183584558907965794252644909242103583252955709674271420483318828540143615871058145798733570290367082972206134245717016157633248871439118395807475728382079361656867989842963601339468186439944764438742041786015111386655016235367786764722079622182046377939459422588941088209193515662591338725630327631, 487856801358437084883058723632464234278338004785807142942590448205663563128611552052592318503123662908785138341858083213921739083978693882323943688796872886427590865359527278458875437095113329886963951773914949349753566984490146229424779287712912726170427861850782902253720255684849501898000182397269, 534134637409382257406382171672861918191992324088906711071936464184754777802194710461373175962196146862308216290312319662365818090749078280726817672616293238068684178591362117131899076063667980573859217429936206870878948857251538473547578834350215031762384591595044341695680708408273100855381235517417, 352127670938409252832064447157084956867248153128754231826105033305038887369366863912349190075021819171873038621146500401258944489250959026709973974279105286275433936389112528216670345124301682217639751705478472150600306349365162528469451333062704993043318759477227298303993443739267833535259927195725, 288620884062033822127198352999346775471860100404958124159292667969344516988199323269032870155162519580317091771321108609686892235699465614676755497822438606102178544694886260212226547626769490866224332836511104916040408260735133162391498412172772762824255999561339384883168207646525228675777861174294, 207378487407977201118325415609205217421074707425670363642895503184283934805426063060825935952082176469406623407018301781067850199905288565834300217516856249875465661127212338784971230686334466855593906456157079820547216921463405425821950836185716594535646376816763780807923855695565830124661170549328, 578541522921947491087126186003159087855646416574306047997282750324834958213521125706866194599728739936241245483309732932692771634095212042214446237368638075316027015726466003301869459666365856558826302523641105461863444275710649933292088028485783982727914875025875030719265439359988077486419783915807, 325238511922686847955421887936407982921767335160957234371252858424400889412596180310538711159219291281149871752509773124643509450387796696937741043514539209844098496636854090598977812442746865602686615852300718332062839239903790566929455764524890221820001233705326687107612917014621452986215671937574, 466648772082082875820519495176136619751775198922977449676859827006800718596679064675308017381714696775294504924671722111277252860763822080006347902120492566877756597799641503490245907452683199870645548349172719413915623225203143414304644128723142270610531720846602565431161310550440737040468237684922, 691228656363191018063169216086427169334368532305260871842838503565694609608039978309140996958457235562303250388757727076481115871898087557760623492142954609727899877108443582529862481488905223495163234187639827975480030206078877504553942245417497022993999367563464404027816744109787370858922739240991, 530302736277672322830030537245588618050878846004402236366780932283620973636982632423471292916915273349087452866163719569336315583115724494242032876868441109141363837942707856098471847363590307919471303694834799636192971503716569981839980066441552346679526084942944924950859570929810910699094666183439, 320332314407177513758235352860340206580105453445896532257908810865826338228261803299705925078272002211660472576672474477821078045040658999587505414073475455946071941484661275496715854099408556415161873453608556832572307348476034745422089410568484891204127248873065770738834320547385213957105727792723, 659027750791302483584001103381128339214730060352275073490843216098752148262325165815353169433044640330447935847717264391317011757316649651494957934182371152932973947410232299174034365428953415575247002134832965423630492808589360612251729985276590618163381465110556924253991712507799183900167584910524, 676383826112010460520320931636221944424243132403896589739916741679381675048070671809340376168923899377558658668426447934465768586017036758067882277746408636743415990496353966550676542947838797077762813936216978735438485938435785762906745487781699749441644676885869745520659970632453762881939747475488, 397832459610130331132611210127257239272880580504797789725264814297183439255381041423232904327486326096534810730907668131057509910502804327771826789718834963319727861173314098533594641887773227955704184522959962631932253990236675456912616293784416891079416629991716890564619102458061966660355149637163, 250571677137441827929271960491250764714643072892988467492619229130763681800536671614995139738066905795218458011837803969246167654524382619561286918531182563790802958726770139943837000034535170774863893843446397697552406790046797071687868170598401553792475451356505057096036427281407454802507926520785, 656405472692027697884385656248478167465333867396202876037431798075256904501769870409125335602615544474236296305391421783004831763473006092545592687784119136528526481523905003503980206242052535026552660614175713335141784334713980742995904822164669650925775161123920271406278798079045128060191635854868, 24725097170763962721127540190344798545293541934651253630910401069587378825392706004389547694118746400486017060800596491851456239606713347237923815580337117881378639127171501045784664636259354866611549735493782492752916973597755143578619161033077097433637766818751217510784944107669815860670650106457, 301936022210254667935976708952564011033967532061602418599167040155383298065744367934920439255958488128973215334839883818218078290807232514803350688253752639037345480219520707335250124914041055513022531466923282378658243121897119915458381603844446156919950360689374048392102523785308189690266927878346, 455690495913557627608577474067752509260787131192911341811217289823626117865080883436824626776795174991427863068894910193683856583898371700985270836199851146349613190466062952168041285990515985786893104437236363000558601783884685606145348240186217956711410890772953592218877373123340444937905685520735, 487266948417135123280178184375485243172209011804005612821046419580097612548724803862487121019403972450507797554037918849275436617992758399795289789108369093651278059250812250357367754496214194438408890456281442860895792961833277452557076183603105754378976990764593698803095607513295779057488893312350, 281872915620689855198812987541791520693780965127152947951460728692846329143755604174314231776030857809206497554402883014132589823018517262501112371414241696325324286419474951297769168884907336373820650610133297463516522476534769344809058708023134201864737240536041813959667359170038306580618521868393, 600347088498445930887246070485944553676840610859754952681053586681310831159269064742015555676168394736531930220727402132883101746456805791924119044973632037275872220423422543930596737009834569035341931954535911704763555412406522007799171984164233297650211660894057524798718929977616829121362267291648, 618586984306892333609680929425275319447722812179650875889759236292241844295292589633717708953887540192873546080805094677463145897923373157729836277750863637495017816511514627505108969186003451494695976597568327549938905116143857742541769982560962805558383797136146835891360903096999028260494907754280, 248836107779731751706359120078967204147665119093513396823130678889876029030876937104452746872639751517052057287906193307868928537233616336628520648104658882183408149663988022251047339547001642726959709422727525318601551469879163418779279858024102274343370839934970043759345997971398281908741448089340, 372217331946732579889497928603036795379298081274504418892854741547876567834771660469247810204859750135975727435941865310745850588452107736908706308057827869383893671519949431702548497074709168748015966152421328645791648647301028237067771506334892912739531396958035703873961630075533990882504177054742, 154063006479408693210515876829337150619491862191373536775914410402502907464413753642138044029594356904674215671201034222665341923280636405355784674305589440172218984878068455262187109617200485876286178141432660397067464990555304252447106766828753945206310363834977105989328141272523390354457948107356, 691539376321772386869901260279800791300027627055770448974332869445866372361441772144451863591649262582575780990875586633471087047886607183384197980333632814352759790470958380575174984669522244838248301879254226087553046957142522781688086495268871217841405233108388337194183101088318005412696304130364, 418130725094836103969945247573780187183160498869422124185713644881935371420078539320831581119812081621927646973099614606640607315427529690985021960976905893936010425162359458480660079825510019173336266008674487459425586158407284543458910460324283273813918581711665653723070528676133502387164151859730, 590343282305882013925947091411128832799103620468388236622007471345081935992789909151959071047041906706466089535363369013440153096742157206968891586699859371983587983713501902514726687455247835536360955143339464050105439749963787299318044418051507059595397666013958765061935513574767713775082135046718, 180211319456245582184737854947364589091297546786291565994385673741683557858008535605543782449181683435067268009601714117218291458993810662829255099427621382190003104782780235598638982948024837382497126988745044625433391113529335484008640302202334979391200802953120539266165997596565816876420701717463, 409573984924921635170730082487283903618893817773206157999663263981186783340330874795309746788933687500769299176713439883331815357178221123273351544953455448940529742703032143742852907417906397231927788623566327593683741568141449654682001146459614754953092508109690317412640067382476571051955421066934, 23550902591448803051349295324487906745498923059141483908138450032686840291428334822939220879129756062187158037152756077583780497050153435439352401422122751294145299748671252495704125087435797274890712243088655483760120755231739272875904247292185517445364054384582769145120254869394513415812010453957, 594696609217199716101420980220245047965013638658456489155967938524081013048493223752862279959842439493782018488753219093285591315981864643349437362900697764193346309051342559062638623572614051185418324228827204975964450565474477603418832194693422418867704372499395382236040495304102652199617183313321, 459299602297503885922580779806619449339300068153576783383372017683145877413344321309598788453392166511589558209808073000265913046920859691914910070009004403030304030739387227020643727862640846942406760264528881655388971442370695977244375797173429922142073739722840999046251608758381398853615277255330, 366549275424575837575557709429848159227510021835109403530656658159010254918724700207933047045670070714568793878799749211025039197726134871383001038430410794995033506870576763307054305389907665919981319014155944366476677170040634541867394713180677070539318772110736011374828903660245159053652042359389, 106166331600815998546814654814440263358324819884706309309472461559333266596070015487030571497780961216776104829139355773566144447636856565170297653942161049526113904204664328324994298306395954671734067962177308897127151269335243866647531354828834964136342870135772060570403215665083696512958116831906, 88663649924997111239186478142901848854956144772567963752950903453669410522190557999825509058009966416354812910083125655072589662569664995310883995484344149544834967174411506220423509907111059973284109668532407909664908095148445407636429388709195723061466061923970532474866981147238940586655379741731, 367911184647847765664865773123375647053384932665190137370441532257820744386011056195320885974043247803293132459451070680850633522714463552698009932727487310920563038139913030198965459635806789959673901689882225518357707994953104291507344627093407556854217056193307083090104298756538954228867181742732, 730136345717805194304027276428125443175291819835313924526640830826765119166644148902753740730623916805120010498420897067394685254060991754500312712848094331158052257174032487834121023928356931749419724826719948439639455838423981784523107603112683582092380339529986354372846742454287955439258788373495, 364908307839884593560233632587063196840064005429888602429454293892306366676129505163893147057025840938016830136613516521405337156105920697122957752591454116201217188915226661082083736782022659187754396327911861586399761243991550178554538774552434584253631690334336060316130563462471136534263470758286, 476417100743857993623311069268326459616145389195841885478894274030242513097859624064852330593249366713446252307026449803341923895847856560761081391388232232515490932215538192387223345516366228265915029675979180363763568907325407927690025902994443310951484446917511733827818661091993631585667065176030, 240228349015173328861065121943012414553540675681916221044909102548735597142967150955874119094218725087919238845724243824656585037039925276611498606902058151780469636788174022846626009366219020353921692629521311503254655684951094217062094497909039540955200854144294368141108655033090937044924134317866, 704758603819944767537181095953171896345358455977336972902246816781518414078567023334588176253269266172245972741306790747593062617615128938649595971641428681896440643231084723299993348389948807544545949666594141398571265906244626771807684789251018455614337465998029286809934777869837951216754811974288, 211957628630204855467049657072620648936495829524306200239167571666904308366188638874822611668722740332250637714269386274797230477646529305852012064580243366889284649431981374399604913439446651922948812605056822302298718492148149063177357836497835578792438106492630259582760607609110067333396589193673, 282442582049335635952660536484175397940663952428602376964747314082128461073877048672611860808285763498539130126228450927843055195717830473570235337673280204796186099244250629698995826385565427222201371807357212925630326718234749362492798998847371252563408221401899091665874253546830126997389672454347, 273468400354817300574222727700313479619970623153163250412593965760574829495306571805742393712211423511216168607805010974014870419657845704409621325954969794284724332959598423426951482543785136936479967484304957337429915635980284335275396076574037505124165936676785697470848061064709816055070681913280, 308955345504595891336814999849722647587900562083299695118696782202476137811711047659702292750790173297588991603202579556314607346803284462273787889241167166741353055713560551115579475979978104863670999100380649100217476803980382503911070226517956532997325276852548186167284905810966132151394371821300, 704316918142394584443113416081929809734244863685476160967799699016443997455799950522366365029956521040887085149378643945843815484106059338026175187371460610083657833970365287690217680604267473692944421331282949403067024907024998754585603882928442479183157097242438683218243324316741015196865056558109, 546160652337981539814783437967988953259681142956244051892433784833043115383618252611342813245996571553348309850660334710595481841220200325178364511371563524133052031269971129641935254173170893346100886124135277910822507137367721065061446940676441441401942600157663952990376151174991306816335017944184, 721708952842068691189393632366302502382120377685872683965174256300599346334881916930152350278651739478604879325282791928625056608217324526852365669542034050391327464081167695632208738023465940621293934669007733038300023574143351811431000573042590932559690140331954550852934492714593836223394693694360, 300432717604514721721869852550692176666003137263700556142194243476060351440044058481500520688195427870149838506370214181826424127645107073700067450659826391686337997876235065120871791830792736769669915043898727098027295981905519737074185308622797142897795972497619568819742935672057252439865597085149, 648800122532584323021683443299663981962651593398895078835688176255327209124769355260996849645020858687503116975920041796157046244455406915042142274022208602436694681072607360965572023644339965705531421236164891582818200151831168717401429149078493321127456512426402092159729873805949390149103426874032, 374880870921120533554911628009660990306287604567756640733902010872476888102534323867568774264325096242839887394812776479494585841697732494237158484841144720233677881054813502917697149646485175223972995876630253269056660760535991519083712594461378545846470535397719084888134035418888416332101321553500, 16941007925466282210758024692678464007726590772050048904558198798724724653999863628062854010551860430896926754037116154663098620778096438555796950738592405478295412314421821356550026731145116682007291622989561862679283553913599025477856467243643295621089003671675811454262970809207667691918862033672, 206481309933449332746709012905697108443784660124200057273334393362113656024698336130926981853737655645892007982045066502444849464322264159266678345982412725843998034920542581604086522559286501645846051157062301857967649288947382623947148092674051229801933051777297109603599046618617534856087113344295, 393597573659390963834688572208640481290138157416492716829366531846374060668745137727269549307200320335306480071531457382835888287533467703840537022964632568583787955624551155487930061629273314131126643760096211552574438250841670652373064457503093636863635232886235813976167850013332252285530184961586, 88938092742892981690869124417993367026737142769757309031210276483216270870414005016530111433880383501681929145522593361320196114463691800036215688160926392231379180865612197666960135057191659982324033963813474813156271524162215776444569318931406606286145987746961097840822343421320072788956695507773, 241655148335648634863102969047043441041318877821013204297443394477801605367194315778055474654116310780590740945701903940357196364040981485456175964599622659252234405575331353136611572668379893637774330913110665179199326623183617060506147826618235540102869955241147248757739098024535985308524071083071, 194459397627444577357392041656511592840826500338606891871342552274348990459964485690613286639279307021442485087144879703140943762669041796357852416864456830311271951370707026440102136436423674465477280480817712737665853918894582840143268459087345004112652171709932007053578876350009502043939838737428, 26760518749177150252433139131797238177029021344668441633104241448725706108409698988560934041333026913940437578437300166281432161325647521957005144859971135980779327532170328395004748746948113455168425364281406749525319842925023048398304490420833632709493842395136223120370298683773506454217541433109, 169944325619150863752565463011971714950867938656710361241339275833125124858220017163870204947475382771282719477137006505866071225028214160342549259951347214285686106594076941237117636556609010470494211248847741285721282226807910204031078335104469824024081967624012309684325789141818886277830456291242, 594142282997800857953270277522832263158729226075153685544755758535205362222596278142835701521189504726862179527657178149164977698650866352034325351471817275607088448217573107723137855473677185300325229653456127676906078022583399842544293131868911589083448976993651974395997786920379474046154407135135, 617994380943343998545480478609776228720648986082006777951116504335190568601742590433987150130095519349968280950085648598556189186731523501323311731068750657081814692646307445799267358503003452304502173019924297778864980630871457618045094249574691163964108874643461991749698551221978103281894807022398, 457928435578847760828673487267933946293894660380960003725513096661830481297163047154117833411855677905855362037765407413061384084845877194722736375783387930910427601261492213677005949312283340842238010869154588028685735050549628748816423909531094824237016014358928136249571086205361671543157876459998, 269097264938217718311530164101094989001453665026088391764728372943565487166176199038238906223276690977202886218830940271325510509612788183081590200410182454821040127797079882455259959333627137698554068645320284167149646353732490892543640289664459634823088291482806747467304104805490207462741401221686, 431193075429801242981247311321768641310166244546539231866548952701972937196206986592753386202639179033961428515536395850681081282237991349528803434379175823178263692477593108509304896436079039549528503948023598560529254008022192199306634598176502656156166416489488398344295839121876607005045113556263, 231660361042096789368717601190339040477877093319746435720799651434687905338742444601840584522272400027954608545487568231016918214670165401269900271512672582837983504213196607838474389866540831032500428668308859784569491385384350844251546927060379341384263019662633807480201389388755455494399739160323, 480533422464539668103852501941629126323783711899286526995871333958660414862592530841085657240878909765745680223566640614362744564443979430393177692768699285972030527818522790538536202943729317387067739854594281004250588080644708684522849659479818317353955564118191931596080551921070417236497575941626, 302323586061712842216585844996426729424374063715084099037203986392888075272407218046878884562402261873124665216541058145761997807050125309995142019555887736206654493060054756567441967253068716369188957899517767603395009406724482932881899090044373471288745204671272575663948074518685539302290545337088, 402979921218160077526450177777986512044295973268241008082438890984161869335623475458781126471823908853619657291710280915841391145484189119872893274234238159511458959050116610723571209775255939718879753159487320596385167061453767892971304389466243299281394570727879984647683707500942416525614230440107, 166792347083000899556516636852040207201680303771072915064155240547750137159630017218151369912610674216219812705198577057803359412401518441784639570694352674237084924538696484847651092826275528522750001087659483147805471499625644456328675012054289375755860948538741790565251947674763044869922414839676, 567142258978371052811026726423421591159648569660780925104511037579671470215534728354041270808243670158337375395113319288427450562381811946015296276487137802204779237147428751877936715942498615688842279272947192693699018344751240016699684853190873367571794814006209840493183716306191885171471692327286, 13221563240376692334277899140481683401016166001258389473166032836154384227701327132376642139317335161663954469504592051703968786739390094027552068644400759291998469634902440429114425327545557875347972484154764074752334652175295914959984440099049953988794069437324054256733499268055880584620981711621, 133265445228737672715705676809650772055344562434219547284583269207323959648520594238914305792287191488399738027451887540602491369824285433243393882623641582222149128239368118664187512520362285952806178368915492784132326581637455364225014790245526167061484054573635108328019208117672287843447576740369, 447187834257994881686282042855443911883591999368109360473284402802703502022053148311383985268193304215743124164943144660309931327351829920138802803824235380437516327891550327825333664936820636537634600674342013602039833457690236776825875069711901688095377315924859817577386105251246357689104761979214, 101942432267589039154681848934107988725646536498622041013757824684795000755555577497024231237933403319964992523435996340192266258197373401280473820239009734118004458628436232686722681644685838789444758644127499381497138293727091903753526122872720038486218087012543041349924014127085522369615951882330, 126546416338246546596190192088049472352572887229166765621703245528340376717136815845628021288091757318618684031014655023877148035006204103500036144988008799388927365360246843011611575341335610876046758641007868950561813149268339560592673543016220581984875983670228406138713408780278797341659982628335, 346970251575211891304813222519843330829991696608050748048993763138281096417681579788293199954480170683780664477664686106348786012557277615989528693572071978358570984474581511707235536698153448606956357410262926397634482647614352905628613584450348233053821674118915962409255657759832313651037612673070, 598442576713263417182255436858001517307655846510410033106169781483508082040863388550294333654626121700017402024139872050411777566127188283634904064049461515382896629877244962908836431047311540785768738908281952017837496602729158648034038217893115115475568413963188064638686570283233278931274659996103, 281030533051306324048606644257673298754590531333238122453654322888377300861394654669343699531543814467316911336244582047181703236397437508218732382000536509688971183249386513441465766362532719748035082626792052515634251089943473122420411040996634006308821437546564259933861976248744693087812833105554, 57459125297559757654520623562030578631200417153599446737406951275208097438406480720581563107404746975093199042258180484169477506888386522602275122178597069919219240010942316104643253180318746400666419848675095608200926409920749705395491858691516933854583708825524271651418671988192240986072631439605, 431734796451568036596256637043491461381889281507821272909858524701859941552425719763489375786174166652549070787632108301791664186637458322114647329922086266065436106306454810465868361344290898784671079610237717289908242771349029314863837594003740883687745880084770653193731383273499745935989833589464, 106552193195855481180395744006236929880981178518140018717470734788968927851079103683112121710055786704864252729409952260608505958391677702941188279271743392632101941774349571615950226548925873035408672599867964990326945496171125300610404583574874074783591791740230590178286197121565808547196712002546, 206705843435131465412362162138748728150801459246503608155861562533729924502370861775205446739359322455329543961164007174930922830620370154641933388002517579753460443634290560306785106229669606497939783565761121542126628740774579651973092439446003286484519577841991628149116839547789462474467584610725, 237729331569260183543065000917344305305579701478558051485451156735026890608485613883303211903815010325817482223145244416456012187065642353138015874708515441360951345876562571877045323964753708120897904750375826394011065909744285212879784239761521008154031539246883618684244336948957281483296490561354, 721421342204317449212531969540014995364880733263114085357485936758353971436996864284729250692109760035504960104654704560246482096069342384808876312088065541254150810220457440055505039926295186312858050462462697596658237189499860983574886340892420475802376660996132243902324458351141449688479619351104, 578200432890180531336989583277113532599037714017943359124602729282386819158253152226273079447798341154284343615803754315536730702881504113462924069897722912358021377839392184263032162986668390032744724310867217196818265617405745238826405452712139833558391618596685748890397455460779663373899499136923, 114272636435311597546248757213187244889107230770361868975636948924309384204326980377861277664001146459147103901042975122930480245300116280572192554463688867146537084119266044542719477448278375302553136032001325449638951178229150923974228637323172860403273148382216697072891362791539202589379059228781, 565706055595124037581989007042514214082820878982489076011062071818790518814618979636622955227505854448768398886187797504517691220783751240663128546864174246470872992405146985651345425989549226468713143137743382537833839107860359872643542946672669237522659171529733797792947747611834345102161889747065, 90978420890984627760611756527265155290396150339733350800905283430872112719592858896138833683250234218763339659428681875581612578917694973444326512756845222594441806833835592093351139050098788021575511369997764209268947239469631879953733509162451204909860002420833355728187948830141482731999665126754, 221326214298336993418977368537232223702835087100207909898239181362778312973221192032518479082607426841649270003446908269985719840267470387776589759099877157668158835937613375886118575535599356311116534615890801270767906570275111605778312821476694470751433317127710670585957445894608365885693938117965, 409261662438724819420863683724947082929150532344187736061224753646573383036857055519329068545159651879719890929264480146142124458858731881791178366388380564230915603858495529267729077166903780565893115782047527694370774824670760790600676245845432994802719977528470006537099773451946443768876928103978, 372358251718434557731619961401978572150154609230329690173749529331500948792904694907733775211309978585392106498764584072382803008943895888593593475511543991008299636476361281325262177136098398109609382926382950741795624607454006508475511325998216170981370869664969595929317452367094611955825995638925, 273734558026647825643445360883755175578272132364779683268251427017021046291503360270212072106718661777306916446451347978642002540826169881527699876632546366269808663291389570430787393681565567700913355208332206577706104475246601719319210230796554219172236567071809596784089928574674905535375334041886, 303497777731459102825720664007132783972971224110054638202573931674714138096118279791349498904329739321708982515294895037219376117289329596649116451328670740981335151556102520325886858286231729295395638696390362027980307751046531086782878587800232491466901337406873588601399005002125416813214725507837, 284668467915506473817945059639980354667992754043994621990597192097439773652227109099902951602159370144168820244668298298736744205387393479200648661989627086627651500162330579522474667354893573374042290381161886575606509462526145944348557397228131103804598997951106765607349959784603459961187762771697, 158306231637029313983979203948952322393282269343311492805532545443770645656536022025530243562139663982068344921908265600046839039783230310639360064091897492441448633109997531379405444293873741871722046886836403912017853916758303217323302864977567177037163420908210472716738269002174139300868922973272, 684774757404303029197306901749072663516695664595373352118684487338637601691053312931053022272620830008529575499467077334035332114506727803882253144060492860821742337681339633186047272197907416262127479155123714723491359124570591663125539769580259831153828746028093043731754927905660122431631334579724, 340721805046379815062455268819412641962131955895272224703539454256651422510010542931544958847544466853100256698601377976755163392465883225794288552483123647212534448404398303600187813998180585096343299563950540254778396208356098209773071039385773441306456383125849410171056611423362353622612743653493, 621468808954779403978575380747334181012556797731572879051439663749567695474872580364942249539213577087508140162685886230824569785110641374103180815458325143497434496511939141641728894880699174225427364702514286275046678533911796613201692928951478437095071180445977624864778799529286354201111880338228, 17510017134453865568500325264024070546590452068253438803830646336701407710544869353805479915152035419608432027188025835791059373863483945355557134283079429920453408870559938421498402606054784347063777005007994018561209342749342160640152548216182457624831939234416016039872688215359036024715319252535, 634836599609506060416651286261920603518869939059065495349498379647787309769898061167254339084430090392682123541350927708409554238679049974033864146734921313198664057114605426872099272355612436337112707183919072104462931491149612218268615470936770413062633352924064893078736502607318511071416664130071, 298706693550547251520386397295450562145983020413960164323166199232346701745951725017179384739239842664118881030271773214783614071377864962895520371149950493125344991342113910377878318573539971944936054794333200572294918546238355332090015986365079093630319097295244194702052749393994460306555579780989, 460001605783415697294358583330510727871443832337648548804849065832852327247846986334206914890052464156348345946084685026315083377645648047207716536205082325076884767349477430975511843893087029746213016109827546060725311357599117696602502356194200451013034862088230174875351966051540233395177391120610, 292172704086213612985971760524824215914836839719675654910830802893266833307775069703606478086362616673891201554716832838263283738797055331370329746922483252652757023138566308375830081230682345728054946010524545878539913537624773030982884536411792152030943408341205169331426140142840688934534549777138, 396733963274685185995554309627882083797151764933020722742583517113487003454749934281486823846364296622509219633448387170765642701727071628781035277093580695754208308809339595202972566178323851849854997425666011769988596276494292327235254528351850054545670775301320595287247947609464531248277002065767, 610607102035011351069040891686454461702658150172949060377126913509479901887921261668575292591398481346287574004575004059205826657942762747037044213579943631606466603666942732753456260891445913291710071821189207390541746157567003387304099516965787614390943593660760072200831226360310643991141400908112, 416673371502239493366457615965892800814560664336894251158185563090554084289006502944926828462734573624155104741726479682295408195029393031287397931071083210675328367143558035385302192094073431624560815798541250634028567702162883852510308446405097104847734541287568588637990351441802647642995315364871, 80391800890198716229562739522421124207734420930840292944079877369321149762255906491364468667548551448249013119343324498698586733373436766267854794205614485616711860996690004030410079068735828664526447807868567698500437215774789896176235766271955812681940961665272694241187701096647160351190817541990, 491577233719118613539488990976909804319976164684838675936344665584362252797706021831945263021127365228792393945728614859036866861889801416222467567655705102745421716003808884265024964845860345555271221237583069929521824512828932426191092002260001288736634549632045209176504230959871957743579564121161, 487556030578204326246883136595830026466572917805646328849829515244460230832645701917282516445410968123261721516923312980146407831608998487768175693110774885848345032343933030368294663935679821374366379352235766456147962059562854562568327025829608067970253838110670876259068096081074557214628394625905, 421666058819966011543079615267945060213444141951246310826423466039720938356531638850362482412255191672135939644054089417201721421333316467977334593657290563987125811114153191803761722997764711953678337240917016041057145265939168364543007265893460140539591356246744970826299326144955410335605449908215, 59217057238783508267415835195104587083149796725487136023964393934067064457472245050682511048284224321278464015707391828473913117929332962893029580690732086639316501857386857143359096917562041112388450750566659065803310469545940954404163509320697910824553387104488965872598302594289641401353759161682, 555937702701768068433819803397313451883954763843123242950777418566726916510739647463193819133093428235830217614511094664595626388195389526625396235300916493122159805654918985331144561022945304920785838668256830100086294688663090920528310372922169909082410340452340192841885342170785704732056906228127, 506775457622405633078489805740475366887261407636611347889249937416216698303604526126594425984808684551540164020191367050858760992115541612930232391212214057669355443242014399188670856835614157450346441168979456575178422107486287098625181527610378365482620198732828789622565572643759241913244591489644, 591302574636275230532235967647758907648668847249281557034242085939217823819971087491053119988510970200727205801562655857967706096007065328137693352553332564672547028164253418124937495377676209303385542424462003731276108691086094068796738310093625065087555262110622956910962844628029076109510888166507, 288717419175503069362660789274303817686942616330488492252294425565068646089884057246763035933201106941565116155143560238232276861741379820469859354338689371868762720715774300093062282086128959541221385540422919624294099482906735559528987075606631588633372386604082654580026583651355297571087262313995, 543705002514173919990706052857473757707706767949776054292848040429991907560633343127765355983403102188788359766248409986571828988553270301652407286174155093886852080457060076329728646605002662411143428416041201554972555043243122243390383761655863445403182161014690398046885213555331244351893223616810, 217443504936495747614036836769664110569479710395425428651904712551398295053906195595760831067381820906716361947102343567383215429317492496015774398618801282758515967058605293676308939269965260496991890958223296227696609082349768370520092081372832899227231469587942297164549708633240247093796370058097, 529945524641297035832951417769990299882541763879145170801899017600029471963626648600863795532681748905883169866523923963489186265039307001509871629561299731324548233654401301053291709728970589377845658808434471214299498071137403967970415200748744052627297670687371899544922719843129878931466987825034, 84383508651597197557891990294009843579513753187180858981005970667149143566311749695251303085130273652349281343204223490797352755490713905926262021844627184480902207992525604997445321731640222581818440888628542086584786032061722159186186451314400007484297398395779747354676743884800776127853700422936, 314161693070432154060005356263989121184349612024179842323825537484865485845200443970070801772495220245334912416977837654142003327685784282023988171237562008458307333340783667560405952673850811981058338942616908438040918878946855994191409654725651360645766773915622207531773690995495030689534383967397, 561393896515092608121260293101774343977373257661591686336900917794926341854734382352352666887080057713767476167378194271608455724645026300547860786486976075839757121156344928059092338920425836035300873220586206613114113442340900123076355103551894987294308103219983629401481070613134114959803606460704, 530023525557206624823087853086722412113306726392221124734537464953646105586625767733581069827021017550614474559830446927027893267307231665561104748923282895406934679288812823526694653243198600588903158356998141871994685136462787992805444115112543599547739589087986136780734927536906675532458424861045, 494148299666992228467801983045795102223879902313556273566462357279676034848941065035630966669851491526506284664774620233317610147848995753363253462158491509779777136745516458068969505769037542297472689698648803669294910475830547861117857280926516112354575613478344660278296165060137833195848292152866, 256222555108186618627211788448938023565705739561866302410991924379232672582418526667478573387733562319596438115793000500795170873212707328501626249756521304920366550267461645267219612060476651786111922354560534624840411724141076949465472510222197733334257194655704207834272767704313771211322338461777, 46495510506913367776356823976115172914545208367704204157600305906808194726357428633514714841442246504951457170962638879423130537337743042537977967192023604005119691612557572650679949294861415662015775132583926695368281623665570213176917842987177699719776934794750114799598357611071718077923111378908, 632336486642140451066197614922572740564913940556914661100393367637567462013963824136175325285799754527063780060997827497844295365226429989937789677169858712932788382578013339926667512095630477639572443964344061700628396978010070849655358754156579896534324815438398208215589404501857083277884926185481, 170755024398919024687068478483638603050593914654710377187987984807201640204861501297036369952498191183802904926475299423034799578223697559220900652000088061582642012479832432104388724458556487521225826495733437932687583712942147678945467854063476140724924999518604784432743554393889842755652614328818, 457391298075933544007686910870963908885871903121386210068333020870937441276672643549471209320121947117805273591907193151904985581933073813113962174224037884445747749871368316361648956371300151625955735666412309878289351536485749867214955471937657563721293270842522346977553973942907084731519808620012, 500639019602535781197302142191764760447980154421781262688329365376511663588807274775689687628258981313994827769793091422774629216627520390426285139653956980437298173306176196479138238889592576171166321299945602629451398823664158490424413093238441959800444140513043893301969265918559735700609329272464, 678551104262500911167147409893042890072672925966638489181593188525187961922610532979384759341847371767158485754785749313878232207534172389460662134483711756305575941266914571316121390029962887592249579839248896448027752468119851361888765330772536424528805673309253017554500649336535451235462340858776, 434614795864576132320557706918191092429862989130609425762135335714594150013008865149085576902845585873639445260005508475727793092849888311979105566816672926258417586269354601346288636395254294878769489295027623205539425578574752198950810016452667742467682379429733821544788395326170994304893601365655, 476379597802343219924072286022760404382442715007259974344687047623045440305696033451925794573254626172467513486979934204144067651322005148705437901659773426725520495048920737821827294494796922679407549785953649379454493281397557616386439398883788645073103508347353149084213561405775522809750170398578, 126992812255050951032830481593407507654831504675506262897903767925936286072503366221873974252656074698616657517289117711193784098054927821912900638796570305963517172253618358690332676672363643828025370166890876412680742926332939598650402606608255306223017831030808396297382985608622995183581050722458, 489220923357828207529438470955331311408712681130650495687428684653451595594469053964697410736243101828223017827208575483298763390570820689381016590121489980029315285631249623716173479335527760799708986876684045603050006931844968581786263975777131192146291333876488917290203759818917405347231223745139, 407522900267746298513980794418203104514422247938578441493741299563830169658916786685975680299989122475454381834068954705595359217737029188604335125490301166385549592490726300885824498056597888343307471398647806166302029280791779637744182353668297332952904400744858399247423238170036611419683956158967, 554839878813031369175175851534967484934211080161576721580249446497785884425796072334475474844663903640378930659280699570214353676268275334384039697628152847289092325487119047928375572576541198023117037896770851551917351212892694907153070089907431433858925482502401528754181399905927861985007729184081, 57402122855647676608912178654327552284271860904999590780584399642458762908690453176017072579793967822944040656942846795443015582106231947118070992152774323487868500974350557721190353512125280287053049946115655382882230082560427357710623927334834592802534594410341931570177526063824093855206316236373, 203569136965686675146998990825278787541456277148321123844857229556023835360687058360096076741028070436626703634531632119886565047840091134626745640169097364778770533575680499775141997372461978088729514515776436684727270455679865773369130023715152597288678332659695955929196136455251382358899656218165, 709434019074800050119255011253228682365254927390705649488442224077924875337790108157817846882145288922649218329797675058413185159872035265604321930530465020323512163114427049959272603712013882776252416354814834523735886765135878684620851619585012392704397091214567192788680589299065299832407725431023, 28181586098627325036945398687753765440009260949125177910012226681851845837048851247408872208224406137204508413162551825656190262076820361645576657962411672311044452838580777069397515969501402974599554046152821266200382875503884057597773096910791785091830311229443367438044126571998952691815721512952, 203185432448269654304907894853885183487566227172687108281103110522495050766599781354681269538896195544601688336193923657926730507836470395640891831512937645614934071273454391721934106763508201972590287391274412165841984931541257324532215516059787682554118820709779565014837985267710219589903878025275, 549491502630699281810259485254267882793896817280131823496370781074423061457133719112390332644999804872962705021680549402932890095744972688721433529502271964735684060248894135265694811514499977737230808065478272279273624403310442326226464831997335834748061148653943276846660329513411896619571916995894, 334590807091232046993882317669368504294132122585130168955355272747771193866459110831296502013462208839541275812120391328187870999037904087310669673083582326466188430232652012489751105699094775162254514246017626551148323893222225961814636209852106401388838235091796142826514219396248688601163014532595]

ans = [-1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1,
1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, -1, 1, -1, 1, 1, -1, -1, -1, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, 1, 1, -1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, -1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 0, 1]

for i in range(len(ans)):
if ans[i] == -1:
ans[i] = 1
elif ans[i] == 1:
ans[i] = 0
print(ans)
s = 48900138654057608906330336094404001410012416314129947343718254788658710361958972300167501443635234828803130486373878734082851314709567051747373094122800043398642622361749518265923115930476719470463043632323571459743381102290686602475870167398059452505895370462341540956691006903515181773586159733875651

flag = ''
for i in ans[:-2]:
flag += str(i)
print(long_to_bytes(int(flag, 2)))
>>> flag{8130e8c14fe4df06558c0a7ebf06f272}

评论