虎符 Cubic 源码
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 from math import gcdfrom functools import reducefrom fractions import Fraction as FracN = 6 def read_num (prompt ): try : num = int (input (prompt)) except : return 0 return num if num > 0 else 0 print (f"Please give me {N} pairs of positive integers (x,y,z) " f"satisfying the equation `x/(y+z) + y/(z+x) + z/(x+y) = {N} `\n" ) anss = [] mark = 0 for i in range (N): x = read_num("[>] x: " ) y = read_num("[>] y: " ) z = read_num("[>] z: " ) if x * y * z == 0 : mark = 1 print ("This is not what i want!\n" ) break if reduce(gcd, [x, y, z]) != 1 : mark = 1 print ("This is not what i want!\n" ) break if Frac(x, y+z) + Frac(y, z+x) + Frac(z, x+y) != N: mark = 1 print ("This is not what i want!\n" ) break ans = tuple (sorted ([x, y, z])) if ans in anss: mark = 1 print ("This is not what i want!\n" ) break else : print ("You are right!\n" ) anss.append(ans) if mark == 0 : flag = open ('/flag' , 'r' ).read() print ("flag is: " + flag + "\n" ) else : print ("Something wrong!\n" )
这道题是要我们求出不定方程x/(y+z) + y/(z+x) + z/(x+y) = 6
的六组解。
paper
来自知乎上的一个问题
我们将方程展开,就会发现他其实是三次的
1 x^3 + y^3 + z^3 - 5*x^2*(y+z) - 5*y^2*(z+x) - 5*z^2*(x+y) - 9*x*y*z
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 ee=EllipticCurve([0,213,0,288,0]) ee ee.rank() ee.gens() P=ee(-200,680) P# this is a generator for the group of rational points # just a check # Convert a point (x,y) on the elliptic curve back to (a,b,c). This has N as an argument, but in our case N=4. # We also ensure that the result is all integers, by multiplying by a suitable lcm. def orig(P,N): x=P[0] y=P[1] a=(8*(N+3)-x+y)/(2*(N+3)*(4-x)) b=(8*(N+3)-x-y)/(2*(N+3)*(4-x)) c=(-4*(N+3)-(N+2)*x)/((N+3)*(4-x)) da=denominator(a) db=denominator(b) dc=denominator(c) l=lcm(da,lcm(db,dc)) return [a*l,b*l,c*l] orig(P,6) # u=orig(11*P,6) # Bremner and MacLeod noticed that 9P yields a positive solution. # (a,b,c)=(u[0],u[1],u[2]) # (a,b,c) ans = [] for k in range(200): u = orig(k*P, 6) (a,b,c) = (u[0],u[1],u[2]) if a>0 and b>0 and c>0: print(k) print(a) print(b) print(c) print(a/(b+c)+b/(a+c)+c/(a+b)) print() ans.append((a,b,c)) print(ans) # It works!
做这题时,其实我被气死了,我一直卡在数据的问题,我前面都出来了,包括圆锥曲线的P1的点(-200,680),我也知道一直在曲线上迭加,使得a,b,c三个值都是正整数就可以了。数据我也拿到了。但前面都没啥问题,就是最后的数据,我死活过不去,就离谱?? 一直给我报错,报”This is not what i want!” 然后我就开始测数据嘛,前面几组都能过(其实也就两组),后面就过不去了。呜呜,一直卡在这。没有一点进展了。 卡了我三个多小时吧。我依然没出来。 中间我又换了另外的一个思路去做这个题。参考的这个文章 :https://mlzeng.com/an-interesting-equation.html 数据一样的。还是过不去。放弃自己了。暴躁 最后三分钟了,我出来了。不明所以。我还是不太明白为什么他又可以了。呜呜
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 from pwn import *a1 = 20260869859883222379931520298326390700152988332214525711323500132179943287700005601210288797153868533207131302477269470450828233936557 b1 = 2250324022012683866886426461942494811141200084921223218461967377588564477616220767789632257358521952443049813799712386367623925971447 c1 = 1218343242702905855792264237868803223073090298310121297526752830558323845503910071851999217959704024280699759290559009162035102974023 a2 = 777215626371575217088310657140916521552988153647866038173198916020312203493964892557563515431776969976046377584808229726352107619185583316687354759898196737347993746254565122120527731768195400231056815663888758684421038238709788019326884485614991925753966183761708679471125148868876403664908848861229717592196841841920473123578320855383118815350240637368544307701771717790650586054632461552124823315180571553580552049469926518181331572822074022199558952119404190298735931653490892364073367374730596017190552617978971456481522903772154415790713998943890853561688541203855503519300220331450635692743853335580941406696263179637852488484574223656341703333725590156162934937022942328843104826018387806660541029784540066112095628410607646582758361692137157069659886753575805335098000015351084698040967634958962458780606944874861680995183423604699064295119192178585506522888929055816009012760980227645872065982724034169776145752311726352982276547920221698579169084852770861432795991389945366645278302963590215158406022987607104254724775954509771611804278473641470084216432339586431642635279556427721823661252622577913436058122095186869865354722446845980909445583248603818646384918432817277751662114543767 b2 = 45515177015370523186598470590800680389544668323346594120846310192651398948390333283841532838684228638057215529362980007901386037256606243099615016102478164356558671683211294326446538751067821841673990056500943490188667311094600394287944059737699170342758141308528120872594274846008499540806901157295755540786515739853811429101516388477908520360561007082314632823114318657321995023547907820030487984940570143033969059826198120222159054657757563990715876115982516007694588913589122694187210686371983934230131835116521724432838149089565766042842475792610165897246048263301498788205247949191959658551589000568833072395086346175560101459095869177540490444202757299358218286450933222931993542746092845434882841955167085611634798474215124723297956721787207069367210409930468551846723224409896901058733139606912810756783041961963236587262871957343659125846761987066927612211879278746707077150609197098785704768347642644777952301121081864034466935022811337948250337129064542497021903422439329618855883674545481251106939380976621498278402398166702566979987748149240552204768106633906852518721918670969297060120387704062182294525438430153827499412674831704727795905692842778950482616128311989966416414551687 c2 = 4797638216628812583434025577605647593302822112134074408304197287542626731655254754760070250069695806237478221185866750975864984886647923024950735389831823373908555291180424415780024231454429163667332563396190904475120830158622717917403410286269955215566928195911908452819781909832541473650205273220866668169706085422281346283683985976540910523295176188150172920324239409299506597321070979467526996274250455453182014342144936200082194972917287973666427586488695999171979538251246523201245515757129525859568862236578547077946470570834236704528174230986916804096494749486164989791799546021425641303587706015640912093764433943754791135952478302825539395135192814380102119660006534266801158156700532041924855632560802425763479310909232427688759422464721428542139255036982495633027474766492231096582800300651532249452886124953384853644678030788868746890039385094652563276776070355819550156592854511474008067006161138536377052747705010046805434254128197439636732559891068359224512685476617566910615703158046476554017740927198988625166011702932143115961764294294133907713303321841125624206851854472613188228173370133650483279735267719807509520708582676901775464380300759372054841808969769362891985102581373 a3 = 1384570419738107234210662030876773523658050985477911146787392861105565393733580749625165418920044198783281047191894412393910710617230005290748609491835739034278668662972921062105902056259200813867975191972071249760367059203381156813485578597812906051999195502334750196833210153520898790348898360596189839823274954742450081284361831132525864541310576795068013999735418429258868198516729314259472838506047913234745036307576620009010092902853410336660635054093679838138382202168845178330100596431751640835322846688973340658910833173585205393149455279246994122463496818317643256228617467828011210592759790177425055092158604918167508109815359144662627075318477570087850140032989718080707759361572328109024618041555377298281032987971642100639747034181751134048389694254009038778266486579841631650182385827521872486175746772985143847438806942338685262048581109834208783310180998170471121281043770619070155587003401058513541274564017526720117969999072704765448568244507973062154024697217376123834348324170186128069841969339079079950758340352584505785844667309040136866799297470690221031249963414710917565426920631117322362075590539931032005949690426335181689844671000226008026852143499001562878766629972117270869403990675170318769890780665354152298820464352472866255602741174605341346057599645889180595085238125261314858890598370470017313405383350901154856092634322626759803320395547515799288493832220398649064023375339292705311611479077352095485989750372258302132095860792367594417292317716821215804875605516539430491163611501583107257992955367357141187687323453822434006491316130535462346597909025925901420034747258823711092652109982273201897810043807576650618461593230557241054274992944692743546211321296298503290236818766814962627989376407904124014244856765572194270319637973251787364126650318531944887322801276807978414399828134782939181546950347369111474866160713118493462092445520775443270232011360688322317445607979862838758619366253968346028193230551652965815187267902633006366891435930601723611572042221171963969620267793392030586538801143119736670163116449333087151475074432604234125819084420085744731508540473676643100208287453661439939666645217249741733370448431106474083902747211984407968066311241194548775197119898725320785263502498966855721418760799216444479385767940032147013394521135500654275315679648892234274019562577157520447034859729380261382550467148334934203511782738157406754726344328125861838973922408913390501981507231610221279458064813461398585696906863994659760187775503905978760471816929995963153081388592887984083948182595549377475800873927280594174296504911095583706435522875879199844614876550064142514975106465349607490207793905829611888390906466470054333036111533462181860860524251473762646281332175021074525528863711222057346537191859426982547234239945148461270834739848983752850939487912596922191637836707584729488520432950427792547807326191118793137201119755589297069457376918664866327747345673264746524104236123486756408130670290598084486509285027653790589363406208510284386501284355181467644394997635864546725841710005497505482891404227173268914848082149027674611318691644787183822232287308292759403036786033120708805817790654288975270845054371389447940465868838889453017389617882513969780399651014550736881809660953556286973963542837626369892218875444612147348385008675909166871379026927002569573720717154247816413103633415547895254724126214208773738553389166801672203977485406690354226780533346496723872507772444920569476422850183920578517029229481129706061719995073365973023402291973065984021187838645429285551864283878711646688981339664665665705028245550080179321151031435104850083957191237072646843568844722663980606342039405253519285383877074722344162129725061422923620719543177052192391695940802580472681760912671891995360757762402295066435420862388857597111289080307906690556337460355963201175776021015194886671230083218682752419589520762132873644106698693985751270607775575329488679539359346629715235138374781199351675024409812688437273458568964278878261457394266614876939880794298068002069273850127989948013300147003291359851912664744475512072941692854744770973640921369985263832228555928113180439494275313753566659015458535886750511697683265827637657556086662000579431875349503211391539886920839805378073669537776202370841137251374616642602894449394957840901302775047640383817070021448127435189559698405050882227707065545031980406877656104281867196611733201509060348289778259532641028582786604946899211168610953653575781669728514977807665167753205447430072569001211273415289132601710315530660971705693364381872142326277937505075295293210796786025695071533850923459752491078382694455761514649788213914877 b3 = 12270926980428971458625015957456415768216688600128201975027487302584539812545079166662641528219017210970183035207989645492262202919646532236837832169196243563056136239901908119179426295036810819187170219996579827162825254972265795252886747849225085414832215083335476532440429339503682801569185355013816047414508147161509240336840176529217122693499395270277362424594701313757527206242975264270258012014684168795269598904502367789754332986495389354360393871134744172562926221756108343957948810847664925134628032866417659786864734226209871464583880745311684461474996353854762345612339162117847403358511890535758020127369790589075859672820067846907470474131663976956539091310794625973235298775658599164427275106099321055824025925968509926048182053261093476833474599292539624207591739372385525229818873778208850965791041596766601109101746987345194426978394405370943492633228337351919916834753107530229426741936286230499188526943511957795439157145099007474463988900787364444120372246986762041153498708096647286293814167644941903548079431835725133116400912030005863441803699562381288929511964034276325707632976551127397256897048531603676340537058441041149220167141579202975497001628149715130729145842580736973610124607217537525919678303872252494481399139582041449732380609239887965854967428756871664262526303236150925099676929324981067102046674438033048753278259313967559571292415794140484245934008589797502446016989197016642666771113081865081572272511174111267153896184368104380327926399302843315301433459855179810069856181306229319331451581846861230193971128801029144916172995129831478781812829942844219145672337639347439258557356685577207375020999866635640209242576592924511638831135765027173897927883551812165994755493823458005831072146325784650942381966503076014488682400940518543511565578347829046832741275837121748403396491747874799199798321104846058701854597584013865130701186717169446831682803455231664791870040962407255600678228116829607573254439264552565565072966269490800180831860233228603706062397273087462092615164272733353913367340291206425815514070978813263417537760115846184268145832298396976071898487163862988818879522849634081530182678055842423019936704775629670347242501082624735125062703160619486870945508075389681980210310286586333702965540872219718735979574231922897998866199510421572358236076200555580611734124204468158665787717203279233952188274287879351416340425377292148584300815487484108877069917419548016225516672608155817733088718237346363237866416943860905162551504706636797587814976747848469229878344506736536619021458935386074287182208672352340087940740447878922477940919983106905605685484585609764459890279490066236535115929464465840996199789634938749421450786647359610005499300046328220042887347434820244311053527787485391184058982073614625475165352360228756781018771726496466075902563020637967835818216438990519920579112697419288201891736357749895462646951416216079491005056974221047408933135412112837753262191006577843367245501503976579368348880038857871567941181194875671044100979369961584852659629501008088129755097341735738673260641671413802085814225203660311524991016117942980697795419621707318032705314824092708830836024416749543392973968520865824918754768371722682782482965836206000373415093851215480367139210942406266569452073904330320904114183684366945511414846904506341473142360869799447016800317028813086301273836761155503881646479676859917782728435298470099951400063662883566526582549372757646699871067588411761812737626874963049132646921898554243364536298977662092076350207385317573369392775689671484153333598486542032879929196958360051678300635157596643367489708171204128571940840018055885428044856283448962288796924118179677620629314328319339612982283748706634008641428579076617538324789218894984510583217365387418882704871581544168462601614459102113842868755562951819799865707915376412504441039987102874530298669269223581025815497850026758615884415723615338123315743271823978040804700630745156510733023480779147414130831961216130431470143351044500724026975383271483342629630259225766719317466887408328880493640210371147232367528019704451984266717808720378500395328928072277694501884541757227897334655498648595504971732605896169765670952971235916093341231762086452936872392599524333806188011603604159206112248240749063279982783975466489481842422938413842507650296404156739713852524027605845983029821440960394008732244700069058835684162130808853091767237839790285623587730094268501688240704338063110724224254741732082390871661294266299951911042491702298316278704568964207389071355242581079748403675254607748813195983847110791226842900025162378612466054680014808941954859510374572908439930968023121256727 c3 = 79659738315968350223356252393897890828222596657808636114636895021955698726055748107946104065007883330668780448713613449392857405527955596782284464455114537687940780753190500822732052832896036483203860513124654040089675396832645393766143754022260197636538836364035858913505020007653061888221682942756664539199413488081116937655243334237906247966719733813155368007259344986858699309020301504012495211671286308687224223286835161631465564689076954602922685563718272967071610328232651339712505648578328118399536680295892473563793076282155129885217270626631846445786079610837303736747426220781073019584402185106382866666482660844467211196310748432494616474341316444684996561462095999942616114820867949851716853888441542806073442425533293054835634168283988222455964077272635670131746086756734950204067708551846780625474223259976078771218196437304732149483349004549143568948647636202849174611637812470518884581550716523023900522662075627082300942518020402577251229035505013571513437410380395874182657166177075565588420059339639301566947334898768062521341788247177500877040709881492077826063240671061657941407524612120995330855950460407645084983320681227704532294032381199237557047450031740820197797127052097093724379093612345567477719587035133927658713231995704691384795057067564417666366529155950742163838766153441886149130890991180431435451055843259757256775072769185386458084435537135285325855801682600519310066017517263119795528473192269014578812533961783792530517703237636159741612025553861167348418488411894833138880868202791946550479209417811399280917466378204072576660828250460402815740405144358199681682994710635681891045762094928417959909046603418824122613077369087992003871377455450564478954572002288671969931991944280973954266785579511295986171831926124665522501545409481528654469886972709218388474411848920027924521497448733039606556360331504028015488786879692908056004273763492946353019372556748723814764290460926281686673530173195817729096531922697136160217340915229901583456598927950969766436530106776661385533865552401311220813079330073874748032254123694483997780432993913198018527754174643208200457495425422102073271098062960203968550947682385472828577152993169291095697850156836664761374508146702558963364008314992946771554112197174105271362821876179018423870488776839212112242662559074082821426844504440358026061359201939798522548361788612041075071811431139222558009421415637350265457537947853637045513627578279526518669188863127415828207390248049496530205473845486105008083497429763178166806332295217093259253118656448268811853511290018879037452505966914021682196225045573108911502579278749879531766025804524147625901721173535522649669469425880703403358403615845429893182042703351045546020301028094751834011948826285010173828865808631945827321616109086639923023486468091062746884374831266756985374598625597265625293909794429669378942038347758055503848625192472445209433082820928641084364218792023573019905447580213727724081651388035361817681812662448499170486556129149952686302001514077774569240537697320817056509652085403409125583802962759436320763345385251348209358946009838867878098274557374509311013285419787615666824443618134493308551100203686581298804076871442252566535775197774431196014447066187824211761947519565124365757893699353895210727900280405854213300502043106135628199150161158352401715357912279228452027511909539493025291863123700010117347695694240500423906645257477256679138716909992361450694463999798928180362308045212902301024262888193270165192211165624662632992191973942964557116284707026328600616764306294470401383811877717358641504820646360926326704947366190961382727464305403560694826262747600650239070901424886144079957336389065222586974888475490305979236903009900118524557345394596047892366472587537484251318184112960436050639729933466854529144183288305032695910288742917218992721782492277965573516699439385861590265742517015352041290917430539103619392846910812440221485796455491531655774870575531617491236339818310212420981039531210124062659904135928815913220742421804914789236595700575963273458116285602730697586637807054823937025693864491932427779721300159844001465009569365876035777027880539641281045452632414655915397705025053740084387601578337804095112654570256798069967016379869608166749327241001950467225054386805076007932305435308617950548412827730446381130758042444647750745304547030593961718256111865320934028645988856125854870394454189531098375770606778940168156193902925514960576543831453394980562406540787511602000361538301175947929812135824598307785070035776335350306195028989858518662287534539715218400061874670602652239134945001524403361981324527846064356722158929180250352240087571715394823 a4 = 696618412791727732254563831688786323299845896016310987037310711529403696900910108572049138769400107864921129338575861404211659524475143513636167601530474699466881628079392032118673340506224588927986641268449373360214054640493634281356355119005751761933128655788585783724372405277242851690579838397726011216233419044706841866351978462486188932335983631940337998575789095480262700537594434160604729085316558764951576201806261136932791244010559569129075655332538083582457876311567352030359454596141929019961120722049078728230584031139602514704534289232036375344941912553736813403553593955692849474391974131624015121979786158579062817313822112384391568329171395413266364106927476646276949056199144451500912997712911632975549047177792601186816642489104610998397504392673132631681669846694132899905000117587316218282111198818410952745531738769968948092163888891388653024745865974022112096431833688944410380210852585980642518139678154138310967987719342859256752110704219878977073476811362633322493702516579047293273902885284717101288562802782140933104122499825342389941460060955490053298363355018909177035382012486966508805524340280090160035404317528284961862258015501656266367358334916726158836234880600438927723423897075236614604477403555692039943483986775987043026797791626905920965791946521992918088962070859732215199034146392896920691405659959297162732203507605553451662067736322206473271070158104437162854069693946709993118834295303564953973371812174103927035177068170202240792643019638141227503743196579815045046947981908075017633003807691390948422219040296069287640725605167253338236025684243928037642441773758019773426219559822837250102572369579962104321037595727288983576158332933953891308851838124082450146141418745181664257256803603140502022918806561526722113191497443613628462627221260631370605880226778150536480587950056673755802800147970582152490040788824498004435398571763522124673943121475228889466680555973855290079995045625493501009104257777349060911687535536909593698343692476364661507463202894855490525669183266296983463890836601391123272864199072012721561270292435367687986671189650906254786442322230325402728003762000174381550265279105139112755268731392629295356145669758003457970033890124997519202821052142831600642681690507091192823207163404188098817895725871639995195425868759210890431290775804118116017765720987484709936414624867003133236824578107588875448228111137066520178277568569856722652376793506916015501773513701821403077015389976988101847478639291588718880052083922348721314078638851036116110519119928157525073688397929245720704492920285879457123407670301162154702063940954894347497455997768203465976529506505209234124267662722808232414259577258619204110460369929119606030381926821612882793603350296530637472135150559930894367395156933068046780953587674604117249337934515475373837166212719669723087378008029142593835777563254185280826129806460714065779286446966986914379937700728872875845090347565933176478007063542411210668273893335057329273304961749318526228713177968036061100855044088784323178963148098324026605844481695244228734867395974659051757455404326404599113913491733208414886159892296372225312039069888556134952258995477125154659871334693476818474647635396791952440877418950212180614485616606223516871795436069800976914299672466831263837577167182685301166908173608538549937917252370326817487372208923733323694107776625075014358702442752242647751985626890182432672422083684139522193867643228549268446672844872368861146139632008786295095393689945448125950508168617505608792103544221169698346685012688244404702099030389131504937210520760730620007030785651124124131017140449957783521428366894695460147186658548749063859897417008690811523661539789008950577718716635035982600554291980599822737193480013825616134037659954609575628350605809406581777542669164654452791980226398614481166960820038453307219736788133161738871916033127872269228465611686243050820779232278890536917774722974905130977714545431825399997568570906343733346301957297934875089110164025203642071179118574320250592364331879326139917052362214764302925041228338850367862922895342503417587793688796290816514769150652626182643395319690013157149671839067332848586206015999848905316420503020675554825640728725623931423275895929741826113123522373625941866889811995762280907280079805054159000299706060561817926059670463210013049710002174187307793656113734661272680142455798030252467103580240028475450187064045703173700249185353877561738893071630162417346614206777828873598154235861088096843056774523775078601693020855094984133530491085811346944643353451077235955162615634608921651918399671362901707910388532488642082053460360739103950777982447313145186395027023132169301154978674930114394494193314932431687716757027191480124943047422259738725853081513234266706040468500417496553248820867023602723351942049318828661039062370217643766371442837939105913266324239677208977734240498801148101496059418848041927196528302613809953508982718525552155720933612388235648514483453135190859436209880422027326348919162579299770228706824295560422039768677857680342036466401611039409813433481858484914460609534405547724811834476866976289371961455011052200923021471163906251152033997071856375409483279620295970319930174148877942287888184810127065207004943448286509847266354542138395499971146667284292166676282360330632494766416307813453179366901877046603127856806713075918938781562153305967320198367387086143779334071871376112937853970368510948449652968922342485550794074189278787155484846620635406229652846490115337883255402352534165625532827632648727094435753755323902428977882107348264293853256834951433205892576136718003389119154542688281928972796536129939596839730382458898941772379113763390663847582925669257843728846633583331544951955125716450780784147754523624601546576674665958662771215383562962249375851629301564574989278848856505240964869743691630418561608966157903789447234273474285116031243090152640339806247339522819937468103803139981391318937160946279301007735826288744282242829826509848883039986697883717685838306201400878774955020321764449317462798251517623786496926109838501662278166703745352660914877015474281467001493127402365904902987950997007176259480219301903103225505098312978105281767119445284409536750177429209285784190753239274681853988466652362602298942350143734403766675710124917037480622811373620731797404075253020754313703515429319364741518411735613349077538490964504885931668530928562472310248076428491824901350579953264906586050304672779667729090442146029039132411038284502142422985850804339901986737478840449190019713706558659496406591867617611668864665327113908506730833769526259978322219515351878716986062864720618849600277156435949730198879804559517768608704072608784635379241757579144289973956161999363920626378980582832855464028872482381775202629111077505484330118687207910216585234994997477273192796034972131483996870123294819503827345070792958194326043338768442181419065290672655866226842137147486850073117662242724649363218273604688190782759688436946855756453589899583700959963938698075158669490111725222231405200688173734070048621161119697742862102254730475223209578405742006770334665808181142644987850230745906286636645384294096658303989864126731884746501780827078954154953427744971602270297991248326787234140044839114591622811579824329356877740465146234831292513756785437788294186797046993120472672891988718605789210439871999090473405695093047735053895045493071709490634512436099381731198633219193164643000188097205176041325446614444368318420012687948881076395397618529138725066407929457578494485311095842305785956763952319793589077366681766305433785172228698136664974418760920903574771792559589990512656608036786744452988843933436351371787200130316135524816626239649205054588348493527799213934299467703121311334081011560945840679327391397897852803613317738488715417294533374984298698615782522412171437153126194710895238971660498136857659257604758478403146014885950022748754887097940493337210878824828955799416273707455631651277876803133143229255176377675710091729283051297222670849825936858247321910776921005372750093350600698792205411170634509787779481387892393285981268907988518686172416110159428605197385832488605400365609421795198763244291313672084475086560752685685460291037011649130437251169057387864965662966451292332039779431469694058417629240972521523294323923259490818577052352180938311013287 b4 = 6757371787046068139667201010893827259352180063880359149347052632301136153051558660697373021236645293205565227990905341645877134402231836160288526336100006319893025316509843425529380757439480726788711702040594279434239014696552515835042756832988373032719323122954866309692833045139967292353223393488665907661509529280901949351156145570794630672220580702965027485819964788510175928934553607146101552015450958592213318669644778052767159151433106024317298978469847330947998554876896679941227362826814251006225907364737975213659154880967203856438505175602038675691540455780906880282645801513278585192582240454724185292786092937629091401355615019681206372879118924349761180046787523299300262570387488755461176876072637874712526810213316988703051076389762949202733162457880729461913399481430141647521132424583282510084131558360981208826483260170395400866573111019317502663606454570993096778600639156133698170979041640243141885526850322876410400566755436136224911891131082251223209928285745514941392254805755937722835435647137928555826661680826227015520386746766480820125401242870769079967291453144120537506586812802553415447292372228318628389558125426002249925254838836231762593979492200566612310246154938701244941217010455332488549457060947830505667865528154277793038771410469170383008980422199703139245696367890020050426029234749700394791926427986384476397595497535393962325418508237542112699631199954744892100970059801622648702489437601581282342025705039820067668580412021803430231966998933648772104264159193404873719999575719087634348995945059216145446397047226984424349695008860272092797338029126810728351222015650199534569415427530399020249995538776601674180178805160185323129804096228450803563763408490876124747896315197293867695740552097472935769562864646619461811332464779500638153082231967099853544773279389849287808564994619482191689540285905719126814199301434592074618568042048218763326514957672840102351988582239509179255510329629274554728524704349585622303724874756501277836698947423791063474983352447428543107129386048543513605735808678333789668871348452460903962519454375470482204317093661954418674634626065529962865249520478072860538611393230990140711094353122910190658204168249238159368804474574860124421164680347495793953529853621604068573585731322532617511088743070418696602113169386241017286906728346419932307192750414540791109578772011365267354726781270717001480901025248074197974069056536591467439173002127739523666023027574563272143557201569513241231173599591301849461123529607721409766749279351537814186775272804842684803579263821306271390051103133282840363148672891737471737533107454894408108106100111845048085664718123454714170545779689537029808768957774092943220889360247515543410024101720391490073342323318731100431311650075243046933998634526168353432610351903498726198312347708572259917900391794000746396177357369041612793494843359959696933917776753465981913541370482448761611609839455834380613580836782637251822149159657858426241226228679713193048832149211452337269967502947293598739495986748394811842407422000849781210490469777458120598766682938795797202252956937228931475950633598872137807580843585020999868124887925950526386651086702449352107273314446667906578240670463790916151899942347080350684012600682529016371430553101949139071475494324937885766099141556318343878025358174834217374351739026716341194216733682357039559281726400689470150839227080608623575059279322964387545330718998276126777941951298318574877260899016309136963295097325690898265216500059658475135313640154232209375687158645796821635560552287433902502619432134201770022478388713449572626481357189311269486494588763683912162825463831082057237055000978325704613039337398715296998751301534349127073952109221789253091615619446385043111805482051069329221256806870205254531093948196628519165662304389821143860432665789521401676324400689508209190538669835461571749739955832194024392958245878527350099123738832967388251623284243119045414405092174269703479274231695314640700235712264488085780296611592884525436819390229693830755007590494042745727849502287597934292063285094560735475167061711396735997052712465002624944867289149107796542730094201653937665025327223498331165192307702708150030034078985086732223542732309297206063211093464083036621785007903091618275373090433888822655950676561272610570736774571612091846938776312615945209666351074349440879789618061998759670003662717100212796269680480477820186990882905965817773014505658485987855011257398761934558273317848076809732840559591076632844987216194579994396090625972981487319694325145579161319487394812059697402840437312752707844270525728513794033258292426235074946656146858866595665867082524076197709028912127202170696414967981465564557802031352010551809928341810556047500490558962674334511794075600951375746436713106353352865313183594267126304669267104599470216569609698623087407576786114285248252462597329504612197031907486880490472027873783833501362889145954988249146767761245595739168922489192342425634096784806439136226372970136825711316778149683667240595860225581515904211052973886521910376326455973705527149401801960661613561375261619949747500044292643432852725387121303011277408307636679507157484457435893865050611499218921332614733794466974409460230269783783090254320162894881312576539348218596015938174363930923356608422549199678777296299639411050433999625623013119671979857794474958077336801417872069563620440100010720285895347187175529441655592247953398556013920016138024064505650987787637674936643251832546518639149784749058801886334000279439213396115904272668553994023079878354709452930539171599094778881512536317434058985507441062329024267411575227374396964969037305964917143999050850779907438705109689083146774185747333232769969096112500190692696772571092965405713787580060588240512388944164097511812138457458078693884767270384799526150594922861228633450854417695256663830890983634121361210841509735893548743144476661721278638009578154827544517795264305103615705850837722324192019498187342288633186185381463708308667838260294432126242547325567946241599977242385773066222450972794045480687618789829294417081073493760809019674611517968647094569592869866680136759781238158490312216075823176431083105926662269695328636637941491835585889177097509844134654900341569829505652495303140261729230304310911356922182738143976841053617150107948265718527295090245704994474898183172229127590904655246423405408295817163761897362445096236063988637954756291714674001263872413201608583182711947374173009492875753531933878853960114230258899057906878332797386495378055437794000868748850752721338379232584174174052788947474035685333735320030304696328701498455679829450269507960381834783529104425042443052269667117059401618946142466769622562494585437773574448624183418436681153396461973467052449975840985618136871368776849884345465681289972550626149617134997258618257632438488535726934642621130133687854294857217185951457739998096977927169591834079280465951391547495185030612068903715357966528497732722207992729528415044175612404390738258337474254221129837727357382475790237659580291896294782824388982206734102088676441441248682210900926838839926750948978708757185432357740303452370103270487617497097918387130482560266999096277176165057405114801689324032495315547344703773363383200225586262443913123002992789399716818314320216593735286440310702738885451243283983174584298007494491624615967817551089535001455761753490005828410367469167259865937758561688210467774162281345734272302685278779758246712398003121048670013814916516079947238543075758209608263260765319214887999050677592405190178063147810916110818922303046789516080441358904336634993875194674228996043813280728266717554584483678239396428599240243065079105286290872141390178186912198092807707827340253627744709886189481568232700962251374999348325101266394471947134660700964441835171957121489524985290534224416996946581613925804858672100553270654325469387284843139837360811856472622948161055529343170829727575193812943833584422097675599745978130388377422482155414226289733761591553536170816520748136096660855277104303157029866334382369220598931062085646021749566099998534992608588558304974330894055534375874863721924457676723362578052402647491487501121653224866234267927009786361519918370780114057754311718001077558912992806893768829476452799640791000953202314337676615559950983923719109572401054270457281888183475668023533914167 c4 = 460118358168660113199003708368067839314934231762891704128576295096266757363530048994571546576428366792913342013443181993299729920882650617295736971584321477027731052005933166339288774663726154029764897301634462453309138446795035669680268058984075583936350509619301273736352508236725095279601691549931476098916976615511585243929687315990473202906515503898306579496035425600673862089428764074311990966034477852489708828525019497086070876013024845983731217326300985955975245199575688143085859989288919127220565242019915158527145311484357279424328794548821290835308560958074638114922090658966114292548500750367535271467026382944625736274294774008903260934375279354714494598175840244495480470092831792257631655814179524763320350604443338552720196214792213508232955804555360853352388251794741344883974992014781261932221074071106424459413547307846030445152966569763379446812046909486884283265228831730178282329801293027048125335454935464985823282487395035755223847038972709060348142632783228493843457682738886878476694053157216443929309367766779806829337073822325051143022828952145345770488462543042581464585410333073755323513046360069273431240934005849757365386352235751335629718066450967728845009251423564095219265168014676988739926385569349910818448539454963544645447229575012253286076916055662094870532053501275200818261223581367683908939407522218279332468698387141325863074592366380530785820832099553809900707478883352553210012481287926769460690079108702509759659558560257611086582063612457775589389518576806438503942248708770604642069258990117353347121986503820559583706937033467350185608042589232209287426964985658717189357924377233128822542837896602626097845284142651125827473474605456275803778143410131326400339654809030483132644282279379057746367400169176026875051023002761273802452296377446642607809246404737653583823550799891753170601456597436155469680940408315775463765525962678893865146642876309519554081606230521271391601798569218310072720461502312403511303740083894913802327521964046163360109969718801198541422949117241607649999689379589323984897111787571259254884880456905776905413759401454404071769820488827346178125191123965633085161842908190261906759014131175671727598307300787032235303138352366156489507252644491483281314270928145907564925412181157381948537557630301175162017782626738075828586881783606151085219815437348775754837995500742972550026697328005894697351506473528028780334972596631691938782800907917359653307906854412513400909549393367639588456451233769501672764177062097403745956707692414665468297915427714351620180964368486382410900983803365127018387504825997832754851446288571610162920192395051633903397006226119977241696601377258014178920750431937592053628325372667306737348690472098646473194964388501779904820982819044499440240710296273231124180024666193523815795388159834980034871525865913922420916092567913281642869799600823166382479442106330082195115284124424837167560074601401758159839098855254991414903479524266395177363916644289254526345052819435477845462075145076948709141860029795241158608345851886533988209251779067325139961765052155598221392100703756119672869495750287201174352900565179539565868490005921884098797389674408680362258964844301371195454302922188658823865135055850043232415240172549822386359194728073169661744843855477409467598069320266526499855691819825749717511931751990763150301143209159005968482108209170855856738846054499807793906471982688059533251605741872790117703654918533050976516891331563701198270879544555544853247685163093562045815107147728621286169154793253562708216163341194618639377892436978703952409417945858771639215574531461678607263328032481325829776636993749818515022768206893271913891721207369702533861276009695681880570105115062840886177426751007948608013457927116193193351027573070391210181554293730828998859093947340065719943823302862499120270334088719244412221276300681626608945679839877040313760292015953443720349940871170467186545343405907337193331796452070122824592399260219876958585421166794697493801472388423651032586887833073809283509149476510430000612969515416981173129658932636257460763582963501483000782282332949833405711391557448251810049876366498471064958789186775950705831031623414552338476529442522007219186573081426359335760182469777825259110359363909296068125746348993563640498862339988636604019258053746048313122397926209198355534513353179915407937282897290295292788612945864837031171517782508355344976137658690293364535019631115519816225049525207088006130864655330458930905339238640711912891726489739312051965984232389081415254374187057735119960838609207669221194433315393319185792976536250197759511106038496641614885328163150307961637592034958370039937546195074556403060160487883658501895484672961190322348176102115073271533715653960604869237952691973027216360214926889247602270164283373082219724638219322668382008318139910121532004326485378107469804152099037481480042657220687223132295629394516677038316645961253935834932098799567407677389386903160653151099848065933734847659023489293597725436670013164388923182323977099629521292239541224148819236789268359879826069800889975686988943490058730273662484614816893297933496324258682330450517248868975272308283674952633818939031646646145533034695366466291656009273580606128871936619880659501570871448853526802029624638336639773194846094054436729339302326513261423982077758243993583176704673236193872256411220272016850336211533246952796213629730984691088240322136657255526658698123921731077974619006916255533651478528705727457176826900810444676057209193141052787560925130803607775028685223516646216182469614237772983083551158426495604461914041105674765855811541570926970625494694133689364236207598038425001559081769731856676712807284338421820112005299451574482540386157231129316306695556056589538027576629780012842597462393716089378286264445967582175655176250405635018984880088005184963597949070077236052131141916287740264181641981619281724528504225834061711597076019781759575602121365430712856151523014583360767804085938064439540223383213006040328391045551753839042748611264588486363909167341007378017409977664007918956915918973178316933785370386676973674469004930079063367158731753256700987382553062646517569943629200684123172224814501338945194335239203697984417535006427844646838824416098608367046968560486866425489125089814536487371918832516678792098257699364513515861668920659103729798468861160229861325912817377454298785712360997795848312200832786386044680723883916600643461857915500980404643452623496352821161745656054210469061330175420535173483350660605364653000603720810772409273613988364125996919488553787100403774572731790479064027110980856716621231461655075118736160762247044877068598127180242831569572397549585778083782434002582864799948727212811569328346785064967923264839625012470870190359491412358043854170184507726522749949726237256710785312794445349247627598490573016660716467707470991265957828494164870071810136748910842868224749982972852100013029616130208129919635457597432884712786699856292716735257432728694681809601890563678805540967064126529512850912068262427418178165144483263289448616862787779561892392420512916196884272685040351309622819567002436192501138250473367904539282811940123951336001720963551226131966052530639082687030028134071883105620400408057024584621515740923503165253832235293213055844688442603776569273479605460298368446978966737090187948933603362641446158861112379024674089576607213044532872013082617493686632707818756691890351018418217457361504098179020717876211257845627061941144487631376124108133079179682229164320591981096138455709831196646207134230402137230732342620231865302456729313002067195652759887127192246332530158175757166944817552523728998772014282318119531049420201038846586833562787763119270917942860771728288397271717424667474855256179928657937342996013046529845278763216289952189027901738323855462261283547428891739710861254160600509976009216229510497826703921988766385310416492438089863802969546114184954173862750269562706501637947440919779716263750346440184785478520086637216379134524545312531610821397604403843800745060652555781680480809689713797674592996104147895955989397877225049154051525637948244456071736199746661252462615391486150956696788557101466773935135852031093708617215539015387489706197766157271387893220821339200287581787571846407754545159042785785591729741801529858793114881305694085047938635352459977373 a5 = 135733400233198497464281331119165019387043552203742551351983851660733305236792178585780933737955482918056511192952211288051676732305482852798384625760461516543530631506384612442721328174889956039352173862148737596951115169443627733899429583039180212682621796315241469173968213863008783617721984001519297284012391773922232284481180872028428485095063700945187748706126260307541497641023125492049154531645257855149058966956650591729921678746307168525972394731130003324614451369496489507353453394169139597104859229393969960518238148920779171065239990499528129886962390260184422363550289597272689029366719203247806317736554755572570463437028655337891518354741964961270589227394097506650109614272717038633123088810144313087802502034581045011010409238609554431392652573863252125927240921891066833000288462902531340904716373342803430460118829809647007379262138803852756427448516201545213136704507671628201959314724221446185775932904040126764334717347392676316292967127061354431862649674664099027946883639468443101702520801851374163227873774705096380855881138687840299056448597680799323054314012690357980656058234453376586180002757408000607374335301699917427550248170519298659574919266471912775777261543871290939282222792863711337684806486019529320783989334173987032987391119140690655167184317286027202089568550239288728348982257676349020680685008210455586911287903717126117323501185771201720790367878101055642589050064838826949774553165417561099680563674321749432928612567501789844093887593476561169431086483880950929016130946159884831118068146075230907790287941775095237922613135326649801637973111714679498871418607513851267447724655403409327698917917087651466264090122977169753972466185261394989353216146577653724772933811920045557460409027649872098001486774179179393473851596100183361821108488285349382938260764994073899482233041311194174470207062864614985004956961203529305814436331820370783222297164335595470960507163659903012982333686723723342935064194026923728354075351066871519465178673984122216275702616106609931773293773800075819625536751319295397181508188604380064553331847416064681354174398466822161468619220494566079391688102339411786518011886490731495120117026409905717992456205884753453787458298710060732498147370260719000909995421862361194717377621581847243209232223858687871688580609480356465149267276502348181064004325135058339788693286699427796693569486068377137460637412586738765068109532926704601240122506260213003882021362964952793174586874397407114106542811229223793986963975921357654174693817799363289580054284182573090868515211208477567108421571146973704151949475380813192096299131712058813626851476562569639415103878172836223678564219858486154388716773809167731149754551478044285465225636216161394730345840881780172925696393342972757393321657979196024674532318419020405917275027508658491394510597008563883636357683034287932462898999583927656981761025547538666573758507098755750890049388404721322514811090269131682391947295246817244058947143872661814542267149755838517369564319578882536416958083571525894329898344822636398820729296144338422224676679074969889868387118241970690492228178109608990980614263761487195680517790542215073591178777974487413527521537387253953912346159755085505803923973048256509905077148684021315259201827911942197135757588157749362500703334204205109546078178051995920812494095906707655133142750620325191348191090322980845083372308554857681145411784533269942928249269278955566263077282029867987753778158531002770422868010276232046765909255863704004217024607756684754903973884759940912269388486942492662949138124490593754554766163232869425518664482278400361134138819272129674138135436445204450421253176770209134051608430386248649695358719719534016028296974970875193743009538512132271663414184496752072792673651562393913379900889156329484630469913829013550941354549379687511603532964417145756432364035936827489720622800271408750442967989705642478273772215039869295251448866043695191889021752532598616081114676147622752811706518392052096587729955812421909884354730730177420490938946340640024747024454218785193602635204296591930849409070745061741985941291897403819512765072009848457526553253842958020911367668583537670809740012919117657894646033983002983216382936830792410328917862539563225002654983798577079713109527102649969508456977356621833859788296541373590744984202825355719036390509462415368984531003617026614674315435524441370542773308322877341317724232610110130375704941249326986704718356911658140956209932420202451457691671476083651386276889815663986821962607781342108280051402563458908001989599102751533770061929909722995039760017881093706481042261714471222536957754020996403839638459615132846972297133626519927133282276786210396768992452738409285364603969291235768032429171367353082496703406745888533517514394150604752502350565124156471616683307603949103080689105084421789990885831317368895795386240175733360262646908629605859666176926147038042271344736725705983168067862367128043477992294326583363617726350968925592562637239000167603542680689772038923386742190187389797941743369832924453492581934093779837013445384000340544239407349653264339012022462015253317931133479913641099881074369856492333763536661839171160458035901549110202874221173535157282045389858258758454582454258662146613191280305731231772957147329112106460176169554087240554071989615240354277572206691980240568484025129408647592110212046507436376667922248814380403505901633195484595567494911349245261364173939833897663002582313113887957442606439679428602616235059466922649027873301029337641027755332164120291802439444726528267938033241295298525837834952711979735652062913891122082556089129503150782849093332731063933840685654271448726125675275773499375278888733253525240770686745357610145330937878163234298221121526678856465577853571050631079462347468013547741185715855587552668316378807934491862247191410733101566946413915972491874359822144657623633033182683058531042957171357863221671978197382838824608463632741489840556602190794689675216200231483819448017000018644353263349171845137077690038623232904528527641144559647479835639251644849308422209915434387850050315600562176628592100330435166474476385564600579436656295420150898913052051210380136345615724926064781599621337012129921972683141503947314179276051906020885442850679585114021960620519145255294290913209147019257600545951055575539827679221311468085296023532768823957522150578505787140512182822862853361186801334638166079999068719446446408662436746581678915176651529881693622345690629194544043330204746840122991625572708579045302184732556595545104034809716817061430060356159108026251287563128437717884646078966754357865214177297238698245575827611434370417742469957464709754140628763811864703802528435719665410390080671648171149419409844010648112697825247552991971664793515670626890171034289268500216911671949659235876288468866977573291494467024487614132599376018219405984618871722588730309730704923507865458701576331959427321161697119325508065828786344760111402153695929344234049220682362647794439760455132039111988213514183895403880232455193222894638292780157219261267263961462264936562534847000674083569481357788875757512646769509878336279543333741467353123293370359396448397220235286468044409992907367227286194588692225352260644501360379666672206262032306418122776108085812651944595270594274338739552986653465606182921354934584239813279894511318036418960388277593186528663383061156076579639572486234355849285046300122803822227262934012036550575653470689786447330309995761156710729069728499267827933175523803101885513892502312319334378798844698912041305418613728075539651641984522341257021741695088040959691844073889875862800027552571891464273918120230192427726304839776877668811504565691736569849155997834517221053041917958217525542514908130579846303592933201399155641722541918382262251606367784549309361193166860099972783486072202052195081405389131440250233300068685862507946778039780707762675032961127225070864610883996748537044718393603109141152661102029484526662128486921454659328383052912261119638118320119612541543905966050489039987354702073696703066597848265024832745829611387372584073483491970158485936456913310796942193216281003139595366474534061650285931104613383652149826312422498439639721366269053972111037305718049453055013107202258253689413276137791877320892816959410606729747379466967281991105418254568060906784475350806776033739444177908259519658704719588734592270795065450396185972173462214275680301059717707073436887144328515118749904271740763214491549744584976463187587864285975795700995371600930060705261138896393437633927555037835224198983786470267412724485757893225396974627128797053891233806078182057421939147980319707736987014320216474419037374353482085147849256579209331443807961084625701593475974756562977235591976541264100444805694184203694085787109934727482812226886880536514880833204327510221326973764744525920003557822022607179744811441932932087264114742861444298804894902022352943640865022377655174946330790673624292889708289480921222149773112828261357724102023918926665114212529956897696464622720538394283605366840437149217821830668031634522905982925488481362997999314258660412492357036801540977924587062445547011804967332703419081660598078005760053891157353287525961710204936997661608819139946504244958324781020024382515320216832176925992044497926736091983304740770686338601947396178193452684546767133465986489609876112979526228938171847093323634096491941748380104036777221562152057964856765191148918374581563975819260852842004173419685647477315498257561367941221797907463484631408937713120864254197905398441693105876474985380004278635893910235759780573759331465343966966414033293758539101145894560929139040124073133925216519755537827551493340823627310312241452279183028580108766268040879770979221278402484903587727926615884842979554240110046637489066095717708400599765537803777717408953189172840910378335193525105968495376618075332255907265895955084771558599918171563725382701567679175186376531770315536220790819459792613972560673313279002019873146711424295330666751748187897696056171695879388545374999427192276737943191731500665072863179407471469734690932891102374629265174024870732204857201932950189126667496373484947555028346068523165250829175369315580092709270319026181704127258633277871669476791993552213356546253702881849594134737322322874121028142070369982481306895807516103483082323436273975370525793630781093820238741865196103520454133736630459359249166938967488232395376083052565566874764514747013070961740867005914375243265793474514313781008065593443891569126108696906934323880460852338736055068942021235436107696296878656731005666458977403663529922100824882124887603740445910275430422149317408959173703687323239339199172644185477731940201422059210434159536802578878583861777259061059311900887513570650659296150136277221768637944144423827983638859744662977974106611500248280178401644338307565634864030996242372800523029568692729252809983270591218754137646175326636335639126921300451999688678226358347846114667932378126241846525181379239543836367581549228064960773300955782632506607242178501753833661744055608381570933358119433349254169894831721436187688505551744469901296252524311479598170927272608221563104766920491705375853366668607175269081795379185334262846315765351932097132063579134152217615444950744059888694330276767747480136575282953354577613140657394802849542115490695597700305088318434485761000209010812291008650502640995155970667113546533519411342850392290414148240164992557053250169592145787723655520621907361122815135125296624155905680555559307480815471620213296540636152015337498256880907551808438202815300254973440174019954906800395641390205160850475844013591007297026730865036302367017619783203509899059665915095196015182236645320761832956828498217621645198798643237236607537999116487240277077182660513650595795912703057351311143016171183232137040278748418398511488203095002981201021314087872153893184371232420461198315240390340956326818324558033401895825554926183939680589828536932700168837325299252996764808416902613853348125369325677816761410122883120014388736116534357685287654058558858048906705374036690216380312781419299581909264751860053796704620602618923755575492095824156732066421288133781666228395518923245325459310020381129132079287165395513320301027691648404415914794438902862261181885941004272065855602014537615502826892258759817705715880440981474905580924927016927836612429892962338121488714541374091469466115604971455159764546199456125650576200826570689383495419566518363867334996907696249506059726722654364180700446681830739544724953592511263174643239478611965365636276857950698474581030659086124336550476122397253212986941566989626801009827237436571689297867542497974288274076993570254852231147925320787029145971507899734730643073160830894122202019291653889868617459189031857813655639657729040571192917315544815521315040772450434209007343571562650920903519739609352796072248189602462597974166056134062592988589168238338356658175151753066177883037899164221884354327880033153511333955088463305654101754577812566472112464457035435460580279036563428089697626322004394224803934762301321386893447007190738847529047 b5 = 16158351620668414344618629282864507728736763432739130804517744551033369575570702971930713572073347118264849347562260336625828685073921366709740603176377407572385377977567068581571591345583613827258045089331423976800603357969837779518281644671866961033649962467256450583805566947322331486206551811100949423393252066246235879215066636908649561002399869206960886068610550775614039191253272557359300655696140934386382089927970562379519904785219687114007109144257116836782995499594628175749346726202270402339788075418899779759739947557682994189560929980069905587566395428202424655001692916514800822843459044090819218724011399512870427477664305004446383830691075615184384918155529784880620240997639284236840411919891097655182526010130573852081043501844356150422200926949987808841076358185378317254312620121865314224154182831720580627716558829014388610037849085232059982275987033021805873855306324956389368422092875539971231930881915474958743007860274980097087177787293881708655279407812654705000267501495125889032047317315771906141777500364562461405437139382143876895362854136281851824924497109709279172938028266865774228724839444743077750522895208787368597210712290470011157858203512149276046248018630182966082798285938105402918353423928510169925190433070245539700244468678127020810115780973753928836888662972850222690938613214835439287905885206610847568164746943328158664820906672141097693061301339928707578166224287988865136317173220462659459933031189000669231707094785247894048607317787643217712265664868855053127850090234324845766246387374656836904443101885465012887600926240537310781989265234914907447406188113302329904681705300663462805328758238169020581888039204629625229878811446870011560789211796977899999636087428840741556800308868087410760928157887570974314125780477352956558539790068109261446054934698188499703926957819226568059463649288752823771582956476286435996725750488693756051107870107516228936868527270794570901473560661823539883380388531154180315955234488348569303979779749174223292509584785730175867763080122649913022401555665144405998239691951956261787171849770286303983132428395737150778654101985545142936295727215637706972446487440388321022592109453184102973709410051232478045967713442480282786233306162446784824379295877288529652051182061881279416005650249303877857112599315471720398326351456758300182515270696735075972002196907252036459513593519943554695773671994871303223899970695363671103643563167325276089890631689960719753536723635653255162562421995959276018088704903060866757194098106624870398343342734459474431926588423774091611755146938139044598359930483864175249277416385722870185797499853064757561648691342580461248885639768284527401851040889961556527586258747274994291687018310260841372240853495430282399404588658365291907421839318592494295829562029051926344162281607814303913335061240220512222352534763504965509970108416623039008880880388971304208533557577242386654476830958017559191432596672775377575812872898067130846938301188400204156475711897056789399544977721730190795359229699394098167407152073358941462620602878891470120626572450943512525900048875045614041310291891023942784646055475065699131141121625920263820507770966150472430721658023734890666191648707990656846879931298050880392165021475518927801148755609853075942575357128565684325425593558880802279111418784568568914635070904455197007928610626646467803389059649825492811112536899426092658912895993907528740944780042916819919138856294013464273159854494883674140966397599555599453060365919402020824791562790889928442308884603564454642232749571658794393715544955526106526664054109000638251184057341559912622015352979997042964860916568728690757791816126870309977595009431926628854385052196152347754126926664305055415655704022293618287315545493420781328688137438735013690175674778643479460941726538409154675141112137672259599943381260075834223084468371014037884857801266512826449850822148810712661213259498387689348992297356212060921477627095646142633189127802922664279516368960475150860775817610329250119415638103727683227541329340991987952733069351846908866168340532459364085514673955612045823868015833073383680562742981312067507564025433270172949446728884245128990180791486447307231052952789831829937496091494900009088526153863348879072280105806202941261879273582448000542524037606007842781614527275799341237510898007473060293412129300838017354526002981595484729314124269715275447420113781995564702270346702522437265478240405570505180371574060052393477803563709403083547609612111639972389802527995415417294107081208786656298372362133116315838693258214988106066265430852717975723541703633981639110675164054705136433801628815792004662562998277549276087315749977380340594751581302062955348040915887087046886600220482229611972210437960439182249126439143225235849726867807385078440381233268304964966400314073173747265400701206820034214058857585675955632585716036221164555910941098411785575337440188923868644697709476064836521096346485651135412423092834250970464314427743896305329585853502538733702214985590027031305554030511479196310678267447762698178129715683098727723304895181581516969480367135660231540165342551535968079449966877199662433578082158454432802090268166834306492047448661469096647167058195943003954126361057266192492353733935405420994558633430255084156100949435221255940107428433484098809644612560106394868893594764875760249290760520592028271448919037940031447750741826067016205684927597737886826788312543835412698549841311246110684326811821647630985990873959977183311310220384021991137915524393595512755238882563693179025471098789601342795543668291876973487185996398145496066943482120324139166973096448440886107458434483608892263957045898503208867602465399224547855572895779953185832587692975351979192455341960818748853214341413148067767877400329857096012615131462537204677322609824492736008267927521385919413687654951844852811475926241934284721781065542290916229274361011677155182589257211706029542284984996960321113757714534167255303934868665811429245656794839100967896126560971235024898483435704281323167327582777157402331646502606737446677239931930844125474783386715569843981719014912218541567187859903646905139151809596598766417970432818810617918604244184396762512015547200089754237034461506417141966692454180788997322563160976055659849110061537155656654533807147559005712164671867506624928866636307397805424423853835298703440537251641168106364597903798490605992648915965907784078159576679437440634895550187426794420255102683196783796544157508368210341555422803771049046943525196813533182261905981625472124482806933820844250472605640523732417109296252896458814593137162347733384541127651011811328750383461654265491667809505256936995528416869617928845495154120257887824082608434363143622336554413127028146170043357982074723694652351109030876148518973972973342049258332114675803905270085680902905335831160197158263253493258477218559306614591652385584103964608837749833972740398650897106244704520016356291825156812455438833677280929390225353083125768768467439015177570244585462677583458381834896678315943832087549284127043764903763641893685931518813926203802968614063685797979924199916633471794284290885596134933016534473956498389033433456754950622569277360590182369294210244372603257374641418242145902572889071264688339609839472226286297757804397339192604929065906509517785548602997036593652574931393530855219070934309517119206918528634699898812914113335108392940138294605898295401354774578292507826570939576069085180763770625528043074520437701125418470268940642584510249136102116220838935073627287150643141468021803628626946910118378476067416727048768545071466208807912205035489428895474219166511968048184185957937184816703222837606576000509233901140938810667891410557726325455200497954509829892611117536019764124153205230757487483823079372649545507201216198758414881896544551266214183789439380110477424742762243461512770370738750096908763068205487913447492825560871610510835635690108276450293818007139874223774477205322484966807163987532459502146895508980961635384588050872953941679905206848860528963965049752331188579210673484239953140708182714332218521188087479531637007327971045345816161698907338571527415531296591019972096900454285856230838140809446762868041208313952542840241678334930875496442336949275908813430700681638499702311156443454380436816968375482353657033551088973457935144231215656657167519186997564249884028329451301590830462873754849431853942472917680101558343090585616290539960551756343527821881959923017819579790957499325219174097660456913947952758694726896979137503982358317880975212714266589617344088338636667987089724815988137277673979096525144666564420458023779322008569344245295683938343581190721905476618096907761677179174476604338167300696033451258965564505921712264777532392608002859233203805288177629426376194950764656839058594296532888739824816440850774442475743567018761355098554781787149509585386408275079957535919266493592723616486927859795648682392011357522863816218899082291022025475809898123166031153944076125967699185975817035625182901174965189873544073202263702842618197089092787656496865113712919554685936895300606932384493327510137200058702234803819736950377445897965057324539621585108076522077340114161862693503943276428444446972979905453157150108904668306146249748842283997766570415305325628810151540198057764100419517000071430565012956637953938117321163325058489265175493160396505520840154744224671564808861566894494931875975987762340525622249882885301478800647196561148093696624495845290079351482431836535305023328842520488338742937380064883477127062038122696554485853829676621424947767956979183037424224889347919633162995301225461257826395250674480623293381306634254202064993137055696352729934343531644408442354384613262698966899717520241433612485252099214160552598861337913094164837914329906704720870461607674252535177680013338177279823660945509180538512854188737041997785564490419343208417581621260652640926968346674378760728775928340299182877134299563511026125765994551082328761734125975995929127393502199413053398808651816629608205132691332197501724512616219694893559658069323673127546458514575759869578640707415495704667345806447869365185991101761007345228028693662156187719248142901976987735530413028457526562107148167943214476308511023884250670520388743947658367150739801682361570128327264594671903903520862339064354360127654833236867182886559165096752734684650239362118498047401425603763059468852718370364077544629170076972362503368247488619900525897584374593006566094967279561571712417680188196035791086217356646814580138291640396010778254597693767611721816220809715459276333448655670867149574702784201839029383611349417110232556028909734393410772413649869211261852402678242662273621689602737945165246586942820549306664353755345997319339137945097766399796211494962394470297035675904446887429501881428002457855274510416747635642532892540663943402970671767801176426410981482340945911686475287559716301508236052725248167522184638066823880593686007354667936466857592634085853839188324609786261083803987388912086140527980975618206511738336005537781035133465642098728069341941909941905203520107866120254633006290510188442698960726718763434246380688598814662392429641874777929959385098910956663675355732712900719797584694852161449057840309169439476082826454548777229506071574397992124012752059026294621282431447923759474477260859692848597911159304315231316544577057877350907655660991893681457992493936500146039521847474109632296292251755240500945191639077242394752320274107613763489329228576230072329081874150140343744144541864550591830047563055783904234441060707042266057367187900222630890924074539470174408230608767804134018925464938100405479814190744583474107691851745645932081159419326483403868322611602777312188735352954160863138071381687141357959650866239441998909867992179425811605167583362486405267954058789251905440201833803863253046066472554261383578108320185484516174358270551653165332800499594786066914565427059965661334848374187082548323815528390242135842212548774175586535027630252144906222686133549053738630581641276752895290242215809451280251954948999531390332029908685753552474326963856959644971565990925429857089691133285969711518366388019010031385323258717876267937647163297257957239010807404438091823621344172210830223973877275846086402129412090192053912516753535938417559519482447857976832375797823269127503837832914314511660214424551133942852439880104613527428492952999183531827998571021225397023501602764360194860607473480923264551105607710580688234201854841474648391696204055050915306898764442422850677923326326538320277724721302165587876743789671778243334945139106754875127073308136512302174584665131441235921174523745470009571046501305225218006564812646030874410096683155947816238864235557151893827799551411669568182989522355360895780893954272274993596090555973669899806090125169327335520575644405400097791119409777878101922156323835090435426460078910769182126265259487372181398932165804775992142842275461331861923638046971327669983410855644817399551823174887583068253384651197473713592227665712408537180118437232492594727911019525322631147838897852283527395964001989693238021362957 c5 = 7082758520241055699206116681536149417590826834141091646556928024153649553823742951392101651071238040200925654595055174557181775544350713488715655208167144678583147994653412294606985095025846508738949960851863544355366577608612971178207574651971675093417020922630028930366135486049104555031254336831928528247586785827190730985596425651830181006156260468063462110905247771369524203866246748946721228144559886913994415445342830234258438006759798612556529694466880971449418353079246761579645195463680534963496263314847774234268739478864305994438184037179389718859917841696820519315645007505010732880535069751557771365983696816653548915898047071970846164178499602899962370727023591537452625041930975972603541905219285662851797930438187359884270619781911735615835644951887801994449920208423383528328722206680546315078815936905516777168878563805781979999339631673941421167917371448894721414401914171222557643097378931131282895265590097284220701180390296979850335902586745091248151532600542966581711899010325846584373561904365593985170288486613490868222003436222643979892720397483349573703108352179693425405998481496836580100792180119756094435241148706454919927771737374566484944518255225905764948005645353083771731499799453021628947030768883500053918850107429975605815178617120823668842430550230676592668182345092741057051357681675621670076050281874392298615875697928145922367596303668643189000667155070255732093336540065803316304918517174616263320903659875646443320647373381268797128072900408422895693057098787805311799294622989677648764333021034489510737718678031021597285962467092572612160160016031175177411236667173713125539128746567240610644228087348722576529743264770888876688539181286336668510283939116592450303664925517897355324490371395440509571134218459767073836285337273421830671990914993315675798269499360243636374860050260109011374194199775530487206340130079753446751281993231562712434072562985294701618855181145700396968886007171622667084851296187681532571669692404038529109382647271650085899664459715523935827129495937982847840788683311679797651616173829528885391224308456556275345199662910456784320357665833533375743740906990427834958015923866868870787651240021034982745853364439050844956273754806866943545737325396525214789084917323412864865899444202243848845709468415956203293091492121359543678310665150929473067996165519718479785561208592768438520561674014970059984226963585010953888927684782210276318073018329602305879416495732356371360079149003372657885121577940647239410113148151104405785105445430721607540224014287725880077113982088758398802827882513982567975273369147910187269276970631425820658212093158486367023565390126269969205277594796369738345292411510232988698553517596252779430727829067688773148310895867087695178511723691905165529978162761098468401211279304563005524216646968903106921982852119392989064545473669459795344805886885025346862057480013520923017141531137314947977966637280945894129736840882674464560645748238458604031836408196601983482743503864896962485052369838197693013244584229232773715039204635082128286576047679420470911373712231904792720882210266686945309805941193183650717222327649956652012851505347690168600684913167722054165154372782611314633327075467085583613561314183692184819651965659914400692550602443980689752210282631885381269502745248033021636831111526186030472712695490600574188356054824342448617785652362488121879141486318555593964550155527451395118827408077039796649321482255300037873032905051754618536698257279223497069254794040116838637981428189820817950317852169305056483628280750358310551159723733370852121859397431329203082856605839563748482434196464060528640189938476167003208809623349419846043966519938205227984878769364352327137275391767750064295233937818103526021274550918696866081113635928629623056417342238950048685447075034610608924048490342115853451661222272867739882165705660377948726841336847710084685707937795246300005501491916279122139649342163840341403958977193701683105331268418376938685813126115031739395311644817237591691619774268765951647215090127994243128733794492899220428778274300891771055705880833905164552639568231608380254742003445811179378511089988887461089759364234545001548504949999159870570867947254096687699316140228570373828100195127987864902836372968044167489851667414989007423016416430118639565009498758064634299064112856044035156986522678496927863125367839449932481005379129450846971033795211870146821018269645685525155264318731254918669962477355124056629042748807189828498964695074580184195247005590591033782945391026466190502075959261954570975347670719352476282231626049177078283459527613042749434200303599854799404127129053246504314468204191138012256306258651828866236366882911137966470656379130540634876865982557937024209388506394334541809503569297089026006615450073476073123482717704053649806348140170507247403857534469562401863573934389698859036482661566105657676442277957607964663228799293754628257652870247842700718309620272926905360491317070310182246292109953124289299082273659322993408795514540043846923370930637176346507791851878112025444242001754590322684866669443238437422718414257674472078953980072523222902060150213235137018375601268884344619323077636510502728470710422580812504880659138892900759136543890616422748154716127757251227763031091258734388463744714695161640120613475334220147576339293698488190695296438138450342388658744763651503882573460212067161538363345057092839987456481801472846329270588603832720264088078141104531074931777566220320745492672647442099829708704057789843593262335930282852254588755659019277658182849034224744217196271213710913881238304192326837090451263905429326984789745322935701640220658992920985532204529283496372297833058537272367735194716512409585688638910214053777582022239579791181802799434947804032605904046725301327576969625012455989725876593384353296634822881060057900784036813224899375177670924900143445337339660377013216809398402462764434061349487746915166348451290117759972606703632218757170769013286896546888641156972412485325565639849924643259482162926285710900394292388354616154471351731070608856613631022930863660706556111778097949232596026279945893415618599648765061688700146126533433782127428424019287351933815456641549044863921884773078884274299556250687378763238107985750200639853846808813120614127847906081053017659526856811675874433985505891042020091057288397706373595715981949406738661400340878282407052576284607599570470040284071164716657714609355783922084172114319917571029737654829920813388135616063868481789640585428770578869343291885678774407681015751573179333302567718598685584761367372189767263158858397993950726751997007810842345317436082820902354226287540323927721060586032872910656054976660410551671687030117031377910965658262043257715920454941466173036809919910336261345543395433247488644212299288080261276187000490014413324422776163988388184073082334080084607559650959266840684884739490132805031688128416692011037634404612970187467226827295720040529382504056986594321881995320783322197169066346107844095894650334305392556931393154097190587860080002597034778561344462268937969916168826798522972665213743430663892435147435724870279100400310427641213036310839505723506132679846885428142189829093941352010813331253577718459805511007703825191465717506336826083743286016249831544002534557186442877377970469823394842616028796959808466255634095282783682947549356804137646501132857256863442196391071506817489640470691195170178083410848499925180493819641089336321474400270433718800677217756426201675719248361763387127818783042049219781399408216973617371775354509640059876247586707630299235360816089582948422326325921813233887658765877052076584819096810499397350913697764436475833029098448498395147188439387192957933137474666808353557735448981849014595746548668656242469106943909353431286986097376205886557422012255325274782382267533535234219513828152528821728969649253349354086566009441689970140642426683191963635956070391099438013264778691965176623427033091768153675988877203661740593892445010628401219109115918876007752918590878851493348614953891470274429171749215155829407489221698141702108644772420920839552670037273406756175118369209891463882873428096658414545429313560494398949049174200785063901777423743698677008651811042003453953168779418882218385395918322800517793797685882661906913010730855556667697791509101038088390940340830350577732424686010119939010981584857093535446338797988850804838632758262598032383678434176025485325200357587211648755919961731583856817581975272963987540953009698086452578829727518665166771808867659303813295394575231846732159947924327956179322172111311567512628050308055246637228696722590139922562070555148029226200563836793243709194946060695104828626035695217663834745133838273232282187946775801728386970045546619335025595697123514207345721118642053530707040829868472079697324417780395555118275988056827199199010391609900014622524350986289586972388527533263666898557050505593972299248814907313721230369864852176474509700619085158114781270348066205931518451458641659150501941423683652946364764123277166424558174642375122595432026913713499262287130391770515465374661994095619943682341464536727845896066009232100247493276877558356330149263663034693764762765945714640111312343771185200654732437994704256191012339966815143979257198460994904858616957831803082073273622234835592136599883955776014865708485398866954813000564268136906429155307525370066303014353920040374855377498200152230787427035766008661150516506375272168066700716060192810813283119381876122199942466694990236749415350190884964702406738643533225448639248652771919720645142394883007721569804196267695768823640840892349515474510427969725546205556041046709244116863683240108710475091940515660500858523362202799187401896117404602109579584780963739333867482858920524734795509171225330450888330115840184098096449285028127118196340489828543470835367828227129842418513930293688224805899984219729097399552823556353872397944170201422724064354165105257008979649657293814342878898308878215415261973444261010669332944903233137940550325944913595331129541943107224566247290330185922293365851437267123135352987968428582902178519545052531980990323307524316647344321528061020584537690954397024044247087404264820290979145857642554723122352106980950542521870363044991535646514980517241535141945172283610547142049880368787086134958547311606406676212793341990558151000867260211019089534833947636049839348233024988477681697037661463627890903818840440298272553458241402126862670931029275197802431506625986753190687879690865655507455816047074994584027167647135500933142766891097883787929654325798713976259872123924230134256554958465731043632715441887733368049138779642190595026667811661932849362092369652456875611726340869106345231011501425461877115399981766165007954708539903367438753871898266547973879453297921311126266737007170547036671636664806143390439435723003477743783772311342098845942800599110501002493763680902144786849699635445679997509486455512438039581901377223916290818205338175608960985070628617238675333650260850287805240276844774683569375647868209575700445550645132655715779465346949720929675583050526379648133772861809175494609658916892553396565097396207022022247265749639037738110068701962448453828612768714727161715930681612816821034368823294980472709997312853773640479914404972556919348736546833964254173388103674845935508847090887091210173685468211552827823012779320654762561503501884908508521887024536516708189850009569926702856036089127017551226186254450238157304630533144324620579154065976516394300859022663326114041266239776806493238968071162109016840255560095229419224064356722849694699056493192984436857801548681853133124744601988418343611925088527129421052053761512838129733108813804443809087087378178883947661159060919907896048106727681775760559700329862039622048019454007905614266200808596719796462236037056017598214890643949231332927958565385723256779322239347527897423574875904735035418521480527002191241458310660628240680028645912647586160402490354866435136807326993523453957016749411878766889097913691202357695762826740835340241870214815465541097658283135049726439014497782425576737585044939937031480480884301268032009907113982244409685634473722598011215729045897170743480473595084980805485087277546469340964935207442174598939228977236636309148193467799976193631548730071168491763206500441313835932774904266811146699566586706872583337828156992686434028367242636434252914472176215358715225541098734476011274037312301825361217410254958206007584841502180362668565516281055517096353161192189779191475292963420549124152932604451603571089644936457464315104560428392058906319115598891160877845238013510375809881734620987652868376186545599920958985584356642199397328614390368542552856909804263283198048329996376811131732800414314693911230290028833490093172368479607684369349268165460875523970771098562145868402495347951668078507073502965463947264482558901256893334269067897133446641063609290740441006917201499507240960882225230275492070801314739454263107210110623537326144115692125512478725503282355076173469104985690879643208562510415457459014321073581525049571379359197909403113989165098800112426023 a6 = 109720174540318948330195383430493552884291484994465685997755017543579483943674053954241525204677802832613157644660811871035953801526141427444273322784939149886950146296111138937396030442537583351163563181058630393601594386085213222124907919190770537265754074497382224884633996711183735373265794618631850110175745863687039225262788956606462181804159088398843526073068115614340385953474472432916894605305883794026436354463643231559512163743822813706223632950573001116756615254484682658569185592813322600551270648780043821927666839904955528477478609560863725075658209360477887939648396237145718932566180361930452263447067575687259116237798895169947447728842787166474510514781628157345399043237257945411947387156885463899611842708481132211479882269070438817075976012531979137665316151287974230440526329363768592198881345203125812103741544777513249417817848077404228336673433211700800329509976717312451117362425508640666096489675608258727425020675217272952471621292516728001674449455070335259153867061875255188491251072235691837139666981356282031874925644435204865961785281306093715906755024411737171677664282210564432787477677392470872715770185226038660575411039735643693800630523872692612491281968171044737908518709151718716808254718968002828349216111779979539706258060633599603108726352282875249590113785041066229327460473180072280455490299907688850549488332663773692786798694850441115639153910196103644014460362413097042365664765081876528381206802911480391513122478731533655612946032357369450188672226276579232879009466600176924194582121660888593312108592095698018560672851179731892265547399905855806909451169575924513332771401854965688905778019500585429831733808506516132393240388519779064977376669354254161188213462104492651057418919429415176741423955315403306919495769312204169170667012473911769184040406138110886243804214561519096692416650440094195172493070525510526575788861350687692375312046372761079683742288277434174461954398693713519798643562602206691327178547117187982303475687531611059003238363052978934572826335127104521932033447366944936908874637531227282380097254588041985399757304602790817460703520405497974523472196837354836608629225894991554037398342263871633229813797490232552408029469107878750629680696890171238576421083501408348834410854190587820374254381065113601245871634240557692797151469324756071613977732080404592882396352404155749852457282146583687538661433311786407597846773542947058953248645967117542132468726270115521410489949617770146956195942827086025546709936590233733572441277839028344357948347080965727791813138730107114169201752404291093097083208889916663163640129475937761587229208430734597311490352472199410630927668187473354217305634506036708301169725723130855695728574043994108735210353402699349479326662517087410530255130332153536697098150416304002215254693510531531477798221676359502184114277163727160048596590622473842221157257817563201461842349950780742753498087956999139107317524159684809035033766674664148651454347102923115862689611392018314035151114429229564239068554271910472427719115893641848809271928333539215446269122240170750873758016939987160087091466256037083499688577174638689670280144369806266566281256491973873275108611724218962414526139651487002605319441533286165255880114581426247466827062270995535548614018171886660320408782339239214316902475628399893032697910804371955413168078073288290108869327760751719242007947631824022983041804260458288355969939224154076197026537171920960402580234995589265980788021834136457234321434229514650035464588592109392219512768777593781609100525826057949646342639383502523691313023931914209792197597355900093645999077527147811995156712507135214913134478201247974688365562538285124786907806933765302429563426895183743882034747254100335646849760262811206428500833432296919085784520034383253251881376559096169489362136871445405907967646941107114206239659860356131243595229275306422065425854215731982134161548196529431832924766565515611598759256112196291016364432401195018915701531617582800445946269793475109373868121507788383277833667473374273289090299966355232063309644214947232599539171449881312639746930733681171423629323871420796681706925005972166736298514960448542127287252704841797478206798633096535527027648196352697908551634186853290969781341881952922443061360417170175509988589708352152675804333440479495987357462291855842000516033686922587152347351396089782783148293083475136507442032570518335361227321642338565995501706991780298649549409614809587623267686400738956975925655737690655201513902970985228001530471121049681762363500419854837213868541002549595016301382658759812789028769128031305265985380956553199965212996411458627323155707332382285315763485491493831848045536099104293766673871552853127183121741437491202621811269255261507214540605887039206097098682754241552688932284771867559263461190068879813279094003646629662275968151587516098731110649269884182376280569000519714623514881138928754159590424523401159764829815750842438928134013933734554562841613856348475625777687151141101531246504911353400688598362914624485276211939140916009577503966374254496949487235884844379673410808790538028116208477069430282307225283634051054137298757236907304547767360443688298091427443612856279309519562949820497476473495752318377860104181704239949630999230376008250292374458113573397290827007984327707136822623906099760810073261711503473896784301526966835868546126797318960831542311731588368786183150450969663244699339542059864810262338653822465837003481079029878496266967754976710335176718489116173565229011111605620680024506194013277291811183746532846452309546652385460480208384947440898539012211801361058995394640961278884599806554729531896528494990538358143326126955845527592010303112611684924528618538410616135771146622112707729001422086990043412705591286294851962754100210798419323648647624917153819875700144998894245022306255861737556238938921589167041453196402842128312962041534256841530274580821549424085173739945423398943678860077534294127797407646369053376212219490698567330535437457117110155106181593479387332219416718591223194885670962178258168332640895781472916252320921003147237091914949354524528181063277487194639790440957214552711163811281011574670780755515549388140918640325791319319922451608308263696998325399406982589021828338576031838318781788227505259714443467426173762705498076449096405077683269081531025824125621250834254588729229802040349742695655832590121221274674092574737687213087297048265827492263652467375544077822787219134132627883496659126761296766005004109175223094546772509667153261681831245941065021600777868709661899848770505001364856885520436654252214130999726092230430386531047841991627048432500302011543768989962281427593162091905503523695436133304285696846462415797105944202689736668939042512567535582124635975038155839230153482776017908305375779574019824833081945881070833876643536541150774056297683442757901233497685848048061152102144120486964679840611647254980735733734035499386498183106625665093540080625227143619181823128530214852559427158063629523894661788887681783489967073577577335415526759062256855158828941063074283094920543469488583271307466700080012688579187058719032221405892726824237801003821856275666162661218402743786435145415860863680492460477472566107010198356464219454187662204937267900787631251438940279400830262588513157078693759331687694063161533938798599892965055242364685820759863329168016121180558434274075106332858879239073495472576762316498179857178914005606652062822776827845618431124954181430191643946170800814435640153844839668010138354405221213247199135286457224449706007869533305731215059350918296330657492179371910412451447597034147994586755814646746856521574694292727610874138375396381841918860493359207975454280578177011829878400934253383018451923325817276805720470369804099868984365941006521263766521644648695943212249775403015916423707167230561444832419719501343895602264385099003017994141681776835816771626706699028572641789864881057058520122145352420654653922865268451675119738746456296400561757000196591201961164977552090672641505221503560741897054785238535880312339538464431697363965036209539828747700797824931801292869982121383602350019167120745222023575268575833019442918781554592365707703739151450602213699491750229505594766666479679561615190219668755556707370790372566653193836155529850025804351379786795614820794590880813514271363019641581920672798093255321542146904791494821652009638436517627782750732315207051981075607896805656479500111064829528971008408495017665733211858194295289678581456159968128406089221868861138122489317785281005642520402465718555119761470645807449894718989468874936458600840387261796616000844686155590169764826033366870438182412284409710115344814391659138608956462938068295245926595547639863626807673429136863722811418228340514778796356365207371945102164843453861421536519071352509510122642895424268436619164486234226971032392365556169179412895364881572179357811085972769953043279690135127046969535655042708172968214489016894357100725821502258862261722753208897447197709495796339586249302852043613587096850900593370470502337673726396367833502881124205128061896017169239552300844173214505039834057025523009827817295760365413672157755955934937058058843416206372665273482353143424165587779098303513650570055568266067570488474806628404348411463690598996387346660165619123145586956507840420258112430678550987590904983518056275320317006165663305960299219258476116974329378972088012071078678403237193113149650929439295846824789126607367302927542550835586547788732640651740485906406174844302126875678130503863624133981979226675260629538772853493452078999527628938300340904547945719314258260287519129207348345608660191267416476842511288779113813110743730275882564227819546844714166480068433476426151135744786404359404374960341194987979197635951508909222293435809205779841523047989906506943228054427185099734118812544481090177603657394463121003281971504145523654428065383425414948890506708359569285297959352023018506401676443931623614314683927027354873984537557437270224358793676970712614412069413957253241560745838968818292502418116800909103906117580336441876958786754630430625191316286641993412950418419208893482752202365735741590455651912105973549017036796926760510402539423684878579412141677311182103878665219944108668808557050680442300137828431439346891236117654567780763628776986398682762650602669810354557332615366812194307468067812256364525972134072079840057891203247311478166560257210072751022106389810396907420469894189149756925227096513648677152135956676166236842427837745195274826694133705616476706700654423329738919426375543025650454486753250599226623128740346662968079963851415644992037756525572372878685758983492491905188299382054851956130649469922153621960855942292152244936998889405517874609447389064529717248282337223050219639362985204488915454795342582433162467466207037843187788343679257996398364837857666320198449967926974502657083090530668329536870196968053912482007344662942155734861428638304363445104796748148342752112764907331709453473439598984865856352087162640988643092077670668647155233012847503620256740519971865514629931374623010760412607373893711102805760103987570874418153177607528728588147144307193802891783610556778263596385887616565682659164177652581073520726324573647126361895345610416519853202954925632398425156250337565044231404888358352292740048830137094058455258254778717784901279121824658049671739965667113465614149033814493704495211664640805172123577561080487528165556265637907989861434777833546637648948342109377650551150285618302352637605484249295018183513778996128524215595977034761941957124671150393634499393151011960897733107666146434214059913088251316630300631512115313502041821820622229583378079741624139128076408750216910489692452584481959340721298647134976624144816230258615042738137795684005345404636943669061277623600794471422999293117187420421456796671578491163434824658874410603309371770809225105060307476127773420610144074631787663746948352112386350882392486469745359778756358350158575046312996485375566530988111703258054573002646998551164012510755975777767026457763136223578729953710088482849507513633882370052749332457853068835897016237745329637778188357667311923861081871683317737830770259053427201736060873604809761236258018083540332379586564994574373842323933498179806974519383581954608903836026196851021392565557233425383069426831791484139820239398054437176336953134257817842847837764230104748101001291078978672733664368151252329693142247557743339774549569718993614778213227876584727416112487804760494489679488561252263789032562977953488197415552887183518757603168133449723313847596618628508485305520159585289563994574478524342117814662932056347705567444470146399824091920787492941812678771290903086543639553775279898215703579059537715850823856634131646995206578330376088888435309115992624139585213185203511660351761162740503059105099017073767842900171348984171120692926867394277059670322638671118622976741019021372945480181728428083918994455049680882124292356959155836318671449797132072221295697480303131692821272562775486491757075416802163084351060058531563831964777037973630979652702919632138688940744971627453021274738630552337109844374379238439606101356440554495847630467980617764011198801587192041160348092237529279917770510922487679175585917843275835472766761514708726614797672065538363671116618748850154174422610760436377332272153572672405827858574904433081693732038974286734626479663405596649791396076278043461061949077046107860299037856621726073438745491962714125626762023833169187222806759847117469109444958887756334048666935843170277784339466343921517249452234170018327657645102180379413840206006039832217758924872084363736544575970864010560528437323161626186297271086603849342236091818435188688614487375627674218831382130573603826595876879278770148669173730907847387075648065030958002666825732285999222952075576537325649752843728500835101467214964762561874987431722435148206836737235346982338932577492581495017366051317477962855366556575290744138194370615898974177181882838107610028754121661174569991120519832568383390788834338648699157349695383073099138803864697384059484866193421652031920639612077803089719211058051585567702429314224179546904733351530393831067195471184299941477171291398056165892454224710362899978594004295596496980999781162730326264908828527546057519523462631880759733926884779781290961248147835482731836925494413403738915910051163291598349925795300588459969562062156378647861094678354121094587213411216753069259702032237105345021896869475338274503210085200050550157629229601758857465777579139911921783234951169767998235947951897352747791623926722726374454801758120860389241391825400127836268855609732364754485891576250339313857903296296859276183069494192784073073081989343718007832236179178371399812548497760425017738427901772862790413030643038049464640101417026991709709661819424979792490116055375331594735499743154350600432733675681643319210169974942815527814277442181132722752904350718906217146884501411159183896077375506998802492072323226546164377011373979278144657466393891316496524726183415537349112253298741689859989843068129089960290365449990586018876968272139041550715898178093858953063744266093650600335592362597709189917716880124830248017438629130870687842488241219499823938981975325672446485007966794041463035980534850318009130835734514565762221425314557828761053292698247337539321837949492388240808540990543767834204522935560311219700059975605822577112581231127299191516681931837999839740076394257034448544879962837459800800051786993068282885782974234780566150146040151512345153685494260751420004304992227740753896532215937307273566131237439523215405591230943658753466440769666527820544606790051096097264661035993881947125671997249699749696885001121120730002780430920391190223562318271441537668141589201716100758441655538933444129734453000831533301725811274378478680813873042753219528081976903901730411385625638473630503870532816741722104435630348341875569530424204064762430960980247905412222812709405357061229024931474548294897125031098788990357448380012378805375450495526046856017308059424784825100065997824566657290319910988548476304236553959566383474323367348284184393148468978759791730141774937892060306834358188738303651493905116190230839389883806311682126575968450422453013062898318404401374394490923870093243262156928845203646110994209764556418621485316478567706774045122641682139002624745096971887350256682146064160004617332042994508156233980454890888633092611051403557589379804116197359679276544403596885610468414394177249463749504875849478555506145306060120810780552175570667041765522592131614524048838210764993434794181080777589221229495639635586861031310928753382634924779173647182863866824762919959883479763798036367186163249841322209681209446747144867116270044308145633208099630380138758209704950642131626575596070301083081896098743092127180702766472464354241233793760113817001091181381182201111698838055640043002930391351174265856524747874025548899666881525194011499490570646332950022038758042501980677895383335045231104801107837132118989314714078059596211836356203418941795469215880372377272071677748155768433694611107849699583197463002133458906918721967982562788440931903101589269691491207048467302499196196184184394236425270385064815208629861769648157316024110514933768892993225131138308182513661841096505168094605595122620094185584457166929772364199339516696876103193179400659723203965970220259985814186046656755300199478500642290654175287711347385109792623127946444053527230811851292616417469439441403088577573986369239838915044311845726945593369096953761356358871920781254108003354036263069704015505950092267296598893209725751004936303924415376731110076828487341651606136956360458604625254202495029380757431955363959077921505804199564291893400983836823260731126589269883951586218378493300618178987423885087120115979328213645714058058279507685532987754319564000988620875157521417422954830661147562566966577720059786063150285686748828479239413629003796437377889860793691994756624590367734176682064292442959818718357485438400894477580683192426817657009876104504064871635484952594558007999905063367364052012323986133752683870598833487473089995454459303469290655881554095415618290544217411885303883025603221784402522609618999691277066801865142545293137986013787408714359766633444854902011209863191427775444406832950023943876711486359184029485215656041647361192564144826866922740919453307096854930049452764401458877843259047005954209307717112227264369506900583699453747770814825452583577879595707592596463788740704063156840660513323346983434554699589801930716932977751165013123642054076190607405217895375051378293807676266136881929768994619597316810623622712159545923555530641313191926453732479828134812746703863074424652943556025440452423818668190830600766215751879682720094662192838754880298860704989470668039245744001618222647260331861695757327685722669949516182727660604591459097586155461635615746188260872545853714826342985272553408552195932353870157 b6 = 1037555621759692733494572566377339441322093824872243382367828331204251267857714192941447733745835734159650096000648393011268787723518475619998824941935295009735845541756454027616920992628321614213481624466034895112607857586915112984015155726860520644761043623977661837174780347759157801769464783735956106231572381787226450218911137605512219163183394248245513185092785444825616410210314401493577048318019050691545019285597935121358466308814493940462031592607204462672972302154809301067831270842253291547104998883506920459431916810365004461255062732715166694611051949620640195693359879452111912187882750410572384782705799531958742718891230440801261425287988918908816955663926543272735519800171184534006172167962778739517730437708502347543609397078906453263777421653019344720121366229186696275859588722964571503854519879669932788596266965804740381947338071966839525211554241963189081605242907215360375373403884212807439807999207903796056199824850845200090258155096975781776091241652228183080954517586809756306826382248910285838094756182480606744850511676338648984789535144850800337533678094368669010638204568536422841587127471055452373837909814657208461985027562122860232721664872425299258067506946223210286753770479554770802907747242805285451998366063202657572965200512033163763424706588171584095250499655736965255263361449889626547416900875891550284881635470455378231184876983603415460351553038968741573432165560020116066503652492332172725235425268257552344002830053610691508872250205271041459380141603903400221154791604486599996959764884949483149634137981868237519595942163528370311738068651675490998983138409692796615852732235505695898491153833990683872048723837424956373363260334869132281913951867454075027701755133977052381918292810208292124086738255046213266707595214282920344974574434145065391300015081509792406791999513636738906537931813733466615201494136257450411464241457524755029526214389672597827989819260422855635630028039784513788671296548877067141739462828009435382291046349358384540195032566367274916249408145087295319993491222242727652912256706632154431777112818004122196177639398672323105723987099566260374352326433780544248388249883963999177141704078543878721176003329735522830061888866571030564994515539776705855188221204889474532823742058580417307242833417851517829684848032211016767001343733018217908951546000911323351061577364541259060418010284909256348955100908984675278279280107662513811094539775155857740863242172842251683411376094163082707896965026778088881279086546208115260881243125011425349697494289000462361178830844718113708592771151287315998367576650475034183574449736002003402939479490464580948878333874757836790294828476404556389549792037259278965000620336714912599325730303370385845276742068420685224295354038504760529576860651232248993214089171249316231180879688037974478003048846090170566403235829416766586278512186708322593725183798270035250829725135954457767160939219560420306161988610942644506340876022244826819645868471467112918464873436593274009201061424471586111287858634491259313998725911930894414710752175178249965329261922098274929345985089687839009490666182089141179676961140587024453493735812178627351948198902603841462779607981804715276629510151826475745158374867408876016769718578958026499027669207311829199276794701950035551621124081402657971420603647587689388021911322272206323556145209600859647144180403257403148642175656471561078540818078788853681791193927922107969991022063782102090024277954798810447497680763856841314990416790519192870893031350298062820172478334129329958820078601767264131684168174045046035707849041443765061232048546732109317025401973113144765053430069933891358183410603029418344832047819160618776997002212342076361674919044113594339925361382030854534891390702590921325807109256887132608811125828818353421324205377112669402325640982377839269639345601659225231951638302862732917736234511155996352011480043531337746068926426534511412432818319670631700769804396344407073834783021327052444764426249439773167687879456983223852929996586059336933794877633709726358832181760479109754555098091864705243711918269619403303049449954048182612190287534176375705848352920174422341914002041728673077884674833006248656754512332910860396650542968512527309243463388734976282442665922600468215830507733456516178616197015337220195022953551129068863975715186832675579416280244999229403812767621708406237950231050879393880947795022072333128959858558786824944181994553044881070975454322648101657549494582739938070495852694131697622193014074691170298452817363871442626306447388704967586411180378768754168267356543823612579899139427121778004315018178530901047271566596194171521143530978168364472663902429948905404173713368379021459459632626253108554789691242469675638733448303944212632246364621623769399636143208877627519612701099510478902595632089569963875855091270422970568038503865500312066346446242400238615794422670843233591409022276931936131121761223508101565109271113509679852098854375372830357354425429613195200132150112012708718736776316189217201761898673043187231147784245730045137525329365152780551204363117171599963471989313348322729378243037259789218373380577224869379245969046913757357558661337083910666575492530366144154785052656119544787841167470954899597526055781159635686242989053542915202883130189938777509450015827738772388875120591654137479875853117869506990826241538756640678472322083552263247511410859943974480578617021456051044351603445663138268600957576418825722370998612401320677506833590459104008671156437485927636412587077499502166779390412059575098310931004524619901941934080040002295731035029023564582171566761224606804501221255937337979255648184151448608878781733754500397077343780873006962195190968096721273709122005903857723725491515157166741356164131525318413069867176719272334126696866691000527905978291118159303553824434829173276246584126614642056120878009282981520775073211037431507049615378180603452074376814434115397118256565769902752856491686840646923442821202759889191295866101861692799460152611083351228910681457516005150543842796645219183459688210692016640575019675919432412429478954971428633528116183716302806649921336658131763464511903620096567907069718720449488132671679074531930537920225081760973318545780931071084008137854549797635253648397437334344955473681021477409062715574670137002185520984217319469886112825217132444367292708306016708087368344732905163569047451865198682971719755689020165142103295806511338979906642175759422624247265629651650405923400217303658203458199889734641935403092402437151743656458027952780655596786051667539447322355431884431598460786294732619813044464116123649881092312266108337273351136039862488887836773209412500957245145600463897584784658851538550623955078456377330187904692890011061180667142967921942611172898946230482820151126472069647731599165995250757667342705688268472013358290106238438589123518625450748825744427460551134384160858722703669443313244679228838727426070169984625697871356356989610546037944252166390041941808042538884367539912481271283677302172549605438558892474910934992085335679379993345539162079335312066321929801804889692360655412580182259993854020058413535136742834762921047091712564390462809243687783534099192275297764763409759214510686773821280723938555472103281707501328758424303495020049469473951157472393763645470851449447521265943848075361994549743277274301717480960695705628801333972558476213927550235289103209370202558721923564942079459578721520942038494527178390957866985581522052912205427206155302832890283462917368135083087629727916816410622979844510602502223891355740776187675333373773800494009053891135806362719409310482364806026024808854774727857977483553201888244101038600002209667111734451608139479975335346439667133466350080100214104646246256699575918319034379959669666782724071776903088650896860696291532166703400703368930366625250093538625742723771435906560263149345982698187726849117061221957599653467202463314036625210904298616246784702698918409943027324743802634017053202612755492681012640424406278593140419079465643432062415545667308073960680293591959138589220650247748849937242035177435861994731036426114726397540258267581290819795720909870008498105294310138666761883646037912188853268079508139509070386828960877062878037608059978761110459084184457527275858006440312597365321376812131198560186428090040079962181908723841826142116424014544362766518703522108741956395564300077917516723763306315052269790138782177080600284523217343907050105960393079653132207479633392621908508611256366189929787734112790542493521430419125084815734512970917154287454245426053797748218805907170945625795526835774514891715823865979479676258939182022806629118258650978088522399242842879928177494479961505662588704341500693890318002382044295165760920048728620116879252396265045716500339160039067818996614645691167729561771676837984300327734847961027083486998452243452718458761691716619069666411429558033167102450520500167929949653293566495684370871667951997435607858295292376546751330897671176992672201764918345882257021547719154607986603406868228231393198074536447290281323337163509447115883214035756298629235795925875428618290820018614288565443795916847108021850336718805018779673439000525629140845452449548455759142008625629309123765197790535638501061741498945479208323908335271660687288446195359329900369485811904829127330128980681532274481611995426946517126049797045724904779013883310704666402471958799125295482840762998579806846891957255298145297914239244007981390808082838719292166001152212767383217807207283692910756793822493134913087805855912207456373469710926991218941344957880201354555515286960093726224337867434198745579069254576924405373529309605188219657068787671888620653881820636864152507260776666326230482215662402260335610345212032879698504152346471476534420900321392528809139894852740096863368399020445823208431414133641756502838009140968185043019903589905489746931140356098870184884208113548164214239881023514077813389457649177671621342703436667741606779173413010644335155476519364139339065694160793347256914848130227259256246989356255734442870705989429709451680451239928993041205856911844183463504880818316928876171216709333518923389386559281754642074502711164716178974672352844985479955840071317225151914389778622069228380164617408505602561582397590242537031655110831374126845454071746030979900571086030869974136457331477575430035145751555410770696264623116138851741415648868878355088734670920714726909992977378640068855230675566271837162313159601169939167906050475423964392965961885782971971873899643247417866990929088945301374122804548706770822215319869301020772855691772229928849178776549352722203634685943663558142193659317950582892309286122207288601950196766124820754132364775653840245353927966648965823658117553501092698741205858157700429192969222291549024766577963896024434800937535287143003149805684700188012996179966199587434304050330771779299089168805157052735096155202496685368479278736763181059581666706963583857895660488322688427062180301940670654567617330221798472096677906338931389777324774775945125140290392832063767065261293789310075217969818624483104430301398815440554078137872801052385088197505497469317232891387032287970986336143001040830884061762735171068589266032586799597119792834897189613875603320437033403583078304388996978944655024819350790809139853358968592653026188075745167167828824849036983266955171315249523985134979287692249144194224055877539513538907021130488272170344787497299030279096021359359154471431729090882196127636434412858163899372223360088558313102239212950669176462631451988474268892874118621773707251473151303322785501729766758430269825539611220161010253379580307720857092090485279807476615205775204538194764660668812695109387665205252059055932434324587377798360528851702361021117224508499307546712066124691063577996711759728892859208348903354589549472417031903473431575106713599915100496617609715945613975367815765496276263505850321001732556772137748870283116066445735993641795602565343687081273052744318110462201564805809560756663777062725620303612670340266760109864631351045173866205191767843885255717745420545968360212086117720096593607871958446298599480961649716827281396227553455040814694770447469033649187700608678689314627260367415364306401091290517350071384977866566022101996855394997440737376627726915914433891784727751052758918198647704997382970719046676030229437172410897347335075048986310664914269735326550212402275823356079392827441286443170295035013473316457912999585150228344500332441189280646959163532466727184123057337693480323458351681207160932865081949452126690743647776431502049891144748587993891583126058330674081875971406663218738329089444668145517999677439943290731913175359455762434139158435619882924807775283945796063178033471860216850480842265118175919551981504984029925856996406397000288578034188294694778181129201086227331404418515523914551101999973766419313120436036718847816962199179227157959878527738793574454328653437631604924093098007980137796475532281052931570746538693608466643355968205694545411871144334310106572884368148785300308471716973603603280899494256975529388503610687069433360451776865274574967724189915886766304385942105990388559662700981591954450571694080582057702276802630350988504513552079421372575562074965969295292615283095178073768155060660103211578112060847248820901930906227061038320895574228769899730283707393781687224874336005936430785888530145593768998682524337539327391503177689643235968415460946641270099134864165453279326628163911096708982460760307094507774496511815828362656672674883216389676044425840464540604169992016092968202167026900617868069079909834629382791658250117651043207534948485492078750163435081163504473832415371145939785799010072856647446010052122184574325937121046893364007123603713619127579213375425601314016357778034568616974744904007969007215241139047077124193486856958701503709342549295066476655320342364301465107509446833787025279110962643002688884626673194663151911011122875481909527754830517223402486417972503697177542400328178129376562190806015552874913653324413548633793448061825142024514233312705138925166761242589997893271833342340183455660233285376082938288956295538805216352375698099903092618693191780944017400125901507545211891440290426175367230403003167955728257824054308885030786873701250025381460641720010872724572738730447589396383306254801283921721235172503970669224799908497446902453990820260220672940289685472737374242403280472993121543857040112033191214762920618008531818124543137081412849073264052505473156762132529779996053046213023049325570469972815905271549020429647946352061450090847779076443851345902038636163826037512127622714622171204212519641075807476913686437972645979178351472727666201457052960311802393726839124030695936741330754272208990146866435935228231095788825848630483686049879568441011063984868557558325789563721235963227597943475472875977514124864294197005194874488655590293872325771075972085432681181552266331919227756737989747238556265047389070590089172980456952813109423452835955377641114946249914970888697951176345327945684132901687668321403417408474389974779494700517462682612508010187648502118058902816107481535606984255510799177885815463957781442805221674276872506178085852946023415083715447073709821376687215474471971930038393549132505933269469837966001145004581452681304670738943421360700792688351310951673410328890353383827093392716903255145295374369209382862847703097070288319816599745744312497097726234951634981985674036625548937937952569491912470135383986265780997202920264805974872528929228477036442801310143159430108872015532456439904103556200853740911300888493686390958934261891585369950631580456484207580120769800458800993559550289491100990770228093440103283130142557595951854191233371467340915038657759044089048550943540399847755012522923585830275815947287114803157722396597926059062121418482656334886373617776787259469441912110022603737135928918203284698002101913874977004797817073372912495447838741008022640073101925076681217500450577659761963395017019222242152981734546434979568201623598648345261345668812361513083805172170452212114545764833040734201331387944483622004936578972230594996241529063158680649226480625349529227322219471427964678482482433042518692037150225827302719401173978594891179602025159220940685063691246862709228783121066907699752625407512684815364311706837846186775995296748068303328652078349006008017818115018468305928059009865830955051361613484318089692034883719934032509346312251818496527652229806772955208022897172808319239992361055792266288251898986586198687814192323197972169419448741114853040380205589073657396123397883728470625411632464914100407130938843961990851669037209244840111023775828128376584307048002919317229329964279489379468786702885507181487899892792492100873320022746654429497340299332687179220548819638659529821998860795320605122059279587000379364882822785978030794661109728538271664109938283513216029366777607660992196336544723172800315788580494209269640797152059437629684100607406199560194625854774292539784142131441383101438281761024055978213309735454897092894349587988859616872254687422956464208016852409423879552648398224598731867428720137400746749285885311802237773629383035331505670421919067273664633650053173996382864069257305901058833268181810347013995601815363449723620588483614233990766534791450096542817632492406709043875949698206061931870468388963237973499860993319582059627883864746970249347620394174044398705753393515264438129986391183816293579031099822778120836410905583834720113224319833119698579434406134888792973619378722846185000443761822302098946921493339107846269289346130397023894414046040832874368861446379272144289043494439783235674274830879772607242548564460645566247837004339744448396860932196763542156850048110383858324162608958855993215441072057326732776096224593459395031579565863782961584913564897960533914972870399235823774985370715408463616408413676044374673077430694950843780321064780419577253785011988883829936900153972470646461540453744837678171055758995383628233201948239996704236126166940618243989618946306472825616656684719874970030397068961776763390037135928281408651153918997770315330322323401173245709138371069272429800254124865510890913007448339769023274584583453921451931575520152636887934011226333512578210150269429568021428070745604163297318078167965953887873144770437545792457153652561114484264681434229251060972676124905286040746820424098167552836629694424457006574724915503047800467941014708759336755160793465715823709602840126721703387829920748713274846863201050050410618805314186543621298858289555047577314859407469871794918427642221306903068598369458889285210229650783525803397479838321321969563573850132804339124501901607663398660936356043808725563650252799719243915814247740217855493616721173794558517199539643195442827290417831779112792204265829973628249334769407110212708833134951005831935584580905150216210237182705667450016424177284120052140201193913807140078325299104092734258798264680951074402266024026973847 c6 = 645601118469790948630729956321219895352694422191394386588938473039775139132276660451628427634316832389022430787055722083526797037343437355554391389576783856903559000061727526222622123501619470453816914614267346336241333489886894382049649935840566877563282225147293854107715410788266368781538226469959115385011358979557008590556974635503929360729796016878997559750315538931747996644733740520236441999178043787398708406096092846163404245694147839831223196710312030272355703884888588777317764169089878927913057039944272122350339200881272742343612538514072349876614145267985319449532871276671532668866094264222839890259041565887934381508355261262057492111981130016108476658387157317326443835233510881851658397214830974497505500011562286178914452318877476296331055293805899551148753460541992734525972563432450958124306373280014688402922612923751083731309258529135075428629816820843438482009059487595656595347642328602227457588124059201652298668445128847089738708577472211454908954571623567484680314886240127025555616553633580217790080402856373059383912504598877884968606574359243650388530396128991235507709081285040310877571982237870675331890198427243914708350019981980556648048849895528507791659059564577656422964094525721003851196279735855535097239384261782147449773797179664795307238495571569910879417089426500471041421576605011727835033640489034282185943672978965478681452260812044558778108291086765741618427241288638532077215768151361429264487417869155306341120214452624630717181803817098003839998104743789244323183476114542203429022815669322708017590479605570632674885784497282472699385019349717266045894123104238568657239096113308946347755231178810812662701660050508962908517340977882480992951995309167665086055317219399768651457577204206824444634043493209154756820382609990338937175586591177327587186034433561170946481539854950855432353632019645299934022070471388067022773597369212008321036981581196250797117048081249861513543839951686862129018631793474759962540349388365929352115595598219100629933116617938652882980274318836614029600812033868472788046006760567544504308402200447998170694542135483850171475263638811010166772791316263527373112063876280015192410001214257609423990820778914556868362899455164494059877977521761732956971443791260357607822421786385810174460087401526109338419080504656812872812923814926936005802014523449137558771533529003646476395613839962029285460133570423939295984655703137408873485266981318915277932679783398948321325106057007414554849077211726457169248753240551800221697066007422477984397556973904295508204830205621267630603036059542885001351082657840885976604239546530720511717699185901156955042736805611410740363601148706695794457074769673719542525447020723998489215752582307124425636129869020860933154357253388616455557505845509262778937289355166078592037100769137175546261344209579446837593844716723336469388535396297812800217574424110979752075343931990579091967628802131204459621848861408418711558434323013468005124550354501737364228552395476812307260856852836884868669132560467791457481265321610492501914335348063947306775402172061546238063800514163048204525137727993161163231827413864250546129085867647621973804676106923579635846158060034871746062959809583885907003592556688674488928460874401311412513958486365524170003435737959921662178864542117518672448073811914993267796605510790410932650790580068225205878115536265585795219485669540104852442982783842359359488844871915782115787296888871578701028110029494874179893909305501905527012082655561205558147561263134041497012309950614657663461153529192145375371950924794200211956739821878583636873560532629733609292313555052058045103673497237335697245462774932830486182464950796175558105988598023168429665397165091554644359283731669593442857133371890164218118554230158766756526538619074347241050760670745955852183581004925775912864470406774275685572839235922167017424687256193728564597241985444206387026112208234546743289312818858932309046905454420917185610695858770937027514540401574049956014688061994028543793040012621695539737075448460630343803262973629035651417518700320393352408206518849631885902572202118055547117198287191430982412192261219639762502804353130125502332296724462594566443178112600684831488231459353044020269138558538406547748328427024184943106982488665984996914582402258180806339911553523101257324190704600129349118250396050070598609963817660318908443080786117545194918598003855308356946297188203435953722548540336924053256750492816273129572930543161977490375019218571936810610235696011968764818068633978703141150361494233439836173150688899634710576702216688806899745691814279960518743837772105241104294163482254890110724288662578789415314712323712254877382674432692608925459413456163754227520445562100247052020484778042910188338132208125743228853590293469144861110308455813754422391133495460513228355647420375090933849441963389007278262341863579508873788145904602247624625075463790165050679429837278790561360338211725254597303258908541380845198895673477224524078724638093815581710306513171033493974577199809903201339897230002419246104669547590301240829951189508540303383466857651219416413185922935723937189029513561409673683003242619922438258248928865512847789135295761687702847877679087881035818932476033192966917276042413371723044818751130065284669234914975710234984689492111506525947682907704654732267828841246206714540472981345569697452814929679383591008055646243595762251197821734685920318465581168244129759481137330699572123217741050698495697871145771787059461589787152758852593925341664727457475400627425841868665388628213286427100608208999023286753257790598302391910761521849512034212460483044595387339387284381422707674888896249716319609623758283859510406086464617444334233704418600505058517168606239456986630688637665224406125572827120597053973476778414416016584369725011342351696136450247697238949354897397468964683967862888887594272701923599995276584716442505716729723441011693490511891600825266019556736567349212182220757226998566639444325358163225182874698751342692484131579509437213490030712231275209085201773774919768910166228984638564293807815674747730722094561345780323448878773665625968157388833932371298925051584970267468693519792669357069483415609835928709941514921966389121373485181039164653945753824582359623960096613847085249550740304720888126536914844529726172434456118740589679223313950414563315595853811171550615238547779277902248783774494497566632205669638538659768962311446141056018608360966352817497028870320356776954038467374611686794628143498694984851496148925613076991958823769027915730616289931515353741551877058214051766260809966087189838388015686981353882415702978894603197881279546813729392415255589397055707624104584712277178420049400228744000316646026356685092082557815344352716330478879585382508739209153006193806812934588428720978296945313600598275300690785535311206818031087497192455811848510901910804682406939073920288532902727446455235836040611516641551479721744055281270295688513241721647716901415531362638380595953062934964691709047300423444500128469054841243633903187673806226316548549767414861821399536098245191260988132467811646747174952577606289531500010354998485051875163828393315939155256832481763880644575730942080304301780027377576541848322907087224502060474517846066227257719272087294893326045201015806351597872369252071304355769053788480137450394904551775914127874138581650301211449006192518167460061226560502952607276970439332969867393495660016426361876881515751660965376409719708017686337716620375736604269710836444899791025036745754188828831732912851071113262136924077776940681738595992687912715058732224613676400515664249904198805487703764920443921784639908502511244420824370464358407085503082753055737753538801139623377781857717005087693412415482226493935094066967726727141460447093551717980131697610909825360627404295665961619765292357443870960273479131787358905927664503999637772744497970694535287888873038459687407696015446218371282661280933998344726756920291590396634049220871492162006449593256088102173945928955050965303078015322182215749525972783759177035407091263546679522069403048545968518907483169066306415780663863744389738854933468819726588292857424594846570080545201267337705809846917704861265426180322141049717599274361702016111736594631178223570177688504429249601969606551686400210534723621690759473980326738260824400164753771843077067951665571535019678173957880774955223175109906379883656627259560685954558295429174996816309834320839027794138274820631819506200063494078184833165505417458581255603059258052986251575708297292090289129186008434590361418423944478431796126398346058318371307838945974877659560144927497850626181909996658881995594408503187785104977355952834688624349909604842293517445676450584904251259158938817577137858411431561569105043285302559080505684741743329639064914824854110064212613999233518794638475401710747864902312272463818161589762207736237243622693886937974107187882671770431324347724867643738069431466408039653688568274661254713508370103986698522756772075058527098545432846642949304227299442620327984022022755258388208066155711491397236106132479555223612810679363219367395153957063351055800876533392222807069774920170758755786723921823093078344716998102690851750086842115848230693604091329350181242468622413836989181052745466356956021723808624397962304350854950240028820715492559697476473788941108229687542958177507078679940334249275477255100757543778319564360186103246471580641844791115944234726297610437777200182612724040677943992988176054512096400095353489286540629376848020334594432519576501405450785511559565650083159482292731650157992183092195669257753062529095601121475996200489110131736271291987288021723943865177979681668696388431928860418575619720685476804133597644273339332014879619165857211385311418605563980520429521034855741152758188103127271339831749700846376374903553735226124162845485987008679669145163963771187404278644321206648830439483970724690907026816013974168813250225460760433422217947217258900163322748573978108276051670563601116815083881267833361926538400203173737798098138191653109815657901480001184621834961256214058907681094602111709910372633547823678489976974103088759221561116405652416213490842466389916598778925551051739504281671320592781681527605226784518655730544551247645123163003591796591086451012206128201766316440945145285964160829046562295182581481885239194755350925597994578136061398212065193171609173077274720925056560369477508545765455215109735917038681600625046440102308988155104826251857442541319954718534531772243899754723795668658083748499497409130485508875751431300073974233067172374093100085330376654364543902031788406992195003064561263777821786695159261843707338514824966599546991149728374698313178929684856369634238172375601913767411069861157505287217545003509926352462265128380140044308626404070468453729976918468697773400354312841752391908230338582564632132600355896379599131470429307867123286395294531937566086794415052830881667932902511650564229136470359561451804155352330855004674003091104848391847763675326270260057669426361426111358492414558802691332567504855203201367955544708499807368333073398965766538703894373030854165421691662967005212593779026827699911004630711604654883301030783022154165059119577061432055514054600754591886289022835790376410712141544174405919180099807549545680448097150389222813305615296811043357528924183054380963807486965550631411840562620966281314892412592208052994091267987814480210505813641606871681378536338813720738516107005570435197394034278587557572475037973654429507601294588266200966704511299747415307781823428041564553608866556281171397548850895042740266078402105608375820275383005420065026364120571777254294716450791611524762804173264071449938523049764447138840209821268883176378417912278618838901415976351089822486689702531976951953566353128807024429481296827461797589136034377566798167262157462537435558263433645010480261292176457708074264329303982626690206866618593452275739663372866333632868056425109892603221867861551620957479500319330130827731172294752753723182798714571866626030070788059502322852089533314728385413398097027372364115017558360401015702718251649948970424188560828707394976880605295046002239955626059489681659251235622374452038213525070224051683409582620950831358453748815460654496704325480476460074248922918631523432888128708118857591356716153096696501144220892744401858502689288397188905498636512415361704377165638331536356677107084016338561173227859441142951498101227799202453573780914077221354294235109776555425660652458885455789502332530622298765186952244298793167157740570007350911330006408263839700954342877735890250850528070374629833360487595933336795280992147870009024409335896506154991040993182004976588324211957414221284657862810315744554549947082868096584632971234443680981097420672462737650751337159054930720147226087866494183741303911261589143912577193536314772905322155858579993123036904225250952389675066732857326996913689307927386232278336309335585175669164490033243593777410981416166199899911751584341988277932989168941916930593994085102311986630294491290068012117870135388711613932130611122197889569198168458509708653421555382271785861824976956066296761213085802791242048836012238451714312800457706220348400466317765773350954385049828953134949469953510162998368351309345435066969119469812900107349962939628565341578495604392893649257086792308760730118650408834673620752093316915788357019153225232944243497773548127899480702151176292708663672855632357339382828588296958970519463795503770376242983333546501269565816189626753186947958341087713223700402416153969136738321626196987933727090995256727000713513412263248634981072081937567568228887550309570031004792701983944211579489450711906932999760692816350600217410871415782198002708016158035793341419420964628906229152116233789789409160080307785439011540520811911244107042010271324196991496415452690729042160393589583283680200515459080686245132035026317580179360917953206524541789343589028036249619777887708467701738760196322416148843461809336026707128017653248123493855156873730971149868861044201038038487712565657908484490439326944213922879279627059375050510181087719602716659970568206547108687795167310666445026612436398192587819122124268372987780749567804072725273273930625243631753475886227250814401768291706915937991436950583094931255312380668363893211113849967862818408882733349785655030227648472111744165804141883255559515478733498991994205972985706808087693923005573208191378153969019672742342513806782843679543258298589132852522053658029091005135963409977367839299610734279757062108653856315461194366398120201791566231300688316377427900804346639379777237262681414809843905388221049553021773912730839759238894330392055581846130986747115600697499812087428603916535800801069031777638685876309792703650516590106962305510676888055722932246122601754918802710005091447637006236522198497486064159274544381826802489062682144082214285408450224197909464540878301410741639660166560921855361881902718063921684164260612865065007949563394006177911680877803126051752674417867946341476521808506936778820475561533145742430142182948383142148809561719364982455450339935578040885189030206843890237325393686595703245291490941624245108016429224420418942905117388695460286102750569314808352778143726275012032558753080082103928498779019607734049885832211526771564331200997635030608521125253571868894413039046839965173455918277249825823362294408298956192439622566792429263953228822362603622188120875612710926393183998152111613081774840204983556626445390443535860729532574237640113390496506521115847504092156232686196131291127735838842411568352848541351822187186953209631792581090474703813753179782255844900428523885664114425289063820101319666901559671891348240355010381126926218976547356730888958426319348066146152375358815078383837777514387953063973929792084728222520196133737241393043313418839323377633020837615055595077162657285569241247391455035338700032721319216898605738401712189752903956871093276301577525366695336986561493373807496152101890540965627766116973893413139997918589888902897241597552258092067549744047968060023955664382276277592488279245444616580294923971383920059630554890849171231307151496544815470565172454883399144151474468952713715908362059807426327517960435527158583363642363709067051209856329593903054351806298482270839882174211916050612029052823105794091226891369099887037912950756330726600825811468057564254356412970086414654861369189254282257306623892059785896207879120618641441477187622698357545267260525852462557232690752970808664732001771448097675179639745734333986967659030797698426599944316881808831985027145643323351188223319819467853849640503140047474851314766265031026667548902643744352471308165872742563322625741676657156863259042044022956956179321966970032977614469761959623579517398542953456106698197899979168301851306560874859075713767626606559395749201867099817987952620708021431540506033500904392803574515012264242636768543363071848351247368416477405385127005528094924236841295857707588371622244872943251531813316509682606639490852479713737410360621879502659622581363963483701156847044984852326228558373649474658322348223281486557667699373212873031439062399724945449895446911000041723395661165791145700515977943766734185804515176017273720494534569109286984705171827342660112861582897823730284603341869907087611428311948713780051141482138974072181424589747479484561526619054884793840620036689782391873050708426142534774422688065473769035679217391412187925573988381065868469727841854436123967882382631209558110260988693928707419925061088084737804398675745472566799664935757090131711652700551998908342203236393179977344837378099068923714740574810735171162463924106151936230046477540192526221047553374053609941004745621409197881314583408388807964499610189262051098195126644504517360081151422504931558275462253996422235047631998176878460760809531265767146422694567752521185713863090411687232076933057693708735121623323374257537505214320392698510446679466223152457357940200069036905611715035438756063818600361074467657161474188775509169275185653585935505586780845872919142465042044596115271265018495665660206026626116334026257579174706580823913584134036222086465940700822209349056208137872044494244417212146484686625899148774399420003518357925317564545790221065848030687004808824348817728292186719782397247597279714561836197204855416033270115251651854726001665779261634495208986218369777163523039301933609928187847509521099206335567495627831030347929588307583082000373619616153343933998028758628556014466053104692751705125635839762315689168451597708676030092850982646054108963637244369419890431200732540784079692668611726410429033672466115505236362645074312909055926706009676382740287473589811570064551496797491881144822622035396651584405016320704532093810052149958215301702794656830159875080512580443497873214693209213411584560514732535945136900034614471532057592629516507486996358402209988884440806143293983550931164508515367060960020219886734438479282023 r = remote('8.140.152.226' ,27359 ) my = [[a1,b1,c1],[a2,b2,c2],[a3,b3,c3],[a4,b4,c4],[a5,b5,c5],[a6,b6,c6]] r.recvline() for i in range (6 ): r.recvline() r.sendlineafter('[>] x: ' ,str (my[i][0 ])) r.sendlineafter('[>] y: ' ,str (my[i][1 ])) r.sendlineafter('[>] z: ' ,str (my[i][2 ])) print (r.recvline()) print (r.recvall())
因为赛后又做了一遍,nc端口跑不了,只能手动判定。我就将最初的数据又带入进去,都是“You are right!”