User:Rpakr/A tour of the finite numbers analysis/FGH analysis/Value of f^2 2(15)

90159180190087665667551733784243697398169618591190408293562652411217659313918713381243724525222556391436558469677765187291760362936945203261367281252833442469394910573648535038362732455781717260309493297410190514400946906630155518922108902809781261205745497362688295265452339781336773843340970400247651992182831089714686114204879226760959023776195034012148747735496984551875708357308358450004410315582524424088711178493381922518493363451512073762620863231068238754157133472360067851807827286515838218958528454673892807301564527369222349537983399950897970836270747666627411853599566181496779112621690459122452789493247817537357167140944148682592083334055030214094487640442046402362479073439321845263358605735786685474315009621662788559038986284698552775810964466779061833378829978915677183228783600069293070518910068302594544388341862537572846158807990526874551164737664895750647604904177046235644785549264486916320279459136860183509390568866832094991895603964247716336407544497162730052784216441101837690010721874559007488696802571538425449379886996475650536537226329946058909506112574901180461818401033608796266209986686662304258841599730379585045977963677100701692481467282147251521390926121129461393676933433699181363033472508989035243900412475215631966488027135434047427510313769081567018636578225724561402494583716102147604271270328625027746735168768746749993200041428761300528135920775315851260987348156679382448312206982602776370092629093259894721925395911213037085701676330971877774443985457434443304608220926328954026339395096780135909545022754114603900369412970188015058960459300282746700578958395915351180854082762366490249107658361372611945753003955698913040562045018933322304740085629038114280495751804297396470597905757897015009532103699632883242745798228848052957616089020867976851339711248922877940428810999310716906200155030526574290534579043001147273581621214390317633065253854910046449667506475039536104839903685025572694674424657230127249850283565240791821150897416492852148178266050927885717099809553364062608139199995521338609114687260019852822072317843041647957693907061417659867890107293063727657260278519353484089991720977846734123104971596855584447663068889093516014893309807512479861698972148021058910941904928925821659919724064623843092565968460325693925912332961393776823136960892832538817498067138407015189990679343233464050061750271889195547055686563483920797845478045764850793057083835218968601941201787843064481789969479539794326329710794502531428141121610677693852254078779378597995270443205244133471265579913570307877488325367664577932007168418840081678268952223980269830160729634602645506700417264489889654814336598903554788178541394674889704799631730710482419425468921174573346223282264192761698855396340464355426782211219335549722876738938356773811309894614520166250467810483935551319181683353989833437709237135839246592262304148778403863324372706980179767566589525992211132959856452925468905110553396837387627033649500725043356139934270171590677204389517926143764738157035211244928342784374043799738342922020351137635379542817839187617477488574027250219430695601825636258812667923463203467138263569177160122591169679641174658707744917527126185173605255831686941296496186135772578137274192682183041322188460937326669506467310744409710808589434520095249785105662609984592885924746429264946119922519058743212383697166880808656053578596405367616372586965037880236352418433579993466283488006948844283387937831572544908275041832984023313165908733531336674882206110292330754675228127972400925165791766755326143685067993870503966147162600312428897371095140484913156837943621963633790572882570309832789943146965389069863969656870261384312865635354738675610090699035345228645067209889384007805538614007056408729318143111077686761073985179542914349749824839117841683513883337775626015394538375874034221689773082365631791415792175436881708432898248308644263043656807788116857055871600137377490706569130328346755978532346272394490643345300729958380204011094968284468714326674985107229922268913595669009058771073615246904044570830876896560090437811921010563730770716808271443754254494237313416723373873831972023971708641903162815776613522525255867917190202469370413738397215429783328920461912724393767427078446427466512512814639213875802681002444178354107096148411043168720707213376313988924986556285258858075880561385892875378277568023097441359099808960343001542865647915909956559679135141450634852661841788142815401310702674900114217603261602432140933611535396275798166716185876406398144588014363752702068620763867594486208218988893587014568273116825595372123721405337137629097876047803675020272455865850659395076562722364362888768703334239665826704845046622026364977701032982565626244299960729725804952128310143433916768278836019266553651622874726884760079536290480378065272216027267849421132705455295882190288807031990368978986513481727705074906439124172966712771870309800484958886845241350054273796168245227141354759636636808223911628369553934853909656203896199170632784862211349975251499600581632091512614959567030442964689001527123601926212729857147633475611427785262327962987969393811724116313811554389008066046006219771186833277200031896527321742273001057659140506662798659575027736051439979751257828076611257881765158024264275885760728066749378068124075101924300010801764446966622631263270061472785975034740888340179988879775805492882159321291575356909456322692590948361878234154411539608015996440066978967331402388376384217057721802369998826319855473324810979489916882017515171641252053788936544178653896369274429110937808124792450346528214214003828875224829677402171546270150941865137084871835608959620603321531305073123737019566416534420140317394253073162039151771220632603582406461017115673005934214687779399447328605033427523307884569509824486899079571846740351489671528867136740298616471040908416378286856036158754228751034459681366955961528458585500533063066483303625430800369777810397555738882400301502021853023785562785287068579814291229132114156264743406409232126390312310953636686037003492708895849042258845737177384884898864796263228015877178922335752354703545136784115019863722746145561119638881423884362976540086178672454337013349988526897041531450240324028053804738239280793560940337228926109984627677192780546870219278171213909010829639065983522886292911219394094469958485105823741281940201148593474489469639112445237863721868837836907675625168489631804583898540596112689237072418884469445439148343648809591696110674851455846280256784126724003314959204032009136807594816366009877541243433849364503105766305912836616922728437642753482596047964983442310411506865804890011032472351713127988186784241896359124808470207964414589027532377388587793118450040328155239874085608147486592212294803243396844540999401497237895541393653498056259403441495483615492239248914717544347643076145365868957863003889055386369276047886164559689902297841815152106344983675520274845162141338785466632294819950925079920283001918153260821607018407018178003463837603123168270642613388509959478021273587504298023487038570075268752669922563604065311152242760286591145887939938890215325040328526919867190017659802298117431509457645249213388677363922193618386442148539741741359415446864107990313746132844361248268054837384134205776154080328750030896373048667998892670866871851048850720806442117078986398849831872266261861225762294440245332481918474973485402544185474540026126941070416761980964161960221119838940472617353349635706152700173206375169592322051802568158585108329050031871339692237716170130127538574118405321717215985178699984703860257525307306064791659670829473204242681972189404690860233294332956868980118900020245110955150680500768427852468432615364078346562353946820073140698802038324754165762527765920400005221214866948954584669282403645897610348123506352072622649041261208349608436697297486571628019292968302072436169686051398533655710346108891680948634372997178286105651346695811104550154952943822815838220616388322704007943547146194305201478344705808620083979309979109519039767167320122731321703342497873418894681309444456952397018204369628894204408733782392561389392801676829420866188062135960173979930925527017743232681260762234065049023526640920614393021515655105088223111987991926730684755010256760801038479772042083192435313290344831935857952315845048708758925245447254778736847459751307440056485021064432526763817193048466459107311009702399459251309623054857885814075509411573581201077540769058024294248488661046991918695553527831557643810990553970117907040275278886439587908096667296899301604579923385697829328092724092166346560968796334118544723127534637238492191184828346935045107346611909447540061983881241078225098459609389803116289212750015353914139823867374358744410647329712638056382812734897412233391764234594703161833050304249239343743881756698561319634734647363511937477292740808219911642058756269816169088216983875369587186753281618414483808355088405392929148191480160778548806861163081349153443439367777410234785210164370011447748323885087741549437827969048775876726531144524404585076969297474425247192084928109792941773238623004516478511384540265346542070888981580475854401432660929342103503967293354592733911232145804041384398340481657314065155227077074170080899362409019237272061902491747780435183300969619294865632093492808509960098534823067254822149658072086852889467930930040985051398438286556314426184199087224773940326550240540549654813256042477647014927479919268808885659037909792762760944730885780638519023341093786562385320539223070731168259431440982181821607448304482117285840634448890381780172537273856893750103139761854485591046154706414870515520107677839079107564315966940372984953477010792281568619099958198362340579853301315337014396180921229317281028238056383115786558079000518977345753143639654688791249037582408330565563823969417126442002723407208260309649828714657039827904982213644512415862500440247501487701012269831827513082259451520377444341177338666704374984118701446257658412094881393800078880208400497946388646133221630123011330746093926214829668667178073999595889467999315154552184894606728937453724399073797552773869528422841760551696572273156266073282336026741738130973978145726926922515750198371047409555326567668001192726175255706731594611651036255906057239123011435748173558778331842028312685703385709413525996615840051785275088512396535532408435504213519996717819555727667392017649969233560342227420982518798278704402497482359794178130627246568077418336094431322709667404158625381077309437378028778359547611441312427600063026606096750218207689453446096702614730522797491341861461132382116071520994179894716928301394871225057711646616512485895455913155427969654943100726677252624450490926286724850615667706029496954691167519358425451845298861693543359063383034731836706243432613333454938134737850394570283019501221532172738959351085300282264710929325065426154160506832558076177774626401803067099440224385672079578496383353746283174823216850812695218154198254157426035449280361782902127368310923842471092078648970491333142585169499578400230105939418446300888387873963032533555532180795144302810667318098038584338457616804136000067968435719478541391288409883157399782450763947173475610832973734004176803841891548321282394138357247941044431202125264886876585662491036636494759454263503830044089633780692962635707458159734448063712058851533667904693058924460882097147605198972828797133687770751086157185940960544013259186147579043186391909516714403852107136305013397625101023050473621747842546648307855779617401304258416595781037255833070858152650864243306190760753648067209116860125346289182654733093126884121410294926759295032147659866625017376691604669482531767367557327027022161934789741595356012537535884161470087738724032868997710840623968762098022574274593969254245661623554916175029166838108377003051604172931253518190233542450245787007911925962828322808541521652692876146740675221343784728774420227936467402802207201303159289113145163216736085128319151650788322283905063280292662983154657411090597669244262115163177730923060845046223427422823346627679645845372232283324157200981494232796712374650322081403115432522094659176469961167061418471856218378829762830299812676471127506335832553924214586855564104394514487097744330607816131937996530389771408612764605276629970335791807675860191273300948474206345181900092386891658619098268122449905004661036232282947408526356069395981782564672599932869618075452845493423007244915876495512947715928842324238804773073523502736122776764501805646052953318869283234191380380123531956756662357190988657280286492336390572089481675620740207079927867356270818523255208231014772002030412093981912429142544307583921620467743885513603787260564540725626311734074860751904248095892500441279395998734954761306905759664709010008771632770591006380440585360635870606195748259918042218740909480980572600972500958508151411298338075196896293899227327078895155244345366474877680250032617685058747700491179737521092250356892567499882432376426892176079279440200080854487434216382129572372454626964178755862549269815560860993337116672081635354152100152275668408450151461843630118694571117978599849296764237881073823272341016951077120814555524910827638552428144778130515417473900017451835425675001265494615873167422890715489840679313053106521860941393532930027893671903652560237621172688069793470944323756217500176090485670581130412115799768060155304618185246390410831590804128532948421108132854297145002289916726349726157669003682942046390268593555060457004714914001330540117242999853771132025077148614376823496204393409480507534470528588529179705380816599818239220020628161238451592694073969628935815296376791743388175513546923719505560171302078394332476844220626205022000876415813652832040347647536598633299254733517506847597169792900925375791312189714517239054196796546533111842859313887797392471293483762659341707809099273130206086215364242149028877132947794306562721919749474696834801958257622473723775538842663522487968017283186151896345464363250175867487652195999297183844536414344840865564849425427751262187145714563512713167295072336129013949931936313477762401210669015193883929629936794088197923242853653898342930934067024322058072539315980496239369732332420178756187900335425223014363941522469024388091493698385045047582821368982181150862135299211378108012099445654899852994478261280155533510155215740203619020675901789612470201072248160796447945888702364254135112990071516932769822359098042051194932812242085938112412661246234146879995714306071454752526684341037485909342716765903878661788148212296819346385995147047396596610688304373208136257450777565349129971717448554728616287914108846207304262059452620273679137753196857213924205723370974845439272821622429504137027588202053684332602445665459456217467298666646177878893953518447831055414363870544744178655615194409161963577414825956554670584846562356513813987246206377575649273802003238561435365154440876818516772321838858007598795651331754166106225370552774336119331190465573274912775332202949789807229403980258743531760844422011201433293476007545768999946400018425791286658708214025405216901460005544138288792439623724913800177387763636916482898526964064769995296035284456745155809301949523653028885384621539806545273821503951382195001398847429197572644972600069618737277154278940654626704285161396587257881160770921544063490144153727669428457712116085119986366120877649775923599592696092630669566470971427212955921715541542460052694486989537445272414516782119372867810759015897116021797407490671840230678620953554575880412111826979917718268078990409660034271554975265988174663526805216972557736858950406230803799324329565297714580412402798729124819999706423957908473999214490846477009178407948947229817945180725983582764520887452890703409002303617859924805282248667608318764162058060547739714190749105114128637264707528039754327482088025968968768491405875184210878024492257713299337044956674950889690898006574492877635690668188324001462234473232125757557035402270007446585330740930511335932606240000914222371584524726974568924440630173108873366418923477354506104557235288690905237573898523313887140296944219280449186382556850149266902373231991207079247309449453801461023618478733468029432369162617882186064043441896791322178403332741569378106581140073153663339008180439132310503916179232691704762145408205385209733507504179082295040923969632525254967019524709830811190094446414384344312614190134193972861464986005594564026633883684137764758407146750267373349062785531361607765904670820604297889945470611283571227855642198585931752716175603548524215117341785483041702539235206075835889161389625235369467453012460240999337742137585344281660221522281276071497773934299663366491534562204762306245825763572679135088790490940840117871392464077837221513381135718935269440295353667491103939477347267006288522151476785520372189003652332568463644415954519013744948988468110031617922646742525164222342191000386615944642494673450697203943893062596568635322384360504508150471808771805311331402477059992504987030374653798194864088482959812672154374576504270574896905429276742710604187338051214659658332030204305131308382973881990499888611632901703252860117497839121492837061257365492210320132145474225250010355234880344316680522335017729263352281363225013093571702433256877981969984460173657570656526348408586051891364059876086987956495845327827402348086158859116815712108198490125896941816073583894992465359540070357739190971513124881286580477801960695119730853810013696302317424250568663021466741834023466476383188204467014810379600695597816608357281505809363180418484542954022970747666718475380342372356395963835261316645076920192858933953880290816151329591054403070962134381323656294891828728204261809254232110379588082083549738519533877721639456729016197144516501289450135096104833521582082700114903831742183432399993485212238861901953885227791211825074135689010509592974108222825686368046218297633446162538192748604963364176668606281862118719130679608406698260607739551205530476376608187408920792561073169119607481104084095891405220715651007419674010336826995722884185747822197434274991555475252369012686954522414822340343745219705324508421690090911718905821646157259473741049377701229992566140025283879329896933215654345876018304464903485897769421726873108501104398255108267382330801729972448591639537853608710994696404396537871404946323542717726109271064713474881733215787777395148883370553267598391124387610203453070028716908951784546084664043787129393037372747539157835912956147573234462319079635406210756663409690549037977105604495117562015169137215547084201115490096524081054917915538108010846085652236580409279494896206767007766122928329078643230115283658332085946292027738909293429893500238501861047160499318049291629935758955844190380421326214902196209545425293691670968178048609031806287499469830550838366985589309166241839601925496812469952336829225358375023201957465246343673478009978046028710315595430107768003304388859211668775327471328724940026759352279698439305897927903800484938121050133405291130134518300289846019566343742168461439884157469746457545700109227200053485238302815127361689711277602315040914702716815564571441756250954124055102697649657349047113932339515350545894922538115081596281377172870747349277710552830077269213334801089477712750010677164166719973418239052152226735641411907587139650010141849004143407742067057151081951087376869753218685676794859809491974840685328223506196529222126836719334453282503996767058686574410273805818578413235400845116020220781570948929516887643139458316209211460687886907491875639701191277389741543281469482466790507045285618418382273291271193755808193535946137734079515179582928384107679152626727685533876898025216454533424983047444450466082331770585932613267598604943013600622385406838049833899199946917670780912250116542286681229229176227708167573210977171715638982407799330272361438010961186335235347331239368089164644854651199911582130274629536815301775362363284473444693259083359240414270026149992922592428804920563835179984312036670162255764355927757836742492064314341353256685738619931552443490865030977190779729303833931544621586887553722158561104227694940939795192674554118277931987881175246079465538211813394820415836062549437799579746461529682492070355369829910525524133104718050354618139654922819322628017484015108140802832805336589175433637595550406803706876776131521041285378858293976111333933659630758748233716942867977545816645469504086928548989950936282799214676232550434959671574729681077542442799853307705646957494976828352025518739965520719388091019598573530944888763003801555514842827475094265516767849743314038874935143326241967416098692313949975517678283000194190040042401913775259245676126765105463911655435191180258002419000929046591838354486249147357935068671564961038704357244145016954146977343804966466988551213278550107481412278889028806707731407773563032534758321364799241415175885991493824690273739648113172372711289699088586684354231493470982390439219401478514653921606386624695122777571767280421096711648015142338641162883293191202133581593727512728954679049635972023314244731280626834694687321934059153137052184747517732236342848240696617076586801653857603510025447342818466320823491552443293120155038504676135957682415385326884991277059176768523537448897498117987589854866207154897691858066347566003707725250577760874501128953314612561234500387041450607922617892883565717582214319735968629698122930949104981176261536108632842784673850390705931360188807676734675276277321585038182953321722668123582859771221287755012436076885144054109891961517700392502022381256969412512346720486932376987509165676787161735148605837341221641180520353248310267087785566011917087959399942758525945406105044362094204615223919877726113826849382387638584497877950930656796400708344313129359208975067897606436897548364075081686107584477070424070988447865079726201127985442577088801566163647711721685283277767767705315574700319979402991338185320810444761649016044606308653639502908468728848062706412732750258800314588424427381664703877208972375460899223400186199345426406161160716199501821941467597943828744826972539741660172150112604825958480706637163312981632267760180577752465099799320509389441483873930552164802544241829369066298779269190008680166067261741910990857906761322230645466492890960092997130991585716676329726756474395554382570452212635624933735739380530713347447317307110045710701176518212829369434462764731554476526098868744557929701956025026949040310465871989127741578967923230170702094740464735755665710277314290844097762891835226412504146347962464610291468390434492815378671121258889057306434705833043284546416989767700273731275506335943133654053044557253517995222402207148734272743643163462485056072295168585333319214720351562603929463004718064925300330614693163636301147611630112361925860753918168610510750644773689755313396408947397953839401360871892092734662146380893136879587181658616678582638376783894646697079377516241222969432583966194667565361835010140013037668511140319204616825140913933396447430376571424911802758384443338039172390223217394221072323159158549137870101633882542176148006601336371991758219441775066795530219914393482448887580995580712367939528483563883636440620753687043954942151547186753267355024933698437014776693481536539683986102405785422236533635385874702817540913854155603450240165050069153360864264142245654107430493176075498660536462907383901553703632183896052656398839152645122446540477482043987269057893302968550346024135986303103223848540255823051507064666068162154608370383147990786131092974783742778676878951621137686795020279073925266366209686095278618241059019485747096911661450953494901195246835597100190102100812344543003719526862081334456501350964063497188091033062971300224785391218514488232431426254061803144238163631530290246285651764688553116466901518224961435629413813313785382734132443963054880589370105946735590105496759918174262587838839580611834486446518565466668639379627015426747407426436818581568603662773833717514400189698867867030630000718350174955341700086310518955780470555302578567649062841026725112772155237600432815707589983625547600422102767105401632249854885661880040696838059176137005622290256743536702526460370632942424962684836605469695247275172318798886434588751412187561021793150777856590669485733069608611580673704940018809334962696476532662004713002052262210699497057675682579829937057354006471100138970870248887922491393981449352739822931467972835151672210762339048098720277728387769528094701210019124224881620731279189836258382825083343611491223912224650110678683060387057722829479741876612958856121939520244937865511782321486062806910552705831158072177677016706276836327389872314165953182459938180884743203753082075594430404779434777546374671595593789168953853891532221482682893648545819305716258665367764267499319823568135722816385178429443291735313846108616473326223244655600820850987521131606183935650249314928636150549818995075744727123444835201470404095200106771930313724221202922776059072533883556778567499000180390308775596898759079339094970687811648794136296861649804245721912144985993198606095255439439208448191216223651641288666234792655559054350523897387484435289039047446532840723183915833352434271544611600471998537009648086512580108430163251714733565585703349749743742747850465889764145016104990577659459383124662112724968734756526158450107951228232376305216175027291808504637935534625113987512448159728397299426244338110258738852619402209244185459091494517163266738856662061386840120103099192089491959284252630254968496139322823680639741809275943638890562831359718356833451165311372511019073950499854021454313515796091994237654612621760799911697890594766944583961863709438593080105227741569311570417857218430977068778289057568591270764632033764742181911502677094930652431406361410829507444310113861390214720916724995939266510546956526749008091664897668670300366305952727592531232183793786302312372992216009051513161274729529640881980813187690925952275322083591005233484290940158931023528988988626088562236989808178980744554440371556295726755327909156488329870231631101641235120770970770995916254558963010279552618560730267388083162435879702124460896737780119085016999213108374031163281733328862310474351925997768368165848680864153468189582136726030717013848739334334862743155707016009131430344400111188058426567716180944953886202145868664672790201285684822433186514627774287357105263283368788778091820941958660864439131922969518140206447320403525659455484893016311983287394341691663888003433845698203964111146639693509241730403903396010571015405778166366735012457929748007791842695834404592136243997913875861418820433527990972511985330102417720534013970054536908449058360364008016313029244300545897965347604018002189833034024615812209871310710089631427502129355500285845822397077703568781460114041746149639273115710698135585553765052964704673563362516768949998030366287406028085108650217203697699605652345173192778590917350658609210580846671731305852502042374484202750442855134227743592248238294107526248858272684155899176544344179325562072058401176889035250467884641770399027596933042904044736328332204484028557525131649940446573187693326382674646700864429345692929705859589119119692153064185426118202179126867120407156176431937236262062237040243246879844852170339589318607464279698316896001268679381369184050398379035578116068270024229314267649968499961269709181866267919221655039815478127360197506035434429221231713856296991597481744777352777729774345184982176336014113029869189944400772603526324149807221638056825929351208174791213414735389585027125778812042019043536320621405017812589792014387365006739019859517770605760657868462778824054160463543109582722525817636706090081185652946554049410084218076025881329869014289396353139047872262955134161287064312720582038891909672807138019521645352143998986545718456824336800595585791211279918163332655577122380118531742856800060484949378746904124998093723745249567207511409618222532001441341801288868256764578025777415285988556373936302857763204717194340520512761030238473976949535129221562392356568960998832112956762662383466992959076115032274362043717325737376046816112176582887660769633147620206768398872817234106487553020715905882263808654858812788106759406456409697081877508980032506572407338768363562499674018085453013141689418109623413506893548272313801787754678371657134297079133878981168871581251612740442378811185813989924535260558984415402241910514521525037109627467353878816002722232240502280295337579852483251072302015728001634451041922122570716417063358283565791475994855375050376906452575863222344234487703794480822046523383381414326058542134577589235155223779317281321974468262918986242062819005791601579774950308061780577346020616768093016977092821489102627741629426808374158451198529785076711744929881928354227934887606939828552811199484147659747971937634299404870902095027861089321482533352194989955340745452982953048865010877666609106866454729381584755807644051790357344313253888681312438284426686098489031115998700322639421139639312691708127625779545030159087350513915526187322035588408688412292520673522680775036891600821932727967173567740278355756096933437601844314059570076157490702587669007233517809779784607440320547658203019979611145782962067561571937877050136103066451434558363123152552330262683652739374457466216489858273069582668893076962407790720179553212460822716022359243426272053417030881951589061453947539587842307504660372733813923019016206146996366883501817420715730384885194248976594023494630777826536286145837690490436463110384961667535104483353684985227812830043832954867781016155714769096462962587889947831291385727944637700635113067004063204681877138819059122980495751463055587677118304293368640619298264133652453718088856676487716847770954814430439712347529378151141220256325721421555394319249051346671533972501698563978334036384389026306595401555366121109062695101510356437244830065685582245042468837010762076033762808098715717570084390471115659245614633532694300103077054330220370533249999594020814669741455521141576937002504461571975952247912438794207746133348477739211054015798539504467327355280021499299323986666815735959697467878872868503209902527714527154037809401971495064112168588484577587523285333543707151323612600705178926094691392155081887539551897331203002079528367648285661777105857499101717538085752047627998533215283842891713301956996373704733156609833182635158149267252244386295658781099934074849910431779937852515827227482024220687882719664455366650511082745035724526783937862366360978467935028157188659708795141604696495136868912960024310134856703692511864002263897088451743615856929761038883477464134456899529357584996929495605981084093740424424243182066322937914058570854741050594763181395704711959614754569584177216995685091123176959938685426774436075511827641543455121047577509138875606918738807544997917068816961259484896337649632382598737183614310805418313180374626631928212876049723088907743926560218742635772389723959530214495180735798285351372755250543005773515261195064942031714958941072435802188873987320830642590598192085462821636053210530356333223916188575615918765761483122987360236609243336650540641701186308562215854340173442147910325686243739977883975104092205779694016447160051936763464934698443535894642578734801357521238439718359333758919082214316961171424538983529226710370941785509196677479915352577415608385346462058462251214453265249748938626169924332118069371298170183292762125266964732768309937902052129390238482433331228803018711283777091668524840357779239853050351173413025995621607430467868972472040821813624702781258321365767058624998579170951293855508118011590924464742643557384142494001479190475177272311171793580237581554831944684430491756282808511411230114707596271348268797083091326162878806651463445121559235011765104328927859854802156301390281374896614106515382809336461874766814583094762324406913343990113546685426713918504306036449649945646222029171221150678313707811253063620869413286897138561074417162918497599663572120374879047271725535123797878477438148624466500898470351038009258621439633292793027112319657700643054161281524206141332589410992589715773509664680597500995589745922842476696162292537949926651202125052092345011454614835780544091143932633989919830819927409121320442129071138924198080085393853862119306114983368416626618843554445027677795566381430889035944656547265793209168684260681958281668027030628482055922009848762443642337328454829366771386039897991455232543237428192357677162549955227837371093421311284289009279723341308414591756891375261373586010047215054135762607616053435017550760478193797197316657783474124349364468641878329663170619396703939582982926366940489666947782349842838441796973347449039333211984903334414846714134528177762712333510527681567071787370348759374569571751949539880704229286556295346319805051156919230514479176235931617727413551406535003447244559429328085373206831423668706390155213511808238853658275940129336383919776680374430050702374271586336177270176130111709440153560389125033790792933673979465411015628319189849084946784199879227722782213416205581775875790604270405252458415479973332685835511736180148584328027326758681673138338461811153458590958297438227126176222619019535420671973285668903100374950150356642357575013829770966443414878920527296264671214277661110452760702170049772242787612816654374148801141791640355700090223821658182007758972999465995788252649343249471714092325358433364812407750342379427732778674854455136098539383892914476922435255149980964303478374411672156080956928959403813820699618398816061930749482860135873903642810849574984165366034102890503480731651885278967023731572230374789886380864435899990848583922001230685284790986947483124725820453903788617022134136812815883414759968551297543764118315567559773801868051035604491400568276907571960958376164535586608446755424554166729150801305719216649799555880097907501151752422652033196788791285550468330520760979436089745142332538003185388129076676465988327378144309388221526992276957477856724339236895876290546585042120327455924758810545837586732393682384921875210014055579346675020868006524186143022917731722516453448695168687529008652600427360810340998671682263338612560010320679797892705420148221459918290596144658923696760956881451467061800577922141377676617867196975622809778458811030879187461489738706027165646247886584065402234064221896891412634249981907888355781164646558136012405629002623198202746080218474008519294190815805550697969515413335221216445435964466244871257467081737873609458689752097012930793480257036584016190060409681406444152908943759573117893840360843172941948046981795817515443154206423166125325465098357739004213152027862743817016090572278485646235941228629772150982382984929714352085388770434701215718798015828594278412698198438672280793620180982789594911808362765005048319891389203778441354681998993012462702058086938636650165293470601826972087637429305349630215479049424240693162335580616857930721548337109927289150309526585909391134055110282451516072955480426088300838771394241725773279563658576092458224577678699654465399915597566811644812834914294147098798483657169324726812207101977464432813678468312275960984086800768047516036585486072209016932864893345897446854913756670185508582955492310464810087801933048670802904115658325702894066305797763335315696844746591160934493917519501159805393638697096920389328130668624403218341499162153954523677649073758215533637844436279082406721220389385155988075300974385456179077449097067951171605677749867060073094246417692840488176880720128323245363930352003050969450039844752403679440836271951806960010431527818941231835737028637526898309383864906220553550647045113495632778385572985705644015578126122755097968741758604565789824886178721605521908271248858779868834474493327345813013695564033536903435263506465925115794154383235724026538256024399754654255643787715704874315042305855949592117932443954874262665610382572158341726561705323057374234235590684881494253616142031445931738495113335608827980148718937298226581927304940098960847997148626801754001506600837833958963915586657298222226577872736919576436228867079709639134170916739604237881237148742583078595629178365927227994555981524661275670631871655276199295814797674734812575999892470512313055721866474582270283214055087569747881392400690011342173935294247887916823225723638345363524141150838619540102548248462966833554885302033194668343198890870356248466696828732128053154935755577831065779474678940914078229828575979722466907036814521176032383470987694982793653320691235560888047022591831997851866206621253877272996038994817848909026050553781179028803254683899161147950541380073271126860516073243981391998405485221820443732128902211420603884193225433017747042572843096890519676733656073205833266259733499685162056248210035312639686270736894943448770426632802839769186749666611154812967853007329750321762766998334775901989817729095205065862488250368744072977092133020899104249539127298293507734951546826815740820072025094884916286808206599138304828863527710471675933734878581159269120910697011839986186482159408685712988998881892394064438922081291077563071494028500641358027866847335308881856943150094264352929800303476429619210811641114828356842854030069698607738167916910276775688064434000513263211421311585103474210301069650836160549164833217658785885232923375270762932727278097262990672630880554478101777008983173571988351049993146617003004805636405844809387216481999477393014778347632882932748989566273879537659328603899652105452070087303483142792655767641041872378047069523316176384844674561373447827838005550889441800305408359999797675227725844083285980345326121068332884303519283267880137769522177313810649754305798561030678369502087591493253297555050552055039333934601212140746733754551911528459776508061815332407067793748894972155966388119128759645889191729226008556517293105247939993360814798559649177259853108291435354222656481183393045385520550045928578924543638621316535860299105782001399662995356357629716693746673176349377339767728577212880927410749949665665251772007660481438536757071665647867742895296589934226969658798062842423131304247520418821872547405661884799650600640589012664071092467317150757357778132378771421760084180789467119584195867051596233289769958866828255655427327798733039431585408029684203488058851317149178830167299235862420048320229576605709923763800178267741440547643256751165194665876041094852269319144676465309153594672414864815983271617373832387176403845679856831569786956116599303280837258941075614530097816040400038569155822314271131621722594271600453187507650659958003162776298075136654329748991759191319882900646860142698634667656513031849596185367473775230895941101996349423514879171346443643558790028092962389817526123150542500695327427849237795837498033625528208701575641410653988586262934130136816406862267868289246439091982266273183626446685550670126589822838088551287255122566967107759140519104381834271756035659640288563749599111859257659405408343270373620845968767619660005469283676682995810300748550286605831560322561969391538170196342101978637455668828314422262659303269457904926616666553428531899255656944926555525699879101256980177712490507970316134891589525766397991783236526751656520145596359918616418238905346061011516496927413918686651476822939269355976376706746650440014587246144739693574039852302006676535947596877765589266618968483384234147887111163750273873529366702943803200911767938527640010072135995651406866516843346364968988884662058891550853897234732243141195701201524713752444858904192789898193357869552876278049676290235934392472912983312542414012398687159656363884222196755397704355039922563910474343732681518786782699564164483124505499566781071468170832226683249726631867675776161599538170135750020931884365188457052543763510378573862380277625478985960945882012035475887311346606297415450160307278704651034325832546276960972879297678959925440537451918489050056565916253962288087810721174974598667179955560331630401896374306895309415182624557588724449668581646235077375198000024373659766953157298717660489385756681773077770430997293072308985826129174936623480680694386807567205382170178056569564199649311960815440337292777447813989885698091670093207710295472701517750387241258464985888360627837856778101852471272629977501548726462203718773626374202721990726676024497982101266795035459028196794237739157905016565269755013739459824789670985579518994272479186510754833714866833273551088481320542441220393015189054920802664151583200537329382218820902766827721215807594314561250421862446947350824443480283401608110978302317101448947908211023883933572533368448333880506642652716575720463802208928363722350793846477830826904476480645305414208747354377549938599584680215651576121606414035738153630573266233550709692969178180820619509900865706071417251284589904342175803337691652152122096738844517059292915448879837978272092559042074870512679127112876723175853706796170125425348143975465614359872748827935709485961154044082892971099025510931741474806221903525537002141126987562608544127611349646763550070786942389028800287362149034256417816818139327185489426110184498018602336157926116214961280558850443093544717243002694096518846268989156727621376930630719228180794142193450594264466019209464542065035596242163211781226057961703803297191723709545913878709697352611219200640370239812757116970540511926014334301519555567096019356926064772527067102573687115581771580138945129663050590929906094055927532082976359909759619244872368737156000461477210012438694965444434265848608089616056944393755215694119563230750935893138331330897765423154079613696747142327831286846649819001604076430001434565064904343706996227828679683909696839067442700861786836062119813378077900817430003652867857091249656181470267354539061592148776861936949898334098382278189864108163989979510679534352720053529220442039723996405823506927704877592705243834925970058398406346542684038266097324440827196983458849398280971191827834218783470881718592339734147646481544768697772014399032952653481455336725493778361902525266858242314417249785245748152440197849495940133539052153450323893782655435592458586175069531513007155005153965381623189385807065376685133192037013729258261222499644692496597467470241269718217296098599724374166020341300148043358924429864115307458240940044321645745837404243005991272084451438825251325539591017990671899199460440302509334495728551088187257733429095795722037736618254779202478512477855617726906611275018081181800502423207125181041393692936396701565527928266572306979940616833435081026538500764097869269578350317196876351707569028840290240729804697979320014508276834334274200376786869277894456556769104458902188864827519398819599185112224357212970912811581939966820086319570078931476585173993228349218181186459663902815410843944565662621331638839757052166258713682356584960628960701712859162530123355258060903181439327503436692036052451366168161252149981124776920250799036449121802161673342271647363600916789990034275138755951495430026173683967363185617391407716720875125081442005463819027891224657737002752676264194151613319563250990620197397914656891552949586071625412863542030095048049655315255568150060584905940156145648835965019847988468608145663165683236225356753542153894452389779923885067543677145447493825381480202811836305047223650634715928127979569261187281486699929093419065058330085073851404950119726754620390152996361872705238840266929740858720987639716145491826025132171703867176184694436580452622597281251074529805353344364647931496764516984443415208843630348183152088021644432461417485392060921633616985660428547587441474102660073045140824053957705547948506992313959793509616787808472665633887462465600999139705498846314761660380858977744747954130737604492019773507744225442819514589384530555577252592913884052201584137293285672662949446105945224419405226345649294698816235277492301598567239831614754435127359986977728126588040597668129910704285580397220693845176980397192414830686758450776879714129208559689596342155917840123409679423328542610304661894263213130924887243811718216791735206405492156776936623210317548123172681992549687545432447053563606194813700479163311199347688716627594303486323874347864337683763660570854879623894455633958141842330894343746709561321656241352584096109601334961823079835210300500764262567205169630581023217570521306065631529282271076859274124835965245502959272704012508302219098965432140405485723722875952995078662155428490805774616123017331757047772187220779938345329354180407133444468617484661015500893407938476943697676103138874708713634260656870914422696260278665767146522262915266866943599864660692268456818364260592677183595830931628474813728953558354696918342385037218399125254010709766833261701549959177894397226463233632541715839268289906102276805158447198411894674971632568727830374496866099653608516694381634965440987899195077939527741934604652200287912757583049843482583318994386387323106704639732013491488450615060408977111812956969215306062859828011933991429791854534134971813110288692199261426909492138942865607540666931280100767700744879258403168707779334585002769972639916325723131045690538753981469660204366786128484450816848243419912550777754838102387414262804828583586478751445050930742754506552709876839729944977988732514875725394790580600702886293848544071410394684561883003705185223049264158217573569003248056748619933277619917946347910032945133026763330676866483078106030659717242347019210366151321517707085820212500222881767678143832267943924928277486202242310381674545255259071397934273686873047261267679856731063589263632590860611656780777982856179246343565967836910997808667391129551597678701619345546752702307252246337131667996722831942897918377600731156034692001913304585644215974583561216175438130771249855160526153280383383031692659567267182095658580684374092849631567385241065495794945133971288389553156394210020771832622986164446964501326237384475497356215552358079169889347847497348828928854508968036851841063519273813263271911259844097534993905115080974644188546809167487359101736279399566076806051997508243067348245359053399198335267952980797512270950906924122616799887853233333577187399463102212682974734828107587111947608931253810646251718783706670849010257070591330334225283877125786186864666314557478451375079321482303333708050318435190894471358791473776826079455523493429975575180708509547208007497465895232337512350518518467492832609785135239309666388323408115310933751180828572569221391310080975167932880475980289271216487755268936884507008126976166611496863959642906892325278617418134493167179863609024029958360229610272362838694226312902698372490165718319823797018463665033972824503529998455425486093217942518724682684721793850662920010673928025733635262159155635808800969699370220810760432833441968046052733894136737949177741199844969104381070275411236069649883718574404086716892935007907019501895088835374548834081545737411672310862876170486180410380743089621153929722893413296024027013365169255569545773915969751642080425658180740600827004194907517002881697773821295063625070566343238426663239228263600925230291098233951475011325031351736450738971070287976733744455517769065569075804031053434216190823572529758766350694830510392697813871471663169536680494884596924581193673612802671756255574773652854345570692285918102584716158349591820864898307418688392052305477092740644282858074488518564088606618177399648704352181761126254986157644191657452312019085947327888141939985860181546427923604050072592647397382717280864625345029757364809413353667441954990741851648230748359580883616071458975815682378243021947847807665917472183674126782462775390094390676379475777807640539840418571584838672408900170793375359560012890910547466304175204283095572687621088620913863594482244631473773420894656761890683738269575490207539801008024329396258465765999387578646958668667011434793955359172600862711850038716297659321938385050463659107090415183774640018928174950677042124417287525644426884020699284084880936126276677038508757114800845011289851010374101550733677651873667271654728399178970414978640334005931290092045360952173155056117752894540991622203255305163112506391548447377798475835388132720006018440365314213528387392932800348403099733016363000049158365120210813681299735708169544200531154264267574267183887537375256698952953249987825340487085278775912660744875593471221145873582037810316495566971076801518606643946130127530341257293627900513513811302078505959574691360008734656017751508550875856365725305999655615877905611584660127916637543687357012897228451695811902575372360475534675992196223793705189227299336432552976809667741709095319957561638128019151232461289041433748003126589600379006990648219979737514731204033385355252038806926052607154441252387460255654338333078297516953463997370353107696286352957826153989978387653522656894268939072052164950562750514166383228227458767435993517796501697453847650441982152717223494682173793468243762000635439371675503335260668643021858658127915653811936621580586232846009874304805123771053595213684333697683213720745449938975212857722822111241870956669980846373385686358625120271396888818683280379409963538699356343219053708066114922903122586926686691618671441460771070050537646215784522015434678934932839352941569904454474156072194691968751626608381963608992768556864178536701262396618976967605574012272723933903402439202988612216514215398542177957969810206875859278863365813223847996885062415724160398133638588531584617274408989150831756180753323921334529177481245981041722554923765492807048520872593300654634718308319340919530876806308141884434604323968005709582525288747185792795495301278268942527870439459626729551918992955450580723344051632302411264326233930736232395847207454942726325750958301063066907068840414742215194543022229381053390686094486318909229159075690366429578087300204778119319656517033776084451600425832796039501674042646475239378811441751738775888337796291882828375461137264293808815486512069858833063424801577356591565331868198973604684069310119685412700011170817528239380405753357018813290585994968523165160654847585216471976188423556883494508242680977734016211915354624797155640006158470406272229159409986583342773627878491136699841843305385755326807266191078977636949784648439700769205900156919732634908590605813099692242364985237726873590826722265426301642237314506479118698783355236876146774771746242317888316092515854008593905903070220196637145865446547406598321714652505221109518891018210668970215364776662941205712097441726621121479728433701498122837358201957833479105464100570816020143984828628397227740959887941595509878980017580886331628881319035646226510795692601902336208233499736551473429361482497289469332200309437752863502709802237224606232568862968251362982163639287057379318777495626308112226512428203474927555877703487238117782531014650368689306444110180346806931890286006236582819781700498435387950907611862345152833347375817469533352649301428152225511161799835939174943705399224376068050497884940711362276388295704340079941612829210832413322140061767548856518375017987260312288023033025298224076398793151688770833188294020906224336604911073242690088422319003398173048982692516382554581001876310731663268349545600043521758935686673333863091331229038202028180889735225234840451354393620549014987619908135962440031829005366259334449476094375359369904280311217954204694916448999265820166140705072186074993238832089388054242220045252541961065269495106175461462335098997637345359593105913042634854741412653159756464731745066038620415075675146157696142524474993526163061318382228629641451851858731798456413030407040168389774475805533848508204511029143431495809791988888740148679910382460958849439464672796816466225766158391744806615020684475037584917133247227879565111788722752430214735365696603200248855106704879119367228855641523409454199711213875477031833629344149633085005628209782826448433271018072747436990542155836547878276642663506524991085079026693247935782023621545335734390354040312308938143444781467701195009277352567281415707274469572416356132797014540459361468994592407710847806296448602106316224303727063391858659785783120049809682264820436160758701195017378838476112509819505829944090247844567540025548424562863692319940419590253252122204210384927827128363376072535570675644835595685726838859065693679774765787637527676758920763069097530933077799710667835530941673889047059718321026813516064091850529385906066181159971465485258923078070915717943151034463516202788177193017166036319297817795298625275537245352394178093763790984355614890974093317660793074776233328847620425720658265454549450551120786995272871993410515184497189496404155298461921432367318816129587453742952658413570119754461441037161451239638928140223278288362829827184341462143095271367615254033239492955477512654843153740616123877921605605899221107993376164831223097238337784756646732609147574832082118844340983962322526008143654345253962394719404855422879903664158708507611622887274359896274108898033082284549831040619174001509636310295571573292371155320258707845595037444163156834888346875616151036561159384563445849445031992193098641111277013032426665571695545387813222487344294734714549641687425439860893104747151017023489810306224659576810136027528176970607876141272841687031751488111248957055804607386582180194422024919409543707122337048629365957308018587077695059286851989212128592548256059294839503850752770175448360791009417096069114537233159156791240516332984531863544282891370150449794478580234440803551661073634542779101105211498952249008802906831636667596025001637445881971709481850106217577077069404987996246695399518259958593176252377557813405169935049025282538650600632302504055236392454314255921058764944478856846979771744644414396816179500341106376864599958263389392246110130539965361704636553414060349565908346351594352831245045588187111491168216209006400517583071568726301782130763373810775545591634241517962511511828178443656978196758533079387379815124557596484986910949398247241528268470622635579211003777815663264373497314189173226510995222171351295167406594873031667128875595184329392849900383782862597802949530650105842265634863367975196837658864646074755702261386047860561102541107180477121686935247065074007786535038514477348813877083172420694786847468707975409377317041063216789072839774139521471684166167123695499526086905863497286037902479732647973103970484939133663277559729699958794087869433956769933610670562036251080961626069761308950901548377385865557089116153070092558475295806164207581459778408817059126374855896429808954079115063352098419550194676899201657803755339089437954922794960065762852044989528693082481994683104969154930330482632656294909625604352082639497906603658843051993052937716330794819190255226367758226643473544594289755641551507617104498763710351732968215937032417496210420531722158087795838411489610220295454211328000513426370956516883352274632496626403084791302862380393699920376318841103174516417121153915753064991736207754518828604895879934983668026416685725785367081949444923836926587454488346818854736021898418273298185970460621099932027914671835359762197241547616496156715976235722988739691071092468566311205915534573500302130470958552276396490507873850273283430035509377988285376927048681963291023517970276588160195071571660003000341714156829913878702433347566784466731688402886308300656176356305715570290641162306719167846224854356304353081522801117183153120493780019327529549913392184609749524265035346256510824280611859864117380506228515753973598418153185794122323114363345269876287357308381175404074002160717132848866537676316631386666189157213900534245504396785577184731660682420357079926199616052546675026761921942907671214559799503841616806752656097906279688457872235886046202814952439517849092801052234468952540182548996733966260256731300678551884020912824800838147947542625543860515584120753415175564964646127307624095611347871276613050057807445067409015917463452663668659401204322658338438337395521127123366283418253175705109388586982190210349271370354744571963134537735460731613082626863576539688837748574752797933690322361112674650797712112076378335478203858029633599014147161440224945466361034225504476626449770508798328987771514302600772937920781320276941984830207820879265335186785739096369160985761821948734571643140935546109379205173235118193734813009119374732429571352619957691214034352100549964993574274650441668584769138340471643931930141833071546574422387248610642656306294347864740578503091404361043950317888644512997872026851850820967122499791489427960543319690630344559028171970114705101015001565390848681849373056350677748023209327195965038941068717135166184612957069699532501856937952163293130219921187263469472192777632440941839234186466505579473858443205452649315430453561903666823216166358170998642539554614514737654111273686917333834249845675082868633532711191550276863958668296727452612069160916195445500765781798831585492466602300456094014315418989381917564850602514755693223534941267272186844534493784975496438531980892909998442848397803434708696093388305452225210982277858775397500383034732571550270527132427297880321704531690011941157999482471032566947177663066702075233587789463066641776565751911174741225754852986275259526164982079754784291803419713226048836145352633109496874370057980609331240135174400686704042239754366922132514746927582421351920909526651109395167013437856573303277583186012911290771641819764758088305618042929905830772687286172773998347313504872180146129150894620457924695588418964871519576490338115454595225538606600841274670553540066301688191282717425098305002352310291395959740184080229907803947172020506556845546371421942661693257331763394785871893896362595323145880354508941143839855803847032811623027555986554822142902936910210367197608545332651430686225261330979586460025201247355986376084549363319603568519456236935043371277933708042007517982985863012992881974687699927023663680227504812435620286215435917273026227156295241538071124183426207681072992679883314461934571317313809964315315457338821991241383720945934153231282961117673919201777103615191785490764797394602711507964081976372666809158367550142230350144438783109720894365495717216492517111556365306072144277064491425521134651186721318995985047292341110144474469281019151115101387614417797728279356041770179999355555153622383268434170789935612694587047690802666233191559686215068188672424715521662967607426219771658826461763050654685457327085038361557096562136460831893150905160554919763613225480579742516340786195351960353165883978712455837504203764605386738443015372219474249914207966177884277564842084384206408701350055635541884379031329387465857862517493944862593480391156014516859287108917479691194873247857799080699354254860188198081688046463359284844055147927790628127468202433494709768734537279144595893154126597878542680178281581726155526443174819397179534690387407091720925915007585637829229950364778213892053164201296756227063748382762852068773770702961901431989160334554543990044830193309485686190663543422587436835989569680639724592523327976728351446787095819386471965614724698639771636205847629999283526838121796734149837789959162858864086259918880175665727166004993717469435376405806966290727759801419833158597764327586678155409021829970535694875149148628252118323092118394541827701134840882213953806953619060122324722573562595309975381840839991679863593768693039798066252534675085045989973347303299207074881716960218779200765719404459788798240096250371186178404349866429212082873982039726274032630946484906753135673796132952926504725772456237588039449589444911134443850244990797096657755642402918200521147946614244707561851904003684405474115113399485659746838112863609469498462795700663075900448728326762591147440597092781171078336263066515064140347735663436797925879665448440666203109139663764287791012207695946876455410042087863463142783802816371938781725810938506232910670882836964026234817314646180601673561080358748156905818038728976659917055591175987554605206049503462784117919939694672361312737099740385412218125906034614221102871412152336330623398676200412567445967924420801609320434694378642906670802285323605407224798703375645801454393413243703300736940805904503697340127636365747176942500797312465518099220826325690701307946053990622962009412704367718903401895355137091722843654809662592969513975460900570519493663166305953731737984728765018036708671348876155774385597034920570401107767655845949109891319104031332273945398945495251999047132705032231042722630862281458350470665795743999250965098751805311426382700779127611406664766938471741873322942608489665181954367300749185925076186234122226881617643251478357019994924473837209571731326306117057610701496383848939791923020438218238345310778799216088435414891836181406459100535852105948034666413741117118806322031298497271672461046810763230540450376774752095132138858803269744640601743893348494294523199018106093649615006039215663848950556373457467278374436160400090581656744186047011977688314906083296451224033232148734172812686382906541243668601944206310189224778832826163693739057138300035259180544904613015954841329048304454282766174667814520762933275371955802497411559114775129856951282353584853614878780894444948654678355873652382517463087108256297865728811924223924406059100765846510731561885571339791221260442066596707827144889461581901353744282953196087008567167097835572637116308040787236986139504210432318813653657227562237693628618094652935764991658184538115590408651312267156297986152228308271387757407930320211684220940073116740288674358984033124237240439317392380639739663439896579315994519793793016718031145348756798468810121122780616433743914447931515827263474364902322431744378595505207203352684659243225633100872266951841249269918978784118691988929872922107862378031317437565281751578943858765036710587625199718952472885005978750362301576522852232111788573343928158823085032925991968316749731005843902877959365424162069395450636266052283265804118603395504956360432385794386211205196031080282961243686104669013449159645743865084474866866695232021140807802895160751905611826576857267821286105799570166162600081094685046910336315216089546901175746962891458150467920367068606919264800033244981113047727497352963543263251168605917081311693014471868911405300814537106858463800107569218733539165661718857485458864698110937137727248920761300806305423030835845495921523604943997715469605698795329865806595597563176766866919048137943024222277582288605706200044615340401303627514085887569612611519455444359526054071059717572621944204632130264599398937664412927630540674541893820004744634723552271669445168856838507332291546440350209467063527365633116225123198247999330561451831456137969769601232664136294881086697850593673322359582771107554915552910688306279366590614121659123157366333975408582118063238365378532780511037371815537391934304823370522681255924748515616289851860727785330013263927166774378453352373461221144448491490510674406455602148577715734819052663776014245126369307332600493263844173559736510928430240989525733336295374454964381458299793223478038358031132291264871706779432601644621080845456350039046229477678499696416258742738950624334248939359795229382612614979856928131428118047966955055818713960273981235779452895989715338371291646738409477562512579288535467156514968701383458367184306433236848910248406462854697107510099044347099681757109572308521473871367440199936758227788758689682810404743822638364636664982449112505031834048347084499866799017366896155246438157786799163832223540750007979575531338808531901321329485873333797855493265288978675438911067855600634649980176963666989286815149674972109474464914399155157834378044903902073169218489655116395957782980089962655892914136869366605349025806464658805591457876418739410814606751300472873364783424132754505400850659460601379537957319129757729296109866299768960217916838345605586483634666793513735134582511633422558216346431811589067893811784007074420501031257897715945497165898558662973066769687991754535465032900491706465493930096039911519539461916457648381603821775104375172742079259806648914867976261719485256473850547097444599738947710296178662360660490057712060367131033200517401527075792866435322922125937955528397854426074747414709803438573419999855139620153373572887619359103048630155918159751384224090601280528733406021834799177251672985469683518263681320793823340409453760144653453267819686466570144443975098511429336357537350151556836663207985762069873262390656138226040498178903339787949328096443975429613501051036684026569212435725143827723370601823209387392319485581511416345365394525712719980444279886984310975911378896010376586351598922909831170672062227500860217017319974594514955228468329334199008288772242558683034863957316571551013497432797238088371078689440177069259178122422952982313974355361373869424083655925845703522920104044171159701700859368258121057881490648147005776067758813284434327038903100436741281297075362459493505425971089232687590005781733480792149367358532189421736157272115912367759951988044793501125445818797658526934794686473736754698327291757800847068777391003212091805047239172547687023997553698093441362326885435198264414786128043679258081900724558382482208114161500569848203259033203435013345190438667700603601664806191804838604016334804174366364408471840745041138625918422407034959711255086246339390777323871935584715587921971908311868491980520797735252233611992870504572214434898915579816649674471496777595167547352649892061952791248786646245087180406342033324040960982208463198233247269375002618331306370560147521255630309621750631015759284312305400690945917560783779395060426514758757372611090301466598705386912745420304800420443378403160371483852954049617357630451500344061721730150581576311212342778570332751179495434165873507927090592653549385288494233604359458207073283971647025857746209158235216512391212546172391518969043141564402206131410960693934688838033185958457942653352909760103928779492258551068553997800842756374130184078698699589467264758003944648274402834734241962482543533058841824863994516687336338276678938704802463354446293143290696699915642614464801611122274019866010939205270577252131648440560506396429093200995580561470742017317652197306693441009863681138398904021869718603784516404042963530982333589902370149143896558852280270709679888120736697222086807744568966587554104199765943573224987691107868286952416763657162873805527265935642705098373189425082637441444355165831662044053250293808564205880326831018816613066610877140950055692698362454830502491937444032450488682707631139518942030565222436030226456870862543618799796290964994735202096972917561050174009014713535591305013058046351292177711002371236361726835845686696387649635372070796689388473481750137231363869468940434558025923872401195146917946561324392286008522776653051496932112157768192119326070264374534901070185296007830886580680202084213072334842978991360414514498798870226805729949317656750304498413536824255271030666083154346176787667995981896882252662180376316223977219241802896757716949944543980625255903643777837990534735784252228828741654721987327163161532349063168536378139265605377707708437380548292297434092069160948004079313588617615894613860733811885992493666861695481486747383270719315567279159060052808460274277020720497415040607977793148697130743717478672468163722294537552955851648336474660442760522525684586362313417791997901034280790529433990343197538144116889124631065719346919866184448000934546892501930814285674720480587063696605442574167235235294647694520961114223171714329573628107554814617619931038701356663055110158412780739547767034344541252162534906590125072098075539200081807604181949622062804622833898038031195430365204984860569032256006828682352981222866771196319915068826444354664772649190910969346578202997755144964982412302947328528932223006046888020194832695099424950493369617204934976218664957651550649193891999933269281085064619632015737595546788274722268870020184038316215070600093918622876516124804233731848503592400094022275857085766981501868422624754189305732852505169748273170281489298058129714982939023858646567352135136718892279098167704574056553935614068937828568653735432611867050758353877278336675712220829196404728891925882820282102039298330650171994988625029571306422451929496733443841182838046312056519293634397736444716509280588541528477012686429181205482589541045451536582777455222247893124071625826664993295079568109130956549916761052590557497183602671381206152176712763847972124896333748746431253930786423097105653783991160372317597557661020859435084175043053050544321872255068144306795310007875907538510170089391893813854206198653500653816137301914333625221773038618521140217994724162317061529786619252921774638491494347739159384205250619398155902234407186359149603295718770908318713726692834505737759845643698753722583655188370883205969986179626991786883778519816949797522682297076099499931721121960807658782489169275656607230466997017340436024873041028217839053969819561426245520992519548172775359935321794460903502599912970988401281185492459427024797534120192138894879894207855965186721658620645804857620534825596992577728147847533399806478537776426807710527825317629508423447715804355483375799115221122374565701164307418646345467099919607414274687938213888411161165137894457504708478278371592063741025114902031347967425769701145792455119649671084556439362037596671300325483073742811313194695030607437837070729393193489962288297715742634813294764119101108511716957979051093179325326830898566446810222904582441922754659614419363188575121811512487509730629994751819524197559647664250510015582971207715411414028796746018716994045615803269857283185153595661402670242204628135503395012875464818594256135772987471130069648574396602661708695431403188607491515300730067119586009156933985002617938184509798879488463146399889893124904483383758362783509507236575550996800113441187708043651824532989296946088316819615116302673970966410554980294382195801869471944692129683693849640951296292177260977180301731101691015378645072810974021489976819185731639533442510786303438072997877665876475283514007966791409985801884764996210501218654061082558390983454658166138530018307743648704734808085963112557831149767772274522796491632951980283700219965530026390011177441471246427724067131588074660022942758702128431692644408814685249922533152210406297307730369571868106557284374548147820952635503726669036065556035394479244113607545213281056072308592231568783667899955578969154216868143610643876748814911870999730166713665093617334321659315323446304998123703503594208623068058605637959454343768755206910840633245193904820549645236222908550626010356822236819362414569904066508893337979389021962739958383389477897247382449905634601698547752491599026313215175067995604890016300773095785011230209805402392788889465912257892796835735180190138958889818487178067719160153961960826698151377324802685945538960017086168466516083887467410863280560190488029785291942793941517414142428704425110422854816468333795340647501391326641298460382351711931351883892764197081043642723757631012498587195361449656991382403463357431188323448011189420118172610310130097190114033799761903673465385388532350560071202850061736715646499374870319867802598403829583739319575156007337942400450100644480906528836228582084652319608646790616029303554731708976383021874034261336777642680436856006338375954695243707069553904996370856047749808303379900590210863511241349125204179220832615346087168244838805989348060640008595034185408201338345546894923487457707663102354731420833315623279678814728728268102494175936106820929739534942335889946909427211647146623537941705566970084015444952474797271026602743862399156796316192070510289143339150074297822160285261353099904815853371734799306609706551684121099102231095707625896836974141222480627479438507258254217635342739737170129383578762818102473502432315555925594874775969023355902247579544820849235530932172832890185073390014869416604530392620222495047065787098463322561188617010508740283791736594620148583589173495691383699023545161032828313377945397734621142226043627489834628157605559336095892882755565759230211226190270107549777979735335390061583757460667037841249089408207607598683341450618544083839493653679225374299767648902546368039698310975749841858959021896566260352592267451885752460003703206915863578697793955448073904063601393159620710089481565072269587535893887853660460098201188427883819500559499819475652409940714291460776638919646632412833773632311698312012049946852403332410660782715161902190426977974861130186381481280252591316942956219210097173673060543601516866019707846767963942082522317599040023418761163016104054378355321534180209609573198142958011152851431144160433203962343345411659480243194893077423865061927605850621327814117776683032273645384802110111841656670100211856255374991086646570549319284505956141300401209478468733939256757429081820541865836027797684021858162789318799324983333346243180334200455117435682324908990994379947171110137352916954004284011315995008755559209194857863036042214484566613963136240220570077745323733800418385412614666389087199455810894436011688579297130141451645820025150243065535931221664254257267336903732904814993150615173429222231698334782791045298613801971996857231250711837835304742108068616275362751336207906932788764980997730565670762012805477532247582625192420572003719699594457552141697922637729514203550380833557994834607461970217673972951358910061022789248064766658140339320787035371868732873410968407061496114670406241575958558220731908025487147434554466335160961603440688960988812736713910916999686817682743046444819114081856505062008064732237959255285839821301009377951476755567220735010924309907776581387349378720483089966998927355198725307053478188425784977239228810668655013264544106809577112128070023213090336941874931452704189779900371004008603683744642264308002909524883612397882301112620317464937577134713568731527193411333692632828833060758932390541395400256514106644807883741788050275057667309529157793231984802626644169383994970777051398617846355589713271580364868713635458923601283703018420636604455245033561197528246413322827012814127701479040803123208970451188355252349950104521522474605806620127847347436163846599858405263676788883126530047430224736010597561257419373745169719994360277125112213979469347429796711475167135012832241379767608984589831271301363233566440435695007795880181987087842864349637048230069856151632640799861306680282263198312571523929980277126207980629430064296948079829570006713757830079339158911212352636384389779169946499876606335960381982506842392305650143737839516778688397707397389911760238766095293438068625553854106958391111242506135110543387029243237110659172287268372181425876657692747909379633899900573348394450217791273154221576751306011441544455037417997893723157646476899756759072464570751614023653096928529274084951177642825315489085818252058314437152901771802844835466191923720688925780170101546403950115821234666507289578116525088151988895568380247600115987653245697536660711127679041383362630907300209586867847649855699618197113248843018782790286409025177739762038970225607959824430569692247636934484488808688214552995175103209550303569103089438128018759818503998976540322549120442040819785536070518501710410312066009879650802455194533032411264681337069084899763689183604546371504862990027159937373242035493473025663898742847024941104658250571871455414725463347569574843408473795176209664146584671807791513520170788920586444732126560118122848108887983014664391736831210890066975606933545058613014698405311908478624363666485917009340378763483270331460602836114976253565177527627778575797435753720703901623885335494627891547528738127113090639611429531073411116650356175381565636617465198549732620933177100098908523537567169422050438354379411008384676867996404221569416566883242504864964617579036508560173413680347566278186826489181380684654452756529886652582383086044407940193409101380087197429952472476567047285667534731693713417757529055666733482364162907898135353616429802919446192636442300048300837898698755981723629339796525530888278742522845347964259204809113834759208331748864617768785910212304253429328745916061380175158298805947413788814759537014211907030830636628860613565044926420608253964301772056635049337248997153337793922577709287273619717941344341347056588780277168264444737126340998696267497268919978877943859812030235896273810106736660166542823387340505180260362935327461183435521119017016032317857533907903319945097865289851313568792116191608112992310765832918152319562448573528472843264949442063155389605344603556945332244516775093498925056456394492207048501409269665583288726413376887264727380805697796434350655535611185699651960277940605330626288665818547546978929909795028885908760737973578538043716027412195871651142257661878049366854127945487268242848927803535995933724122883632743516213168039194340148372246834375500646066355934207200690906345854769715943652085545590831173179232986706936647693876603523591200547155061584676277598602147892127593113785455049996724814565041453585969249907416498135302528946097573116189403360552596610926855942438562921603310883808701146161956096366773178737286343999157003825492799451572321864117366053018448830305094504398401482967113356404135986954699337471108000877069662901994904214775758869136147669937807918335382514231184413867056551303089206780330730012847759118448173472403335132481952417138683862299498224135490565373634973141676170372701329697771059615607185836758445693523679764992570000785706286400937452772782449952342054772027692635329062831461256239950338514100225990713551515368808730486410259249229460122100888366710436725602306279461732456631763399671560239301865746134640572765050560969175882468549077408267552341793675335184196999316149795733156555902366676098588743351162549099365377315975148751242853355770034659419385659189424103256230237078150914766704149060565915894210043413189930658089571404760566718352816419437649221669950144208335301965350086024111834556755906102930187474625480137554354693856303863116911917694945970542397867694669729832695739589326418582370869832640234895185792723355839039477280207265376808657395720239921527801511711882762540818464060777284355502675598028837146050004063629716588089232373620373579506749353973913976675147225897484301411664793981134379635498031464477300778153638344244938045963701688472230133088027791288715442179537046701222016864612236805373538610886887971021812035529657025401891123587826756786712593096812958197477700847492590014189970633822880000311283587405619786515359483026843977367207809795130786179817113757011352436131099539568683487197112508481964357155710689458955926577721550665923605163511524002366956641567447038432637348890512183359327736476263563004726742418615211126848159534266572262297107726509290684772094975780335209384297924277704878614378182006495843319258945823671441362734393502608066484402204883496015246793140976607946538386167452615886410860662542991270555782881541036821517434223745539451097148063586379890613534697139121462015130258255585358794217904698096894825914264963617387632915214649810881319832440891325827733870987662950534588888428792164133877437983093422339853473068873591611601640757327601213131298632249835311574225389064939896841351590785795421844958454234953278407502420691127613588284243837880983007641681537826150853173117886994653971724573120300308457464963295841062262492976495568693878483492870900695459912078088939516271549205225574661306740218581897679348614856604363999291839685685208251813012699874577696673456514583452396057312413479851587595310418135958959798469522502379463976696820217430395796292883683152140324232162338478672933481252656321620920685900211491380629592812034268900408827559425473132908226518414003144251184825201747544319971343053929921354657286804035335288818444317200960230502472166817715862051013478026576457570059909625686870566784958232497609500945321368507424975111389195623346494899234611628878440086893426718262221256265329172754398388789655363332680766461160616000454715874146152221114067609490209192967752696826993825235325026918097595217918244710666691382232296901509037631360332452444300603775365057617653313541919897145080430446019905774458255230810689377361789631435349000051800297479187971804735981630348685387300651380972727089089432477678977966543702867691634289188054828179019265337764066942597796164165515731443459563715023317117573021358517014760410184332903392495311563987605355457638816125723183310091274270005837772761356078100324733449000531240941454339986288167722494764993334882381177622680993420384250902968079974655437742101284496127912081763835064173326406442031675459471938377506894091147342330111213191957485627625288744752308016645016799336219843628342518054769985581180043922912515043577219516926382128568110334359280952083626890727850610264105414024250845828551405685358101256377886801163889755404024968152942834876982102609200681209393619531547805686398912507719425356360789415845966358966650155590721931799140080812919668274387342441890880641085042618587876548972367615229241393221490259124305246302446977443669019798979284770377068436311624330396467454058108005478516460983780999475149603663505673205038630530522305698305557320218340695545435454318151049761994916248191169605024926131172125484969529134646446794631263421636227524215232838110479549903451886473490506663805158403212815080080938823795246791435225210918161446832526994411678781216353381544631421668054633459173866933708843245759837393441061580245836786692398186481987577449337952396862620036770784816388124662342117728321539165523036057495443167566905023668408137013447407157562358752641422597811385982563624413014862451621916945267457739666397338732896841143943175791178197341042977052934120506019102409213451255293962518038881750173997602877733011414402070179582612633856823873228221349649919190585966791845390326556317352085691888066735758195125354369416761314660333135291647849697827237175822995904495411280569413306420807836768903047661070487911012227984410686574963875890565018094765102306981269478207532587468761240889615891200358055006916747880879724757808845184956842334708220878447507728403983036402737787443766827183787514222252784865369111750818312849508898917295376599954536319311590467041235981807483419925290461007453733234638218199398780835804443519789118263405271540623891132975639994925106643176996575806203338490502995349715369361765682565729064144457327953521473144912096106838631059816054409493372612689568789241884757194650168319222578929942252245430322466008067731547184099327571219513963654610829466933762728170666052532041783285197457277675183774188251199186215974847674149760989310549761030576671580475338686303677093901995194162682751319303567341120382773328245189232818362683906155940319459037947499517452442182732408685208120025966196125806990447058917467804067413594038409702141227480698708327407717191720485500224067003095888602569042406490259698858980642978151753535648507091397717351854717261055889706889489493590158321846856239262999554701861551051574242563995849904104731292724414045743545029377960394925146829325240113245223433521216976071332429769177739102368289181450917858469234087613118762584423499044936889274780726601889562337655626643447954496599499845685396278841097172335034288390221215045999870146569684623526436801829722707847587999711189358436561743081271672858039499624382544825095458021261468314979559270658726740254097603318096187311286900218477581772913783247919339708908298108901722299417217920208168702009961911363451698223889179275007716544704520073203952165692399456136715849364625178745362074814912206600974830933824856630511030819077657247791708357930466069221378964827087515831692032627912078516259310901994647363568963014147561561984107005868587172351546114487333178192463924719819176067022155656661970455410047494656882814704022363907594064742818601026667064628245617059587908636365950385281152894116898135371901720247809209079438116767076088488142204655897939382826934206032139690988827197827626856766838127569244907857878249876272316614826780228364200469469537791278659565938819128028350779044658427554932651419415616617977141936184679194031670292229339047337513987218959467890390344663621578403630802522129897262066166942978567984080108510546486439837452862624277260538459334851186385438116628365687527772006844763371643251217472623559495461498677819725084643586635871184570964245796195907053697170998198573996166178477359360162479113540676048803328413361939118806084081183385247756568363846040699257704164422929980717217848851404829424635619598405481990052668888309264130842776224170473938282923183616283859070230668762526431884150152725065517071517549556117981773943080782000976597592451413883155248608723909134526665277244920626042164499054364128690004253831583315474765301383116795306785202591517787945719107267775315327301011495071433489104363034374690676618541549752148178122431335213972893143487355452443218792662877011602236133752986490879570450726247353022300331496240269124505408420148621571439054143030582357780003508104811854347651672807551693511861008675288071675898502749783138618823367036734101181808644542197648238133328832623943334113425164123546423176797157865606907995322735943422887950417970471454804465343327771701372707707142101536826784340059188384019362334894560724105740712161537056807863258160879439788595668426584778194103207316077568873370924339059827670482735129040713980191211490470221134037142245702559985511252319626986200672018642138880743663332173871239306729401801411991234944211827165852987422877770933800369554814724817057579923451832929024972595155119949358097618687863219109814771137294658023801788678201534823247667793585213245885799218893605952434440567540413655605042077552651103241993573055980924250046431679886764161908609733096840192495697940400443753330568775355821903382485472595438467876819310445838705658203705496808184690830025322747987344758014532662653367471820849263760862857724852959536978786770412278170774538682547338717804457469938023457628747194303759268303458405130368649447597563636697543768761987443042652187277250950465090635540842111681288486268123602992823248094854669057939055828678479599121270434537592043531882055358616399627837029969183905434824733227634004281724944568430503260704117716969087357041568152785163394781296440822183052640660003875200540241451195557534228493589929335739876831317887738819246374895014209137602962154316078670580838952424914316767224060856342555611884467597774286047520263466334690296131903583295971689182333004810315056414527439947534896589743049924302789463764539683618991342656137220827322235483353888584852356650037001996939738065284266646567812192603337148244498864016091126910065463257549077367668123822103558553537027627935819720946378864334218828868820601737071715182060225458557373967774386025624495417739394455437667037487578292467505467668966210840755476014918840044864574569252272637295097079382302719588757019003402196869501061401775939997108427750242797447095587074378070291063398615717701838102764359691146449190951206283635330926982886083983650199543220063852576541287994244918042144265000520236236727682013642275285677539548668024010196680095328451798645143107337874614072137643364136456163321511001057347873271884510014173053410358417976787977551575863096469109137658041017955815678169746292240597150043163539884673372696828512808631676380513235701079467548533160638082080465408170994738105752574961058564055793448233360593538711769891792835581747906988337145068087692130532491088309019408099392577046523667243318961697383201425155417021675734870790599200128901639138730893087231072323082088484528351685612845821545209068679204701633354696281053818804857626862308744130889557635717024449404025654400772892066115737444727123488506305073523193733709061812382310609458772186707244143503414198592860456961813359732299652934656950088940647090309169241779269521760422217199626215609682381434156594197598475358714663782309695761212053444985796698030986121266974188784614018357762306841212797891308893340040889042355127671826332435190498320488180464043159768886785518566257460630547398865696906267925680848579163664532852826800058741808003166877570324376490871971088006798600001325734076320617391832479818235783813301039596641489677924869667338856210799498241619252880302743661948454136310137660465423945276490409684885197619204696803907024718709242549675107970912307396560076516126520641996065644330056962425529067472661564205285881620631159306106866463682429246680811787400363403388932859168923116894637907307069360360319521079684803563444621034343793445465695945648274999567082746123969727777892810413935700889188906348504040004746570872906817320751785411296311062322881371834347176921087535653942223957142547821055052145134755624995449030188870874324704999672253512552260062082343973833961860829741243142692823332761973648392574746878773165075732831778513193917446779404596499804803841912965333917694776502897966545114243239713146504655064685452073452417242177030740468591904661059196697816369590619478132419610335061350767987616044943541091453419231555320160948934645740550897204860454671816704714846372316064020579422525429692830251562732323150917627237088598828282072658535740718743145064104950163797986056890452024855465333688378802307837696180955547662121753119290208077113130924755456860601566981102488054997582036252930842201287590607091179957054489815723534600119781260858358176173139832063416757971847988217732595552953111098177056481477829238038859050536557214152044766545335744542533193351324039535075478956956032379691584639497413447656780116422856011130895552058306207076982832124570308084956083551315885441852107756760023839409069935169010646702944793308421243675113354522178721579471678954491321160801341595555103028663344863044550618369336463368047723081961618299593036623685333640052746133330296199990182759438812394351187266713644303505926099050490696322379780950465330504199653244184584939312824624464112789306586192948073758195527016292361089799728813954332720033610360989660070060060086907420752333801678680973345874647192706243640739021368978314629915524285233440205801080427742595271060517619081394148305229715584684077710836593838043327865386150591576591095916440757914015935413425322108948525494791941892527140860534163642330555920402482843002846747303515841575927558313745166634710304015472080673024074267784303502442852346225438352557330342176338942974007157168066766977975176425575398409108560405402344184395285018550859908087250022276472163590134589011154937089589435390842796132657920527488311971709675336081805004097885512008560720907521843558766270301373983244479402817913107285519919443000245279921297628574692468091571935337004639479138776978986982309253146835556068454592642938296572052383716134653245102156037889228078221796182318856996266668900596147547494563665268285831727957626722774068833262643778169333594502476444886568813981761423837473295366195253910078404821198836791592923504229810272711837716321030360408254585127848841192571579017534998063132672057060782924807525002709462119418937731880665657747086439728215381052995265894067178138747044217809023139273233172176292782552580183215345750774866579093787801871173737979934016688574195348417220163684818291807538765260494973598679477727069822353508920011974148361336060274998316993735832063034704885702951198877548110646967578355130260845899188363056894043038592239326320198361494769078088331700914402467543870791113191429222536682665535211048745635836355549730007594529564223928727772122557685260917138845299339953025309799805047534296252452904320012095461574460172966842825547955961198007007681832378868691821392051489184263722030532145314127074413412293380233924052008790932551544301252379777240395159365361954939143417225774790879158161594888070215346441944037487433622940080312886480010156589183445662484917245397898695266912759382744686153698959441871969476388857088646139033162507878620079163844826419643327771305114957783712299471585479225353665433849738161454680317146351581064941337277181611676254841473108499570762325289046690592808222295398336523572130440110164308969004263480392093721236883792240428724715306539180004533035229333896923954284640151889684063935099130922057226927195751902604110833075426085540354307159448369803076063627592562685667908543458604794848260452144887807877995008362156002718896391164034510497197843954896669981472824260514910164891728154192977236811795958244451639716618428064739185077045468061973915511790968980259913536714057893932081530049552595528131547573357630734639873771572322050320602153213492538309071745416301614974037477144689063691095601304803600192898402112288242324167253692423106515502448357228752335122697697507873383868766130876220565433885062400227408027083581431599425603401632410626908285421808828017224029528844898785495611223357495310436622557636438953557951498487262334072803570556979730222846378826395868795730267458020364999373262744605445026038812156896119494358947828518626242489446746944794053166851400479371334757856138419746859264818858069048133106577014663204323053566720658051713187111846283334059263098538473148335694365365692644484213713174985307042930245304136791315680671933359056190029197392666620252062609524672631938425463684930700291532968170387918215221229871899764319945467538301576326535107836880425000975683576268220065118426145118036602914435337698881440662010148775469395544657042681736725539956008925550331764177743505867305226175062982342406370932842444566266742981083945989599172199446044863323244245465899531900051637857032928309192554874492390881631121126908273041862636749056753424072534858308727870612852866240645577517934306316866594789298298685969368297641009292922854112131455863513825835348066000411523443406809233729477267749751490508390201321079332512249465179325269266769161499385228624967196295708639654312243285638893624425274362713554168919778987684864044637009121652939791355609974421298997888532115052780839994240281847362163745512218563208557529479912605272043338156345726933645883022012268312798521874542333917585306005043004456742416310177668954486676105472021431533741150268347444753543501025105859019133622846059520550920761145198383741716378365101977713648450317689888001396462858157728222402857093363547647411376509035604607686959447496645383618925377439335185115800987504434849899083593299940445350843433250917378756087674634198276754608821014264600399604869561528812055320047923011406365615960121076071308295903457775021753808617101510066891686260348253868358809388609213715189546207053597862352679789073103637425623726159405945165718572200576004086259816100289149374482042472477042394546290203374236184331507445336275321336083377284389391239610340112796189193723550497595601940765119958336168885428193494906568220746274008810038599584946401745380183838895241780791438148395137010800284959525981587271418622780417410397195351463061812724043405831999670525323650991976185920349923240466830063058484529252308773863335250868055760966187926227610406144855486411779005609865649440491831384183339478843303992468050487806367784283448777128427418517006199927891205547673918115931301268411414240495142501187421347564720037309490112335487334757093179824593332386177973764070592837100258611775354126250366434040924647209159949976584559418922922893680421898277725187203635846185068692591359921379301944857533943733141318152621094646731570757009390560112286914008667296464466200233320351861818341664447200505419694164253181398569141180643464484253520770879466279397783105273119294447460027826753627103952333845089067632125396071770080151216788493362086986336360823913915129663048541309238764748791080462889242586343147823399832357192072285493632578508565656408254309398101177374994842880159881888686665740428064981290252527911768331311224414851922005703463796312956693728816212104514666410443012939571416815687339273829779045643019713865905547504110515327585215352766713894923130588849464967236219973446030489936473692428647917120147100114693981075104947699299559605837232888667496899528704115230785233787240999793161825962031703851679153997540593358084400523798648074579547996517929877621242344882463423628407619740101099166209002978296098243423298453889784823504847133171249474820551892938030857866871862525054670415194147533433043389026465356557737654317481767942090604418468786275502610409274559012136928831308428949139726339189266902481430909513290350490105337428039213335397158346220164476145439914972834167232876932583381560236320255124879366614146912636085461225919308155826391445567737167971957184631026209597691701717322526907337663189433768283089749333211667394903754041108056512397182661841974482351122614315711477904384590741563084236062109599752280249668734781260266702637700797811800223247401444784019140458767918853003692172563774766194682858982828947244191505432616245180989640014488547081846592947447156679359502940405276962360332616161840229930946311624786685604361054103957533167749201201824974727187713193839490466631873406623344663552740789234037799687024077565706911695352022026087388964743081049947044212317009924079419153195837659102957840477915470966419318566344406954404309306627413819762271207216310082108086331190910542330594143433015162751821722876192609663930549398262468246718015668020534481674797489269727350822070285372343238414365175354381274914696173659128503887763669754450965038084955973795301014528704075730932818755910870627325733330634167619456480883334494462505040389155001219429787972554621109286265341271927596356948010836308339794129163772873882501207852973443446733870718282490060022276110213504412491414419473948331691920638691214649575960077172816317872800343682369134625682825081380779324693645432178293148357691960163994931216775375020896605293856842883776126844124286979986912465334320986535565894362892280979435801205945299329485905200003942570581417094390350435879685197713918681249932468234702018186244053805752531425888967519271514076457006073485122369377863410638950855376732351950456947263624782589581120890269875691506994404513312968094441024446403305978103793795738938474701628485795296258478232448200467333742374699881730956308950636577798723918334293457777492562137859757842604405917920088264106082236278348487319320294465863076586095253536015002187799643060863567799681707502176946268147787291176665347639082153897603987072715067629741853277010622000917865003364558228596424535630701019636716149897776302237437532288413257198539636953340850164571461728834451553435495587925050174537588748043631423325861209233049556410566380368122349774890033024725884123821644070336614988491561277561731907131067879752444666988156863129478112726191601531059212781422469907687784895888840381168531716761329267417294328246664455906746950535033382180965637007113753048994475612360341691934180423378396045491377616558839143876414617268218785483498210452454830004939834771797238554179933937057894464707687286835153757745220413816438419491042055973290216899233956720306781868185102434493756789732110343078817821961648482630504968822445615309076236193205535778994392341561559426821543435592902986494222010787477908395810224965460078546727501053572619824207433909562689546426129735370362998660471001171617137893653995646962530227832346920404593545733396453513864853939300553634850212788675719579259361821448757246137329141090979132000268082468373947649987622383568686321180766628589864763074879237951641546033929253693361347428635955415345745140280145516185226911338468409251346126345249657563424167328442463807012707234539437824467295296003447123934519037958889245493267383622773644752883859035135387150792956198468598204669007149038975442259708524007769466291217718436861746262670466312054588513917223060202063223080201985142677539099935711850298464036475949871602500700361072405158282963209198172190886828755128957338405172325273787463432582637198481049035245449709238961253461074216033728860435069017483264375084487133902416389380914565616352166593184064624286972483351174214601078830867745704061588893653932607241683122852674560861407010947862690561527434181273443034347430175659826349487315155744679503382873342792489032046342586473807243046445694832829327357157488828209043329029822481580124358967323420022648324171226686815658091555146976547259400510780359764626228116201386552253562801635098816373344396858776560604790956589654065526639517469712656208098631726971025667804744116358885989302109525353360756377025506238615872355242541849502221761404103125254643351933154420272490898740508112679284524497009016891896512349243156251670330555485733212331798173569447296496578463002458006115651475453149726048638026656565350665385646667420751818971378832360237530926633562115012131962845246737910357520372187515583914450691132633119999940440976656045420148142251805272023827102678913686897204015926436083729833153250539197801730229305370486921533319296272232726373327469448804396443384318484723515634681083289525304354336718538048489081956609469652853622811011644422449603026908667595918190138542737529169933527968893395826186214146057972764662052828465919015753578528839558320324155887871035567435408769073472944843990308541712503279088861167592612989659220599535511191989807276365011123558926872382290105297844367259436016605840075131094686365756541440449864114833026386241301613637855604148677509159209298377841671623701080484664192400089578975241648284877511327618179533221750267379714213359993571235541596771357843829943210133400302999541907052574890361760254872434528855332667004860246893452903234048501702955708057897873274373973584937365702240353948478080694347520940790931104240170276946487225811275647173609291309435094531225659404258547799935789010560062638637371594408145107033893914830525696679852212572998649736248311869491018703600203335997631561082363405732774318667502449021272849586706696017302840572536532607196874898237484908965504299124541102528957111567115675152326504391366212089725624751731626518996762695294190478374039975634127234724220108162922687353509283291664221850459835614679787951904080100880310417403483393984253697218460483859726802250783321476684098858572885945249414210447016163606071878805914238743475450696277419832820199297591834132607183385642716891121821510197475736479107596119393678323819199446935620690200981583612651474168067007783961548466930317932846077316179833918858951808991700646156511831678533766007173519298421947082815005639388717565223610266643979338843333102450091084985118244561882118391233151006194006698975396964091353238068396415779916717980207288459502053198477523150257785299498953553109399220721955672805181648403018433979305902160716342379809400274941769743497780314195475501632629226877822497289980219005953851234801887026556303864721703011866810383681941354948330018840976239627335331873642395155803943713526919927161660102670349059048909609349738480214415065340860175555609456199128278812269821135937886093580348096153029470665705087993307341707839602658339257490616868447609227500267809165133436762393485184678255618782115554677907904244101812335766701915233118391400640632623568800428580869848369932883820614450401765322814858799115869714813767041795741952960782059246416022181826597399319436566842223795636262217549440434875821426971212775760465404436327678661680412049236551664015688451541676553786463539479950706261881757876925114480282475668245445756598612580581439149090452852784928857224446449522536770125683472385965812100726052387712044659726971600448912610794750840003315484825222137259471275246697931843116326731131187969823558422585377157216885929098980316010263579017749612522131959630043812671462592698116717543708277109522802623554880153144272712623448719186835352192706402397001329206160225700478091536311579146187671534958133723453153880872146255625192278167624349889485095407674387836948522477048401967730590128366729544164992666832548427133887214824724494087683386360106019061754603035758586134867972740980466207352392130581314376274903876236690330642252134275442265389080737192238143636478522468201482753729104562540832167287835834203811888787835538170270134374163223144781245576662677912784933890726801945079243111940102062604915618209515301815251382349658639461099654394324339853320975125046578943313307327545025884938853238840775683755787897982854984492480405425438820782872077941975407690200113210042023114630931828297597214679505529065556521727826174356477001847566166406039252176645768251215850127743972670605596176552801782751943067068742401068766850490188629358492460805568663367408306431144611444932379296825837939014461340016625358841176356810193937357102443817681380004090366519974214395554783748587477738469800086524437305502056216302694850875727452880889880743983079801344786192721952953202229229258314088617775741663095401065635080504459278628597688125873527904213739140985715569800275899019121068976633596102033279440262238796006444930493694927582923964304920389664550624290752680444774624007045230925559753187598407058270547131994234272949721749513059084738365857207787467210661947311692737540354667821396860195898662818834294567149269653078595799080493994980249399383471079081555212453216674780050910923164294768192431208328672451073988038691890880411808067223388762186958302285327914918464604830107453013594824900436607992870333148855017643883878148485020516966701118094866123471100496694507114813623337848758280591417241222124770587988328085389560649215397187998577062128365964980284101907266388579458149884321044191477350510027744832038432276125936831029285353413264009080128731764822040466424078751917464156841393983914922924842220139257558916362094566847294778676771185758588241040456916491863058548378758615661757389870741926036596949572075372973511354356867601415072711093333068554716703004865205660606701059822552421455044434265500917750778967930259901449815947825546469141365575703406107872641005627532369704838853461657239933145478856126630491212178274873161766727345486346770379469039425756358082698357059274311813075901400342357738046189948521022320289313000344095088195644291811374464552108191550433905253135544270803173541586960688361984820602274490891928582718784429617175704879022738641392329053571910223619818958380877474863135222617590943137172521022311558144171632793655929159653366376757514565805371658161469792975799378058956331087651184523857830811978682402496318482768833910545707316592798566692107365163984492827497091821327966103123290562904679854891749174656836651048798015169682221194971528128875416150032608646947849391753683780119425830141179265491055696604797517589844667027475603398503536692877555440017610624023300928589527157682904259161064564407343380155809301140683750643571243731196598622381160741356896831113811842578949856358982329572303694453326051638911263131621305647048636595258080551078138392614190678520429754176528295193443514027939530590107375746460348949103770412196469674755949203955831760184144091218475528756009144540742399383565465025116140173364169321893307054510073002811173199130134963595024485071985496057150195084771708535727115422812498633422034997958161889752368667194672135459597702043489770581466585687940437860938351076987686364726983978611771015404507762538910398061951876353463174370425027573340099969000821929658030056208886522820695910467592842129109742765993027545190031529117959429098518729820766877751245330420333190506921496852494208386132490907345561041866614300959610996526281233171529575827045349683711940171785218484064759401300563896886510150971961145836029844173112344680018327828273967996716610682429804860196874736086408572974096011106706144329147864204105587244848980998056550631437746774441778872537779112305011836820730188964935123089762086410098355415447247915398329366972743078963803280277250198358234201918747381829473406460862077586905195712185844675402546090829664480033229569092959645198570926183782889652308615832545232536490660351597849867636380543413578449943832818968412014846964515178727577818554138731689771506982725953782460745822247573860698777652893051494074736689854603400389900749055278807996413460867952849688094752349672618906433082692922372204827934996183920776163034249321784794698562804313407072720127114115616420835129326584571995601566374506945154798799364862923778941190260378377939119037853208713225159425916368671334984758049453631487598922039139824619121712757674720260400886571576666522342817807215398764485445338954227651924023344848921591363801006124917805454456970514167023293591251538589478720796072802350155876577481519080798475920190915874269400911661650457399035864293045599815335859735951573034846984688188585546144401829053601461311717051112753305815743036934132635075116081234120409217357468833782167855453559956081988284612978799624039330946176124687343089148858937346643719041221696131733023944970373474711122288754511901894259368662482504676157636212196809519192726581945451801318212035726676142963007914064842273158530952814512720213181125140808997538056449490673857991608525852113248548283860068674971287401761878516829762556199465632449293890147788160434423077227437786015943302492365384364900385437862490025074577540320481332996471420813075934564824624742235169768396785523308151966879841688703422073331119111423672644755092381223809387418120086415516529023556825289698458571778676067497827455571850409574503637004957880423054032320653957731249480248284050640587677801234733227290392331393632688639845426528232849974168344726792224765047658093027393820655471006506659798357031565036091812367405878073783057160164060390868242647160923307598750109477960924251727879720509872428494962753121962547519845969519039493376393846572723648065963842300383329749113120287746092702653278888208629002427070517813837741743818008659189278189984418757801164218732309434745734775433311373680300399111004130483455097584930300309881159423353898891392199901683109159272744647392491748758411646880215295888041982048735101553537158079454713244613754002365984240956445000583183495783538405977616158230157853517944901224732322447977223655844376850786517785993997076863851015304007358970968313014026211115131304541905219240045078890822484508149766500287130636516396895320714876732087463591587945377787835552026680446462123516334932214572279285570660347326321115100705370018109617378356010677523674940769118962440357202684750811852750783147841482949852793799561689648015273758250838876285444523993253748062564136679076647366084398859981161026319740574402625622152913646605564548906028458650580609776185824046690908330957695437544594921315968600903388778368885135207015945233839625143919674908240010578814698625485834657678173172976224968283898993574131020180735301534879679568851164539807886441070427421993047454720238137652542863152433045661893192947122573857250269647983133137415366255736995562796446899115026371263875141392059126829690753518710260912642423923038674835740462605370719012450043327381454588489338742887579958305451674588030891638391800465657870806480746783842727533394005733093623401354730312027336704849011322176413627128842458810996052574045702569411696420207102114146816644574798877507717259170185985466009745031328602227939758436727418428187806954096082645714851871023174065835891801906362166474598902624082584712484689594392686231585666962722790694038089914011415481125635304646846498483252525557236627337754568892437106985620021299390841962017454081704280117645098598718227179586135125434281738142029852734859931034202747857329048282949735532843133431912041993669617128287965627084597577619042542186988942583238245517297902597065289201642561100099804014172761523384592485337488740837040584320866886138651958595410821596912162896651438245007902466745561943630355027148353796432437123932816757449767435217009636261028210972288533305433402959665642794868119214610852510228489535153747676102749380860470270436137505673392505120890958523113218122389138789067391813211638257590793736562717727589462409078268503618230888809771184898298017259094074186934008985940418096325375026657574791355669626621019132001912882885411619227417663853264455334607156957539535168283808588756317546103371513989927667591295834266448750261702449428130956582714762511378929406887154056842367557413203138617692608132832857226514708854529121600962183815946492727382548365013799883077124950817314882035218172859561595684195589595154585118621104654032285871353926515581645711586621639341931078876560163819653296812060310983985975332265181018456222165533810310501037759473838415015868066627002517268479275473249758488569812862440809235385998574527774850446138273409034784398733697546270204787521722492799057476384015065722126956867498054076143672967620812933344756410426278337158963992512125329761559470725541517908290835648761688365573088480470379561354586799921558619522321184813179265283259940627426453135685210263297136478511831087618106893934637490153872755647240422237549656584142411299103782360289216475262515178187660710854812675663579808079810131371822415469015141931628129565221340836671621752032994365767577886517072151885864569267718859039903526924763168392284539107856434499200860362261816853521191463678454594546893733800155345283050393130078295769902969874336628776607162098739459932911648390694021366427755395185222554948211723643391601935542125998760337518907033888510823327068990608850442479594208688365732763380927960509101733744770791299080658515069805283747950437513916571438665696663313798125412995109197062574206546346026804550278194598823393725931585472518134494842992434976517671115381774062179013861458262258548560095925308468226601054184126576884476232147279301388953277264110913386194509240247373571568019831672823600608908857277357231742182665027083361477712239789055018878909641097231368870261657901980441014029480254663718342899749361840809582783461190412575419105707091919617027271137960204170152489734080519963983420363639169700573930417015755754170847809438280295116062206001650842850629913569141584414218336998679120945934560300807057402179066379086072448225611099561547389614127326311353436407267580176918224434023570598979558878863837021251154342949501371928781522502355940332734697448417909508327378642491295236497061741925102905241406579754495678629971634530283693915742254583302218340947092269568530091754678056690681680696580755967829591804746444397155049916838351423000088275378844323287269433089332726323767669809428758142523799042913986046988562065233955278378151695352715430113163507464975692665108205239172473864118291477999338707251818139648927913981671409155942730072739409417646823203628348151740969597771306888972094233972939659229021688231608009958473175538703207893112772523196370727023633547218073775358243408869417619178511103603370233419146335286210471593128580284648597422119200401955381257186231606582893618335791607693213512414441162114847869981089264532242957162148633241364429921310560354585998777682494122709871334889092077059986870549471341974229473577068052823200969344403122741572052162123505387336375307067411469144499945198324847939533384494694281583275210062285647193134882075562093477854870409497603591556615032945666940950881951894637189132075493906358219607343062448709325276796939927157380589667456341091392526061087852771948499330840995460970422167744177211302788914221942239118818659595439378409602871547367434927848716827226514041459578973146124300786370937912999368165479792136135347534762315301904229340967826535032356980161101843623702676769738506506171043723900271788135673115122241278296429539507698102659446397301994345452068231755997806944612499432619947707122230238413906821183904168401583181786844693987615844971613530246502275870914039437124082191217544940721559001538862332251278429093820369289282253008120199089998936363626081131934368283972747378810087350421843513846464355787166653554141157563754456296246923729561177976042559662538929829878136844866474902363885522384816452911375599361885441356857221133745358141986470253577320600977563669291974693907470226611726620224952226088943754960734108283133423333024482476292026569303720203232268525412116586280953561561166413367016234036751051662378822253882074313526261847703964947108565000635733752799373160248394901796854940838168804178175844357812035831917396255583377176889502451437605216732466859599034662336874900956641879210099875870668159711269982383992960344373671151189609653104317770414350765778763881849356829001878497619545673649053574582069898214719430374672760447473965982749680513997765978322513219528574537478997994466707341712295635840776517893001421699617955832084695160084626523765147811141487858277619151288553395598388524597391235927142337974799392373335856432487122766039821047490388009598262938491786472647310937285995522819119434542462923857141934008271312259418468636683453339730102423087442171815557158159749903910909923786129984022069516303269627282619199519335551961491577706024933764621525800647538219973991274502210337367328790599297354258556207163725422681708320116677329022863716936765798220675228876747509969659733009962123120528837019140315440812390484073160953291417794581350114465491450013548204461482038978829549944012732704496297773737357762145088850585071040738747210104166411011547445504487509238956146613733415741179902990248474633458781014467110447054128894026332348081930038721871218371655051232441907176964590186148048100568965215220010830117680387985421791606992111740832539100660879144516674572957007707036889390930868386459004708469540494109719765537463241342756770195299491897162775228238076448929414832834987028705932075038081125795342987361654405765819898737423243723691893144674513825583443303067229502796198061389898985178704140825962459569156978973583335941295541475379131172171339608731243016716889882781503450976436787534504228865017264140591766234681656104330214842496896482128316650681022407931680641365524745535844886372125456683412470890688648118265338732391853535325473730146413464271435193534565433431687956810321611124159038049274022976394563265078358044028295992114564800478812982558192091062287775366861643329105525240466491194734288600809856855744468364160626524263532120971179595938768281760071125683981185601555448614653658866599924174273555950014101602927810970440524921182269636768424934508895296143971212936054089327052667985209528642776402622614132541710023905712654212769620315098070801647952674564312804557992633159884729304477779692639998378714237869847797309731429073082449622800000575042277731073170729583317735763949812629876148541390380803478185404020098375122527971722618174319388871826102884098960289032951796050716980480401472292740570095763049861179636942941873022269420887139035674904145773667608163852470955687439797180362752546557465348524527518310065058777582593505607172751315343743339271845606482306187195422780323447229225912339758346678292328343135509874702150556884765954111326190843636861193675674523348876828078008012233190684940022342357666209035128661030535619137912797998084170567201999571824938124489839686117225136681836978678634436822938542545824650153655909714357986999984845394363975876972269147921496320746022250284909822661494266915472444151129923628439309894889519136320079201647329293416701083703849145729744359430807411242650034281739637560261271935074628791267493216486026220994362800001140847582716702313681744396214463377734476134547207593865742042560796656340741511523237874585660609851107644177254567628011979304101752231546748634385274182529191608085097185963989231234917681632270995796842923590098808828619363937586072865598380178230030977767250023549738177864054020489038254346556130255241684133330033576986537860648423892441686423276256168122697816309587423972059804588534096392229066697720239388019060243043481689521228989919228863728642851448717925680329501723349215648856501817144176830190003803386910792970072890751818747520989758817995878905455652010652428467331065962149975487946800688347066386429104659619902908877423324926363949067009985214822754460146066739212568863139425891527996389093361841530954017708259269912020228790050058230653047660123560018055980952142908685435926390572971845559838234895251738987246423669424704073057683181732147700123219977626036407965569495273489267284118792152065187702854418145699183137549443553891914486114244821769448139032683455648739795139382605653003603133318165901831890063777318207831472928904587931789600681014781732317539757097985302325530960618169244993262716432468233763230676894299963502482196691075632752705083012582259449680704610818631224276040487997037119189485868642209461389548984542035887429199994876460600929639444020396156920862336134609162530994835948008495336361318059749043221251826283794181750440073105133625899396226245240862218153055673567160035027490244178062199202090488967005026671965680610251993850696035163249466626316873292921038217616188501429288366992338749990084303198978237683821357229109083865558947998191419399747370644642514774922363640548436760274328866583750987378271763606742318402339354030304631224375633248887041856120135548691440987089238768614563011427320481272147592936719087320861073462323876185887285472809546630112936648557957697343138290300830056265933688810231829581212704128527411049694889861142990831732153293137452456769321833636422012582602248170246216824425295898344219331984720271460261354944967739475305420805037180823413388562838942651925984397399532603492761908825917173691923967386848119196993903103611142546138589394691282753512792781412000906452473612319659400337660247446455084302017309669018338473563613611744446277473561660962404987124893977947462035068922238620226927911265253488146641342428471622605146157871013512024420183338923022288650985364027329224391585369952916787035747588827108136069886317297125497534562178802175040371019745491106662439021066085950267659968350542379732189124983933540176575791047126709463263941884947167054459117069433798850449498018550155025092603198690517189636899939027324963193863649344126817268777071493203228188388555171638383191869179195083241688088316394671931307942454784590899151553053927912641602657687669856517868528312098907063902107996834635705935336465908597791601178171424167360368110514548224694045873483139096917007555263661624789778785473601542699933991744894812028564509171903357284992437571886343719349870245107670196882841548444354608853256221838871218146271773581056164657926183706316048317548151063380108666550266934466512775444106649884752412636276817590134572585489041700012838460239573809286604419344329857807705294263104974280832470730548735846962540490651625311592880828035621217141795587783777333081227833539659306567619272799671527146091272876213884441516816383453046226712222732037802555938555174837096036502043416420399832035397337685821810560079131052301230989641720705420612536534198488568091488992733488882784817624064617296634151028607348994683831478791639452297510830862738062537475471455251792306705244015059900336121314944404020362616359919319842554054335898186940200607274865063718703396086585420004227864040874206694784691307446574655598164980098220297366793894258619322688237059209517273824521959596409528613713578607540353455890440343142787378844935522967057690999625535163926427925209105579751045506823729132533577076558615060774509468226895504988821270828571989849663651322786252120035302218060809428899428692264199747326081768679228624307638296696278624908703925411934420563227848299790894673294736987641936102198716750914254283703988646553553762264337714494185377181930709529515701987731045693273483182833416328208118651772535410155073881992998918633101769304754004735102579584915260553147463323714907780227966322697976244584743051169620859885003050145904437974811274321036152395982938481957707039586633011464747172385088557743587940299673750551963524381330940386257031578418932258421706110662911189719577802432116379421633971727768138977227798279374410975067351143586451865021128629222270236785155521061391551690771363281205288318955360225883222425885989270182217485368702550287312655327414165920629447576692693937948208338539338764389050451661841892543017187829725170074548788698209652786808018311950923091924668188403037309261887969897062735517099738715470403249721906711730729165613568988428955796054904402991982254194573772114920528252295415573852227129083755018224760562194128451334604837170932959955934174186998503714771464357319782866508939455360742782284237986604380905441734518664597909974025516768548972940323930341224253008474514054859274288442499822242592688891426996191710071517682725405926922399514050817856091540478171927631468349998474612201553541945914765622806750892633192561290396533171585035880809551199074826560540836699420416292256955477172223868257557462684481159039580625749897516050491225155567731627834018133234185050480512513944517623941653550574293298828351462424436011009472548511680729707478028041317737812635538114542053052078239211139163541867859461030486189462618250024553637699153046261811788140645431256061687648538944577838799031422058332080545623062282700717130759946819774037343600390947018310031414512936776788290477935964060689584547690198041886908634974662740078252842842273662461925595471659230397001853323729096449533903054552192190285761070841693463989267454527833633611478962257001553019162299625765677922554220020336397482647639907392387890111930801114015357248387593114793399386747795629116901256608521895522833527683545073631161230883612234160378970944822432417832075116235432036354696427507234683994771872732944293378679632749819407799581991628392643592561077886420670922448725041318715133314577866103266421634646294056272367923388490124681217912828116657182842990977279303305643661690840225464722485288386640951050814841571249709605100915626149396345032307769316906693009410688917804793558623248890870131875984491857019200239657516019034764920349844982756329682092208508077550142232789610414695509561562870553663282218823177731635002441107044630879570350675916800180541963508235660865149361600468605532958071008303771992785116439274812361302192371758527756950810780118371203895975196170734519147324711911006115426492406481879902678428284468061388030925422601949390370541088270807095493032030923522024507289869885619213912886704192653545153409256124417706824954818632441049964293905002920691041325254972312204550508505230972154576154076831102570302967655344247192781108035125225657847341926637204134563335002189918424339593599872478723731763589656745541500095258709878769564549243947296005333952615489292102648398430524368643458467749856015301223948792783483711266604073505104287973537786045942139655807741243009965232785058359658167921078649081239268640858887760157272696776328142162339074517309634142963090462730859204384923790247341639113056948371284529067505243119328654221786365215961021394815666064165718873409584537001680336808101553769580501870087115001982539509944431048947245448926553248348091846469262030359761123550396616669492180240886791831477209719927062438267810390070321952418969087773134948158252683077771754892058950179824303331596941782307606634855875830322025994510153408315844129882985619736855262961104831887512867323533230474057633805919451615004799804831727410652670341314484201563971354412096836901368984538314823883907425838351680961311714578651878553847580565025040955603776024972777920189638738390274896100380119905228411053107676130924209349028099175253394230218561589496691296871256004805667352596317732108413680552157007677037853378402328909479151730390339218572775941015005700241345343687022824486004494814145825099962575555458750492779430615186039728712743239874323170705527505753100342427840074108388001906835527563747668041877453716089989316068284524702467690729837110663556178084333812799852251373005684650483528266291567712086073951883231702279601079983442267919981689518165783115049794923675477881889643644741652724211793529712904610388591900183039237306830306949415604201829167519812368149832809559156473142095663581004058572381864651056830152121400566275242155293979340418766641938442862567473538961901423703276946332749998564023702922593907162828280327299792706007888594290282805385738849038698980019903621008221287689453191953287461447036664258755658524562155556938114462923859308691322508083949861882987049496611218816178454027384456014934067555926047454533022027504530365598778917076205363194657146539181440272777644939601788874059985290180162357769348443757709964135615612420473834359531781354352257404416907046687039106242977178362797552933384372289259276510579392342613098467654894482427680049281255459542322506042620659493608360303415506352742950206813053207678621673321178840988269039146072075875470420433457465018302638721285020591563160664084034934991868779141034239154031347676479327719275913294603882905881877737280164905672463686606387627992858609726217597679686782830053756650172385435332668378592756213203192014870367800464451198019640464255118045294767751591951484958567187907518624986914804359729669895764484124951501468093648044964793640199745463467011919814858382929487184224617776388779535490918294938677361767798276066413822940273786451003850080363922328282318089723965632012538081391763320094140038984427709945587992391701248699999431795098289189128088380083496163805256151395523980964266941903520803218819289855985780026352217552765549737325741385527245293825453742839664505517322311368588364280667375438890798410034018275631369263508945181211103346451243607093562185140446881539340528871689948460439607387900061721797344015299861916831709365213259975750267103748569751963954070409729945972387423006533801186956572383537560942990441278336011117332944310366874013114493553476573845056160624187823085398244132883631030463817417394792996536503340595020034081794674617199601680000031204921439818929682432402613770489501828669486296005277724904334621584338970247417445497754294644848929772000686907684258695014968819579749839747484074337830719276415490485045189853934566028767990241684673553516483445911616963974958815823855757346274553116443902459531064176914660082320611037641351581703897322079550959737840019849727819521997400970925560395180024255809261105309380464810641139950320181981337960156197110800894011953758488981609842149554013685593242854652852134706734232687976595095636441878803378233116701241002941342857735626260496026247308112017228543583316226243367698965560428781792266928728115151196289112313967447487377964961055483809611423080999666659888506329507750495932759162649269419202168627563217293442582257778448658126662820362523757657324276043629711515476742368342564238665433950457979321424905970589462764601180379468612351854250154376223987260561096591860775425968584864637266100074918182301936745289022226743308586160467381563853766497913455682424102268047294929059053683802644320319746218596954356877392026936781057377278392320236831015317231320783082438354487876662778104273773885962636083218701795847461233918726036482488142927053299386985151903646961139097496614257255008600993311386249447966932154568229919553493081529600818522394826413672796839173047269310234060741006618948879754438871502999664214785591912687827240591264711822937393822963259371695642211300670457442319567763668649072207988423265759284957993898126741531746317138567848098786398306765053543661439975019391196546436073237065800032972953838079006102420698190604531896837734769501643028632280912434697980066436693833316778793847922627352704673362509029826433556357470442828239249247192968539708037723166987182626692229785056766913498018917370369975819606778848650691243780467981999820584864470689546760140336201614358476335052568560107397810055047963319787089330023200655552508192967927185487695825470891597548826791680457920630744746071480144064696455778570902784751056064688291669182828326951649542409091681692191033481008498101745227519664956678455357410666424708721447865110054420883667092654620979432390813806805710563420296284998712845402061430320603328272702588870253707860524754798064052693335227358296600341820372595697123924092624331785739365548088377362798891645224911724580117661865443042456595212389131448574616115669900203802555377120961183105815808405541156456554050477322852894904110591842350981254264267060637921510432555920774391933081255001228384883845376181482888440169785750625889774401345283200825304170576615163339287409709010958418954692687409480115530504850409834499012537981005739567855555374709964126351882481240613936283943977387906241836752045179393738689748630023765419458674674475687267409460665680183290362666442172478016553769842425866037075053493292096165511206380612119815609685321131265524429702584593468748621462527625491469711788704857602022593226947782048106807692685124343023350507388557625240570659286027152491057560933340584575655993243850659272364662368346490227089529121144557252662020317770169001100190920049260234263927519002941399958799146524613693978370662848883727760931113847331527811676040195749032184893430386305770049094521272308627136656482748857690066164061844110999470116490046145077651265828943891485938368831304020011711678701958139147387563912807602139037128593032236117922787654776608790816800422579748880872476488638539317096869835734304714897259036651669198784841168323583362212748943398585033784023664011812854842604997950652218021785974461073141698154891599448672671154118019315730607963508851325232859390471449050436763415350580253965235164654166828990297791718987037463252056695182471938686833347826087408679913312391195227072661756880849217882772314330689479354008826452646353940130294919562602278441525793046745385011132202601882448279806927376885337428362949273729789213644215580346387205645782318207111945967501951253810791559330209610576224743867477790338281450332816712860142885104152943005610684087723053461146693176462047259197070685515449125428052942147633708526275251494212348263395439591036868819070034006889982508507911119456154577324773990367070706461053817645113098991534183380574145558046225005994477630871635455120375978431400704008928007403318498496858998547165768729354829079000632092029449470501816412247001781348868974056358295950291681667287701576586465844650996107730775249242322331202663816323922972428466946825523376659584065121441585411874747636422181812525056949113226642631503322044499824966960433787959076141699688679583751691861006000211555899893822704994059118962979108961230885925900709656863039917044709997732637410365139129063261670095618648979019344768625105738663441484793495253657375331394170623097681969344922444035752227634222287333969476959102493661130049865757855347152969113514442565951013312113701332453507636607755625996837091394258090240885351506099193382341628935135613035733050822137825244044052789889755238525653096923298908316800063707928067010983144234725971698660462823547733795297655943779201595970264421855052843555018190302638411750021199484150832732981036948575351934286024003929060794137222916497609459101091583437213517215236653144100108430066200299730101182089779399063706105354038596900995906551166036735009819451800355700049052602126340240331747951920819555448065884385790192078205298816795594883857524958497369408543940116897541493654364078646893606097530451452560715247023233734874849590065442423381798995862670535046148230361129924964687491418128585157800217248641683116650044707578173961809267915344159912285171871367997578200342419672107312168143259285927981399032642337168370542203779265542860456759028669976294442653383351924133303239530150559828764170076527208931009858746227997673904800318686435726723227657322964032541689149868786332823000493769326331397226242702177650559705597774779634031334923696459279764619781769351259570173192598710012179069671237493994983934069893740415438971438590472356110302387779328238882630946350171118965548421633070246381807321965515262255911670332647340661721068272889333384474501684056804285231247122347256433614287438324212907789479177360589445117246045342138720759616002209345990352441234509612429126859485655946396883896561089378068599553018014879435540302066260253338811021227870681809561037530914883241738471910975447856748925781921510212300162345371968448245456568214851395979411930218860769686810658207097549034944568872450665691208971633983157364861116292796893848135630168426232879914164195222845513721470279780972901574139096330452793444289874485881158176919343735108837131263129152694209427474409245614087143136735909756181452654004329213084964130359627988803749454255118959814588667737596546350939362458066269679813989711889641813155303671871188868444777905122214637402558898996188521548230321282912679776794575771788523712974903614228315935624606779509799641702009618863278758941429419400916123967808257783541856541030959219438313407814644901916320406813032286879368806681086239766245836867964591018274188908873401744747419350139215433638149868836077846180255035157847630311164090547576827013427664926435590277328279523229519465847426565224913702086328513895140716793172884124986267039359760377796795340417697254119420866840056671721452817531490755773755570101911002506968814440811737992735159178458099132017882201097186132439904063425182320116314765085094767165217571806447536074751475836394981814597434528283454128030207664473648767348347507143286878589312006207391854718494135078611840126855249173591405390792112043020140676795735081949739511460720452531269926460765072131700351853714692674807807708931707907788542318593601808123337704295161900920298090381233734933031214560088169973524263625552520744190836493556559097725157705923216527646349067725444553948417476094228249039012330095245629549069569895354131322521193451555889801249041519186499876027131199029611488898242791905147230963239308582264246847234962347186714136231145841819646436295727903389054184204694352769508587360950607672592572511122285329933789374160770413873145284171684817913843811428231315056199401724611354390321807673403148992737684469015814119812979712940659512288503978228535128850484660083241144818676476229031578011045895574821822295006487203951909448867826667949118902010844322721987915822929761829212268083635790524482763133914857157135139323798811559591553241763474577313444960614677529317776322313027509756804197436066942664545831958944652659027386061951818819699129813909536694135275666020409050103988736603761333239093786608983034368882118217048621528680631138113481139705927781821410129775172719592186649831571363197779739907805598841862068600551109918399630471561548629584357304161215975112655028928868324696845344443536450878908516313514839784633599881616404312638057280195618882394583898914002692219979349639686580962000127622232559868231976390014244323693761519056122241061384773359686279731630394033357073017689529018879267393883307645131777607525478989171384842663315123016110389226761292331075952132422324004179579447257738814274865753401456205302663537933584864883057054982410536504383115686591859065135717531036386021309582231159447007154342141656972109596881088317209210156906390145295408935554689564027628723028511768270695540732329413871060399551390658742493193189843110946498484452442423086713069736519623872056188312583418848727082345879366351981814703651109546267503043954515906439688445820997499195364993459233174981287684573361778609848116547544404396311165996597200599676315530200605459709223837547635671250874449008753670065242284858952612132947421048621088916661321247636727697623346560847995548164945405173849006938020594436050513551595298442443613669682008966569570596927615748666749041208908473158683014808630633647179196841714029873516571807457791600359882215523402683694133643542474607685248758166587213280241943897847336572463743641325621492043043849598419427882833323163386165583618835221466982676793776657038949298730615085710491165645174593794967395298990596724492614626135438620402627015553249671568301597450049467742775842550484955895245011940762758608086549211942151702607904049714125998254973078059391030103064968924600398933350299794999161009314504553932644555087594803101113416350120654188123148329347862593036148040587428377791516010288545689168784833583473708487711876237585185681334336634369723384358517799470129374476526912429478058491530204871028381304506622758625673446471099612640798905398669186498234426037197983082877792605671167843693031889594316259803327788774788135319282541855271573195577751629165509317992822189614979113451529130679446360858076976178601824366528927242192821555732146134635673721497323595115737178127027421461047773008972640524404589473337114153863926493959994923930067476799833135948441860477390390496489983325819795698367647557066898693647075631990576208258319199896632891157818094934206017186648534422470385295563288472261628334363345395034167282686581219877722766991154666021039092065076400519659642510605907147965268914778735821438022413336002191023970665489751301531884907419005159019953129267286115657281340029413343229571399267106965081234628979876025347219260203917998163454482850645673074942183192085607367114386031534306778001188634334203920850163513732706796444165868987126177773151272982684225529451547905051456561019839753434738478700827429537067439111169351261913751780554016069810229966475239261404216007294958951495910864621512841555642868217168306624965076471304688945377596184841644858343153755901466741179024648171989709155595458281867586299858158832661677216827960098196837114912172530147655673586561640270498417029990443924852897729569200479364899552555349884795263633131395221063322219411927555638350899383827858603135908876608897770391263093783913434935020036948346463388226503292649239845455055657830520367981952436276077384438476141916418500726203906881651164166039064473862672732321785507074579404770602585559542106624019050697774995332567363579760558095997373128562624200888845933362709118858016672527695226682454713066990420993273430147720301133015727434195128404343198915412667732565139939595494520366674190581052944558525587991902892445726433820192178469675777307821246815150949985752550887737799674097615999579555196838417580081954900966548286086388956750516090580648920936504453548931216839729898820267900001896900691384640256293520888938442220961835525323003109362181942404072920192242919679659093632201717420670737822024242117079562125920681454054243411962961956851632897515025802649581330126947692054821648765431751166997883439800910729691503730476249654261825730070969512231019929767911770230987339821224404314683800754589232847850298223527894109169060555366651409574541706055521411996801084343782680539140157587340324031218960232810450502140893980964501582238184918942398775503976883666970057485226669052556863480372733627684698372404970221111901820329217811679649620138088781910424483991397520307744551826190701091604845108391012383506110417911079263437057995815232598184205048357820203349550356631108873028564127403614665248799124109684665703080337398630731503178230215338621492621260552295940397746809827224001503785481485738434486511242500533343772096406992105455623779182672368345583299899642328180691932302305409491539174410809798766713984817648681546291449389743191129768280442460233728852539229283239829191029584821038240061858140339257139464357047742018935823307387205886819300934838234675378370077318666753052410582736831161853953322468895679401686937143175927330333570136060558800453152907410540128278512752137888336994209577196135834766114481903945903902864756982248329318177939837320188044542483778524263119856219106826795175261602469357021810753714337081433414591807797702373797882075416971076614888774683581035233530906626914818441652672415028306290078375816078736330740030494769937237788118810273303442875667855321865416604422453168095687876979380375991266843126516192522642646038179498087536784070182469575607297971805730610736819828017893306920253261380577179752325367645898904778839628060860491898961466296903284473301906184586098693600259339005949416434996525177521319444813491309888959631505094115497034070557179815766457934683041707261612170125751718222821952283435170569637076103143407230682208904795150624412193623022087593303700692691732781603732579535165818868038016241045186362341152842485550803203890199326543916913426773409157707339962945780816578565237514900069366672180488832184157899606558771096663015193569504767566426291010643447989803803231994178503778854671538576989022621574279573695894805586666445979546166854333683755740657874991291996369778031936735888767466671214553954340801346351375970262546045182291448001639796264130584608051303943995688274356058571715297607763630426528533235346702818079631481182509945932321416587721045482051876186745871547708627757265155695459537359045526160092795120393402004575292021236677230976621806829039127291977014074070002949492417861442841899553522473548218619058234990311610528272154222486892721640300864765059660182233211560853281497319659664174858660598569131424432617932433833007544130052167622788579589908383736921154343570654107477908105122186969600965529317412164040473798908295265947519988405407256080107241030117928579289890317250854576771304689663067386237008227265502245388054668374177968368336249032702862070488251490673787367179317799224181810051704575186570046793386724717911648065274597950931278321680977861973790371102726825970925106614649564677191971030132300322871006051324590200435177294055647878980010398037361962026593093622915196234274423900344486425014060838705589478399914733710593886604188446129273825310658181512060374526075100585414951489903791530395254902862902351551345799708720414169433250328756813439187922824679588897901184961821970941201398548374753769316054008238269861063239037760312324012686781442472969956072158200326253744629700809565850461772213017904776238899670380758812125410811189175832755834231302529408801988147559258588277065563563091198908280684040679021270030052603165891226316955149292210813069259544982626511597016609250530373991612947597337380610555441476940062586562043384087691391740858692127825103905374597719416461357872864566577649917798009025731911645085233461082013887742807015451101886724075060138006616205023725010022679127957625042739080238893897979228891219576693804956289068764542253364635948317972557203304254867883812665837923629431352679748113180615995205842883452292615270892820759509411646315295734257304880637995969113284632418157060822254097743286885846518336245811286501752984288871976233920574528753676295202097832600798719740924375488311725804436319139024384932475651253763208251189788720225786445588728328588737511170574619251774412633833889234127785668608970294930175160808696765642126545010331224185492891777751445686086512113369518840374133015674503231247296035562595360253118371102380849108314847851932366434248930620046101818756248135739806782800216958136217321411543203237880037335749281549102447932649700881020351171092286863603544803697716709977424197894746382128787021314939548937270049487565499747068755958155059288869040715392529928826584259047948616997179672667519012807895484061142510354203325266605691535667616025262614149249637162973791744207066992677103975389725768341280631211974122070134592284612075829966864031573202847236732302605395568909201573995882041629377270327145212968822654095229887512393611780146314431462526408914357081301331363723541257428429094578054280030774626519962157287768556609146964762404236912019167503087848331462267682521609317542208805449639702259246949728461796293378582182018669126897314157150036543338448560368439078932693573149897615644733964996177318620987961239292035557866915709264420681037602570815873987379480624872864792734679484624243832823407177214773131849422638205668174761802836461538612887561459372035407844556169310875560643327507303677834299502608603282207549464066285676338154884508626220199009498307460416504642531336884134492491080463286545687853284312477812426144835863969141438212866954437467225259621121316229626096947053871633039992624761902094288120634353904443675645919174443909554918139446144836015952605214258815234386630699677032486014654995789233707949462287749031983283872928079902669357056473132408889553664106385178571689208998159778685758414995392928172353385895720211618817856078472829102779513453518079039341516634361659802588419838729469996667631791761673517064897669291452440959616566917862767656962243633727759777611360035344240876773988571929053045387187181759632259615397435216465928540568299031313445614814287941702197043689025348246272097852244720747023605160853668899591345538265763531550738360966373843821830279802380673769435690660114898535196581371156470839357240536937500334868684774164556823552030890875467871352850956240381068252045704600530142657858709531152875520