Factoring Pete's Number
For compactness, all large numbers scroll horizontally. If you'd like them to break and scroll vertically to better appreciate their size, Click her to have them break across lines.
Pete's Number was first defined in 1997, but it wasn't until almost a quarter century later, on August 31, 2021, that I started digging a little more into some of its properties. And thus we now know that Pete's Number is not prime. It's known factors (and their discovery dates) so far are:
- 19 (August 31, 2021)
- 53 (August 31, 2021)
- 25715687 (August 31, 2021)
- 190528216559 (August 31, 2021)
The first three were discovered using Trial Division, while the fourth was found using Pollard's rho algorithm.
Since the next factor must be larger than 190528216559, Pollard's rho algorithm is probably not the optimal algorithm beyond this point, but it was an easy next step after trial division, since I found GMP-based demo code for it that was easy to get started with quickly.
I am not optimistic about completing the factorization of Pete's Number anytime soon, since it requires 249428 bits to represent it, and current records are in the range of 1200 bit numbers.
I am going to refer to factors of Pete's Number as PnF, so for example P1F = 19 and P2F = 53. Then I am going to define PnQ as Pete's Number divided by all factors 1 through n (or alternatively PnQ = P(n-1)Q / PnF). So for example P2Q is PN / (19*53). So the quotients so far are:
P1Q = 943703735341554929163430907967623685730612234991604961108825158843020331028142923288022553259710000292111856671480098285808936914173746230034938389049389956842907508588822739461658876404137648725487090925550015532765923598640355575246495568950707163225889471575346565003743819932995419254525340870229214074158399603116195942313731813695976048927240614384990791987739641763694569789980169815896234022269586413938134858042757505684287255317954611759300299422269058948291074998361606780339450692762863516826722478898044691178461327667346653182427806731537589962510898666017352110441122206459893941229261146349092109196544509983936132035044385563871334835513764985507073018612953832980893604163441377562167961437641289551956910528540924649754403036460483027583748830481230767386352149393818389509892429122428237674420979923278781080402217103386707761058190785514808533612313667126885898053496565857136163245679717520201192104688442536673890289161233341191594472889831959592482486031223604686375396393099946955475554059041554212546765531291366008097508301971902190349002285022257224282159687715308596590332454404486555543438601893359622498846826663321894927922963480017068601563712585679939078324319523126267235936986133292403562283888441005655605514622659762122310138926935246584826552282693616248721099566639556260768094096156434286041870269172884632809413516852532656293504332216207264941048044092924016162098402770995451305318662460727136246587039465871820105797443200363282294708423816377160269061808973836056678199619272872000094549828170324115227996862296559564817430160304479215925687964487185388751717583403383386386433214964050427605070950194597188454636364679129869944573247678283308685312478291755714122475932304903930594953611497062307101526018541582427058174698236234726161841777299471495953159150559288698459436221454101528899508191365797328696841328149525660949779603236501731245297956487791853144421452046784005576817080952326446290173539677152273479189683568588445263667703614207462568320746057340468083301047341650285525985032909253657602194257312821223197333462810247828985179836102392333858785907582824662123235008761728875683705664361677964994470992494403392240006401412216208978041284263815905203140226941124942675305486548933508752496586623701938205569751257630591085337011759269623875149395652883151620188062925878980255696180892472589681864458431376493934906480439775550066056637683335335426576797002963862517580758462548667890761990393428590508177399974547286652173768925737526550305028886119766519446547696874912892047439048886530545402782083019754647405554922922586324045386810245786853022649113669227966825024639147393104696947110366502329046715786729235990264815555323336276093246904559712270599971074166311273941798889205075587385459503960034816635124015433232106922481878281385149085615999423198092995501100601601947107817876374080689562343638303622980830021637878690642751545950094689896764510621414398204479751031702262475767609733486601290625035448529618484177267838328841274390541080697123471921352187868999511433988507002766381551486112154340868185761005059122382837363235901082515188630528519003193818536313706196662058644496969778149963797760213130437477988802891881765960987805260747506749123936260792428444314353037491624257281569480234540233515472505689332062208767695633676062369901459654917622385792158463939810123009142013868749829758494797611500688866282526037889450497841294735302556446351769666425039734962920537375299556782783937081731893479927047639889457518877014616618243766475082009472491624918237862105869360072787350372774494807434244903561107200381725945445035754352323680117839824852195592397482192876653337268226426299732275656993814401697100993511971311327846092118707869882516611556514958301785685828898756510524694836081698338110981579253067508213968375978181239653440116992320289843860228041152771042168270146754600290402295781280741970753164110338926020362542878672034003612514996449222325080251807612688971435730231482242599454332374676464773520362961050863836851956374595543590633006268612833709620992019459647155795859990675034418024993794873590268447189915907336163989969483695688362661428810065017783445010226977655005627196518128133489824169735855373301796960530990582559910097263174174294444271227617139888481485481397388330656244115526936601534945269190106090236888530871056805732235418029536451427462317977044918475127593190095911208009815150007146100991230098418326405261032121726121335957697051699895673121941749082283974366218707446121483502611344957210667555615308206834345893671645719760891812779027388786715644431428342938418243595726504402814941359959098159168398357480686059305552992145423277688598330234573748402043535714075871309881811810352372496784795851673221224903588662503292317039443695390225088794634903201030748494731813605441683692116118454068631021886411182839435869813979583640332025432784912731527480465033420628799239002072375073421005255595968380357631803004035535234762156177525339764584313210862980990970604214208447135452904923458744643321928662598625930625267246954235303784280250234402124084954619332834681008103607497129132662546860753978070538194527903180269517754833110063380265818246700228574084382700320981209430311775491950159038549241533066605975103096665298909496402646862661531665877812005764479668592226715460014472147300380008475532121641269090944429418090283191703616449572821376893457552801263816478060908127764515103181811896873922901038920904597083570940516316543744723299148567482116146762363080266085538359739763055647223565019712345263074784827673285470496627288833494338058077051059713060256534854604680445749467621792416419397218240257868963390554731956214055675407856821649995235283294481138569167590037614068470886017835118793549899425015834037160336351334431875858178544740903443751934115435851599244054725449964887016970280110896346768546004943678131305740800181736415000013541343071068417322218436319104182773659538682306066788832939656579762024320100683059124229004900042962846027631787684114708049130242526216517582114022324786944018525620904722101110070353799820681071067450643614234839044098598886279744347608841663663020287501354440541533955944137092246253439391232605726006083439758273715908214030033732353894848502110247012519010748740789464174757567197980560094369698135427858764473348782412689871510342459515902486683957188568923846344031070117659546829519525930641556519050010186726834843355873538370153375598600562174127036913363022531053963147705046083708706918768833188962160581475778173323227425165902276509228363101983203679208726456422797546558967723019478209683441024255261126305499127984364026803780500291534649396846151591442802598752002098560138980306656228342730730612212450705510575222483702280831650791743817311205643742294737130068633934879473602471448422578186892914606132842002050078664244497215077069977303516157515875715016511280480821899675642280708581494357511646580100134289174237160164642292840761027340469183591096657827480810094239332059442282376398075500755789819420032629808343946400046784473701591704269961221589870250836685297058255473723324752076449500122617009889030985408150322939212246645992034345938388627566852720174388506873689616265121249843470775448606604580017639827295687774799301120182662597310991688382021781754009918608266814148947175267963201664582357435009896179942276024637964538308598260676029350229761292402288879087151767452566522899249220027774364558562475072924928799561152755772890355692311126843981102937199078418015989240582297605937319355912833575502489210769983734397500165887289837303808628943344062554165777605825591318710411312122563546112088887901743324873983915518978896353382749302718894796343621679146294440576472119980142084471100918980264986056369563916148449859860418352583951992928435951916104140137865114786749246420455772010971563251999021693459687226997073630038148180608226488122656701849137554095132479635562385859982160938141991631854196239409184252551120161328976066039180326792582209286345404277559453198580850978464162057449431069093381039777305246504293120627351385755517154324470837825604974398469444405361881099984384869358555625265765684042823037926572404535111041344431421271006785321451413135996030019590658397259998360127677058282961897800362064665199546077823769102843609058707475706054939377837047597008758750323335957158162241588442641228713848678265794980567092792717129705105099607869166383168926599237302151969179771971220894846792236662958631516888342810514616031129044715537027766435283954358343131309166123617846831515720742076674217108236977719059159712445942467022708989782304929454626603437913189737451831228285053452620289961120692817829361186382970286683313732019751997226369344575111429182729794645440608536863454397406417797985465812125788201222811712140608188059993790400989130813338828294713789942041866671905035723712076900405610077034988159907951796123437278784997545754117413542492975407567907096950247274751481041460316178487875533762708582863597974200426053055919136165815057353455058413983777418858864676219923203927137932279021383678639551853729480763971495916835186138396058382369290199831069249442652352035235041826175652881069702412801997060679287565804256835583262634269152833363224587731691092872635976954020039994096567724274767882488435069381762570212139730104362371684606120268602395439182659240799171856281313815010672540531256757786552772644516200584289215455129540112073598990886180577091444916234371334802775081806520729812284818594910552014335508757486178817981025592565487268235696144791300725115246627993727704992006129822445520567749795706231767289438596186057530258779797648593853219427777315201196858279770382384412258546918646758488125343446298268321915060726940798116377399205339515552761944613252472824853806580590767969005347230456904206669620630345035328047347018498036376935317918177019891535085477899994176160226706722616751529654606073769729698216898861288867912733488864017105515472139778084880827750312661440492515445720485464973846603510808911636468481234516576763928847378411872506481820895383406462328469077136628806723716659338886270411361358419019151104811252213425246097690874186930808568368965048766162236500541976848253478926706380713514009718332382567855474931676934458658610686637979103080710430321802994169903132128013438455854694898852101674974746626289093736834762176947152643383381879762259262200516947657739657379779893954102679082661991628730600604466811580428046159566667837310703169287731517412393581694048481269607406057593470853831908597125728821519782552230631391312118235610937943818787974306115678984788696961611115180168159716444208413150045004186971266650382324131467101087587315807563513948130182703740615984001566518346579953851921192330787933200229969642191442504775641279381551457439772518750442457301451174277819326956233369034691018731769171206007439920400772097852454230940716965926445161855321397258502906720063295128178289376521963701748544406393972918448291233027306111925509384398668673623175975129925016364423799094167286700226321641168190779855185725635839169660828529865326688084520894493267470491867177633274987009581430660454020848071714659751299507090285758172007513000752804755334883126574530668643526543981243766424458029023151304395671957112259660517084546808919802942947753215640122904664917334733980587690212740297380042992411321558422458364614379771679096638997520766447990173828611377541301637280856985615748677432083071398394083630322433636030286117765750985066579079342034842850020957359905787724055616257161717308990744215634725350808005807795476150397826092362491457168361675719913612030190601336840234041253530590347175295964832911162500180630010440985493816242008342497353726318139492852394420535141797121999886370687551572457989181094231602146349948211946497264976113141752705451320232042218884438873418812769252527912404308627809718183283909135658118324448516972621689149186648465059558157451019538372355771708274488213785883918431274278216737516697611522747000772124320680633717632573967738106576474743073764460314248287653014209928371442022580588428495162278869153454037001602977922824373031477103593878496043482900364222175914738940719625366369990923592951891523946484816926283739516408529624724034274969541139189406308263940947400352064666884325045984486113819017301378359282227464453967660478181910066748410163264747754918093911186881300835115616245881878644912503133547770718345384361641462224987274303417555198969002117786678449413171631817530326723382758110518138136313696322445676566679251857423359917629787023135769345185763063728523214095029970651857937046153757384025802355197163184743355306787004045611836689630280263546782564902450243545063502027586061491441645149285432467672277893475230936919810664934940875190540878947190306934410898755323301217639749015093490803811930194804664689440602283343998486434708414332793384089361600977145732325276741521584156299102845576135861080244209974894754507924988155896903157452678699304851661321689876398250616517147857867806692803540413606475647203993018004809181298063592364979692573735026917958905702909083986011351918892065760334095847370761337842148242177593796314501809724250378318463094396958895985136169362970508397576791763096555700785057226891093624806079210466234076445918807833976878494249278203309309514045868642523043823819600379535929267083778581124197325053512191525889574492318978737661948441836992910538127657416790792359068937433352777742510218881117612769885836090391158334329197400502042792628302516019743936526992723415033922240690120412745166141085165748443798277247464352021700625756186664386237902404747985058372858399139881394414971713796288654621178161645306652737555176681713045715648693440636649133771995648540702854731399447711250982040368739827601646095960644317053077345571235044141513692972081560090703000765734292397781251256131001704506221455197308460272773993103125697999795056937008328516592105097858608898379997489640472299527674698349727427337805594667500600136471875569972583685086049284194316732519623172973920842308281719567853579933138185875865104790579958882502476929333836888973426376991966104859433178015888566327360209109394398356520154677232241865608979730030750383871172143733683180765119540702292458714449295180177609823732290319275469961246085605223941904690448246016287413724959813694022126240840587911483622629766454062297444331349446181154765571050891789849971509859344635826106098940263093490212995768967036761922626994405658864271937291622146815533155087281252734336412776187355361848524254335610580013606691359509099611190313419931196374955454766395233638255880985701072951549248899794635403414448400884023636562967544990388109068953639168654509865418125152146643495243536644550662973244977150106645142214040794083140646382389455821932976005273674728567250054741114804894579000962996791542316380368161225875076824483451333408161598725536510902312493918732100975548289671679475685100314585893847824021774487374008453878276596910428127175008404802387098360229077232713371136419746670862796202162754568892176551543692316021581336234591703730808185196431127706229652781993093909325544853668796619442564699578287274571286332774557998708725455998641037922327745536377429600830387719826539588143112697707227228681617055275388694099902585974768930899837548711625936169655428171745732119881265504401425926563773983271201477259765083702956916590125346137538732091865736150138888345491936101726441549406069089319247002738825389914356624691290434479757639239377284313136071323382590593408904530887137827378411517499838375488026453542616998261003164895151103613237834800841641068160844430404753866922894329664122017818414524276420839477464780638927170468593136340299322411953737927465307334563383271096812513032770558429462613133870708566705562416383294775218588035301805571488725513407094992771054964483337641722056042000916174817514286902124900973750455131235163295839381868090425557287644758537870471799098485679674281561984063665129712814519331802096781119057805666964648907556531323681586743285012960761280384807943067491326713814710434216033762574499109206465688998715087450382441532572179121475718198089109538929859290246197493680884195634878896928496961700607200866815367665755427080003926861465182533096853194135018474850950607639590010879762811253998571174255235252180945316209880034190957689841700928883056222081208299151489973071840909117471422714147701088635728874103063699854494621313709831621061780207196944933587599755412996336994829933806217812908961942496539388616964412507410651607499325053241719500980212401972606121359204360233894976025187765193169269381771118123917768753225693405912463500220400624023806111663963245957075125456004650480007727609915831761115865036625758369415689613631275546530101760287096120887669777957987330824114080421680878903849797506503709392225800156291147633657236202415888366968843309164605809998051997938159976418116013812572249503119661278026112878366106806221727337396633888289954196115120154047729188494326316969976638419759919654789639949297477213645569915573899703410625698101207667251885783074297736583955374401929586571133798153217096172620025109788111673478343779273096363571994295999653048863688760680607276714290938985964926742328703155261060676478332844678219664902611655896722557279036523159319105047678281657076019906401120297741500594022542599621344679020322600394068014300045891905908582958621409705556457878372094861454215709099297163205223068045704242049253963037216462449153498854607786533200117905252127445219515941822574115236122352193903888343315967718900888064061629086639213506890378530967439032176116943016409195675599214016501351797347692272345259842827000274853941198926649383197067676155265327289091174391193394170902803543378427884030277137115151498090260155210661026871651000310654999885710745187494910757506876171171345314288313193312364732460484284172809579178312374806048679142306955847588826193689424147921860631572878045516383961712247641884908619039226395161416176472529608967716654884959521618834013352857462287352273817512705954539955643816735864051576571683994894396144570148322991963666472403972824802331019683441647262249772195294526574297401418956903778385361969088383160407257736999368683925937044091883422798492921322529711350428049758212249582804513982599742931792168027665759775113384995345896838507651243483694603645431775488303111674273285978164786741067889451126423081567352705778488255766370100448025178270678692900499461793127509302556149153591872380535935333119311035809084650310142443312744771528799900124555404649745389033131542436483834322375488219338599406604768819472878966634115645741786580532615836870338250607139420421256819608762893033330689778098502373418115689074586553550976523144882488176673442769030749659434076762233574873832954701236342044181619292587068479818282434022688379834066180187846076431294777346656206661661737820938119478299832432642251329883624770250040958439594108807421517536627875632303383103553231017017189029288642537002898234825538777686265302465970887789717897943006770805044503877270970535518125204042782948157783672437597096443434783584688605890303342159961469934805511074384182724030996827445377494117027454219649512331957776026050359529266376285842557085565709798843993224255388452629520582706596435096141129519922866143887342839509233774849522103317928037335840299982843812817272645323957512083188620205605263414890467721240702957314660250522811786251855911600654927807267604798512180796576397780377681418557754398741969183815306758894521311229489948208058630338475570135373576749972778996197969761495498870914762729774093289091626784907737489283755568207769599341406634010949143095951975085673277144150021594359288092344110313483141319433937267683625328622051016375395189502335812702591801437292411717147027740151741638386647784935471788370449376035382683078353525628542608494474683650738960426837243245108198330288307735776373211926027496153904149812775564205165977315491241021546529082578281553018708619011159648180548117329437279287468619730965715991265041233599100020113808276701001968493991159779236214973881623179905503312874970249829956412585479881299291835808019216988882784002362104437592057857158788939345770578880883682573999026922047440281481689858871353952661483392595440032780680663780650346049733953931219689472083147279816359097012740754320318407917168708837736234994872991408931742763714876331180598605260218829353422927676220978197165066947789233660474375799603761348320601144440458732341596718496617214243905572075058005543649295603065821648486635045603921604064481677060260382732334583917916991026982938111884699723011723359074987532799223672723928741628571230752287294948392904204687189707688968681848255094240404222740267805304442247199335932636872316540182626406250941695405676924545926953970528786551971801926440328130257032664029217148696764701975749950948083597743452006255414255179840472950942326788448786139478977080273957937084583802436612663097524451565961780184397936993082727373492730231646550829309757429947045156784163679577691797606698393730906098575223100992871811159611832256345496835888501391290169620278513265963826905908867623190046382594428964857397929462325666113493836715088495927219661757865030649289311256102465400126399950057261292485205869848538380754803154989554672792772840046942523027055048594212010991404023310254363809549841149701273969772346616517279164777636923821221945881160146699131836197169204381111261991326671222055776520614987408574998129109237927794608508192849888125192098881661282231084445827159750112536028932209311371240092239230756804971115295696349697607119178321218082490229861764997679626693717660780501261607178019096205676165868068992436523604437405163581477892911782820878316446817243399041542349839940886684790114964547238208381031140194604246676584332394951722001440978088120754893187427725276603531768956456139005548393100353208584454029140760657611693531067623836110073789899947731184139405878421013472343182151244731715857784203525165692158364245020629196949367987390444144904068454127544691001433186487349225072428565475331304788220274116672897570945895200379420322332855067389283615226551569159488061777247291940861929028849088620861149337812261962692423599153881665561848587729074892013434273026185736085615598528688159712825550661253864842269118223335209525884204327703129955155513871252975600301777553162227691352008794860457516634730329483996559833780414629926275747322782713246484113229313186351778836822593948838903334259056676930669185810366552673095868396938163464028814632907668735256513057496221010682457419167128666885802093510351853276313927040987362648891203816961028706152423164059418308449427241797859299936444681049288799089548627735963155444957842932325146816386227971401087098235989458799982629218571261313595371927335974380766718572981690951788725948179823534479299587009270473167085731122518703984715589939994917143579398291516713317704105114882694143987532203400935895198208433674776566440945482813771547641340169338489559253896763467877729516192686852678326504733390163364338175199776909692058553314637647805863776778365766949443889084769409627780755830833270768069127535168926629049647977347765466953657625428285923925788214776327403470783608783158160145753541430278753710609982286255229061196845576905119805128740227883054707070237263832595836768642924256453880749440871510407767349752017271583477312033965879368656790348677986628162025713810384711144360514105517152562259906552964245758223160598553279195312083656240858086182857724466921388281747223850415438755320598975098176819506844340496419542864145017629900839172341957314185982645636972800457343266769107052654879559407788065875818630113876320910163691399337435200972950448788928207773573034084881319860989474493446830616175650054515117691622678405486714068572697901366112627393927419560273692802440879008300809485771410675008639351474938625234596767437134922615565081876965986609446833809307092740398537680617989503053787713883865679810990538028922331433147709236619336164975099279839922313226031626175717759459339488832650548699781155567001876557082174285742685201606213479119629976355329847324643152948757918058390266969977797100652905221191448078072934660202523777820790599291835188781744430269446251039852042523450239187737363098161823749717615655534418127274012860503802423494383024651989296985904826368262030783735988105422312189336535391329104766165262175895516258315283454597058829881903820512308580874699739131077106647566318502504040752160461122540640563979304651908992526064489056045947052193814795986507660292375401828145064146711008670645432770665604509399398204096988170885479390478705065143936842267592108109172251857044195237562524353760100276146415683996390108565854789923104504919187160816448837729457851984513277868280329167310022389914153842557011070022020982553310739145454587193167875738267275460822232069231853956583654185775208817137496541243158673588955861033618308154661990324412777496306935433758106664107304272798401544939155611844011595796355338385965466376358548955600651342012338949727342437977581225209311661798572306293460247642931898763391055848338821659098732585421936265144253382590738074825267278959812731292313547823237998376024243028989527324147461084904216739028493530082725476251436158367976696130343332107557768829191645925068017794360126835607501897333130487153572531683304371991431261432990506227723413269390168626446783338461661606162929696324559104305154042515496466849327640326354430375551025145218689699562983106978952643514385078390742059672195982314071721055593792989439311524310925053272835233740945058234138041821691328147162950758561840304269356458407681934057875239344987832616517632863542537533457347857241518654476865897231987405096766562356895290766434829432525396489903154219339389798812856195044014124271405489788546999404258430130086551270674490979261877596658121210068839810948768356479078759318362100955250646409351718812016325848075366655709158048977602287761880341102370648530804470135463268898460365566940478776963612485370167619253541280284233346769799662500647571754875949927381393440130880992009537340650671666954841572222150074640347361204416815128612380151308175335398343718666802899218319497848289652399095990988541449992568379018983611649729165920081456026201005588740084637730099695815508725401953609309768755991538507707813049440849246246497214458020856016349068893819865325206581156062527382355456500066846664152285612635984499924582038434001760754321101376140588834853737488016066492280744460653340504474222325436589718727389792763008164352264598502090165968404808670951659675183342967745969202988532436967862916375574054788174759020014700192503988421874763994820902930048772614257592959657850930023324794016191850451336498134143976978328694323825176742070438603746997991928306184613903948229521480488268026524877126041105102103053313104489417813145960728341308646945024298170046488131645131228366169501101803317681647857594396755865152169368237347665371935255676054641999750996679079912689682131314721468956714717808733105567569505398920495558952213207621198259429448367810501762912747938865551576409189841769251014522161741705326957364841746019453872584133276764724839260706965774457287749738067377476989939375461091974712756917490405630734022831260448355683346500114865776601202368329803030713739880348110527903929633534829600368761283245092064305977494816019126961420134763489719358559669567734911697127813375974767822016087851913235374528567725509699645173981200598846945052434360580373947849737033549276190783000218645806045147788085660923312319468837445808401113934668246297967007283103247692700888257408165081893069198244476822199250019285000129594457485430378853760195313439166559569712518500279113382124842201545629132367102860726872420656426082328550980914575902901406325919781067261208885164740209379980933075935232243298506310181927007858079687947967495822996177141403394719746078023418999164391338168086355848489551041199142170444616705125515460219946994422098638101708897194146837837954111841888521817182991573176906265872227916945373285536642325617425275504027483585996422300148223417564113161535931937915900099694870579504571673823596023581519675789267015466077803307934148328602061163974437047603329854498777518909538242941338657291499103460240934526510862476911081785189249818184571784143090243213322534413243034718324349095959527259684618894383082193938667403249934018011868447881588682017423815165767748289860637702976032388060000710860342363337512277934822768790047520836473349572059320508773322621679736069550412750639324322404473359421491124378037555472781932799094997865242829905311541122448577795665962882184854490469706202364656929410948172974331375254149483504203466565929510653445053981673326638522770801737012493598534238830614206326625637516184883371934832599372730615541222283241173462553977513586980258920542233559821381159900765748057640880756122840500717937672248169451093120943971867802217913655704903487712492115058539164384689178227707905766275341716284471167740506351121761055837943780476582867937723283578067201891027215515684644694606107176007786751138216571365416755766397016250729507289851363723825532027766505663701402012191453177144415862306747782202244506482686099348601975366425286651586506786767927821221734542353519699459562612219881792970271790872982230851290393842671179294817122276393343826933017538915396866878116709864025996040213705160749351020879058239873639824251594925554632422647280081794361010650312326368154840487091773687497075749608899687396209542890250824381151586091825025785348627676003880466983684500542222554842711969862198211339217755613466153130814003553250753171625683715992261674210564919425732498621192277692866593036072424150027931012862804990494607792894237916652009019120729393489544545717407651178888251786282284845140707858638527918774119359607026176348810360914267529113966796174940839850890546253954429397123710015890380021769253670834632412402632608038515546523125681514582234015435583151992527819902444207080967697227501993946751878808876336700112484416983062798952200992636682525116529576206833626546113052304008471451875375871375738765402346780595783412806530108978557312335492304057770840750798020026696085158942118256365708602727870335468384464593461043229059786076008908636761431937442345554624251381815769057731320799659209719642856831222653036364968158726080915473379772474899122173498119646795366345818359117657165056383518550495085106850291681195017721013334356203519271181830131034335850477593395891760921279365430708517434494502213101625979604657614940595013944337466516425674691956869379088483331476343040735217436676069010380348271592069867533205406319412813059473812567531940969697277211661451242950810591682554268152436682639853595046093146907640714633486873897997680983512931516892600191806908010294564566945475897578004717837478938144496997039065679977806784738866328615553661333937123069026822418470461383871184375490748057120303681934898000225901988703641232769691623615342828570547342351201993173422775021003524183475955602844238611498188984857944706747751379784102117526475453972780886701063103173542340303991579415785113243466422421007827537225365777917237818526337451878609756514155822990098263023566156432147800689932749949148964395175032043578553127897329371112761898834551853735298957867385115789231438149863473001487276452469548270494686763118693272186390265848226656881806994354770820217494309847269929832420136373098913290271983082387747073430488556992740654645366290101555762149650738579502610727733274923561222074200449541393453946134491732706820330466970876184054638898340153407330931375288930694689422460382773331401373907650158183677470588246868542510867041959582233199586489887930028305539608197910953900009871791907736650885515751793327982646265998036894661924253997525557810042414490414551541877447031595457805294663576722554725746422753939059236285788046904845318026868265163317188119321486729441816806804863306885992153390700193583708768167542136926563024932723908921686560179113477610957525235607299417393213718742961089482518118929902997883011325014655932025907524731268735686908000201114399970818307404441674511715349535230462059468816787229341112167967904672183924034021131388397075998844904341710828527261416358613728949917876568088747555546019556279432909230933686457114810222473936480304501217585184793767827619092509466450161069889991555041946862390010834273666724070867807762270977340970879953025589449894107989034598544057832746048893216367003369106414117890637009266760501081986655547394469220408443872781079777235746421612461323071818986093813221566015036502686728738662597313065516146389266927218057598346250095122882023459983410865547482533613845818166713274107905126346059116789701521825633319793282455205551341657346825826234074205784042777987227936894241258997628522721031398953425301351464740754800930001847895244721467256729444203208759458069002737256118006868465795016786036137743264135976926860255665024411450846190827727981345613445727421252457021690481482692874170669585674580014159068394377505631056900954105858117867221712290349400731218848643777171894612107278866924974421600228385407437038436476013226947053077767978294799451315758902851341980679154629775836176943680604829247636731563962407851285843074870239036637085594865675770961030347253711186750244023771620510834398182646836449344414858012394374489967456424909830469750881678870265056835255996500499094954459912117550370849683273601141725056494575748680310187786768276207977754489004111645260873860784339854739196579345179480483988703622507175043788045729672793303518839975010147588916135147118120664323337562928451532469093900469125989296274443717994778430519162552912267932738465252357154186007871658357773548509081689255544697629564868079753741684485191077963495514832040009742753004282598223948806426711950899062012526049373881793889523944513795442582402134489636384946590401404084132223004666964999168244810219881788998474269152243108624196817319646057107072189820782598486782263499575718418767659761202249373530840026416193428313659657646510280974220945159822096536298795198768450728142560814013329572662683988529478487410832438502967390891382951399960428755662046382602061299159604908912591567272655300026658062355455186265422212561649517488124985359829373493779752535893829699857322563619819610861797199665738825580666655617238331578711915016617677401440706580829655072604058413687891895234557204572224237445296946394268747633282299866157660989307604272992091848309085218107861578125965689441490058442944625750390919992421798804560535402212434389452591362749264544689362144850050470009178588338291790216590768456522750956817811626054533059057146043559068858657958540443896820318080418233568625090110548247618171804790295753181731835054986371483878601037410037392095451525384839821230195289765978464395232446208162567435880738975022909006284065258801565631820134230257082263324362604665528776874503659948821860247478782874992399271843411564908374849842057788439635732562696108577260587637968742572942282012918433783677376511198635152588344507512114310220447630835089395649407106250484112757176356456728667420635250433314792387351278926519444858503569571051239425895919363490533437393654947560618003348826509704345814771562491646825139985381959787918170033241097762323883083377320332783163984916898391332652994656977165590175889760506937928546212526866437623910009844542956969358153389210452351342288109513597078328016009505829849307700361734327383864858014526262171041895006678072478241334676500658360228786961196224993841728291362119966743169619161857107595665344948108731733633678460148616092665224489454297343501051998898784536646829039668970827856489910513540367683103498811861660187678546059539952704486857757866792076460675756603284248377254757210977823883539205350324790613278447916186710433307621210210319170108796975980959663839417760525607737320906763811019940895849952003115144996389505062986834537058631722429159454229921575853440523924083805027133080995930336768406147506554101714952037710953805607956664470917635786617226669774559372268916493124852768912762236532827821953706022861166851711229489715580841403172510401201095341273576819784379801783610456799780136521282095964377266802831001378386566359726002278140268056107331285782862774137508796644273833245299306260932585383969968875569064912304231576931238802293705529811272019832611722915077881961944474944102549310687815146427317931546595979473109657294598315371102523948448800754506121364656687169116428113954848754502218355349500004821632525943257903487013037491586582269238663133088441537160728332376116778486690331166014529226010273629511224799345406885719169293387062013553880870998821989476111552479285124960093243072874293845637962816273588531722334884569469892141624190089962081314143626802273473664131144559028333478406503686207377338734329316232102679380788033163359116556743962239054800056492644628118980765573677216992755075373837647413665845276001666649638565353715837541705394111402686464844753187030763375326169055857627734601970463853540084979138003936473671057055273944815506694572080805414482211528618524036711292635328741773749833039852077676259075819395168545763910573946342460481189242765083695452350157046337625986201451043754709992662724114309148555122610109876594539079841157267303681875724257768417340954259889579836174416631524205276323130005255591593051814516602102592360598904093499313652650983123430232211161388179995902841955665399353446385076980572492832278846151843717921917653996277512051732913281753642216448516900234463032841604715946482553486223844358902554979260385034271465251291024489128325259160190843860421659786489818834892956200251240118292459847349961516432975909036105941154417433627168600172619241609810407412220535434324309002003242828890030077390292181189585463049924713418528933399889121285543314789945606180650874889143969585757499887068375584186132162944737089985955627849222535859082926990715335458515946885250859611555248501732440257899752654625580254598322403283581115673046823702842227324051179677402565252840962107581754054731769968105534829341447321642090772951957305676628851587394922083283105569085424966981427377256280352768555420900489969941220590822928611955166528613733552364060964168068076480679532486866168569480995242524969870697373698688950265060054832949658424405995331193023192303145734504278168464685556420383629338715937384626572819409873181543476813524036907856875250112758734422157216126054623531160768440603141752644230265089251921366799640537507914383119503873790615369926398610861723574239323100994071400376507006380636832565941115488591375611529918255776009139668568150399415610746453574560101615951962754827431551471984969701169844022105070534328726746121744069175482863753183922703280080173941113432311919647272361191164707623873761406724438969146992223506891633595870370576890036714183722265193963072158068242405301963136350481000993229438451786885820047228169436199498848193730077921751680906903207407721199005052230697154346962898035923940954967891261779245603585795478791750853130143262400905774878246500178908312895262771187564140039839880921988370526599384750760752399312004909625990750727074486484827344240653510148096265847072602784380295091717239493967586713474756615756144395336647180664995735636162705408042902555856466802527048428238835802744536511254669098950653821329062121321415776718719551920189219131323509002180164121044475207996755664382596844885382030146559118757358436990368002351932154183881915967960554759679735580989719383667992032902755067780439338656618075641916575388850791215177922930897825430582683610353625351052589386578775872075695362780055049699073337398731041761415694010400270468380844387803571208604858150933058885258894460988007055368674049862278587245069909751093199948699735145773928644078371545307369600853904472604459932729394977513799517311218175322770777685057862581274414923883452390002498495377734202675672065918748463158553128406824111548690959467665348095102082116213640883328214083128328103652392747493746181407791258533990223396365854661873627757489618755781503619065109526541334376629093520354190703309674015035747295528772402438664528170801447509500590569704493403614074637816649074298886596602601837029264608685293444730466811095448552199205197857955073840848280099207553157007903858505193838113931017398940399739480621006381011253841098949701846863127935122819403318595175235594171749812266260544367082557101204226852832963766676932260472867307174795089607672691575611791400712413969647051196193233913582530903931676363356872992097860041307298988214945851243191389063842839755875125494016246576447411357216186741311566307034494548711788130447687158175000916191774883833634802686706826714912139861697357439351187830002105426014537181654068489232326298720623008562031458543309181817764557782191361645816164790141357692766440799327488628326065240534517758239425517350821660646367878054737960880235892999999681352736129082970881755315042996768535514030975557260986211510169382549263002521398967229775781314017076596580454631429847684964039650856859364663673918710514941759952374865764084860989779922953445096681484153787169219494750705651730538285396879936115265994392799416003448823076131688286288292370575392459692911256678196769136121452968002429868435116424898909786658166461931764660681493043559384703383162108647020964886543412819432490168262450012029498439268609060127988811952143011704270449813901058257622485406744193776488365816345769386815845074809674587957881203798675470001673386102651273268291509509110034206553785528377618058448116699994129996780360880137613508477840172278946258341526176614049419649266698289287404641576279223807977402488633571449607400861538635013566189976395927859024668989509237972298245930382041453953470189864759341752957868012030514305949603286812797692044497176722001483185831034591731323424726985795344407567554130905940945298089066753430576534020007604822130294976702773683853999819718419786658912683045216579309662733829557535844156133050237270527006524341059686626559712853385848224806613775677107439950852914365418986265100310549662482061629708059529655564415182428660909838512127853759440232821915872511454164046694610315885315668183782830688315974465076474570894129665239066046242237130159821144549431346144520337414166087552488430039984917195836928319891626555478733913806095589693648558546578671804381235302999835683144908849666266085639265119931930388222981225747448228712381864726733409247104938880713868103144411685622276479845487179658255510244601671316046518063348040106906439626812183122605603482517508467191319332199606258950988052517472844674665713816772340562104110432845319920654750098589833010930144878794996634764901559621581008499201159304632540990471689555635962651478592925263474357091938523789463417851438572840337551648954972110923582990490244135571973317247150432906578420935228110272470496218651041289048976099661529879206427085087120271034647577375470039012199576560564754240094040010157194764966336965777506919013627162552659978626266306403809227480892924781631474552935068737728989456566629510143862946853869615827090907116795619979755482503750816531668372906637797252413125723882160636309445452599319657220995023867387248924459691579036441055060688192250525279517330269677463700657450016287613302892095610498743224920844961599263665569624016667357014100562396910304375432116273413614873703201891369778918209384722638677733488037168866872061929406816932994708668502298898288906703291435503051867430444646116850709176392080523986707417528450026755405219315237437074213349253246578847335885536873578268861581054395097664699017471366226936996094214458379737924017670437245650778336024330211595944521448072624663145431190982871951570436729719958394319018461576195892092320305827759233075587556229936711924546639051973724374126809987444225573438490064922678720786061828941409581101568322228684269709267766656351213883365726677881403963015052137314839310894597621776794276952036922766230975825919291357916950270307746688988247259960698767201878633225940281669451089888196261380688715459043967989269696753554075545831071130677090628253555177901532171507120742621928008521808268414716380910489897756322493335588504928067503218861613258063627903218550018148014630580326430472033541526081063786115890057371885548803496520720691442144797586603884758533266880218593980888248182139283646567148454987519637417457137016970853567315630330397189509907596298295487706054927367542611315161347509756416823562128533132906489157525527642611227559906302607346060930829793602068779336932606838296732045179778947562174455632822503578930239358257198441644301380903110251861729342888287685203950592203036550993127100392752328990437476809589518466237169389206576108155026103692488519083938990512751776241680012822463082131933971361489821724514456094714982795239281411175497085160666141292626991410296354743418832865016122195251099869597705601964445722588721617881698566079047948582589593187372227068224140273334870252105038893340429946229458897836622966607824628157174352244653954526993556792840281585114582336830953500167616786209220736988356405184778425074964306386990665254562664217997903611293718353792410300350743482214935994342061498017112407002270582852108015773392996453347899734405012834250684898314016972422315550127270177095404318172138106932340090115441867212645990723143005937981877302287240974607244918357080524504391272264510539719425613454607898160364283440869144786327513148555768781324919503544258105837191190640426447792175134211801503649553478543553372408643900663464507906239316207351196993135658734582204585694064610068006876652369510885630434236223107920846787899108111056756035364746235855397744368433475419569151646457530280207788974130963450552844039027372485773933485603981238471144947623113395793172679503041897942348216812009014007960821912255869300047378427170145902101990809783266813803701031017699500302622832627361048015218608925632583530755361591204741271841878815342056368491877799586876027756434166359464517840252800602094372199656774851161298908723234015637433577084399790832480202066596668241779080636665964399781616538388771230872627332804086768588110764288620497564793594533228149419147660243429153149069166526829716447623037942419289233273006846996201814082356580815793121218687356531189159871829420961295760104827857504765782153312980119221011650481954823666189409184457610152162894508448517467288068276408659416743006620353116554501622053678141995890097346674376395244501710591820692403801724977936586631630718575976610645684594499569912107705308647913678128953691075886490278420033303307512457786147296847862379003822940514526113978517651539314872265387474788439722589211832990204930829647415585086707658765205454703422654835347118794171227887175279764039332964656267434020746141961724526349090962166862175728053428890291099207762875319681590544336385593261812815732613991659721406499548137904799371321269536691014727593819397198409810388040397609206909087100627103279662350974253284511224499060213204487364341498554780732872495524288920070540505240048815141693619746654151802389841271894796906587696459737167769865513232185917001754405134874901065193064253113033555101392456914639903045648461891364654253509882630727777821587434176393508029989981617912612856895505523119302712892740907643590631923246793738263270185156924710477246265614598996587994552011338072915970535342035545001387010026271543042786955761810850187020036249894920184772340384705637982431362525292122716513912940843324750695329156216630384080967378718929170676059319395298309696612403237988369677295520487138065239849409168630196821994267064435330112963848539709510724438219952297167035910480012793752642825100939560399089789613134395822474940655716220155266837813962900820563798934642286242237547212944234352721771217076919278928614803671248094872676462582286666175557017945801804025759845629288702729197106707428563703553567839437026879517000394427224403948381669492645055280564371089073468399867596224664691674135975315608586584911603511859537457753035657748299587812896171374337001478569047406244988559618347245602848354726360009290096965933910807259438229334211691461392212435234094615868269382603235217683928610581167020270003357413481897094471581321898023610111602708716773825842184590818344363983710683781829706715749716550957737320542990075547368590949508177329310725941015204867538108594289108538290424498379422669908079132773279433741399054775955891536247588794392119523751456149198457429666214971108058075627895989231265541791314386111727172023956363799454246846275100010016211767932644299246472865815468031993832020556334359941470750112010591448284554466357893306809122755655281129585056855012076959145436071676137338542600426850401731090364779585620113757185162971339115791202445536043687985050006746007313818057797455652742973812356264832424350881197374968602465914419879912726707356396537884241338322043974696680972974855799797778268163402370303887142717774405626027278898760722567268952739045288173556445717783033441790942339704360527237771839058161809082565380291541012354131946880604856843735398900819493437075152295918042255653909844209913615818003067427734057704016081895729425525943787153857891454755763445263211864650669953062220743503868557144989472446395977857362995342533907384799026266160828864421293526084418766303230209710477724389516015513138294605514720657453006419353392992454404998366621871722467253456615816242405869796057185220225370983128934782428135838078423402614195992677301583708700772415579228451767877797643796701035939714499775991532830969607747063748995123888587747187297862028416203513718272035011945863240935137254168176059652633033822380761233328374140237550020158092442686138925806331413786028940178818130492860093135840990549040217211380067430324748595280839026063649383535553772347546374072350757891579682087121089486769387237060876424223223174484391716478874034631081835867506143455577706909856621157725810043351352397592363121870349412776175364601710032138828197086854709359267884693450793632249747459267664345144844112223697576437780154034370555164769843425656982030969964772065238454050616053082689571949483097788924267868581546763155162646938280797601055298932659935102521248356038861129820524525081132025934327316663739842530664485014302279346123708283547826310483737333917882742338283630418897534100543235185717647640734198416388148902334736718504335037337699889798872157508416105377519376822331233039079683397891188246961063044243562012897271358746836504536599350484069898948296766852297218307613403229254341678241690097614376572003657200568679346048840125083825789242874247756381770474296483643013844641043287893502211813017906297002462983606555731939377763550573252958457077094651445902090021904140379760817872027692952396932319002884277264003468473506164582781777379180896452912569225564261089970798290869921742837039023242981969190876142117891938460163135054644847861229576567407040724628992057492973278790227819023828158499827165958054078494613233193371666304544382059955717093937621506138950569050916021716375587272006674856480658057768869917636826831618241091128174858701589657915730771371529571446393093757426312606947234670250186398358802028468147843403775115107599489315933778194942263861841337823210466387681244047231113527689349374757594782967211127505317449147739159694522772576939428061122572812967762544496346369264574996190190835459146516736166232346916842649275108770667490964333382927065274455579564312130431479978222114345787991144347186170044213873440927863928033011278992837130838344224320196463961112318189026028303588546439299423573574415776375477681240267857772442058061736077575634081443110177355973405069892436674819867680408424167033470209386830426658748798331143803361471570584725445088807995663841386692740868643730967938153590258142782795240155319300214403883144221497319875738572778766615070461064043760640411822316572422556654564490124555683860772418812275988341335380232236611898314718385732877638864287178915917059608342521635151678170178589106701544414747925978100329582172010774258304942439778783238524082834196579513289796529132582639078626705800391306173160344945790239356667424806397587979215769157955772960047903019427451463632473721220112395469586799966894702867942125844861620933544959367755337042193899590798895012335013443986528956933781761113907270351277463048655222576441740961320996611107923188645627940476456509902356719515312284867294395925531058109544578961276080542826930716113273177881321963793888516045503115584215701041765151866072553609266086963404052706592074113487057471529972837486705850155476009837387636129230259679871902282157455350176942187499719100153977219432599850789633416493513585261950683165030507907708240162027651911945229465740641216070429115687378103865976284538846694511204891540259014905999346959393494560945667224001335214243266172339725927655267340158909447856049423643921729846570054325275212329882335678353404582903446425980191516009598076655809141317320724371582213521720552797373323051323239689326631148947776700001295944986769425429012714208233945061518339687373471807247536123589956424828328469721054947903277313558602885232193165364971708698627766980128065587345310676359694414161507914481445847169323201882009473913040923090433267882840511974896589285412349830814845573503565204428566654784908943195419419561556995081020949820886895380520190124751156175982334003603969567600023681541219729025034309061200782961548935286854461080389097496870329271968317998224192830659187125005447901300188957729518952864290020065669640754261675195717327439208809258018366064879186297120311462666439872452401070320858991015673082253002099912155746654037244232859869312201510332474823006848709403925377529483060776819673361019931548295522238195210528294114439401885433640666198391732806193751828178276402252105143802628767390885803783773386256724714923579392093429455443537981465573134797523230791176066253287911996893926292742836567404156110938896155600896066991192951193287436035186501673996962741051584604286390409903894037699303057368850199744730998483940361457287570538570904320271845969567089532967651938016611559041031260794864663373781242069069967098020834055179377091268660918394442897960304861821476238595100735916915459558085263064027762468036628378339908564694168153620905667712824787071072705874143183814334724145516744526507688716601535855333408680570226560547285544867984432277142948587779553317829260705562960961842331930232059346775646695208848308846991360705991510691725664339078747546421806600855790660845510212961672730528596458593167882614089832328597373541902889078495443526273163708660540360020722148393571913693426119711278829036679820334351167400601114992212459420240379245770397834820318157889174415233515843525961017505619705164337098826960359201273418753991088770569957259396542300669757544782210966502229767621802506014704417158010974417394995860214241418574957738389291698667593296955243335089581592158787004206604315057534193020595635383883065301439920995289805372805507911681327208965499700533651740786435434402379916716610267305130587836208503630266843277964242429276698030557954098088881065442276544695229501368818803227144085358453578039674430052010946035149238686100566750833246007580375818120094588383008503673309012690300937572948305603463914602018204198267089443028625867217139013928880416128394377316211790251042226332515074988033825919583840745664815132181597412629045094325030204120502328791695675951253457629855179897420636351290584019309801607067051651593931860563632295764865800490565407652084648077888995036524386574655243398316335758089380106652867935530026506077706378310719748464061682132279603428541684868623300415883717198832391238201592518264976582581167237022779419644316865285101078507691613208104102481511243481966218149784075768229170258129209353901329199627617077577595690109638543659046278892001444078646326125210661820747610693240861071434218661568662730437179998700342794728193407157747467845141109255201579916921919496170049267728568785713952642733854986875531525347824011327638386040284895646500966915471031712572024326027177170927678616685572412836394218982731981445469295880609658467770098190233497656113096658065119152596162386335239632182161893169307824472962402879825246168415112014976231707709649330619362481103206930197985315882796244313612805619376401635644986961382686264920147483470733928864670056776417033006629785434971554533161565558786018260933971325821334684951248187010371274140070253793555692082631811923918223330419272395272445617435176424198577747522045535481007977091265781843430705163423748572639767873579692142961975463423212395184262413798441155129484855290652571275766703873710606194713643639792531127506645619285725398160440802492662636189723114154429256456647153474993145884085513207738859161005569238897660972316087319741563055842609059518229247197302906622453979781910059742534892984048119894406137908543207684101350455817963452009824895701990592966778295401591685366286653318328154497053112093744559910146059785345477236484777960362604602680074736537773925646312964146796848388893085215374728267860441618055929663542127183671122433079854584511762509294460606916273265989392057913499015339642915691800564123843331390917374216234819662921315301096477423140175503529612135705100467775075595941987143473725262014132764949204712993657770184106313818218362579134611664418739188429543168711702930480180013828015206462044773208478517873216815047833521387501684651454786971588761201295486395416399461253486422089284908985985084148541599872772888511691879173900756056188904224442935990468118081985983541874881989629040417837941936851229365132591698419758049460231796575130141444641597397490193814185919904205386500912929224051684174433718682373554533424373940817293715355148278526206748636572396247413932385586283885574049226055804326039742128962640365049445191109420625472677567884044455455164609948565186248219780027331661451560547112965015549239802916015844416761489684526072078791692472839542007243084195923738893901453999917153178825701170040406767955526064996867561228415924069428869493365159615058557289337285034282545181366236304819304528235993971230718233536669020985061175922705686477533433272049354797028809363857829184736027947704369938261291269589713608685304323653376699323001841650937468507477421258554163308591243403377381441098261957466132348748973486418649986369984053934165424048467280177145287106764101402651947379255949472156618713795024526536074276988285333637110334942421277922716111632942539307009809332188490940699338494796903176208919683403365041908099136890041222979437772134121352999295758271868688265277040443983834248453575320170362136648620929235202327063864348460069126794264507788916381803378315749674538606784042803155117783754186964221105721173333594655370125700580907502472268852038566023204094110878089823787610032629272707269253169809134529514365191221743722790758798170478750937279705885942710386394269404709528796916320388035798451452568778604090524555163637426713867783504359600010351508692994840233248216687943683220917082051004504337423836294809223363869062724400280569086282465735376872407891611105280547861071579469772102691373426185307349677132313488702487844930740382490283422640103995331923717645348586361248525810310830796954772615868211520662303562146681735287450144003916087855240575055606476530907363658924170525780546735151563994991621257448979835977720696316934635218343380483192775021225733389649938192522756463490066845307843631146562091696918344295859098834416735793358604910191231560236776737496042972177358735246227631041491187915428745747841438762085771347761641010194676859507897691130564336240673530081082920325358051861933413944122384018170908245020964632179167101865234493430636995325718647204316223304898736280563299296834410508915671310813603613390427652778271885826451801488099813527090128728833727505693229737102053284013384259609271254971188552079731800352863634863994673770420337343090805434125757339752159105245679130914398510063717952960702523042255047532764810607842424781825901095485874311220498269320326507755495264595427733830813960619184081583449792506175433008994377668135440664642689212212483030120675713458087562732091077179690191945648117970415085183997390027066084311583646448190434035739224047158996200905029454084104098788886380778179215167407286165723914183424009910952855220935938094901923216057208028674474781312098345052359977749105495651944514234003872957012281186817752669009208678507694725392035728085337429503565208853599251969495433381013779074695325616822705903099147052153639488754243836479052063502585671702193453967064326153665284856730542158619214823174573702758074881380990420612656254939745028694392457668940553168241776603857717267652330322240631990136230159948559072258943142081918642252578585166537136202514789117047190039178213893435565254667226125887933883283656133145022801697530490874487797627607167704820630074312107977411328900400836294201228286350462506766067100312288595180120293662280208119179444392293996010417023743639553147884204496537709788698433597785236797024624469191593037194550956057194874754732678608859359227058061821650745061882201494848804735593734058957290623958691413366101443519059655137172008535581554304094956275929801746301129212673276630252255776653764553038605300589177406898119026359278280906760215962149828835788831338054021696058085310985630955243020192559410070288157968320804005855491957512968315315844647031522286066761968933464609200779719280247519825148562746721056199782863245027046076192873148083341566255090255799191699923098686026888037986144791245918497018934158586338412637646242419139412696581621930659108587817712644832161148281491623024281616628350453092876313634028206478622966990591826888889550980882401680807172495285505211326878471582062298676418070514366667287334215876495188033049656186840577378738816310526600719544976303713596125470035847059053867723557414512372165200010563765591921906128009751565348007323204723300238288572365042781574785792352133602844587634588529121239401422391357668682692075154474855045226777097878143367123353534597130823995550120000613282738707561636327473147573447255324914890553169637792630005237826999462145854736688526585543461658989092680676186309003326556332693660767911909426631585043228222405921698800332488634954852261218013145978483852195533844248531373274608048053726049167845037500473867282717971405965973378466736431439673319287369746081123998889182269176639084349560850626007711561933804987130396252088061453255591516808831912118128603438752687069307458994041086635724888926923339892762069717543508709151006644615285870246925333463147173959129011395780415650573176736426497879028091729934169952803105946105004502475948394563472736792093995688917881555867806513068348227190989365014036911159274854261747920155590731390760940044876137085297632687214771047780609018734116662435435062313001555080434750400556461273837900232052170242389720446203298441314432013940145261304103310476818754079701573891888413837576223173041286550618172708922445664743957624075261348964162016345297305677573456332463440024351441922494747376933340511164192454859308740503118481269724226059301512312955686732912955416542389199024362719400137135713731789198070563249786426296055609364073833773930473779865049835705379660150557175759484948292546677982144086461765930750833208323503414655547065795081403012326810849076521832646653833497850045662065273093385617115434652972047748805467167302512281929652196885504957058724069353348432641270441843598350994131519323697000793930394652587056363145568655283797812013844563431210529234431903390367709459493150234073532238064246255614123183142867949535447627673804807836670268896825345905459789772706549591497345212913281676221232594328735271276780877975357746367177842673221093384751433888925034369712025749767646242980449978363848180244437568236178472882194019896263309171633941605444088084917642982703886458039589360770960656029314203417294674629127764221710272406551370711150627412773540474264518267431977408588504003089743101533415711350547342508070101141701927048011360226180481217129964093829360518172029395641024679740040658621596055878855940661411110399035959967493458482840708959218517562942112739862587305500559836641831390327448697154133764454461491656890299017517319244336670120586992072653916414969597268582926655215515693949114904306146800000122159094956590896654672772704459091049468227306531855393362514001184824003761067356316930944245811880834467039138585313123012523258582996221889044941979343120150185684949909909659864529458235207175871435531644011057501264353512809265057681258100090863189210198085367671764600128580538879055865347410742773285088956399655643920827252718674558482803700389787117397712774394500695623411068733956321512800159698548004828960112645948610977350550928828435750314259132008258129467356911333694354720878979227144015067579461308880981753466259136717358301851432945755506350443262783752206626508765637464075459101479179327346938102268625439702481697487831007506770765332978920442619926841502308833217215131759449332105632355028333166268890461910939219282709100534958311830795465645602623372004655656276257401717269899676812227651876443903997848520848761175725963059030096681778037370991075652433981661510476427763009335943019496231294661732111650776040780666576537417151685042792408802819085221261934177491684731882361963627935516990777360844510864606821488501107036143748228953412936641220993107660604639317451684454559169705109964427909211671410082127440685407827957427796939836674693690810241968511111569610624442572450886856740646999710056433972815702217561596330214927800622423580418554531216361834135891139947039288484330771137458177206411723879505567606275219380082980980475505336625169983787924299587846139085452156154078646298303375798882268522479763749009405977746149874459310030225463278742747189650825908369036823597274151963816718862025757648683226931327972334327424225259864632689917364221293249737082814272695180343720293943637917064727940464075561439565274434421746864583897385925448935929091298680124519294249074310846162557651076996313023731928516976079721866428839074157198844727633261638931798924668420904962040296809724617579514846547601472783380770605792129596033362869527568932315487178396021898372589912775927739121570499529755654433856723403894821165579348825633907674715193337544131652109505619025605000496611053571261310218895144345682558997717591630897514728012324605993306908613766793949736878101092945581435215922836112302510595791197604981936989979776940467486079357297745009000865115853672926147662869028851831056780535424143993365814984692259440180204078920776811130912482229392771437420408670405080895194194832877823848853905240555149427112966773143053366100664440079463969211246728368988679477694853849020072639718312866594897126879901388543612095700813963514139975408681383650775396324071997482926200400794193746219698033790897478049601059804146781633819585174778585507597836357014574249167120933236170071062256942263951395071041257075418375884110607970161996780882489640930696106181586971468734929306236395519167556652320646950584668941633193357481578048821964080879330401900279317485693980717520287998152846253787423076375910628159187280773128676975215432921565305430876911181035742280432963573963224794017795671075028643347152984103341748354332273343404359715697603617179272146267115773468070059058513753911607926592761605221887444767167981192368825750109508125488143066804243920195282300007869718103858107027202162968389196557301135624035525939647017575108526121613101298015098699111601286095428189463622342370200595713512186326702358949975699669598759020259261173765096423582023190273460737099950203087470588303293955958322558052784672199626988317396956621088891445036863676896662267354211680805693777566476693968024024397625098645134651912195287477182429651081408063040859342897533910878379721756076506231646980306672854134407896340856217143076430479040345835911448320601710339262419389481780190831415132630089169615384549143346687596354994078267411725802721062953756416398957726794908860644005161467958521278995634849513877254958190414606278630451152792166856762443567806055218108431015066129190116309954141003198612120177652496219128822443885202674971275421005223827635972740103836560949489211613269489723888511638407252203279594245261567289073403338981227171084843706598768948699056253322891205998080141087586629905149223882121839569271286949033353963126122760651862642802039556307701655956635713105212597682336638411977692819541849890161312591513892228444093949647649099262558471943502087651496919561293923378181792197954721942591479763469637413785114016016984445530696094041300307084299555119322500887550558448218707377544049205378015248414593732878827724990661386050651525661523070963708044280852103032873007600874557996558559243448591081973695261523976587135309616810244727385837390742250205099355540008015545288266689228974116491295563295111025222796808445272545098450385107298341557293744074534115995824818603861162105000415207053667166656634986454900616105982252513856565922896130940467105945639862135068853345705551081880804241870614538112014734823396190769169437975278249217126642535149225880956274794579687176169785818133850289887270870115099292960881100369645421027486682138653499845467867650961530373703923633554929863883203370558378393057735395802079786912774855344367035066740393397327575976898424024175029268176587458543224997818125071492954888040530283322786003242041578821037562724207280211950914676249955261975522487854688160734012391356944925650425030198589133446123573881888580677672363651794000317897060946993044702444262320537939892354389413380191141575955135565419037402909691572004958206970510602754042371357618064199109157906186614452725330746832487031370573602336446253876636492060793299464059204226312505908379349547757553928578794763266828195572090182202442818365409906137384372768683139453441985852727351184428366566446151819562658904674269033901036852805334228292843095718310809425095542536597011027595532448773318196172928138164916481517810369595473112176045574373808949691566700992553993531030450302673147642641456221089368712286285576224719773605063602253073249811797669381406748551775074932391909198756006123458444746441165902246753500509960945675554989349944439883772522389069513630039666643614457611725352545469949423990465549363545546884839065173644699772870198465453403568798072235799480143287407392753192329794795898262859333833917714706763281766341207780803202521515288678355661915485393401702304472242762744752792423256989662522073347983960505279951863208289122707354759118542989902135588357731086480330325245398641619425276312026988463781064953264181916010448789439563666956322620112893628740328897252658484912514169829666863529898399081060533306814466763537401809449065749572042712847595959744207874997647359706018147919643708426110380872259833789534782926354538599285212557606587535960175170714124283387506103282252795899188076506367603838102452133473006169422993082548047377126350059767699031806717824383075637285043328210388888632270647584728989438744375910692697167076337020912219357215679441049842362110339613238066038577512719383524705651574277366965668474946816910974083764864153354140181930005801877007538255268210718254870809934576673739240697878977096846980670490907159640132795841408728479535941706360177461885026739721044354147099038023411460238823429604957420443583199153204878981955203487655447655583243493060941431040699019586446191886313582500845802539994068658715573335463450867227906736544718714599915443666674889337449504759046406557158848769170296097816042838713028316360195904944517942262655761274925337094140511577851879288113300829790158677876941064983320334215526777559914584194846916133350188050598229866365901896202148937553533377058162243649572459103931826357079811972830142753776395726196469994269816418444640013642555554542624363762162720643510312853245267737041904740192256224089375028336453869840654926422515629067500504965374342867008894804755974672020629187746578642038408335207387578428639228501678295966417696844200230062768019594923248818845022781629342927062489223463701421242152793708034648492304215842967053120315758281065936236410310209083699434386209286373789137239233633453142014559035710774144941315812925955474483325162802288792528285950157198685616818360969297826617186221494538830148994053675838780265325255913165027332757542578153469270510415534912720376677322864230416651907397700265673902931571314973146322098571231692289456172302810060234275658126810768693935517816528371857193987707686562630383435685810342105786685234461325001704819660939207556639662592593920952048842998058082282442829380724425892500372886965355357966636995908933599441599516130270383452105315091352138524359885477271925196992744043041859872932200810809121407439148203252866531103621761249544156966932095020603422891785225433171563215144067544392375646688684592380976267891982203795923220370811910840074893119893186734786176112932779730256592568382981166319746470758643066290551100753138081289006405026954728759652423591292207547382629613539106899369899947106396910141241160712025627364248256056400999034609503426171234347035617550886945632363415437657381652387337985611268151306149378626194005829640652927697852768774944619574956412181261820595915876093152334218166367301213862053611729331747699575307819892943755504286200632840303431489889158769914872415500013245558802367530953268782498138374596575852058697263533449477428859721560341942521654179463893915062168566868263516113388556660020313235856210535967392810131452770164502650656271890939213104863952499489659664288254384264558100376480747960098906498875794690368591560388233020989748910098140689814005148005031536975507584358445800968398198290181054461973086709837496439185270663658027899456196762352206014787596530674316470082196908763483539215966507903243797387943672725903884231440352836868064053597670865394571718562014376482726138164296323249840149583507444986495805807800584277104569169818635211696428685420186169092622015177096492738549704766664456506517957514749338742664042773408127821008201715568005673413798078250210009722409121409077005164587852264861768316851963152239340597905329771178739095547715346305052971850364340341627790284581663353175854164155286036453063157687432971278240125167142261086484401626900583807973129780008418492559267335142463597183024128034565341495259142372649641120064955615804149369062910994602623899993103644626264231108042552016279980102493131025153973066054047838187515170724100753689339590387799261581004976857041394220458639451858942187514703423633184119760314957708453725951606816213677709057013517211352453269339901129969528923130513126178014815314020803508379826460001090625517137831357162728113060187157197444799361232081536526013893985166548869183785890493764656071086719412315017736836852992020159915946475586133128135396380129280965264482867435491559236265460973248683368938453087498419582141417443219728824579030243727392476798987460215550789181447206203051933818412081554880817637672938506013601287152154672669354039406875666961347018983731 P2Q = 17805730855501036399310017131464597843973815754558584171864625638547553415625338175245708552070000005511544465499624495958659187059882004340281856397158301072507688841298542253993563705738446202367680960859434255335206105634723690098990482433032210626903574935383897452900826791188592816123119639060928567436950935907852753628560977616905208470325294611037562112976219655918765467735474902186721396646595970074304431283825613314797872741848200221873590555137152055628133490535124656232819824391752141826919292054680088512801157125798993456272222768519577169103979220113534945480021173706790451721306814082058341682953669999696908151604611048374930845953089905386925906011565166660016860455913988255889961536559269614187866236387564616033101944084160057124221676046815674856346266969694686594526272247592985616498509055156203416611362586856352976623739448783298274219100257870318601850065972940700682325390183349437758341597895142201394156399268553607388574960185508671556273321343841597856139554586791451990104793566821777595221991156440868077311477395696267742434005377778438194003012975760539558308159517065784066857332111195464575449940125723054621281565348679567332104975709163772435440081500436344664828999738364007614382714876245389728405936276599285326606394847834841223142495899879551862662255974331250203171586719932722378148495644771408166215349374576087854594421362569948395114114039489132380416950995679159458590918159636361061256359235205128681241461192459684571598272147478814344699279414600680314683011684393811322538676003213662551471638911255840845611889817065645583503546499758214882107878932139309177102513489887743917076810381030135631219554050549620187633457503363836012930424118712371964575017590658564728206671915038911454745773934746838246380654683702542003053618439612669734965266991684692423762947574605689224519022478599949598053609965085389829241124589367957193307508612977204776309838717863849161826737376458989552644783767493439122248861954124310287993730256871838916383410302968688077043415987578307274075189300174597313248948251185306098062895524721657150663770492497968563373319010996691738174245448334507088371804987956188018763603631969875325283139649287098282604552533279545381191325036624998918401990312244028467028237483466074305765467004860954548779943618099426865568856521752512294720529489167527929352758130046652635506876574176914979903895857354255661623710144968591234463713150999318160709070914387710714920037554592992273739196225934854465135354130674292953779340167662637104140500899941036092302781868846915670667977020434334993347274621187218609887648807740486544396653756861683546543868389417875341598055605855971742057485203523193131891788972741949741058363149142636080577357944795590778753618846966133501648782254791698770125191019159117586923065695816629908473313509423079209301801907558520791454864488233473220557780068647238169449623049771296049863236716039522450882349257007818834046787755315137027844671881763898137558962932991124877059948449779789458007368699635794782489082116752245273800641292584957856255688417210459261663882283114323063827120061054737405946955292990924588562613892711437672869031028244712795282335806796474159197697901941356259735112977457749952957530640306807404310270082132782860835043048480759142268556895707654515699286957881049692001176790593578394672120486644499319619058924700792714504713769028203728518880922005330679960178311280024428967972763138712635215566787452130576176892444467599696926070413084526925427167725613563717256917325354084435509612688521224872412492563572831562025478731594241649702734029454852837391055574434636874572144907883770280230105516933626280691572401287291062259099540697996498145228320632301345496751813058843544714764464368990848269845012940167901066236314996907201855436056256212322028456867327848644929050064907867779628110261513736625523981927703210316124533781175392099636640957606870006394830572878167522113849124764433895268345756231166181371490027089249650608350933100610842952165538120055868884223336829365558406482842132193747411956785301736216219757656525660201415743736320637639124344687682828602025210641320178937654497408706203963490901574434155225993490672211255059021386600456032751988175505603028886614765281322589871210835744231532596549809216631801535799779823702719160885596255376325833775586608243179827755788787400668264708234932593628641076319216511841380945205871849241795283153700018702454687138234061528907957096628980333906635847088172112108473250641025777711461247575160426629150136050331238024683147817847050408409806809279486396743184655012159083553640347514030108047252883300780376586757720158459575107284137840622493309873163935817551595731101925349730454261722827958713402874952769524450031570211790633748349118722963008371611136322430087451003793032990466637992555503465888983367057898698526158701563008223958754331766798717460995941749651461895566668313750929037774950473083415193501810724157691166094415764815750229361840100750275175720959678886622086871966197115763262357046391408364564691747143885483495608433098779316684533023290606114810464515713861905813275613153379861557487938754303217701783545343023953165185530378554344638080126419407058195900006056249234534184443244342623368853613831445395756662201232054896158540506842670408790147396335178861671551447461509707021647176981291991172106439039451781687133778928145351253765524931639499199109457807858076620908071028586852487016922149488698847564237680822093217288991391409873568840895888983901176661891812934686032825718031079689906032308401190090279767420480575408062053462157321850510397353076608613865181220385768857879656460687158438080004865452139444428904834227465573733147578301796892137631719595644671510143661669262000336511675349998102358789321455855402855366639167135444240394404599093096517657577344227447649999337490886231700205591448463132168748643986900769814749743679245538515907001290892872045968284984580635085635515208807336470559558108717440001899680360834509526415904959359011920522341786944323212123136160709096490987260131019217464545372115115284346298109824171152216049879513864887624501865778863100898280031389868307311346310198896867093285605514080253573419483126905775159240722145583173849623277968941412235888872585141868127334731876682542595607509067171591881096894865259707044316649296035311515895462564197861961456388092902761208133398446406543953198602464935028661320946919374242327469312044719875011294350229700510130440811745868942700900095209126579375825827041301172841159920342892891083493696269368098648360414777427909598612385335802765263541943763739805347943853872851439726398641214415600071330194179899045223512294178166086768905699972832810949182192987598693030419102843500199532499692495864748128146109760588785730986693153397521394997725917027763177784494092319143511940415133020352155556551227869244854783323726714636132387005292090979239163061900161914987877578237360379892248570512455936647034731340138499418558322578449575109624419610038857401554271661801901052638102264766600157432950944278952333992296306980400407356042468616703718080291957043863246725462266464471884698697837889628734702117861245132723508271483538997221135365820884409238042738136789499448593369935935472030940137654486316967945663823822590773428082679656259509621105816354983942399533357796257822308630849243324149854264615810651666199967182566591513769080988722431680889655989671066469797155094863667255821933491941979788670965146335337553880987002393282662319569793932415396023407213162376175836904015727839669607750377051592405663507307355420826577904591397406682373162374067760730385119096652142379473375243429119337244979538093941440629863194390922543327238144889552725293895700376983812914549073943023867661440935168229216035091706006652527396092989357583322719625242738014844325404159542868131538929283000409310560136358435351510153739256758990341936918902813916115002499615765328035094003036568716823242532004517154419859455097383565586151682647675331739797855573665614329305633600961857814378442442095643271340373156702764231945672214177089726738760839072411803867441480555554818148699999705374893557653306901239321562698828803252915756812100838328703226543119272668172377283585275295441457735818115616548269489847128308718201230180114675920171751766208654858032189715837317680143339787900949496904852040797011102691343937997144872939527935228165900323201983115086940927667606960879230892493433380750414551337638618721446470917575790346090764426717568472541802585429555382716119968738326588040068261260971994730982578758813362961843755833202121621555981560546977024621310464652895054965844102864740156321763256986603040013072034516248799678684654402145887165132023139044237266253380806222540480011481827612347120875807509159732304260154740053051172464305435094222460396021336100732609334222451736638993809528975919095790573690756170471474715244373511762967524245236712341837991367791988822035982961325420278329830970949361858261802523824690242709395739630680246338096908788963346291604875735542970167148390117357041583530904382623044975068670789693009071018330111638399738460302988346590381128888099046087780227079906449550484016623956649298150887937345048411401072369495521401304770440815558259088511186276150508566415848945218258948580526084687454139278539060606410001969101352539738118275516895078918098883003242571345543679446651708136919958236844766877664161967721046323198870039124509262003407114932922947818327071750473241632466600231789030092651924798783184103512807886434445142745042796899927260213221228589559018749579339471813770234821142787731994457203156404501814831274155826033917897997230555241081418890506759995667592158721859375823523745058968744269778647583303032583788643705233947270556897221923483268914581601015218501712603188780136423715173710747559063113874114100887141472384470477696569377733802548782601886682569060881258917297198672728416486221315060696204929978639862896016302209538027776222228016619391515333234726273876334348782357997105726619036068612612853481444844602431082611544764273241903686479367213744699568615637862711635081865778687006818083377719832166250041762740492409261777111902048459791793372946457292463056166948178847673705296481396409779856274865197640220319518087898314842226020812843593024939679135281191172226668650110465941487775503301410313703567806355372871263153823460063809052118099286802206559579993535467545168945333567597396068466615105744656822272227286029559770515296286212976066366271577013095254363577498227501763601015696388625013751349429859476049648892681476143602602713562037251058786395939409376634171984531474711631022800248114056682773042766988345738329567945048817279387990829210003447240388980830218236195218489695319267779826187418872263578154555518958030967535500970895090047523593253911348135363732440131249686208201717334561682475585046036233976832034951966621522961621253682299157007495443451070189873492984496025972112522674500837856490055065062098736364266262745460082993748558927848587357075780460826398003156352834458898889965863770852560861053569238883557167270314869519262160250329631922022219495754471878894918121773978265504050183986783152646901097585047415108543485949714775973104352238557104603419693706121849604210401969729659568155842651265746166206034017791467041804530620842734289334603407314909674345233585716837949463366461478577629807012813144132028693706565852336388893915873615797752018596523559951548737196196114785477781766717552568259731150661633567534755374393396621836979354485359539929380409760546995173879900478317132185052744833026374077214386631267327578787168181359060200025223400642287802463968814628225751564361556607181698310207273468230981289481082145779587537600988573972361165983433960120201651916461471493982910030229176414117206537684244832323429296329270193057400356310167422996467344387319101968087317164494024224700672794685366953150426824323569559405001123738819830557327780297579401405437995960073932665552419183726730143613636735863624987182653466370425923919586916537259303278574722910345050056871885440970604199633743933870986393757612340320784961847600459868518435916865632000820432082343814639900734730558969176792281577225507387244273298432571391311630349615560830835376783795079045402042715866932082114427677062736716688417241868250969403005325046499131465292041168114466951135155938636885247054928054364166700294646148714691413443455349957938081988384181914381603533477422972739603188719203522234894588143996557175975912882228500342228987050874008408991824136827498553960709995981568599421607278548372236287058396791899091659189550070894038222685947116286504591609562018944256827107351514721953712878583065098934812518906180869084744181983948781744673061847046702470507920955942168695758312092055607364281781337712364590589012070736133839449128526984807635182819634005346113178989334121025147044982818143414663127025005221538143097288662317841059167190193286980658391594489150719922583078442503371684997201157013016535816049368248072789958616845349819124650483909509302226505833609397426271037352690070472205999224635903944980868138715450793693591209355610769081846078268720331958421028336032533026006008737630131299924247852252131519026369373429492387843411038815601718747637850551140872341065017335996867488273476401475534137915359356012123076298562633969425206212586486388323098062736858720594828105179100358089389848083808245149255436370894656430044510734668553825995141702243039954957922374265856436949704324479254755524389213255019240451632584768366321394759258304158731040870586512561291392420325423855698522653316154465365778073630278263869025902988663016630083301353090496012351342984181986917976180286352485151805955635725295031115731547087708315148202479234862476433623403183770332106530112464987114209006520211981964934220622114746416805716995579892309392099080304358522726532480286741669061750452700058975433958397300698270349369662360336954884875094292257367401877880654685843913723354822540896237738423997652263633654435585835550836164764521191942904166836005315463544407168549777091997454807369433186462310885459128997905158988245131435940744022226714878609950192624705554685972078390136457393690735466604353780827757964976107229825756972466080989787065081041135426600447779062627839055872567652928753620843216004641816743655187921013094757098883784677575162691127668944571649893044329173229335199453790411129244745469044238411813322621514397990381377278659755410602313716875578469137206363992870694632701039382665145930875712758251987959406118006332275094596352667160549049267741762640211252357650089931985540344450584635869300972627337731974252894612233978943842199301274433780907718282144135257632261611662738719747990476293144236804961759339191511446134758755486680813974460045084072111942943495729711859759434995115373677256207565339562104572007176757758978775034424216062894493615070293141715137971583372303791991477163616593880850949331809317883472108952591962423658080690507743926927830347260422398082268473155334214549743768805110618796267221784318720312293277213509841157287445126485486946890498700522759050052490435734138217827427713143763067258482609193859835591184425622617145763320729076187213731047856177916996799768298613954493266277315230702427955038778780918756601935584429602469808255636068413889993498644749919473960023877441536338237052339307003801457731416673640696539436327285613938341355957285851677138594187473617480029234076775270174471749789158300270879711156423292070898853573156307795020213648728124403941594922398826931668141839619591990340121764955037703037795564059454785155430845298898888078506498686882148432507440182341924864498387250498506405235184540357116423935719553590553253055730904291798251595535533416920990811939067140178539870450390727673689856912892354249407321420788784367711802139756509297567074801572408334378415886809739147500269564191035867429253870400663458412063808831894821835615938840337178713190537465654231727584604974813768166311685505699939266397317088055936771840689270258143146099717225674741139335998925801723145543673781777661014388198096400121994132051228065101555500614569417386334305624322821489242628117852782899639324445941111262801829466049192469185195616335008058113281638895569481756544399889339971223602841653577170016599298325547142852344438400984546138041695849701716182827201904318548230605305816965122452322110205832405121183285805680917655261775529503770839521156862449653227580758626357451577124523687037666735751508185022977602055885707481875256923856839762465124669798585910221122660004007584388794742626497362903678792928071041380552252486247511772033372702371573696461575475856615547618983238942702753907077838792540575094485426602185504926714434653316195649352634219458029179813240760133889073352259961471459072153095857012846771770750896349126592306147172760210332710513890611620535225827232248388788867887773546003018422983321015331551877417352099585398356195586920872108062969747809213018003700285285925428852613100496546603332800372828672731879999043348626672557922935356598177558975435871842778337467605175428992150101403809992199455354682136171625898491039807322861763742335457982950256075364075465151865352618126049193900269640358225753334760918927457755861820345902729777729526464370865975897307151632512439983114107137389756151318988700382976254728189104577351346126019251369818756000269812186639734124206766441692557669016573058393612343692624515040815192888076334042302816112510136159668851952808577505406286794677457587310287160678147595738023323063248941582798930489956960394114416257152578098368054535443980517717588228621566347343314633947434273610411270711174949910563072207552355734739602389611003718258040665383533756437252664026305111373651761857129887363719568210405624344531230389830695691528307748207545013410286556507750141639173040968779514873833836082353442650646871185086399590799524642427908345414261275260871579045738640035106256092038594648753994570710224243558849796724437007852386274143565428616129904896634317622893450140797874571204104013319896980295166353506868897671163848960271625369248081565886106914573659864618911906031763049948344335324439519369326366064508620826007270980548837418120891655415082427998602585737582706090537602289104334176423170750154948105335934226086787602486644679767278486322894056515960317707691532895918766106517580669590624748571194075059712957378639423606158926067308541618462042561629624536755192042842994205669801165908066213255776399124374950576149723266402095015265748119059291383259335311864149058953875559429158283643991366726110081554254494704501875596316392820242999370455012183807293972313506356044117935983762649457675841674771566666616788266009478743738031869331821765112764587639292229748555523943976408668567486079878771204395371721440415927955080992208839241854385547597893959133324154487661819458392025408607672861542223036568292043393064766834930752521222080189452046030077524668330519559016521364214775538740207868248849609219670509488645940104505239363496272942846939428639583830316430283858563722093783689021230264958168833165729668633907480064807237446954828118930984150216413864254925931777032528886732593309009322962782155087726647772788226906610557155969363883821831803126599978188551401045065143953218541633895001813983575847601247997874393198287429714141926477696755421430949056280071939948540477810519095909219249162363460658310711721522697307823778311751165778336903992465187317118256694311550581067479203403352479595429328278150361958779372809330590777914904683170917553556142832742897674527788282947131504933877337187070994901397986586634467639768631873278406947316407534743521396433002699923622171427797681965094747063382794195171892707229081498753533352521232615510396535384814896270487032124373612024385126738623164908523427139370712923310788459819799547837409114685915577897030348952352521712055857110136665002041477929968070486346664375962782946300078298354255928399358062556438509840500548727892104773937898471908672607180153157159193948820162636433315396061604551577341509813468080692471735254603606788287475754224181569432179307790093778298678422878971318515080978034113570131865712905704945366747019959569033753572561709035488371369320736357019763024178899808657950074578518554577272453448692087995861327283957244413796597914567606552449365265981372467062647517130512617147881815754620245120923240429504054270399633935948306015648177791088230584494286133338637532710574988222634033232987181153668687900610218806009370136117809539095755811425351873501944638144311068585766111728378575125982269063825138388375809754547678923360601598107981353270925943160996211767409885447955256060957590326319780998192541267730333754126072608586683781211749816373684989476362251621370507024840380804271816055503686899564614074093471142052576452298149555477889250132691774136172616920088716523583980152520712140603891611589720374348546244194845065071436593942963778753923341218562310124767228255178331433241135554678056473259007047032645880123600553014291131076323712908748671277203728428271579828416954249492471563619078483242118044254657280915120590380558873179495584223149168091841946982007218762810657686753386081616341764034655001669734475842674676698691496024740681178592455215093397306816839343506978274309070845342546972729675335336604659292887302925445173811528139698553023667241689619644333986301316459370122967531410898809883419281997757738616964751626361683101530401169647673041925580689068207309595754681681306375996124688833827356379720605639276627966624234826927542454953509979853005874929058344136429373678700288598044333917115456194739963820570374750282975087296107880392084929464286377718796333512563548471555406105744101984218518450809656279639213517864476290547953629242263035597826228584236740343554359078116879325408992157214999089094366810907323033111192215617458049123240923706719603878271567931192614801019417750201087013085491841959171888184715093353418568668035441905914572512870778202485204863852896701239474686117830577909376403169573404606507623933096746126245310060122402815567404312556138326505438118379559865991904639532082630572119487831460175162551444369229424303052400892300770979792997152615487946213920986074767781577342526069161544312976020280981385552321248787473313501859031852070053312276627431412118285249496890745771400081654776036889726676816093879250976934965325050780226581035102972011976043952528236977995856879809929731081561937985782719117534211063241110128728187713941572344510503338314512939818236842888601290508267235170354993073729598778424774669740019069480328663530729563883058368119846288232338246056365332997947241829453371814196663472819213366970325316940741508234805302816769794142426938414399159338827225138210317290306188139643152796905461486792125079595684175728214564666716497750315444773239451920541999022260821405269803528476801380511051530613560452541803583773489002709045250783334213541586888960050832905425135913225205569777517616505218234734820430448519766817739044122444514224467235242976028607409185899591066127045097421968644815090130371548274590842219769921958052421995602819696020467347351467561430770439071095643915757904276019804678817882367301012408026948791017467702165591083084354407712889776606523651725099599126615282684646325076626355576922738109530730947695906692586230891770426336542804583476536865674517752292649203157542490891916669383245923884516389750761295811068455887277619063862474421896492556927406835092576471023504872135105633080739534190257664921850682695428763526818646825419317932366768968313188209399562632204610198045651752153679577922657342874376553097848729162961750952025344656020887785941123762411095582562615662525968319059692290553536513225904725448847702033463642152544930563414895745159374162569351887821039956445710913311070076765522601912568162781017498482269314958536620358647185084637196427830351685876885634438388618253530847596520095884471056351121638373760511183781104484539962066095354485167620107166245104491111742102512220928992817663490096212827168345532566634456145618103006405449672651862260021803150978802963814609164956324558607801492823207101043959383483833074504866378460193716414675416993451041909272605246659144532123090147562086779091229977014045854140495302638717783461325267693157794304940070749388974632724870325924770952901932518761943861358288622375562761665321335542188454819288909232764818704322731437080418413122948270099687822586015658149128688911482658013202625114662389576722990613283787776612474010200765358100087771867783510650736906527302871581411245028446420610856638266888002768132239068781750389917066215082984982962040960103384726013303115923336646558341662437212299189513117689858950070945288229177654415026228463506694149492537828663908694649978070367129282726665620156232625798302309243663280048245491887207943067043598851801029947040903315816363687940042114513808565218559512939154883342216915872512427803565204925162609587823811138196467499930319536486002012530326495713177387640361426638566256524459534686527650308987897150105672666830421489617497027131652475947345503052803251062140759389489281108743227468836581540737711935573998797455551950614919586317457873187920994930043651845721471667472155528848859006115989831790645598849594217548730669363234644497508994266610251549199203185456446149529585241403021261049198149006285480889690047767609516452668514366660198230711762514516795634461260062989842671814394899930652058571795359292745216355647691326912347742934925002739975277350244964282621747990837454309259284144758414760642862661426297980932817198571904246288166702523414057702530906449465874115984206618086072458571119933177503432718073117723490336464462596846481934670442591469004556955744846526362867686888618237025601797938989336404387271631884965173949799807524770871604604040080592556411104660366118083587360123608880650773193620332012417381322053581338656006726020353949403058508589634837912296581358798600907082389730361472622218911089846798888723974500581216417650250356574723878621518467489879480856040898476481910948759119750373578537748067391601433017497762140379827943245462968691522106923676256079663208955478252098196543681671931700968078779913176296578618922626760745242420559479228226245066819811180535453188370031126965394718518038230207652617737445994907541430481296705697237911505070867764877503921000932846212193330136121849450113516020167807921987268048701057783535516140688680506540833061992691244990564614755442150976618006058516530954506317995046943699367778881970955723405744796647649746975825045090429490720082118199971737550301290656767376446408965723452221622060433745895037129488988218378392229712434339900003632150724941033282921149111887712690835048923767129262830628769698418714159459179210078188244874126307996701447963593181202773547017515211030451017891123046801665434462733530680020850983076477605745083354965018126949836012206509892418302763927012172287327663575492486855050597129388573523695568908856004478257837206325578793483811316056541114715333767587383296631489749334298277983123916405762243782935074570060521154684140178271090764184205900904506897199554890374373004736123059655503874093535185693321121771180832703335183487533220886146687873353768642780707113017724065303622164391639952649162844038166627555629352515971700280486350966082421317038315353582648077557130262823274242067931486061948020604986905235751245643904932455372896032440727540935240281352775996478791976751358794110413457271217520145764333955569320400011298998963253478501516489582070510066967475297792456955581246134863926144545722873952242215958649077621408834835810698250624589579107563929385059718526284324495178807966023585269528304331970895951516582146418779498852199237164387141514700252492921550972559040233341563409940989068989171364689641149331620809460496715467567306815261984240381309056244020300664759307518986984564660525624145055622028223075399568705724428674454302328660361592289399397855770726217944173568720197068239719349348306036735743813181850975639569700883732791587015884689090890245124022205778601362790885761760104464949539951420292528820445018800420757513649388002135123319470526715096220657935462350408940067849501538107090363528593699581194489323553369850210641027114105723204801863726771878080055496955797952813272834734613707752122205869467645080185248765505361190381947421179894589491221100459416904896740748766394233643060262993724589621396566261668827954503434291015380486183929997370522697660988453962277563402686100707778828958920165849953223329685840982251330354213634371315774897177599068666496649141006781537568384491274631561923260360282978589487356703991341932992033880489865701601028122069928346502960932282040999515686325549990254796291821998670012329151961918364653557033411353528537615066683751521022760879729009739337422111977973573070388972475892136625914387810896482773212432463061010562667569054731429208634733599172129066051281842872606970775341904603242788721092710484998179013443247453934701214805456192975620863514629088986499455995103893417391718034678184537294016376183458180718249092283532368220464994237851078792599750021475784365385221806913151250013764288487761579694821359014462371013234000230027418436687091741636750607589518990239360365067961799366514842482764278995621279645693104572707918857727596456978901754156071525905325110401705544201343005562587212762138562772321085639913148431662579431396716906419126512466968887186397325280634713665124432557634574012212831731969075672647402384304808311077203277122586334898281126177286972507363223101531162001732547656327332597660450574848748764161174010468730414525701853044136184068178606662845547236853787795691050636150797390079444621121240235823041363730054086661057970266981659075714392546990464297979136564465132245643787347046972538598441653795828080222382684619719635997332802413561775836973717475025449252092722028851206920682546053582092274457621781686738183207846988302297533088128955328535898728453556897104209918519143061019159161946264009958866083852963791843343915131961259469411488232767926650649377038920734947188540314764624840180683147804274454963251019027763242931620214636580479289561898033649298236417150538817213877213284108883787750906038239548776583813552006900162315620195008837442728178510249604901624075639785599272300706459350087250026071995642598704166031305843766846355306087793138961663372190205952327920235375455135349021125411233327279591681465229529365726765103680851072647012852736183415345931249123005116638304359138412273162139545127564552440857183179574235745324775502376973672785187558396489515801255026899522489752252435631760971251755485570140314642811516610344747020186179871800119234204019990071935236451716409382588899272664961336048899670835248159182691317992359360248054861145559122393847132031716670055311639483022486922792647067255980103318822226504110141112040462207491303126037317109146016345822934974742149757039038241932423970969507003478782844302964534031734620716985394377145351721373013049502176279784349949855683056474970241038132141965725961426468759219084871490280338579372599082637435889009933499131561903522661567984406459251018709045580851193272951366434109953532554071281457317330685612299596410500267090999813174774029550121361279258300617923568848384814623246105255719394289233417221922619519846296892433167309153128098706380186103264179005216084331099443295976662616854192196042751853333148713339516127751324858383204665470374196606346662243646986263831743165039121329972773447936880101250756633127587729259218481181334485533489123796642909442444177234980115745127032204157178622092003472729035817738743534545875005451522541309857743071194932101394483965248748631520532959783820959755508671362890558235658262830722746030343356810450943582486639768616054443693430062792125401245245979144564608565991048260566838009253104746073159377954631279345182331636274617466913636866774702571429963149148024868431476701194663926779650693008336166166129496356339474592277362143088844682406455413708736319485356772107293588285159954923726891237873573913079504127225680933632417338300056563830402358767093057092594806250353503526566041530460376807892592536635368145572632740197397348468241268478134191848451031550640076113606252611265584883866119654921292967196535068183565092790123926202784066906029363762885079828937480322920947593847858118952853161984618750336370171556782385852095658301727453621638913019072344786164605110713354005112780018318489679728102828190716774237708378449674453752702195603837152951209771521453005033217001546918029196122060762423469297756222211995215502121911756072056341392702293698396915145032617710615043642745587667722017494680332044268869719299660819999686997463160047804034826757862514605809530685774700316786821166521383392326084060482100785987675958985548569920453637320513734658381910547125066466434554697234439648140844165184923207582035759334367306730744230249221876567339674287851283148461618773901623323353646493131640129438786132536065110305487315622289539876334479646272773994160027975337248503199729709056870925818761839728887866055737846379582400409665855649070400355634788248526313435986393715565555124532611045423340347858037985414095341089961854618857571995450997195131710927445844827097678182652921306559183614414385053797846095752268661068624256506899542848321327306673795976419698561728688883667890238619555648007827509667818386603159555186977933391526069412646510506325584839632058395367168153161327751880816483040409906726312749975100192222391854268075051971490643615948318374731779997259230124138588292084603560445707682547996000862824014967990921508962455614885210097115436238949496935149593425140926300008851433760307064975811222234538097406658722036466763495327493475207695691667127802802058145080293296181689903171316108333669531907131386707827019622825334962344954683470732196730414167906830425019799507203658292904613467838539290606311125214810313026441586493060811408810660361664996419243052622612722059476285068381072024898982209567399807939294311071363462256145630542786033230231120255298868422947045817238861465028495867438131040751360312005637645259782089210236996490817539106843094123197707309638347896282403601724206630187932618031359365709472854701124620922879086174955760377861472874631229929536268161540556933738207270940176858373202878035732635846364576672072068129467871691806392935484276521079968520353055000313541083046051067562823680615170913465809281042161456690041966744250885781023938634590232072946370962062407627792303619779416702228450218455206899800782831291376313693403602264007958468010576139664385554517973421938665368767723814053774537169984501666760222456916806952009863225600336068416123265265229170633189978465244500763092392836190196570444691039436048080143739090656420674588334562925565780594035445302592642214945197198592166789079815005467282612535759102758644576744073221490094771868043095570920784257204153476042586457798572879333311863714613276602807959627310920431603630174940441727639780657544189769593200674199296152992023784672414504576847967585149404411012780688890540285897893292594568194532461276053492252748102020872650643636927855782202427687181797177987071554478326017481498959594406973038702630677281497424349687497993489576615434025449556786874449335312499842392927169535508675243739057230964108723092133648628685524210641224847139459106660276546738973399545089820885621293324764657857313658679431029112395648267045079442497195137511500256548647698415273694902817126421919515611016318075745778531529092358616567405249836503330201101136392206815023113091353363987964527674399426776638813350861610282039787391200635442644313511182362726216118817801906641488656312012204321503188128827480941707802648446851009411544559626182614076595093447254469014299373435404918410501948759403344429381339204224217720855666505483269404677663900196854860777551138097549222584452470937053573920009917127119262391770019244167846225509492738584837537831377110085604879843819418102909998520299121519319322335943908171339545855410724644292576492485187774296433090671848238952281464826162589182448576591929602197983487788092693627104392977772711434393606921730400556409727940403833443592475492364929690128675176977392143593524524153519269473508761835222694924554309180497353320797700759774643534552561940807059198279181967430815949043514357218592150376771237152168156683614659079977401768028864363623015709655149341092112489518395171746213409204059366553168519747093952322823722539590856058538187706581146311436252163333720172008077621789599141551289723575471789087406149872790631830434669652577023947899304397895123342655251554266354311069628889924802438226608936405872166025385035579606967799755887048186431528279660178794557593948775942643268737224043280106376656910822425126836507256027733813992909246980416628568747675514593842719455557717515726007669880871837308278006213513813258101524302512516209746353659664887826416160238577889037372935352400320618020290072408441767280099547201257540350289692751651730290454932126159714051946925108742930682435016181655369848499317991322358096943470499503227491608942355009560274944920856877022859030538189371911181798655505165091189431171276910548600365946576335168124036723442650588476278586484819855663340496936339362291529127447358352126870081304689719294530375030085643015870891835918525957061467328629074608677161883701404087387249156157040188778407388548147443709473633818124507624405647427408509115536419475682290343018790619659540856591574460095792086273449665638606638560715507880264080707774560998363806672494649972016985555906280030277659367595348796676308658538773193592170457952174552660839417515570927550770638875880373329996581790433135853796983364008676365093613517603319038417093229328630823154124531558853615279441649287179913855175641547230996771510001460194192097916706849998579498462810064148851345010251222451803890200959903568754143127499997869214633663889286093296926226150106185834387469039300509258779914311621639344355841727457518900612080337731182162746797256572120816671341805151826862317777874038701503347218212317754002029844416127014527700104430742291458898907373074565232182577902860139526831760058595643121225792102403344458119863557649450952640942287180958923181357644651483277991554038886116378642952465651556355965444707188589481603205107497616956395288020001034583955819328415006248924965892512183669892040914428029366422332629032376177068425902253016475123461826670264847318054250002127523290984098417472728745870957895105719655710268495567721734365411313972405809705341877431580955006979743370016258935363006096245171158497669943516615789293697002179030025954934526759542943568672991851894328596429178369331322671999093636883536444367395942824550374415511416425176013712190976303191990242712324224956665661890074360630798338106552308701720088823091957762391027150361264004217111162898035290010884717673852523061607433265512416381932175508738421707188697985461102863903506038626946593135839600909315661847580220394469871837881532056699098692399138621941472375923414244677193618476332143128216580976431191134778535866146695815971701488836092363448512972908302638488319282799443898101599070957592439849149238226240579756122386506176306427424719775401242397596278950571605504098858376746919122165219165210271610125418503113127087474768026566847218035027675519378272230921430240462953042540926395295355119416266440026712768277727394720551304364594509475097436246122173735787842724199940469535510002765266391648272396044679289659097248752488980527557636975089350584711686484301736469863303165668666767106001427205973120544354551229772130771657083595899690761389157567029988426014639095767837033585944333944779950919453618139918754913212650346808384675539079407638833036472809155828197377132208591861774525703369570661696410397984904692447832939130729133554180100139049072715178728386036466592358066298104100211663685335297692170903067571215375922329290377405631988259135899540982375825442701104776007675926632994169046559723548964190228607804544968456869492987322710422504669693324177505495444037551384837091597393842033160181485958141577718209613708327063709982896610456428364333471981806552745825894385635179776807574481311331897541594215162529710147483944798092199935898147868476690729911197070386166247083934947154815053923680638506571322626557606735998186009531959209696811649036611315839257000120396438751718848107582016285432738166403836199908966709323995279476721897063529859567947249563260999316352394948310808817116505567728446654558030411158504007810748057569739494979501557186866635403082205150794299246062401867702168789646097950737053638485959908028188985784461271912400305410213425779378009331107769587366937493550471715399844809128936505711069940126696455469088629385648135619434001989170085607201020160174194835824917415255887386010251116638071029392116818144260682354530969013071064920742028087326906891330839957702630670138694748314082412793485621903400677226415088327410115643074922297270095150882425198377942935042660117198305082689608735896630169193014637383283341067860008577951506560093661125487865271031390073937934244184150044808788001601150750564584027265975122342524286211688580201993428878080856544904455005018762128290867989600435398711099741288535293875329428168136918456542813889084018264196789970473894809413392201097480413806880390216849878478956667606832238623037073331007789045896040910612264377915064891860548304301675697210245503854159430450963363351367649183852712763931430497089988430487642920937256376563796298088216415125912945333042891854556783190755362387807274120332416197134277358379811260006809059200254876940380609036721855500493898378290936778616948854479332859929796675622215141294973046219007563425257264406909244837659016208012622443570527779212187365698895357612645091787912108546374868151519137848105722392694296076311267485320782701619453482862855158957112939534800142784040205772470666001680504781708991207924671789096798018428354220450075468296573958238847409114060690175654013845840708223474644019815797557113330647944522389180371940629921664618992712748624668678317979516328660118209439821691744944559051095462823689894626083559639808273813733089800759109847469292668946491447068119167647465437429864729968225933303329708884794899344133321627212021323770210274517572568764534668191812972688460944150658815015791100375313708593938375732190482824408463368803371166120400666094336522323488846220118228030929530564753403551377004259385815636082676692957234136737829035485167322700837956332495782638594097729401047363105691911623519208742415851073706408053060058917086858160707706928138100607539740734924302877688166880654070072014572463435926611940477734351976416954525151149625375071603710089903803011727943556588701118955330962084371501049735144367520621231386308624376198562065347506630916468685614182055754190772143075292268757274942892778248121375595819262928832269291896155068887571491490115087953393947291077077115476811974482591990000736079237293595561400756491320946362165376723338976934092811577870991559622238231439743468098631714960844936442916093114504485452631255974141700827602770827728600511149190882936226033122311391524840220157979370524476460625013658153974269989536841496597306056509884290325451404899841113895114246428079099066514707874156031650258502970755024294590620605577556580060847563112483004974822068377672969000266048347111515176894945590064407827805720790403203375815271409861107127046944097525790038904328430508169711484311364130156394466099838405717959762838578228619824701441360009886541649387329245787837834326702593152343648099117859978251620481827803363563426057630096182352811650403136357301813098386007164866490899442212182090157283477928520678198517888162729493310022471374942482461070372074686685264499275022564001741892562787910058029953891130881357066917717961768384417486980895174067423367737074012806052567204319649237379274874004314797541684297484082098375157843899582667999302170795043676213413105615505222533527396923071060961808036213044488999061703919748848834853961522618249092049683508307201310397922418797384541296518095169207344711259501020293317567379824096049589689720337764757952964542313621283179656759781409743036046979202949481006331858583548443456959653080340823167985255660719773860954345781707019500783510963467662563963346639349977424462655107385700845237483092165255344658117331961903551852493194031067304687829953200705989757302206997237119162836422588481319011250911235617095375988066841722927572594523705977803059028927035971493538217502690777878488798162402755866619430067963561874281747298835787397078863753727588197276090990633564721497325607517766873610960436042487957157412986560098187747022698802848926926422504760924347876920935651291815795648852954266191604266107405443756300735670051920306446792694763454379847810780405468334424801058390848731985646819078782963870955964930049565875665968957422996846509738154627379242822598218904989541935636256941164123888283923558162067795988155227702342269308205099096321488553593017853386016940313640879392917512399516080087810462773463335713967577077633628996810443399388995966211712018648234060090158963678571818622465382161559702226375539835730534977215288685863084570093131968718141472020988811363595902869962561762132008553733957252924770457560092421019188158911614153344720322554798456078077489289435662555506928540490391002698225244941081175230961785042356950133594801969646646500198862630671951973733927554043083789983863892971946199165448704243764217816190676173418691328800901739153475694367993387801481953837215257432087989896375589421060516060320625201108199664237465925747359773714653818292658219442155400435998506543167907700208618038403108419544441466874876103309803191540499198684532222433474169121708544227151459858222149688407622287518323489577794592373456088292510224489478268241736019132225675885136903194340516574097549922681169637920438996486862283604107537741558921370327566943683369979728916670391610596060466816449846770100793516386639203765790113731253474836971028638495335860416874947163335374550213186957042151238442142963856599827027928340879182419656209068616338950939275783743184362846653345901963901294115297439407933916316860274211851875832974721574134965076776726921315404672132791366401683646660506547098147435516161902184775872050704840211116223996781527571618115185431273674826078364395851306056823593999147616343196399706747361361564047329217310703548458045446404089490690950058802915124944409021547092265987673101441419707579445128692309505692924112011068521334312754275672560086688671130417126515257507805247716107378790311137328679873647311555807285798053733252434034395104047662527896559463005940986139386316763013633758713830003866619427309728020503918089909536881196653864817870165927759016739156221963006282352005045924919738527579708044322470984280418409963272243213039607693639156975124349893139350816260619164766301729428705783010342224618856062665462956434240143279611267894524724302649011494469982775483530250559666999514212915306122623777607631837063047142543032695707462722432454161141608302807832862143768804795317026223420224430130312975404900701278676707796833696547202913304431601906890435174587038368964177216168200752887653744563988012344405846842089203355124291210875349208113018521092690808620669915530552881375334734106482842111759373466759684343116168390763721627653105641445056500981346001375773028968717651792479000189174934774392206712486997173340000683960281512920232837447276188347761557080983447481394583789496693409345833136162837435489950541866588125963383384816949239558724589396006975043311707304491796978290739030758430603665416310100568169129217730368126876192829288625793130386415335731181940096244142649039429992700648977782546050107853210476732788942696241897430168578156344193161268168759138730599456925979609036388958559834869714578801180797861625953905998977392528787921615646956655267869937876010635916105053574283526028622648951457064225441163575332925571331403228095725818865426343861597956115773119162426161979464217204896933165151616183930180902130116441025226442991868818985754501124874476332129214240120000175284848413847373721876193006305880970969664385570454615393740931747230853163847709633606924910754780328556262209329652477771660822832294390730505166525324237562610271018560578939279805787089617293414296930576282831614101294168858644855270013697000286884293171860269605821477177820724140050375624134580627913844177340656150111161061275260271549424976442568852801083578607829643548265577884829985495576260213478983240135321206723845272721638608964151132381354111936684891442884260669208150827019255779893583801334907773784744307255744648262137864323070861420398671416167075699565266895020220304478085709442016045315680950278860106039882211040810779983316815140481812145056321698240490704034302977310484014018373818042732687251903418818395634008790838110941749560516158425243098893175887622164088320244808599996184495625724573024601644202222158596717495828278504199382433070548024305161442372033642140411149855466120009947882487529399279416652176986632849289700602771332167110259158469826782895039153816904114004823658676305847426713547227687315736937811624186711875953319694097242601725561429498967230412540578678359664542330261670889528103253705584487874773497028941648769792948418128846498514972190272052194400569994537315554519170104021477256707824918065151064516101754574611415063521167390989948178426713514007657920680324249438214546851489335517511996944875913256871622503345312900164165517275079782108827882974411258510112070084901433802506244709580133278282926865822410324288638906196532141768269283679470676664923304476493739170936842132713629825683647705172457312264531284763069549791052949649316717527173185247745148303644072471519793211645497737121326882048967563000491766969500670825893349931586270769016822258152587190367674894098812469366494777795744988522952431585559077015771085021574633541639808615493541996415912289667879101190978685837976908969143428491172430720699751975648288073296102845162872636744514484232927261209664598067479958116113856048210656034781616169472282452165510664876491521057605333765508480813165828759771105312203078399295225250581086812364130804904435896627327472431342072085368397757208036496741823844147972276688396496269421624975627991468420952523345922978919666760068498469764794349872361994672596994984875780908469855372390915176132779956601694318342594498417082594705223062853453567541196186626193338887981966859660620703233183902575557294327367623960357515033336835796571841762325080270597702673398068195784377427494350352440491487549529883505457412721655780788122156537427226676313981948828179287015339960496169857792143519919470554297425482514206763341077257574450982830601964912825675808906182885894281741867978948627622706952330304992127958063758130121753067343878570963961713175299432485713906396664961923946997663058828149782267228963295185808702444840894472466502433812405527797713023166396676002990562776716189699594237985531950408798198950604904824850829011726530923595642470113617290105420226541035027936944486205092785600506256947945115625940730218672790862844742859048517856473467121251181263155371136795969780354755254115997045354247454860367722942146758395137053997006374022838988446815925419454972220553761787879146848437945801987121682032814333858920237300743925681557977603165331028232950363482547097928128970927292768606910044281449861307077523974858320081761942020099518029803100228876065659966454987656377191402777097548004035347942035168453453042999864851525251777817362197433228534305453321288746953706401875916482536146724065616627174865240989472793617661841049699649870003346339120850375328993864525805290724984283650381309185479748278279213795166101159840954428781982807698031393233711183789974410018262984030004870618543306418024892456875544964985311270186334690052429558774914359698938880007770232388158916163293669624991616676618347524759924308327082645891256828270089026145903351676684663753130510558647972106323616569248652624654746121032979735435855275135320958004873678159241109117708001562909369424779052764700614766775068428411328137852323780093316796968993724996347124301494637153923693829434866094706178329502499504173964384820180883018243296280527209921601162659123489799391610132871583011147148962496887046112953376545920410587054854157571272887710475897668712093609830124737885343181992980008989745469855787160666269525798007470293038832255558093608982651751451522945533456186440037052714877661235907841211617000788021733322123653005020508743472692577208945537491650406225902594088789625575019053535615776023212446790035892116178402833527211084900360380263721121369808505464781443273841231357560059717556752975627172868446262489532631429068702190008096522403360450301439330921635745494431915853943677471685791686669708697088060830213871966854078723391055238778629059602065053887724974413617544274906685382551176035515767516101973262329177848682858792633925974637908326741900459841173840032463260327798548138174333760879832999014654717005583867674894819415334230344036699273930937497612675608444077803584083487326952258887829205722213463369865759097984252169277522615618244908076709195194541063390460644556753103423506550364588714754895734208319303593080526091330414620690363875704713788959350443463494423180502920469980060290932444557679152472093392846922554349437549523606720301553471766112633350943843047947542057076119038890580810595262929940650209063945235790006212678647509400456468503003530660480149081135640711877716091779056982371125297250220286711647687532241684113554076695833703719251159672951695706649076798506773415390058155717020753059542389698815928921884326645311515707072132204692630262742972254397373147541006811696821665953249777268123175360649800035574219635211290410052947051921286382573627398210260426957875299732146863648797296692734407158341385461423462980782369304430141947750776906910439394565979130684768732765422719926621488606709450869188513074550816744076135594371207489863038709143477101705847243283730175529384317928297070396197810195499194105104501337817363619735274850745905050036566351161491340212467827635157995872491869244662226808189720365605495635111667819677320005752109839174313115108224847461501095948359698637027698804309025281293673474870823035955994581599756057975582531003468194994795198429142009579032388708223685536012840947670953722368771094045892021565067693953836185457749161565301166836451513812440505200881041676383185792289824641349258334446496963749953706071822657656427563122834206824013783558423747040903445548864760916931576262318661858404594835342711484161138868315512233840979503649549428514694887484524911968889950954738018720989800381893948033403732732458833167720271985538034783508698443502258588006360355225667154741007901018699788123961457724463062276787878203437942764193014483430235962541592776566244800328207469060646064501414296950741352805048930131231006322444935701109188758615175755802531943784823309129869156630941905571505761751047319088326928471047164161012296995970479894384526730502080515191143166720915162835223458074797026967484868501093473548846812555514651786702443422053184966549888402989690151691970378339829170474513937473595599072325396369441053172077256384585066107043566277175489388168835954782338011358834041476737536660917469192776207809978875776007441081437958306623438232688963679019506149426110202748392738343049007785453681025000569889066081675315012753797235049619909054668313893420577056968109464284283993426300601142710043316318222650765385050039332982601679151632535595748212139590874259586592077484016376142075971812786912798315466952152107210043011385444182733370250951243089003751554551664180990910659935520399381830618479615930506892171718462409275720907624575122853650603136191505359920155267363360928478375496777351464473161841428115276198936963137337584932907144270304249257770202785107419638888140268276633370994913909056579251750843928177493542405053681907721796256224847583386720189608825067335579508540428940660129727009912223094553351667661137450861254735224820208145520226874075984474923163747484633441751630079603447773234820175393973767140901322607362896182190813144491794700992380422383683766644946450814515241971187969865657080116385190792735400598258672628879610612851003904343358213507222570647426656709799554747842358244554390306885285801574919508091786227486347491188804335574244746311946444633184641853979886251430591220470778267679440967436605099128180296077030788904224872138309797592363631049385569366494312787689095198782660527869646524185725107644592900916464901280633579097037018404970249290475174762524498889719424242552653822099542767997617181248956861200750802474103898973948787271663404543443257785588485341776498665216163153839150814073284632324674318097377463570545238886270114855089463453883822812443740174475420809558914226033620944523444054584604681507441625243557419012907572650109772895320940092371735671565410911233992295950307295345628833103717983247051784149248038863874442966726127886044577445333586315783731583502760621965033902799790435570101409967318121539963319427614002399691907970435468954424750236024423785036156099358290416187047151232823451239467935172147987384734290079551600370998515383039556177795097651009992681805756612599529728225320512141013684188945901225456692697993542833662383279589025709040275691781485645064708361673805715669437358751471985027585750437895821091947487076374217384669843106631222395690353984930103516894649046438745026831873300169546888380161162261750431858711167531583033133135639702347979924348455058150678934752356263955264913544112112016060931417596069781504868857740222576889247951785690516933777241777092828381233707564394891019843097630824880799501028932535357373911202176512231670305787710124007476366300611048797809161774513699166119359240417527596988019800852662441898593824105054415933121795558678274814834872071321270408706633217870055943689608298168226714045599273390274076831675314952317727207683831777281579979130216113205984022241994361698875599395387284245223916249592753284328846594214436973869029382817684623288349909082381817072062349589358376815673928934654132471416248602315201631651574212680176505604317157808638286504453357503856036570967759803579502050666119314214654704207581917942216386933536250161399307709268743459950593228269093537096836768848556347521697856037434979889913661291835475040477115221964177408527309042565084380313560637641972198793854282797836483719062923441910904202190785527217722773769987399782847937723367826356663702055088366101227205813191262076249490178071172341912320741429401356012986137302649886487438650067458871138908238653225079909477869129516008680549562155934109224837392516571995276878086920453637795379580825550697438134070210817614993497549541520394481178722053812048415532152719073171506109200189294891937873004776788851594896497456438146107977184128267367523602590183129923447365781023951032255260319175856378033933046274882615171519331229502592956865429877440747170006632239490468683646192767697050626809756265113292534668374269713381572903189862724533595643137405013875035328450785115193972601152293952259850994176857097835987729757213462050990336696806422311137423068681207459092900332931105403042425015288883599942542879544683236238911387965031730854480191396300303544438501416143518425111459691677814538222274466700972905565879646366961883697692843326734615758836667556286656132475957233766979965896655782330001261232223464738614379088621100835770926393102202562138841602079079840759184466745208357965610542174457125113990399771989221617883800731360108893353993226607446733198262220587369138419635349624171375855195434940791196489511743094682469966887188011927908813242740273460955415006145634852911626854809410118501194326355366236017276817185162332328121276467514563883517958518643392708058304315638372217088551504473623646868177061502061721791909217963768524534959691223848956108875855421567751045926901081882116209532937342092724500189881470810579292887589717877976694539770611788336337756518601402098499967345666537882179155935762787430770074728663850595914147028418404396396120333361046050276277154947405340190956145536945048353435680701503588527276379584347454437433913019378605364369502763173404415768664604663377286809528857624228379222431818505248664437120892191806111588366490753036846324923319586696262702189758642050461788326643365000987924108473688597206500268566110810509665682770146276773758654311465938214944070341232781688746513374596212301311234592094599605182930672015522752888663151927427160165174412009038718179294069277399876489944609927427646884089255512426777638173105164202982544931716800388918042546032925069705518069225293456004561822714296552219855289098879848870494908678274699476583832869470163061369407267293153513254996021076362076210909696102557834993721247658262903458182191191415524560330763978763920709954852220845672265553058641083232620762279930079268458233027594467284284911552615003398496106835475624890178196081018792649377806483765153733664235783730373371668558448778052774049518286633830890463225585984808957636465634129421872208642675880202737016645311223562353501768567150137558942616819120115121575831314247871169972369463288756508608979807580118889230427797672268910486351957821755445383029984479375436208044514684545410570112493392996901676062982151352755812930395955301042321135708668114533738829590958566148216829387037138024827257491160797850316263564782351116995843760004670185380161561258887852826091759340132944833827795246855501250096042562248899998549031811828076188417826249922990509791210539364875710144268724889422881067577772276586954487126653676078512231726257038193992766572650058356156861019400122238169188501732582809236810960045314732210801797839720968431669275133250918422982462535220137496871997669720528925465211072463724127147477557105673953678798183275398593774261265265167315538819141742871041509633278596073998228830372671044302024966126854721477142874812127954241241365134596280086559143179794740366064573421842805333812738763676510287297681092040440889119878011266619320670756981143646844126557766723159870708932967081602167746286219580993018966751452820040487825220538237463084182245077220390116722811383519930805540769205885083521350661192985328413616958496839408206695325683358738603367619852745921589594931571219019774598604701280095047178752212881471158603131573178617668517729685269573014077002339601682684324087529893387940577849202104942147263908120684001661536853879085222808149285247709498844390322062404886680020502560846960885346035712491881463085069983981257445571431514092930820059380640738283233882649351897607108234462224132605504338380565147228414077452915141055630086103259184756490484696563802940902009680534872211150742736113903984137261401165055097275296818693602642356153529911276088438014548071332245636492767215762925704018897265668580196236914363657318872302871136648862649928364121534234566300757457760454779442958844416598142903620536110142947607038514840577701371866461238957433162718401157527625698421609383125991952006272895094799083809858391459942138500210645140657722806424587141156032532567156632307791616730809678404085705456585365334328304474258749656399963595533014838232001049233284411957998688184525755657277459993587746361806782734873444276943059322386071055297185532232518932351991454071605309490798619072624085317597106676103733019729472929681007275794630842508906561298216361647217212866597211261990659567145737157610347785684347959313176433851538100447113222526988578350699176663123936892147128528563104970400198664800601950761654895462134910076859098831400872747436286474393734896895238257996317128993778658430666903876599807032199048896176324771948710872098728194881797571260016565572787667305242314589077233674555356394811969239849542448446155527933018459695248683857312608229782507211207922571005833427055501989511095941842320428375216189426214354169068981685173649382918389228825740032269290689648503983974102127802650457821099385509007709217056662070624557234258704727308349208869832862300510339836985399631721077923850826969066380604328219641975089434729407954642563751998880403983215076150188065914310996994508664500331376266278110614854820765279936638328119385824474606297442537009276545099981462590929138427738124282869295356913489992401294017484060670107433002168005776354716983436964055784733899144769296310548887725815609557204818742688943418581584976623912383338319702751167562914472436577081379679481570916660306073378206452440436229248786508488866219997443952042173720299461047766868133160401214217222816321843042605662091758286984869535239089898115633595073189733308441712127797831867101880295168317495334314614310996296233769568252787033479141522558932284315735024934203776598085811411867171936716011527874538696770347844345552059094495436405044470025164044428695829796738566322029801156771339278367287908239950156638706281995386912272514392146268049556769162971020291681159984515610319586835257083767971352782789264292580580477980734347973960883801930355343721040221876402492559101038270437099413027583225268288353001896886005883599914446143445724000087842571250139655042828295788909955695781960452789594732995493881621944510001824184491271150775012310075125688876913731377534640434330117571597391171917939170580767293896932399088397033819034015454438137017625990409145884572867238262934282844855864990771030317386575492585587617891112328545974362660247314351030930517956310463380560473772913734136069271888342027182743543923725052772449748579126241702678651153048483219329105140582770881898999994529366678732371739953992383588960901898536293970161406249365317625205493206547911103477939078065248626536070261877463539741041875095905301518405761068399433656375930180902757341234946342529785779213271241488344689103391768849234075051814148574703962834442703372504663955675960535264845728250455697430504129472184106578928810025056081779762721231318200616790893664552702825227977627786701515919250829125243718202413971020293612067269328951353714426111271432555640300548892427926877722533001402091437029389642962194585353432613527850560789932619605172777336692974212483753430168389970205754000760317164615426028582010332103260063788124637587350868554016406180545892745041101811733931558300241055240360784349047731238762902957045356506059727912241993092597636135723349889276454896332434445377367860585916438892645639531025390236962221086634545236126943628766150817111483278618753768620341530055577008211621185587024575671618701841603432773395844847933348793950137693302056620096525540998606559676774129279831260010102342339497468207258344517739249133564542958700583254381686656064856988842837831715003664053450524978280262363029342442020999373078170818228314423397725735268136730723943182631654619883943774955466383261633865983526035875255539850862279508745549810856767573276429724458944754669489173592467814976343767887430016933548105680373663146823279614814618463877501845969000274985833341904400682454170985980042716064057944174661800346714794539773021924467563820559262843322758143150405070470364268611236210708616081521640577069225313833836933614680166452152469421328337741119197843282655047552603738732948184668359931620955248286552467417522207079536470218213310016545493981806458121376671206853298000335767378774125346172697813270599025553439119686874711616935917305269285778624825914491887906764410451162413709297388777771461222022037380988091051888858643877134774845363092833873250943544711662336945415607587980535645218062285577811991055465038067454877851351190590528586767907766062001800531876672119667362275390820984647673629414150484899426391679627533229693681064595887230005159636549055664209197558269873470867138161472694050418860886572026357672096016819717676673148993627685928522279352712784273145169208000460332549031040276451173495990135517540586441661566808666847123281337327919278416537853427301515220242530837884836619928625341064726019629166715310345671730383759668290367580758317573870426982814521044991493270692218799150831665422862750994737036863328611301089184809601144226512480527519269415011978292714665187890385181250540197191562116355787970633354831230530347755001247720568232263285679305634190946748160306021298536677079295754175007943494789200678730945355406810367720973835273391016764370535985890627916872552105043190064213943042022095940447294316395258472759496658324641473210209199747734059419318530600746590024282057233093643889108691544578166076218043541540678427088926513445239289370536075050807915883960191722879085167777895171583955616020740802990036669850710405602255873470252418524381093485319671537354027729007807266302188999706519447096113986798246873576511685330205425482234872051082595170739724113495253105542129789202358314365774540594823802322093654868760016077415714585049073104867859595457423558322301390476632527860134628483336042353346902592278155664247157651698264444250722013004320266348892369118775679721184845442363632926385856322779213991647051774991209735770279596299267209528309720887805040880313867668960388983131740613468991809865964734725794451804525700661676478220859454375109513997558764870038013864592380957908857320288268853153332878021683507187854241407163908984335581474223590375231525851228288546431718874898970208065786455446292449914488068886066610824602332708583582337418931519969403642598781052869429941750468968761642171070573460326935395790536302342925080531633725632891037694681605122508582793217552515524264212113992053227123824985043022866998390117923684188217405431220531334604007384093300483970283588652625159360822148714878880710799314184792458828246432962132918914042685293168677214233762516607380029735002557838095045337918708905753928433405860429321554176558831399983191658607294612315572278242122396818312709478046155733521443246430062254038852909930424639780742444297312338275071599306921286708907361928347977705007734078063856089975153574593245016089195305366572954083889656972880356691967340262283714203874230722506473504119071875945198915784849264671613819788175815022130719588017292104109629615008926644831048573090734899840881150802905538321329250993832974389461438133761673816722369362730561766133275514208929241732031497762391482108963677969658664127471813650159334838512564193334971707735112182557641308489517733656085328095651200566786163087065237957082123499433007999820104704972557488393189908936692448544720725763271765449020230864141134779007686655720609996128224495525647808187126692580439278610211467562324575877646956195389847461988554749100084381938919712316838174660182311737232980829443495848148362420549485044429417330999809474256384108133707176043872554691351309910873811829971014737074589890224830385826215840823904836275851186672240383564099106763866273852260937110632639592435491708175600272957802592486970737089614566843638633886032909582547125421881245625432446107706153026054193581769613863828799142237722362501086916745961512739070077816667688794401551939545267699556723917053549102870442886908857037605331095233530685850184296208147296562724208974288397043928497903559099446180843943196957441054918730135227855415488909799192748668699053629473779992702605019595802126780821220861350458063527654122168807866244794033299323648191324187358600035415236570854117183363299449244048616485646050903376926355603408877186927540379864072479409971311998900120003348337453334711717818002775453547611536985638177917074668310256286776475563754376513273351989578407231009303036630774352811690310305507288935518883883066792340918088973081801197186174111447859334315369809725352201413006366971787906535972776582052248496152788981940353076005969060300093292791363446335118394817681021519086374563760153081147731889786375036623867609817626708052406790841211223526719497173359445249620120111356532116017689689309001097400823576838851017581629378864376845851750071252749550876792344713517329144151200802934991370271014380428691386987034966891844095130278116835023096025943930876488110201036347594634510707556697459893261641677260467093861736238286561256200793177515758629954309974325066069401810687126355550947737033358860281570732431038165691119677869103570254032102287587788560528955631930268223452208549439919967567281815781326607718560366686532250686297908249796861008549849331302560580644244175770055206707065723116279288467783552565097305635577675818131496185407871438141406393021679133088223373212553306715342736364769010237323650363594536142168164535409006091777932389658630145288031583074180590848549930605633419465892253890043449246419514635058996429597998783355028837204852716749201633257177045956336044190675220476121911792484996597376211463332823822501772093434883830152039288347977912843857092311327790320101044489936547092621388668709424832646611008530288963987776198572828027873055192396089510246072827791173600203945686932814117042506915681200410589614040697489284811709498545128023121380595532361208821592308974465824237592093891847018532147092890950392677563020281002262135598769550492696844900570879105063829833326787669259597038986614171712323360024320875566546315636974574030024381274478917539878096356591884904662384847361155493598340106176683929359554735830841688743890023289566709765111074445893649347880327955705421471426627700968040554313701773694898880243918827410731602728671225592682665317369734261813078345928644648439645544567049277911919767916515241884772523688760116993072458555311129984127734242875764151193312430233349640627712877323365558425959472805608745914141083563390972836640424936871310639507831361671072986104077611104842641892702563324727093724392643989674908764200955778714923381379337055707537540748382797252533293549063707183923775451066016524428120162104912985528697919790756568692260641606566132670508971841214310298131479211288493982159659869560562971630928023974786000526404833901176456717260143330767439933397777300165348746022942764300061203724300824013696299702480006657299397434973540959724425881482302158046843889399326345721695097161952970660122562373732086495794425833392804437956536390290946908850804188965605594202614145372955933141632414292731119598918189486290719392849211353123924635347430152419815283202309606064322207644614865137072863553148150248155459256564251505116579982934862553703868923997176685666823165854426069119871242531399156340310435153918630810778834719342776269077103479275979256298263643958113366386652061647832876671644962719396878591348967153629672634738114433124826493384321941716879294790565907615936344608134114010415401509058537606245757622133321774487512971984353284919880930935667694325690207641072774365928687898857582244192217258555162890266410571980334121768414181260683276937906736104098327404778666790587357915640059066285399585185194604166103931694838867945106141832789270889862794586041267116932920742664756255406151205546889934884324222375292335182190020504139855000334657299113056984149357480671436474115762195851495867269141186178028142627099348320249975157904499114858460746832856932890938279709038306485422499562245046419161335644932966154774564789026643048205298445993829028415350967682116125899421774328431616357761264509127 P3Q = 692407356470820180666766442267888773260221115405494870577038273896690118200044127743727342461043331469680139811144244210106429863603566349998032578214157804631378848299815682699574143429978993070170785670996627674586570665396716412786890835661213741904059375718171459035911690447491945913135419600531324223885247005372742078738202779373742123643256919834090456653023489355690379484533114055507107262839058901063169390879023115921339093209845034350962140546241368376747371770978728129363987996577814227825968330330046734228844717459774395926977286996827157256346261335096159222968500655136705145046555205080009788692546693374239161940515571229924008872603322065124136330153853819266693534413993616265820996209794807900246500759927767670881277411883262427491113733294999074158363607773523087076237638434197212639059926929278747894674662467946237509569137654510193494698401713721224008134255675949885465839982550317934665389180352918488786879357668088252457535362967696393111073460485096037144158528091878392753216881463123174396312692577136596712795477550192135346569017494202592915484349135239496355207602156060775932501127082292787878851540140578574520741574925825132811150474384128739607076470499751558837568669208176612757135941040400348954548104299110707273983963478589594870341045132473103388692511863721556541405513293606442563579796439869880443612079061939424546364301391984915476460498196650642870904090397396711921051075152546422782963536428372638119349531375914031446963565370772102829657221080684343166994204136712790233396292434795249742759698049515101253639065410371715268720858974454576387863133197231292210957206388759667088684443119491057393082831135315194481619623981417879791833837404863885789830059397540681227247474082217265078151477529915426579140377766401574379623551943709290557365509686157419156756246667868108074228095815598844318396392252145152849353182334501006848757671260239120825737174272802790056774970719584102600283778827041996671092705169584242022922827489377939480419492699871797204695172545003649876248272121782992352059202275455681898091834945792315432357319191899036699790249080131195335137087659159449575343057642449451914841070820696928115633840514822656015550062235535273904653025082510878220052620497520772710767458145919815627148790730768909606807067534280801658880687175594892515239024692108281196328067379520237414107450218106752501066600217768075246199339141458333758056440452060182592402486248479798145001436461448308720634071566311040616389293067468621537481777860441259225954216192670104139266505648747228517285072743121153766853462681639367048123147856811546368434712899627513219610597586518895707435527810552824898572035175385092060413901162428588474356650442301466827518858228270968563026095587729524847956900968334961073573146972862035026443808241118734586920174810926856019899523102708505958050604995832824554046721312451740816787163795052259341282102089651443139837145202763544059576854987974345303109027643861824012672223494986732303124876647463840184684496262370699351297988529423510007749016877711952873578233286571704721086482469409550047296813849645059295789192526372116310274498702346068874964570390233509813769929879628499102423275798206606719669320032466951124328533019818113523868527491907288373631357718763614686574653662087834390708168048594217685149799443179503416421287389463844369355519247873592274813181892756889151702652237341770412751497219577467596645299156841994352146485040517508872187332365166821984031397375637949140816954476602694583151417473469965453756405128170399352445554480921764292180050705790658040857863507782344581774368868101282869563037840823396249538482753100326687425165864217085169029298758302529430585631277605041059052858010709320918191470613598261958540909793316737019945697542395316985131917971167261525171653680799919711616106733134050808291073908067734123688079097525581024708139478264457785500381833348259620473315485530972674922086458916454196551146241248238142402729784712718373355179393053385777800357350750764266349304097120390305204867446558738540096431617857855254645059901594703708119628937801181011588167474694671856334642792944980923686674546404455906268480186205222749580467059318891967435542377539155457451924407192733626551189603551710331940023388507279488578672490134194579354610425252071270178247828896262183296390574483964894882597824458987415278267020189996910303007518789654771626590098457871076248272115720744877908112431976983852583702274037396186842960414478217458209482835351733417086915669817673124973719361696929375565498905281060871903084264460303811567805091583168031001479661578946269148978337649714611426003130247291278171341012224269696153680978300037311689596390146984230063996455858197115359000627497311272748428295562694799836330367647124170205381735673149661675110332088994472228391310949187683263445331969010149391031560772953657888540901802895483280289243755983134664601841243353714426259870684905357991180935246493489198434237834258981301987004087260859866543196846612418567589338105661227187568753833591602944299543056952296592301007423388417478040003940414444915038120732037048559246341019685297101115875990471634895191559656375718462374905427884548696653799612505005448862759705163017548173712931287957184711627410796460589680333881748541535859820069755375243724924077336586320307511404289808667421251128624579970951263393707264321896022114974627157798253618466792577147873849176499582864998025797130061098064338999157894588703510712701993588966671154493982174534212391910502446801675289706163832204440271508531006388834946055319485550125962159290448738566089926085840468266128033848979763125894962895105949846099964797834856382755974367998240674384766710755069158278047154472080466298398392749997320177045060083290886173459859573473687689799582921329079810094305436720260192060097178327285209193030343161032415956511232351372481265773179645941978907414732709202593226511541102209167823709496099990859101497417017732038796323377144853330174704678685408109684371230642678164590422450869121720261106020970642977076993160603388295454526068671015722741913298725101765699649162197674302921239431134034967840112141211989061241498191235065712442584718045976116425865927897440937149458444690738755036097963916431083053413472557358756728213276298727527968009066667823461099634058374837285764494490670675681169340885112731441177834094137217027622028779808369622736599062472204663283812692783293227566195090174919740403988806540930850527607754322981956503639553809290641382710922759825205522230181635477344769994648328806007026558436020379257703103004899898787146684579719972013341656898042028836275741512003940292561275143030214340075541367651844918850504473507200067499382287499961810046250893479903239594279393148163926015655758634242631227124260670982462872794999712167043582934117962452721578666477794357800223312247860415114841136723846270659111898977887669855487893446592151626265253475840637360711790917969123167299840760174885413651308574784531699441652483904373293790349128215048372540164482737721820651765759901819227784826708320116330395624609084086226445824956722456869437797499420174335560151976092598059002579291198120567740285668393662636170903032239007965944605593834590092552065046345914497253666778815474303512242306518615404989284542787424252795805780144389780429873710792086647680493593008973466439555583743559571244088581673572001754453953434402934273386889141498331238636357009138267312613189839329926163946012227382993150717785345678780410175078442018524467466615314464507088767090991567505381068646993269348141751272498410272994246328997809095015131194735755275957398946881814958837197055210671106899828812426494405141235168670490635822334627480600665807438874838685542974180465916538323920373395749808902056231513731386114479188884107328056980365437564038025715749283418643707202116863547503535882061343931877462723016373585132761062105897225927310536157006628990121632878661523482660312827906061946541014249293964636688558335916723972406331418393201563283362159485058976428607271588569392345628299049633176509951774346028154983328302256611375144962741246444429742386427385952196943354198816513800372616871126299402996964930427031900925942329258894315068358219839714779599616989354226334620945178214694739370611805164477072697756500388601512299950987731236489234891519246635312403081124793477658313827817938410312465676220714156534115662629705949016292182573499237225546122622871430594661979578403591607195674670320506937682218123030058366389456576818475925458260894928709780923537499152637638301577506321855720278589323054138962787810473838283108074122634353610504551787556866154894338298769034893100075960328593058734914555642802859821989789035118487957847140283703337287488372816243548630340728435818539855937127410002309215039538485028033442095495874612881263199747851280494145032711337985095210397862351130505300965699078713063810543639150890143916506605146025925296961188824600541306881275657576224265688947082138022999063155331593150913928066433099335955764728543932563145995949802551157083284748756834014313713457029975115695298010834013947922127783726057497378560453348498877206266362904475639696131159810117328356740027514619580196764763561226092128174711818541560186943032522766206887981115023251963607231204071121439899861095623813612539692288566949525390401519333972881180195531350309348972304091251641525584633222446549639792927335053025067785402694862444254717441669247060478024476589992394543970053472287177542214994787108926888991303382748743458980704763790397546055342025792320018110308262407274574146658817041175792337649562199258235041584338434129946675502696000197488608454497789248514340513928022172686243063369209038007374419737596261118866184045117818755297001031195364211871270206181215419802648154513748311687586791485434970007181340863034851096419919576112062559190791898104940722859237114006289658186418169469813220561305098374974804142114888030790812472414297527343048475517220932864500774691911838632828839018858722191856146757271878935719410546754772774730171958647819645724560517452526690992139102316724523503302939788413469444471126815310521015831378051089687367161418316455961677858086114769451520507936146064417710236763127556981455710526997205932714156908119464135445505539899161301544265166982911294229558271908120147283698381283894978590838485777430537744189496233309266200395584146722846728013122106888898886705571791007084407119610166942292642495698140488567525330764653352881957851888859573419644408269690694953142872037640514771727662331220217055040219211288917985202713137810145303030444365977698336792504675141851410569417454132189745273252189336523149793576906172794257793590324380244214747342633326847570909470013195388857210747190219969134749239387544052605670539969145506436242402936679218146258793246914373022199688839197965106564509113930169746040081837083801609187676826326343964821250902494166126825663657746086775146082077142738697764552736098011111469123836215780129177395108401877366096727207301795039753782444077934077858175008075419718079896234577013383668843206761976466538479771594678778351592241040245036209683174900912496484276912533979122812591110122824935030801047957361043852912658841443833040785750869486539718804697078884261179942793990136940586722266692934706266702773361821156900950547785661079453755587954746594392630379638053864222199376972002062909854674646401885582614860294959876965985693946990275762803908320131451129996467828441321344149516975033591816293592885750024621026917810103789385814966925846070554016121516796361626159634975054130695647916278277404421174031974614101554395968500675226006689527775943485959687787130258723269076252884482816790709537773168614244907382312500575565956000365301671075718109403490424404041547982366958704094279775863568577609158309840072686768704930976812331221133484294795908781358557028523659275531884513635380822878780194626895387611437524539933108527513082881289447153459498787489522404463297146958730938440167421416190966431780829089511410911321155328906330960680870580004739715880694608137086541930597994287839597145266140948920430745709714092408595517433264202974659803258701345005478591131186149884962913165696312425456270069643971455684292251247869085933242879484226069690537247395604561609200939374582398544842190755714633227687260505484420130999885057245970794057928763040119645532119287902522950302461145553478365693417226222964141770289247256524066556474941656147067087444298241856610503469885776614716764630174122913466359543529753197299058124981358598506845646238483482841489215456245529675604559846754204609007317209565275787603339048118236335339186622505720217667424226882289931156752027083660444790718839472151171546845470190306199988429126808957913818166939975925813621549058969622871898438401134863345825140535274590931563622118468296615323542941137295425122779497239375601553356056301924312853279215194139790910064441126580019705100364885474706220933905079802946080283311247787585733220232965836604561619071194667673417274263363802983388462828517948072156641562693863517523474681834174058784610183812899140829436734503483947024606249514900451466774685830168893447347373318590555485013393969653617430008860044513647501207081478802718488953408695700750582236070579832160076649608310945279753695726716363211992561558087564336752837388088034560624905198386818252145577011367442558625992729665674084065811028429656546038858339450796319169335614815728080495835178077877326704216545560553639873759720253818438698107239173475725211330530207741344602586674202354813265171041806555329142881752443778714628674557847331310964923094540070775706011224316761597047800165342501343687337001029251832789078757743674194119551841072534096239837850247139621360396836174840533469838981310136964512366030313991386230767243822106130558387264347494072614781614813258124976364827599531862653814393010059154233384964596083916947596900704938209481615729742586884218768656355840985382886354725263373820164898668306868011670230612632034044217274297807048132323453819917115345463491032359491092233645158968220349501351818179559515982810769511928853348862316275506882006388812979354195366922326654336941186070204403148696386585612290030627132690057088781249583453573147044050857559474928102313597446533807470866163232102371161759001158164844743084003751792476440343868662104367562692868797464712670194262865476981938275076977480337629293930411777225256000873032150157916853684573103559528104472329161401694970747091609602757049916692460235075420340732594787453586575622809778804474272701820766466361535188298202580053659762233454310808042750348634896252274832375185309039299421097868353423425915133997150490582588057792710637373273817757181433573618946798669497142415807876006246542616526460548412102482817009091458919333692921745075671493240492286816107856949936416713447010269519836626521976038369733730796055149928257476268783781019433927314151753504255744007575972277517527860410999425835383035190959141311057601837755579324884382138749517185141293318112357064799349761381906083968136347797249729701608099657035275218855591549963278163987998939730279581417281499332028102654510396032164875075497348541597298845088732054060083528537699492771782336470333003299268438493059793239461283999725100821958159492372713372565254422650875944648645396621083650221729404313556835620854237223074744493654844131965701466217742478990636556353261779705021524475591050481656337529696532473613295657801082653913088157857875278868625678594503564036858427893457158999023607805678880848053055384759576503617888580620916911729315380055588795253838062169244994267463594439709065010868596763813472389126717263994823490366265744142263839076763686527976234527712716978197171702947371988760534257591127623347847567849922518126415509478314031155082664111105467288849190290416979323029919347170262321687471712438243894076761297501776413402288938625433977348668865508582711863572683693651226985970808914828426153041593933874096959329461674956827157677695579251570765188453718568330305861287940692279606402937605205683433684783359809667218988200252561718316143838355632934405567370434265068221486221009986018371645651256686934040801618067774971017156290704170806293935261585491234786302155306278183257148905123335802358302588750704643962153140866868473144316263156587587995784290656582336287640932277142815757500401626653249316851712043396320923971625614485267520985056913384251780003810107081987055203045035536426709403158357174112713289236089687519723777070472816289429945047041669811884180466369410958607103171020086066827006752522016094587047341134340609723604916806324724963084674089115424821187801110484656957270774799181485709588622193054332654638979486934438196634798312579969312746560080336730628974803582468582703386033332582557933274700075214628993300733974976087411124835681276847581797458209477891475799209067439156194753373256871876436589192364294343799383292846791040507670878026948904259134593917828045885346676447092402597913305946390353113900733172432856755048882492620128847758439140977370558157679301314230332319831795178857371200271342161747567155884245105125215444239381918555775209227805725833241708959603376544600012636328376240468553268434954494521504549084563088628643588478185332785498974914787478334561545094918411148514618333280931096158922612151835130843791039093304763920067597110122675368144695337140703734130833608458788849066818929201330419770376437685395086471569481806497191151933946626139528613786162973316970979830571386044536068093778212523668825014786628996660635260601784836234667205045481237081186207405932983063761062176467936813104248287954143863527125431663998348991218858378664828497576430088747090039282392815639755818443962101313982551829360474548152723165820433407809334839299620676329992266226280150645314208698566497962374347912623980808797407153832400971198478281114661671176476253051283086449319531222648083026569551140966175460863247989690343176077491095376708026902965631789257534688340539079756031544692102378206146957470652947885473205435832657478838240638757980495187762507332495964966790903607800532339718005049093752527780596291746202687995461616263074147679561091498977433837207071592953380900825948025096720732462951450707334304648601864597367711946959706857948230391360158331925026416272778815696417804373117579711423457608490400879933556461707848504326156661680808729476099927369522682377632227322025941151858725844756223297652392300156820348381346755432429554233307310685463093984250786289445286921364973284521586348884370047563258339124245596688100502945289542191376264226639337090030085600108459727045995037945922075198061295969744596220822104341835540409612921320813819656720297489554372375069883920731704808110516851623977196962684627306435327837388461272144114943194183199216938688666103109786342042475546322583083154416956985211185983941220718389728752246551357629412605943292255542881931753592759206552801387419516736127822225030175511800301668579787066945085629983348654837434811235878711095886311086935882476985329174351197785088544741525424620924328757821257699946683639668256525050545220308803628188304987493858676620866238738048333368540087180510969561459093936039202650418269897778279340023486720614128017805700925008404402269655537534154352709037815775012932837998206147383939149588902415801196744778466407593806668335594108618605909301530247969285016414658463107066261175846117263813434084332406842241903386766875175936975252386539651626322508166609711939772500715047174445627307641393339902190075294426896107545986134982749744649750079573133250647635099343598222251930154341254736324432416199488220239781204637749573151000924898348350666265444208098651911650857110955790634494624697084982760969938447817961123598039997785607859315454822849264123241662740144828276342176218097037009772008941887823561540453803058386683813486215516246910002930184678941577961213519282665010270504166828079077800362982575580356782000649191264385141895626192700997983366810490963663481823708330529149509292098396936475492038510011265170732229605279836135355073052169878043841752634781865023640300546206652297101523218052794890487324663544123010756569331858243293508158866871688862894039492453480309860494427831903566735627936481890563522905608163397638124720419580991504994130464464250321496151893457013789583243583940233289562610832160444211757306625636010259209495166157654680954238332049990884394739522830876647047704017570842502995880978513643247727452664719126002006233342624702587910873599065664386471148748847791830405833682165992466429871609734234530797296062215606521619989711953242958186531176888317162515679758854038904774203067855425579256554804892344129337076664457478474820848992061774301755449262592585989103603764872249465924101911297366482210032802781255802611828515958920073616623680963775074317690905525881252628955087710350498849846927440832225120493207274284042643712934775813852254659386367418219974592891643273664769769134488502222599704664053545820287751070903103115504269665442871526357211111298575212589449726592068247230893406807619681879371625248184856134049310759003041889602837388337342839535241488365570368316111560503205969911004542001415454546542596422332977337983221466175205611916908597309678745163549099629929909992558893695646045865868139974068845486131856999789140560751609992100364465231340237563886705560976912248918115000633711106351936970127666077861730212351783475889196231263494005106031253623563300007230680851757492156725565828930865479361916176872460526812150875868322680884549832335213402136309053439248185475498862972563950417866482769847393073509329815511294516065770304731689660205270319867708779939844868398280696090146590777977211791207682133637028021787574674153417703334681195352715661376405352976299470351549565222066217540848085377492708066052917707973311741364981262500318700845605082121976718850284797241450476445430679382301347851193621628739182160892370558063328745007477084062291187011081675784690197577485610339136763635865403916273933732271301089851358167859696091592171888431242226826190179563252687574218970411178916841904247721616765128301049842925939741455069344694550651613991271912332122530982776866928384211279175727076159630264631315304459164452519820651166904970340488316776664466372171487128207069056014411361178578531751121878186075662567006114649010996858689285249376258782970847754405121096902866340945160636889537968635407349927574479960690134777644909177885777882687680773770930686825910143026228073999047527312933086894117968469473239762223366160399882389103315564915639952561822273696948849950174908052410339379942216587341735507134071758041424207225800712746729815021604237880689983912361234632444711074812149361197083415540810338808344448554889403122587792664770715367347444595257625904572551209080112392663850151718589136484853515266845507257847020024057893915240470799064419747041197598977330133298938250765095602744378687383056948347868756173339076071967792468681461923129508662095425831727942890258650983698943078771888321211688529885614465955581882415434868416986953086060469243165525707113748982081245659820498748316652776805864348378150175860779859354762548008760485546274529032758015851075688252389560846304338192565712558372807788791055427630866857717046392699001791501220493353983751457891159513239165298119233862684136375270488645181550256988138674485908844367745228939734042139022638958984293279215771670838943397120537976966262618761166070418281749848930998230479958440289962781671188993735206614945098099920514769659031995793798813363194144195594267744555617331925164286087717510547229485009658809529659576054746392653197605141241256826051143647101000488189320487961125929189279000244804622940553388814248408992718158719527968802219522758420981069449777684701721659987224444792781792907609791294709597512312306203142182474747747640158902172694058636161852671375119312595136419139245023412698181212535663407323937504413409259555786853390740981608015548640099177414722973087209654023441197239324856555931052084776800382198469472239584559127921974479842521920818426887551239142863334864473144464848036498692658864552512304758694842608869807113604745403257800519200350992554677500680850638338870948563775275851004491832634561895672084397902566403942282492344761524797111883231344132666573160164415387103011104697485661297010362537152667216640512943541534070830825384606231006750428609306250255119481405924734517616540762457549270318386425303322780717912869993059202544915964701885000801778454830960280159351790421080334652224837839667699210467420250976822483685870279126155822252265241942326185532930998514249962142371813165363306878019762206858922459117010432058779594822304856144403729820240032866745706160958393000156917000253840939559286820867897042558107744520577236872056562990373643364001992606445368542876007624731470058219467317820481714023074838164594385051429585159976809688909322661267221184571771925537607756835942392873369845721944396748819796256281993807359764976542392031493359972858645644526870175564803486934945596008689060109717180288841650997599131889093706730345003151298398174707164517498182378279189176195704261789222739239826600683681985653928653989195694954131343834214643063812429808601736190398057769411954260906607146013621732818132786783539348744504045109376632696968165897549478112310574679237736143741724580370195261782805571080702977775887088467310253007462400771735820071011957023080497233918518097530532707859284309973626028982062493268288432183162554630671153186665798388519918668631751407392276134180072980930303081642789722008240838255597523186772656188517281846590469502387762997508718480148637913988398253561461434160118610602070381799889867324829645108632347352472792368213057844673811859184897087067400750436802990693439548679824571086324621613251379392309122622469315347964703844181194386060290256298562386478369144624459459800447148157215529130371151508429619220480421487072650943072085974557032091232187953227206126059121465035983634764413429848528503930315000201033862273308835478121952598662477828279754336283495741349378631717988611060689648987318990948203248205869941125489748997321217048553406679567932682420521904846327134910612295907675976013342319908729669374278064571217880597359379114047411428408985147125447801364144696512685336876970755087931640380849296256627218938833136010240164981939662002140802701220081583737173738096750834142907478507886983577680951534218809269241243324864779723413377622951109781440059393241411692269040080722634205609350408090551186556117416024887713388708883251886099345877507378360850323451889514026619501449696693266087872831148631589494221757992679292924135310568592331767761055873488844569504726158828621295931650234934377750325288328117727117242433156052147438646231315728571681090872720917920379930070448711617745659699895160923487939546994582051552061588743516091033368299477410615746650165318780408491901943677521192687256315078328009494457093642903537027362851464772024517797423738196735958311313770610573851538211470505678793935518682875932862859089783723215965638493102787223789512623993078004883877731548225182780491320605092119642394713118289864200775795096358636469081822356982770121315574232315377505601392126443028870612820132206190630803108764784872037054761522134098076657549752777458987259421865196561386146180618791765259183940042400199645581089942023772729149643974317579197310623886653501905485663129763584676580300587783354805822562390682051729518655809478129731480468102367071481325776414178589249957759305302229805118955871856555797729881981424261963677118349812037841036182154443281162249674093319408431539261991293779704558741118544734360956220178289074042053378869649952221612882307291515049918707293304556257320347486740388966530467280887352274180480184759950958695809475735225324978516399756176666311396106791235413636093371965680726346714334620692302895297353931246132200241363299973264128845728627605955163813448250178554413026405661502177413092977846443232868690202533031170263653200548403612144202131707886769154403096020374265914965530797547868847170435763979568772537165793793202134574317178476342378628631932024025775374794642472364073257520296868170003307689253571451945403153868670947600556950058143506360185015244030742978084300325006992037797666295983179966097531620046073516224002472407020671283204119935088274404157321556083237878151980128584738830455852351688432164393002361733117275714479713057168354220297167848577647718686161117247136387546401629385339877799131237630515526190914127754911999272700054691533390246753715573490110437223344120522587672138859738352877419710061097075118400802536968479850606026661196803098454646212702815527427672002171396818303241947201942780122887257680352534311009074434960728909103795420944165767514923385677648190053060715853312766240285061103441567537086230244304804772924243260069656956190717845977167983517713042978580795030233286538258617359359338984133404912370233076199879193922413688986220674524987150740088518779016304568996178125185402555606875268624754372434902933685367930654051514018512647870567029731396385885713279407788633104719022274225902492294504331998087904524970060659413367474090613303817800487733935865692797840416889779835228075011474106019031860216881157474010572412181045922630634805892826938847587774686234421676425712513694698163261410247776063907769656047126510258612268012235967916612140797499660910456383946378971680846499141511840084121621197003745811824220664786206653270889942356028545821170723722384359290237010684814094147324400755343324382631624872831980017976873661875438041396699798405104408105994231020560116698490421202287306894760644070895218037682127476938517572981713071847725519494782924642120730822944246484955671881589594542599330400563060904386360141384993745015925378426504358932415602811936551505805954930141901219003109407956934495808627435286844644388541081994306459032031832635553328115316603703341979852491916793727233035965763953181524120026694099372492693628720127879887554482367512050760450341606344926500121577979210487804126437218132677123385384210616157699396277634925334900955506429770084044459672718961112398833235004784406092744013941735184302762377641990038112273030422395005465186998097650534625559566302862619055061410913791365098607330599602554817051544669962435796736029260554074486596280418201705676045358763576736460748172628596765210752106523630028637204032508847577011083205100734022454133355625667932836680726470619767887704214792450045994542129984904414115180323139423541830305569031251330787203281000201773544870704888303146355187304869455345128491221210598903686775019295878075170682995386051335694154759179109029714826836237033065429447948250033994240031453035238085955054308483430213196313628924172205964838426924365670186250950463004250823519979525208486761860162749005574799251797832816214605459392413047730014447619548623814838236183116910157459368008911243248129324292920579272253973596233438320463470525385303987197414441441691880343376452397054354494837325728453214401118526406478700651946104559678356112701139156222872454480355876652219426898293209508013498980676795555240969623189893819236057958741339217301539190226959658225505361045081833928279353361098636029715675097973263324816098491215858176397073256057611247742408985816934208068764930029748869610982833042431771988403542479682008113806302906821241683503578941651295439340852694007204347752923464526276879794335314660595425845145431043572988995481382511237744950899621663668949337167151586504426296549383556726649349032797814597974127198071614532773028547797886174137409863178228805577781842012337801273508218681248759755298449640536916542150757820784698246014786567772096484646114405613964562123942591561261251090154842946487501708852283469758458587544972687466747181596307037233780503160547278577802179309783190580831429979091986660102759635831597467426463709665523107107224736974850076140806549248513890819899199841090256684594621498393807878027771777571977457859171450050884598434232525412847009895429669341269719341348139901021941893816560805064400077107834359331614912720650388628635850447746431685640218375402668673251526605545354782572697227002651944419479837244766140925625221606336702124700442599105989803276599659405750422538571686663201616839366110793193772739725996928803298392508967887386396829976983423423515531506434922498985229701183963561625693950248572091255361045864869238722380587084637721893454011683763498629455954977585460894077151845749803911844877007347839966406326373359302094856401131846294178996716942387313864959577491492616851193678473190916584181155886368361124970229016179770548032903717898535770899124245357396731990101296701459685650228236951230857548669030222837710956657020852906225320201428035610591354861388046616296273184616875527676004105414277671074999369859873261732494665498342177925658944955833365375027475065508582663260591067793262016711598264873183305090767137111728072769808513142255282674487618904820241801775940597506304626646269089458490448897378461880982374461161701623497303540820422532630410605742784150736002738551680395689308258016433924128505699872408162711200888235511410430744281672607503949761884559336796462567589234149640047293217248889792335516127215557019527695203250166053168502135821392381430595178969776396355309061906707252252014434665008431382602238847383767296937611190019485754187629046329179065618064302911883589885558629099405846964559271762206455229385680700194910652309303687530612750493763838109787815514795400638305641029616338488006015484570749822083200002789120064662946185476609888263243676748782283126053291553965054966472989238440221932870739541079931078389044824130112053838334566253858036583748843190438842202506060474429297863731006202388902428614985166763970968121372051615932769601229540145355911797600734019652005615675845835061045451836333612793152554330942813213864504506253502520381374189637877888512751392293211594405121699117305738725224995794171979641166604728836382441129458140663283940637767126654609472851001937543264764054049422565698171713448638118162934780518943999630594969811155775879188462357845530055634216158029804783781103693898712257743598578938931240541324196461257544089253093570137144915065767237761317476094614395289371828870893975130091991302284405683603044855002600978156907041729154583182344529483679618284048492636726823273529225001232769751784913245874201234193785413784631441610861129829854962296332236512345817945364117406269790926602063347179177944822977588053845413202595745523605969712192346065143031208259429016083206075871209040923482542409858218619069150980622136933979977580370069591161891571650474154558750731287363701769399573121887368442587797293891881371474869220662888107651677211275614392284796413801742109543450682706655847395193561251767475394899825254236537213460297544925274175246222489303226180026188013512708283627546932348911070042309022151373372105678276300477076805242375182638980779110170247553874785741128379405287915307899093951477192016849083969376383924695309636955208883683119357334220454042289611434949441128698614425424189234943176689483787699449454830745996436830586856844534457982881331818270971255291431820519748023122966133255820582926780477507036752483015036619223494850261399800423639736883145891163624848635277351738986216613192454510902575657112860668613890199030701565435115892749055335241052412853877472567060770856511228257573428183327594130088597215662372910453342939564923941427217079536520789621635118144886407880567854091385766926294020158147692783990170533003073225348262801877119717357399526755321159713695357498193177314331972164773968021589337101616002462278466942229313913246879488052901573736381389363744710721804980038363456844332061181626007488199036412155549001947895423299380391253203478892162156095745932410102020771376542297145960186996731010050942842664668487275923761925910149102859703380803084125651285424311720381805053241153783895001239460755512299997161658002948933225832858477006603801761995287908207000027188514914878821270637035385307516193822638159855137132764096571927665248165027924339590535909159183011046451634507260272415734905757500999561930054622161551738454579628519839874095719460659506206347020483784606824781835277022679143739586762543989367625313582068439303245516040210574680036384291782610325828255368637401890696414938949536007777554306371697696221729560536405969977172440425787950178011619604504033603892120253812748773126945944260394330276003235835097059271877843986346022221623378611357469614565304363738047892678953173202161601663182764907267411935439657306050294399054860922222217711832573450266145576990071065528598353310110929913573993654768989256852426574012965544612834431820867926265349028302994540878594581927258021272389354274568313979911438356955271221562698010333030590107453429016907640610290499163320719984109608655637776167841753798508817332319433048882284039689328683292221118821992204158414629847257642869907407802104998105181548028644910291576403941698687371317426996620970387692139589813288873392452267848609923649147302520026705540565884821333783519111408208108239729685630212598281231103134014290117521336730447786812196193365918288369154226702182443991340195116079796874283412629663698523194027663477957907029252700560911611941705159456563664999100327147797958113490921548037656389211999549592718585705083775407667844977429045051339913922586971073624770287002004242532342928443157066177054784051039178397974578018870077971886174362787064237267318418990177997176028725448344456654332441675803091496680542262264760597295029177542715708121283233046334533034123346914999345465419304973573219123123595314312060608279715437463361580553146279226000578396128284784458944315393697765787992326956580752803867570139352082312980929316780129159574072971691389833265235992781760077426443714994536480786944540834659018215179370670138084292743331733698574864780168740096268782133436048739016231349250993222545685278965616164145274798949758344454170691389883604021837678324988180861401142530113905048390144765385494276385727603457682232588283694198728282769735143760476479862837329607582746760429106906899787455230427348796975952442057323222925976783012866508384681477034615624216045674869232242839981639346495298556538010358873711555367600276164213137745701912044765017889254975113249259007428282794390054639978467455266834403694870176553809827583835969107666772789948109596645517429772279694579149935800799793008456855432952432886670596173105703861517397094849962899886972479316234814009352413348529685945096695635832784767973764613287591475585165542548523245606666901743580482353693906341825400277232726699268603119937761863747719119924516447739824270272511975744575427321212007455503558696469994148533205293141731493006232977683699068304584832789287941710057147632524782950832785789534617092792113924951374122354237085099733526967334580250991728032537202800049924128626717862211193327587881346789945685116680058514614291215589402419458581872975653415270617518189184361976467206833676996161881213670918936597860062796579909316687986719087714085819725179217593364942834146953635790046600441335614054289442185172354885280702160440107980430683902780787044041492672537044115776731001058903256979889405342256509769720389173507161538276108241718963960216589648572306020955735193365620293425054023174065996195994229990080429515278473915261953779235816453957316654228475901432371897928317112599970380315917573434694634980422177432949776549603186179811772728126931720550365980487283783192433823779530278035157658847874127822612778591910194861434915846001158803465214564189724138080766503759812331033423283257468064437361910200027502243893691700073419945340942279742301017201676111352312409555568489563414700117000134316321115945913799517669203571806647612630507190831094514814944858548497958967191144033350311819401871280853402000435999880796198758613686039195128782106241131810746610330543196295799108551033679636412557669547812678534524187555431671247045689776600914708587157285130676408054140065107219165211776092562586590422154546269967255552517472499843834519911602328966808701557985898576600878223749717827211717519210292314316626338100659952265494040084551379380783461524162179357456604699291531565302719623714502976263005086221913103515261730560270354975737072659775876245524317766479372165231546643034891874829523694887546618397218625318351406299059354382360001021244981144495115623542789267460235821193315950560523507053490718250974572962448925294214187173409320821042252059159323822771307301978905242187309931472548059069997126145867127838435937985802177715975539276946744205048768509939230419391864118901003336386123843877875221074724769335464743022722651250458037288697428748446223082779647524527341623293846105262077166581166414859303661192099810796461325733751341577027182484212355905959312564275301273970118633978578225599454877992217937663575858864937455932281333090678490142561415851502719440996681204877033898663297944457409037645967704353770332905452815566542824037431320314262072123121141422223336642455425646737858532337090919560169890078910243599086630313683242214681421662355357055356444554685657457433823458264020803431161928969215568769110810770128620126090934495304835849451270331624249381752847640762437879856347145932244332284135123012036126594509801370420117860875822648544462911174816765223883712651995943442313581707425251015373963989219533999315840868457641900080223573326106248308493716468062099642267513652956235773623810397576798048988091606794052242790806116274330842812654203090625007725552572426191965657202251209826675847019610914313794470270666306010376436773976792468371894428558548736959598951835771629081846208477061488957953004413809411157207124935358072497042929745926867038746279965712074640297487646827687928340991147257512186546371813686131276660784440567569608103189935245022522062925353758561981364248801090054990151917782433113305733285315924154797217033672528675771788212261178106124647591568347689741827944897890891037081380546201773487160122281572489967536062991952369304561934868019351014418617889500393777098961761290607539138606723522861350026998887665690249514345997829831498709703528755572959535936207308396912331864552033606843485035715649573640784503636563391571196589415822136089311295538291939131308069283722327642608363318008646355537320894602219214093552744687525311246553062172991547253799148487411725425267479755298559067168747575992044009091840693603276218269081320061928962490330617132373606590278448677473993493648481487441206442691521097520334613162895694441747697396096881092504886469027759595103062455930526285645339286506619081992051167168028144333871153046465940126874149876374699915049983942367727727870914954559510842937616397454663682271315119876787866136420324741899749174282900574316034656535692637671397437194916508218064935001816430344278655401090092158816326505015333563570578371842172788627785518471859954103947971139759476516958201080806323217295807593341449131836768709982105302549403268569917901169250377146796697832448014236251652916067855058266320790832137401611900799808151853555554842949801651192196452990066756829347025072641103577603275118503013025661737917325691921995957589039470660611721941923497571602784948211178814329380016365102013953394060459208385102311857656151905708381755578637857285111248266693305007953349547422648401536961546793506740418806079275545371009411296131814966009961379635333219111580230052180255076484907601244555124617294044312647362346738446619378918185856743333581481208837180909404435693335408850243298639052004686703016638611548763723572450080727684233295094176633422368360737399612543743527163464479993723570434384987887244267146776963112522799416452824220815904245471563258750563160533975676984343543342644202921224125355829499035510960367987166273646822266653468401655264621851944370313125116469993400295602577824853522785763124555230418274937755887058522480754322616288030030011454014193732513076524153167482699420529309818380711451867002305754890427846941682446379480317274973822353990964890866910079014884948767198294228359441550941158388702449135236760633488471822705739625683240732557370510447172589157923642209696451571419545573748808710019803711523600475829442407346868996672865747652515771436445310026353202999160043997493891841952376520641407233746621793407243989920411718151157528898420543191872153963635430674356936431519503764143305496939974030373005628422732871456914105353780220710746763989282141722895332151771331904985580496939262159551786544105507546268217276801413187630487122074481712378746351183620642278072302005670656816883681888947930015954746847361714799403239638342445129576884761446818142091912901762514067704578416384473914654775757011848873582412047593192874521135509576429137055199196743505450340731738400379967305810138095659799187159487933587209563346481898709952751096466791615514023166908041964037342882407379159554360606679873578902534442996704626981382591176181147987264121074746473759700142088212076746295066597649450512408877954089019399631570644678491911994394430042347284600255393156044147812800566734891338257033413513059145143428064422778930550603609779468994103553158912899436113050459292630985737636913111257291545937877144527850596336060242955547381005061341350225710949585307743633574826321787847242518584830658380295815287560480984031204613669371900872633212385378953340441225727246767505806132079262038966423761112568946805490619266761135435762301507781375918677307115691051298492315068198078810970275233860802189580757406610556463132373382663055744666195442569892735716429900861287368118511516356380458380334194773783964529741155558464127933032405187472512095648093554665933800170600155796655885689867804987728574969671364790028418859632203663554562375649117276491358257372624663776226876910668865985322094556314687352357659840478867606308485623425854118759334920233832148467065029122104444698274555933076821430525406694658312708461623845692590039821606933111165585100277354459432347650162723663323339821300662346299118170689930895916902336512956485155343007687695629139256009650535536477876051448930756818899232242140076586567921308745862046745077576313024919250780502265558812180102263626397922649970824198157796672240361362857424928090652484661032181334793480975316103616462066407098026800379157756305552795486460859906881896516376465914292516681793244521372435603056270907980159892253612215111982025086374762671673804756501768883267946349106056917347413275748881028336688380969448425235058783436017855855044632044724665753356078412801824868000328137283385043794034012407178797722087214906905505086400775959721732492452848393893085018419058112366744640930808018565784245214331856698447892382449786919313441395907636712930411298287325705826560633471748067779204882613710757912737822490294076385451106363439752542427802131362242916978429563962649073782987521959171988644790050693566659889382549282823545266425486851888616094223911609130359436361020969035098288887553131468908555661433212730531969981212267814077823945085165569273874643428030410505740816608659753381767418169857221454293747152578974217908500570761583130959107961234439328994037813521245137134920663297967240946415388664920177889357510416275373711314838794221353859377274748460184899671908565193078108738660149663239349627046355348028225554718910732399827937961869037827353143112983306380893825265633448861510316307904062643994150394495508868525178883709348312925683641055057432939162666482136008420085433180153142999729160972746384612667880406282538117278247064110938709751866144407884204760564558355504303066721462256043347758743796152259580205051173510483726879657480300007750767463477377412830453659205249939184175348914191185575378006863356988916692859461208638629823460589738320042075998610370891080712572131455409632966692439255512332560243820458673996381259774875505311595792471520547017888258696956216102606062693514193169937359894575939967611054320108815488910495897932986299333611311423468529678998384354706580587487152329193671798224235578700105236121532594559090107808704349728830951169374949263542137390341748460501633451168765372712962110494350363427588771016511627646340825882733608983742331323715740683325724668191588306847381944459187409989614779683340942061106757995978472302831017535049026471302536275485283525093559050979993673859044862608068359880621283690790616748120091106030683086353293614660071118725480410920395383791281842006426821886981888686644095019271473375012541959744690518097388242026160002747305673812392358323137295467376698309867649873645616136134462988887724707640331472444761400469337349663421861398643226715438738588168024716557476372051961953608619275259661826485314129937024988796560691549818265254475826353200942872738352449152367947316206069691272501444744837650349805580180688282479684111951282695901598827225214867263821390829808047452662572955281624477052424008568544514904000462509500932880324186676361909984657309139293857667835200987805444424820267278943168122327768133026966313538666082785696938527222903336876515631961938685513455896395454956443027534099299647416652202713825599938386687167529697307268898815843225932630806406766609955187131724205023709739027672709538648982008013702918118411306578844334415854007671163146935976420865585451492323019442938782979187201356427878963413613707802937286817113960303627702895523345427030612481577385646143506494849679779377771432591520929015666653376773928499888848677890267842287344433536139163642811652258724977748076080390833501626648197781255916767976889472179536386380619727643629660097138810972077552121586385532010334575528942053085454293553285600508694903083729870478213134406227244742282144920977368373278802239765697483628714554861880894423101793265840790090152090809369266219765903405487286740721493167634206825259830613785325932845930484493783571365194352802081210194057279930690431185375393128340987930600446819459518805692250997942343614292146232648413051730703310922303565470193098165972229802364132021874079377534731112140583427869967947219170141243967088574118051088627843099690259664625445443522845203321516549727647324998480913849775104828794668501454598924962669343465628794352859734247549592152049879332883584965056357438577514449151762144441423474186294438582618542218427545713914158174998078948625715201646699016684618288633534386674889181553786446497770783520582922729996083493700649023869072484627180124758419631385791517651312709629596973019555829657532271356184465266778735235327028058267554482946070309801937650769479080372325870869960711826363431687243406595973756090660238829328984977250399651706593892569445815324803124703125743048727629069863918307171343396602137334564552523210786792485342325871383337721360201013487194433277144238165373795510152120671497167578319100124092569481379446828929527791416499156667586703281632347795807592387625426072488480177250507480665856338012647007475005680255206167501844211397456663311474713040460291253688942661376088162315182705887092489409791897311422246000682881881249748435429237629620799506472409257621809786797802124692640861418264661318100897145786015401222916461243528321556628080994178687317030493516670142733922015956363874257680009616975088053500696107054685957632800350822986607242705755730144808797950532947394916459124619395702819022040780630337406695462600464914193392805272437240427880526078607751519876573287765709921790461114383812924314755828358097028398585228188820806871965351121338887866658103436041133961607245492609220124269015260174696700110187800452555562346157701233025741655198324476746565356896740299083794719457324324931829685681951772133824266631741235453537855556677294509636362227664420922248494378619597045945141189630529377684927310283169355957913577225616552666133678850568848434001152493654988095046981586841635134928784645485503995672929524234098199671075115299984263225201506647500607896857325654427769713188279153301032155934192230904437139406733180540487587401091663490006995526113080639342151189321009711702006100241589955449553564449999354815913419164092974426413442684021862648778534885568302147063811983902031400492668506880955642480380532893367879485413505257513378056410786841989629913185550787307129885207699265490929219737496953880130291471745566412536421996968791260376628593210179307304806203373106954487488115693413523538048313122925666442311537160681469507150262428806776741277465108659569386486494103525596268329828611741229895200116168215527580000513549162649164592425356508354435877742989430994064110476439282224365230337914552998768257983588446110764531460245340661247160945330508677157923447487033562447941830315250329093894128477047321962505734824303548098563969082483914476447193511119507082238221744124722967013997092173013210187996049133471550932038815306100495492553983438287688293006615120196878327198916429327573260318336194700047161321868891533354605228350703361413865944111210836219883164274771351239960562787002875620016486694887153945217777606622607514754022677980513717513851911713447045312331803558654340980275287347381689571355343309854443314425121703134627730687018973859007357424685719525956041187524860318746625127215290187794217862126681189936933133984068551843825832234315547452518597626612428309194897050234877662830651063419127146264860222817098174189715729519634963690687763092412063125666279291460848755487009291037924847308977978307960076370682131850199922459502906632607148996234228808287391018243693533575476472514537431648513847560786168411934523193175459407678431660635393727287108740645367804815131072744060080879081147655587724181421987947760101656908882904303184577084494833216532542050921435764840782191545250014384180239808750721510572832672796987809796502411108671874948716192000295994700516155943748664491948912521659372644448768243944704489257851725607143039213760847049282394641499968873199734151426185214247917942470696075818441083535775795093372255337156932977967318602978134738627410748549783941248659112643554674078088237921418656457543596895602618227133145196102016428758708413122915766209453780606316648024106908201489747628759656678988118353480908217533142143905939790933889412223893522085365665941767374776584858941988997317778351990284991122028715183157533694889052180697938776112332510398030811003020808828211165745828507770416397911504313963212369333513247431175899553872429539058963565692647370283458925420432866319892539878168900524897068012364808142704526916623060561001971055484227256501749066779207005348492597740094084846013011919164562894277009841626466844530524941809189637690681324203149076741471369457388524087814835513194088823049799949091212257512735978299015006624627932537631032089925661373109274331742871227959169418628734853355754583764842404947258641700636696573588794028642260412204132786075974570385210320641385497437556393441404321041674899338864289641611312961933467360126309791462183681042759539839017056572644947652479266557279463107492644760727591919457621890364070046147514897429387401018002938661569072168230044787673863503774362446903707809036209761985806786408274735926297708028218229758396588704628831416962903877718766779016681264114037286378358216059901375645437155480275268304084071817934113593259337906160282047551359930729818345964934570028785510201400177933165682062949568345945455517952028906891931998824047215894931735176619467906198189897039656824129860371255781313280730466581696836487683221585250991218840011261957095644363152710099100317576300347062437328057915817104188967965976630346877870841919760868916667661583915429542172331157610694370482632888656684253080359716550549505653302205744415173573980412521570811941059151593899069723164599258669470587193405052212402426404822556446079392823974931884290447704195156951824921167945140418803157413602658968410287099017794699807432411652796303255507850427039927918458900325555817558361172900703114053631092006088631871451583690586532464646926872423720882313309659752442322433686885471312021321417084453869602370373963328650585117626872808343696730420037142383468961815261822388155009049130549188413110624209278520953382646437169352041598319020901955193764073063077211206068323985545246214284491919805505667938863606096916774876488223712452013192069918307942049648379302128430187060322401356822486744521608345382754678700280151487683982818740809265208148450422431206003902583299168752672419109713596499388511278219271754223589198389226177561980237404732822223240938178561104991964289688404419226472398421494422186140384037956530246716380568435844925295636373105843881525712149048586137489730378904899472153461466900945301072233177658800062342595028780278999514410216131678414849133328667464088324649348018778197498300363305966684805648763116558101435209549049496426721216857121538333811672000203571226729710610624734367129985117196571173715820433502832486612191775132611947122949431503714583652586799888726085952495200843120497323044108231501682593932420550678694468611476511772937721144359287136968925345357199677759839561001815443302590810247881428716732162368724403342941337858015741405305802222901486702433536647344007805219337338084194125699678313193056905889152516119457962375316279410233976637035573951961788914754949787476762896699988455467815619164912815990115923679081613990069611574753385828190683170715605597143890069843958788250773848472243849055741027092008570470224195267290045216901426314058855416022628444402159415860959872043306058293355794130082741507483804488898767100305690898788161000161124915535839736557964653023556581235535594721711914223951509835359129026926110849965891709340690355536228923659020338458461510717856053506683804933529574690340738260465611930917293881989773606472716210619300820582060187467275577932989219390583533282542744655840496650050289424226869040430752030653158122631436244533572037217163692160251208190633853656395425321038871098698485725876623432141212551487101984330395654621925037312361898045059517247141553095783690940596756974008832617026131639855519722599930276716700430507246736133015879142003838878202012523782674557841590123868121111338832984673138077672433329206487633859397790904648484959597770662304015182807632033871560070468622105363845991098287590336683667718932119122050224705864320441240948860180801259648058464533791152951899613088474640316186702945344347887880889068643888837330284119987388216158279368706252409976144770580445167580449991777752962363399064284312882387201898855311489689057177350775712699407560593706551004258236504248242101306044334302348799173839437407899776202704359182890888214797413847953659993769646939065917924836064849731597015002466135469231549742460898997802439701720323134360604462567073209918207214170145615839701773712570955226142215786421240034191538738150500318343020657745971010172917004401085380655972262864942009726470775870014813829215590500286875378368622631424064812792967558732550854316228147193269556264709269446045579342647940507865566176513377876657605721227570410160386070074041897747764763297600531921369526926541917819743849748955797151288780775962737554519601958572193797231894501977623259575760376623011878651487949467097536636948869235541453453476408165557209557454295888059476443139284492186184838667870346419879584496465223501602731865346504532343856406782257594831162408248972948780685401213223710782414364443498285906304677958449598628259184476757112622977519962346914229079490670087728953286157142191695812693050411590858055417233157117937427567288631240781821690538451990153976233096896717849936758684785514664016830659274109837405082790952939482609918777557396040044964419048695926442180558567308704598899464924532065130438304469259345749740770697659058815796672428029294341189226404615463216935763694052606386488465956027137216725956230352117009014633344687353469595036169447388744773134516792814963915038124633638403396013758248395623982403982687896544860624443639602641466592795147472224400752659593291961933898880644940124376886705437987078612633144005116490246665076815484796051707075128547950088057490972550006840223476312380139100161295824503622739089186685211669071072955880576625387324652838192181618027072600417068464805158320120576124689150087095195529124696327524279269533578746250038134170637569720032991935089159972564813850431300767385489190058802656195947186916545514974865514478921485526659480820773046552223334176087327733588345775461058365822712775374494895090637261105289242002599875646584544019253552313158874063767485667007793416153408163921242508550828298247435061610700902860036786515159625436806190586071398921268015830762914105356500166172753361580276362101904358693376521699884225220797047066588699416330085218612841726104331499263234510413813812944006120755305774412686525249229298761223262835754010574623839541557573108820033665431746702673169628173051018342006439579850823705346851082395539682773192078305504063316300399105394589197370208824481182286763798152112743326770069763009685397798740646445968610187840774400884719850724606733425096550820215907630958530613341994801847217975100499279976244355606167999813304750462085918041996112729875584541793211644620129486144147487260821915058048873769479647891684715618069493295313886159276475281759248215520515917847040549322127003752107289426536555774438449517881833666700898047916048874042362987006641944660952260901633952404576234248772700073322085374280255879858545401558023527935690945350806152215358457448382015619979096533446750851454295246040123794102640746134541190196811312664279154960587230904942062383440782197451200020095158175253737672448041194349419627016173831380828424348876537999007833597450962318596730285558985892544735147937089917082480892376240082110885322640728614786422409767426229372922011567858283586496358128662359068498798172340428324225841488823300453399228652081360177584188208630715142414889891248452231159915942153604949453531601973862555928415727369773282061744460497496989755617639945956935360547531307412753448024044843676689594105857463523870634343358789804664321009263445734174227321968729592883473436765311550962063200055853902605941455584210300943597778842007218650590325655882355624587179873623649790602085166012103324234779029642135911822150085534145779218613959006688957077357751444084332996157834772299404106381430952749540261220819029275314527686475475575829735564802153258309716220434629290889283619212081851880941823291959044828044395502224311825514351740194170327536645345929182821167934234812384152855986358835952824388950327536307258800108011060239942947263484330518336025879440890794958115936389075972987921699393251370156430513432676391711287117434786899068622403426729328459718850303508775792009856118055912149888731827070436153818094923198335925127394577983890535741107781343085793611088511755766362938786124306362273672897214343463352834124755875883467009971741558236048086001505732314365534178996353904554163227834589219306542390450431959111060058150600540290972195737025747669683025436273416941681053116058136188191171624875516498428152576958915089566579988660720980480285109016708995593135729193421099073061684745118530320443553001051366313430196929123510169744298060457539505687760063638420331590183965374596136835578030437183490756377282860152190381328141871446903457200546155194396811843161425467327267236130164598974371424934723086663190225435146119174789906760602515966267952836897258782107908862234777444501482444849572239963207472288968089519028691944767226992050892224614973420366100723084298342821604284734268137464368581859509323218661421762027037995556661928050426893761836781463892704760765753240796839133139146169720672224232598303768196102950718256650989996439852091028198590375473622272993467493400833514526164539253832170802804612410707785450135219054141833204241224188756726399658620682275725077018491890452076065469572413097456668232303960952350683795777841043001155676555153777834801972909165875180922623430452968725635828805291044573513744082297303402731720031924802544941039732204026709682437302005658628178821038003784552799082887663641036269767231385793791272945157126299601961607741206700174254496958521957840668269892439933948069015487008790570410748066140613250939353470621348770901583807012413540461817094399498993216887588039924501145523925898147486495840146089832403980304945778351786375024590807496782035470266311691793995424690200963195668391802475449114242891606862740106655520479098650140609805140507538036816084808078135392378103064509616540013189925891396746156672266389608208168778254662078852837481099206471023108141839218350207077297861959215141260651630701818812558748151549728369282203929323774475610089921083595247883083446632744683041034211998387354780739905870174424395521737926629096719128796465972777307418891234347938637217746336451951417425997930434918102628635474598842922933285637452136289845038798060093368409213935413878795419009584139635271428049991356863668929675957586356200706383566449939596960623764750850149809532386594422464561366602019877538808200216512075735689206642152248934673868083177478221247298293621016085164264006213910249424473130349755602886268869085904015240633189492050680682984688605858919809296204445245050437257267916734108736529539383422672592780158958351968908641367500579938069848179224072195532788997153471779701613845386603740701539713707899791002651211806843576903932005005420395126572786127588670295883041696568858198403746337180496775046196167029017703107864366753916875683251123480350107522091015379741789142524012077642228195689824769015732108995222656014850993192816027737898362526576651934682799427097978386420565410653060152496525320678233067305895503673798158451832340810978518620915172972150370750470266776047208271767453495677521661954019220981044439526503506734584259868248368941889882477157437700389085199495075169622259715560593369585501264729091761761645406366001627781455177964656337342120236965899559958916708946664725923099517863998280298290432286286935833176528169306723322726491526490134393996772318800398560059011857458734448903872262254031126168631040503867532791219278652777846879753379822317219367992299280260951972655022797707803894718854693386650229073364882443717179761576369927052718789602157114360683150382180784710491679376957519562025802131121387532440125733571604652704513560632611270706802037612518537838803107403485896705073845863159715071509644583376320786375118276270273967210796344337755065936999507547294411553113386830332897696143422359513853466650219886896182712743523044485510143918474137804576944049206868900397086009447283684739288555138913661382133933608934920428588327374600327365173698453227285283555566125339158766072191726458773307257777902178283193210048702696609140564532673811071295107798369504179735116938635251684991663153247452332860060614540181590349239138806078020192771394473646833351318362735186696675856350368136866886776129024986609077498665440970942571673730930227264884335177196858235790296653683085887068991236200504989030659079009195653602832262174184824606259165650704548129458585641323770341732944175939516922323730789815058150288375131431016309299688124228413024055779820336219451223915582839224324745598850297110348045321121423741254416567621128023658195798663687463238698008286196523184802182478019761909111170696463871784357935545418345985519591125102712513310752889765402874079659943934935898528433451857092228079207924994558242609587420706145066005112228116689111638621721364097166347481757938108855416278421767443095691734266119805274341584001597382120292019205704592172256974941498304490072101817519447254978542124427438080454885139842259506633561562398595493231221536579479498860271085914820989151963374644122517724882794982489787317414097882299888309721846513445296323472599416354782798173775588716476033253573388858963467692989622625819059961178063413400530055800401685134741228957774718098651670192363533545142565004246539168718954298894549196721581954467268258450676926666324145616175856407513010678667711703502068217563759451047979451873429119242401781345678973243706763635258957507930569027297806067554354092934197169985354337036002408636035419145842394472321828989980723710893452741316671542576024463167203414220388619249982978750026340392970609138678703945436592089782367836994282061868098845187001427620834714514590339988030962215139530638653765997190790497666588968176727275675512419588407663618759185266062668119820209662043825202907421098466294398837865812172751728974487999116492042021973469833884081852064236663910321435159031422894375532665052249883828677860063011701758064408678613895502801328621875124597413774863922892339783812350656548415041008954071066680561372491793454169630031969042241033332023332107276694383921532238902298849841734217322318101227560277641824323749327836098071953960917086435567823144927148514434264169069102217132999280694951361218940229964777331130647320259059760842224252189161507907185305153012858436976419249554643189383536983323736041529244350854980769504445182567291408601702012959166136009840349046181552408169856716472876931409676057437013085515195620489017030436290454759373964415006387487642324541293521701908708371344502334693052154492170450947296422985739708413812950588007583090779691467726040878931597898385321216363062924420438842504119017292999992942595605505887127884775724342147962403544586939048260827442720922972315997400396386995571393273742763457588172990511637052066562783987645322102733082202137795986158739918901877543105288314199367241572718587355646746036479553552384948142421801485169797025880373075793267175626711287252132329987203286679951075687563066276335863894797659985343742292870262110953019603364477216683614106444751940097428367573116772316236544930107964857558356640001592224985504845688737729647697116323775151674083077499043012886027220866903873780009601241320419712284373447142909114010367240389329436481063323738126131111199122597812891083120092984967330341135436995979081278656022145382836610324524095438478421864052491564381723204373163833354911793696467113116943263539035452473231912259550517008936030119459505204589291948738004664393523286271639577690145604131139242525539925521822787526699911687210425251939987030666208288341204954587529810873340358050870257894140993652817093650777859245986346044373728204823823265969671857274879004326571624309190043002262804091764426729653729618101668117898712621681425959103082047317167603325167215436963148765706122170009889768162042153821887695773248652781302370050109342328169775824269525581775552331144025228840767796263548778958800223713436888766116641777799684327474554141952641072965330850236597781561334441820944806669191426953136094227711068962600414143918840179614433584803706950622743219433213593502681157681582956769906380329179942282722195407201426014051260208380059381969212301271355206442330368615502040129434263791477730689840206500640104067249842667484475572698961547617378416013691031231335991027991305057976304179941823069823404002097512337006186712680226611635381660602049913168638319700556024270621514137501136702347077636457031038767804350803503204746035426264873657772264364891142186943694923168864075998321707256075656967162061703333274008788236172179657665618972080993314478006140314160921638916493232300042415508603637827799619692452129622491341137796520573168770449478152140364467128761506383326518977354984191184861735471197878898116400498809668173502352526074351371598021675896539498135257413089887275755708398770404359678446685224037654017469584999384713284539950731197658456620207636425762676214639055742650297911037167242621870248627238941225893578645376128324837364429673110852893140153353645687618235138167115229529698502049227475078464323083486013699971309786429556959352079908475795393411281097479056520480000265287575186933671613826235833248630264487979391442716014016468562353309130785387393094485873664629209862827556387532009843245394404903606378116252979106749879836901088633160767593389845354550228025769212430428198304670563575360892725862792498829673501285528539481632061578347773837197162992493064306245095236243491818320351891314116713861475997776572062648994908472656713787231752649448350756001840334263411342721555930708515068496450690244293329327640197153976648960392349855144908657782557220849193608296712441770298900863047745569452524021760346283266796939463004061643604229988808910771411607238802042009681319473464104558449738734658369667429388520589047788217726063572036035601311206270911864305461608561314674104703194011394898202707002077428310019789533063666795797509867540704760219416004974525577961995299220951151348342143693931574316307746555313802520214942348041801550278403240436413381863204098706983494311858884005176276824144694109459257253494920389924051133331542012984415973252292892046425795292815700851876327340481948293402887654625045486571480039796410622370227865693180084681825836125634172032422721084317964698695758150760141504620517778272374220396010731810239220612542434127700839872221714325732215006848314689881974208241079096569111324830220744703787168708657214616922174094015408633349323876349258629259793520080506974093007546342925917671197390225745693621545109516103726902994234805542229275336399500413776189864737882068768375673606369783016710266172318477215143988916863853495197565279313932479612438942638149170975139675791253780415659548262846094293467235260320484966022719659379423941812470552370287701343579428407038618170056856691413451984674208066178775283179978145842161235445967789168764133917497115497811396183112351607324996421129436383468532655456300757531980815055966723122850101735613491968160654220150825170539809632868293951190400192143968041124601919942354269008518858961050032665340462146164093442695302779268261530921757100781495460105330839839674551793180361986105186964505655148966013733067000438041926070541452918424892401922780757137155422407557250868693134916780261816128286447594050626446076058955692355378695054656022203873828475318261220399205153881384790724583837735181535696220395256791443984261441871988332372483935586134787077662907224539624489907917190755877335633341614572687927112433669255808308731022652503707062617186570209948595724161928701124175037314944685574077421728881240886319271408366193079506115195597657633350969496989117923164544905633646608360544796019823827667141555262174531923242263149423448987183003785699505253277901856382808538782242337783158697446525683092538962586404386817399272841750995019936373132833524545171013860863635911373268750034804400796427459860561232459535067373987184812603359491538245571466269572999492152356931145944988159877448855433125056480969834361387848225322839554562341971813314200604537963871531265945087219848405157813321183461024584716750166373843884695369314499463862891498403245364677373473135621660152041297227329774783841801083566644876216525218093691151529600537865878806112224031155235533843026833955638288175295291114250422558877497197367889210760188567667545997147292419458029884684999739261676513803515157589808205008114468800891857746491435871691242367255468284260658319655074799124257078614550644831795747838598294106440084781678780678141977418566841746762577606357803523681850780227898214865332780452886783641626569286017838267297544639932365616013590541684766167117150260524494553121 P4Q = 3634146001972393241556403489538049433100509807441381218923008088831990095067922457221552365105835869347130657257076331431144878791042577682064853081602910363761302184014822045230763196491496914196813823286823304204204292844722362343365931089805922828262605023916117761092151631740356944140367575929361818405794501936309609366946107044065684664840084327396858204131716392316720774730217391954772647218410679423837147527556011168537519135734582417311515525181342115754535428307340177402179784377760167347906279576199025823732004513145621817393045296105196496111323584790539766168055504005735709013515845162401837336837918127999702303351656762777581869973185791810034471263534973648998231656270702290155797270535006393337446286088645756003553299454065995309945180796925338390178908974109708614229141383867821336536042513543668423493578577017882815617045633412017485207443644372129253570053912278744836943319821453648390182794396399200112175125257889326131607730245051867730326511844484892022907010724788707398574127443990689196425989900493311932008191939180351330979515514261958031680986344959888405833968357184809121742854234398737407219292545651054862665600703970032130526548957031056610673958261032627791572507736697355041330542206602234996331980252990631822491954549690356632497055908856139451482139309409193662851838468688694059711343841382678317371611245502916682483574379784602807475337557445753589897298118011072249544716713544674033537850119169301524891777598764743347712194156059570565613007550036647184564560390179287314185394376469466303596355693264625270614582037218153328343625221528175530461131340617070979166752545641559957056714513743138413738511349182460986716129921707245994249394150730160384914696331540864434986911623234501223115768290236869442669480300566935903933023661152367395143153682817953381044203482512838735389992014267289986817392388858681212221870511307760269102187367524169660937392778656995490828059248435407502712831703680934451795057728437172643376576411348289355403011504760997531427563214453211554748946019717741792794834861116544515033633921402964028005701935175373997816450369223713504665793115655799233031979296848992828318164065478066595203907298412107507494753247182917036967387557010145068756543267389923423414620459455448734121107544286615229476505224070929113214555648223034246846476958063406533124121706798200447716958625930381254427866363859675135196988033343796296916328185615471919567827597829731271709286647474603303808454411484045095960002503911689499317242060053209901761794069954589922967896464792874062800590499611832110388517535767290575765469383306009442193986819848189209541923330938992016345437206389700444824033236729359354987620425335577438628664125259422052256564093461367634482661549257993990836182815520136750757256359864072468208211735487663278437018494754779614647615860291744085059641042602810503086197217567331319559770381522601440146523478956758921224607006440496075706390641206140180669495517921680584541099029324414473658731921744507889212087023335242131836775487535484048595791364113043394760946985485878584169813220307925204606789707590867342989735167599061325501516362001722739670231095401503824947005706148281519444521048938595742496189120760450686313236667112438698360642263654577351371004378177624710899945865598290677960600224528521760649384001161139548839024869620617988946214997504303555069803910874473852066466464642628137963158003317325680214526566064743103047556433514988995316622730478800660403925832223419385441185876715393112688603915131081565868867474240526564590261029237610921357472562840579452090046073750286883258089190982764595403536602737341724332129677062844262444021536201278693715971753869118886925116506032182205427583519580586076933842983170429908220368741069462439947037522316386681594036250043410881204624154395142278583722071930980619683506129637973451953493961521806599679798871665585156817078889630715695762895515455161662435797525954400565993024517959836104290476049417985453391855151506831702478552760212900808913981286184954628073645692212804829879572964222666989408929398793106684958268816447265283886177120255624823744953169138560345178645044320059534548705375866632360847450423540385772616271678547828774868787094797238576121947342179402687807951347761858412035411175856175272620789316739473607482959380913543893428495410611282007506835395068927751739131666450996399211526865708678744152389334907078712494695650911809702864201953850699424226187706137963672822723891492142886143969402835708267125778337978599359765887259725173468213199089493929706688674281322674960396377732471961085171632704788650644229478683689407612093775905453429323716043974583563454475119369861250942271197876856976244752190802224188876423623358267795117553879565969084691493243120603849141969889181004587254835319692906510425403285482453226786062541371420852350421076569967941919142354264741695064696731050472247774160012583573428932420589539596462461620743170603408479518293994770348954008349722402375121367529365584348394134529853661693200498455670603648919567401783181968992445043595173556963948372335343759682228659380062171177805000588196471416576291219825643461398706932928922192874544466886508440089201463943528903146902954786426023597134959381201814554821094274381935960656757169628992294313263960591752044080103764980188455112507666562090850938385238720060400536356775071487716322995375605785403428981947228571562735759674986338198146472673957745478069864161736260058636245933951594995854300992292922321229475830735301280107579373414974065704061920737770907583538448162177001630186923152042053700105135859410740194144601120923747180750322313706714819309997959072245439559834969756010416350252561253056235064998051924830091549801973278640732600137035102288773129075338606575444407656733981697853222747752272966813042178549036969349813580465495995354991932685579054285553484775487887755595825694399200439495828570163373286504590700685285941128137943455432275844282769339750996861399500453268212647876140505727554221895277466676968974488776316059559704759682954866540023830341339748676698633998904422156092371727818329298332125235116163754985237965651723151293762953661561640268662930231079299660647888531763170651017004973326117033507726400510037348123388744963838658535347576061668373991676418713026466417140369237764720218273639650725150892717757984526860837141969407154545753042880252853518279017035558809512995335795929669455670586879616492207481229952953431647310247001321734312486988676907639146833350700679776905483804642125990339861518174228881610558203026078420555003476059714745282238700930130216302330679988830666342279121276933137914849925420810988083764307126306655199282528643692181328582170237829493583004392888173556765948435728958401734367876286124533463802696945220001788569738474128741081972870510476513896535311354699439533498655658422602008734394447689628435862583017439868702380456083508484097236857641651617911319670091720668484594793478837545014879569073032361059631408437203312539848279396135011025220417795975956310781612750338481269685578738797345340872767552957865028141761825527091988584055433654564382250200914505438212280631958143701017994057629141961071547042655225964998106598195424331284309033285774929208373677680227588734511911878291473461094506549294805666640094321483559445258648989450932168960294916274704082734989153473712507504685182949330530680538336138270583151367345463270086082842202848986764336021841766350136254570294184884499091895964418981077508584650175259390420411668697178650498368396312382190430764653411079048451680039124819867245468603999469450562144937896716434123808671373849947683511811615944341374393701726272045509040675118069815336378361141528368703595627548042118020619050989562702950899267176367753310718701924652248649121385172315001343443908745675194771180725476688753949046023422589210903418982241717588216735997306881575433351878940923883410270632617563180226136709779869249164311442615816072301361162158724061731150298760068690912919733164857127316030446600615130985284459843457388573352649330401113174136305813266792350267145757051134794562715123416096492711318133592134802327336123788802077496134512437712149418938942908278545027673148730839972671180700587936556079143060580136096326671464407168679602622846724698801323952597972675602261316976398157460744107691447079081417976824031903143545310740620747250924072909779186721443664204270393519189526266002270522127163048405320115610005160350688986512950560611878838752376431533120706590644724205301303480922910909388888533838729738259805647969464791015126610439335388615355956263331066339701842325702060284567262482080119506667230506539709487110310593920981084801142987408247568426356330543198545008734351873641648121671422529888792715208678596109707995327108705107219095885010878836481375401648682970354729415885855498695799058244263749504439670105768352659013989976740549106206104366557122170495131352609566237772096886028799226520906035515868696166740404423218091489504893137184247225764890735294164592011540808262652558123848542261686961678168115418338026084611533069082369981782467402085729099367944323326979043464470707069645164863304327150434123909852464328542441085850979954535967366523578157082245418719731005594768760680817107878190691771945501568595466338834851403275508343566311713568577373768695621721985087979741630496975628546797355278046426736151106559066053922594413261062907554285305765720332674539863178973374368940513001175863761497856713129410630382439903867063987337183813141340688339041267899342119708997907295242622446942369734998319580707594581169519820195954965917806275407459210060857503240654698538059166028371255457142981456340237258758461573991137088839336923793116276257523559860699977139803104417096393881142138504628368310172819322790218706023990855608392392389160143271379515494702093144991742556452505185557123498255454319229625505128844165796133739756329848704981258779642478031011876852281203608563334922852430924700538725419932260333012824214366496366560847802402366221368560978209763786134001137779256862411608044828533719475653112461895023770779363278529434930370052617560623657467234180442161820379395689225548963753463095187585754971117091167701955782574710512527413813358154811726140305429850229554334656262316900340504706420612451930946194342990905191639600937489722571265894147147480503229485667803732256680448154257706525173094469332365440991199986838122697609123780155008504544244976583758064360644448343359320222386892278331030978805774841859971849804223265267332947091094081872359657681312517865780155618691176675699191668884341115498355651579311832264340817286878586365520871170735269741265692679394971950046855388149607291072227704232836779311549055993141053127224799339282939270662074467161569525546563534655761908586135588636537824394651075777166893027347695508315699116271751098190416490078503748389257021322669348916654941947500258678291945086487664602602328640012959723359049765075359123364623952407193202210575347849773507716792487646660698279757279856437423915885184197747684013254627507902767726886298478107416526717977778872632179522166962861547566249214203746022440069757084764493720654270972990086418662380657653806895538112098068649217881019118739766078343952829027744913302870249190207437009018994743809056840575466257869834454082712284218443070792443211570147904628035256210986387445405915048404990039880944532165448865245105634578885241103066315456717930238757902021113044834606735512477474717141458285158882252847371282177651210361950154391072861682156916801384943579918960142110714538654813749936161844206649861822339003142330366426321304915601668987800708802956984275939648330137410474307072866021918027108833035075374758666967324177017601115036558566032232620586682318572954178428359299901549729698878640982522236229199301485950821973184629668295498808990637699998276813015410721022344211909396248813196128880028934147220678585623142578237287498919517398678331369237196101803692122897340633427885694795112723883891397638099955923132329964840254715791063171154532261323080601431790453998535664727017919787765860909440482411557960746628690163298855598270771061155804007083394753032136007829863145236292284966469418681869485414204546678545027968783454618044228959448954805755813402394225521234961378172223763665102872877583243359038602695558499813318232352135718171448666596866896105670212014441481918816461079234395130877619432512570775945963787170887064026337114059497836714321363998416176818509305588470228505258586891018858180303391254707714334551614578139403231795111524416004993757453427082884637451398234231488863959986907314403541464780506088016295283553230531278203748560654321727057273439412401458098505772363432091834165134737322466248062440920807832957447086486133372514811215085814004606179203863912997435549960875396720729131801711882120315444679538129653812969953459026506459602208280768339584230885320449571470872409406289870694264243552317252517389527468862325505725660234414251531098150998908713923407667788631007705539165367438253987695628079309263805990895311635170065717584356758239707424526048627460908738854910403426604981172070949279171464992418994342471329711863161391706343126047911048241157984425992777431724423527822966658941777623121861093505748675515668188459038675568930305229354179166741242167927557590112178949995136298224846695038224415113452609659781571807583770296966179905903983598189043073130251599671245151003716826472582884190781724501528530662309418324732064442334513829561627116238908770067218432689427152727934052031890225264264979624238079882056918532076956282410454081929195616708565332916268709542827061805487484848609831690905287078953941142851931654178339385639880252587616793397249110487593052238818234645816353382126499827052370729394942365379315833929779807926586545583340308415317664384430110991627749669668101874501690158099048146405208771769916016936309651270758792202116901365582417877813502568411748630968223090773694209790316605347901257404263989860940294007520754128460407403587742535983603811734168196544874684716028018070033816509364670286333489153415273536232418310679122858352097460793859048306063739096141498390512612267830818017451658837928279987086648175781238233118548054164246259825528370113375312529696461826663047358645412864986446834910453475527327416550774704676337370031697975980550822926746759552995940927035877390800355139092251064418559843566453481218644066869607380200565103289313748493992840915123726817698915942473305884311534521409388847514465020656817823981999721079028870430547335319750541949785582337359195532467817559960375833745055124469662909758787161882695431403255007996707001566971120115863264083273723433739500878846166714450052836562507273507232669446709948657500393259336961904325954049684034742842057775162411622045298418939541344915984540052700603919773624794013781454726488851309724654387120877953055296973537808046097407095644372092836371573691089755855155563965541202268373222552057903867325051717101753819599321179945957243033205341290532666172956970106088830521460988617303300696717574464847416140323873253242999003965520491632660725994117697773370947706707623517277202756767108743178111791390943362134439555400953453688769075391513439611208486441572250584419220009878514474615835204425786957661733713611812252348710385145618094630402180593605592806317435290034819554574685797912906530695440233816748170953294002914971698428411759072831020128929299608101065368539231270969459098993664127615726068040692316506112837016806043913015070042079129767102918306046876681490050549445350203546549585772948386509413943073396410046508146843701017089438040587126996062716497212458768065403179011057171054826233491399625587654921537782182553879219943616582439835917393583582393563297783925290398521225731232107098490518569989158911060760465040264059185450570022150386792607166884776990750212154761020708355300576414426783703701381296403418626320742286173278864979809202596612156918193146870194427574395472536570425924393411039526313488881061471146178912894318647188485104088595633626037177022791090711346393337129754504512777130163824224191695712131563557949219748781965955369322707560570941406818428256611994811157268124881082833869656121969637623674987455254187630508533285532184355023885461103318530024960096109417092422426862446720079970033236197066775943992487309339081575087308990388298136506213783523525035168413689582461993495287118105311399036775923102273283180661651912160065490042065817585771638179005159937360105578737572764107768016394104538930212988019695194669190400649154416394312083190846861670945081752522728832692746090948964211391152137527865039736290572689089405726518855245890033978849957111630797055160960414405075640585829538664415114487149177591168882461582820293024679817144703334383740496235495595033854179115662329434027732289559385954328997973759338661249726685104525293933070876826400434270767126360879670166864477268622852573803831555048609153626596236898675680929523775958696440767781502577676163158172108488838420852226648007101804822289778196937358964266639484554184666954471607206203216188693803324522012984666375908415240969423846771867624374606180201173483254157838022996052582161621012212292425641685825530674722170502341502413843446072297305405413515007711018801459091503448929936473708947169040942180752631682664104347064638625026198774256499418221401498617807170391899462069108911156943481759520196820604179776541121822003951285127702149720167667620242675310991771814378246923768662987207382754504200326716022168498812988443791310786862362194052175130692009098664699202622912969476146841364965347127842834803481281787580947655575847146568150847783451163929584211569532125215059667699934804271617210300651542308910026869025256098449493036635280977806340002063452539296102529423379476040595684742407846703958208863385141088611980350653687232686330819365450565221082094884384098210691991065773410408533031963574877436270824350240526470425369495188688576296291691436722868522275317623258434073495662709996692553189782325849035990070193696619719997641040784642446522885814248624116875264559273704197257025207547755054151932684957618512131317735459575955771275463775371847396923564780665102305021868951028430391778899274951715850667431889399796477033993314504079003975724843841429161712492993796366568537075892272209092170558073194862113189159253206971922406030531725174291954480134192186171042476309855934769447947212061492775210692987361010963439805162461512899982749809632538139136833284102295689159768500357124493678222291716691784779877330130207684024901046710816530859611099699600375077165039837772798316691743647201374472319773837568241160851963263523518513941120445001233627247539951974929989255339188799113329677494307053005260196239844011820214962473667308003362473320272237683005066932145158281843037377376674345197376184011772064029286905916239021228120965275223716488299482975121871763424690005216790076912022704439768324885177672008718441651672927029059134944142766764978417984495064148285239163689163461368535441977653202186249334337479685602612670271575229580846518401410144725398771918014887636470451546607870677196380927539843240816405583481612707315301455472594697788580260550613972257670242584857563018328113024250720297414538894847899040821331414312480297435162557092823036182355919245093963449487545920257802784887813410046383019888461963548561336655045775849836632161638127424279347562200900553839560779699015810868856827882833667647749294502646877634835160460289895383995732265968289644921427200034603700459984788749180610439249439123007369310498759814573204306887718555944478813712949285024757458018239955171809250328082533102956825059159671676034591349201810981586120338093867902355556042162307844363114767140981913585155981070866321569128986058868955846773224280286009707502129035469850878287531004982243583811971203761326878889176990155243062354283581855223733617999976374186034313219950578169637758285438192018666391584531438126887688370318577194223762934721677491589352731872996167533703524311196514023260229029980878671082192848239853563666163964793739442670506389455113723511742120924633240295461344149928245743517426692680871150645029477693333156816417394311208850073241416251930245605474431514451898251043228766659713745591422118855747329434331995962006528808584131072980049686905386169315317012137192044678229092509474537789037456953929678326937989101446574358383725223725105912686636594084133055050928863335697312465594745996775460965987420508487338876994691191729399138818670888128174441639357781807344533703758274086265453728827928486848897640937468313077219498591205073621616327339260066448223491900130553800135895723987524068117194381315726956875355435062866284658070450128196351469592771468671824756443509886000878612681518301325299689564497613046823024210760488010215729559818372544970543668513460175095027410292367394757813197675797616307727923604933903145496914535153152159578459583437294463477477252706181431947581587399052976567168871273412178611935691888728750525324835188363212597849719041262111343876223774921413923631733752358811480134928804950221312213219008529139934426176262649116395125681232929064928286811442890007147397571484016286194882348514019462070498356066432512664755781108722649000098404871386805735707490001419834715390235921203391107167635281871617076733171593177798846206523852716236430473151265279576121569545447906182173210481058885421381966400931848791941400159166227212544518025325480298249485221702822433555135143422221418580485227877383990731809410928048270958092999588439954245731921140750126480936356780897846820690503094540617995486636190697655142088146647215942042653321577078504395922452942388995113436423577926516920521969386950920331914356536331749476161202539044736975568718809723743235920334126289781226482897143768818314789510898553345547660933771943889630815020840058674521246120249475795033132407158384383482613996627728600802954250598536287137021776750462558638958336325364929698707413825039022439172266170985270294606050704233106095032590158537008206724817087566654698209184106733447098737569536962547560950574451809656410041353254765311113482754184579213837557488050946433290748536698368832218992605377923472022880003787274204591118863667599216370812051865233625967617999903859877993890885851749782614842463566544523952860219713400003907550801111029984986082513611448479568523153873128784357118777163199863875799112995363300784643675929669498050605996701743214634478963102605683631223534353952892883997963828169197224274545115127145684953637866563980991826886089097923286822308947884324653220927123947448944019459812856242367034942079409739974454414506781434034893122383548197513322658209991564766322655217855902999466276258771595597944404457876951300284843745061716234914020279464915285258877453565403782745101493518437877824355864137231495439927434630214367336174058861057619276710826512210132407738173166188931214037797946009357068245710497905676607774402818024693449182467512501893949241052391280432668545673358399876701412474202067838621128500354016621113960198244544601766526178786526544204830439855942915947445368667737995641077756254731787422777000080414353061372334461519946797269135873751105457846330827852077510863154581171978327827946658517867594426557355347555410608935651613745672121768396777332596687975358578439740055102611664281339649847849850650367047054526347526178121130151712038372646125511866107940903681812953116784705662698796190283811611983538171538670911509883419058423261001087088438948524147519288142264090121268535983169842570528636740080830591425540928490886126720744945687011268796570757771198317141338254823333144529405412037509946343029139177138939883970452060502527809284349587374327482168199728853787589808502265966196896577237969169412679952302149827355272343510067598020151088329498262339044937011496409451855497101671438478911623267828944624259038768577434796207558109541627966907764337425568096604117549601715188060551141945120793162544944399000814022201676512549689131448648928211261467971465307600837531726070758396474275932224290564025881130246900504525957743018400384944908617212658821204375255126872321785040121945411865838849410491430100756986632089144404928685883718957530341147141226489760219864904310960487001749979977420480460311894639578271498071095861147212500558812292652687545029104135259649583510454712117186887073584612141095212476969979842015563684529631647255324989415445160643248024340946289584116072244552274248240379158509676219547040494796653715579280148856454004834023528551756947956825685674914037813707230733530356916785872858339417838178780188757996066563944324643406844719222231758123896240338495486913094949000752346510186597945537040322708699758181715994111206081053081856979100350108988644671904789499930441969441715564302995374507001914054881706697199096298078876082030758027818205680434321652855048940436226264696977169489987684761970668657265987193331278301588596594710774493923235255366026657478128401969966565636042326572306671315326024520680736232130646949676248557540129576523769149871282986825670572041650531068929713314354734601482258858974496848429843711531630068344551089897770975827930276224192801683544697091548673240275978164239276751472349194404418615007328574495890202818726667801640159394486725304028214130847654598338543157509694281658612917965704141308742673532504060060233851148936206252279786803010846167019991745725376640381767349068707751932790230549655548637313526799643323103848379959172610074161740721958921427915336122325726888725997431174395801322234753427075047207212011404998453412162956121513200830393490055025771388891355985605669650708475215111570608065477507507173924849953160395444150107294698242989143667739619912293538339816340667935852173520911074374675602402013302552516344804250634702489513803969471542974869673152464928176634800631437880704217423160052683503726807994844414337313292713933187688020810363694466911750640497722521335135466375680966970548136179995384568902872925823346492653163302636054578392495556441450837643341286445740798901483385302994524692049020750843995984644737530801185733497904142975659484860381860771739690819156389489901591163753602114094999525574580728857250689197271096649556208221232492943147148130690289061191406746386852381664531069572458858198547628005625772120306262886416875835997448367005080994322760710226665137112162810003294878407453293496124938489704553586625227621379224108676150350952804162249438667150872637692264901968302752956857801155030469417130193915086089703292513276601500677929217438973274160565525489435756722024319518191598932415306350456415457781919244388460364027359264213287477668614145397826292450502928997867525387163032744041419808999737364461923590330066598234117747384882492420424059671621143634991330779887040321488208911795557692966500797932467608342575366992109567188722826531871653786876495729912180236571416950469267117009887935885359364070056917419163995407012209175923517397147757891735052839933704089452927684823459418920000785050258592411535336712687634887982690612821840063159382689444427832742573071564930502854944052639788823014427705695069096281096199781408886429648450833460725134369660148696722654731435428874394103660426543240672421708899654292442943775263078628023230997224830838850541228157644180361906737440352116439222563912876568538729918246073197609881428156027317181883305250938850768622146270417616991292330326712196916535357216802419026639131260173964758487055321422134172533768436275574665789817587973852745676134502142562540034823041523097647219194014962762834628829596843136852763417748836375188912388507943533442830466626274130759044644727260648671677677236117365771502166395030126177169694247563079924765293636931745134670772104743936509533090742099608749534498836488166713842133926753780447527798872520472750201218697333281920966439837684938261747193635109726009658120740144633687534192478705409536467405949690548875379154481314364479003449346833615408087912630879302791598909119210148761510368851950555312520439030452903370129861039153287117474915275168850738768177374801895044554859191499630238947290692140532326571887186401509625098945524227035307097741279586803010396553581554020323460677304899303388018110431244576264202604424505685130014581738627394695938810613049502585335841209038092487382185439797354528447177727827791860595957646758293053560068683160557126363262763218691995693255047377508440184253320341358001785599552871568894144480452487922021515112373274170649480486841589589508264408412196069821686195649625547780024624705523871095216921404496666672231297845642156036481166931341748071986555241562321440805083511599064036861219032509204691919070426004049888522196264197079531337108211339383808336487995305179811579011552999773730595738378007471450210299074665643633475046665285992071464280511706488031076286860488572302750938225439436869010523708420703234348606248325571564787506505295788960197858333921533720276348604268673381879696330728622503071603691093512655667456257769653026258060175598092185512781071076581561031759596772272495945262970469783680424123212431700077064110260468019515915959222047568478674787037887861033615862658484663751838658199266351994520565398858307592903173120575244879267185383757937620620947962620406109861302803098530917193986869784205230606449968085939006285944493304447303768706537708833714565453549768030567964186199465262019981943411945893038258397226504429122892567430238988476738807260174097078531111209836563549155907343668161024822810021526724882594667634129713049146962888006950782742538172293080095102774114638155806350334496677738401031049725696289099952863749737920554461408771743119216700577752438072237867903681540216424104416124120290442165167741223988515840992334906594013968065020105767641896238996820016499304172371998311139745028026815098288729659793497575154107173799449338999303110751199212060371055698369034871159142851878655463373195074044707023664676997580100111726705095994565841413559389802887745476053113344462308905091185203270826415092315664625210499281043713702230280042465763356462770154463250951525410786044523219080931440430478858017659657754258107965504451330544226577809300879297505789037944416158429697575440592223538030367325428981079163409282384278611007671784217529427352683450882952191047027228107117820726653775388074877290943741438087858924550291410659739564188110658715302055472207195920339771010938226873769406735892611143005110090443344766189418140705132509684122751148668878282514539316629495633965796770765665212402443926196659375865203555422746340434718081784252567807542581855902339793292418515840413560688712455340918681290868976644067964246960602911322792207358915223096382943287370982871112654663618243971761410542304147329276915456230254451824217932920905771161288910529891015393283805902863433425312203963826821238239089797810122824451018604927317507099573441422205330895295513288631576961093572208731658200231737042783799364814761050347587589761948126939205747260162658332519370487984447677353631832083983929530791963111468976713847709447074686994321036031730929096311732178366490027867711121222921555183530644131194403005653622133719465393997905601849071839277225479660903967707525881519682027524975002354793731872467473311705080521893503504271539482476551803949166917142340226322156627528928916346498351744075498840892619430305450675429386161135392247775493132968792286446947080443774951342919553320043942931952664489515224325127888909779636497066480218224383672978868339762137568328024893746238514851974612119369977505431516623437598374248132578789917584985534342747932755440980958359855142343739662703595289161469884933141787056415085404540422924269662144677014290091528996864956192979070618331103860827491256662935585729236604441879734950899276514467952168717949467825664649687550551490003560915566378672131086889041948559039346778955641858292493898336609736036988162753533334903135512117290795264405017402235032281207491279924826845152581870537634761359648831536467822813178943961063991375493899111135222817312947424386749576187439243790443446893672642661343934926277025009574076147776148185524210492435328897066457704046190979836466976860331211717884331994073233016988957001142521812611904325238567715858056688632123498497426684972005247578923866283131888144709481071472358770473397178160419372187489547081975336423090837348349204200064648447387053052217374953319562349493293384419860609158690209774125500811480105026260886837759081496244809942881652173129886163765217020680462634709956873560586965953814514686432928585238709778111952686382734728009537866670317867500929590517273973015990551830273062008964547490995855901491334361267002514649776050007609622143296872411004358429500188403234890907435741715003129020183825716149318356223901382236505188307532447643434806377577993553484889623759488587140176520910370918441960930006816803929788719998898294955321020331410350773233112706138828175315963789507628464531497512368641219359362741301377890686445807306957096685551442007236358148673229446254541752063496580990024640392985396151789895317946982201409858118602448847245388591933512939801497812538354586565650659312512498698545823308320339673986618374681139747909099564302659421332673375390894204835289418301330416578568606251717605301001687110388092522150290064619007450251026031844693807521143359701180661499915884402729711994391849103445709788217901318958756118129811501772657421343375203150488880860294612770375915591633752447392803442882761291594138118433413041475902050173877617467658656143178809914320143682261013585599815802451893158835734864702204915807033016286425890583993507442501827722098215329791522854473585184256090819879767109136549225481832238505253008952788170935446196342624919522526436283400273408751571890501709611244732636798772481878777387278446914483574298540726307791280686848607930663002789023726825473919615617572087504570491497168050812297711251143281051472487857232079904702351447980236582408732291009803130506857077670339788535098215319159769895853408688152278800394992876658561406998707194389627046366964981181734837111628495247288024397274313101230357601049891901936165942873852567418662643158671546748992831309835696663129254103612687478109598177872361768633867534724774652615996696168861512199732708647623656211007930624460210270282198306472402248933335403872399948177817969947736262285960606514163498930698206230469756933079560644407227248640928855657429925325740344439101238921245939031775137172564341396358506935176330004482141926330410339823384562548214042508331377982922501823848394767338977924053949833313746693140849315215780438238918676283508789769484623676155437557872062788348764321838441545025963901869569104784739380662781086927706536005316447518386240043487141191113513972026838438179365326868128750694391753099114608268781742033448960339372995902273186480707587057728825114856546753204801294324529986702529395978432804253032190227722931804512136921929494347567142708611082550281994605870377454738065099589918526414938042174637710922286156179443437424134983181662854182226735029048387291745735200476882235373726769243048384864032089864870782290681705096875296610679195826240835711510525602343704723093033000104392285433344782188813406707859022240880529644934077123656588215132228033777534621246069455393923437104709664864987296857524829599093487375997942324234796128329435464717406078469265902264540253248340736549742242796848230867757782776476159922407724983616034002552023882370053142009264549758922522635074978781100681849762400713129777562083573440314301987873744599864421744958710586403633462877202658386322305444792121758692782117179429058763247672924445830310493535106508020782471732491770953435441674481313926277755295917507714162242678613898973792091570569564479663014625698643226333672424312630910801166988084817768254802156531724082253056934136925445349835317264014722820328584325600526858930780043825619191370217613586221131609752965257922093365020482161597853683067926533086196541254808116796563436632834656942117349009259554599192740041831365029952174981004161734126186998760464771605418579685520394943149469067031026913833604607947004995995133561448336030973711992035432473707367846121069510555834099232574549667736214756869610104020864747557176965637875195194037586822092023097088141485423056445660973002087524839972699583160513619938974168269797786206737196804426140000300448735433546983395977493717198332450854996572222465045078918557244761790290165138447220583865299875702049320503865431229268478999777869449545375133170563387115422340648860064540049155153555762323031650749499710167269755293308398194950440470404738422665971363922806045894099742914464458228823605969633699986798903107380101517037601741940482175738194751749407220433021019692553974524611098180317138357694482215102152623048327111896095628590112086451050171915237815431396389575019178981725911856495749238384065300651530880700857031969798155552803387751773880247545903417537312411719176907932535375567773681382935727573445104269416375581701575775135794648320136116630920428482403534110585669661819317940619503710328465526322471598142974187330792353673078556035749415756452632750380110701683411372233628845371477124027201524290221299115914852156699338649553896560544268787878367449992134253550278374337768954689256416950664286855957145867926215285313628177034521256562411822148193052964213800062097645475591107325520283667363727381026341863681109061792676300429628255827550811562997763620912845339026265450657470006674818865180806462717938666563950371089393326486001752811251973670959199346075188811620765312165285304554191584868737964729641939559467428864830847781271039190293015119296118370844082989448769994669402243597505507569495898462809580411989152553991539576719103680511158043721996565809008050765988801107400461115611525099287250479956253523005121322057262728218570416187877371240340217363500409714097224851742431067221881729911670310089450124850465174354748687348849314042137459926719227643232126341736677708988715058767621693509293455564431251915007927668618692036708812965299372141295379867769669021678939906539839366301473534593632743046136953195267793148035372449524522016542626781878405276482483709515626909807799502509996276417852448311883372832819862062283959046159459296082534710771755004932524621213356044039408924854407392663359534896610943027342875229409447287469349070790845825681240500640672266504785363080278734075974260405859351590235417100679395651928063185292555893001665131230039779242522403720124431178284600420083646200770891504707549444530388116394312319432855978721797936648430219903455400130821971972578693598374912785633441792455067732594230750307493198361092962020219378715086562496816124267870971294013241418576057535328743823545937947432552355011473610579648892370226872169044039371010137950708993769607623018010752394105272599032085316394493666437915555567573946134365444128660947335043189822135221263254410444130636741588213938045449886274448568222554194173432075155262314854110739229420561461317049780701438885154798590883508830875934408256951970730381255857688105863753339862173528125947450967253107835005123389591473771811206251188421828072053555513395574480788999231078992576164609610456100448655623930958904698384565011055546235086037987713557021786647931964953934962340226670896146234188615983386718064410564926764009484059384119804251287955444065625328075172841513480596742278125751699704185716184200837581685705608128963337531823574911818015457231170085366143923061439465411161308284706736819160779321429001272445224421448827334099321268305436658311916922924808973863655671943528269575344270506701848772433154295861826743135551718096119158457332601415030136581300764378089883507805773693583781924662425399864515033506379949450288993277560362522669906632079763789285990346015933867811933339616606296795510010225997436080636712886273751586622607454183911079644982689031952705767565784493420430068607737985598263103716246815937738409849814047709167789956629798967285840876885682519705208283018541751964504662689866149083052285937269599604359305202950594265354761722978399675452317788635341471520694966135186047755949583489376191170815490419143131902392953727457348462323482048694167766525162236529819232324558446660012603499922941950275640150112580922444475981808382946961432146219731060322037621585168714855179563331376444215461816733676696688128718791621209641736713771404002209140103249126771149122763230323419096710950995099705912796794981031287755939315145862097834309126816200134467563302408101974319618985602847869141404669097750442626857754452409512966678962081198504385367329343781826906796329653082041317525218012303580536456090138938630781128925357825507033094805818801799931513828248790548890010755118636955778804274644925580574332688530052726038831883294147725281709550195179989467995453831221647090334406090358980061990419914843422699033471822856763867673051961745250468948184137405129316221713086283651741483571743029203614249498238611694286128580197801733333726283351923372976112773398300181379247579167611186716447132230265088447206966009400114740301226722564248291340660491834366770677177057140556968294312959756227083728776917845449027587585372344371009462794606868667604010079721994037516785276977391634744862805829109002848641092023167721808624334367688259945048237985456940233461224070643959460359252639883809078809485145539544649842503402854241930525891948728557980067033247103919098842605569615771832404245333298787234474906216494679601344243292932414781165946498529790013442941308368740118241621055831373726193327159392930495531138645917388677706436956346252422353855926381346075579891642860995184215507817057184269304085401492281313007433124105110818267106487480530901038796182957162990939979121556890119501068870267396337939783613935421547419450373342698955198024163469185615567074419879047415502920065325429902351613929185025105909420508933347366231119344699695654243586865953336055255143638826746682100484142957815892553610225952692760426279794430314157795638116265250912807047051240867021653345572877472472181559673095574519833455312633150198280672592137564455469991954004761275013459409573619676961846166095808040223684266401066936129693998916345607908068154646734600118662749766697225202538462315128359409163933424258677979620028146843838383777370022389407560568161631271011621532529548716346477976660487724251167540742857203821799363359744863356039785253639426944357988935198201471640281465513614537132351829512141176101575482771064395774888147634929851653844735096844876573825449568447464035119018481659596101223807853810416755285576907316612551337848494128547460437185928171917448547254220410335752153196293075647748870188525019908289534245054812988731953838410520357168927835788411288077839104139616023622618870588136256238150744622770291705485359561075298673854057599283755003031146936475753695927105949662326467334992109967819285420447069258980152614344126720317924056436787296759109215551437833794796342563382529728103407692234056654113343693162960591571775107643620434699094509450708430667771743108284095083992478934663600759924498930919571773398198057516882893078968729869630158924629243293837874923062478017043826209437466662899850105986295218041092893955616496302751693945240047977051294046429882303683554178632981450912088286400868339406833599806349802209287037307480979152250276997531141034788991899708519156325090096015388689741067503850214823192092870095322076873108275676673023322278076856246124923580721987842842411900284911576977034455876897125943581186835966203535311544764564109559591493784243453088400284116452755692897860814707601551814955144651825484856541785527087187458376273978921459726346398915564023305015123007519910866687024587153044460366248592285872241468675590703816386301286648277457276017440938152731903350516739144973309277370061220836651543275705955965767899624110631606355618909184619707931612113829858948158834732668410333120513479569804440601949202807430106020833697657833982775749531648249627857990538991007797534473298530529845842446047747347702999572810660389344808168813858250360156656518353467213916298720705901731502782605441379937290187616066330069765908312348695379426994901500321924799692741869358242685888857314403449223756693934311626775473493676002638305448137002971787872574073639524010622132576437813632243864535053570998105923880842452029925165901940375494611895020661476822314385252327614107574637958984900802836839789754998704547924707759901778235490415304811583008534798822454723606815877021440339756695195360428556676497632697380109429973912415847661293500327088979137561868024739118305587365201559156645949906784042720761986669779392963155429304188963779743419703995813813630847415767667709460367460143379732037210392187123471409849198791473589460764383163960161210678702773771554556518292192866491094031590251364806821972271937543693441159256308497250717011009354671483081785025065891100720610609489636064728456353129845256323678621659088190295897604859641907341088630515971218056543925143025749591054038049215773943122793871087260884796715134889158013356945607563279030363056914230824401944245626335071170205090646523965545646667047541471358940856189752834000645230904148228496720049597899084467822461738574142876634076392192469974235481425752429698211907620681519369416330524660169300261296775048025892284699220133717220685743772816693169818167084209080151742475500407758087648865596422160713871766898358540579260684218020327978053380795335439643833491911852863454040531091152585164151765175033883392840459838199312735144671367296385534119437417982755261772931844408008989475785897513228144677856258221924913466453479713378757484296912191793463756438711798185357482007027774606581495261140743766331135119685496047816240897677589953699348234833726145336899611935507101926699165055696493850424384405079881775183686047974527610244972500447749208301693470315770368698136532418950185346452573911841413238308633621048544392650598256883784595178579750807069574576603779236450546313222063437360003739178879676385081584173540535422222037679158153004820813288151023151401751893303177211789247399911028164451327318839784134706330034002572261009928147032013585774704521828887290898255002818351879640586658322366430082961168230835412432171526107945122197246300379575552637821588543931721199806830434683659485740372717413819365350772410795127262105838301531952995544149727740356867926645672309055585934054736411563458046081687050038518680772389852829884374575530334885893323788150414105133380793734327367875498489816606477001543036968357462029490642621351153442767986180470715787056350132487977518387279048091313144493684399741416321230849452372136705164098603537092487936659826853107163945968780039652207420470482814316812280993271085135089711315045101778785466491781941685208332668581224478588084857538040192888500544271514819516419275413593029298248720204927753002384213952012299562051088739423777967063195507143251569271027156765651516896124252721843462227717881165716648057616438316416958643837471551336120126246165363277308527431706506082808787375305599685796598149533164243653965445488949365197564529935742670652101302764827770777894846659332125964330422886993445323034606918226199520636581895483284269991561298984140727915618163960152262820482366472875895786327729266729228591310123224462411092810880815400818002252503477703682975363136001857909161729683570721098386984001627021235567560415200537657127351390172461899672001901448884939822846888444394653452535717103659618712261774880570275065831661304091116871075263474923026601818873066664098233097996863532404637903837628522474762359601707939838181266687601439053183843083801904926430385651778853434617182409488408076783960913840210592947929522067707664581073277126412367075304730788762989900362465914326430421676418600245344841915612587160347580590399051247608861232433443060560051582710492972738642662305825079414652364687892444455965442108740004321206143446079953749487478401337233234593360805914949672478718031495477552117668664471879572670257255788926642824463554730523368474509673765633655399468449237072412558809117957044457915894671335585173152826125097098001656787210059319387977744349593178130205340861160550846461415460604582792334353706837230789613701799764545656173224011516009364322487139331153772083375088865800075487613310135174115940555640536776928692812311449585956652016683530031397152538126336296656769706604292923565039702322217814301455620603554856615251449365674680390813866019752802755318536229414066239170187865140273953616888606885143075471521321958928536520945527346128440890081417291663574079759365205305214481742286687707628580168298276625652139389309554013424634588231231949326395916005461938709702221734451378304000763214419845392428031650879852776748378030002782519858636796821183336024640848012640665995185489960032981279228721486652368152056496819684910441957547696758958843487117052351731418846385888480550769456013910333199930399902557301219509543707626080618275573011135521846252476152340784806221402011916190874728577649687445938988588563923022868166634990065537045965728489588129045696492340552212139718073251142683450615038986159931690303624258709306710707375307206636472170685821570367114390224976412486957802793332754225433449536036363901133049240485054510484029274828664367978945760131151909142357367253683806700863980467619146424563474904403242950440120731170783611666828430397676122981064529735356155696418413855136081428237689379844822115780542864926741202689321519388398214575264672611552340368188527838998979128925908984038911853884070693547165790660444661477070909047901408806606880784088631876044001978042229649742163262069412540906425429982094195676700134320298101337025743871350852388606688042455485643812801036943242115984377071241171480792925749415091408206179758453556339351312737468113438741849730415530323247304918218106577289741192481583571237162447947403060712697955716608626625860167792416942879667079199861898006276652627362457876660685000651805177947012728851784602359759046713964023145035125114241530656468244751609363470547270216476306988739369099820665400266444336497964886283233535420273143065493054327943801380830209855714167046654780447578284586800902830727641252218137983791575690378933835478155293909188417248325827731889857618212894041093304232392545517198597002092852627543599095515314089963839321232625203317649065916855882768883346192620063014845180718905258960484573927084599407289366783219954559431986568840151936739319171071779985793042449822845654563294885320630039466541509993316554195355359206566626936535315977366847203607397285838886750744526423902799408409102642266282852238918191115314158557954025009994130936073280348836302662567686899182816103990031272824408862511350056713745776591165835666967370523013504885576224920567505804509754858821164910113879115805781705129305857875776819743006219988182278744646297796767785733711422777987133830887282666519531388577896806786702303783166287873724097321519471353331082938267195829363895468784906077854289119579529274750176722719114986250920190773922534548827984664565081375192450255810308564830622412171114945947754774747492214799723803027591856010213415357446029578410644434892864987822920304292342541409554650177142568771353329050295835887484691409706020824333668022945286605572904994866301081476334809619534104912246335296892526843533087507298348523077042308938331217163915621259671468490704338658585285940879124105201649783939944091883965677340035228631223813389424649582362933819032691135731548441072264496589318017425613373253007768139320418783250600296185206033625146545749860902542762878417545650542498477121599267075750482733731761837216807245353618697000182776294503016287452103760375943178363867081104543521206698617357606659218785227660199809311326135357385198717097983912946112084756570576697217258418569552176016245610210053098341357445673459578983100838224896474337321922812164854982492642160360720873564948636836541571080369507824572989826686827059631265687137046208052109829696781577544404783871588425365992109981549451316595386235009265341865344063166447385088277143272161741429024866978637593286625083707588664189971301944586570277136908269471129963354347144713251164953321924656031912892554769727927400222054670525816341383999579005960837620317930030388012144124161592642522175908072380323316665679373166485579481034368136676567228945027231500645174012274142659688955038252883777608690055756717184085347876810182103202542559250091529535968302661041910858337104183549974546936959813307828004180759163488834603059944525185129422927553371042997799960634046784266404974580826012072018680420692078528048937030596531324213066259130580864245907974653166280985090512849909421255210971111263510865193421904929819540000458353699994705611997168421317364271769640031591261605548588146051960720419326644419295528219978866818367069404927419793259039686998845086138059599526865066948133139960773111851375308893106696431325003756358053130630976961776820623694575915083042493940120259499970820350137656974230499611338166709734508769733596545619306603669405682165446497933078378217937637453089019228157763657145299894120766588773138964479888092118769139683887624515352664787723590335465403435576553731171523260332821906474896418887530821559510815861964074404020182884685912266972306256613510316960147380517333488824950239460238832040369539682472638884219868896998812997533866086588984320289233298973550555267542293261553797124633999884946845037331300780506098436417094961037226783851864865003863512485058681052500510364097228264801756266415106679705835513232253241120436563766827631527526667677376966945047407373054563713518636709769632462624631119928615813754766905075288279471879820929075239493364297991002179425112015394941184926270415412689249390749864067863236376017395943340068707524975955367920854245263091761417710959981903899437737108532686526306823498189666356755237490164491010576317459158782535722785174504368768071583088033184562927892412441529316580905739019314668368382549310549627662608173845217901596998219759672804983691592554302720015293837294722022452255245375041849519756824217242675909454200266699824879736906288205432559020700983465858542543483080008380257930372831534866091928549678936259305390861899778698063282239073374971341748111685314020780393011249672736807816704843047631355062431203195290157513397776104457421262864258181209040112093250325748040177139556641203803297224419094228502254244504461942177675905904474515501160704205776919437062249259827724144555655814845571022381287653113209587572301445833580268324767767366582423250222931665841922977340951385277245573186228356528513136122966127418948539251700097222540921102675683296049978822243340112909743753135661422718202637683279246891148970972091408881792559423883974972300491824634000900947808731336760664783573813442013452784107078360629837031852187248510009643102053290088090650687665525642847504656322871593822061744443914532655595856764068519847702343969349189556686543137745066520848076137486609916681396425623243444322080237558414208916345844427307710431421163386959269984021612361553394687725838995827362941404032684241175127432553827363715874606954423329917257578565309622623433333210000141547902063917309908143868419354261795675096179915157663249354449534886887263255430829133253533599786100052558630315647173589491656703754489416451779541674262530376168041645746822262316552745902705830867962686062519210854794191712408321070548948149822797384642265317003813313681497835240485735018613224570753752855526726932021592573899107839925247862707102338675193523930458176210258743067304593515062537670664258020831204228967995207323779438001489311590111535394826361579355096304228784634927416449024293587147190926665742357541652408512769703408690270911607632824389602323135694507237402938059967817455837057214113291463090159782903236793614380931015141401763033408372208401975313592121092408647975836884487385350275015971943629725299235559129010024210297113596698807955288558031514999914596548128143591813532031372574951555729487834017396609325751228980458471374309927465227887822768765883167729408160512465724387643582094792273813224531858278838539255591142867416849192839998603143156264683987130568121244595551887070776670557893342614239397166047984939940145994413062338786885147333827731468782980299837181478669616073275550016396889603654859520803746136920226077433616976363647179881799894852844453963922003231796504181127126815227415461929084798579444128456486222950024302496594272739813237189104677530468298491308994617375483821248048596164246478193891888375664987381554934619299976970282300201008215930942152807450057637927756898816671998283696820253322094961576332158472163969246565695008756811152123756835955305319173360904187274687428172115985445382721490242522911037827908176284590446320494893665916954123157458404639202435789399234311990527446338352096812722289039768478543303621849571003265949289990028392677821656408671619427358215862636936777505549449535364658993558178194471698788135985001191979948263491698727880513792540474152057437803887768993376938117847218175114875611547855312039152281097263767271543969027450702803583798360411542019392679602873445547590351938486334506291193676443237102141585575271257877171761112485654891717395428216938437375186973240677840365675692388949082181235754126630027818397016201569202294913841592945228620418713349522981378425734264495588966008198638008872488531219096205564681100025767677237342292254661900200819383035125305529028802462680194708721398719548571800483663153354586635662117361618514843519114744569673334584148076477660639972854014262603823890898901031651101472536619012443257139273988441837036014757885435514503229106888583456408143903477460668327902779960135094416277843442101903374206291073703410525047647741213307519739402449886150840114373865583766673147613238721151258003564849953163222335126316755894522823776177047346320966159513496740511508118018698384344492805979905335732873992540060722689104371904269196653864378689907790063795193969287601209525015694568781269529345691250354592780550505489487945994359005574486404382539806360275441849535811894724801987630366112209781115797328735987005870466720313729211700299040109916773709057286386800671343286001903060767622227485142294030114000152297202169008746362630397332700039345692329597461154388841823369593195084048109483129005782069207719888391105074653796300006252893321517374807995067742724501178315523707177952347216216754253024090715591340718194446238155123972138906391753330786375970658199073742205892357280845614698880458893631216262398563445158876788995863694471276770577113607920368580012399234852454548369573116323193548311757543771592196787554419586400292507950753652653541351090006192263957804260894005269909334432255866699290495048562666486433672925691210216089162902762172633954247838242535596340414978814826877890706180166209285015534257590412729485372533302979448194700279839603495931895814327262949606614073602330011865866033535848670177177958237426834275413828411637817829476976834156193979301677417388698589985285907342188294942504052786344848491738248156461276672464174942119752282945149916224853300912673705238975427716686478041431393252064028101621403874683100668170212604307152524517198783707414101535060431631156235141933338466166998487127031563630844379685137818146612929579038566772860898206755477358471236806758578544350133839837231117656612594747463285932533165569928384695721919968655390755053976395689430844121488310334076105871952013674937723515662750071907250288254617582758195674056729611105623286560220726093205304008393183968157288898695193984782374705125679648312535595063726736507061772755907704105038083344507497375807291087099544818589194748795985538644680534498762630644724678544653240038388198564712251056289668803317247786861640544505918950173789823871793941733392230255965279953809320008660720267025711919775973956518283631009495119424058813325977398735965029419443895846244985249005322712321203325645473151542599108983286525756979649191112982333704436798796148520581626606601721991638493459389527439242021700612756077008885311612114099726023187651944405035964088959848468630703504642910408777130211323228841950449562199592171167697331030445806063461798353138865381297433347325277855440401677805727250506420174959230414897270950950626186859127389719136804780327730951788576324653187049703141786154311017119088705855682883748409487698443310511464340264201084410398308710367071505402266879928606702632203769179305147808807799687745985088039666137281724341452838192525911041351335741530147292442122797638304976722612542248122835037305614939536041990839207838588567165060188703129502611104183404549935443563600011991716123673146218749418652940679017415116368404412644240799231033888763220030646429980962487251672875926653893514154461912717701248373512268846899536276030945572933386485535597328062328972313066231770672327960936969214291701587179504474091258006482502039368101152240653230232838273417012528304579071943620365281319083078580513546368739273428566161314630797653526919234474164502011700082875141524011414758451122523044478260024198733484401006673528722827675631165436598979545463469388939057861663820823142356558807802448423417352303588754731909816563570018456821417624321199869140706488098261612936238374636734650276899484242196905795486034649080861130943167123135153410049985400235229796535044453391051360993068794274131527333540830858306043994604778922353788126589311841878862894251331640130654850357727176994517746810581261665405046365870660731047417556046750668943936369032165334031298607624369089020255191615484048722154370627460222145428668229810195365745649522005236914544431437583444626195295218240474453348532580113134774669051953608490126507455781621109172235146532693270210445082530819632407696718128031928975083205622786294612719802315745214178955801956866464751833439453322781558938864604668951725897735444887980786326508009125145535339698722642592412209565773363681405351651976166471214411464982765180919542842424666709919613021280754421206905228152265844780843329506379181257775635722948783536062801234723773194727298917832999644816849476914344688540533383209634338700956600701976599438019399003826500374396746177923160161470965018065776121907591717979092105588045754083260052164779798248603778955506108308718823772775941978431842220576358924930275972139884813101015462341139806408675893248777938784428129814323605580529660062752888935597465707276411893193215327833924985072988857611146408526677419130813242191861671574279048400367698490631050154627786974289723012255372563485010564704403263081868334168866120639998175241913450214022532069965068288497912796415361098745281240632441393231756299503846567603107036904050590265321430542390774755783310377143682290761152795449422939071568007546723262393154921620421372022496825539888428270202227850315745034929046813237478392493360296811638046589855588539276490625251422151044529271292941699949753273812802590116845372011778013816628907376601382219735409816029152458107815965940311413709132622232394086461252275732015615115593699503868999054223936189846427835032762812833580554586301558356228061337141222919839022051024526237822129313585541868387247162534337603300183509654237142118355660366206945536556600186136184779248318257625554212434813251784712007004318226741927864952267392250944933579634649029774575565206444102336457687104146199535752970502312058500732375888676604093919939972783743272432791680826601656731983378304659888010798094283103044210908103569269403863834357913797684915814962172839372434626483511061794384904967078651627923456736936946286696449814891895822143759839196897310907142681257422815087684852603600571198325756042275846383938973661425323729751402078255038397765238408185432344124795645489636068310170365962210391914217795456332988395550088195672056533595817638332618965199605506603027106376902638736284162714202219721845589940815101859329238999329613410682174918062249940477099422908994453776210684153455309978245546362699931093862403612721915884704177476851893326112347606076858698582438981954706916099255251356218028623459595140670148598770472257194580720668692340718752092612666052815054311826327374926299826061980986350486411826606257779022041196935677368955864797159737237966445771784228976557087449444147109690686070763266256824708900592606273999835451882609885334357637814148669729833777784593348769352112289290906365259830501078877869660544226249554784663008042557627049173469048539833601720723820487865291121150839624586326935803484894528601715230064401246194156521922971808933447071597065585804487524216227151414474835802533316106745384374512119719411530632525715321581314926893420092342390618342967823624763931191035288970864162622049277072480289318995952522224348455610768174965312644503158680616773664350258006100705682399897701651142611890415597604301033653050526512571536311745435393537189135474170524538415277637473151079717609453918763364677804359232647404438192543414160856710892360330443910714668908693928547177800720780502701673979159572855106152152626727122588891396043928746291963988197321579165035831453696157331543404095775262203527717688635625679323413312268510982178151514996150927352521265349824536566179116780578817256957127015494491057640088397652819972421957948858184257035225718602903511296981457657568343920788810854387640572885305643850729805466914180170629826253568100790763229217526911330301670847809656580294601163637253744972888174473749754130411825387177538173237025186739431069417143751414061304401964053121037362392064412527203560725192169084555144250283527757850136145683087199754564837012756306185326247492231826172406300897072239820154931249409349493014793986777459229323073906579646072536890402675664402869277893680318861826541596335298794977796035924168720920764257674539962844072075575515004535639747083324085390788234815645902343165058839206327356647769661165738268314444708383501217164151403671221901036218573112301527503072319663755326464784799959584059671369363724961653285861420473182370191533388866928009189880527423390859561607044611016910782182527579781764775330486341372006101892146824958160756819295962191627513508353013359140239950693515059860482206315897243282084616479515580204956646558123684130415951665185389428094841433346909286465746127223526986436266527397198386465452551353770602462645373049202284723187259294369378160768749311968585441988834663143832075608413242171926809720595066143236591108632538227718397755609187688582887734022623926558429086477023719787130503403249120424306759950909956112781259818275436153076596048931261537732012313253717182752762838777558575977821598513756805298457623263387192429673292071956467943274465210765732141454098223328202229218109584612218756306984584910068174924108688784744587582190507301302722925417755559934290352699028470671874571899959873924889446332279869587084613640724790130954351509172811408895938324576951193371502318137098694947073307497776842223736094015786467945692359076525135877802966570828850931089404203186793082169823069660638681251238406646135576793465766291918084546245756995241831190287671941144609416913265800414248533855249017807283698307405030808661357466573337879625694431355283223674900985070863315750278909035774710841367074810475933361254514348804532726522386321031431612585209848508527066473667579167266573550898130968659312873803805627575835239053671008320175809711983344660387344482694583553280210884788224336692073890991180419472474170023150435257924640580891338453270583408712498150448517600808883559812050252479787117186677294512865672339731694866494112504054921844511932242525193856593578554511760979894510373482248862936454489976269202817507298224074258101095576810854940662479731733000737382729996779288346594274908945656580927512076832342516322386992826004552146555064685369658709361469833272279746583648145630226421631035543117237814560310261801080884517451007944946062841704341488143547076225817092838449841755616751158015555470350824390848208693410063199729457606313444955251870012298539867161206026271310039049406328302195958595155171002589139517600713074448343456519595146310053712080631477524447019661298578210206226828016895445470355099907374700809521169868854306012593139310039358370954300073982623239693028667471755159248851920586703889360981856476768011353631156221705990556970385671240288207174115971319316783667192959644764644050145914896630961851339564146882880127982482606722441884965034825811335806526197986782810046561780710998861426190744476523007575096038627279452557441206596949085883575130577327792529849292195415584098230128652706907070028373736959627282091432497551504738678629864788989772632191212814625033039447157958885202486885176805416127981119900962673646449830819061936208403337455102730987098470030345720278974866289585578804238594135988478142482589353466075285006457116392123384757150431184282744360704743521573894835483235282112872627116152212789592699183339242826513015931011677214851571477740492325817931674459743031725343412015250003070913849843582192717808860629384478751228972932741602031896138537708398539370881998621303707274213783275740538548733657193370632497230264381102219195737068157825386267705490085602625191152658576641903520773893534399120286509267711912253937175438900154907207348583469310722794085375551444156983752409875900720357498573823568520001663501021046093112829737948159755113513911505294535327081936553951209335359102686674234926945669361208548656485449081444374877484768289471558385759860565675738185883159080639884648908146796209486405914979873575911248003336968520215907066239089507544783718365787920243143895713120674312524478660606161130638628272944955488510752165485002941415360155351010002017551880852501007527908358087635947296726796839053601427147444211144831866335997712425673051719427218957970552459382668477850078219882651702389795553071439177116435583331099828142711111361380190918874549871540016339950521713536548132620070442586269827303386285075751353183774344706518710953586830340556970097742157623264712861915581965994543124681805507447864443698895592964861902944942201004376282648676473469577011948574895642164823978708713709759237940355544237266105325948489521602260825610850964604151014520092951215360732333148123478449882718975889655602194304963931485375457613549590272464828780603509863346125428670539029119413210365046290858592984108015433122973947997347463523085426566152426745500223224720182060368646383481113617241808593783599153853224220316147922381727569555907953995061978202980085947418275873817328725037573853637393934088684333186808020813049913308374892733406990817778066277082238389009077501942684957262490412988810863690721844473908572394681096532786250202268693569029242084400045266154996514698160085847520633592688346610705385909242338963926594260303862020070604033909601239955480430396902770488059180631839587280829306150231710763116858372519196805819937363287923821785867474076971976542483697861658356858034502734140877029622674058826161203303411733957723135989388419430414545915994582695388280639980601426708301816006234734956596165612125497883153478669115018103006292341453836101593081579530775176734467594655867329520823603524213169798815739293385297612244848628497214070423321736275176795187408481432498827407246923797761737161314590370226348618698392688701367400168935038362337188322426023762075609803097477269213330689033667436354352375022087972739426208991000068942547315199239382413390864700649719456550280511807006423208846217134081927965385292380901166931114741696488424424801977229769117729988802812225735468594150478706461606407184735555984166283560218306816572982413385514148144899323555090850610725935650389942152783920548808943307463005787569893051536490586921440604583098547552869306423149808834727189019175441844655819874527462742573578469121640060760588087536788580822660406231442064552285120941673282420133658927403378457128561008924603714388692928402247853493097907817795864961824851259192967923305959462958525037410611125187749756263314457007383824371523828748976693327773588148420038845803662707415156704703396007348106559359914946818954449687048826090977530938692064899198255031923090141168135450535407459330669494073132989429381712267842749029764527581086459838036224046122564990659575761866991882822130273404438682082269722811309137696422169259195529515945468459937453884958875945995193509368451758867416614578075844486571523839886683703464942499420183190726565682984861473334124043544754161001958543859172432197349847681647114797533495655046321748887042988247339406600253992121417968477394959543304699633418475641190517935872052528715778930926107352086277168563399328121137883502666311177414179877467678915756936806379193815998657396495888127198308854351668829517723568850387863282174774916596665367363183232331113927024505131139924197501566354250345642625198064748973576228437937331946504195672072457916420718689053659015627609101666499821216200369967557367304114367596236586201043698135699320492935537448722288897547933794153164392289827460827351045250454062853888019177611696225828196916300460974944183262343206281078465521722895777805060304261552474367200061819048615413058817795819232544295482585692943830496940084029728943258352274698751238624994507644296734494240291913041009112402204272095918360941609149869754567947195370668338235729931973851780118059775951678423743966254237007894384339229384074204279946666731440760140670453384883453307589273383815821149862402324384692228441132653185831700317042463563895546052681272219112637638753397531158024112519474497427923885444873849575169849267261529408163073260701511998737886682486862237453987784169894157897970390014764696321977137904717906416329172045587372036230113155144058727656685431545572193527697109624003164770662112506489839456453954655319905398324809223499381911795051017991100578358751988164882964431402023092152526480286743216773280528970110666269653922337767224976162301452310920025062807108765179524088174464807787118023608035884770173502758961009650562308814373124469507974384111085855412570146233915072773524437192140045615609905873787391293798940472566651109352837624778413152847368650568806906890663430431140632044224367706651051019829167858815269073252696039968114339654389458792917686280653405327058110623451065698921482902489859261620724596675574849455170450642345047066875470749919240010802953303071582431560993897661853040934353171874664076490784137218224825389017827377040234778989210811202177088946502187718432684368154798533604277730626427258794988765678398127518998677685278763639846667619876702085622577062163506451939757346386302425190507299190647777018222545326154791077574215108489393006864679576107191841184190926560340912739217557446456426816343661989178496141374647841206747772897180075244086450860626467517600345995682931816446926001982311154998281304404009777394071903172264862880997841377003275097289195675675338106298677864117111971269775967128716714012610849592773929044232349061263783450265533072245500204983022808930357616337147757288679059621663793184510677453425784155874153231178244411571984386674819284648014432073848916537898426307259629340266955974512526988741570073441141266399313603232393197780395357330832890401519
So finding the next factor of Pete's Number is equivalent to finding the first factor of P4Q. I know from Miller Rabin probabilistic primality testing (via mpz_probab_prime_p) that P4Q is not prime. So we still have work to do.
The remaining factors are going to be somewhere in the range of P4F and the square root of P4Q. Which is an insanely large range.
P4F = 190528216559 sqrt(P4Q) = 60283878458277659505730456553307907205595684148628268485951118095207047842775988095134722209526855591857141424169041306014373688482729181002353204146767055106689599436585400215531563853883175281766073539342385639029816308719149093258606459321363202111787761772375984568727391102837452867077277829441769410396739922946579920018019251761564018561355584561357170735528717947752878910700881045370305870433610789130219456163497992543369218907568941001285425165758076652767814367660516936982280684068490467836568602170231727627744844350687087754805476772767114896843271869483722498087054114560767771875444122423539788755467213969005046852131335063298750439768875968768280309593152824663279887544948056170874463505695204236639441996882815399963597666262804038461452151385312780491271732968116954504942283213835274023274939095633637203726551282381517856757498228503335442565530098792704695934587136365734339661851144415293911689613810053876446234882039898411051265080708158097127329637655381901689788895941105526828302392307540690163210965875343391369994970415682117605409225937883770272760394569302277918848549968984775331195212882402523541890443668754164550216385815855402273849415229776834995629415622661949914672150545587009737065640699578388153871509227387561586640996557467135569334285961056970991242995781942025771632753818862487452519874860911505112984423890106250137828231822538530780255532857822757542883302447950116715812646154013262365859817576541044052501618822403999465024348338840590595136427550791850294542024177291041246037970277952221590061835386204892768373617815058887883882887212392377008036818875844187290342727485384292501212483179567926436290726843802019418317159387772552489253025705256554530768915228490238855207279954277023672797582355422245269395053663595774814625468659198659147577202117286071382634243076852765375674176271757843144964892332717783135131284797539491556288258904906947543255982729851183727265127153322500508800881785435731356211668461974170938789153684293899337620743167755515871877570773447604451311225258793377846370965307487907910563844352009399262786322574001861781874807306301596545336611120897328566395613799546480103110643156018548991765759283241114669592786580010251128845074414545791657219034953167267256994128054242180769658545146668224830730721340571620340314167257202884093418537862266804689627430382170728082457071177577306392389509121048367081552748108977390234838650459289033510177536772969883202287963385392288592186805138927668757458150362431247481459127229304061746451912006145866046642879895467371869033158335162443999814595294353591085183487567853797752858882634906441119674066118904319294787158583564034443531575881375434641760896750714889567837009594147579071815106572984051284284788445624099595100099906486240296634906450040389913743871883428317757379095046827448155158727142944662447094577079926635239293026226491272816008146075989042676972160494773295261151872242120289487917635162909319656494322734317160684989380363843492525599028397048639007463167890132555378855767630373266185877554741577693620952769931670362095831072502948640653629601053951232692521123798041653088239147821884615817735079475900291115340036840499879552815664722041863359009131761358049641307584019339336002928548724356353184425230329819156105794268366407674971841791206826770435828616755685393945497645270387002251841698794811079182379891956224155207563857879947741299025620379750686069629823344747193094772901065832763408339244696711127717138822549375303370797970214139708283675171431205781162782520626462386240739074634189554899620137149215441970088954109222497828202197941701337461148426118516095293585458133349287738807242453757306174138081067871935209798861345353260017104390183548898788092353052741813763141359273374799038605643107759224160286847716806667550780776274915875645371679360646161388745679103524205890474752883193174556728463859512442498156060055499167132367220113895529769634722276382738957592628244649635700723542164892585235934917045444019761511686458995593564026094260606362016906306405106644714877847076049719208040730046139435526937287382451637625197297941944036129348172873627877406954201934738237032391349299103646386022998819951258817239232649861939343341660494427671201113439984898117607760415223741920362362825173225241306854582480463502663855371008157895205238649949348496107845920034384443011502754187875749782386555370982380368177677293948866353855876710535652201427429783932711821370993071760096148234976926937385195986452791713251972956470182602778763296439771842557931216427019281203957077100400734265398482454076096414486265889326238000292530045297272657031726150021320819310899858758583326152780148027487145834627323819679382783943954777601175132781617547866558200345133067662938223568373530633413557253334432119909043438565238955914512376470387029550519419463357116880815681166371396524242370361928894451167469667872789407489558219058027307420273049772448545298299298903691626584394992670282180976725980247491103938556402586065422673609665114306952259180951748743820362196486559028913308942040451039513683239978489417954755975083431244941815646037792797899309449641955671136202605454753379457640563118839811795726055025688867034518517162526621515524731016955254345571707948739461692565028958471565085651932547044990277938244008317709158133073469781569806410317820989460645745428084937170731049423705583288359377309520105051679575939260352000696302952165385144052462454758486609474235992096940725645444937018504205203341792345856091226710000747462172477007937317956334045916337634142991691262712326455601769957748172437164898551061180056618179281417605403291994667018521917087674220212223244707205130270847092359680583416938149707300128070208428359980944271693002686306063720977615525316609349826386288771184109564557634900159026517235585363681262025875231378956575542043746298710462424035439606043874840500994640215984852020121190565221469672824740465227600979721264752775003205311912135358116346516992595708776211304132221544953236979081765284703984565329878948135082469899324198579902407516069622197247375687566744202327054881705217147180781233288282881449842530902164149911012928189180434009522297374573397212786468766071495830195270875310978462009467416139081715395306289759996605000830016991620621899707422125044297059872950774854446431977652477014963180746996196732035433324520173491974755588625091570199940203760217803929002271926821646748694800826915505804788541094533829608410697315582195314678934263822392844418404950247117912000311925652082312511147024032972729826408711911502110314943081334223476296293547043843399884525551917692480789254286809734482201656501843471064742677479514457995554279379408739576573482983308820204316641912319779831366692101846166845728795312539775149729640893420730014981045141247718315646766067037869365608347967608905296239160987695163873650572965618568362479108247278784786212388942893086274560246212252026456584963672971584143751181473431564494701378482910584632001096362453888244374950687052452953445915902377576563153876339945066659187183326620222017691601558636897542502394795061912012115049982234248262448910701432400166433194982487654384866125445099905751353588510053257033957187497097883809107479266123869967468945720496002920779530319665887156066912728707639617631717245022825600888092896932793680089471539721659924341407297587053407547564580703816973164943954381895659419870589008750846542591943800447310086964823784922140865302844774440550431467769005040448583670917949516106352032998139700594428353945851280172386157772388406728352865755546834752066323290699840907546561959777157044539191933503488486459498003224836331749827769603220837760133780830333770191446787233639688723010972151900333653818052971751020178725708723056770966751768435185642185820168466840083303414882661424423333225488325019247016219280987540190523767358893243618110312998665020626693252108761386266646509809580372389199814529515514138820933075491289625546239460722636127662093019940224166873609178687548357679534703753763338380439884669119499759874548294842714063760307175802456466086546224067992348832254687777947240487325596292429766997105050465691448012148419058944011505416390468689690002810105249490761235639667749356061865832278654079472386035584770327223008913076614649655899873031845894362499304424485952082911960458993084300084316846709549099353285119528841206330163969851821836772897226069710103106652231873466670326136350232498068071403481304499907069940651014544051422093055401798596120880439725784666716610197732529927157975471014631630516906317080480028023512780344891963502214513810582308400459167388406571253940984644081243598989592039341906739147261845909659178190888540229383586358150602024536803790797255329806898392915740666332960757606122230338775907063112589199741541411540590915712795572869357945406981622714492145726837129698634483222456184170985903773385458293124004221984569418565998140923317033841099940493274808945088670751745965526701008435125391312152137696818311893177738311607173920268989873493384317356678232787565469621942930545772898038838859756332467980495857841208986375703899334054744530296571124976877005224257176223544400348324607040314261187526941682328654602164943243399113292082110397586627475242781613210291338001526671519519235404222981053367230112406714422790225999200793552696698565858169878630939415526626364060295426668936307172684431290654228310860667299347864758319934299195150632386831500939356117500223439124805861463613860219757890467154453449650873316184740712027131158236609831037330410168882750190667966937843061350994874415974091487765140499830737602841459270498115214677158935655225552139337635549490809898563883850117214934308815091975879247261664616670916364442671509926191585552226026819026328991093013386248976154586459508922591420331353863826965701778940676367145693981052081465326310807688055453539115882017697866746948516259726849176714623371994811258907314060201149005771315751951296215841232554082242247447910651520379398009461937237051233592335949228695503607260128471502874958354065215298365968182626459430011419256206678820432643340727434616987368851000557278985449042507927946460695943353252719654774365121143830011590341223078630411849503087308250514910890513991531001197064005757608046190746974547053536625663335311619989163957621727308029226760558596065966603724247558455586647370839335783305282121105121759285337832896446618276223933102581969994428044190003428150678311656486537831921599477345785787339624167870489787203897910659116927329409057037949868367811369493311191172062127723619834315308980697296879541284027598187787868494756916587507730265202641791572955861197670038769748984715258750964883692095625286067427402846470666151836196936560456603655224963846158165065283910830015571579652835613325131177639898804405839515570788927612541017216769636377317530074486412638443022512830251088056561872845876612913506623014301887889812989024530088797872450917606872326259021700708555179525176712912994981407005514267442122169012972739818466507344799839607065705546569183813589859942299312702634484651919173262916990928244011056529007795287606970455095917768651471035230855285774392417491792091775790892509897354449905100121900561879147955328263735970482232173523742522405603702208460846058452889561108448843320016783353566122927096249286227106535948087710995229932523900894067188893010856173238953079273066524605440554897394818458241378482644767581706307241023630909981709028869251816742288534720188990472398180999855235488621113273445708503144029592557810166174407573449303796443830172110091497760899175529972320366496346492124458919266313613716049420710192743191163900446344410941278557762588818591309268725720540919569337694533138752607012672384658870200471581348520395259278169877057810224653979333951807963781390071760417210530702092368622818499193976244902345008628776226242302984196294050398559789273186460092228543179955568376849792462655631350321533548192934450005397129150195049118212946887577740833906761951388153254807719689558403231052711829951646162971996313449778823440937360605871981282832958168053066746627421412893960269397298031714757279200186633534121808171937651454577363262406708297144471549696619114463350165243331824798801657827648651605224081998927601366978246380110998100829386087374698921821625743270327683014789454198741409944893585743652697926163410272722440476733996881944312590387917260907207565913000965858948628005210915000151135231418656533577882658891264191875636484436475630607852073451460910242956453271593314103840989247783180409105660272561770279844655066828645464607627170946590064393108474431593553086041380897425808817170482965818665911670515008679107392812346672013364711902841148876781893861677890087016109749175144660654885432542440262534044949963898994747149890850518351356280149248449196421699344030739956440805087417921467228558388761609235077514865736474669668546916519489561780897347350335068900896404316395207457297676528542208267508113051452459333053827179675632782610801570783767447045427590057334288300564876658775811435584407214143022152948940728257028148880126688235530851625024933733706908454394382542671773879587808367661974161047237271893755269287762898317506135005579764237099084774647812908378485074810400565018435432630979693216180356155690286025236104411526731567151850270765742362719744917126711297191127329751874208544684316185584667742899544465027558222598479664826044233152908274159518942654018722177779258190229211208541354911139333963649997546990619007483706407371038615363966732127105160233230933660846556288154010435462429974154407069198564710038117062962315734544977596441664123570107744003208648696872442572604197039776069150437770526643681773669777814468703316589618328985607777172809880078353666722086759694505303270340939287824603269212595414035294956668592681312459809059616090955593615880053513661132892356169145753003386854492850864762571095395561113742035998589189097595591185299098911847121676135488202091396173136626835196391922423801049103480543011859481741631733622049836352666878469206037876415505614379446101931598707594577122537355187200662906627185250654025164165257302275985971004837089563122038540713495653846346800551738011911781330259740467434629572457710266996530622117463859461801419071904504139589122013950991177944239553707990273534541128838342154684149419176609771462938214926452799160817408012961917891031795822142314842623793343954999992864661395262266857754371692331038665955984489906233536023187878166269708607356000806932142677191128336377335780815435409580280156050699023289154038947254012521182285506869435209140290947141048432304930708336186336235744395258617373404467479953341195111038803134985586444849588730280697413968777854058407510409242008996702216999621102423700733874633353235932901420112828485388530526836142346764296979148766722439880568262304926850019861684284809092680960586472179401165903257985725549647347917379862951276705548574537553228188523963783514465212415082807180200968810534934035365896011437606976099519021384054217861326981662898011209126506501429266286806118109936743267723801334949510445339464724751916962913341614445810420343800622934348075998202653421801609356255664255721613469757091655691117652142062574654151881206365075601858978269393835098404420973020152175925585136969639586230016903870100964323325837557054588359858658174477948540312888011074624936402944290366884171545618125522928560224597044402596829920290096856068967443094015569405907723184224830330942086677958463502266694575237918222962812692661158727488427876453611746299596984074330807742051802841833986041603136279792982018618678476211382818819132034579247654345300073831816686910196616707202009862583813739939496597428061035100964536101930656369546545260609270473568670954903944354256324488786732913229249603831643492552443001119863317561434070719395580533144018104019099611779622452827720130969198163144270781969058333773823018519999613085169256689230744489267400519117222681495555939061779683904926217743489677558701712583536752621121776178707661043166021380658803403890267339636180916185936546639938694224072745855634923158773976529761540008756239941104933492912716819195721157505468279600472439369053758176905412595795736160107539187149900161249150235833549486390658409351675162982260613843415209096369138021489670397203376398557254795005321312265302634864985576587152199301895902683690363799025043950235658565023083054028387638164531985557906634906904759342111583850964397303535955550219204502082971016859170555828240996533435685388375715853799020841643654199220471507961290332950435675057956113969388497650842643742413406439217917450816388871478131949633786018774580292164603292515373613863142370690817758068855165524518053437705344551619777868175879359483438524034481075526820349618275807139303040078558289445797063453314659559642089290325450720458985054100536578660925445249820645932162553615584294191564297806300591480954555123613893824273063026537322349088923108879093556894571007022384385812584290409367946779980142724897972749656154671210541321212450674148650470375161798383879433076065143668121234263669237966639736384504844499679577546658496822004189789667109874748581241076186847162177503321000207920319555892683178880758029160166457630701201179780449457487492483913753062316207708442854072317254074653126110919010204346236523623937982983085376730536783523535486226760471085327286740390050375112787711260088276772979656567604111652959397372851638568275079159720407894641929371153847966788917868609249904207971564033348657344064572693166607032153943309587485185084910820654176768771608466588262308832205109004880208251168929719469443225384817417227673408645909424344108618146632951363380365447147940699170033708896618341986259049539685426793169548150288581528406171126458944405566498146939879959365363945545792135689985811989620088049092597882393644785060086117998520704683797043114377170427733755876854856620397480797339221114175460969447786817995701119207013473923383976721839122055914668824064865173759722187399423796488856701474984707507148271056364132464568212984225995403789559022352598548510875833079907550108734406610794161027359648325505367257456294656591084411674269154259976754265839523585464804423213313881779403106663599201339967476053612312011585103581818603420671405024558414804767335075412530067546469928564533549240786202663471910275427632662031276356622962522264401905782477173701087884424931361657423952329126490986314348922100199906320155373686325450792839046068198487593091476748654074141750097159758722959726086293798231370246812566414161758187391396781992845610046905274557189910567950746720638732977206690464674727462351801180725732882796892655448946631950085667069756863024999190235419803831353150204304331682279476026168968926329178899831008562532457318420059423464370885586601626049121904906452956637877954838248792434214021994621888474004906718486199942103380969483505236729693470359428720153306384468800392386397804412139126294415048376833736033788412245726350176593051671450106841105477562900109166070905190548099989559315661587776148834566536501272770738627521040726766572968153222303824873190902507244713097153119125123325061275230655439144892708942484930170252165074650353439394901432218345037724045931914521315532625371154538669102858683440311786792213424583611158501188207245636760828499792794439864273918578688291550237178121159762771923414338991862603020447260181433364354551172817949708358684536812606159300005867061347135304729770207422900745385186612528265500830753409960773162308527340645983250214785714311208159872074439176227395768126847742246358750389987177372092719676537191768717282303590647811122114847954387521100194422398212473578630045181084212711572650449647608127274405252503431064690455139064724322232926857309920926024804782343648297798507894820571694661361025605028294079744927298909135851077670852971208799333352119788336041573651453582204649418247014518565108989462392676131973999994254180187191909642030537431774236834065054229661120576943404331994015043122521431011313929120255473812022288954940659109884322212739961793941748583945455010224886397990985848305901866510198176127412736428381736318897868082533783449486196782341108347938382530045594069241350111463949564586511029572345257360762649126451719490378399027305774612947815118848195608316186911077499121132101091241873354739346623784156647451635852532321829649872465063092516561353725689031914299428110046963182651018548665943480139089893762121095662700729726683990198925910533844617872456909498008708833571503861572645714565768538835396814157016581947790264300088783615398580034069697536279701812212383069861493075780950484946055356345766924769886746518411428150646378825375594869411362415004338682147455789645065330814307535680127805953460054317433902439323629011297321837143763866182685319098585812382954932917941760610155236687278212472022769563361162598465666366973299113839890208289315322190718690052030312147851913561624232841796984601142909731662465702571715141618148883188395092967374472219780916433255991967230238900614409940832976932903111712559274203148472597622834229002595006924657239153578552744040598179941404191143156841050788882410062226120709824883090265333451076741524183902937614743087500030629461230878955897275814205863548604481366045776286153962198376799704248149529352943605904293319018308520933798394256296347833164721682457324611762622782118902175992601768559187199557993665449148388209366192420477906956855293073725071665388870068273063603428989153853362270341422516493943782774697207738731977933777488590615147439528205141994237752046753876317481492723382665743375865682355459098202058043395871737098117341813387235690267854763799898725508826905500372493737677584484084689026136694127943859736939751963480780808708202892550245221273845129781497985493396420158374974813829350768220045244633089690002480899538345409777000236189031935340198592485637069201259126289333317434053567325001514734614307522323736117251030052911815848490005196475299709917595484736572986218194983952480996825329040834727835773473540684362020944326242273108206695289560038242730354119617635799313082587748559072275563392066009316220372009838764708287179706392342327782281408387854507460876408762596947239019353274205200594422599149066186907034749706826678122899699276278641018255137908440371416494076542113250221626141487238755468001814891657269246126708609525082355744435704422977695800428043293380028612989648973225934093664257311986103981913820263138693011419054195551061293815550759255905267615005068653649043648646692114107761289711871713215680843309152246353358359832836321909799425021638217682221732990624421580014780036303707944777100167483229710497143498364713974579797802007534693687227376508411276795852542891737111741909195328227006511282265770872331910193719312229445781151856289642856589353493350059176130663517949383451588655574216740621423237895430953869185895436971183337064646739298379869287459321059681904448841335318756429187674248983660953388918004681582425573497792831684038400324181876609664212697660244498946755934380600813474349354232061989519228156430733813437930903955984961021639768655571965503527754533412583393897778491173511390325384759654093385860771133266133209415799079916056923665014868128373360513374332113783858404714674028240126076131545351918761121410046507701460468237501064357231041519614100146588021281077882653212717595604976292919630025930042417256185986760041354065285726870765856373945462460077753887642340530441947292615478763233373084270211456851766572321330743238058386668249044589761721113285658931326798379521390551999428967448682011657355011112876287844481785790404420098578143163981752375530747679517487639853074831736188613764855532467723690470126625713964504342830619059765650352267134113034868361129606730883033724905181037468088274555218827440884293161546293126994771529294806030648711689118265759352926837639050727531742483269564251723642300206871862035327801398320384086423444207024859409235881652129035716392211288546343579392223054299080716011673584198491756771720677555760946843433764687636812738398769238217682970609408262800624881098513663501420507443279179227449965673740030633873887635126248632030144557178814438935312685209252660132790013273713880760239670367362952908581241900139738323198736469617343868707570683929689227704195936817877649392952066205211905469337150481006024576132566972727237191703378166203680353692408717426557464891206690248956013652287773781310054588360294039970913814959432642789056592669858645050654193176412143388189024537387072740836462139336672989745356278632100242731288691148613904237751861587661341153156170893772494810544220366798633862756498722382322742748307421025626607676197545915184411850687319526337361911233856057874525070786687762462125169126834932802850768867059282372146689795562573116664332883245285942336852378057220420390675316154391980862470533557663966544990512968663950662129436307450098759244344140697014043798118189855561754649230475456254686908867923950955378631869916248985314295791331206857700591369392664473822519784698743310809959994867902265627765175844529239473703617420782917181760978831684829056422780493419245692454150328099793169634209695126309054858336071830797512726834859553590268402946041587744459323539967535254029796468819197892958250245311687597807179797952033414083929315921991798003222969462138378766806656742374642196378169355840241454694279003331255149417301660547116764555098607691660896612067489749602687165364987919057545753269018136867766558450032394214242715086977685959966795223689970224286055106232484146899106012271643500972743404232758868922586203383691429103671538058318244249354558531120775446957153790576835461942072024122775282482231472313256226605382037664279836951521315297356266872038007554888006940774148080687734953311560478252840052991880985131664475242241243415786312421441596234736446614119284884213916077090175526635047389780854295649240523114342695147646585616751138535554483344313388735965523619356656009114760922617387069864490814382799106601831117227339353509182574742946137096603564116169588903745805463757856701300277224601017595803549118979338669987896345219399536092693672959143029189970410483492939872056424394763756163780163366270020463391683558172177964345875635693993393655603622508796998301373799400789162857184471475846428004546923433281662489453153099698634879674921504928210682822785744473834828320634024282186765294922233170920102045092200638624200468865622244711496509655196961969612356606957466975045464577791342522272222182489917155995884865147560316750515382105963410679363612544662423574698826727892555459758246409591905428034455709058862937420302638949828146818547527167676396572569850219436805389049612393540442742155485436689583261352821603340787402382449933771742631876408937881684860589453269148672295622554463912910976062057758018209919437015895735166661411886290912820511368931981918185314974832280569695800200453468752626800589284680835163761036060529594091973317591186003401760980853409383134485195848945806093839930393965016300669399436752115657791135536410561194640807584810183548265027874240805651077299432841066764561561090057629555908112789747856349791706988765701271127729761037602882898400311298531709752004331480222949844763295800412806340442232199886133856153106508192266564491925882892032952224543784220002568103111443977064628863400121260413433091007361645895523875758883265394499536544160869942885029558791580843499390049507202001387376687470250900092180074897387157211583981353588178847506266106344904838946637873605576889486879879443404054530484573955325102267742524177923029834251764985687482918128654830934845140480192627067329374885566424611891987997480487954791329144033336540296486292503484426466117205284544970613371256966899120663415738021089477893559668212830695296833742812309263856279191361028704759808440409653672778514617946578692535586612681433322807191202374253338924415733746078069006272766971597532556279975660411092183021811893081834280830364488656854225247104839307649424549439166773666056081814227351129219870673082709290046417272897583899703244536613232057828444831674491626197190447946754304452260883452750878702104308845994575931677709884386938602088243766747156925770760845338139036220076769895459449395507476426558440880181775208553352959185304416977793392403884995408755980203034914224495564797486202549987138040939004683302324454665571866455990246872866211873859974635000537574099924495727454050364087161678116759547175476049481073844513830837343529612802774136038333976906799719983988318550699940875579617148185849312804336082982403059397881366837478289647915909462851083721755169565021321824106217154695682659474508156483472811996926237793840755804669212463304609726443000123403932600805670417207923988661973178613186806971508403403467911646484392957704688124088891716204188390562527060130036208465569747967015383830723697431388643661186511570857827005590165519720940068524359548063233590828571008241183296802398275492607001653791689380324549014789359704548844630581041928092710329257386487035053338904980508530987546174682404963956450862468047954258771597747333352819973521215680235498142405518349103587652663096489071549174043698140101268426549711043163564065661344421981677940852348509333284408251597899260735357704565320968943174686401759184736313685059147699515337784172011999509858249857355432210085842963080843500305872624163645601960830207618727029349048890971392405119887740733599504631583570695662968539248121558541467936403379391555582084307058024848545468534390221151816359876789247108283899506688130530185285215509668897148407910866894803041161521139446970771240524434370247337789447647083345219614948995590184350328132778419458439347500414994012567126633396323989210631023615796803315025440662081557394519180396049854502763130612469007977999071792192619028685328823722275745555891576711615985937181337521940350844808651132972447320633929854728950338153768202122321062927160077173253875655329390187993882614411660807607329363873598336753525309677791378810061519057099308800960730699769243468153745997502703657024980626790404947203556181649435853130715383924414643042215306174823274473296704573586175694258266867621659313073120764115545757081059764322445743793010046141483358422123898476533515325675067437000622616679621278597955283289561603187712018707427172320366228167611881624807298375498082837781458876713982267984760610205088343629240828875523597039332428770256796181780644581075413197425585933988606318340596130560291826762292998524454712262526478183054839492350228662580464288198609993688938455146301406865428902413802590424640565771951110259963098893244857412464174343840636598298669513554351190551033192258909390598267861596138437746667852079861673969449734128475023084418573825102694478946707246291948100452633820889335164250815553174653053243776799653809514750037763795079662332891630040949898408794791651649946543706115064188849015122074377164265826913911045853878781836272809638159805501419838910328763915225912453808821319805131490146925815222501271272870794634975930278107107813045956891264424856168968497644324914417914752939326693905828407739201396371663801229256789031798690343367588981236662578454334295719152628535264018501301899677987821199768815314510522932708578702414684313008711668488003237912551961947478533845693795624610674890505718769030919576479212617801343540881901941967207707001055381377677641746326081347928530259097982497640585610305159515600876013892390769585631050497656395315427872690403341762693470209602918736874938993998386353272129978098920395939348283954551655700891360522159155888823051291222817695299841319981803003411142989519624805645973900050282411401853738394233584542555058341697342223340362575060560890195593316882407627028829860362081349185201209578816929445734141928641280409648650240770182475422570918001114003887332408038541190861278725933185166968183914775922166302758360941895429406414578503390429935006110371423322230881556243944404979541598240750425253962047252970726168444272024403946372191903429315171484884866484668074780887665423329015688719979463680436640770954209067259400452676636269332691880155744296436179297527362068846636938573591810394137466564292376867622959572889963111903054276867203872738839957322862087982672559986135392662788673461049790325535506523214874133833335637048829103891335512717558628933050305093065320350612583881947197547332223453629257776266916090646965776822609021991512876480615100385130769532855601917716885709249979102208484003488436858005557556139355293162944981019397642633512558007610699064447780017599353166197844755388997870088553339404177805978875971597933194289618491517645255996637063603013381004929713120073746888961397654720867062878170796580413440048619384332746603874638272731862513292596039463623275095907697395784856785295110873756285776403575073228200518841931666333328473278184061692133654781665614075188717662394661761278421631433369886484967922756438432226271813868250337233147237870044331986435995294604036045089335700628462067789075277133904457777679747223825445417835177929942921567239331772896654586318254904374735916551217745312683635810647967936751328191160340117613037462612119786827113198089511190041400865092949464006164695039453803631002491394181823342256822800356622156118952513224879441852690493881340421688323496556117602860789834345270644747536752672339537109513553014379743519730725085161100842506156292713400103970991928830264465123042603329058088664906620947424509077539190100289097348156176713826579837088701333668198975284158366146730090064419398966476585987043869030711225449104847385082740707310504782498711050763777321239758918527473309072837647783571924249537391562894108630410667519829176593527887706625747133070945179951918048094022470291457532644575015713643572282892370296270841014040157089685572892568916597762113475809557251415574234724096828828012616863945113742900348209956709004785334655220099925513462535893577645596150810929814349785575269052291729380593813211662697742499361179086875036317979826754641648132025565730297485172696013833239214184776001653810344001100441134000551684222130682114665106600089705456756746591836901545983734787495479709596394042803346812055374833318607574114818154511191234196597041741754567246398777070860556621032733030917127198660185825389207119794051962965747068423606821477592804464445942668853356358575497309966639178171835747913768774790056256738935429353868416831487816110917117399427529568317995706577303355304031348640140960793897047247364555047613385731070958816696856146369275788460822690425701941665314985071577415509230782488183092307013173045561636762201673329302084169881908000058840800267642892470121535370687944384422297807329187374281457418237248889244464958738766610636552643799021094270538972428975715083382989081067599753453590367202009428024280683229339645464015919043813559989376428716745272449521338378632373626827253936904398170877468827840346221444326432116928874346996520920139465259741612493872950497960907515758442547120272157402244513722758415167776996155195778331549935796110817150206167207202544597048235905356367227929928483548479095147263674815569820027840691479927729905260990309723821891644289949786601366522931165664290628978378824095486804125838740412311055062263093146063114505893300404682940811766554988875230927686496306158892014646266367222262425577337988920384741674681546911344554332588310799141886452605879077292113766331074166534909931733714554656625331521784620635285910672938751673998693154260711225262247697928909161771371748231525065321165484711127883068041281700459233730036697817525750808178368198134711650963842049523654726376745879561198185219879392174897901941294976417333409036185641824579076208283504886127136189302068899097888590465319027743572490298451232651701969346605708035263065959439585304446092210816928166221423077967772421143963331164670392590339681317636436892705717963626851479947008868602515402790851184306849346995321317992305943821907882286180686026006984890451158473858058645503010916845080572409055989714315709806251251293202007005939251156144930968906641627253381179720663252920945351917199975839576624606430761651066771428795186021420627174225413707910977485066474119417072873816501103426159140513316775401988810590159148584103613269042442059478050149212790915460105463474746754992042604123471371055186036992468125954129844822092823237666074852793797120645691269959919639356174456723095242728734154239146891124185191626805706858017105228005112182361276082289545151164682086573806328683563993043757034081886338813878960380459722660516042707586304839531498772488276792796484849653972305879712842623783763021666111164023363142290202392474156937742857211427032042810613547410328239391619280867338322936611045654027026921239103962434421204601257673133809308013257086400636764391091845497058493484897683832032001234955414093595655576200909721775417074090089259626585496723209161849091847463776628527331232432285207486688998974324465799881635318961775597761367569874158347708670932195056974306462582559080831524818106875451657608521177368974462042532500408377963576901886232831660866874284162474305708068568963858281028967238292315667778458054957334724857422913300239681705387907857925944561501226211919910664617111028419248768574357904498999472891091381870769885062536921655189303829763520194502556835190216564900423005282800746117089570455944840552978315943625159486186289743178067005156462950907401342757279941187386304432377281497527906309750544717128491711061491176117422362018568277546763290332919204630633303936592879897433143536979625
Did I say insanely large range? It's gigantic. My PC can do trial division of about 100,000 numbers on one thread in one second. So if I can manage to use all 8 cores / 16 threads to work on this simultaneously, and then run it 24/7 for as long as it takes, that works out to this many years (for reference, I've put the approximate age of the universe in years below it):
597371639339541114774884819663518550283759871145558533163994305072051067062008380255251163447397969699878129599594920349108694116275141713065556072294035537824724119226691323165703123552083088392690828927083191026027955240827438218014793205794203470951727408481338634504290643063061390821970107867216924808123453384094565734577340695569785508638496327226792106001164521774250845370180914722165797327197595497310806064532379587449355685838891871603935038188083427003739915965687200114376037346886202156231852111180790679974323435425853466621534484128923243444429301725445943704090703031463721737413631667217027650497320661000573222390000069992416904884188665025370611261664772250991722629940267235965191205147442647258682953577685179239238466219784571981836751563543576988315652478200676949606623018275099033874727881385892682209682498596658559431656462341682278215427706616968550782583665655577498133698899119412079762906022185497095048465266281971507278042165185800524869688982981571672947077307889252826415667731992214157661194407535667484878343108032111293496016714408570465824379227007450591376210421908540788019993151501483656990130759972275381213299738947704629965053978288472251906842731547496808356641522244290352068525263781654182460833543682097063540883797063942157071821548795988820229687854574355753857028017769993890439892849252753847913737711366635057333565526526613738864467720004744156904839929445218527197217526735449787206088057859876847615637870433829586276639677063916938133565880568951459190905078494528487740577933531838826956314166609241152654640904591765045145655829968056120465864595976068890418318821004014187171134607864503329887774357518015317992900567880483341352472429378889944535302067760755950096787004874161906955518914449183525072487134382092834524684771562645262037603870549590858291260811818762340813615553174921549429272223933736276944714817961412072277399825842954753528269108418267849910272457997630689022078753105931825495184753753390677903716721408607418284071608318226747525423036108015486778118908338816925957348004140980822617047227295882079833229509271168880226911380112228847045208364259272424435522238468996544654429096469298470317313539320549477874421163313457745997085418396295024507894102703728152518095668979917601804867305883238846385189954938122506226159857555679264307245468098629390712473744115561660507605109810784761784047488594863480244331360478673086262908367216128328638079662657061406034848698564659125604337157721806712541402587146745460361364068339596629114859922054813011782594494144265401733665080534572036718101884496622818814048701958216381207775267104523809294081229774150170586662451083325747196969097632224230262248865886555143009546724320494623920034906267678717222824593774021154346422539978974825364612134247768323441303905491227463824865778860146421502000958655828482201834580716548500516205945452134790556904669227123789845059619311791437376647643190721412511867738090092668463168310961254208335209962065610458341251153414437458454852865476484765217289046946082118311984267400527310265973509755421998825063741665761358582548526425664644102386199482750399228650865497810199233961578393545185614655045429230478191745789752602812648730139377993103529573186391538004214712439001818885405025509832207200756618114678538762959809733388298001052652293764322856670725968638886929341087356461772648544321291106039082393572602342835779932315650959921657685163616033533036596795141523108148310058788930816445066142885802885029914204898906603844452324044655371848470622073052051487196567758218678206054391579754243582434449459637621466619520131176486173154771789765229571893881775325711961516275471423108770275816537725455978978378493481192724357722029818589258982713734429915550513117540998529448869998207482710475332624299578325837443524625377702027498054597926240659372876227798430820039743793632606134226840593483562857707818644322155305963494301293517029839258330522881973752146636429890003693433121718953985484197792259679609825989409514083047588728895752140034572654133421988409227528133284675838803676057186027828582188682997721231540910565920139246905799848522599939423934173788866662627546190257797104757489444800696612772300234750185693962273874445352842793884766466281765361020096315935759552206458226562909322426973146399181331012285643370822286817545318727962763249936921142137274689582816817979673890111410197674564165530008847689484397560630466492673327999983478324587088893167333525060991574380642214413551702733713573108475930113627865408743576506240466562187133546593614808047750990279614948813004147010702909629959869652939225508598281256510731050922173476535852873093038346316043372534836051911254472307637297283104467461567743760432339405241891788356413434920239351689025771446059796316643423707428702945032713000181484180544361870457081979914456465595676525252552354813984834498290930349948941979680690217207016962945701215549493763573499815144777984871493012218024588889188964407509730746681283928868558974129421758799563050108476743435884304334171862734221272504329509419215742039251903412369776697840907573636909318367716812195167752706225716736843960782282575919730163339691548578597077663183802390776502122916255600370673808460219382381992547659536996891840492736129234827573696387183819157520277202425838806420729068892232981568384211796813770269103621113846922338465672658070395572603129927994198149056629486333677701681176898546159400606176893617200249412122613759839357457007912950858782474823830229200914146002881634753358983354419723866734981904770912946146781567719355720997449045909319631107750849733847627083117105068588333603778168868698886957442230904880763697710603856216378626407920545338444057062762874871262489297756376360478923752874331329449037660497222914153529783136575159783240135283475893792368100778487899007039884764203762585257189191622891537007701575618686189008143869466491192804663624163866986071719032070764374244130366414326119408294410904978797510355155573281093544918230569279486509258087634813229172268695686557972262552116273847546280515879368243805168851546315561999847940465908179810184999220021194839328887332157733918289939753269878412860721649212144426338019136523254136445206181777482266913304114901809457003457420584411432618682121394909989990603074879949148364764405667083397213026161098397614662417029309724719719460740504636486621991420768046540064729632010022315062570077915137132450758664967373654363153827119540263591715592057313420720356638681015276632443922721721979563042157431705851175156438515040080481695608906403615216686317634352639407109073232217182346014530535714069642524161739854199191020346804480108692671445723879633549299603819927420017732541612252863833363476585487417468990717967621991986626348781350828712915803500570082752459938059357939296030390536191469328786426302567951074160889417007188943296678454965836291055343964821798759873526910644642973112536191297509756557621378856546325540468367813416558668847536452235461071239639359464623515096705476013062907430222380538939167502417327287258878576533765201056843781299912179161339370036049197862314596633948585172985939694242296169786067732984271793209798376259530292300748648897857150926594775592614483323416751132336530759942213819156289434399571777959673735103618757527286590298042542903357354421305539638033611106550070355351239528808217725452137681743719647517568651247600913038074250350876288671504311974811002803214627962734277302778004153729473364086557515667019919533141865145350812880844492600724117163261291175959343945785891405920300934504966019338534396436718153864903865443062860273224838200127468295028494201103746871945453487379534706741503101424070246803171839199978196433470983282517404054630204894522837195771555808471437117171167162480831848778183747015713027407317060873133317213120405300878827136241923788886020379163484720276213199924279642914315120537924528577128584294631337721068776700928259708535690689564022958142541851581551997396448632316442162993023936718032054216604978276352455709154219430463592201768163252858268269435727295549158664562786837107472336663181113328596160345392226307755717344831155767076629169958028315446473985142143011842514209978378928540901283806995058716190047345021152949005426199775502306166197053695346336821964380717987437911855689771456489726848997578749217999866068905840840122195202359203854733541925933554626278665383383534588546652106444141947562610252334140273200351100760651561904520527538477994831813464107046329974038805655042310619874078535222964726098327858152336135988601383310744863291392305424206581005658359828951261142032708327272864457028683336544754839696989076366512742769644828984232892351111512836811338493687280033379875418081688936154384061002859238908835941043629921263979815796461906523494394713695663199554802404126131226469421669111437049579516635052981458523814610526174311736719398646518304519259581999724184247179050500160938093968929108884935952866879775945810948285641066869135196062603238282173327093555848612699266214341282426407089102858514529720219976084333905081086286899855843995557615283338971595713072949704848670272630596034857751906791614902646423931660687458780384532632615717774216912835380034359532689744281440234837046106461480661092593960092500153787727075844104565549760889463695403891487367603698883346579093792195525338412245286405084309006922908233212709013948654817651139876457335459354633973077735556141697508272604136337797650901186730292422365150283210257304057933338619451290522301741865566605735887523483390384505110913744908504050598302763719945011994387110083394425621708431808120495815006045820794857057565710869642425894568404866758412646299567530113742120266243101923667214300885009556186210516452686925116852823229989400298380154955707851504575985178733457312875873543963911934988772163919480372570049428445519865300843560290754406827534580497950228989451140431264831409176932660404566480709151853724768630649812429606400633725683368236375173518474128569313735313780650003503856068751077097440298984974230867847047363184290358300515508332336754140300531601570629921392820184022000524884764639591250727829331041586861649146445265457727426337807596316808682838078139652207118942469393195975580595296981936626010720525805405013775831063849123358390268892449419116140719709436510139495603839249152416747959913348618003894828240337786411811918532640491811791859233261655511520800960634096449240828380561138739760495065723365140552876072953784819208004583728422376284285200947519471074024617273096122966290621923092965095169628834146093297296234667297858791750737526142620614818132024874226159490990481530944525263401327748830401653910563113891315517306566555742518742497130964078273998336589140749893526693341004706576068658743479828326948297537073950516648036161097692315088022309103212806566471350563416784885473015092260066100179460092117506201968047198171469774850709327117122227266304085893877953478936838774795660333633670202105581485374978149787217441121530177041407171295699938824947528220125482243562382764774915868570267901294380177462383458322065625306477557504286064020041456658367174577444910692056649849133587154288129952594770419033926602705583003403849191207686048761289956951341031700201491190053851209765250511923338193383053901775439609890450431189415696813723297245876800877846822985984568553834317269025765127660215440676459832345043408777275919756338177581190727290286969472451199036652862105824583698682178866437251620372243135547451533563380298395297371193296039676322591567551866975187162820361093239113931024365918095201705744327636672835175934766263743412947837528103292870748834102208229290001351738303828935210838591127097491019395897937766933965677506982169313169717335646170959194933175530140931890112270601699783375883432901721260920770710628433880149792782681087677515143852485502764982641130794003125359648996370812219300823464574499611356421712257913500272066362156756698180184297806528621348916665171532266168898022704547052990544419009770656151794362031002789587990229877788202335361271432087940541767799815897732283721065340669657568150416329356423980708869573238513129703290823600490034580038037653032074521066173821897491127393241685595086204375800660372845989986162691290132694852721562046613197129848633599161349080207162267188126965290491569054554702774308973213011951150053967721515418117790746428653780048125459672252157328207900425317155977975845117592939419940060877039896205704221553257231733927460723820352440542674180415446932106921982729988288224578549591966130068668151800340982129992856049719422491434661685718207607903551441523115973471205337723413408655687973326304321962107938236054701301809307933922389411137679446473691712067933176439387820161632188814518382092513717086564213814805886474457266009981829807167603584479337071340088946271126217267617637560263143991771197615515156066825074284891370859364263455748606561720606512547851075917248505628561973792615270466770788821833098011591247441685491141401717588644433977908650485036843382704372587725899158658075647517987519650381240377472652851385607719418761846885817250770287664364817732060012195108109378842913333788905546907079130733083512570583007490508218837001405507783612128280109521444589861689820413757644365080579468862771476999404311989037374067798820862980505124755659828447497672567772716014310329384217724829206266108422395663879618382835868358765375927769495905006463586848353297164537375715246644610813942880174194879852925660851859254013458898993475783341247060541590683337150005482136820427909336632677836792301159529529813835760764582918302326728934140198677666413623751130729008149502242445859915776852218890475063721201271232120451365797994895404293075667672748858524555000732100598855937679227308616593964738126063148312675089704974216325141868307179506283095203295599582179826387700301972954846171401029237944367021563578636962148131256694344496587590358926991152924348218098947550489140150695714838710087015004943112597427567143513059514132093201613649297942565857768070148668173567569978322547105038482271272628887497568028627375808472862987009163983727466478431051588881318037035103107258005949931632831284621606525087912802153806179151007385086038868004599012507496696455216497212132576847411534676040766128531192438581544103898203543901558349275811197467617855577520628918764846276145246693865913242137576082602341330365914300745812259639330844043956325660180694858201457187133738683131822459909245941376401951007080287284333785266561852696037151354576275732649149083391601622458252307770821828101752882828179357588048531927205128138685237033716731556159888066770361603193744583615426416965345112639511224622114274607289969501925353306229169184210183504657791977786321753309918648763523571024318965189910949194103846451164250051886557691648998160324378512254651115612959463490335070279648745607014211798343355621015498735430594693835496707927675427256801240789668486295310557416360612328097403392226148300442455992100648523671473054673390128732058045311487876226590869343876929605317151720120326830032640640292718280311934669013640556276207666604861441503504385963862171413453417801044819835400631437180486741979956652847834192387823550046495890238285750331775652875638177984865207558773092699820968696015822448799952530833672529181965354089020517482376857545626029167639508002248821910752900203586143642823780430343214358373421674124019222050240227407069700997439989902090498696089086737257848017194935261903922084665773860297503004878533887489820093119358902211241482488383774690006897616323484886833726156555068429762179332677158828587551490869391517027484804858412353592918349582785218779694403887640413560928519588124450998740140584381386908036952375554391660132559520008568292535752239050770592425984717002287560286573712310459108252472009346079025466127952781475377525922944210701456494688884530090305505643790735012852953110867570182886221432303253193663895473519027862196351220445438902554439565931642866661746591965914963380972705327057983100451742265220363447534750002020411864016879329537928246157565348869388087680108000808191174139572250166563176210730444308616667427891890628542632510063899912395447402949970920263704533471271994101851355397018973853649733137192322449039903554300861125121323796703532957750878853437313738429875353314416513283551588884874280441168299247281895055479092251353602084165222242621181180665093349541378945213263788870605289438650888187149715448191189592405804271353592748872487585324666930660559890241364912081786032223300767809548999758921430679326136701266757217506520022637795404880966815835537552498706347670012758019921177719372490710817519705686482466205426567478146907678506992555784703573430342558351483421505067382112501223190599973850079342064918052739400400564435075769452429337339204744771448127628844073546110585769577829074100442009184442191522507635654644536147097407504581079871822624888258794451423304547050764625637058868325872549991424195829987795553222748311546406753194564770469641567867438747296844690603719268000743698376212520991722549557213037715508875117560776156284085414134885968612058218649504701194707930912955727925511530880146765275817493334215263983228686618989836802392087903112380073870945122040886303128641596943906894722660290109347789751368020621800542543828979225589767682409963840760216268020444725111137729764797286090968325290838747533699459657812582017109213047862008019138438980181891712727865367751541966865664730101648195383737215688114871735952280370383734634069640378190466917096274330423835905642409773955302836131441135394749872257422123812913022104213923469600906932012073675890526634329079359941258686680962163790622030828330597776144426545345959957885296358224922364785415572165048363195320488599601040719391791307423855672479124690289924532039672772902294402508731019686651700088639373316586584783111798787924062749421571118680603663834787995077028428037740354881816096948903591343218930482959191320799263531381356967719670226736643832863507176558105110594850676456148401313885880066951901876159232959904987450443762214201116490636029853853038082810187274009871925732182322438713468895613907430044350843769365367920335745651037558908909888830561518774209501280274937174652342299399020282228084389850125854890096086203216212892954435134945652849817753564711255002082963354102357974097387331455284799742382934031760386765097564104197231189467609016520329238078019825698694766499000213249890736839697595534062718680619843126619941779375893242545197945985569663698692504184021537358223205366106970876452672957025756378096711640636791192684062923332052386332353208086341081049750693460704957060947138344361866517136027744777366175016243244183431275282149271906554529766372915340493492817030327441564883808707284119934949576123030877277175549858910301980801273127120144817121627209915077160050106168395907836343781136076438133041456953260692842697915875441027560454722305325637806912527808441295745109098887321121221042284513894765621744297259888554722805881662683826670219630937555088982250322807157242581261309225674017665535427039401130534877028473657815580829322487723327636660534025846069524022698653373255059123748753114022120301504168246160156569261568502307342520398525846776554683085785581387726362731400094259471562099774449252324795924070514932337178090514256265840811773563846052706838610662932079749522290622255323749645062719633460085029985073689183438538620605808639390964506309607519281240164245829621159018785359048991933359988988508790633396561132349241886115414835507038306166357260624720241617196837011260448277238487087106002629308486419461907657029345540831458967077184815569848966243068175841003586982775763329732790002374351210465868892926249610469534213525061856221132766024552555262287369431446380708831720301517458830394485717000948120252720094783896291913119658596611802120514251454052923381724988725233160299409945365664528133149343965348867167624442900447027897105991341559787195923558138215661471977892372328390718574828384931222590146184672614353658209615010019401282683012469497101940526144182987401549879482882517681240307372033134514200167431946641698365537283605777756467669853325773603460513208417023343056758051427970707728731757253340876868507049969939629703854111164891966469005143081704720355390626852159808424510203627315229750867454522448393865814581310372791431118898564983898288033530664614339880556144447120423515809818724519853733433011973357453793835445014524340079494455997813350660929894177581751893756674628835513110470123091155136544314574583576923474266159112688510902208785535476296299067948259651500169067623864204307031508190603058478056525545671201280165432426223456680409585586337984806438298169708722224851467512401855024097519040343321099635163378000826548402241061245123293445242333152843301930283375724784379460727786173720237110195189261490465246718694180592211221301550294597001464504045872693413005650802986682127497560297998727078871484795805810935469994789178272335536103256739046444746841241517551045137292505137084808165439229205429039027561786019079361908158820500727411972202791587179659199412954440375723291864425191158407082481749291689555437467202813188212248913188339347666305403819246561761372230139323880602864641437054125457473658837183634994513976087886147473615004911112540958339460344139770801566625209560434550213272701482152962316698761952371819129016829845251835141440032308197470412707109314622146666637669301271417872333090288317353867298026990604689297771955998142824616085661414058317614962746847007660288323316427993382087601807025279457333715660928615073504113904140290085715961479259190866364450681237669749134468977913126322980352865577955488743792654467163410726398938197059112372960187994284119822466812656074062393711206337414958157873109503408554655927247340026279938449639793509822909725574991773062930422662115670782980091062962459582492293423917481549395604676020210380738555959099680892977767996414968691436029423469405103667192699777367395775809629792944936197213510301003573034325262045380883596586463417881614417744403600673935681836013165502452381680347054480153271182795151931724576771772386204329770999733859000252503174822568923817981917120482813679399666989761706803559812090410432789458374029151982287105404104422733327141381163990869725215592320217868285710591538626049078848527195677848789148796311408810127160583385089438417606347143873073913671970614666828526264271956176929778486430391686670521501409640921794351037460667563022272835162642185257018205866377831229663730436166917503167816575789893359507372128607348763217031973594049436380463329514527262295618301666188125721170846091403769803727718900271851758504148057057159810288513291440846144048196336049842954697698615552731466729315958060553136793998518679341127809803243610901594500664848804334492035526045128815595556026983217004191868399363336285011434307586678551269428656330249356581441242955072000099577083881504039323983644178316655502728211455574407280305620885968457064944866401459935314132040170801811290627520736230156352554959332806054184386063058229220552809724957042754923339285415596119350977400167790217865076603833451366992538138552508377190559708877018855528362417950081424043801279372466916386365724213139188728801158537348586992604994543457464892517777762990128944581564532046284712724342954283859993551824481174820172953089375795647431011640764150665669651219638283965797875115649236749012492295115877032277024080915877363297258279855099856951878522332133975578716890450973276440697229402406790266612816096399024115093874763682769582455850872927540697646270098933009911151049637914789626767463987113690809191078425129612318806599364502213391595443181242176303734479186133549186154504571815250351454826557692680202086571010938230562939785458167731665350896866288569939528894488907466581142333424802692871729117771746505252307274332583513112824129211969293449353584711342149921928493630137842698069339652098090633340191854504736572996818579793523594295550116144208322171329973004629349401057083184166938516345284325976051167408261765155007465756028830393053757151187347599840690789685076677900591189737857863707698406668490278417494875047950510058794009749375047465726409043243834820427124585324198745500183716014269393871979814179317957757443176936950074874120230427620348094897549743799440888493319202900813084322012216565905863320552341771642848735546543607552590756300824415089622651233722076105367281579385176007330505539728297190043421195667755245921094266704997750829779726668934278108147599895652442409851361343412402578512935751048779092362574333114864323420988835129004790362272468705039047623374697991410097858608273348392275866726867552280039947594875076915184569381598357086650838404546214298432018515870779137026603121059782338932049508628201344622844182897545036351095347583123163560258062135147752474687239028080457557562871241900745669991313995302583201976914250916054252661540140253942411356024228804847127765925757025489042977829395228016154071251970542600038144825204466943728840637914910835632242396608891700805982097139375175430633054117884934687528060042779050358920097460498442793061185032514127051323240961808081025812482468424109815318797897544358064454528036851329864479954806154373141695395717324627511468160273158128604986682218477334725749163572960299568047847483617599793259512686316792496763181762920300353950676719217218192122302161783007466651284362126781813517584562114400658820355298880106795299599434651732924772803246827462216662878198328564926033838016713894984167226385588088870777362017822614862817818910024679990758415892047022366680721221820393306048356647714585683363760631059165934091436401803519016277749172138851286843187788161118954541191984520338581680535289906841989850370218636389298257948042047581067984614657966931396283624700895269616682537380243377079113149306390057355850161081052557467951119893689446590039105533112431492833753003893720217403763886795408080483607589897350594964114597078238605193413705755987223244042793745179211680447969643196432287347358669347172138641787935382393338934319121575300881820766141658243633232111905833175702903754430878888313855697491487306887925945692658352396667334219919501357493059104794698562217343231683565941063423770738174212619841207278875361265542470072362022812687518166556301622086198111866546166235824780887425113588297347414807960749560267255941278369583899857703319669308495039639226487839515203968247693659596988061385763561460186127020157298319207832637919584858546145634006226490759734415780597035564619396915554293728036754610075864612619900255327340102436778943664671514924782592737654484439874454467980717239787193305371434994979835045784911890802794380682361919544938253321633815197337789053916275671374346074108575168662297188819411469190196862949416054034100489896647976909692651808004806623896957949970078951128590954763854354694161836568681429561190670509762658046406099726936685812053383376260199827094293063896826056465323193478140021017109475022988909440451154044875295661625955830153787897269798748263964049124250343506507188617826165704467046005624173182643348649455740147299809620912903028552574495232344857164837780660226590249152739445690560037848413548700738474439929889712753304083030961974570264008872719536447353083409556072348115484924173985366952762755036551766863664950972830981764960696167629097259470161733757645394788504308002015846560196886529476134908390430791272045117784544846486753976580209494819254000919466828064615301821181594437177331795463685247483826811455598904134209454624527348385005669888411555783982640728923719302232516319987921943177961566417441325841562268239987514244439766802140105197565248250971967478670055912945891256069897999640998154558472070247254506963167866620287808108497979460316610503762206845739703840736625996960224125341601448687788822483555852702196313670515513928549656080936513188635072596288827379492599702845124222868907866130999312411738586796447218699350116278075523854080531470229949890271967612966944664702157149962252198704548869213134125459632440933026309349157092573218223562868885927892408148170983679969751363034297133675688558260558683703841288397967819399295316732830393942248990619243049808916495190610030951803855381136249843252306972124644842256710752966781935762749272743412094541108913468888381507307150458871785825514934155630910454179071799451323951920684018600369167726968163112196423291312448970661378679109953302844125325515691133194145488859394121131432867754692394970299813308441030870975828625178165599911468731299193145165271466135903029145633941067826411774072202044109858272738113998922919611264662634166850069726696006270580905926895460305332290997424616011526935487651056853683148528836170606495968626912627501178925557333320133256897716032448082034461497293928012711569342646698713733991168523155748741357404273067202845990110374964037705192137459624711846580777963671954901081213024113396606093995774653129485023085261602705839403271407967875053003359559125304494196219491785048110047379769400253961058270173122407773694710517964271467075908996838408221485167482413112001318910752845144726498958062443482142150530089061887011087214082216663527036205305656079777691348189889615333797925468627103739186320372992030149758838853675182323225206051071187964741836093910253480144813251619749605928641927509067819748663292275337745410027040824450813425820382349645755965455351500474988896664046482300938441072695174974221340966835554796418731589337454199415435389996099598684358910846698904100752749828635211846482841883239687072880481908680425692096345857919713254007039975389578282036182749948938151489761849047473425057378156440044903626404619922618138918291066493415501224896061481479467942540127162826626290137850198939801481865597359094259417590205160294907199596149329572970927526833337066285514827668986807953017492358025858671165962319194034741336789087806080770016023977826532347686511800554618037599825225678705099009934374245639887120607453680692218603441914786445444381034380655240927466508055733898388980619619052697615472666194549301288961951526780741894329526594757838014722008907446099037470823961685324585609098659796747805241883849817071802091714070754554776103930413080724196915167539931299422059319335607318038101276668760400431284759005766301084200599773157736514237942423920038785860185397827846686943770460352951835683263068802607293287800443663875910237468506039175278604345008735908307059851423181008713853728940360748415743661135909421753938503213513427399069520392252094927163489132015259360402252870751024648322796175063538011223878693188867929285305525573390734365073830993879557798929705665670373832590117919417452855840811571022797969720809647447842099337705504956885609843501739155709862816507846526795659476117084597297281807430830804473992119271923731645927270246037183992510047033636110235639922891137371922804382778958195340019781616911168100007272232347914613553143231203043940247954012516600332878038281857636957876416505400724791718901343611216496384392818000735400078054557335513938127938087070381017110551759688596900227402886177715511356701480344455434184331897904057951440780601717623651300489446867620180294953603616481836444854380859518789269928698339818131305422857128247162005702932283362144439428804518998372997079632262719283427269395286464455318361761973438510424670485725196812548334064108539460338269460488588265173537639625201748751435621332488968654728237673786073805684652784619198512837446392709947745601008955974901564415193449332696366810345203536776934056523609530795748865273249731370723317154401332207455398229514909443965079647525584847974164559965731013704908522626473101591210662252469029195409223686774572283287429713549890010247032649047925481778928540455096377241894981228285235928484336110145656135063043068708503853121642635215296862446739113316764122510010051040461307532417608114680231554715542703241041700589427864995127036803226664978102810581807834320768853163112875406995421937888169392751828418033010734423403690175324308582090002454424308523033997223815351445659992344071583632953899241064578534693449908232828427849014287609186461423159188481681295705472194703667761545962470500521991406684748569491586231430824917084443038664073031502424422186056466572989234673013914983428037092817572489927312412388113317422004743243043174988345481624151241163109755807428179966111058066235580196135190650297244425171831251692208238754934021008586508771514124814537388702959098387136488253060918106935139794576462549869177364863757535512787148014899303552336569604954160409465961561566602245013353765668544378037119459162306536944519785060932396008858131121445421119887338288652877645496382907762557559410121891911266832333213746417916157288886744744846127319743663837130435208084349595361019980885666660726222035250054831467145466530925887613112610048972555063237870951667947726622267342975948964753800779648974844937272762183865593560116514106219741287688025233424153044691985235743156522261038316373130882956652950451918222776924882900906575415118563870007554047902638797088214176038350146297443899907723878576549332115876672820719402152696390901600532818754657785951621687807822866770268893623593185194018286460546500991156935294407146980360869570485336725195945520005129934078281132253643264739448024387255314727143902400600796644638413041281390025735321944571704819058900080464627439592141027956790682103422765431656132144820080865014165746984599833299127942834318582134674347386059465759125326594667074237479234242205004564089324936868090349376992810274221155392917127496972693023952425177983492664321405232403769081840828457202181013282071423419171845941144933336043805964875714928306845204488044596335279744481420613868322859348380061400887996756645885268166145011749325898304407230999513586415223447522430458788409445047208077840245524100857951509881134943049068273711196132252757389728143804358472765360716862769786665131241792409672614365444082732259355985808747096932057607047844543221754756129208459034641917311101194014229531345662599330934293754895204604303634444386124836561787418599544535873603152959573817767665282134996476190334095823147111384938231382131877241035158144998935710792246902025129998028749490231610626873165956438659985669407474861267619268088115041821485829899535380244645464138889417613586213943092483978411298156748574731802444589682614070321952177836752915478648579375549248572745413928789491606371528088421170853952565094725545453559499593576894966851541659295590448968921042842806888376990436673415616056010484355007849987834409614934574391536281964196962420766840693057141628226473986504436102009760379882756853499748376153318571250489700632302063955330403534518195837224162455418948488820043253897481086922377214409719779117421034710424475443547485704231329512461146029672041371135653665109641060230157385927725722460580139606304807179382569130777340225520358845138040126725418174263790387787097423113173218315055767202983763796456405003849902916096040713163092925503574600753264088173210281564791103843074155808400571533002242773422473011787076151696422497005604981615172738375684785453433275897207671830308514342748827955859629315411642432248304472337211102378436670700301463635737193833183761150950547419425535167695142805354670916733120074002872176504304824867072327439165957008871554350057388228476310687694213972587406117998847469100455937997115745793812366368541672863270565629564577842690426603243852251129208094630197058993074669714391601778009968023303934050417688592829108412624663670425565590692160603663354760910131820693522520314576234845953600110583551320170002927132631138836778750638331325796670725934493308007200932118116271247436482005675040911482762943815635033080234208847147921912126277389682258628625217859197089162096660643453329360472632194368578403760431237242658585439236472175576183944179141016219033494147586442902465150783101548101726214861510515203080486213040064192767858408747653063897788030400801969543191516960864725925473226132497891807113318974802004565775472188222454512573461492220405481561954446425485952322738067452736859874935260212820221195829970382798878798316913383564284410271367176340298598262958990722045011805971635696011692476297957228138500860717493996436738874970867673685180693839897682451439142676774024497721533782365093116023084958833417313276828437347849395036227641022919980902015704697892231836622697979334978195819913222765421910951027319792868428961043977033833179605984096832623469933605215409392106826463000225738637218778895971147917309181684213800183488639932189101879323490214683641550368656274437460006256373096324462444449963313186291177414621809307354565123274188542650471557687275421453315794122460454313165533382693633875349532417408953391135194704432676059620805359930847730546873335553031009752882554814889889738213091540393063582981152755833578323276987501306517390607445928177642538341176420291482099073933360699233801863104842098787594675116808059350149383412749580465406193326986666211897468881373752627724752806931389250582750447539884000489845252854543956551267542508047039186999166439039582127294160520699142001971305857367600850022986445108248389320200966370786821132197237528311998870529402593210516398907196070473936353203183316909017884869566763280095765499177099536940089945820084638219026926737395064925252494698304278677792438465030934320876012782578471339376043874037607230500324078358634591196647346581590728821114081040928335633456826741844323526552623294933956476632195188996235253930 13772000000
You don't even need to scroll for the age of the universe, but boy do you ever need to to see how long solving this naively would take. And I'm not sure I'd have much better luck with fancy algorithms. As of 2021, it sounds like trying to factor any number larger than about 170 decimal digits is off the table with fancy algorithms on home computers. Even if I got a ton of people to join this pointless search and was able to work on this with a billion computers at once, that would only take 9 digits off the end of that number of years. You'd barely notice that the number got smaller.
It's somewhat lucky the first four factors were as small as they are. The first factor could also have been a 100 or 1000 digit number. In which case I probably would never have found it. Wikipedia says the odds for a positive integer having a factor under 100 is 88% and the odds of having a factor under 1000 is 92%. So it's not that much luck. But it's an arbitrary number to begin with.
Will I ever find a fifth factor? It depends. If the fifth factor is a number with a low double digit number of digits, then it's plausible I may find one in my lifetime if I keep plugging along. Otherwise, probably not. I wrote a simple GMP-based utility to continue the search doing trial division. Trial division is not at all efficient, but at the scale of this number, no algorithm is efficient. Plus trial division has the advantages of having low storage requirements, being easy to resume, and being something I actually understand.
I will update the table below with my progress every once in a while. The search started with P4F (190528216559) and is naively testing every odd number greater than it. Starting on 2021-10-04, I updated the code to start skipping multiples of 5, leading to a roughly 20% increase in search speed. Still pretty futile though.
Date | Forward Progress | Reverse Progress |
---|---|---|
2021-09-02 | 195880429617 | - |
2021-09-07 | 229634874599 | sqrt(p4q) - 495902 |
2021-09-14 | 289943984087 | sqrt(p4q) - 1142707918 |
2021-10-04 | 436822547051 | sqrt(p4q) - 3910138324 |
2021-10-18 | 560393910139 | sqrt(p4q) - 6237653268 |
2021-11-10 | 762398744677 | sqrt(p4q) - 10072617932 |
2022-04-24 | 2676871463541 | - |
2022-06-15 | 3003921162971 | - |
2022-08-08 | 4033414281739 | - |
2022-09-29 | 5001037958817 | - |
2022-11-30 | 6184267562057 | - |
2023-02-17 | 7157277661543 | - |
2023-05-27 | 9003387823041 | - |
2023-07-25 | 10088431887861 | - |
2023-11-06 | 11002658203497 | - |
2023-12-30 | 12043664580669 | - |
2024-06-17 | 15091817954197 | - |
2024-09-13 | 16147527223549 | - |
2024-10-29 | 17009679254743 | - |
The (admittedly bad) code is available on Codeberg