1 : 1; 2 : 1, 1, 2, 5, 100; 3 : 1, 1, 1, 1, 3, 53, 4947, 66072132; 4 : 1, 1, 1, 1, 1, 1, 23, 5270, 27999510; 5 : 1, 1, 1, 1, 1, 1, 1, 2, 4, 28, 8851, 1395426533, 3665346274452116372, 53925647181443925794153448868309082440; 6 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 7, 95, 54570, 3932969040; 7 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 45, 2685, 8685204, 98388241169400; 8 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 11, 388, 230124, 130349917633, 49364308113800663957152, 2967552212470167859098369063204007223384628289, 9444488632785048341096851318527875786201304801192055583238563393161869596355617385946660410, 467932575058453501237376403845373610580374848277378091722802180341435028376672815986110353656204531961568935970918994343023442871344705677915472585400940672346928361667584509908148580, 306910187545837366289254570613363627098959265281211849483754506085304379133923842129591726688465929185571029195909355372475472026205284803766468423887576510117462154281274488315614695328924062275488494259592299447546027884766106954868835980934453652039304335696093209783395689578952042429218291247124208006215453542396975891662157590322154966978445284636950926139360; 9 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 8, 415, 887651, 3480910109190, 19564681769507033823881982, 373265705108738821617827645539148399363195757361139, 214761563093221794318561589499769443147805058330167645948936045572490520438946008786608617707956028874, 66163417725369454100625518899703944888842526428686073959498491709440344205712439506529880128364294587950955898241553727792256383844027209358325487373612610144142133619285689667917077156692133366998149047, 104016069307607342796218631908546346538709600497491571489461199206768440091180948274558296726183078972445934853946944175863321983193621770482050424394697360593784832983246239669253831384928810209504610442122180601001527975666951239580708255983718412789198194305136055786860744958284358966618924937180088912641988485525642587537680167494602175159022654891386476918298862451396474753389064166574195651560862826, 154436375212779167026605025953464520730038504712837543221825730367173309915018891299887167300201488095927855370747221524846186968964242747206692688329025920582450448651300826284788297234263454993271076071513058981335154804661489330623552994056536180509071368556194005808309764632863493276146682296207931326754992424078339467461440684948249773955504023864280486678805726686900736113865795710764773327230868111653473723562256399334590758303914040533679916490750040011972851037144796170657838198158630953559787961529918218717420606291473911545838392734328562895365398071282957397107305979261754960534405492063217543913888764949857309454833447352948700551483892178053775225346102489694547990325778073122201929898720836206163239217729197529993457899573339150685519164754221106782637704061357664509812015278112476304175675, 39816462200230141210742178904008054372709788674390662300874905239138890045669284824305064084722164168341993935598636423591352606941426809764183890714753209445170565125263810740536202313386637174676965681740011731047201840848135826804544062223111718385898517973323497460789570618977698037671104850550199115463468223812199123575974121400489301941358265104505360951395561921930727730121642717187862874166011381475059790652561320833997152058040114016535541765604977417376711771158015744231188600504514110709548151548941698272663892495271334269166173927929562404556820615785855397931319443468419372672510908365471234271156842565977147449632891387565332153339029818757511489555983989333774900996780936726640523047010334974941523533773378065539921397941007988252544399507208181383489378120474538684952547272712236925606635098304422629504304414743128341105200547554647631159482600207743062297598653958005033850203950749810548925122843673091284843161124371888426814997503290366673439646656303254875432890644859652878777370086026837931584382863802216124567213879785397516449488419798061187446955174641926218962589911404853838632581491471918013121126188890136941196568615497108059808081957486578859439145458778012532880115117820233439672285215492704395676180170092666124364535944160467010397983038119575560077693617178134670640280346066564691643181045544296229250023702495540159111641395194750411924790227030746206575583904320452164887640115954594647396844354210699506063758430998033866873736143703410232057903473769477900731890870136253827813074273847976452367556072179928192220395706633112591671521886837024030578505674225696669609646371000; 10 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 196, 59632, 4237818448, 27908758041785258437, 922688819980480483056620050667628508773, 5229097953376266338103389319052559862322711695695001102269833902166888606504817, 83287022619446577296029153771971691030208835980585138572580291130563411250549198056157485215746653960953843330428985303747590074514104153520719332226001211200; 11 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20, 457, 234416, 116847784420, 31212311722719619370510, 1221993120320525271713112868003329050505254016, 2042428045129775276075280186272906243388865062533864732697461254487655452100423317165141760; 12 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 32, 17180, 1146132124, 2746638005225858575, 10170051431887525714588084350135278916, 117154636700432008443857387557222853390435969875241631304270292745160910400; 13 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 7, 53, 9690, 387634090, 3741911586159486842, 82463523898671360481957059736968711152, 19809940911305309404090604536574375422802311751744471675079559124185170960432, 710312890010133522092358459556182602784626109702105415531375932283028495847762065985252554599625209747978001966496484467782941226787043455548590899988800; 14 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 156, 55503, 449432529940, 623168971662748158334517, 420076455943263189092408040880738263351631124380; 15 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 10, 354, 126267, 16411721464, 361129559193584809294, 1084393079422258663134463271852188074203009, 7268606164511535658965984220844858580794800841251977883091390194308529521217934382665, 53683998091619971146953705381097273863662057262264340943407983063178654959725443619960995313400599982462959885808877900507258285813273482861732258106070828177014422424470, 4496996169111274904650116591699662377219411423210663577876977267596987611570617435189021730688102648928140839201183528142880973773681588464046454624759737952254765222571052707492073441421546970616490958111983639585659617019729775301620860196859150736198396686058613178952260160920414220138213679416600808955211523908021932176803479707828627, 32412674534710633435535718613233771874638847640374253356822842906018063004455346413591199484604311692627752751276510080395560619870577769899068647761044446875554396488725736989711528056484012484762971865495578060597302223297329977012560841665612751692045483621447108350038694544507120966629471905261251965242222573746430976518837868823973441803996762261088306060227082186657124846143116694165544257958066562030119061198570162194840746986907781288903028585924026917776123843146460367060965450313091559226570973892829382836724214160116801956250156341549539350321986901885155892975189947670932060690543058815417340169815471227944238415200101706161950718304456715301840891463509266940, 3346728793982631764717828580347074287215738369881672707116962841627453633828559460891773097827662647177018448466756870463761944011548028806404263874668610429088970064356102874323606788073623350729034819692291114891859495332835451326210350349685280602153081553811454399691621738143497447136778816819615130645151199929195275098032742045736322467893326628189674189672286625987045153577911394223322561411691950245707724922707423674946411274685072524824560760536576768508875224043587930122169253997731658675149260681327750176241083880682483709264142604276545076605516906963397567164840886673577371707813537243082804073858481999487352200938282714914075007724283035609980932434950943246724247712878689970876273416701981526721103891226663472846888491561996206842145731479162525113956866736645823377666506166047881908134617087550183623549317254703871980975774453556780686023189868877917649198243139523109633930406377894531617699001115434276016308885828861615803645658730192590834262926357749153420138902024897068004818015131114275543918702693649389961245650694192543382307588808231128714963604348509885990990459474683470592983517701979627955287186881590654739693335026271985910158677933219169990314217613141012427192081639083312852025626682510408636649466169410723949833461795491271239563191684712366000041873682558782051631187775131670532280674348849960793612771409446, 96671730947364904634675938901784767186263302201658897057015663616624699728154995617058185271499238581149645621804688121767423508685530907464106070008526938449657868210972951986280826665988443928323032020763361776198308166619674085903780374198907598404358045889555883153396818781142042537647529813594082180635038897552177952152684473537776044976187223364568430864321004469818090470018586766524139037021283249103313070591024231107334871306999501222002213822822226854356355098991306096820458658962440140421166445319064728407456470392983985303382250617832626188549335643515568842556877147842314074841860531445571546410141682236222148493654200706405452845316462912709838830086062882875287225949334849227324038954611136296412294082142100091523774065147763331231881738027451026290762261521553278221133916252955241226688968030141699729588410791324436927545533829816661549466969040512395562192768345191084879860357954543493777928427755650293203523676591589866678474609742292389709268122416063559873996941039044693640382238890350207232466616555136654773601146927730058128327553151624787883394164896372981493538973007405247589560367421025364536760131593995769260926743740340910209991120984333733542034057581715853888564054286659339781109446488020732979793211790071114169223553530684163572710675988205278538094440805862964571160740554599139297235889530220919401869148293225476929010496781101803618796269096452392623935042796328161516154664261572275189574864946690871847213936940706383719369897030221234220368309270625189964553412757422533820565009034251687165472381075834147729083830537109240149155317504134744071553912095141465429937408921864479148699970767922887179986813994704618937335910048574244427511472167194406094588879036869925262457817714954928148328747695265275752427552898820861378241395518950791870077738457788602362659593970526227131652346774620062942396957123404316367026577683522901663299669134978028522628875437151120639165363054951572342598587553091402935337729806153402448754202326772274213094312439538851514425032670704280972895205612849730408377796180279796544777116709199372682195887345708693299186033782529795055470743652280490056753149453422061087730683469800837022222178034420141310216168736843901691628828069673489488266674272452882249257926251560505550579289506771838733260781938292039197105966963123986473639136031948736402623679347885569901649236109570899201791695478886984194382680978974855399932129618888825426007457592307531490696845581852881064750551280500735911886008978103350560518266127761647770905902989592799151085757108287000900078709378057886861047620300522976146516287418490816149474441020400272209153668773277897967825813976016112649722985766877984960519533110383286154970325604796131262124, 9466358534365777331186826699361498136737231276099353594020300434135908314689243036214829980404576872931317730154677666802713489623410406677990085568151863341044023248921840779797061314669047216674854746247433325689303965720171817838087967685025228485294768598325792393046121683458741121550421272311233320624169751262478871477073887136886111726847052386206328951888227496900592117511601310228616756841642960681866116338608873365746285476109609123318881165571381721142493103358836302255671566860143116308193555415409154999752823044019919983084108071914647171822145170841846523455887599690004780511309828584546339265479814265507326304814990789242761043206649633739353000896761909803640353696446027150552583583072609684823132300023017022232534651996335017197700237867246125157796511539041641685603936156109683163755469137182485995977803990131520245974226108459625267786781302628283931707564062044892421209432668349808943681443809872867250300404859235710932528837120525931983413451644357467676932738010356023138507902901383445559958795806781851150301160611779595510385922631165511839725758198987894853091350528980314100027008116667058443773371423165079996686877142338622120011120058099623300911753524241541281170137180692113676033784156971390972428348133006830273698180559923268508198710755362308771264518777165541658709621937301245577993402267724265068212305275664761603514043794161797295618831375700841262749695090600500499710494423182181307523916170342490398439637895880730313372538702195034160594709733210409352199816036270511902847969326607649895331114771530967903422887051134908905946372163273753402606988034495046649358482266305608122495125750033525718731446182064845857458749343252597096170883594781211221140540017181357900453034947582538238493127167187613272711348210837405963650443328129354860513286290421139237122648101263901018469591486453647842851545531877673058074174154170232277027424792968109997069924152016679084390750556498372774423791077973852135014375314278900050939562364086070295104696509723307911279771177530342615573994282275858227343486439983613515437546896302401719563005584524726763910885939410848251121301867083426606176288344415242397073222433809955328569997255495850736415192765824113887249979776834255372145232754101236683435722678379608506398536540023604394672005269472432903144252781351396708966865324966822888179059240371311214880156881152174808628997744694807520693938272477851151176398886205649091652236034427349923363468208139647175681399363448475875198147998316085457108617290047135503310561124050527952754109114396193120074011657850893556227324951316780216708771448315542483265560735574936388478005022531958779177246604295634131380391265295857123260361523832902334842658923229644269421072374563897065573005983335316826196919653405020063289456717761508004757564764134937687734901177177165003645293926580523572299808714933157918777294183066037673723791115219813026429665312893015090590263238402783465319568993256631165389338713946889496448185238465271373822156606906797577343657574800825565437153320823214063105224176238959694824343444544492426062143062392279301478169066914838440567774370733256458796846705159911010610579510210159209963854557334959287481144411995326792300200657685980199626499254081095153944431756374812186088622754333407827979157785724448376180685395581279010207115091773754982097780936455250758384102333563087253058806073355667533220042016466201911020704947897700068140870300134708910232007921010811149092825221668315970519840882859129978434447103230925728785436264033844597836786602045055984957003983543981983998056489482856098916416553154607208123655853762973527812395802033207519041428533646244806580739736826700566854659091137546615262081191348579205730156373164295523615038625144004854740139324147102791116163733614985650215540162893935127023087659645237736635047247965136169088723707969197184181619317190266522264931755032706007354546650257741631303637881046204903274390198934071085210608661887399797693869916923449580544810979250226539908863387510665507081700583685127350246888360165988697588345476146966123908379876335618678262990423184250147433676897353961560865265525600655901399164810346491643900443961750981009163705961261597578709202179686765619155786267795610347121313554820420495142473547554791383971563300089165890986308600378201093323476789055811438577818167354185939565398704475311398246996536717679268274930287021047564835263152108317211396970892130820227572062610477827891355421707559003077927194966459236118250220072832373341684811807502548775865437740413380928603517286409066468132988349659346101804191536522732555897864009629718931110070734362318766649306544646542239058461546218021995211477474988109268803428363079910181960893746733374780347100660037114349649325933477304562716982684784994735336275185192306152681709494724852777050990425792310220649389445154351096855843397038898259297512882280107638679409784072041500767664872337751694602802923724877386926931733950104265820756858258396538628273477500400505272187015477066161607937227149841088124849257808371794742600228346479818434977089186633011653400497077404247824915314279340988613045890339049568172059173141462103603755504982469967271211781169357178743021214536280242322362859405970975950146678311407005032842691860158514396063597883382989930511646464988331070737601827704533025957118657924237744568988088687348868412725532207277559880195740036361051401575631472214540798555437248115923856476878490147796000; 16 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 7, 331, 826295, 966888727379, 1150885343782126776125229, 2189994370931275641927635839405934957600645835619, 5028066689422422965378928966293914618905648071314041085071899365367981858179232284764209412483888, 99644383067069008236978512222732082849830052654055675524117810712374107209696639606066900113048802708941372721611873262783467292043413438955906780765986359351836592776505291053781774679731778784, 35789331206285722722380183487770093271812795469601334769929225927152140047964952330215391173911228254355162117664797618003925139717567765147877993302751884774731691312178798862908100641321140038693384850853385687026008943498666902649679486308314949689981160945316634751364812226799945371424563621566552238261014347155426174253241970555269196237966016255125877816703960727874249044831527418, 6879399852751306142632671328044965583939879340034006008299094079910040882176892869703884198864510252808953357854560753933538528193171790175889526348583233801498403704220643319146770547013327881401269106352190810136604562960234162744997845960850493827954830814363494987753881721136938061106539034457911075075998868637891692203940908146623729361478177653320128594349679578348757853704860545251158837054723301096157000949973475858972749172144330758139525195448280973169770441080883194610329344009518249941851652415185071412879422942821861861499859069423985380757673184551234959474668167843865986511899350884801172496274066087799076571125436133525110602588811947611236851931968543912348421956567178290568630805873967098775701177410470136209638802365626717216285658892072473373781921, 63764404806758911562555790261810325015562504844707691252380377657674664653984532576488602555343495121373227187873765314217937910677207666381806853687288778647863259487139340899164264267762730183647875343536409284352423679644898674256938674641615369578414231428193221130362249958210157639114535710923916029013679241642243676096156763267645601981000720440541811909641495183234764368339255120991439124327140107419813310731009426090950124939498321854368921088034294534886117382224504099632580652429697396208460051965320748098618359004370946579637635973787593630324358094625740058117764564807936516958223842963687566684141325495422500392187318995933918174426208646858895497746403672594406058037390534301736088179188547026012161565812345320199201221451647115852432808238738806996971055100589355638788603945480849707480561134321878090108251599223840458635816340092435026109250679728715498235928382623172998363700443109513411301448479373115475566401623918325366043844138418804830145871729524143836892007272049135178261431576789131159389768159694953325503549970143379485256502484446943182447352301305901062328561421983038921949360652707237651166958355573499715247934660526131428985504127836608761822027647635925970049616025654647101409910855423214747601765043869276532308750640082813075255990412345106287079146239932568608644551388937924598917825998018761431925478259519383704854666063047215691586585191337310677744372601065561530153493097959542875093246239456399709626501712577123341523162804928232196841474539504197821162489953173748842466303626773109617938664778, 9535536670540549153309993446855797088844709932277832862182220472200132985861670868349320425371528268588708493747796016672479296213208563572723223315338600707162400161399944124604904293946136158094894242702369852022953782511715695478264886340357287109646873093576927140656809279309358699722085666357619569234656649283330817494667597393125141657063852816058431091093808454965282574025485686451871660084570357310460485743389834639159256024252647083025334059978598620478604115738404697030828326279364957823492473246654636662200405676745513502580191373955391004210099960178239893308747974427003510826426764078818277813255028752314141387195513487484065532247662957365056168308620844201929263161045276464730319678928482014574607242235422047894863572383226632122824403765603170773940406859818533624130843373459561463659210287851468227702010719918883717447038443964533814793884393342234559624742311330493029913493017216392972304047944096878636258756786274797785480623033686113003504792402235041592415024769384248873239754567764443370646489026746006548725968263402058343105535948611674521337224806127645647737674254943065153691874257051134957824546283230459966046206620803579557495793176165143312807979593160969163336313853066290729351081067697407038646648128953535469212211513506689678612523057723474479107230217906736340436443755821896938675346284774070379836767971623452109603509312347256788309001031512074824841344622663650691953262579800789765217547072527542189495846975898903988652186234509373621551582237189668793726976887210033119194882967880202135287593381352282704755985451772456052973256570891219064119145478978052802263624682736232179796718547795090183902866884272733771780752995598996453284050670462318393705693652430601516616444838865899540885525387547041668059656598150964893943184868849503343628359971161888768671721321141602972122012160953667126960983164126710034100658251854013853567424566063058545318024435399283151487077709953113246625508617841826278240821194919167552875092131168346621617030651659984208067751806484129944098897190807361853042735178507743437029142276428622196754994796318943230581468277915812504025560860839834614417822665934925309617542106742098261032908263212697599579493073784062874237888273177464661325572664549325033588028506866680694907594373040770023456417489414622354275220636190692347521007029687095124115683310904075799116580828012092347156566471014454439505215720020673305367512262027435074740024213141037785394544179891127242125357435319049639217142321112320640122819437306114850901963577299379327511727015947963541674130775769825700247672097228108513193286919424878786676814687848527305774273099393785940928216713375471854332986082736301792573944942102738293369693856580623320424913748987869990266705264359534320309086249277325788941308442545199310047004635472530533692430323299880816646598477751654978267873995947950285765579486731304744480533976732704161205003253838404787183938580980118630157137744591660278730054597605952232462148058447690820426817394155354760739114744744857955350168087233558268096685182148971074845302968248130374896782269679445951214829138524084318, 309333116902297994514884149138570410680627970177308414981796752250029013341317979652495091012569351429047346549806750361753834008973930608799461689658057141669706943417202890895405346583016840995721822394484526693435365355180279390434594183193793124775323396627962660312512186673795526084108532424577726909548340267107477187066544480418785474629372970669345166509052850967013426546007431090662912777033783475928174235929268132539048080897266961444369870980837934563986144215694294111938091017598425361553938261962639629344441268432577963967862168067574832477281626239738155497713088955290749838938724744192205200064948412712883859163791118855812398756583903915391396919571664112469310481527197233494060612246416078714842861185738734774855714516411524509756424723392649195061830789609392808883005126883506471373040112849508962555598882814509197248371801584982268199030335683008885478333631999200833163343521674952922179614933765433767279717085576264252273712407379686112776859226615201296845331305824965570940923469776167182751530958977332497757775395079880286478667021028342393029575225161849808614674048783263635046667068728561165806187812115059277194592623900667147409976082970310854359684907901111617994947508753128337922115934219698236697478258683561995839215455600104225015362983697742114942743366353384954243250708799684533224115328868808424293994790482152580858343900928387623786525701452384243809146449654248889579454143502821529730572059272262041483108764183524773233333198517787713637350157705954510444406062452260197136581203169616298419445442182079126794902386522513331517720409438534814993815457759696738062484834449680926606223497995633910306810358370241274881998976608447252940342082773767707464726506825574651954608106621947480937013023097609654811158387817562470401036517134237877445749258636480341630525160029640443140755233066459369567803465749450818794585205445261540966571484220187451363537108331307551569965272566239589210958981765266377919877395635554373480775236931869907970920947478486332435352462910903698585273357828220977441682782715814562086306199657485675397731036446097400534369124340282922330292074391538690352479638580778059777051664050115552414386370453519092554161958435597125878940829262199770894751438365079384473073072488818997971722283979593744854605019152214453204998023742953844816114703019843256868134968181122167899674402149213914884587093646185507946525295263182014049917402762233791045897922038260070513314140905330821249218370091047271094858054231033653222074305609889205915553429149394010936081528742502999734219219176308673373112799124580112964574903627784232856445950301473054538503631884912852480687416081587877522079526146908996631010099277233926236577003392223811809727275468669484324417921480049548229348212726279094559521539966551590029154868668261988006123809535530351690009378415947647528852145430938452455941839165514965938358247190481421919050161374677684880718868411152933333455901890040294432039002675836072622132172615489357924741083720732177173048091944282100465168555827772856342829159316317998910812196648133684748201481376713371778987796376878302502399372386763083098848881194904660368276143379227384249065068996554840961776625626985120406847907893812881198547634945603514859787097271574620755594345868069110998414287210890550042001509481416153749872451435959802353757406711162949707393844171928822621790833930381097185091141893061002579330203440696528092239372308294496222472842840654365480323425830614786938276217016581500241782033154681623722467200206003409653429435151068480252804065705005550964061370991614937901568797365284225130571991768408962163354478851989899098513909158205872539779123091135231331651207567611113437493720578168042315242652233028252121097004106867960066546737993282772489093427459825895808201139275678579554099994394847303682516268869526117993578554255436376741300732020522289905152241867972790257938858917805168613976779218751142504958634731713449275005455452999581161597539631270961166219462229481016881317123544640120869355933493440252383672128189838041436066785702854249387052796662475931136492616883638134723222765651274900614006023789295501666030916568306354777842163704147053946765526496455810318371330943576117520069532061051041913609223090104597899880982665248224278063528658482723302985643935677072221094361960963101484570549982163786597256738838801476452024180491039680690262185216238867892377230817948994395304032799178795705736438621545945852041573886291223220087770423902780779354393779435522460802623145883879027205598168504434185241968308171308912686951019956472653790991743141529268396180649785830356224605036566575357267314802159944257891740076982202675063008611917516234822538059430514428986204031896602436017286681167200071593746855835715879493561079493524686102029425472586148896821590958301726070127818734347661798175915438115155284001195302289097910007436641121482398710233196947507582330617722192023622616378136850571858787055343827205162321068271141463863101432645680085067596251996265008980237777461474106394648647658183251733884191104040652247004576099015369627929495250737075666093694642404492894418754284512003580405032650430441671323306009134226643046219485552436355777828277287130801011688916645353772103584323754375542290049637978963892796655970018240151601509503741564650342069769699489820875125916680719621261748492614674369778863779673267927345492397934000803856395257858598750754755920697309257688948763752839105335783375653533571208236124446934736678336526454974046763689910182023020429721683816578966062896309562691979671720172336422508174930723836705570987837992592037172434847146066640166478281693024140628321148209081252305687365855045537216111269527124031990000859171578902612776393682950519071556427175105089347078152608777563087413105592680212814537743104528389339761929263179753110975288183279626805837705637163291785433043747444781713577694463476843830294402880771345379693801533526216729301156398215687613665653764899787205475367965407271522816982622009381796757291713020653968177239228849855736327894479703491814095091219669502920972826431695519009841047626078997003260098143001672960748063800680268601064548946923184228183018240566244569112869422892965726901395483345636584729673436480; 17 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 37, 2612, 7669996, 60119925073193, 3772777320740542859184913638, 32479526546029166790807373497054976340014946168146620855, 2036299422947946491674082394419732600058995281509307409712486893253752278123885765239927714020743452110156592705, 16208628062816314661223137873424769426842479771551148897182872440240871542248978682768594863031709123819129180266494652416927039305152834679065560699867630233477741859027274136186488127284111065148471099313698424469787695021, 487934696034629018626027156786382566376953933024419988844793011780922529680993839439110656837334665726965537896606390233189332086435696181993146028337920358644441318197899681027539980183544526307884294694105794534390929275304340938027445794483811223989060598246468149301682363822758105087012213179957204183515006365070117728564539371547619311190639503450450166340849557564753950463258104630865904573584068818319911291271772162772415101607330298400, 1284610782042169977928433690623931946568667782719540726231326685717677128760114195034119614766732501943169158611577121791377373347713310598509865617541586366103072456274664563512431433443184380950041241411777045205616461101332466968436535725795133729661138904718899520549488744347967680080787297563516782649054562835697628422763293372647568201804178133364183801061693159161965031452655363654058403976080290177864885915226029993817100977836070076400042087113552737503106771420005740053355881727824179862183824960241390725373657620551567281375638964819091576145643214630634191392616777877981589353707525379384091403305287747539657857168850135101683312324098459641705591655743652094858066537086164788765141651945591143259404326564490695278789379758508963186287298836944873743206507206081882114706977689741833104917931545809148457058300525054332757319950350742044870515441670932191025762957922689120; 18 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 14, 203, 378445, 271550691561, 183422716529673113961166, 42232751143689779857632415982883701439830505421, 4836289875046844888057673976109559067141871054168476762478835361495432542280684781076622775022, 124417835846119115536709162893100204219380392647811343303832073128990724834898910021789724293864771077129986850498341468214339124230549868531722111116796845998196808213880200376354254148869, 18075772603379532975506758135614870204092011439334717163487428426332738438416138508810488481636128970248848288468919809129656388381179669683972565891443610237995408703843233917895013227450147110268546056514448884290725444425295111057432214952014293422450406527713314895198533219699445565542642200727696825309140719321973691126253431204174981576898879772969380348390053578280822, 478670914361557886111568215881167177956398894443431749073031446788490007246254066385388590658931110463312089575299820006709019662635950903798408152516214875901394459627339600012300824435801522943116027942883514232869066679338363812340709087916490375582242057050058761874102160283028045837441567966336429917076327794958716354375595315341681857575957198048862836345534813635226752275836988482550315143227620480307584058277120021093371895745308362908909423165518056971528963306626080563137063450052711003032001184722895808347739260640941487356678000679639900064887914748934863553167812687042681071656962819092900405048385333427028949034879039130318075427819967814152644325081774277019134152086706889362618209961876892269545030494763615452020789584035857000; 19 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 20, 481, 1307186, 1749351619846, 18706306247065674452430087, 1047377706526255815489508719244463347811073563555109, 2411030498086728963645832342418403008468981239790480324078117701133464914305368969034193256897913394739, 34618464757650601154628725217027039113544492732935238519850419879730836620447703156173392629330536167990077672282475410618927634113414110210981383657324920322975799747966919100736710819793313737205959021822, 6580508843326071671047704326096689848293601919593916958933108301925191169089534261251323432422390976996449906038310420034788801155019125369199083263255827066167872588662406109796068234568595209218233583201166307752720552056062342308130517318845500419453636457641321042864131508661128912581857411138622543961488726425336377860212434466297755905873030006019950520629522811751934346005773882475253652900102640207281, 63789689292004844576089329681581724624225007437749660085686382044493369120584313420128566490705772457230526244406179011739960744563944226124142103076348030239015806891978821464693633300060130398715979299161914953549955952154530743447550396876543140246443285126386767217645265631925460279553678127251366560659103115164183124611106142744707815358645743170199767256853185608453289941713811274056175824042539654111820952198234303411274711679568688464508788438956812959488832885607852832478005484190114893235936775161060595631683518581771414908740915470668294278483676973577101418906557668843276368973526704201002702631423633045797200538461154017007435280130332907657359443256566212307294542122643026182866493162023715760778514344521191590039080209558256212762026568729793829219897188817672641776972958736755689962973859152676610, 20150115243109918982314513968438243458329448776261308776843134279128169824649959916864174290219396835693939921403841874362760415166161354597724776641133199762033305534287831369495132126630756181107924476112126773155154341015162416789023518665911298548546729695198996022261880345796678064615312106130020392803418726276458812569824199323902920592546250331000873953695579828375463398091743695905292971488306844340984836113970489215460989410903120371339945622508347387357036473627983641241354870324580081150989722608403515090332763206859644638860415726888373094121498408256939531473839710727798510812836052254474223189260501853891648981124050345784248342400258432916064972134632884438498783503069678123351450830164753215099789304716581070420791710104196925232389918420041766635563398766604031162061749234722554574181752690042952889725217687853879258306618292906544409051326849819118688647834090704945678062808794012498196494259760329405187168406043670186722258742478388509055954168945979652611623337611208840098233575209819718257192444969452862734702691113656157873539834910014505890751916545833506406000355744907757074040580458659137052026685621133518528561999673370249827657345685020365758788702657662614206413753274593484884143927633689422430362021597428030856066892258218946034890941299181459130065187488277647079426165088194299807172791612829800034259895578869276194394269408778416766059949554501742893720135900659660118585500708427681566850625517349926013692624945466423193070026472790123003511772209794355825310425477901522136461570735363409118584664328552534143452579684939425373859484644211852363096235588422689782281118787396223393119740466665, 8676180483297107597024283004820699598773730316699271709496822285396840519266489831659709728643843878461850202126907130493071866644701204415157496166613313138469820491610940184589884402442944752358360511797682572634664669684940537988941260864131275199691317407271541415810356596727250418630213659603334767376955995105313499593422407455249100919843743615359541763586360484281946019569649971326169010551279945931946294044163477710597543719370026725178981034359344378161914069323173812634407649568921875021003401526491598944459365359115812586166358658953012566186038683008868928187425288812464093873066507821440931625955295634716774833802794513127127384709354267446621136369551380007977504017710549764946453359297948960639663633063606749465792090713372326938336572737756382416703034650338771672688573650366444778362824015227834478993216846992243729082590129458364479902808464870495490582837201291669781587447910201353179766795935283832799152243567438894086960160739991819572711376784891735643013591440917484840318338049027058192573014256820644795538417963925856144080356046424279567521690925878867470164255845818575413750049484458257096688315328367257037526749029067992528712081493599639126511439825750435923090977016575888560718819397654419527831806152928624793263852643226623394361787641090481210500718314393642405899937426119364835825013227830243831790821726582029092881354495363941391148580138767482438575103485208034848459305182316308870193630346017239015356474484302894463431578521499850500074846164238338701037671302919213132082904172691630081932795461301987517070623691390379491693441955717373911848939275817579433068407487837593358470277046729674536974943725556519582504148721012549302998574761238855166590285306722639361595292339421842589897153440483102241296495420232030431510925844409922706035981332649194994746683006832021108807348049046236847451452090091947386090757483390924794002405985868335665635647895579727361852078711301397863353753312030901518789229363490798434196926717434682095839760676876456938569606389925041243462164770066058865379334822660500324992349264587078229401953394650787631334434299064476480983893819752277888473098555474315874748458976254215072727284281313133691722373423914898758112360374951732202420014338774374373202623670148174406190540558098891693708534506257312648924176632362064250372608420605817424122906107951916296759478650496082184540094766102087602012239365448803914358193780582897882400393910337513924004620253327490142109250830259467122953854566902803414242087849661516938221325819311002848325891158080597027304757919240331341995393812148757702605796456247702579252732322306380835263229711901589832235671173020360354101422824426252989409532726058918141722751391031863420085838268332813059582323003653593125968579743885173851695574745454449462201796990151096193822678667793742794323076875466712850791274619414981106133506381234547319858834278606911991001575552732781022486239627773314936045796452502583355975042514139009496020290286683568633270821563793521087282164415054463577928345465782391507965988920942367183317877745974528251406540963620828777001588120386107516028961768093228412158677011208680874426065920926743253194082913755621194041019119992889329603145799796400328935694697488464489451071730266514619080485784460903524820091555281703341908925, 291717578372906689017556471145128587836291222906835567756783193928915551903871589552345502150093488959578091935235863804517868858001541443961227888869121884493850467638465567056937749800119439936173522962561428092429704506989857829848863662897037854713333495102376082973398919665836679791269073106682316601675132209440113847606605287398826619888147745382340533226410499712590916231567314362248197686185565607692921039712207140793552902082893663896395325188837444360097438412023048940210739870095619374574378663738874197914411849685900292576562374623099998990558801035325635275071389443183927589983406960069039025285045824433968918486904019686432573976174030183652693596187749751192795637795035992653982997949491967532335969722132087874706976871476560987451381012406208995261433912376389612304792586576521369149019838045375613214209810407280008695235956994647607607023757869402082170387715558572566706542979422151598786667856576792016729962415410385690430916517792947578568222329457354381976462141566415967136091101753904887079060451882793120663799210862533750900440631102174559603062839192199526836547088498617251370921866389172004489997193179144273828548284855589442892712080573834856176895788961647792513300483649345368663827244919703962322856208173425326382200273098724899809186928716365016049829246608357625996311000186831548601767838066957942506070985546033421140072666454525687167548243249743344021832453670197827854364529354420795762328963422041153963266094537415252999860117157342738782819693222575543895102791149912550230045610707920225212690619686838277937934464939590579505062025996197428387150370064775419843590095122567338420982655930241329192410432668355546832505042697578529066847210003422497916934941170931180528475162149048394509764279903295518024962421825419642857189262695500222496993947213183098428815438404845315181639995751746953835434989748439535801492357716097839230707858391846463189084817159856943955846936325320659444432632437918156807206895995142915006551270646666401230265796824478175881596309428428748224212549120066299472687022611639861354769828289455994470250725238233818652347487434725191682059640396769639087531530227614470809168238946168752305633588771012803689592143600714776450562713575351208716901095879602281521162271755920637921471120050202456852980788838397584921872681487470391669030809429478144528103828995264423571821413380271739444252232654316573142052029813457034309827347621106632809072665936382831206313440076393540927387381235258336292305365027475104661817025776790148276090973902712644585063814198742797725405285886219994039646552675067322295512051841400731569342711387744632346513924691536204890644614192728335608854045304346908984925932371726843841610452918577383518326373281483072758333761283408672549095922404639518902230659497310272647531366237199437173724126220770150377281983805384219394033182187931927890609784582328830412128722587882834586585211112686253358679723281510307531801986183257184831262845254224390249275539140156903069524301322178558340447704805579195059408548848684819726320448733715760824259290120532783639643721074749102459947687785839844324857759055430191490505161243585222480432034470619360572066447973930782102801112727498989950297434153550900668829290458548306223770235667876713819768875337110750614699931160448918365568667040023475468125015358281746749140826150515133805910693372846070570135269158457923335531441521897043620354064697749930485245130030825304254176955646164241819908271878880090055172059760625559615419211796869548829717384770864007994277635473102711572244981372640882988078846480274567145753119620966931454966999040102930117181195973286522406428480129646969584655364056152375362946537952353761202282172967401934196092772249267062668221788069268510419492896532518407576086235188263919421962156106891539557148994726160531043758444373305753612801038724273040668642890636088675338937483519198184922792616921102779933036698401909379234330760436251417414719437538877209787131105357369296762358294146032739818583915969117112692239052811158753990484837764251094455080746805146259572721266896591601760178436074703363064481052354947344141288235113213007752755464601790434169417090607190745008063332510744737003340888053687307974115632428095971725144215920260727078062024186120479286703083044514939852879426920326968149431103300542117685386861105692781410143730255705130828963144018320542394236088572228034949300655605208756935938284617702669453119960739131147596690859624236775918649598142687548729667695627276237601032843042494446006245619059756671855224535779444197419847486819126775309886550778945483818220958130901595542098687566157888723825251303431867444125178199828794904224442143201298541454822309805711086042576309081502610142358382205145513778823307045588482874408373394444821617293241068537171840931361359600352618398953321517944435365093046859386595975843567151640762982575984809764241380526334919177126711693996523160466249651101633969135624621510879880393723351136056191486883349951304145209557268827804705320976162544313602847230836939199993109563409313825339552481389112783109385006806426805364960332480160342886188600411785836588705551837695967594284063396401379227895084997494471363903445627781381442012698422892632932732709924235547734964036447799987292742637271368421490052264248686386075861402378641665573697906515372673350883328715432927687325468297807708038582486422463736753553298023401075965534204957605769177679060064330287957304336404936409511280546162279006817496007864304748372102004880579223382113605507639277672245839454825389956518880879575054275303024923914443783801592768637241545121252707854267183550518618198902954367703329834903720272814817162903704785061662115627863092852372321433725589184863272607731130741446161586402665433990528105574525824146002019780419160368291864333082976421591052333124692694337682036966633204439245701840015419617267918452039849308671770210655380608065973374008252972915156194702613453513762893309090465985084407674618361379414268300461298943021946797458439451653435714696419179175799267363892522830143126762314470178684473681527204503123035843596418353615444107767105941918188736403733597412686165640103724130559255343364525120064601063886485232358244152033237914341892306048110846165849156025783189897848270542069847905207160546079287088895960681149652447675827145504128640033732126824451900604676969127897828937319601705298026147583065576074482104412148905489530185605038991454018646102516589577522021230774757013880957692157025755493501168779849297990563479518837947345220610821299288825838592510749109853739289973507797074299842091499532662869, 95005533538796697478423355045378265469279087589896718267567993947335003879968065678039396822484235312040933612153706435737052530355122155020728950756770808427881669925956126698069821085055634223540807359367755204845963698388135470534183191704033101889778869172577538693668065701855000641439951089953872167316821369468533743686001875666435841309095785502966992430031697940697109420918481565474362448583582506255962858482152976989713203415828875396378618873102480031319662101009629405472152337946170046779242852173549763262503183829409659086046446293340008318594673887716728954429738718603222862236180155669046999092274799920630991297620029033974934915046302235516351156657914681575923551211285978603138656908273441310002211950325642901653078212012041223759870726277206387659113159118797115473014342654020206480923137475422844353726965144962487152928212478151731626270452170130395014196139674251783424715440801997370228357872042071775922487015780806415119316509497132056611654980016526313835191014288659097468309072545762375293312679195717590736499575541412879730128974604735926609335048365574834232370296474365587928005125549020841550698527237268745276651748295681436856503349855319894061749827110822361636516337350783155796674850346803099213726386263145103562257324057591183159570188809523642801667466803811530181131051205196785764399430454485677159010696853215375163863372775373861217562026471966661160232344408927623819242174519794813256604638431120901445084207912318549784756928822936219881830280596707576834819225399861568959489889826323143636820171240113079825377189883180476186601228609503163920140242301169330608405919756896345918769343279300626495292947751180567517957614522649493410026242038993396533665141915974647090005153117408753519828315220759684916946860137150233885868915660591118125393073366658426464409996292913859217630671832507552559668536374880780748276964472399510878690401388907272164661123984844686976441609959849570389803570514749214522494462393400528133716969999046486338015497377765581467286000716092592598743113027981556576369901787588086678601525843640223484171732969292533420772251646818225740797298709385386597898479539382885143572777726399777923535350825097206716293422289567320399131235245782506789000444594693327096197322531452727034969327992076294928231495631538298637980207052792044892109012941772396429423368027458334103675395697248351699296245972057878572918154939139783063816492961345301833071741404149202284421338654357366784646562798188283960936019721539790864234283338083032125097145890663708769181110332541649068938969240615328454120251773935186185515006198491073772177055840208302918293177525954025213402431382086369078630030697105028569060448389337733900820833422379128380449249524487857219098190308666113921177606198500109556534004812046978776578343884128604083696888949415697847598100847382612160018652963989629285121987786768546248679485556774400327305370394916074595134006703934876362724078351787937862934462445436709156648746169879160301524372639647993684510379542445990453026802759274992835749303732163865432159707143792505336564959340166069504485104098243908875258116959795557813052594544538291923006488228412438199861298844364126887700928570255170982409586538026620263275372199408418416869802067457883491174541123445963516878822706730749192678612735359526063962026379820257240877226340295897921536665775311222022795534440142937629818667366858658101772224337208827013615521153295918834537327116163206676008148696946877392840346949056156163781677889617240868488829751273792260429069338629433228441307612422772815400019210382342561037330890554102810445675469734595619823193661359783005508929170142907313432961469747708521656926486492285326916814461008764923914167255756176794758618572166950771828211651303643453840306838726710055564491994708777146302591646383687222146656016321260926087044089029307793433926109675471822443712812267034080593728878646066281377160116903103952775012349193183933004986896332469693929436482376895932889935723304479746506718620061211093324774597340980594905793452629476539765820990838926446795761246974417146437869970996494028172764124568314689688548515883516880420445074385393065960934883545845147951464325614461781105158086591654310076663742644617576361835200692369565086426183965662152554128144394946817227412717578438210606131948537459224427856935317910464448558952229095864121320307690379468748874102865376394834295697946277366109785028348272650225561144527857672872613235611757162269378998568201124115965295398871827127987293207168238693931208426794021081631040762695098472664487683011347373865622243142870440868623737222950932166165354627840204944936160304327870722099613735844565247562353592551387284926325334756430739977284198322405812973677768354324601588805243958942187187947257955144719875842645630770550393128499141050541947495337598681938968545635705846105957677905880598790540190145149656161866576745571637094859491170823878025951365613500982406766815390836416237712644267888475285473810997976410071087499408344898703648617331999603849587781965538278262159431686211297145986582571196559687760269100042282033892706613359067828673752686417995228460381369606103824623889051146413769019368802244966636466462780768321807199410493872037865957398590111578758871988728539228426143301878539113130549670821602710498183455116860439241558486485259133075363589726743211967816902027666784215980091874156048334549712241698734922274684050722815934178322649468683464008373080638954652268292273164900004339086233947875184914536701141733466587600311870028389268404605264244096614395676617170875932571964836074514050748869255867297278658885903928268040380068515881087121841945077052216050961925860505581154244842579142639121827596033847312750717024857931692513246746763905720975186273366852900674362036813445297773350593970584806591063018475623122109584755265485416397635400259110446024971248705534391098781355653189826580935647907172270237403731445385289005934957949667123565650768349690957441172208612416706940400411224302394507653355468594479742213324213248969335828476055851591846957901484446575664838657378067893155552625682714941759704762519673857319330911648635009905785010776790929396418654579095813446181995019805237797603367400336237686678623419558113075836258459140227092437617782422619930459952218376672149182921401210761115126646658049734910916418129669288440494999455172708057392839645419350522168979992743914827522777406775096949768594498638129292214096195183821017884700977422058853768081617464033824101420643974596571510556800432270582559182828320369944710671345356150900394770858828658894269418228134960477978573019134044760217271663140149613657347374457325069158362274880605309454200358502506369381843675212575947359776607764232299409666299143413421889658546572697594930060992579849603222847741880143148216252260574632355176434621539590223510393102317572828234137861058281009200883768480340241874186184071534573425884753984490547181356533007738982278027506087808237973851685985786917585150198312218591789266269680556785232900080074318676942239048569924497977863497042569175026906116592282461890921602602431294669524978281190448790907258689146606869725767970834925485717982303236534474517315954551594593446504483344610817342156896561598902521006295543355118704123489936701269738621810745283574041353615286751513441216136023221668423033045725803704654709744361026656715677910050692843442742118637719226361656438316159857617626424797481548308863026285107600023403878763235193985947963309641888664770541227920485408709497261299612046776367554943133978196146380828148071725393153596287426047695339237319575445565678928406684468292842220408086695173622153829308867732046752195529457361942561125460233771359057567266516616550071222931786852463092724466025325536460672182708913016515240633071664779035382050168902730877891796012073088493161465906769760000477406766520308160190828309219245892055824614226579129506409983262320666900372231243172314704347086951426029950097880022547914808349379390400181248467515005419577471648138020181554739221407337716652169836267097978283169208972891474300647035818888519975817742262069127306954178945136030552751648943160696405820551894933241766583665158742171217027430682753523101085530153925220051188172925811172538069341853290290504624795800366592649675593873365077370877554496689410782942745460737187054739326651814180021685384736392122507414266736077174390512598482576314596652820429743904721594534037911927717685665136152862389355230304702509085523320177416259888321909521736849278049684463696613435665381552944940507935595415542870943026399018729721815259300267403490555284498277566103368579726933249006644053298349996635867332387355477014525479898893664786816010624592213761956446661843749038209215927699703120189385645466830364238405556425639210502427889544635187902329085169480511027239908118661750025676682093821050729094437412037557483651563982452009203269100861918864991771569959161529646665463990453793692982186147961644676600733009315947462088163157540616878515173661224249189254759694218476506211909087255245080827677053664135572321590163296765172621659599842230209056785337788191991137188619041798235751835940797737033923944783035081391493816546807212030449679556712968021124377870435066266841054567420878440951851436373302067798519383579353712442923757001785131791263144370405099537341432233342922753247508893350620476871006500310104412671554561577206101538746182398663962653577573561787658585325511273523136634138609194129416780354102967787801996961269429351674355277457763376411877024954729995896261589741312665218490153128441548601129662516243984496020847755223591297151120949976734665645459667379854846500319173727294326448029535293773138791151528257433046992533563455845728900684832550512873525543326715639850399386045641203160364075341028953679141609254492911545711707049169112123344440302120655278434402805110255225338856792898849058903520573241764722089585623838498428101946337507386596120033931107569866043796256111867136943112939104420711843654513864874172728872352584566490948552245767642860729607900143233525465671775440853892192060776568955781772390861414177097571883674264567942626634378439905318795041829636168196471207178516362005379623769775730366101842664981496338308628793422470813915414498128905097214593233366701357905241619324229246983913851947351094910013876090623992888595526104606078230245165675962042387713976441832332934117014666629980323704426135863116700800926998372070001088500932013923491201135876019139819390534111756257233745244306404386992954939341536777497365329333954443514098264180132948455215729468685448553993391739482036197920349240363840017749453312001237203847864706846119472166854780692818069721963533335709891747767980350804524782994122149406537825979359066065371131948679114410092511150083953054650607429053730922745621552484194466226839833779347561209842262698397853775620344673161997866957360036705477131731526963616519818230236386529669848623139920105934920473316085646518866250457391811806491937326006741090402512444824771208867406501016334073525082447871999147540490798915703936644187591268322050144586871268336936621521347267094615825121278873577515116462995594252403278545310517724626133411589371019653098613862160573158182800140969833826079283881177936798217043380105506376813060664127939489600551804505086873083547478675619006869312970278392278985757708497175659832968460875910203254324322887399441085385211675530707089070896855224681037192307245823392477330121538779883010272620778972503983655246398084259226608436824265975717693304270724548653654077236409095823473012852036578263912093016887087714152995290188404085042810418042845990302535704744791793135361645330418851872856846854251645216845526738607829330586737859739167783140720742431594986584143080703391944400617118345900618068941541820715861006990900500132842121236730922563592385168292484333675228597234823926160038007901332118851354299773928757546091635857880102031119785939019630892449121121664930567933333415547668114300576843384765244428327626473095552593716277453908970763890465230693707275656435797550310957175985851241592844965184927395059613438952913863324067304121969133972987496115415726955128460089627010628235169422415037121838032894581706495428557401914330773483848777840517093694382261058020345710960063934647221365061493814663596109076068005501609148223008076235099292176568968832519153805125012367816801895449617934446928872434899526108238604201109110698324731441433561560496089277779683094391705847744902909445293992286036236676876616250829281279894380927483657674946782071543817912629065497742850452080949701883201248839345178240408312857236136700136626916536053049623651009420076086653774662145320702713113009419461243550618622556305647685998609419303370426745928600019711214854677852328197147092123824408042852628192030822454252035094871202005462077998525165186286822411649709346335348302840353420909887971440589031229313398405512576095920412985579851102208212880161389728860774815019748688139695654107366228041100231733375342518484955013366807208859468379741363473557752817342655570169082802742115332666815466742359502586282121679486304158717638197712222226024069422049021110643862261643016060288052328779360069826208384596, 12601296594499158002591953393715410038041652788781499442804203795605413686160027691578805637183581544408685959565238349377289531259734858345952549516900296954648033463774539666498266225179442272163107981581775788549523939262989164217021358747572796739899266591600110469901460297892014649386844330744578850455078234456338398221080420483806850983982722452852467315285222311873490132558794423603212212730275226919031351955000282324581774912103749696749133342535489002283054801717913446630605700217612609474770592116510933189878484050053339136558976279363683446058234035185859337379238586551973733620730593946593838557932318963633713246541954440636086570622128186151601593960714200060633188488541480587146321933933461407096165635617476546877278977801896094925129996416233699213377701024711257606504301886631191845412354110278913142522308309272638674785064850046503725912079084046041070206770048697117296645047122067142948667563316444784429327361914483561584176177299294329436717329755567795120945725000137869405533933465230822476829467555171007745867384248656440165692628383710044611507415425106481437160312713317455577027060479253886974634826534333281137088347886157966865512213633261617448445453414434484671238808982052043345019679106550229103596310193949760884514042160786909248648255685156409486270204208890778076997423043557123998112071792937473408809792707918919173324345077060702328461778191825980664288673270907285198260717632825438521326532913250138162281108893252488538198100200542877494835298804828558384820745405564788265156530395991464687974919134797758386531694032422684815959751235836089033445941211015795447548959157844989765049529162030751816577713825841961985834140548860618891206509125012636365672367173200460131813033251490136355299961530396805972461654117189473772620762444433041288842257336428636390882299243601434536769861926270858144121359418322300540677421452453214640028975917164798416987814397453015968331177011423837285570625229687922294255717592896710074751796079211958094273619313928809283249349852970195118047457305061620734254198707129132432392752575659040622842166992677166250496763907901208943387872421044683744576743337861084774861282250115114593869250409681530304357773807785711187144489924937289136639179501163378218171308965732816842956776092504322907546226051898724262559519024019741596491620162550677571357112325601632323355023038056199159418909933406886616884786629725590389252181384839088098801944325926189495310055327634766043752315352155917038230590955048710575151923604556661875779213128051324401084441611844406740007688148946602816492719103586284719110716649028279263732030190850327171415398689015673692725579104873220342777579866094493444826645467295464626624455132651096589394472942642052207042623185255780902180574016497844833767767941731235558874757079103467428822595141696867334506949953353375356573906076753661163784993698113785689830502196407062465355687361599556317689398531716410138346882116893560053721687042578832588030918175488741326389032952350357352100598963782530753210919984505706733745232019312299809145103274575987651099507180501719911872251194577068026739915591668415853880084157180650203498768123321577303777360325618368013119364355474548134372218563224796068802500076756240350072245954102104728320211384583570660803618067232948064572557566318325681431764154479676663680388181346042482216069530124819515002990255813029787382892207207198927375574226953726494299325503608824110601466808667503031476529533162059486509548696431284589342336864234475638937077378154185299797504130967800760262578703564267878874557740590769276649000094061013382206634236893849805582784381412703705079132762745631306063403409100968123067423329158664120891696611992155061904560413477821020600171137189839531735390428214189590694737103380396212341795701620019606570069236875203114504081090428242737826945599888341967014671932427348787997810870507172875773684528938208376226963847540668704508133920103093116345115731849464873245370893407744363090548295333555451561153887252085083697645846497702758120564640096286861137179996166709338888402550867101570324354982545645949898705615116917847466467207730528582996909026694063930430946714150836391910929962042760980200395633408030400325831114164567804996047478775933409865835554499212354238829461584686623143514921376546144105618794057120207843725315077639681380301140622413410633200031522001719171859767850271403472515257866569616714777962712660034741065037081484419015044199685878576731194603841494151335063336376216332382785412742266090015777449288650004565001359802573698250543614212255588932301129861615371207690091309914053918947559181874560875209519235998245398654014796310483058350993730490979571792939295400327051567681878140119981506512577623849131206710256606098586346860876164743878593765252512384478098218276430722894015240356407411715225911985125147871281299233705501801755060270503937241863285781286967751381463098027200239192757799437143960197467626266716732151669868676732976105377452940609270679113132405693348448572618674478918475054461604214867557500745471976714709832580571124323428189830684849204088214633134874679196711239350820296886413473937149103480695635514352438529463784294971211353309835307417572028879114879875187633074929491162885284428481099426367417564274660215703783098756923303253202925454733641032682464687755744741694689460544683214101286813366828839333773592968125024839358492448922325809954852682971602289926109788771471027034910190260864826424261308590252740838521933622413000843331179751699908293316715645177884211741989980918839282652334995661637763019279341791555588822397229905679091043175537076660860046907940910647851069044865698194436904487098547353241911606967370938384962054636781510642981634830522475723981449108707327535703917189915932195990098840465053102151933963126169819278998971958407388104187748001565185642621590133793303968343064857959267218094251781284782106039954602475257682044581168365774873257754344888297476597934782828815122405446021516236587836273015365679773236726343429883856852926413791489590904154436724142025979661227099800824356572966256417351905398777475100359730327112652184830931639412385997219345491183455132812778455770810547113971211993944007855082848069158254757435711870430493301940626117921313929164280482493719540057297393237408967742627861003920289756683316912005923940172110879656830569623945199515843856779447364516760034205163333087730368010740375613489878685152193812925021420017132596638129919517412331352270279374908417526569073533017208893084061215310398260280329182554365703810663386069731015261221114080204518831288700348806968716129090089758334974177714678736936432603622813712104355814931861675035760911871221322233467823671182188662421556918977503504774351596067585181432009769277333537706714199075716000622331809347712301376064644447859883983556082362388160741734738459613118717560369005021272722520801332966623146445286866001057673780962382702431620617015558104265793361047220012284996652162699735090120648389204131161187554553281603392181392454930207613305445890577973578998293774912100320599748641814479448468696977361452844199387955835313614567859159787390011756166333255840572546948705248624642416661432165352757485503143986083205081470010113501618228318555633747450157325397810526251327479277370732270387027272151291553568090401310735763530682495643070639878414891957159423386704044398575631507439946701662866517694624342833408238920801659972346675283210206262065367293282653606844849310577061268961356776040260657580651797823827132397613516225358923271373744581473493330586891575450732869919727435889189964422394533028374984359206948740312618233318625489612833582830372621361584461656673046939539586603333020160828182056451391400296637108018039776273877111253035472028446392795817195870357147703915674662508864841293889466390974566100206620599159287419718260402692181943788801477267666514144813948021496938569502560517554536609809807534692488283796098363838856684935661475688667847324709446467826695476687175201891847676850888066308345768146194584864853555639433813035363062296451186705502248402992216524018620487035707381686762876952894200707416498499644325676985692167037006368788016801720516656788229660640000516559939584446637429960361655041695466713446319654306998013394278220164121149248224228189024618946102206532260627456670069105453430572113020106633180934070915825700125806585980500683723028593880281132205329782193925344780779517937681065330411989704665058381757705571304708433305285332799593882491552522395112597695992858996547293993865826851573569015894546758504598051210593364674138400056181755451852634472600370811117512931580204976171938815178642453407019987391602093570380484620191165056234811254811533233228979439551322102845437140751387234537591777742674870877117831346590964011960636829364725073530778069612061697240702570152796331389135772053189246329132739442874479524300529403806894387117337882087103716692426365937056821704065698654695880981069614212840140224825578266733491937766089108446958351832709183157044540850891020275258071985806302380453182212406488182838944779831176322594791235915384249827030914494112389482887093728641710733108358797524241211986842805202294266158758158258479953734418180975939630514531978059777567161877632408785762098929847734551642511852741022167658833343749506554756370425552711242308760833297966976581458425174386504504994237426661422432964247613212910048791719370330843047303761296418097616732948438404206292150759820502513461887966348206044577538110829704513990861855524020936042055072269326916852444275367290848958293703358114925201624009816358923653605799303072159168982146801353831061912086918308880320145460436983895285106749053913759517241843985497743066671749461444127666046907533994486356416870181905562612663158805171958021561043545082906075226627200869876641074300145366357819082183645644635929599034160314719051667655160547309618174344187107449078258276652371646658107130972722003349682251596538036386415416124115786087798723399745712056463181549687385085058766771891050040521955083683009941039031891887556220268947724461484155784595877842840129199010629705039555481631793501874182684320363673211002901668393494074166222187216000734173279674958018638635252379797191178207389428264707702486671148123145336262498733567899022334337688784430283142103953335265814615597799840076791183626465388694139555881297438119330520464750049295467826936052301721282172952269698305074965109263112401337809179780267545108223415045652596078734216302721000237417146334432319162503567075217124225895955927240926910734005537688815017579172203397463711267597377125892714085578633037896634963290664952861986654764694502227410525337762575687512737125603689998288362263782389858443263576771140598284650514955149836762926943546388572341270976487750635370738078049666095570352428512168434610762371208709942066274832142044519777922152909805615606545274918049619197364286713726162604066689710396178630731167493707348257084102650090961133844605623430654410473577004377901451082834520374457342621310488098640559073194529109345092489777121780697624892281710802327543613055919695599837246904579043348030101939967619401493999990845888750226812392111401588500333975701086791165458949884831544977513431822819701367918943530094505737776370073131732427930648629458125310480684263096404108039102503197091130203663504467798375024107602447929104058002534935312209808455349542355078052765445922425618747226002467048995237735627365274341941222740350075844571199483520654647075802103396309557843962209184420665336051189128732899222601438103406377483562295007176276645944824327816053445079918167085849813861360798997662736399183187532102177663994941928163285127563794371212641126651246530347435089903726507865367943480655062798302255702192865362340862419652324142053953489405064096552826393631454364870471332927086569486583867398119726246213788185622090443023994996978539712286686063140854972864850368825844294776362165675627582083776235308553988827314044358287794388809366573985215785192460071630993126879975685612743741936799410353700173158688435716148561840711252520587925025588130988557726131846327768256680599694073279216042908391527872985490360083369655202837061148232236055426076779766014562670599478893780475374872153932510089223809106396930789225314686368384205406246299263062917928003060235665988658122120830817638998011230840343300684115244664849875008756614649357547225221886280440739288021402565708593723333708568954533249793115978607004750043944168744533046252528069905407537326354936106177534063959777217300460613237040026435520995016346492410049343854405300921775853936984494427235269335775524301400603916141233974116072083101611271514817827290312297072522275200550221841299896095038199949169684217338088347386911433506371466895510849309828995358823569800632852153037060719887801290582604163411666298421676937007628514985876129932423488923240909489532871399042611804376723147352290712566868914938923806931435326779625241184348365835599369911989714865861632907078993143871814712769445353858860898228017297391722516674774279881186423286476822872685483843770253587626970586652765406132089249351058903519152349625127940535637115184302989611204289503173136095399362521159908724132954007646531509899196511813072723599163802517032684043301239078606043629534309213484420564070041072299759721290736908960459640007184530120306318684182597271096043505391656044430037343612365468531505562893295876897214340923264358053459650737803168633449353904889457122529584541311726645048940285313284561582398774301652794859627859571672260394887259559563293182163154892368917362983343875576726817047129924834610449598681315320211573164878924389946515611198675869703549791419297894281838880280287655808555148818990877982801566876017198346930273183767889612895561149780176281247060949056648363412741538214028921402170277421244553127077709468718001686285945183014830604482125065630519104216197570727279703636616930978857211636527726967964457572601845122472221023205172264991757768639537103839579849408485658244485865715115200670613142631344769723028109746305472484135010719366130967771899339208857695207754061303513532909680365124143149144387576681762668094048319945343118248492132495643172469989218179237595150790331615320711831286965951263119857271314598905080507437845688287245267185251339212235120993553372507045357611193292134022517930017366468307882697922831176270276977104310280092161250982316119131677407662987048843874292353679999662139346357812485243897540463706672075486782114490450419370041818583333881375654828839897440052975458675277617742078354476299333827843460037834432991273323891082684564449926743119612053441444487747577242973081449788532250174292349997907713522032932207719799170603271691370704404527931198039080608513500875229369070098448797184829682972199601748306835415172462431365914369090669538983325198453852934611344263702531086110090448013670843230338539353879735865708898361143418090779380441070805554845468374129747111311817956076370000298526325282139896767523041652071617404765137719902459950072722181141076681216170770108366851884546098682353890983180952752714817910938458472544738267856453704408286533075053366823086417688908793213860119890518324356011981518757815977080070856330793173175295526720891808772167055494671889822759179471392822864567623259422304913387586836241316523047307718574929951416666513527426763371031282357754128122375585710267507222915639530648966879182709394001172590838450776073116949422460052121890876251533739985917219840829825079688517743949483125087939701653087350001558912053282022567339010615078675774781102841936879874463080546524820728719780446176524478759305446139116566470863441316711837276978382862174349797948832022537600202231444375747510762795406849553823776911540994321636931612086367439935891761977688180323481615687810917435624645140544573473055830396565188823451268577321973160658244742254826214087768831675917914568884099538454204316582451787176746197713032151215549783155215110637509011995439134488766856461130654375436158592402850728952913868954133383730568601173853959274946499212139081298896723024093620428876236286465574717169011286721989039509581097468201819693894821132212208269495719136575512398942296394245809048305606017278626358313741894710841784584876123365621766788826000326774595016219679746646927320177721198821159720571793750786385599142792917354078514519528766155372207394855257660333580084851039287459047243072943365354883297393021933351036097989556412942571708230653801489030395283147153347613948678514609247555677868790425983910101864836383234968058924304807157846440150189443202686228797880436104637103763896503142739666988229373717413192458715416960224896343687624162654996232902160555420802857826890083617998370787219020567263517059088484059301027786038170812154258912903876412077460527046457191242476941920566164206044385716982988775245070487060989849126496882318248094385208549169435997633580183277133526672264266793531643196685425187842437604171053596836007299134152202062123927240238154250338654742922341809405496781740000889139567370966409236800701424502277981698625588596058234477821128098403059632335834014707837192741233199213575123039110232423761030928745164641284305821995141671718504906280264933285677554001309664676013770846127319602734638978682877537716540752281692739747124857914948205367462376918150133743413141394015386794216407748282403186273784936618417098095147776824296365769713778049993611465691881372645119663410387842632206724305436531294149346945838893006175552716688688918177171159088629986682333206515811679874996065343266447914583097817028667143807997788425908477361927331320083801599028619924543445259458676049694799403221891779511314952326569451968524093053366805074288485347439610692183219804016443416662874965311576394729819305963248098792037588006470454194269351241388565988872274824001997643336856968037378534625471687736690393128892755780669562015415175026135759772351069811951116359814349137255783329592854866816457434143090902357131576804256785885643300094734665457387674118691355980127928123438841104191024743425721072197629819577412934168107569727972913707173796054354930988292412979916255293246104532950249109347141548415984697654646544687033268049178225760001067686292910104304846687853779691197202539958687436141899787525389866628477886643899090115575804488303716062665202842458473113720994428314007300378881950791892179400096868010160455914045774986321902574213131503990841209022093871890446581781549530359365250795661384312367842752638853487216727323796948044492606410084060375370653353243306181196933491737633993305183407936912546073640805433811937980419458409078979672326657775901738024043070364308992937954568807831841925704023646782599529742916386956022197859748591375902093943356582177212341068573478989600662835217429846274181926961427898974036713378902887078577722952560452194173953012895947929095058550635363467682974308387870537472852618252972532785367541317393310320414148171480098749527940250865335798336748122027851836615750113732705742548057960478502121090589198224980859446025463840703810510212359940399850036107606307343253848083621220056973853852941045974258558127640356841653302500857891416038496649563770024948458840785681744339254252447194304809828186896827359580317528782181827499982707316953555905168971977369554411479360349154613931291577208148880610705407985392105968173196026906119855829470580697667814892781262033025173646144736965067130795374338878074826121595209398082243560489441370308078299227122106949093501100330693707641310661007330987667711608423719233704718344241735166828170963838406007526441674866887849560059346212923972168107216162183501310675760134421038290871966517999011464068184183053839837347565896155604728405675112239800826847252800206796132365987510903545512735741832908378332244381519626679390039875490129546174382336986631600264724506663587045955079235421901854135628071083399152630747808022272790986595181315657471546589791898556486142111010133601941420247890100146239993807678366220057873451897488934978141059241371382652952520353904446384786450363495931298432075952461294927504904497661089441598394671403441788901247101554162454879522242343817816449856941316440027331784868439959103654190427830225606931132210108772607135942931691826127730311516449883929025963088227216608052111293373612469449517619333987980409890534815210611691346230874506686048184474093666170738146199476481915757962127873988074728505589248321582547233660239893131359016078304366512797033069805226612734106623920060776568873415976928634365392461420914042340115895168801843385478287253875743279448967705233971496949258182618347592035243565692369743352616488711677767277950049309042164889968745596738401860892310387576704243060328030107406370434822978330608442376858813192160722899915671028209293566400094846037184804996955937911394335998395680402801705380674998764390484151483210788837041436105628003229965153362330659111243556396024534265197271811563104334740731225974551863731848807057276117800911072190115749842409846227434282441647253167956647788478133451575405712316703438960809778721720520589656937144310974332668387754561134870406247083392529091412883701370692820520631524737017492669322526440853274821439150026045379207443688202847206480306443693839608962950393539719823199629423606232886704580608457917717551791565952831451621904584126585815402677170487010525730362365080331634367581985446473926057225061650738333220045356222772705297230762922356599981131627298287420354839038055461647539800875283823908076861767946226213838976100727422582703150887947744328816348038409559813015508157597324058216251961832794236313698897885810608414014014466591339883395845141708551710391180966933954397370528546781844604729337510816243443945796168523846733607914436407769974483903257123297287664039003548856242981445509535863432315036410343555712422822642090898610501430090548934174540789459302021984933116551925240852205756880003361811327284548505117160502901113076231767536975478321882572316861404568095474340424138307009711556438613200448264499231408896086836441692945893346169708390282482919313641794375520108867241690824280397752133816142590288733737351925112031027611520709131778001610680915027701117642194937432725539807128415766594421894210356592096224819586830034774170615225493318345158354127072153571568280950162987700520815244712017148318900640224561300853786133098902183365493288470034531368729249309889746263073045501681070847430570531277559408939955402376551817497463152578876424597173672877901767787227238069654405844094391028382846273683406825262080962316311891875408201147582983215848111752710690326342196076996013011485481105377038150174897944738935814531734776323515866580671444667236299315165936667328951633813458252203111246602658592583998270329291942513500082296632799060332931038837549828700779515396638575837192594581191261850241692616898137650299550637701137991367464378655804534143861532039220546461237725386078407812210864722464638627770317976900918271982772794625738330860189941971482653215410099027585430895117097856246695154503552030179913785101891260128429434189470846064081199767677146089981754794659588191602380314123774594679670519578080288745413207346654741602801907368895205861716492747368464307178799347770384859257753476457827234499169014439143560555737656225550755054933797197728808567745835834775572489732445394539773415044088770008733866276656548179697865169744390829382171861934402643796521936541807086928939411806636937451143016118462082651153188834469145685990011085465476502716272075894849314761280175424897275701936234805182856588752710322627456703369301613760934794341267324479694805116464998172895067159323432078086085015561821681228123277671900859330762556485444110031559335331737253651139785699104247592114416576432645773773796354924448459159542371570684545264611955909674090398455239162013518413144120714906061794305098032231925111695867365303014592495445434550810189826929218237263166563406893839453889160062797802406284319958074596788341913647031351017509883283465402615489372287658660663675399975441000978511628310294356041005606951487789050523732414421087278589428265584058134706336469285601415780917053909411157946427481632284293239056076255937540853975255008718873829524866857369753882444822091517366780117959971311230044983601747978572833312497590620456238570172040175972456905474754139549475123035759602547688367408436310738037740197372245549022504356607052338684894083144859534968472027849214315780305704115296213458556036216490800840601076548489359173431901407648895654058874546623647539009799774187025569230530911789965461085602111292052692877718455914871542848434037793769117590098763966396578693788343545821401292059958094157314860719888763629508630753765598531591990168900406449972817489529792796393891200988356090046253312071872928489376786859478119571271344623280136590987204182810865530994967267670633268290025589079481152747359824379080762032176471186507548457638485283499398642543701277794847305665917992489901276818982574150284436931595987130990682076409005022328637619382769611983457568693763080171011479597107197243137174150866058416460144077106835288425281654416673918725354761623847738750658824236275991837573283433969420894786918843552804024699992351394182040568883578343147740153977208574131395748094461950947219817372450924776227824982444098319506641761395805141758421538960854251940607721524013912442958370284819081615615236266490083661499140243799343452780846447415568218288394014331232212185867549424163862852174791470102628677111283719984680908364823476615593053692377965540700040177408484805263475728224244958374344359926615000642819802037346592083134476477343381371023941005757835842105110690480072525381967222948736670388637270882148768663907380776201623140468596748086655778046676326523048258729170404881712820261733341080573850804163236945403005920005036737348736984287594577513302270089606199223625465736623556785500828255144849312009364356848877318019652062210173438752020899660181973072959095503253187256486818335006354340388253799229291817064514504814858351049083291171995865223918272989068844272368548199450622341598786050312393602369720147049686696187918506852021535162576094227806399338333034584016415234556819818455194866838950198046208431841335916768416383453320259582920982398045301660488026176844600590773012916347140565521750794349450399772171597953350400185035429455139010405500619209282593838209978477097716890308192065902422468938970035, 500003583603605350113508996562117390164415436000889454307419519750565235807732605942529116972441782402835572791415113411594516258108042265808061819831287763159910618498913913792739419129930147460825441605895013066325029831639376665663962426550189642752029095160724238984250212444033055126734394023663173347528012781851767226726439762256172595648959446780244452447254271569718246173422162544902364733751760107139566581780710264657193507077321927175632369240892021068959123660109613778782006024074254132123020368414404102995915959946297407596457248272842361521775590286287104905352745481632062178600807672799639884050850470892321805284346569188826451602736165757615560310202928709233854317031851337003573667909577796945162278560220539522552848794976150372346614831931867802867097313876210348182167717552838880865306742631806339972862526509848898364150187177564227366978084934627402593806337741569018946162325930168629108531099064148938930544112335884449186294071660702776468936151302034817202643066134488779519916247217201151597878888052044735055793718480467151190881230541481697309543764283850389694378961204519724752262487837529053726734188958114348618862724324771163164285948863824692572702400198220798436666231928985908131154125401429860594139288884934337491749580374978975740386877896181894221358582407676839471698767927591955823162364539756337178665214806766647157782828122056550307755557777060941146784966674307261731667555861165261082470382994762763538608446689318260167544277474906903030515427172814411093090579841164958420106338475721116713845664093742514283797435654800746030959233016817844364226192938363629656584935328931700221332928019263715124234792057564846686529028211365887394575218156590134638481606677104428920442053072360552558654474793119428562839233336064049144989175732037344659081549616274589723843555408532363908653484142731790908985618502243019706554936087995474661349364221336859258088290339097011526673924976558540876962227474639720819866276447908630141743387530581135895409028041783776196297565390466965978227846328166530655728234578965401902486743061042458910366819915965711017560351806175367518085930818947846938120871591639372255761340011730436787263239862312155470838581449640929566321073411979787165078044060415807535274451213759386198291065963816549030454892921766149494680053619621486312217184877066174257327658880910539672801900651858546518559893952720196798300917686658519106057572308827280290223374135238434981076468225068941686473392697453940244113038637219753783541004526602210085006263421972911336800824194551634331580772379363790421278600098136962676938378214396515652027266105502227764975938392172563944298794476301426680692982639930069789040632005293660820965659809069025357465431580116026808237142885285163183180132865432791281647832828664588600531626175485558536093521663231098439945639253844250375404497395553954501350178843021601711563913257354218318578352021924657345988251156663231543843042440713633688515240561106907892896778178486085474409609319711525651019122709404285102164698361852367369978483390618179935443098695886195278089128938238408019526236700354253673751451658830665769889138734481221942011877075476283854443175966918476456387378712518369283452410138595454663178480873564703480533410267692599555653197924114332137584306495025963151378592136845477503075387579660288217408591813388491756860230352589760710346946350198931748248941478735393756430109815654219002677020282070804570379398007863870244271060057216577917772633721960735272448418483365129274975545532572317991217550141096178947005607215430050088159555306923161013943445446392706894989601585631983442045122202021963214820111125205572075315429111547992609059101679861860427614767557485519121834535730522239232549578144943115233111398324702210101963102525655813389150416771303730550645768771324164312370254001935186727815703024817364990211061110211835655514151163270243840324684166273970470928223708536374834621787760076330350776727312601131216868780262747956106898438634554576566419566350269568952259164757896260680083594728703426177768277554266509914281666776994510038815004983381247469417365333871790914810482229608467100400870347326176015040816590154467524245717674648985013966258551945076470060631898812814808097613175909019041286171136065583483836634120216305908163838288033672257265041449593118004101335981394472291845829703960873601470941764975697461352161074593174701406002879528010624029658339872735183256167374480320070158167247012360022056230687324894015016784464972660214459045767930125430457783803963130148044524717487013119695129983711488254177103843583125138653343095011006926098938988225058948662514750936595979533564957640559671327523294695094913173702258957638941101081404446768898848606595198259435522685816538461814910137119165281021325547956877830701654369204597214122671290514997769775085164668446731829842613024265015460691085265303130588299829188705904782812305941103170913651289707027471994222009591857415162822901538250160769429305417487784859551748731136941506304087463528063994654895442524231208167702173282269248730946883481952259564806470237690498363482849260757577299773775164991753594028553930629926456916893123473699226487810872864155433198321587298466021014938635469125078697558208172174187870031765882531463974787805744142709475833134224549255883200164750403190310619262765325570774738729764797232124722378271600471545974747296026412342417598372185753789800789255776381069604925695028326805681138764415860574703131723984897572413065460203640189833056622794152829927337630943203661675692851410257904202844584719386473971258811234011639195452603318436109538003021218370086403226435011587616772551145680669392272167564680917257443137042837034220973351853687491271712700773403454230642892790621701524911647254596475461610839444150648865543173991694922992587451953715955948929427263599685805400891715130367632381944986009711034846140822935194943610540189543515913850379109307648376388658633374701438973347857594777588621456684594275683426544991820212520749218662148723072482612181850778958059828523412598499442678732724960468100048672422416500839759404059356630779828285195712850817479619207158823031907859944332147811910745738261246742342576617184603344486966493424760215290015320417080701957430430636970924338048496711620202819844578133544317141103788948445023424206415360090496423626493788082972709521462749278758880185948343482754783255271994376649708573893121335499372903492651425939603450327536517429345254847222659975931156954262192051537133007352226179360615903836742760565592449407290306077494819743326525586173851110883472062864268305341735635660473009755696955995494352771936656708135970681083801842929236243627783873045234938482984988067816365362717708624633064345447000753365830940588908735297069932409581868265997299758461233958585408458272169437810595959834935043110736704982975849027170526597849702715103975582393768988203026037937741895569060245294211623010766605913776758392028084569935625809835674498485907142520414427723263844770938209730517987798440792276424303383431854579724207659979576103578455009986715302727807018498806975287904067888763905279983739057562319297631436607587065823744077896466862161287542559451726861483533800515796367163090634603171740464169419544257473868383836422361090519680706536897678710873410300142485509591363924736589135137573859877532522172028433471197535575825933912869248227569444907560178897351761071549474044878438409742223756268371864984505919681361780132238445266698843972533782163229108006033952002957258647195407313473027038411031357974114539597306280043419110479180539335494712554438317311142237025840475455658556989448141645529579345509257411060817376473433205313144806626425635163301413386827155554376277887262037770816762082807156926320525345969798876711197645278745122930557565305324303917770280582464473906459550722593198932597334388543434183873194657464524091842202097127984087546195388539725109939340795078859874243555099713307206149863738625404455900948903202469101526679510852461949784674109154201771256532288205393871306096026225345849881280925474329522591758835517280521496699325688536812901009547763627569009337593429236568602611042566371148058320153445523782297341755083182964989910830741882335596948763850837564764201410260781718765373388764075436020739815707378327638754731315570403667092161594594505166141350252317381004977555874506826004833353490848225852983454816005729945385498920077955428703742151848568352324252995676214625977180047797772441047682752734182983511542940576996560580178295209983971862365459106293907675353885250877619874859893982028901241693810753923725666073514446926593339678544312415326344851404810292386759579630399759643923604273100202884795729279290823574383343394702738697779929165667777287872065092700266955411783607812003575289399892057168531285076853078812129195218541891390912980631241566566058200505037217412807784907107842313989988648970158530860175192990684171786530839140749683948729290868221872120552382502102658164567124758029503354260844119805855763936694570490865547568221994637427065619115946963090429079748505383937968337501942063540564932080480272514005621156530696503580559647286612647253809177191160035220765054686528773401573076883065494379842326103446700604930417427225930388904047542389286507352397958022546023633767552393699206429645400564401342854693703206701739607559382270869226316774912899241721257441823415051036647083053620405571387892680902908507729120930615055196857546585559880879677477686182781967763889060004001055225591505324734230480161959365939073140785981259168669619197948839708241289872773625284885169861521543910581621294008730323499229515333121691302134747633627623832032308794501988916810819519056389012342215484761146605188419337718995484832171000316949941533579181590219443829928935503007752319910216639533904163052449992607179799192783305558994587664410850652407555310440490320213370145246119296152700977341979911355995096879474336137407630604686990015520904893524836331585050893807829184749051634731560814049449034461555734672631078758506904127503179684882201127962319082562380371470704419538397714213855550066730912723108574787730842057427205617618303299405484285862282735749435804643071962539255451093763566499156817173237224561640361010396331238256023885679557376929839811521439633049707472396637101105053948119813723189335889641277539121827275022162331431469926116145272478605899071643130884398536463929269534110004365649188757775258912451216231520378884806774155909297907827256936957477703975016342913526772301372129150492357769737040397849713777579407238880482035462129735118605636639240648241257028798704710119852695111878436553546546577459038866095914303426020642469617294709652638515027159749520418178569988503219751956442713708932570852533973018837803392696933940036299928071151303789551534138913195113216424752663332971984946589246202527720665348658701095054609590265692329116007389240476036145478136655199614911668130661065135292780526046030298996684688125696914862690146776284922753771941313732039051453004929670638308808062044058187939244881291792282465960077207848103193172049050557460983621839302896878908020880776450564851591713380355172384035793442016737635449941523529584254009058884397657534872408959004032876653646368308183059300920562881324477372585005405909925927752592488582396624444836596318978888409821979758793731513951659166595678795835959137421507734435146834307933553841601977326888756704845861053000591777856965893943145758047369999913320601879944501027121715988831754459252713090522392209234536436481883462213455636957405130441332579879150178346353291773595734778276350112916521859255478267883950490020967229759438172998818336764196157434525333288192376539317929885337515563663294921458742633290985516295918863495286649432235972571269657700627556868397225889854630949170641639609770445412389832266223342420061536844224737608488930379140258951990946876638921919600914013686975281931959992042542191832719233695151160206671664620654545259549308163395355549774177521203691163353964133329779145862720145134645382000340015105966156866576498295058278234671223107190049010264367769195315659996614094007089371023176023281191022677166372834283669409591684705651669495717680033847799629021139007915655599616952570083814890179400006478094829704019573021191719709167364739413443299354818695249809964985615178867949576098900053608801648530619666427475054861182589538465171625919362268897302380346147668669933270198422237582180745981613433208336285771554782512363695425346247385628700650789310175416575083458654760065857436400057570508783932022332738446488540456842196201751874471069792693663051969226332831547456150188153387249248530285181260057219683598889347557949951040684849717575881238880221012287314183092404720566518199059441722010686868115468897565304878269644202332761007531635949913394262217370515321581081166685884590073713246470970166427775288464879193767694898279696807066426301651578224077781484337074759532516567926324133955122785643199430462579369003331678217073959926843119151045712001888958759496751739427913751918442804813098915729648550958003958855671396412118090634297086108798556173504776776758757536014201293734702370669576350181402565470204415458814452917566530358410605712157730822127231246943606498106371185432974047441316138782439832923815982386402156845093799152507570141003488128305264848120115210028098420581045234882178144332712399485036998878866578298886577772813763677316697732544728868812780630656674469352045398770337126499366123735681736362079938231287590235748872679872106078319539928706016293070355897199865796944753996764101693675550648226558765646478817409308778914396179308782756367609450949134209262616594974181522374399547494135124710667758201770734794875192795024897016332166526334145644830339050268171203845805865392290174317043288090000027562670888656152230670025539640485203234591195412347557586630173651941586419312515725691898544746462303570602538035549947806275765454266406719185845142126770885476798955804289159121010535747400392492465945496952654591974589519107393629771369929123839679956284817658233964189236755648915300429148911609088504745375013154019673495919954640712098140926277131871030150850473553630028178150011230178962791737348102371559680912362350199668838988789756639281342135566954602731481072406536272111590309997812651733458036976496816415878247563918377904040002836472714010632461076836528990746924165244115921058829245613338492964495694525001613470060476292102883621235975379604518830383982830146778185451355373607531532125319174238927905449648994230402909199102037288305961490967261101695696613570162677655024150218038666257351173078814385365973019052616289586344168832850968475005876949080397125378847037277222646695737679695096405382568209512894158256770374779818025972755532653054618388342836873661554633081895111517918954025318878680523630805509486733767749213804525539562462958226622198619202798537840294335644955464680828565094707600873960526114054515984452997005374151653399837238258911086211813610991412354445167935369495938357040780725649321785098809804048375425665422421550321718999023239747665718573997599369659821935727087629931620083638115512985305428927651188056798115539639275344153193677731259698349209304926286672940290386106187772760619737693529672056449455237338021164746575682670663376164071137251924805984473910861952812269298890430980327737239800942478363765176313952596760945285789783727109843760376633354542250223279029882647384535892060954647363442719454431339900231694394745212220144576546190334848076034009864049898687144022220471816855193690261030249330183935573566345707918310906953392000576472277184092010026681122749985095851115695148567192940744630656694536662904106482574149114095840791050635638992916802563500496233036591449100211262486511150249793015579099910475115162431181405185372739441400431779629556137896737229169847507231092817211139380618346210602663645267182336112073738350991466508829619525491191319644014897712670210615519876150745012709326442008497205610995531939210700335211895431769059620319933377251871817341896500452337869847493508522102542603242390723336497568974025796500344063837537966838488069852165141273828857188448375913422185660059466587747439752753079540039889703980265445183402069268469337904170536981816083928454079281887335732388383681858087257792138372537943122171187106445205382387839185791402523391297396403582587682690584420282603953579018965204897318668639043975551690623273342862329253120972778869745402118613701122613751810238175301804296838000017640519446124727622837744880154275421400664096526078747291069089453491378053050450285713457784699289740828599177382342526704601543258272026347544968202921757509697977594156746886691412701081376208381091491740441958578343746787973080740009415811347192930714600743306588437922723656556599671768249733508967243160734612006537573212879010806483163523004816841604014222707010894153476323572179237631510102719500760727290936572756698292497183589846046271775300919769382768319759661905464992816238433308934252292783508169302415236673708681654468694920420330585142028506099785507815904107144656482970350406041338091314775325883359074716291734785363446453951421736751459987383640810980052177268045531108248973706774602405600710931076150186496387039063815058168152553918726495100771904463438641125793075572123671522505124535283469851026169640388364218695607736475092148208099939777392851977319581172046208983042218266918969175424594640460234144043333534574056231180914102782001688362347616305930287400775105747936065821361634092253596954699385603596678288292354662124232924033830630106764607588580256003698063259666219363915981945256602609844390223800881621126134647504480473672896896716229632198581127461798591253199829773584322025870370495813602824316906740882719662278461295433603995099816695823980701835254625136393120565418764518540746953740994823844292852981004530617946565312254593499151410905133710764945219187614780101570493510259709663310640215113481869730052169251076051698476084079197618338856881791746836356115998512291860474508724667880413972747191764895436363854628732170282542539045739344755469440252226309888047654275154422003573312680900075717880759339699653000942150545177014982726591521092533814994323022117277148311384173600228749491133752336620662074301995188578056502711019692224456030796254423293625692162614392830175742678433298636656401496869133057935918430750496560082994787620353423599097925391739228978438865234605513553874553411649024597961636360219589782430386503930957993962989918682399339536311288832453748549915487102065426732712133956194388138006300614462319366235211865177085315231538157224821552719715801259656570512551002908848979582929506518898163341986225864362072969842503148168097622386733612230535902209039803138483868639078452849384250546839118276772272021029184495972054684863027450207051079607599787142072907358120431322015584302769923512340063604550506643824048053131170351049642408224888445444536384242297029708649665395924054481297767187493427441178684204848522141043765997812316719867904903583871578997833040364530154096145777238048927382581730374402700596920835826520262269013045402533953701609274634852190100190678030076656099506429622885762407437794716979144701481673746640740596835567785765994622491916528286253644049128273529607010132331234118180173846169048811043979553821638242920377842138774387315202712843602939257413369267180489610249963935722984429929637941676778282833614742000339294918529432283215092457217499949413153627837152553476846758929750990142021713581416870523643129887625478319935799073387641357045282743848447366873537787620431020701891202410632330136212979451415252199248963974218412286093521237067642305616141501596054142935207199484203200591515127350544691873190376498032547457559471027864619589231179114222822574277100057594537434533682410503592237122711877758203886273056505473218627873648916902166798005567426608102524274064336802988690096731675914825303136872114566653705199042549373804727738405753257950856823194165324936799123516847072082107765124788542513234158837361040321700719613107892174644584347537059324836770759828788575548098034126659573427241932095737753533806741426371881591601466703706600587849507632891432878619878475007012321986443814994992134137309955273496121479483108479542044404104942018001812296095659206922980134749010419978378499338692462766715929705452988490232058394253436249864319426059716234327493787832679412193494236828029540652161955259019542246803020106550203521916318989195700241172423350425721017987297914360713031249477465674687979684641715949825307541844233072666082182052894492187530462967670098467523162664152198015537804167777633387776932416295968242474527450630409584952101823706911494016615085001549410337650372417223034913920167943061992218580626581883472014553243942419280140978490882807238263987045703259206823241849903352100437089908129299286113051189826696823387383912620855822045458261604577171522090521245716560304510664742735972587747062046559554159738904997771247991586546721245694712659420509465643916082177044663809635645508633334020581006810373924026288393232548548513356542963546334383479963738200241503459114026989349669256926775682949201812236710175132120056991920415199209037445265970099687537510182540823882477659650054142325402379725271566579390405087842328800056365505053379445501083974708380352038588148479466405088964237438969290546804423538896690901841528408165862203944301501509733803377381225107431418675668777190900942556708500596684520991448420245893715408067552551439523830796429786340629596579407083949673693801401164599469792950941760069101138743775993710869655767475268098310986279634973374675910577816547869097700861819068191620718570522480303654761091849062374693946004738014107623048964670237843551060570440835042500410848381404084709613050512356005982627920109789540619893728200875016898432914557073484052577983156329985133264894297029125583174339748827491628017051678776778601076734493776358891602529125318303579264484870480139276509573595815709641819336376464578797694414095609817256717589460906261043231679767543404651067973826774653651666052461056368039770889080128540363491758550928347204985268579767502699182632498217985399462881964215555532924919099201197255501393492920952413309822283122272685420519723610892262269279828538925732046315360016712918693045952372600577233228341954237937455966842778269012994084112893409900524490889977522740177934879945110319497350817281875875616322438324122574896178987163747000824037759840985374457376586466174119562540695234889714484346331156184386944582507213197766021812236654985007700360191182131409579734545293817852364874949249518234362305591329828082327092566612750942120516296292692539347406556106090116917063705283133221404240355015311501310013806234368290589060493278329626448269176937928444318370984157672721453733595157044987842059136057115606121259816177072768713576684178888314017736978138615031557361962472453335941919205235732729662431480359087485600629890436189246157867969464397076448679127102404896387159161883405480535735320654909125465109928237261866731328524690935719620619304101635449608280027295630688995551015161459202878555199180023319621327127902596237950473997977031087616035765573963142732883399416822160004688303962972667219517587387473143843288445944869133320784715468922271450409250290543656271641340353423064887018151007079192211884994945476402417870652436476950582951658836825181859627851267728881362796145753640619557491738174410838073978427947804244312029704592316703307382483279051955464519781431540328087917533166377583224883815825019688387278338756701017688754057063354065836337610570868548042446797222933110701841708981969225929008877032584408111815844328183868809777782534846148629251953725657363791260195067435589078205571955526903203996719428876051535807625309973424768776753228698997340174744608290727143016954243672677617406617115440838543626839600368571507774107905873762026334330916689086421988546809456499324251056953404825163606556666428393131926597092563000724586511480908993250277932024030842041161098679756113155989882638266676480511419579496877626490134239422880885436331614280290965994028273454469845876532525371574495124181306963142462537297369307416622338666509376430731272833087056293804568213216874511267654860386465785872221275371495587155047532997066177394203216361271700336892572580293701741077572136955012671579652459741400500772232880443157072444134125403918841857829784500714399580998662596033552807531278935496740768706813897686497474550493439918799549814361301072349810407625428634155328104665411000950634260401864558598422929629651241780189098910852509592049205061327287951221122284128479791252578433677100628487746100193790573044411268713871548038224877533859509333633298432431933099913477211998516732801681421679842734491893361247029390629698250117855363935421992445876991271193041506088653823370716428840393462382610614971985864568478566524066803086691924625294789098250915253532837218383628645877776430723694252286740194994329377477504115174389616098733291954167268817205132910476226217247587489355509208111205777464540233117400551533191702250764995843000270947927995274254855959488222859864192452894098660463216530265342684359515360386876348612621600980314543434946837032052031907117402022174274789174988133199033873267561710286924331760863987831485540866144094836049384538461153372065487025205478991684273367745690429122301977894924809061866008754600401637872907602830604051012932836312535909736368921893753675056034171139017752400355594199674067351924835499929630992647418212490818756859823855610482250820160835138396444274209962496965933083959505153061894830420332447488015526782807522042326380271974573660605974308533277600412263775510788144183862561482929627561934660920363884850729146902268278245090377437853159682906999897034308001254093277406833166203773979805119827830987917526864248652851059015997967386230770172097498575736589115591996801875524851267793925413664443729476406940209218867616453627969875489874832304373812901044394918774707433021416988582500621321317411179112268620432222471862500848379042936234836429723518959837219192667654524907703308907477407455971079304959116125575311002069525024168009614212491581930478444076175348471877679140115910651612163652818762502105707164754007848510060968540422853448986577059062077154088090342785051742036846738983582684905172799059485201929442752345849250096914813605599395224739887288235354643966425044190931141659191858751249503101797832299967867291827240572189553365725985379791933242897433435155044457927463495349650793372507351052047599258753406909529245457905738700618596037704067335201137635391729391622148237123257650851464790495114607835511182461614257746154658940112452323115426825333531106536130406862411609743662182602978702010858326908812712626055524507430386464642746884016878937909995169743056315424143792780230593450257145606125962041675722646981279540043747790501446218850600817930145351153738449915806277662099765169547768785446366659790523054629932534875083236426083208692695473045205885485684833685426532270547149975756019441861517781383966718846549724762681473788162297931220152492380521461627319929453329368195101199159424827522071604146593358040676680376289988876969421514189759705114787896253248105361910190764597117104744010837861483756003391081238328068795420851870022072995370388873694921197822564565452198865311342246045265812806420365774022344925506482529396443646212153799994654440078634352263228692803596936007777859128541753738586716953022579446336283944099309556074897548249867702417603323294578359123787739048828893539263660021308495249525368798057536377393101429406316536093991554083148975767827972078621406251309686662050256775764645575295610567547640468214044720810710201445201572491821541723190551369514707497242295515964132180573669841717183899992576694528000378748421773480134096731188165742747064715680191496670344028672060816634767639236979511509323192056141427571467325018701078753236556406877452792046691287842759114360100097777382999423968244182853000551637008658017540676150732105391529557792328713446682086009433215186204289273691086376184876742245687930610842117964418144765270025502884841151103426540987166718404567875574252999553608968635845740463536982789775012229909760057978235156457768487487255514175947430664179135698732302428338119155371043867965496104897194323750891803198629839547138517792010246537360779095793753254173950054445554983893484388650048930137116565820103956719595383241182344697013325689565669474786173395190120088489800259786133735674119515742014149562143077362789977593244073352334784665750932757724454414880609895760199955684836412784098775658097861095204098765380162044475085066066893577691394630056730406628615986618071060625594286230289158094678451278216958933738281605496325110724552752755822152054123746244203630830493365493226424538174079636975217891948640409031387994242573553794656406376815177669403235010763598608124950460093935247584322617158100634957246005074499258651397838529365531413245024234462382483219010767074478096163700842447656751101806666078125415048999017486472872266726883710835889350176834483970538372602133946406281305752096169077729322741000051298483165827671367613636738401809397734233551189218316876622431718039816617550736572642701642191452984614007311016078321430708447776515145995201655321969407075509047381590236870737477582074200640549211624533353145736365909850911002744934599669835919217598073806051803997254891082954910874774476231626901633080881516866929249335927894200065236704439440221007926933842425606212341536412827185937107478954179767036668707613504174349931075856253869512901570416963328659193472046478533354865845425220191188540791985943354938537037160698814393286751572191849676867151736614590928617280222754845478504420792402737790107181506754218937314561823589603359610319388228848230243972912434462043899458609437667900602941787279386339880287021251929849456461838573272194309787145478511086914130575873525274395279989572238044931332001291561521472777137431164301478053359275797373217378187416663357802870667061379023415145813014136523762000089520910940320650353743038712934115348779523282425100083986835726513498196531398618309083930240354675769570252228837029491082233658120892094834961170489710960855862536718445672405828173101356782180791912878346697877758720241525292517908657848102697581807862989131470164995111506194993882204447977374636242895275909751704187874339186240184337986091120104438300921347016799825150294591941813608807941834062532670652108752292087544359279452427087147063695571881857780008946819150993530407641955713899097163666624713403937355379615398909730463829571203692367085616799766027450395920135848024470282325581899590114719226121728056776228382913585274522875822969436411969995480449209690974620296528962902218547407112745006350436254623749276162538510989197215707877684743464919875732253968906845773015763611565129217795577666840650557438021325715164061950897406202872243026723499002922288609644584235193160619176550754807759586841985491131525889255625764119491879525905327748966418243693235372028437846288341194391402611727033682723794708457320441884521851448054258311139333175890936837557511222642775544548054263430768552935733521282823332982949930606685480267272606996149130764416079746203915331257074462261505248793420019466834220752001099408816900584714584372171067327215488722121564951753536606123234039859119375612856178166858539235475804053038684687642718202518724882984255575691689443901723333987769365932622196911534324054117862878910501411014168795546215314506441000445479290711855422310735923446461990187686343971711220276833647028060685004226126403501447570382398783662471885199059229153038770537676154802592311580854393629092202950733740696549535777471682083440494196792759778628967261491700146760970288464259463407714518864366251037398423314479588012482439971045760776767455154104616704174999207257020970282603832812239111786459295396849684182502376460746631573463050561962828777103755187517112329326438491316863184178754074214681143439975443565145425208554632495905541429624363224160067011687850899764559364066920672016874672011818273083132735149805522253707392582076226739321952649336766224259142096835152344075557097462909985227641317561913353645390980207660832435117074638556455796414922050525786817257704993602261944815256924893332010129882755947214125494341267374042536955815032262088302840987899925543239149570898153873076429746262460536087528683299900347665351693852244301918306002965197231690110433369456707182130422885473191346838233181450429886402068005522187118873758373276564857964767596093472443971273021616210999762111793918955007486269389916495719607142804928118242856660196013291271362128177349741820693471046917025265765467889067386377169165487161792232253245723074765428339084994354552043410306270314582703245667159453808751658817329181023955450930379010307346444624723624976711417332813185719653660994906764266869270821646680742382678293642883077331807552307986583234675149455772053577484194895828983351489222356921461094154396670622921775554970437789874528266707883367149911574973190287994483425730095674305610175468680519060013506282089535958191349314186981755868520197528521640570625228422932467935068742247744494914664830968538485317739599544430063219475047579725546079851847681980588668894985817930719957540397945772093304117638729150277543205845542334093174714346468599908166287205337556653452903493074065605459590774130106947115848374007981374490224079784046459945449302045073673564544192612347599218797550100283258412909953263493502604834279524588714671764967457279823100699871427040594984206482065438505833623193185565927931621368377590319384199989098135051004929835512878938836965377226923807671274447897439661334954671307191593082493711355943082128961818788520563482038449115692449304213973140462653542474915669900063911801615956883314654786859810512895259085523475595352508487024710182347499025973985891258898718301237256535216678453183047764172681697633431285495303665752591232993588398608474189284234516943282044507365038830450372459257110696007908482927938451048713374150790714343362074659706624786755032890417504027612107848063370227397646978745797904184805395498540834362976787823116202420925194748277264994294003672366260611691144731725781559279979616158958152800547911172549345633758862138233351143836826571821186327127415356450943836361483330439893527247739140939765526075828981473924194897824476595782681257257086951803034892157035419060655245676137702149912439419272728266652913766994617855665472419260117488145839406288919214048617713063313474078492630376484730836030775876245296444224651668359240325773381125854059264105186772355898538955049596355724498630921005932738296903751027248308645410763803816716822967460517705622470214132924418505544103067041899997055388561441339106319080842381460598852544345004896757746613355432566508897152463967124955555131492777240536707112820903627345908701550801732870232300429801399343964843297357649740520614865062691981987016122643226255447029160532544257136216849173869261022608659778621238868686013009458669834843104558402732160034208983017087135158962143642828144116843971368866735996767652535644784301364342687295616913440545041138979853939334970374767619933773071093057449452057390186371222249546753727865449457372091711058235565063483931538949374284578760517389959782565930040331000010512735370087065399327891541460741095091656683625446194924602465733183324606698649460458842445568961577496414880228520509242741316425211906755454921063835713067936441912568575255230858100699647483485124190892724255512033794611929410313611898003331014570398960862090569727790881151777557595760155246588975135918876379934852258049874271198925881929348114271699529399606671821658518489909649655298624166695340016159106428913267109204999761095615004214881076888097347245887541269108837285146722234386822757702975447552345021153871715918784281303680347270778638151027587660573746759859108049897613867035303599528456054611501586229202490098335000316480292567945450324286750706393539549987016157404945912411330459735124864589753055887463359793920858131077088872272708874861815617705191910000954964316398921886809707250307005753450023223171796202856701362059623973760266035129956924153753008124905296289897042815280405328648182421591405717146599943696949880073800366015339377364624875744696618966277756794871437917592704934167572959053939077419687381981560142794557130256371748320966949352542864451881486810131505604168099853331572257241322004092718649172213116566118668074823641154985394113429653174102157778671662924590974996926694556432916807898363521589452643896261488436028534259600185891593826433881915782296389215738575592525441086762286007095738420125131941388677015717225198738705535354913632040128790109781385037167257198030648785706731200909371925189030888304331843470458988150912455264727944334863105190284855980520605389837977139737471171025683157789155668427899603685112108215056233251151898164334812028480135874463574965128366686232584541939704673070721232798125269775025338636146133307309206276932811746688559977843228128122016945394875738020957598175671391568926384505634728550182191809374775909403517475062351962906905451135060634176335895554760457290633406557322587872527513241329067125589286909065222732996082153241793827982200563369451940533664233870179872292145939526883429559163140769474033580691729253746891319668801922255516313818379096406563217260631197766446010455266929187723138123423876485357653582922234124174712422390520308938610183426565718672272570137102324151884307179094724777151909130733138754312643549691673105279895750409146199486070053090401511168685126951908651078475204012130562543296994874011747294091803418710460918887345657631959601745843314631555499044804190853989898876508985788557733199549689990717192255522689658698807003234909042357606537769698698467840290884457016309503816112601552681311937459047721318495146794160071502946247961508303367279826035462713666162524988659906059612903135522681111188228972404807852654573747650908319696424583244729215934628572008278415234277405654262388708033930543158549326802982672854020684595068541291410380386669826077899471106363454701443229132424870972945732861903278167177296606725753667938502138317757544064395274616056346799070877402859444451507770693777180235117004220558538173780097234297618123978962381301094774515782734488564464415489479375657549021879715937788808990066424536584706686297680488697045767868370436642139037242376400418372482736586324497292665997097799385455409186883488021252910296556941566688978935365538021214742667067348812955952635024321666061683234242033866417956730497002179382596616821032378001410602234089789552635394251626023882126199392828834248803963266220489891721749894358146553198694189304663924724022002561158335436890588417728020795313131645812788418652280677958215474856418751603164180177048487915618422496223258582840354187966829703683288079674770893111482913111804803186937121105828620920992906458016088653460056659931318086720698902762413288556030788810710740407489463510183199068725426678100975217141217857480481704246731250151611960701720897967745074913963407888335619651347433025868682724687598599189792997225449984843426645035974781255484515448369583433340087635461124773009651897958910770534837966225697849061801011238152010942639593412307062452187391615033032772665378068727327025664805698431742417857333513793553560104151487266604619817394064770718862863552579045991318754325116598138532449519320462311313590290507195493898921989910237135196909172877267950561445481584454436918770338294883171195799652365472534079820068199722410135133351804306831705452036866931253767929889630527296142933897736746354262490146922272331183394565970789661362005522035213216108254910837420343902953520043508768611119591294112903704156599998756668133718822330893200121621164489728267266689147331499947366798745376250469781779082682904010499752712794290796124218053886588967821399374296737337406930762085203699250442494115188351309405823960305271510162411698561436562049027262732276526852392960020305859238294315231410567687533364405990003281347671509764268061748259655993044969296685446941053780343156879826737121797939950170395501200871169473513530329567884749968918239381525308080170208768623406036344375405750004947584883015838783239931962365920971571199392884073226824186699303820241833516513744175784874127499648131895095117334580436162056406744024580622493163697496133002876744251690862713373806006934365902973871628471558169510493147282831028984699024741954916524597034847427978797959895895028781829104005311989884093848599614403757843413745389100291468687660392645650499564873180062436852855203780961798680790447665097804428843102527627747915093322064024292878772018328181695630934078976428166651328500731300207072692790866356645319231385907502944872038708477558900253710073452027380154667266972114065347829042913856921746842377054728741506735408455622101214789718429028412535761361755145775019110231419276126677510175143965662726705174187987289728577461069148196179642512687617601914766079723262471418255044891972284235203607261439618291867659760167691769695766550173641658675517747146143834871514425624653655647871426751254155054197824062528950813608836434685116123612691823776772622137807773595812190441351222892087392020815846395364525418362971390475279564099339737876726217837376161328975259579046339293188725331733155331321999905414743680662486691223584262331856258696763324642809324319737571077987369216488364005713499031370139733588477048510504634515840552995248340569697210753974573513494230651725466461074149900169798652522555591900558375451561339297083942273217853237588878690444356235763665747188027394732220770372277357378746575513847412002097070399097127389405750892410482929456062592982227723120620291221958356197473232444965952439971020506459640342933164154132307894287411585437353319571824726744723864291182809141143606572629534517507868189670191479781974485803584396963536335493266881819819345435771852445323448164330195706927401622019168002114739592772394954264018188096780580129955225659810712621010087064580052063182618902996517367623997029330837616660347030250993887234340545107559177846675637152436836216230915774596420905825388690153812262960239603117808501378107580342086579500414460872235688804090661093695696828480364104700156480218477517025234558950486662139496421554968214963276556634071255513408722187776992136023723103174284219892297402629513490427676748022428220290792847755251605240223504147413784754945279067736247536524398122110873347215377174414107490084139055003861120708618760030628375776367569846930238335662564030647021060597876289019369291257611038259391074148732249721058137808070817315482607126589641748252055190545122133692648344717604627188311351204007895703417335269214640798768386974952454707540153458800764703003494719494066967651218349531524237966226889107205395445344711794917954760733637595783993936620061946991762053716910697156240016590971488798920540470466127610295761312653405267992723599957525483702793129363682882960748446129105984713166582217897003709048957299883479561960731041604023369060608379604669786858872413662353590920006812755810817102902035888862629494220611444461760598838000216804725933535438817620449195764258848246260537485470855935274240900864283627134452257770109376638756340795462895014669945756348586486051854363020741471856672975353813689265270742022791444926422951208444291556395787792781169845694276787615872022204937591587168987982117736716314788854039519569035304661166636690071554136601958598574787946105823381586786862096188196779096756202912165516104983577593380645569605513533263057995820764453280501453375311027197135240376639295254144153970490590549414717986177764517155017168018756034451516749051454806330984062330098975321320491225824356190825422485729805436261864892150556690477387377727223956830268613423879467389645032509111912224773135687601561867410497222103935606892822444595738472436576845858758990275733077510399013793511337112803599854379580531943161058102821598716878491062443113981170451943714583881482086934544408572546086112433333090924650449751982295657614222883998802673247200377582476640875678959080129039431847193079334675565535144219195418620807419115397170815283012350325188544367761217675253947429663039474756462606020459282672377442005834214118176752814389289778591452970642877790945463638370376363921268204370459877841865945912239620422599351889997913010852600752538628102355028947747069562957881926012570018478492579820530992865880081356560315087509612054927881288007587297415459342572414031511776089404719736465772307821467524152889953223221291726236019867454498711555095243013718562602054434563359952361556547899039824692774734077101924339927111500985179474209574471831806408073453667057642795071458277454396189815694368709663298982537038834537205849882540717510722862273257861312485567797157859641665601724056468882421126831987696305414359856050136371797993227479595966651973708663780901223074736175990230047157758425882835315527299905626371315796081254997132767058834173643075375357125469265840741853427613322018128351730795653807355342565480739129265732558005659302769076871264305429845347564679474387650121762301513875104402873035504922947029562807133411252249582770708534638716749807466728074374254292978037429149503494295995648809582783188132073560988442482884326407535597270208818989403026759647191411274612273275006889635457924449870692688058321492535819535127120694831399997235737998160664578663330159024588892695783462640919452650775741163029613518836308567590063743551395079591504755599779419000991359989464834813972353856393345803579063387566173510882635396672630633388860468972587123585549186863044237059229928433086413604750174514709462483374617583200595146573571574342707672512492521177169473978809747366567091005373740262315609944809539369940473674369437669779006460886564581173965240456859056151090529971865146195876880723968042858101813273129894909860776057418547477024973767196422124244150151710668406400486770619114767020658726854021864579475574443559130843708781725331424797527893794638500240651887870984230059404801457881819539251106774178268819874589478211270756753208804564619930546852217953647513046326587442918961102141969489977358181914882782105404256377378628960684609887575595110882685676138840796608860849404478086021578742350653289196588830491120379445004121578364305063934080100407353019156629515999890142397713286636338803234070801915484354999773056262714551561332372387324943399471267969074127500974665675838768157173168378027882989334872857214754322178193247251100458769112665515899272421119481674946717235168820749834498725288232002592089019827691547641234383324882567420030992183503568410434109611729813456315453996598513759923872824557998883214564812436815178616840126112002152112938880029469796265044567024886393839506186313889746311328779739436292483168975402718984796885579776396366460741248807602793503603965352946934577459636614376528591944480451382376738666780066176305355712012718832122637091503659466588782530849573804311159615655623877412304575599300281225826031429717535697639512189283366147212684609037195145392441350398883535092420775061567341413873216573267597933903973757611247064047986789279515809611657896223413919448057126330804020101470352029066393364967243325923318503441052605713854205094604046709870650397792237715374983850883876242444678695442825585391548613143834043883362997120821107711356041221537237640904234068450444402075285896539236432544533050393712715602207608915163577183705292604324705627800628738004423532640256091915195523322781557669718332651718967793202791275062917295831277092866297360450951116190512304100655078275518853138523593616214636397539173733281368306168743234345517173810706129002573405759474643448951348740630188366635870329588345989165453907979583225003846891497376343722587706919598178460925062986687012940528645850680010585452606088963145933786340350079194925269896318076915814340412143160638248160488677951918747337483408872489831535191413866027849935441106757384080067101760608881264046142113427631782453102953451179416643915466283635967285314459888843772980518974084537475080429356154951479206635150829434121293663307434410915852043943585427252378641968748233872031190620055488574338424154603729497473127578992524163706775227203226088239754285593522499311939477529395577701928548663871894880288696076772071843998638476950669007869408579314858976537503055947958398298736926833408047260097337378736785902983306740461149666511904773082091110277249277891049051241498011592529647697550251957739358249531585767364694931074283168178641704698558214617943482309641448680348535852489356087675381230670727714065875448876239655350135604720758683381988631735026120357576264020274189853175382992226514682701708623021338372963565167108990071954301216689289884165576473251758522397708200455594076530849341135939643033846786477965491596850602574214241950850601655284412024932983472787906389394464712901991649154529673746480051756614037324922758158805431511472820870287683760048775660549429291631469192200815413195451731914969561112452113486425016076729086873673141437925506104183491497218625403445450232878409997711526666140507558462478617856124312367528319775749163475396358707851059424648580418559445183581680406305875209879310206922423231542797694177509294365937714886492118239775707385303008374410834492800855764955222140203580043639614299134511644498212149181972923776861638436278106723832333071231414264343574527543580545267508877127612741771972957281415631830477026233255640384389182861469746136126694908013435191519338305077240154359582938301737533535571262957098497982567441767551810234883838508062647061859764936817009804280450424727114720384039091142589862413546945909670170342075217911501353327091153103442891514882587186099853741068890955156419298024890008693170381548348045996922750767875691209927813508992373728299657477300005015776978523892460195728195016253711743094244782378350188182112958043506200725541958039695262880410692180881547612241526142345937497129902542917523073653979381182390512077423067624864859676366320735247694431034397925181963599269808070854620134068833463191090749345907446199365513053278407799313010931150747603921468287955352728010230962170876108474103992582590789143398231777808352065674418316078987359216411238973982085454781041428384005249197770019194239985853611610289929852444196155533335769072797314352624072518106334926559848969219201769539846768217926912719198688732992625826368230007027025028238558613704477932540246432866968942093587061957766834781289766552410275201616965381551676967180147453078283338829131847977827143057883573925614481710927026955593105972307881990761340141050239920075488293372977559805582752815550116347052607304856797880641456113845240034876717498973683615450831565846943872707798141792122582549902353171808643112667687836718471234764430158551649263374580213075285171487459094079051692082741096710161606527048506005425703654238207629106460785743775926810769815007711377737392597823814506942724006842309918671683082669969369959844358258131935154101208465335128167645727886423705103117148183421922064591081524290141602972752686568242920271730143737192346204300640784633152493398688670176700487459039511999858524496049925220211067853064186915368719054582995553454024617998052548017776379297619166814260680811943766927449237048191140073366727809244295323561906685600407175778064318908791841626041045111082676039985044303005104876863363518014615295984288048847511673185147002699768626723485478762586114140083729534012568984277400394797459004145483016991773506259694165324670084043124214012723554798842013238100912626465688147877536862444289993466243335881045258167904315307752154350675756732016516530724270528539502070602746415308086968639018552106782291225422124540931471717511532999783593025504226317099440822223226201821478820797865670064451184128094614099844045793114070326413622591777340696070017446391044288648615583920019655186784124749831274500159977947901309434996576924142454232451280394469154316691789688002372471715368224174055919002208920385303448550367494770205606642640535885988096146739788833337763792327315490500316934483110514672833658242458066880000464446015650012599361506832364696936531961887819112010404262148331830115119349943465862296959981122012505784800337313807481546856892479604642818648893177968417369963199680300030226769271395227205697242162853086786182390631380785575944120906993346875031330730523069316516327670939599264735603444826356481617225396799358865228933049624998636706846760664030514048204209781010975244059059439163429318559461944334566619359069152607927994644451198089233380624782778763365720948641203956273775022161395835197825923188856041456921787339510724787224245409538359843273560795202945648741, 351147085999447158603877133393112565380158988367422903123244334819857047824057013440644066786827863142538920467922478091443989820654101717122642882694073960529875434432233200598128736995258395658784178461292823229787869076090570042603708417414054309578103818464288416111952546272010280864011729058515278364123767793181460766431603627464659731798596488640071583264243204272959162566867592963776061739186074723624285236853150351954740634131284884382881301333089938348397833876934506224579182289790914787818257318990840338428777816077393621716564610708019932311260163012573592760147887230641179997420418400001952842400472877608001092004623480435387496743915439649816392656436329125573376107047726066538240213238299755073768816604178264830347609675065682769604909082151111438404006082816067434988609735593492816886417267369581358403721151957127050693715941343901435734615599502724003193809283224436910008088582539838399096351349809588612248271085824208479259319083609921865573892726208342365515602936816668087280201605323881976040670948223047594568500862968969394403092145413364706232599756549055248321506023857322352495953587749132324606176896115166282640396135010337944926295929198025898581378766532467985400830829712025176488259986945001214046672756792443619528322379207543185471956284216728868641964220952278064159960012637109458973186332154952052175518825028335133306065548620353315659660670897644243559351735560950567961745835243895179294277178011807975833959150930057739834190216335194244811878698550929688720893263091058840375470667053986215975007163110239096284961237727340120635764690081555367484356133815753730235340541124765607522949252826686983633738318566586037109986396060972441809799430807757750498406453076999294863545975542827829349321701508760501934696730396170492546275039838425179162646012644475722472782180915745889103447581976124226128313396046956202707131400849949956566634650933138394412655733249305418772025788430903527725209781964501747784174628932046386539077113874532729725376394867960908162333952214417894689454369744045810618491333139421700117722079114439016973593556985035267550247616889281912377063562313096855075964969438853457249768556122681794003460884993519581252030145598117683650314680713286537435411053674243176519852390617450515842610999874923647737656901280087673732124474915003894736827794528941031334065352285713171391481751389924188084118892515102890224916671184664222892523634418434150524576987391991820589113233879946534125000988846158157281298541948481845953609805975982067353620451794646893194370906260960952221548687334485851769908825453080168177484671304053996121219290258531878923779419043910121733862176917146473021950887671591595776485629362649107160218741278446938791968729626176977176840606182877808635563134031257230962119524626377805039616798502216104437923527599673025675504583884896358615944959424160248298631580967502668061253594951066810501489917921847611184651620154432321082653767770063907231300593033631780138808581447019926628804361929174030727809929997800363788826854075602370619568080908042908040985153551908806983158741532787360286697057615354186777419597443171552784092504841298515313812991654159234659572815793543999869324986041950251289215165829696375626479924912213727167231030911620631678579304808648614616320315224594347955040556174153959536453841435293456831031358198331815030027175373619620012576625833860849500228567882045987743560376945370308602579663209931667719377198907530067095326217600142953179096524506989682738952702972703564663520700609307747426713730900798865573807802530150850561936674534206999033245301868717588193986347146026812498748891763466387337119591135205354888471275924839232923533012539808989884661029478533999635567595261431467793592770994625974825990793494282242385896898488199799481749432786772574308767912709752333006265904112314982786885977094198987561178852290826439304780910231798481601714408593363663328973357481498463743180222274766567785267920422198786324363261543515066406981643504880290010142298092023087512026300415086793450216096894126824621838269681236214221418483885277322800515592238425203359152666820847485865870420636930870929582490107407915674266913482423452165302606529876426860234876281188508963183628988215003937209505285312155360838509175810542584185186603782157317015012406713546293416152585230092086715946536197329785104791770042653530652472447843938542701180691756664625768982688345273492898995930520124694661493562199209566003098083351039335330851509215875898043858953527596372966778327606006571050598303104740328966474465237424395985641975014766023829079567502752497051551435912085826170859319045714851214590230918377229717321669667194845616787581424609561364725048096088713482289453164188520182232585655163974191123291473141319208787958938517862949360701406033277972166752044625375489832570927705301029790026892159919075727619940954146942082320859142925325989443486211835591054267845743889993922762686725850627207941305655383905104467452261566133583842665266207963097168700246603000708299885565574958203772337394095067945312267747505961735858940805813045849099567145713315510429401142474500926883826190059636704484272297574357589582105835729936843754991925379583887332609622953567200334149597405191407384939441759687157567695580645605336208385047946398147384863021604220235829701392434850035856245663639739572551209307619771832745346701433575035318189650907854716595675491988314636216264515778680165111985400230148834646127670850090843044637059253968592911441314833727152707219798537955244405021573800866309449665191355402214735728871602313323687597874964519238401328775977295674059981343930941998545111404974362938294240563695473120103827991462046668429363325301968731015211267401146322472668467868908177302444910512417190409159382753293548057927922561347833043812019567712199780051617790533560375650409088888260771420392197392838289314911032761276555825051854680333196263114533545211839490031645197013707886027351854293680977627407985677600961605699753999222255553072124310675955238236880820477583164308476912373398262385213055388947084889104031177936181760706777160518662860484676170698801805661284271555761685655759773539878552268315588945343313623644602505607594448658886220848985154511741055116785767055826909746249943814182075079274687079787352471656671547666906200554093384961703643405019992253884083816464510330202433790330880037459345804039227734858556371671320346326483167423678169447401727324961984716912928980204082310486323248090084002105698000541758297853695082228230526479030469125375370675784211355308189308585860924273115327361613696299536635169950497312554008705787795794557560333837294736827128878239134974918800508772110776396433576171068632192192781423301043409785148249009087295160896826330241350254425317293647492755270266313176452393979374486627451515019754927672893802339697671037628987584805446142748942877357447036696096919381370979981154073016939544686449903894003566960948703227036951058113870241732008071043538281242839604271930378629658898073495239489175249409464152086864155340494776907440449130073539205487378289745951880972882248045994626104201714505956345307949270319556150398193222360813217339121159505242362655508436815594142547308717289331532827096004272411735892113681823746737195046776855528901525537050490040126139844445984524425995291335744856517694461179750732090415697637539031460617430257001616486828742713767014508859060413387244358873307876923885729754685059987557791696632204544004129287707638605649396693542837441629744708346706479609102455518911327051750076503015515823414491238845019049010844909696328075718548931073249594027916762133325426809488117653709199657256637714140537740695773737376853177058256851909347120179414289131773676872126984964664204854003844856969084078490427042572396316757332663614953281570411024101864561342483626680212134912583795752806443267340217055983701471030794412738465359047711921073908529963574064426560586987654667985283083156353496644989603548433349447281403589172470361448886589256799302506439192921288227090272382005453647795750653562447805151649072630626460634208895755445807206348485355180491566116003019783339918108077737492772425795308342303844769243215530249745981227498150785824380947802144912673917522813921441554501171626815697490074259086701098404542663833350685354326651457235200599056618642102369057361077712273008899692181003982627968450296137007326294296502939790378064308434979057385162109366239778469347621520038660982881811460491890165400377073249105153405403431116663871611629111519003220396595933638637509739876381195943595628340920095486860339673139187594986653697478254160429929634958079288635349347169022447093935768057326619655981604524623049596316337519423820263324840494942136962203135514659327221788728795109631839668426360120395823250749323006823508664118668138141397700608708324004857222543306192184315618588660036728778462420784105166779555561634855854333569458632154650761481779412957793461250277506845659761117314013380319830103383070126365109357426149040745522096887290381986717224785646180529098252164740698342708842197617433542958788634126641866409045553740039899131463687267884013062376497686060191644409574336750563594475568260732608238799018141735224827860372148841418976144073699725502680755033048468599102266727301413418838002088241548477220111875081409444228063170578044762321607730825927186897540611225227701944755501308979672899882201171584165739489256331998336434981399925087384918695678596468833152927696993662117829263211194371041819169881799335538945180581186836508088445030543502731501638477760891268696483627306412889238632048265275334232782535052639049365182001031069625149351600496861021838827542447708235510915834214879113623954834773176597426406780704712660817007711105887847914116635145965821733996645710474178415724303242884223964463890065304365150159088248508033820855808493831523745750823771637781562318829776093490369740499193747172785891818188691101524308849882102777092477686254235011230889870361632807775253866705626937060015948252525672710008144024747369296769301106904784698576477399583841835636314255886526410824019984957351407722816711692423370629703590478116453196234076221174771297420714315790799938988580514134500151964576340168898483758958796665741457121424693074069505906101006981264324560806779674302106976003937375664184400560800198323846997579752323661780361446936135698782998252661461999916492113218479459814549304900692413577974163990827910622205662051086256216388654334128657342459292039746380220747284116284812179997945323472658479016703287307027131881615897031142424627181058687695731673434949389598516390925430834526060384427283162830773868263337851518905465037323300449007630410258618054471844452154822208541117093841744322012723848700714722722980408647367184043319562562676683356265211733175417390273486996106559348194628765486449297780396052025902996489386528580192342490993658014456961948616930755695516120374332727587431572200708435608414322517664425294373349448882919114043511091798267756622386785837447953456543989603256333526652953720241203927625599548886090264280124964378919720843206837755180845587285684624735780080775324838563522523312933087547467521678894609773378429785001158937933596099452626228094963450760570245931770498812390475704345391873708451913346389664595370596336096564544033467699942565078719690984497053965654876239685155166041673304667159258360056638131498703332692702793822047517602840865206583144743293100370871197534321675672190928586426466990441143516588829717714918096010160130956163667641589403435726636441257622380618711960259705740280103030391543052351555844802838865860063069661313411594353083924636424877003869558683508522868910868866553968140736106401069508794716270532571143583831271219798830118177428704146022985183448289459242212551548124313161753580456087396348356538477501965488107224801473458872812699300492021487169316649693501399254110814775570369522068500601560905655937072400664250176116491741201921563029893890051974435456514065645047377513148169182672093025411327363022606567855889661447384727821791542922872534681243587335350848206164420489107903649248946649496199526207837533487803571097874100389545729259994257375622291878010456418297202696219204217652811899909704390646360964326782408572740892493287843920423149784342859432338585652480773764527190377356054232301443270242326267159868758802575222298047903186153954256280878006920852666575673232491964503970946402786708448906754354479041007359551761163155218836012002556283841235706834178841217557122169589864573289065969250128351853576953682436067735638864451426112037811502556172546353201646980566728355724491722028715715020587588425525943828538886363465707031059922449532284780635242085841389037583099930691288040116889977859376050328352675258755836013996439330598608997483204230608114092542382829895185891634009320932760876002373435924191329138663763217097378251319991290954221607956841056983016876090642206296076511734391295340715189040695245455072352633210998642358368072263898144516850733489810502157262578932961743892415987115423551395127178493771269903825143019253872397932161510377137565961877153750329840545401409977923136272791708999804497115039083409175311795233340215362105211957920496569313561702297105333935995671831241300021995506284930441122068917384004314941051746896784819800029137829903704112351665713217983823996979431951582126149159258419744818837145583055450261781541597625753209096320643695770886760238161475152934550984201239766151105840402925221156969768989885122502059554296254228543380631330305783961717228251236835711392532754027863320459504837893172932549810394137183850967782028262504073069780399439777704043542672460286319995831700484750834320278909841999635858074666321856089899858810059836644502876732350960853259748288289084568688915300741096546302272272236512286611967496498625437388189726183553060914272143358872473395133581505437406295971630703614278303540776706160230929489079411122192866738071509365739571411539274285897329505022551208878730699290321615452994446832971293197548542068360200948464595366359530173898979220836692974195915888116300390634886686358007475722841686981438950327357609503164709098179355224858862684278122608499117945695198907442930724728204844068512768784393682581866220407127363115806856801604955183389521791449237392754340385831356222014865705091108075242444522957033344694180206701278147218456238745391171080606333690380975303079226359004482172041781712900018726409683215690939031973087146224564423084019745939233347899374959507684032699326059703682401505182492113741231439321142387059784898971595150596108802671509697899967412366229487413908301163464788731394637650852284564800099109945115957485414994363345451261583560324600757807677210265645536144034842069656462255357487262206001526651181110629260527203372420936783485738714378118732666434237156503347612369796926992951305860446573013438745851800754810808889152074097005738418481629574260049859626386320758428240383007583109166598089788491970412122855910327163990369924203022651644347812532813045710519014271205060349293640042490719754159403376861873290662335009740357531431231759297884696700067666561390544985119022789180168732132579211794213540967700475851525223259721096645845234372090129082537221060975518942289638672164254143602803581546049514388530228773837495281333873096679235636104584565842519430295131868438597900599211951736455742988239755602677903190415769010515368119568576645201301327648979669723200180241906556935559294669216502658479446186719866014100549734335429900622226083210553583056916205037573725959784124312958971421864757446530333644209354770561155798701939245093891136259362534857806352876538166557827231566404155170473602653973924367029262902910561455441967366648127279679146819021576648694858433122439398568500719164008190270046979406724139197119634151436256352139178045213482687451165869918308230911231635637223835144881503510764296329763673989127696559868620200581125953934450831168990278007892360929238654939072980330625156424081970815068080629472478129529098907536550404925572852279530830410971525159556723690114989345513856390075912706239900730041143050710851934352713341730239783943897941729853717094531470867137320467489018854834970934382317500774786539955494793014377676897164439772436663346151581775509490072120614850570253655216665528267290461853798739502358620964904257097010467547288033620464387396590804464249583207672047461370868379532198740515838144117363158785375329962836234932627635495800383061626598313026536863313135322905608258354442994036208692713558795478053714965905452803664934499340532660811169785315192662711733208399093641817415336889522411934241680955856734756020942261271824651064542497714922346910954638077002791738653754689535715159139435298222695248865937590718223979791759643011840241614254514863914958083443229428186574775240149219735716793227424950442049352435474817484058669907962733266148893976799865968952447617909166186605727447276428860370853217590007797572558947347711169792393131101567070571315730348141356023333065024381336851735214800044186034811294342181275992536512363854358788179129994016765745698824989592557137856528257268782122143326214467246186076984754211828509426091121691696939238208647146925620550205745464215323760280569444292114890939301043815494762210939694645618152162214661521457002730706038404716926584189352181641605237848458016043146484754072140931312555048570755016594386975639739219886754339293706163239225823346934454673646213813602570840459768457726799435642760846265481091838375895558611461575963659244621368563757710037675492552841775684051524068858883880154301468080502715221128426064496460272294226291317048098272360117999323830357413549579577935258561433166931465972448039479790642019522585836615944433209064609855714382314622108600755650652967448562643941199019437992007727791979011537779290288196123897734941976285089728044783894576411790367824261321944685267314579086058852321456146499224884520405795681580935872482033068051889527781463338595529846926335072591326210117882158043757626340760820506505501393768888824176743859733713553561078082168402276820743200033822436737443500390833433861708220234093971270714733783216675538413544923688597700772678941166487858719862675264917415908666878833110922585860039587912972052084652595571708802205328856649199704813090241059590178031523310232455775397862440801982136607366477937540708123844308991688057097090910045570582065224118530803229399451019505262382019810093784793503380457036082457833035086661770552091605332338771716270327270123314348806202619027184640152259614839919975488621749860856185578441313258120014909048512789838572392673880297877700198258022967207389475480323805949871168863773483440445470547846984900674070389854661568508719212376929958099244818971119358415670714084003276450895357912737902975082741197043024346619094482361192940870497852242527069761895529342359470675331574536425495751271372891184084944907202166929210602542600732058725904367924326771655013105813133039196741015644602942691756422148793351603503953043975380613972126229774998720076115506985137388459256102262238109961782362594790820623043847843983697400078761329018854569833674457229253693616994170596131963380423232228458182934966321308674766000236202966369534535274564078967000517812807118155179998221492114794275582880027605059193370470986372707465506722250093567483404798328982808521033269621970142693592099984203068083582995310258139212218637056231599052570254153272797779028407522143202245585097698132570446524159504374853711134240193885751174286057208066774066128714326148393587171951160287909924420985548099236186469779477625925194786831963376277273694098791324343533562656694033053825294752684177971096466982273278779556902470941891987701148827756205663153895932660942842936930267591124834332876027406030201334447698400874555216396278220285144224120359472232067160878252390161445745053285831360806654252916594200020724098538931080339645483598825687176375448652555788502617936455533014483969741238491403762747532831930234921040823086197041629080994664938833042290765090802320260002617315221162310599151181400886433682342498808900546509023401725408607805594848012316125033796997981982666672628510240176695154045430041183446982823881442990849882682359685717407417455644264926117936907826982889871458151922480288658778914053594336523128230004620423933037486438595420336163521997725224824636843788236312731175067575793325997243936830471582571183328941126408281861139944429238144455770484262720887108700828949949779783976335034590251368051105260733902250405983297255328526374241712216118187452891506833367731354354262083020725087162472662372250845688864995780417325599884409309388914068628833771305901266864318815689664858049319419439673711422497300996328392017696425761147993658676528022793091701128892779907791341794491520299243429905420423479001208552672753825514083410082801579843833732541545588453011471232148495860174253061306308624555485550735895158272335636826414017841089124436165541991448851063510044420581917277695261449820389845008130069641318256827748426303621532089701917516185476108996567479415579422394165039146849407749530023574746773269865748197903790510374940597370961201646290034978135572662805450057951235080148705034365394028185676714708199424119748216876257466898378532490269845393312785647455581726528159592665778282035151210956833672897240480589707253816995116172358908305980013319978716566900570191658776021188683353178252052947521831527784428647972435541602843602003815092171974815045132753115161349479217391654617666188293577372256088936542541575313720178037997157349677082760871246674429606966678445779845732892219405129673538728347651370654748931705175755977007553044667684654399751243938931018055120276089334990239047558871149022514803348920595606109897124648984681793865581846514215823772655705778884825942422026324892700627253986899548142344800589926731908179033382295166587670974123540253307654139919217910903737451775589076733956889974961510876132216162260348529546313223861094907206439170967888918873501109975824296570207067361883956369152472531998623416009800122749806051410278079447786761546260936047121401447758899344240851709080403982437892300261057349410804884269508364538319148239921772064873982832358765133649940937759048812024798602170683569661755442364711073429656217613921554460252725756001947600986675490952242720480490264561041362024879472360146339086143891815791386201859469776291735344746439237211305320986276991559842970057385630485487555495571604058608780603668019499209853079987522029150270783366601956941505480360955040896636157940847254266471683648890652343874950164264117346252032903055918172111662986646697694055981793130915210552349400673983936692921169007731226615587905654945236798882099080303158713255201366301968457888331877207665302696714807199250745734414231321770125330090715071911352778385042200420620838129779848101237333389901965033812963839412845473060744943539864690412469949588775611653111557976304502832875515923653665588568955939852250946019534911414794013119267745076189935181897208717719959870911175550065515104100445842073532265000815116794209014064538076636907260811707263067897820672108096421374391625097746961976301072460499343304219121152199998203065975538267520926246981829733468449758250798440608187408651817142250614055713428468317085442522541543882483897486818262041658948171311916052353599664935202072051761324280038389386410621592808014968415408759019398414406817281099283662069784112052735779221010290514424413274601264923652941705771103765303779910572190057233429280798997628826667516386058260304988485194793253945603000523810725251190796672964862823075193188260917656836526444096586716707927100930293399294950951998487557988805792685204427976994615318271615262659335197203715256001997528724059949926627873658961916875069510275576972545785538441100419333875764563693079400751019106617282810244103206484585033346014257821351748628453176759307629743390065284703865088838154894282274915639024215967851448954440601410712465230584320657075119388342999591816605422413977309041015120738462076876374598209761392624103807085270182465144775722134834296700281529590197719664079987491511395355993058358901834703895950787766457202327297743614574557527592656012274044596422309230714195361894966239796672588009183018835512765842702110688172636392448088744536285602753939112363256911052970686872565078726715231368183197998827991702332828389530394651545204179075849788009416149129848694868752428963736291914861563518938474793530662345939746569524286794831463551522822235110092248249003810742335511834050495624858713642249722481112786776646776186099261169257028323711129155920052921656039825903194201517764904069952998519937752297290058025307548780387158255182420941169862960411694981426845461537342270128428438903379338781812879589904323081285956689158477500201413999184172486363462167788834673103740383195656664457451142144065195572488687720911316722204672579347074110404725502486035830671039518307939168182692385790680431920927330728403611635517021000953860596773193535358837926457260605249112092614566726238981471887040374568958140244522666464908756358816359432796657892471091252656548875195955595369088614720004243230994273344731995055347149138168783084190725340481053584450920859611579780375583769369134322172146394680328808339760401811992652496833424046623442567696792150203068892203386228260361894760081651275771707729985318210291003894889564575954285183090188489616550014952923005228897774734107347230077727255598947749719521222441301318606715447439597836026034121191216034067693021232840011098123194972577155966332941098604365170508401623848889248335680567526123460054279295063368627861560006190898168233102620240008458355134533487337277536956776405256695982368189247405932170041586830107924437114228087973822558475602430856133124185439730935973234885148113483150290374429852370968104863240514731986424236576033393028879759298818094865772683360814897553647204826391605524595688050765549771065860123149045619359326088811981317294157396898722034460515233747135005928754637139828555207567501198994580854636331281904602295485356580309785470138249683315933483153841171050210922021559425575820775569193651956397389060004084541718406565001635035894442521867499736334000589611811655485099024195726570450897972990346109489405446855270529440139186413359013644955959193283568114330699905601832369374111140674463352575791747780630544069806211188414603905019541237881740075410666320165529944343230365673038561472149735983490725539025348268171038739279969385903865975092104849774606153785758933798947197187964972441056012009462699896832333112952010024929604974886135937326534104398837567415555665965031786434832821895041473886484241436461211956336440585269829215582430042099245112383849835612771626455880181188828905221460391016908978986200020000315530127807605080007826293189655119080631769478526253843751075072245525088555355328683151583956865580102264551182362031884029710856426355718016087026856746465903788308363308370426508192827741104406636375096702465442811101890263783026633919615601794443972777504138848586970538921353540450810891990687166897312725983890131656772948939772742945607894472919618918780761552941518510985974969501449017431517655608505281729765136213056084451628658248137702784787966605366113153184023971542429129775956419449034776632989325957518059516480583537367853660916015836953640237772199528820213056724674423488752918959668866760956983815659900454116073135973612548767683491506962637550327159226982735986738040200115597974920064988221100384685536715780115571386597635856184029796186234797449980185957779161123040975935365756415731923308496410814772492878780265178719122241966073466968818813484506448402733879082129371436469502691962890587951299332485591951622532658962085634916633475803636552284386353023042053871106156183109689072603826914971592543612960594537828241808599373590647751213112085915705732756462146509854734778110306075829180633623077119520012640842487360653161410690971345555229298529774667726600983385859451942476314760994501138858492498639019562163908964491111428806315340688270173795651290617838909744891414656943149407437090546891322907873488373119112892064338580341112160304941408486563150301525460441510966173669747757246729316862138642049190812585374563235281118177666773272183593528494830156345843890621947669568638542671040269676021735892738935295757426991252842772468424512834018787292030887171307772354351390824431797931151666614824789480831619796355991528759594158110275950137285061843356021189918066877134991372713027132317889016293302594035100279433238756692431875335270349795645549770349661928488517693059228317193408538526313646491561470224858294200443332469912462927739377739288368356796339701226692030741496440248502325336052383383390168718107081683625786879484150116327513878663718320891400021285033894308516346684331740593319217264084435107848808075596923170560537416208240374208093488821260195213989331506872637701467891282148352265834481387884172117657422821511108712008405933893991298923031295351640343360864325811669871513612038174815122502497761633774819020397090131751040067951905537800217635118760588719357327812740297978705366241711851314540640906350889209881935882615518707018031803288596276381087293341966276223483155827555977125342315453669754091801174175151180369664864470168695616985149029904717451517600758153761575346087457208894679450137900172563836526183136977600772171921161576388858688949194844234788518575340172163537818659545319987142055836559883101466299992987240690936231770535451009804928318949228082160852880320479627569318079034085512497534417521519111195027763574766461751463427728766866055679537628568541225067642625954905079812795559295885419306203897694560590274136423105527029878035522036122640057225785299999391152921007505662099258957452782303389225522482260671866205567495057978917958843909349571734742638928057007378199220140691427345677583511191517859985635794802306310263889218359482070339937271538733870729431999744353627928841647450534163652705059570962165721785093469455978608562301570923827380538269609168159965329891540410085207970981221058580236442684135672930738554677150068075351541171836726812215276534700693482745774881678393319962364779684762535092035765955028124726557547692140822149433636715941885112448330253379046860529216048973311140324046831732982561039457225850557573410425552295219195426119331484156929989245028481829938228778062461126723834936435975285571691551950132838764373991464007940660701258551660166216994845608368336281367473349587439778094095375597979403407264719458674858978510910483604775377168025446502503847107255308441767764100327411222537575410345255833218697175070340861120765415346149149737909137380950597519746957641713934045112696601824651896097664168644332591403082188438875772344207609232540731293048133526228084593183841227814896832153907134710868527031091124636580888869741073412621577847567635461726527878072147994172824913473051676418133844825077743524661400205474748804888843366558347169201166808220998661826973900959935095331283986517904468260638690133471518043206911392757348278073328629149876321338888306149343901346968314390395927517485367351281893741830895355038417792846273284797812711370068838591601427010482649241969877993661618885568367660784364963994541294226758892386386958594757582043571869120256688840556776814114193241926528894720973171031485329091177564406058359141549164209318411791181866993366438868079433812319290916084257346485839196046583900363401266857124373137905274050852040755100407899412106954541469046594686647677028951824706020860526982075835319705800628835930608797548044101394982271237046270604293810070097238779563036496673806656873543264663851485812997803372475485889506967437108036603749018659978093450512198845786103396495353233867971090879333218814423714479624299351767181655690814024598796338313650443828550681046560856028571402003314337051841036731517569805361701114726922959837023455418839256510726180882353068296140114031959561912499187363054559453526663699675086791123404610697408534625317958297424689940445601438051243946599331424237610400055092897189654741595385520449524913481558739535063384770307143309063553269683196210592965917877335469485148573779310532261758703388048157842615177803864554588414962984046638786192253502294896866403630002241226546002459473052129162276945669531238997559382923465924436607381403431883272748947624344164962523383743198357533201394486391897673505520900723545631244526111509062350154511600615251880133861594099009035275650439666863099509769899775407429530297626929035659106346277235550143146034879773388716150849890631928413472090093273467947404393671481866867716294245906085702633703034175420689379915902811161310327561527634140648913401825660214367578818572690495511746022056216740343711908489420161287559170521390194881420730720028325702914395363960862919217867667832573199248095143289283162101766412476750143284619812687231330727087870683232934554342846972155641246223150991350775817154269590612587057197753563529006155006198519928107889732857627663680305045187678291445019788592836862243148660631185349603013501716989261598991894741126804154615181415807926662258071038140616691214973935434472608243504102167989247264199319236527288351382525384023444974968351260544980892243650743451787052887291623189956207498901714751661585288460611201611913538338906958421217559678165398087001886968989608856525139927498961494891143903355939730167288131602710321266903376177613945491880265713760204180338755106862895570817422454967224836271840950727767243451754390670037335005703686994279647365625950147576170036548987361513754647001601294137013400232585018299743314451513699030449251690887438702634257556430230004049790858265953276191210253532960707764439744924003754269605345939539638265273700895793744126298647082783378658796705502643915585215888399812356068996025438314713901851384272128330666190639319750340203603499105869462720535883608587948260889877961225998545721813534390173063147027794367234534428969228713814843825504321397923608564111597724261547224536431289405823034995154619879925993980300356807669689151106381352983487061123638602318221732960685674779080501096258726061660254305570712274614678114724248377433921935108635856633854864451246378340019314874558114238064798188269878299600136469454657583945061437918368199075669996137822060590850114522846557721583185115533938565025425273799629857679638191308821268405821031151723216723986400415873589547625188594250865715719810292338852708363680253824009226020018111227281429980637333548716381394446639285904003603193435836973396109823634899278623334368635077621653925517445577804648997163927747354277768795598037618483777371589994709863317925082961343960469496010629296982850705321089355184825020660335048092599000321617679351416571159493976154111737086794753433826982315110295761708867735791934826924729276002871844516469911985581159487272872107505804389694349035084833931911591184748557479969646059471085404925788514046697250461399504733568812003679091377105982532617895910229459184987433999147411912809845129171728829234038600594644347167168678052034680032291816444656006794695749069510944391463730572437733170086361894138597921176368734330476478644435725181178944248903482230094364683471366225582523545319877585488356292916643990095199186254451080965385077904782209622456838560813078637076872246759440626844543441299822162971720084665673824432712979108875323210920208921760997749434264881911882646496733528670411853301320990584142638761645506902483448545360843852869960132281131932929087251521156605180255075406617977452100253440883136248646392118587523621491318314455676833998077451041211585862629541015914713852301885887023742207665733036796401184993243983750563862431206431407044293260810530459648759570054648621463196581576898707744255821923353250870207951351824488458341175576352179899691025084447974237826157760967055386589428472551573604718484012620418510511128167789070292518546657121263134098467693326504090714256804601777231167467256643912865223173341371649117637551418011336798934750973088284963953078623582953960834143776407425297994264331154314705704603372820161077902238638708109709224814366265337215690793896888861533649374418479380938088825726128695236214807243932791963069461594440154599487168046006895902282950381908881425455842833412958719343162081941075332181951071209875830969738500349259384518369851494665416664082059947444133686135720591940587463698820493962654596478153610690309159690155218219151454706092019589002408888515514999417304348513342184911501586308982207325421661500099778123647054185630541141889033907698383006872780397100386662447957798417202178046703411692139085732584920149491380590939527306350408964990714839338560016581679927111570800921094465275678725563702971214217927021707519671575900394584472047681706212108341411241782019229623465289371389784845774517946362153908751265584861613341016481365028576113316864994291511229018357861451288952592958016954928277830494873849001400172860503281986446920999122930355852154515812354354581820516387863942171665554942561796826624142031973900382227493160850996008969321868967687614971683699741292966669487777420699285064469365270827136695272149309910295524966963792450555604228939966863897502413284402144932220524637799799861923466928078274227890184543778762937199372719374601561359186087836032295566909761127203730929035950761026940823467543768505550212211249897081586780765211261869287559738226464927229558594323065299682364400857879655961616561968930982643779798850698049525368033379051077849839357252264742329001183075917922686260486986917036698751142572416722147185443726605743648628989912464983014495860036291551166035616448155783036776353677445541660958027607216592032282693235445427879457235258693759532800951454334241108873248330580240511997588314982131441816549757308900395510775235890089375031280250156177244308807082706152054654122016313623192325712352403292354453447657298812998743567652373040183711485628849737045493401259755225553624763010806211342927396446051075009654440801038776302661965138173478973988992396800616467058880195028441134274062731242906430624414721288428627900274940284645863484273611683655868594412936521161177876332901343018667416035057497334912790652347664109048786984108259355076304101235552805454671207756603512947304822577017841607161806515864621748409950225752106455894774301493470300020527731678930408171940447664226412956387434544459659851265178053566526680493596299448014018646481919196502388367643809553436222089795376283205197541844985870977700962144616772139689871312383430449404944219067648212856867270950647344682003110370792004015173371838563655354998213748259527604095058161744582299677760094832090455898752184096449017820302497246217748798006718355283434724415142818725585821525744188205836121517094110985943174412299590671519303232277686488270724076241003173851049076827690677598123638858090482151146411778687219768232486038485056279823885479999102792873013675399435284038182122119381371149537726561948326224892943016769970212317953785329085124868900269610525180863189932012916228253216236119565002142189822756245598457810494221917090675523511301970197218573083870453792675938295914967847152823774472784930448515671083421156227632943345840340970212387454218921719017196759624118064993892836358764168973753935509083442307211851738396414541854745954698809753844530698515476893006158135362262665316690446139335892356084901537117172801618823345343463721829548301912740050888270252031384142567528243893338848888676084578789805699781478788966423603831439149591332244246475931066727604465767119615473273724495084099970560417630446355622648821426557349456095937700278895900637334928765187891816993514553175789257837204442920448761144692756162138921250354654878218226261398567478297299174428442240866211075089136527353691178629895665423833106195054661275555277351661206078941852323860768239526664853808165984440734896625293493897490799254725163543347596983437881066649775075806306412918481284274141378630922504409116922296588131818480540885264160662134497301488101757262417544672772121395255575508616423678731919191901459721492200350318140508256118671427548411611530627908414989803593103766536737129089318599462226779123593628503696643925415187106220752567563604854184892734566441202686130714706861764735909727111395517062956230643956646234033167791604305650233043303620791868242455244719722308787972433386690728745849543129370958751440948843545755384155160731090856163368106527940002023971240192409749185971519221571084569640415005381928183301432942294686221519890753088292850962744507739271802322146423762463838241740952551248062764117012639242860439596157610263482931910824184620594223471860118917425999517387740373383212026558079074854506935206793936403722237443781626741023589211369327563584693904503979944838939918099881686153806056685555717146523609177325343545844121431253584670643920100723340871250143498980492490569541436857812156302807858955552625500835362520965071994800404643459129645452387404199505179377577629035222197863165036794201767914276555310183155874737748131601991836340684373434568828230407568505424776064054514760178276866932069049630188343737049264551075527259351198964642178649422470199748726337771362510218683204772176397594000879748458232098933355343442240084628552181616133724457388783417948904947088955932462306685358869442155188916891878239573933514729124675168739364095437370423869649588438693364224599726814115196605574476875652794439777147262259711243760200734183940358138607273284090616770322333577767290113467201534547563864697999400399434682530525240567761094446388819281222181309992484552585175666193385607702402486692192486141110412721727804005086771885535896729536056545442435064562290501537181720456445725483649803519092079203807267471957870781893354395721777849175773820639648054696694094957715806038332029595495465449738482747566176679968794767763962402142791327522862621149214035382559375515582721754554019020701100814360713942971546866476199399502600672838071959552054589601855114452473443656882199178168855240493459225382902185813628604794570917357977354316821921858277495372751726678946229155976274528709019093653024370800827271948507790168649083641294147570683562711548877303722733308577882225031783150525079992100673236094546826907980849580951637243172598087922159796352465938484097476514737027816145094050060751284108516737650519345738968991579920964249924888675670767451218571064875556183191308860330558352267143828034414064265273567378513753911363359417310333963044695025857181536714894240600902729918311459265216856081517665334490397486937305694416205331168372869561058668231074307742368166939557218210298286576785395224590612000626351935880340033450130721600997762616908790804608112781485825019035687691553546690570016200136760941170002375047671166083936002969359368148427940073784589762816036342543242859557040228038245704599384230628473444777502164359170455787780520184065372728330010794088294491586094136728662340021474708004170551539688789443473172621682042238748482607943944668903871408731080628587261965446431398960068743131266395902903617788481892074234054310708368705674836295695465646801204626762811494061585614842829111691976000344434351003944682172747595858517757981315258854428872141066323178172268080067398557048526545915962854075638629313979569408984826061214427247925952150312157910815021894609883025627415580870040342920264359744971214531897210482810932524627565202899440715219131033383146042189633711265918868793564075702092165859880259119422539873755697114979707218986010537606246088150805135775724084258571849827313665725570087457715846230590823388903255273332057585282717219144522984173026431241430685618505135247511245040342923710752481994571359322293319850691728684650012830120854338241720492296642976283948698441399884679159620349640968193041936348397791096241356665898433764550200244405101627701837176333002714121374310956481675273951612210308453644182531351874744277101612174679345232899135655256958340202206901980815687994874452720854177823178522879306361224092321621587996572918048884265243641933257452597980693897426101869432837983411886203105148238091841188502190868604578771274296229126137050677569152427305838294492316036050395475803129458870048565448455458920320908458721131458953257362313453499901011867668350421392947225994244168919682449100872892508905119631700984470993435133355612532372299930889850854799975564903502064219455829760387178769112975242108240271939228472846596514889447774643907971648273710838065072334470639959548985826311089468696660091617511694675761666287744879914399328779707507081573267054128255900674898188347772532514715010235955003408355407043530736368476858670061533397033211459411341362002480554311789616092172444530597937461818659788552884561708576863344904712465039237459517786746591838945208293157923989954830996511925090160032739371311960732342491248881404296704188034853740978233608252034237433683068334729019487051935749035296971339987999796882164032239748694758267948690875604540000706055098930930778635788451777271432508851045848553775989647617524418725560415209704169819639510255103238520496041752745585431083289320829144674292842746758947973253335807649675334565053200509324784174579846539313347841063139334308003541973577106842950126831359695938022788002011093616321061448885759025154093956322362781256407514073070208417416722410029962604846650183560582683841010557130882745896649059842142428180288266266279419299115162810900014298630183098354289321930999972890285520500248557014205425481518496340716146652532202582545474394336503173443365659417509609500178826371557034141017253597249050658834373504119770244525341465628861724453402078456491781699566680487473800406825245573645320274990306360907517178474680079480238334065013721089487274211568240982118640987739792004604250379052969992705280626495071388738471709168957749271134787672724278677369764357136782568045963454143808398981363096002223722479506666881380826925386839766926528381008764310097275722899811827015545061068979760521111193642411747691419802582119412990126394759026026799911431758837457592215777726400958563043171914406927586571203443945558362781716648502360059094059791121128516505063362291457594830803789189171906391742750608565039004682938176014054150089123846188447257194413660153369150001646985431234051823155492804492243897355496121075628684372863546180827575994312101574914895005627791205793355129684884759266156899905298750338659223310255691445041831470961315713525420334470720091643514529109350355581131902809129274492818832721090962469235287045518010607591467352417131125151400775185744046344003988701340622827684379375321985116436247343419077802294295080405888281432828475087073823994736805983715966780526473662335137889416916245151119120403315421712080070583992053752245576651554414179551503812794016396584011199578281274967388652265591930081175686780117293358552263993906541429381855106791295247715244009687918330217696032352474152866273556305369783098571404491019907096694703570614523667221817320872643751218633505228616893859841016966480486067432498939930061181348661728308083462299670649212870454633908502315486445318877576302208515490736717195794518891433425070664825468492425007430908976171167230928884761324943691210888118692414212625206756854567680461473550644265877940021815621425604943148721864757456985496477828347111469844074887847445152661275429094806970224261287023741537864104700600873346512144633478168969548786020911246491642721779406291632372490784586798773792440942392253070858177584049871405362987050022854582782434923444750340077878984331634233476046318286272157027156836927732640050708609688105633273176395554971934727855716488105734140636739837522865260013422464320103866520968160164886125833055655338490750518197876555815698704292965850074175460606314975494897850643903929907602302898131732912319037033517015734127356476179200716388227382874474336704159939947351377039851739225543110242105286170408574901000755973925166314985826853456802495717111619488027179811024352515015061810936628215523057005430142680952684138215846933694342758158500282829812057099076357259973735708563999182968181956486151728709712867611293872730958574403874457976822994332905590217849092203846631610519462936983468316510602531868060033182113436087951493447556137199618976784297622992061121822582059920063249484469552480144342304820330163299791920400847194685900222709748714492354736844166540318998247476574176437632971568560550780198709080642353859266737141213193225445256221040548512086095720341716090499545449231134678002149185498015438208679793092761315637752810762050719987432242181779091633357571419059568446976302111915634488985981037090381018983968457751091376241268325918700834441412342297581919693454928357623501257998094013238684363933838474744797050559513750418486503864939650337880455121938116913424380756076108082628798312829283220903918506920658194883962251296990956732128911921502669345579785888157669836196564221934188967009535670292461155485659547891188863501967805816671249531777831654648628598371109009682592638248390150955238054150109562771041912729930024976391773055617415672657164233545787255771666281995721051205931178203874488743989739515674106415307878834256328691805282129970983990577336197151311865380422873543751763917429766738104554750697913497010384075724315937427277703851984543669950544374950851841116470807586244626075900113867653378511568123766693149719505592517566006930181509362807849789497915054589522066896442524872045457075812276285895996027199318343853794997885576898126764684900547229282912123544860789677040463420155285201606568548849298198272125898819323596339392988155515903928382924476405717057495323225528318384517032726032721627178096490303764678773607136547330049639094223491038431711303453038715663666182054789435284279057095841544166635252505505866790642991149842259710581760694476230478084657209889311825425478871997398221904514609424047960208436227531148927840865855441199459359490300567946378413482281077770577193489133941002077635055206697991261632896657057374214029979166908330667329304225490857277701889833813252887165205768272750586757905330041095553001396439316195554610558369261582576777678607382059907388648680907142203713533385144353637126311124926549337693642322903336204137599617345964457388934164811370067838724316126475513792067556220220669825307818898424205191824611008779472986399184121129644528822460588458747568758853145071028404223373056511039761278979810773591035314632997994448800801985639364335958508992352199863261005837668473412213166376268972657867002387624298116896935635798054462292212494043735928872648024729365803577972273098128750182256226146300515981650834477693490622485833562732585835701253018734153762811058883948573964775153812789183987820745744936285832630021982564733756509198377663795949662279953123576472677273825284716159547918480474286988637665348119317400269595790527712996312305486352669899814866951063453044022616382262924284899845985382028434032456772075588616700078226208243272122884926998483875362660665613639670599538292148720859313618673609218931616416343614156119148571592185099034903428140761638994821054136161929114686555974235948699865583584410453140119425341944255727894717226557900787745520693419633511871293542100936113667781917867082948157438415642354331743367401652720658928271627456379256575989058996291834319982427055801790884573894967738367066244902193182102183150029406352114728270420963823205193416167071788528702361788432020474617228462056996884537360010630708684075272627811032153397272185068394700023167414061385065791149402898072244225264724268338955197276955749893052643265562583254051545197213219639158497380123583161979670700671645129432394382703839419828186966810080213548749480405684325927778062715490760581861767259159600415378751188329820298206416487875690335773768648173952995037108992826873164920945486615269030003875402282256854771914774999646755827400930553044105538274799539468291863978272147708828632236112363070286340526990703812801772324658496521100704824765274969464086764903491072126928644996476974088777496239733331619175788831431522737838884330753074944134089714680624590958033960277268994612358998630906682263499064369046512218615876772441414939328230442619442126848687633014579206974761460779953452743955028354599945129267072311559094302663039723454364786840785270436793697487423784242849938724932712607206204307611045445518449043721109183273604388216412527369945438966402969411525571732062238108338899375801460113483269030827503365920223966992162680632697333411221575093794878740951226155394727707331056437283292771236140969333652184465046100889675126733240686296149783795473257556551164898724736346756247279318449277298086689120706168166547388953794126126767447316651013034619918603135965212406068447931709961546099145653892220217734716146813802747349897486903998051257661392217634717455360572086966727409578349608809222487574019648559804668696317841644983704641146763191792070277824704556590109788410440154832966298684462387049319157956157939678771530942041408556038030468629035652080360263264120119497775552825140305628818215865433744468685395218223080168620042929867741080942067904684182102749868956444559447898673047537131478708968365064439647581946556540862916175334439496853220018297923976121128324512132730718674080435358135920025625154473126217633528264488618346140047654335627629183134706454638327059816528459929185008853208048529929197550943615350531864429307225225772347849170226053651642073368519757671071236190201418596515138276051408717133321445863050909096300064062140832142917521666577282383346316596536409654747911212012348985115574110247915337249969036503839488884809170358257598799744821982179780770362706268662956945245403935710052980020607922777830480502110227891299422843649682387911429666564470284711729509860783726483043634756232004105880830714253359734876977872573444504756962617149849213201654583740282393316033738225944651984682976673633393518121649084470559758878559632421266193444004291850899689551422307114427986222906926499849592099267854180444345021797362787240730856579887640704703279813875200427846260138358388848524287276173867983007203203877645404546967233991777952971250442898035022712068694689694281921030703677564026697530334228691111053376911520432343562321299957474009562616358071046315662578472418228277547996658203142143835248884363174267593082917469740844202577568005168037509925429334747823747934869834820800870610714473587030919699550794132607991985838304832043901924275853660436881555531245305981958873279882660797951010314963364693326979621096401213935394281180881557861271354495427558293332745496484591084657185854884859400784950740759297100799587391487521704590887166548464781532166077148585105923770999223975467377963861192651951519384173479323015480335798256918987545423196674026924507584492347458238078311607897551832873081167278614652089811596691888084335649361317086092117340992401487841301859950887738398352002438632354416467742893699627814474079710863885240031841736356217298876128250424151984445594748976749617354265179101354420487293136695858117304644117312027390880453590236326165183466678736496184151642415302866598376060389205361053986924370092299461065277872545686945246811776242158691385916381467810400985650416370281408909932353607917585823288600095771849484849944809505333461530309104794564954031800722538885225604564627941162734781921118285580582864043305677573976886225032408339994014650295424332025177419162725665723430085321117823216236263323853185308311497731270621620073551170346363842253336219182426579238777148569397506762436194448606190650729257905193346123819759091649058134083918956252631056672031209003683042159223528796353489212112834791900277823240858131834201666256471587443691641774380303636707074089164784665086335296423074956732350838365738180613658253105647388088694812756735964034055672773618677516814001834172962612308308930286769922856951378116598271156733181548801820151179639559775643470722587258666428304080382464303818911862909195744742262847024975337843821441463868041796297589706239551253771146790810872127407600727059753468091485177152924191675110016598530233413224191636736550063937726125111171393482973832446798620008066601327279436488377888342942110444580547840744603233021825904299785311817417839668646277707269565559534992648232842503552597599698061440429597884317561727066724433190707827449123598247403126617887228875915155007000840437178832727924764360455296529046518313276615193502982515916104865950683707616811095568703154724599266435355731689389977859121260239236355459150820680845078175340727817405705817901889232736948097659287989703415767382698903777600549366886601887284836430351951578427898760908696865091233392479527237846104677527099914990884504968249881991809553440901501460361022410719563220110854030419118307264130154652774336238213856504948130757935256150628850597275655785467981991370658037995401510481382303724071188573360889318998944401917360560067604904409210223796805442468162273637435148198892020087633793440931523618211868346571205360016091841552115474512312137830184795173182401920283402362588655794753860722763213176282165298894738099772501718820263870437907479957293100963152637928326284163620767713928945947077208060719337301520623448937992073001222244035943323364612977881045828811314473468999148431955488008143368138896053945337755666739551724085355780293288126231130545025019516291813115281927555973416524028764339005937218109106529449206750561078757009466523111130438144467176599133914980255624070141626802586264439880285580633838616726593622232389565985075025687986146979855895147636546759300277867703929884110303141605584742135413230843518036262172567179327742557708737100874756198318749051361275787404153419671228553114508149087773396576028382190751882804462734102975860030144196900285278140783577993709533988626945604885678167137275609958970922247502701423083616587303531879031985195890567433523971984628915189363859179213698642564759072286539719858202982900914873923565408735102243324061380920780116349878679811396395711395118063978609604801766098082426031571065626108611901016357805974550134193144830155107763007731974473577810199465283458432298925667375051730428194862205927511486090769453086241884122471466579615694411516404915605662411110476706570403563616068807648627312706188152624489800464602396899235804135579110373151672679232013571324744061309045604224219471443939634473074253580442303351044713752597526339810632733993628931551541426618110926365206576320178445090255324090676563549790572464360493296618675965263296588043719622713260935700298924178089092634240109438246391620271903700650028324275305414983489359277787330298994598349211904467118318320814459993914330611513873874838693999345752709564628672471242058171255908214741516061652588692900763592841194439814634475380957604527296829800722556646366585592535225810496371910071125986895849665017354456745688658046812434079940675221306388571569529155644602507418166276121888429070100852507824923145671563776022049262229666263921280286584100252674701249192369330518656181076444004827775611241513812828251899665149256683794801400530028465552209480083075141381358692222507313250091843193783989675790142423013789522413313550819329628248982025055594412842238922436301451217855203596541306396424662716833648303717219162262874702219682753369197295681737601145422263494227443743447568426579229283553155122426708593855485016888313529902367790743871816853568582457970179245457490959882395827223387387043906283541014144865757364127892134343601325157280740275636702077579235867681467152098551786279195440140009997589720882705948200595069551361613472009883550102826797413586347066235813805651339919881258681883060117773446568241189126045144585276932667993477606253460419018300160071430083957165247233372879141453471803683322865448080180825500670841444757052116247261960287755100889169656280242616386265650755496237275434940962746653552696935925499387132278992647088032358359608523525700747988896219197695629381324933715978719716854715889972478665618597689093246768925274542777727000061576730734012689479313078515634167590122924156973475157032463661781166302894557149303071811130071931080448874587920896168138341341173048413366074147412752991598002490430907773328364624210242845617081820209375072608315961241364731606191422861079304701613980041528073561383206889729131761022278816109371559628699366195448129995893471098385585608220811775251390101926979229567571808056078211626724689561498917454460081597047118298891941803974112577388681668824051104130577374773214725015968977965475275263751486216616996295067531164527610732746598091187746933127300086277641836788117086324484728012243896214673960769911206367414016646118125550517425618487305894290178906007325019295776393375016566587714657630606591928280086820686339179062000111116794247764647807796271062320449586594370666069406547928453455277725879066065382879383873620985974962020892003094559217310213312667350474815267159342723516183443234676497986157359737721486429355620827770919522884976489179021665109303959420836267047295022759735431897537001626558713021100680331034359285736783986974589438532282158645469998040608915657735143900953367920308159236445753907685722139143846301539882691936721934443478397655688915266382708897606315493877550687248911564313219908042310066707094229353541064783951487676505718678518643547217650704838981765278638995484528208815106626502318404717542008462327007008875140077579979067282047261994076768786941935565376265656856447052174095329168162670481056699539046413463395425714522366322918104888639033051282293991404485459126971956442225599473515361203739869328301527444686528280545416075367514007484472222518178907149026822662601375371843375381539802124246167468505353049688842029380358486804276386051455917487897996986446700991508664343348118096082429234485786990354087901548255710063669253740298173381306901075586838048756605586316082088336021446840813667224488104974887148418526983907692144402092332663044065694443111781940826709187129972448741708825085945048955828276097583949325654420484709454986215694443260932541735533541094271315795889694941221692268334755754594952605078498543538813572230313387039337258377906877949361108046197562440661794677939977973974412002830429857361409697358722837499182174815338823992129944364456065833119564806605667003874057036957956805064343397311733091894285619482551738335919387198535267920253634906595158346613303649162429282315531968793763668497408161651638567272252853074241344895404467011126228548113696797452349951392355843181002562546874866962722148957963865054655061929093904795724058318446018016298943893221013224586531755286417526912910706304774024641872345806017957580942403652606017542740476377246048585965805170144950197800010620444215529313984375350939432338357357507076749260780959263467671881640248680106354835859171222153525041366664181436244205098296615589433447220319940878010323999262421892670191108486873633582094690025031781116892785468598497700630719759604574943698126346231807204358229606387424272771409656043792446308626306990238386287833388008983678402975312361047467444788808468775732016458846349101462533670574960081069203414772281845638882498435502048235513294818934026575151233268626199474509392354692565031806239798771632308114609589033955505750783606840612215635277637086570570766189826778197833944794510178947077634862822385212212698658389958787975092077788133153476191921765863726457118077014680112335290941784132256501298486396330691074436051392394187663535801143163606975214647549035430383770586658179488966868918300633574571164568982374697919564326426502783361409149669861540682581349617792381140898640503315447699568296120895606479902759353115714346146106548740105178047823634394675982303587913265079125910369614140920166406274261883062447489523858145887331905911126377543376750263147743041812290680368854430873524837488873568734942179036212919255494902818421712083376865258616193902681792422931919025270814671806854963358348017982174659071505362378151159326614311307845890168442626841128951946458134715342051690056762156163901960529973492867249708863014261816298632081673229212225961363191157884159072707825175869766127942175737782031746041171139289156024338587100504973109702974207291963029570331136927675663865560829048130977231203750544037559462531406059553195075102290312569035951165895373536812642161388099735331877050159859121867479409479600847548454350947629651667821604551202154743653343500143753198227403195007063957677113660236104620434011753441364988793533739075523890040478353176565185292555446843611962241972803272502097717793591565130027977981808200489478208709261343252401122120584346646451003519127875692001306941247313647770465568995530290827316466790305256182058545341762461727930700624938794920941540243281282994868347831090103990293817348481628523744817907167788626254638537539061252015457988498977756952961244248900675709837744219169657796515579932011960648373667111915261177472965861929769775996016258531215630127388236622743243141624883221782155389190054384515872494321326472229565086697045710000341543104276189270419999301398552236771962494332657892134143367443786684984459833245526589961177727154747521595035693091029399708691659598866851235962452277295994797208625819628425645648523538239460028347697313442546051005997048539027087155677321566988859598016108534485990572081831217910929677322382405774227375600859230327351847075587582926036536168781806905232522118634323112429427755408182151700462973443452641497379789184625289547636150976943830333337545951010791718571391875623693912294186856891544177279177675288471483583607358206523460033873559869031491987354306941405324304641587581989045992029081772235508820461038852587392521572728859738248595046464397083394855522425966504434756402779444517441219644036368799109987303037463907201041136747907468256014155347908376536238727596050480916035336987792324719137083217865625278269077037724337073267567141486518324028231615484266361072815133473662520145363137494538878510082363317768901612659033834319557922123842941378709219615675333511286169611391383446600971004353314462958471309256300774843083736562947948456260459491888381366913283307733690113869822076959858932434299246816094540367453366564249855621627487401562697889093372036967673940058464018966296222132324882371844741856267005441277171068148153731071224859668929810476548585029973402171070373957340526817951722271337117789070936655960450844406591108475574757231316374512160571938665671581672267554607806410678228375228814845078308988382526453682640139312259004088016800047927743261600520650972829253974467130462697402117184558500131161799929316665333369439843310270131203495161351543724859973918504504987409839480550625207329436333834036982439193215343788115641986954046915400546886902029998699790697221469726946009177032485254333539603122806971595458402045492653554088896746339560169754039068777304808553900821136111706014499884388595698991668223502375657564268885033378438632658353104251855391333671177999991985080898253989420388914584060202903334095377995603522865241605652199093601178636171675321283680328582457702221783987955174554423749542970750280735204332662529187596326177916258799296975352244069247289401888009740968943070550503249492380577991467589509778966914864821679399233301291883355086414284648505651432188042309705723425520173473704235257085649858963596135991619144778019281483511017729820241959383893745916415733258909834238253524858595974757927027736723464913457614620982513080526863660630765744709995934507817323977723958714879636049211284889592114987594209688316571439431553061650534400322857902555067501774667997454959248503747635215807771310380615206819395160273800132999694632766838189729882182166064587707014485080388416548760565669008971110023780856245028209115100243518558985394015190595446034449067968546630742804146270845937340325535615292906374797100758865413952980690019632279298612933674765555628003259641975989422276293567345824206333596210675529897720480757529454956322599256438881636273086200415933578837540712149025786048280476495494349477995536960488682791468443232031552625924109364795931144390082431858541976524809376157231656488442437922150564573649478573005846797233987825159055915748526769634098451454100240517400674269939434309919137348093474152395312970136993081527337368963131258390099819920255815893690927217032481230077316010284164144053889498566616180572364008190640193244976781657285485082576287411354576840449244430150798843520180353614107175486627519159213828538801272084506748983012592804223894174068848687237061214843093875493888430702230659436884801200874487836100484342377989213314102834852694295953177938263717131700134389972858730418952053585206094422188301162730766223607809831539394632533382364239289973766532340823199295333073932371362607284616411608759692662650326701055302566694511030475674246935251175230291489458342015989722406918873560598147396450368487017079698892739153812725555022035926964063363265296727116506039832361033232579447631645626539466829979030675977896981955732262815668165682113132002406505569223500888808615917211042910180504019132856356214699278011568860700901664673775095042164032746809437087324294039276986971959842815037613070676333376573169487062955066682225525305463163011914566709433206640653951699789404679285623925725750425146057213415681821088251586924851664618700359107025981873559061251091548708804447275159874458331457600271155519379824570593504255730261830091091445757163843924930214848789449329341830799601451393361762045743175031747713003141650303455583971984628502854514705867693885602100618516467971387854309750419928159362618224813453017988747329541974061667571803548140779591118236696791613346418939369777873116597261779142649543287052427034223059153449952392100717664800571521423949056974741277722093215125407597872084247740053885045639291682736507624115986564972554071865409788008857000315189855968031875377040861142590252735070653643820290497979018790166806436138158995113371302308903379397418823530723980144567691643809804944486658325367379723378204529475443301735473434547614693674659401244702687151032745860965960877727247436661186524649852311825989878706138166077757252216974713114308863774519516972555429567479813263257624457024791674553768417160168224243127529025906082582096594780637659574865424185290041986510626163248627283154629412213618887282286671255232468248012035193894687194050180548968508018896871668240394063066820562285665815056916086223596392211052931763432877494536407369351106084681998919086555489953466193343410764527770921546008452792255629414596432495035104209950694136879377718148301898137253238700744031804835367434684335934816955291472550489209434888555729285424259468144651736607395029651927788398645405333413714391696124535104663242988590244941436276787221658609151284196249320366566587727188895356598309173142881815113328768467580014114158572425510049501775135845359534490615246344807184358770758236616207961171983421743771186278440748973850289074029027342917441748357964321852780000864030595222331353818279069166996489629483290234032967687211174580782027897245996709737674439698627516648334821944813381228917761888581830789004568433053531967764101767067375497407146867247600115761276696391845781746456423677772818039512685244100283710768730168764280769232351637013551042350178897233716348096429531836620957886192065703857910781025430953726643230041954313462768853117242888522580821507883016287166808396953446518620298834108259468463341350118841735283332627156955645579035837570078766369023091615191819976797285274581815020676880382770362859522913262445473588199257851529851938435893133630607665425530548304401921999851777967272484183665209590507353279966841631954991305666719445107737504189092169719074093752647222442694800899558665125115710956482002481523524389370745919861137423156034981170731116130650802751214849923510778801445769443460751687090683135022739240316980177639048347085535138725232818314473051352983177691985768198892691765518971654739346677243710295800921540372213492659414415210541181550950588762137811554627517062182594111882626606862126306618086174460018636119968028281846591035846559526760705905662429747136585397349602064183674760855954233627702900822018507893270567125640036524818502080688799262232150861614206032381387621290827906181830683957162944653737986230396750565153712708779086490065938207065889643984919526697714675553826408792121291586425647624412389743280106507763412326765950064441649348596819306503627141388478877706220382903682501341011697245201879313186177427168726086916709612416658259080245190700863123663174672687779589452028198278858772208930632550768539684060308141104508062747979226598168301646840778304374342285627965031507217611508461382113326396820085784856287019485382246681238811581611941787897822056138996415451142157135412773436350068643877286889041711715728564891648138370530367607160133140793565418640692335102600398664496406566387668016168668143270861738525749561238140387771638544519021584813728541378745422570327611339665756778469434089204290174003847747397578716816915314943691291530580006356256770366768934410312347511664909057901610579257181550792607173075772937178905812977782713564003079003926580671259860335202965745926835998122340991254832086083341743093601815895981695114208545106452108946526565041917657339099766141182347460182397506198339926312861698589987793730491887238998884327222494732774272242798439077327806946890057465384609904541882765946121908152664497523824040675379303102333866442144225953901998758365910870030250526897296294943108345730228710610622479633036730155419067929749375409947786189960187055254568319444172385650579729744444470907573999248918895969933919695820285111094911156139987525792123181573734573028258310053881475011328892633041521975924118994546666366636205347932245288854129561022943086340459067061129217657449596302601646562225518935726658986817304695862222906636058611326607444713968851823321261135156573299950854860092299477367697217724744346972155556988003997960861656128379558169645447603037308606526405335676093742588526336645651974313498505681916282343583985778354279094499770745696735546951170790639581310581011012788199709418686843854637174752453427745464176938926059111705716698739830085743193975562189091582532089456899661114727575598922899869127489001908178051274144996337654359289786580874571096275045502783667088289457865574150646582814826899520893774092542848764020885389185361183299167631551203631391098209785274199826023246529696882713847129392672693154678805254724932886856097610629996348449072008135687012117548480278706630810981105540526216191843734675756688318479217264370537380173338848165820930945019961094761573435540998534131930704758110831325163825250330045320556986843777710945002424202424699814413737559273855964314757291053235285495141780804422664930862209498521100915188994569752262765642257608206995496050361123875101415450411988378319562157541124050242245147669598366379103562398220591963960687029323486531555865255505750511430945920428890049436289910515067356039169755676219945240522130625790709327338699111810816544697526286693791686936491943229362640967131071953343712062330937404462954965757322648594040703253666677060494826209760098976007021391431497435283661911535087259683330564676571665168047958845845959733557888457247317527431336834022424650329506850475022463708392196483112599237294463994848168792408639195659491816642863325814895559550065014300202647543910582147439612327135412086256038841943285428706775665349394181758645208507867090382923261984950929698142330197502941226717026220076272209261041393640424585127519694464866847290228681239158470909696821766419271642001391442086235812167185194775429935921603883678410614688548644664718357418279535249168923671016529388757452545535962173660416921978224730733427388042281412925132514669675346092711569093814411278182135377318036969461779748891237831811023196403796081241198893421548214441179411532604082146804879167636938582169809764109294842009005296392563847279432005955954249356299242124676235706252857426934382998351815658193200878385851439121082215807255070280733460429580291453333134836298933268973240392620703833958122895793483301920352930139801350854804539046134520408186547714001023976214852974157360903021873656142823991210633720650394810767255235085865155927032117695126459626630167160089797211080472031094816528895357857965029333845549247996497298168410658217383780248914227696313370472928663970488160566367697633643753845393755423698845335707540489002235187003564075613227544048509569035541539492877834526981866540211831840069782564265013968093868378827117234242107961688443365452656620750200598342585606390307112907564935195052505941726816101187437939835105081578698075577921317288333302603043679624047389175964405023353750847985817806127668240309457588918440672371388971468853805268917817734365822160611212701550986886830842583147301168791111836289980216879792824796306157877287938262243479832147136613797053855353082017891936134484606888664853142397669600364092479265083498963669010452801910834660383018321103631742971280657841234828382038303825467172984318195992097534323741052025421889123930705601112887526086723521187073600753210044673970796373599786450768075968649139094215735107944146793186152195951035676675102374594248875098301944350595936471823372206654284360219360885276846060561944277555308182435619977642838784300256655701516501182938050440020671108514357243426711741621449043752602541700887431199465810105577682383615739733198584775155476755649421180473225498311339114983284691737810728663437205728068666018563783574953014445337945908104209997132028285046286377929768549200303301147039688311212895512602296547451536736855769849510848889592527358138946406993899923430289563518721623104842323366428906225727958249214553009090112537754996634318941489986491885979084274886905013965336704226774257916140334929120382816012700002871369679991514827114473033993720403461101875278654986318951905293791581825694451714979046727801615818874535209036482012099231542507327593961827858705117009998496547219203348328033701904384230723128309752021844262792686842403802777322864095157906171656431043725781422296596268695985274057309255656346947719609982675581287245550873461605844426068491278980878010084748506635457488990073067063815676768385381535654855603676208508735629467882253482684378531828266280451773863837361412076593326289781254197029787138509885125734385303831749086711449514754699101089286007844404864447400463583009897426020831764518185275196841400989816210401137739319812658892025400627209992251208219198103982728300926840762567230995820868499132659956932615433253622578536943434865346340425646752596237558394063678571950061024940044001669924465579827473331013939808923879633573018870416127377425644775377326836622641617017791104196477375662112478046629759857939596380110955040167634892523703234671856537912869200184505052014576218419496961898900803952698321902170079443273697458026339286852537499249599651375140136268962548079785219253201191731287002378603140601151631422408811799035829730332125786695188729258875733491415390504664763689482932341878323447877669527337040800232086831634571412447437512556070675132515566861411400686659324978909694799467221898521988405148240913580208832916120547134121079796606237994284054507578526849627757892903431868977900176980356795747207440311949219588518642004565486676957177877000196593308725743413113593752638607192730158134385712516857407448100296571357102772534648855902348639267898510930122103840272073464211299269633818162763155391177672527170550484957450529790913499693581203983373510075003749322122282745553501086481766631312389899126381608936089610637825714507732737349084559260627766724170277606940790085094818430013116323840016397461878948856916314856944988742784719881781503089241564194334625558294688503443726311885950999071893186827961130029128541048369231861163178342328351865367673021216074547470524842210639257744951753543257658971828940650523779299799335934724363373410678960891084676049242557904272376626230525724328192626225189849531015369182112077217610466125954810462950213601940733480231398755563019190150627709106729866577856955202580607472133716643850634174550136470267966205603946313267878133923301249334634722935051019123257062778248353009210987614374687707553126633238968847830513477541444881915924593998280706320971091815432711223597941199754911828658216742419792311088949420340318510901337204661439466741125449399508322658886687675817702963915377624108796886175191734626430671965048625883805325161511557618090301332887948558111769690712152035160643850575128605863872937355395076235898463753799775424822515874374419631163631241093514463696865684929441477487455388455131237058526877985671809805682004151432841590236394027031228270814110328128594049444350516119827857278750237620723896178045907956586373160498161934779242253138234164504634577969584899164816701521232366003591932806144800672772604417075228728183835133145815034649267337604303202940553520401347375109368636154424483265416790509102154091303742563963873112682999078806908922565939602620219587464004615428221283883134234592737104952264735312768199609773090649735760625238469413197218118094424487107050333207475943942270732363535157313421171176273999004797378300730114157111419810960573437927145531585250105287537930178642296866050818238159455435413326458590312102622031750737282098764945739681811169203177855598984249455182856087984135035853075024275001780232110593351009371095375892059221140742023901212638364890302069386427156799740383330874469888971200197208228432658939043790092789843442226558597102944807480115653378694204778372738167810001031987199669188718091391462602440430394630025448459615685430004594189653505338730494978974790988757586707956138723693669556854336849310108359561157152237448766988293574873906410248628565105209382782955441576486265870271815306150334435943645375588695117799598773460827970072889375589673156167854419226508717042189648871415619424137890074507709568731790273163546415117446680928264248584350914849059583510672709194662374617447891538910396628494886356239836398008411609003785236362835133726673500795952740331743087767417666432111999176924302468933250155965883378461020014080425816491965262168798906791742161474618332752233939747051510132287459152265330146117984751407716723453461312293619282309998484748628334259610858316087921894780239421392633591246612180208007968203654212548455103202998981445306599340335604247106142973057791393894094818227652041412534328032231456853421173818637819079569074908416240174906039319417054760718708558284516466665066165073624555408834783307667941374267601157267534145047989742231711778149504454940432872473253252319447497002641996527181341693094738679164309945311379384482200139572369415603261741502987539063594031189579512243730646785491287923464153693352732204423628746563598233866475426702526073324407232951699424687660969869134208601281407520135586438782855759649550122157969758933637703374215688842063400353229243977862550790918136756249736923482775102370853742523526793160256277810933608801165698727872196896978157206884821905639657228621362645745156924550492068285782424332704290318381702842031177221584954289808479340627311088715684419964077639356120452507101640615077406105261150036385129186376178683714765799297766863704516877239944428922783462804988643425957971289069866145161212162800686255512298569175823664685245071340099862292097196080811111831559933517137658320902378600046523549978505287803825131789570450500812543622189742176838368388400577883879725884930820875850190257818461981601619415069315425202685999527328722243939226431265437570627835986406031768514035666829284707678796267681393631904296093640208900384605330085093448534798000685796248314647771285522994088522919000156199468228534696635348473595519732890835880160663842439254290263067164953396294627970709098534456464168197485117127290214760699292089909430842274917118534776271551924548354161239049700101598461674277179004642590911657304607274236212843371235735956240431964542064820388307885023958595409406823437161190494643502145017747634353427296877273602192141181466938478646125407971105946381072524764514669301522340881302863383195993955656775405392159916687618045418527455210785866681730474973293158685370854858964785456648102405157279239209810360673512713396357352667280035217594269661180173339009777535541447323297370572831996197768079436139768720312005566548089048624123841606400673198368992962303060211424230742700316925146207124672137774089475516491125913431442348387773552802597461520365560113947413398815538123642393302230863014548061646473063753763617093178263802010733727192486210112434221720588394263500627685824633227943789739532421720475512435535535360356867806460032521882680947240162932824242169107786467412031548703543745661402692981182072769412738958617924851938457429675429677776671194603855394732053271848643626185925316500692969991650237378997096586560963181951550168806157294995018895556541896060149939551680274546154179902067396240328468879946729292994835320227130390435520098144013921983849828023694876785080048054091212376180213751371872038054468520884760207828536546027522815865885177001928909071339812316213554939874111694898024412046584621480795065698580519631244993171003177532195931835580426564711640557373854357062428463799886043830122103848755680970443673800218932150769570660522537830152621485358618362042137873638159974883108648376797133966018352273578617202303563997053048847486591129151965508799931481296653212628272758097876143719488733344030297619531513299270412841450797199552273552957017282213012980209068631152587084441929054530991263386302326411702775548002265868335415268710422544220929439210036555282205898529526252197813006209986214420637305474589108215686220217631937274964718036956892986451024564391444445806893995504710983636075478489640165685372931920009673879409639635864482206165929780798809537935957477388557783015741024247128840769071421857938660372433796334999808486821793384340850442808148376067892119006280087197487532116322050253855177551327591868952758215517543213133820906417933697720719923336750100260362991364821483085122254076481561198181603377557830062450302872778606783586049610146221059560873825352594627683635108245109329614961047194408280682026615673444948834060347466934491188732997634137681512168144399129235087832828303350570940966116012768269456031483667864490786150327185989843721367805285040979774705835418632881781227492841124043325590775265995567657519216012445975086699246801083721886553354190283767748388048406003630661718212176510606431699406301015113212430154704554695321458242264133886586188857741331813197531622326640080807289658629503402037776831906231623064313136837056557253851913889297340291703503474933199297410415202926320670072187975300258200242905556022131090442071577998919190172493387072374200173351985116701379448817908357093724386618912019081168959819608252484053935895707049259700131072450725285817808181642616061577746023908503234028018938294292748965283781736529102589928196026861191995810946784519296460903791865738059692158096264975325309536483983574567051452336314507918277921865524216084543950366522097510857631397328266442736685615724214365449117655847799003362735402940243514886428290660655639322005178697750187886273348256389908574418492708089767864467921988096438519983616885614734633699258517454427896008362142517377199098315071448251598706076458536001777221749683094814423602625275084803532565887455204771697624443899857232036789462662501084769500604945980023179479884332882908575844996363530652088315144733749390093775304303567669129141360453781191783158715473720234760784240291705047182017538778776397743062369396824443506377726289634504563069009183920433703066677579113096007787549131657850195196934945147166541986381201121183860886314566157288002674642375002766669302435215416497581391789655361634583233517581845043469757134267345745022714544665993058968443853267836122259808359051057900369972916500314281879413140832620381228866009720395895044409707915327994804017555683856920306004694665445736640230985256313216382884836954922039251757223774299673957735535591651980367670050282921332481020386633212427981186417169520729815969536199797684950745630981806175790833629910982262323245908494389458927152757151839837418646412563082689668666824030067842882062279439848606895216227989402695286804397675668803023811394048745460690827596062284407180411653856985926488658308251843252391686863040374281226085393972990107438396383455798053985011414604341431480610381200451448332343207430322759250859902439044417748195608739375869527260831350059482909719206118447587716082276509038457453011335942838205396073498066561696135366928660225866625421190059515166563575848808432901415643882907206874579771577259282658326982712419927260268841704157467351556682379561146114670309770411833403682914109141663667303019930199856094829826196214471068962572871880599897529130083715487117855684957378079369343736274754295256700828413080154718314579326246995389944078766643358602707390198434085872783078541390299457068566074889138024869971163835948490244767712742967395474418150344529594087347602448892469937557806803149578189359841545703147648906212800702385210387932305486851206835258161205293238784080053746977076751225639103027870230442224055889478433800453906899567075043668551571572646881171947692092213573818270011825742559450811179470624777739917107417443970754240409892486197460241618859891371726707932056089908881375034581056641852918350340380274447270023847573824808444489172691534019532523195273160906535886985465186208069539152254887822669973104473573848065895371463108511286675552086521273020425004205533293061887292809348329703554719933842775040095421179323338481230921595968338989615656335683842910598199617101006653785780436164111579133050202081992057509895646700016822578700400198508798820088844299658944557740261024283278227162641370142565124069359796689616762115412843041851068097826911017173943492580867970712487891257922486689880781890840848675510690062437375061168950437536404809141047857080281231258892060877685055362279410207750411472001149152478191327647828202977706258589684291241482099709256441587755304217634467310518053059802166955379796124647132428935764780986946025104445587126743268951507098908650072528292922433188918389340902944463795613566984607736104256802906144819696659715148473983546702693389224203320255903935995157858098744753982480837470923267956427921017119289050625325277467147194330924861099279903631401122960610150455063569427537729573176256701839435253348627677564056145121704144983712999515748310753501808062987976936707864802165036892378902856727762112838069986312117240712927941387969161572254663080041860007042790615038759742401619391606316730783815395435207585811204460411904132590269547819427535073632527573565110427512580446818158435042953749877483802110020966679070125906574902559387420878023960810399595150559555845185837863092452604326992919066455741695140310606666337769467781592750175989971838052266234513492933161390644367817837693130447213853608982057780012389877255914121065912250084079803300076260032274423888972216709903550460023995701620056353536422560501706077985025975542705317265798774017097716126440742577570668123960617347631116862998709256983555914472994022587486448528648661204122872444376544758508660181306075413991624579264250506852084096504573599753173722312605473228598609843258028286730903032053011307024860686373764031553795330733275529204830396406761930115158892772916291690522915210392999000707350516703772326616472610723707427228096327588509164518033150739070780990805232780388037945154128267660236194376946856739685837848584994976031782493193259229105657031369307474661362025130371344772443250639918781935813639861258549104053095619247878659840166050381226830519706329611619377293192946084303586472332795570972558369042157516780202840801100046741647403917608507887888365412411233273030047777529999556092757283568916434196197754022727288337504529695178438129269153924799052288228430312616658095369846978631998976501734309255611486458859395445312739345951155863057181610160730696974402297405860233076373031766979431115299195307082460897259672130004760220860713232761871824970285813786032887486295823173302349512119607671778186833578230282733668324618445024284327842440407059150349735526363656184816315890083372874179408789052170748555276810922170984845487349645255945443994911452072232918571502674752563970295356039116664962053706049268270596715618035975946533777839726981262628639934068439716907880831678254653933843340013137129128740882937685606965772509252751424645803318786658714295843674921246785412230446236513156431900922213713045086159047413040670610465912565680036257337537266715749535680170998320248272052974940702705373026564055533269922957933881361589979094651933617603277734051240707414927453516783486975764096621834398210214988372914037538579335710128513179466232190814366906604616206243024257313861928973289130242727940228938076582629373549231527473572572707553262443151578989998445288083808429233371141511002740166574637387648646042891516163222790872287388185468002192061855543605970822661031276316512479093913140997866904522814101596509755634035175073043061597663150255022857204367185851084999478799752687856656106592444671419851955751994087705315403210726108638118458242724316376857124852677300090944614763737735635945623855065620825895961143367620008418900936308254777252071908199602708718354204050207073991314670135581312309293973408572423172322677886931819534631351077299076207558076522054885884007652216834829430398548535404203817634598060283239556363460745053373601315895522403622978423912606256321643533490422098878076923031244296209744142238500793208090670106139983629638885894261173502072972530253583283780257568352123980695609811324722004380790186465463250104196201266248295296411106327208245913272849435574618796685110330495042018579588472550158829597825162870458312957178133759944205179725282755870090342216137805801679413248556525978763901523821699556628236288571600563150161598009962762191905296659399242098649275396476496946169476332382293304735854333306443914451063129685742383363984383630860912016748129973147980501052910733340736402893609041722173394031689153423830658652144203611539099021304750678544985264262424064250346493787067724441774396903657170908186415526236324690908696397690216946602550271874943032146727583880393749208105054901679083861818070174631292141392626476053326005735000978641529471739240597520424172959971104272375196909107219504146223242699886957272807961902074764071077143305112864557210519113397577110849810524242576753034704810992694643679118813319649070407336533248369376160097630048994698946390426357878768215043057073512438881395084921951792496121128853324025141195354575132915394617153602555521467636255184194991560549277744905608708642007871786484682761397448609812470480859635708248459451424510950026249430645923890370177851100102303737088245360680959261084978051656484160687008313316607344674845362212030751454522823504639026474717315616562622754780597084125374144085153821076189350073709980406972514779333715608313073238968680877904538278757937243868881658061851003960839193438706858863876804973917309572294391702598209487689162607464493420058545956036963684013896044873086917767346380240004688952939410406455591532941573538900927012712240644985841439776447538659766954433091715985096780029729232672115363969822870395466354937192846731396402061301715577284356795681052626934925475480081687747514785955020513745024391368040348025784582930630155849421556525427536766304419312275107778330797246695594045975737958425105275502342055829838708164401731685054768718648522943540263545071867075289448385858155288303678571130114523386509923442000482251683986441631915032649326404243633268611743994873113874985238588678234592552383193634955980604587637170967686111855732871421908027011482142151696576219303494866095759113425675964578885679659968859143651657803842875450538648885435412019240770528262272556434309691885577330360073558468250061794985945360613007322515222152040508659659390764204934752848200865382416440582018452498082738736578162217945244152588886866689281915469014829052248984796771543181984587219127161462794613705009849631644511976752282752765980068773530134077978262285520117701793309485514894707459724271792710044479920448546635178285071131116481664151715673747552716894443808425525225695109697437501640220527230335207863095800019399647807222919607521342774051337689657229648509455803826041734983096566963446913617635164501924510167106978189833463255358900280329851685097612203534096340361151687699449091494414928581256837784120572007658844100765803682813902823956100717963519974845366736729037216206851034655752526472907576313109016049996356780476165576344689998061802997153910162291271273113347710208378942899504282607453904316580169771269456753643817811149975792862066305485855985093611745700861215833889243927172751618450428204335139994586992873760490427288663997711170139480093516300993766036374633349001466406806416122412093934953687178494232436282874017640608530472384822091442619839587613642456567140199068763769151096748891729926179834241104547996941242354514267717072891299725763330638071867805119092214477901168118130062199263583028030156702774194543869385132730278483647593714001217502540293041947253219829848441614383076473578473867608476351825127450086203449241282860346352618415421862904991805435579802096351746469187044000006448016638039323683470326626679793557046191120188103004019847138422053088775367766127473906904430324857132410456862990908543294968663525855358825924136234183195392382070287198388821910589522451497616956448933897546803617743083416327118539794276597905639441248901347878212607696560026815126430031257363578958566588868331807466557630277474336024325181246412340403320663585907239568929701124159153407103520414649573913627144218696170166548407626366365511795871559861874624828512232431351087777441890415906643847506359885194917774597171996132025156650316875093855564613852281792398444235676603419329578775941468264476876118737226106556251152625755305913053183579618499276017180518238215715929734184357641952042195004890665123218139931037933442954251022438071552732268327613622488067724650941571601782151571091443392155050407342098684994138572770139504434426296904175783512823553452511210108836049080286603316205458571012175838519850742907200683739588199047973358890642892108245316958604706616864401935543016273957631774750802648896857289886575758661250667415981231675487568435026912136654422046787917246093349980968427252691915416447484907902203587335291562923746760708551845474574426047638073822759068316745168647573271731335781112829200755106600597071660532958767891485782057952282692764786094393576806117734392206019886403579816279425315886755328730961952966058813223082579431257242110908485434790808704548328910142610866032199235576832408026481758719694270634571848844267045817677326755485986174505804360214296338145481462412661039934402843951558770296268496404764786090733095163164798641931560061552051283476038199966657616096358447168229079039555426054489011119528966400191747916782512253136519264956717784819232179405403802864641701283299224545391438869469673261586843292306521989188441654993520134411064541204097611924834184185508240992506336346606840944075299213811538703469806536869682439754259616342567338365494153945662406284335534131872920750545565578840582231048256047991582621343719299176208508260718079408455615169627604668877476510771190892557097834707306905911204367837577041476516161690126626723027153746022198331485565026987304008128066259493416579103365334151132099003248065693240878085215949948862044097011621112560189028186460686954042479624082904073076723808718869875227614820278774119110371409935904264399121329810145033597248245444635305200318111119501693955083212958173925031411673081731400149742169554731082857534855036595957240110510479367331404912491574419804213599718368860223646818135523479445057452909547304557856172087562847897407378854546254369973251608831853869585844992648552450584562868059970221619345771399421688238071866609973681600198756281391838758520174684610983771707747342572292578119779479506101235822915412875484415218215384037108373993218405193235709204416110953008210197132015518718582329459659649749402551643014616172588124275636414006325120068351484041449851527677202869847241065971757121779661033159248033360851206555481417503228964137087569434150163922537029837123892342844992371219435365514815197663248449918169441468775163549861319209090608179068997812416829658107287747158472732954090229940587209930052422622631917009185454328060788141647690956807879501284983954760134398122217231586914971154686089570821575203653716530161261716953088056878937652153896899392822567510222856523064331114008687659379736046050647885722403202225328294348635438424592114447498750058081550377837062746834786048563895639140563758020357436737693657787695159021282351466127629999870088707543784768674674791601357884250890055731335810835233891731969353761036312161021624643240023190417010120616341756716387372423443078045284054754163292220387894372351273050157502205504644169886124710879172294486797625443237167063722648139468064570842962733085476053853196004149031286615436790401223915625734922930189966341436690784110896730899952263514029629864898847502878028476728031723375826368619051182021397415414148508338232054262400421167262770140231531942290102890481857409332506529470907842946773005848657703888229749999658757293664509664643521791581213372657557274964160246537322542421931608004155054148761670665045878171106486262556498138382975547646217279078780237913806768509989621201303357522186196348522724286325105235570448667228005614369164996303276073727421945357193877098709921376420231324208054396014930791017540025612856264939155738640800118820208483126943081201498503925946440232393343025617176722173088965178410248067588102742284929380297553768294521455160053812000381076547300336784789746402780111718454213971527727626837519863506179734535855966876563938640653567267122836912166974568559179468600309597247471223188924604635872012136745414225615774353317624184267971236456821599594038320915099243201385055766044975420323323320310084695792767813145229151049307437006794769612452481248291095829664646941876812027628008650641909261081801776360287919209608815050739622081575544636968243570842626272783444705856931053560960886632897704910778263112179916293925623928893979194085238925107033767495162915393698716446268752412198337824127404703139133448629040022390700930035990760773212115054284404674217643800906473138006629704116189704381710188763364326817112525917473487659838876077207334216134528276946670856470476826089986421002885635129478687294754785335301103758542585066672131944373867695504779994108054568490583823484692770049851755361016157177849471853019277661310923859256038040971595652555270811522076788853461968858295648924595926173209555100336793551538480587785860687885889932930166316706582105757761315316696543303445934264613945811184330681291863958646118657403459157289306707944675114836940362024078120861050043734407531830709767759892487193001482235739904402073374132433441214988759079749803029565645687942983250061927836809733870645942160234580431350969811053660486907739236788827392485384049276744646072931759411232238672386886231495311076934587149572017600222737858118681664740265305346616083505814080535504097404760072685708323561266873772752155817317106830607508186402428237133141368970474787061161817329548980894361128917431178692517191069402654821229946155654307140624945223558278393432570013642641778839607265253355142337762647018039302502306797929349861916965150087911669734418413833951963429029590848086806391307102496551387812223607195257677151257364710912279858969045987056941680251786511233509412918492204733276428563989233970680619281173353758617497822506198470761731314601023944805144305017484999175687540074985537184898985365113495130031568410431562511755223133581291875413779800086925347845479640359424651141879406479587284178536211148221553294497257812976414691831584492521623915985742286272003428651045218853012709838764318038955475937272934055184809330595559748503917618083667896162997128629085797020274480788151279131743710623752876713109918466290526288533585639539419041855001512613051991523951815282194958855424540490800586913468143472337264396592672472739159919176813053281514553241642486027562059248259290503307757641925640817770784053799702722425895189348561323081398433039060209680430759693086093642669230596529834310416452830324485346278721198465212938540777187692989964871800186930115127038648886174807059681436648911232670183127080387289097992939304382442997587771447103852228812106634850234602186542638511859284230554177560884683114361845177387254269172983349096676186068969815678831703397015558799240393164783000771730590265357470789670821462744178610130034144223047112244037339249155103528399961919634596703714773610565973570931333697712196156717095322079821973983353843484992232781282871774375676464559041232813958403425278287987727769365726779045523349195815736541998067406559885066486166519179454773592312648032939150713314527693820962487967508424207956357206020550195501270045396682893062007875274415655698550634567886392139866932852072430012202110977372630890982097964817530331049755478824260253933643819810059946190788251272377293870827663448998939144937736186384171339092918465540601848582198221400028551396563280155419773316182894881485358862736604388060146527958985699248644916417374642038891709656744874797823378997896628115638658531264659653674075447366135197419357680164577176420195637028642511932167193894483114793602149297780592902604303191743379921379960684881144165333584563355672353046859185854744854229681549200; 20 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 71, 19764, 570142987, 809713206643867607, 3013515857627354040214457917770723263, 29909938620386865704556496635757780272913888174898592721508850306834425978, 2505896298202838566867165325908912587800944695890252052763808359856007147883438531787549823239606302025946882576236100326432248966390017231670070953, 13336206749933572148441045919248951817572394030552489121265265775216196629589202085313659268911770111291935807016287791009360198555886058369025554978209826140711044244929734053540301562053002980571300427463334833331554401590291466602426609227764194420108221083706484767296725162993156757812443549, 3304930309128229553869762621485869331822058314229738734728441202524550150638243368390569112609278627619860206147632980279299602758665545450720557316638843709463287770450012245049214712062496260564102339020562334024432286541311133988410531659291758058638383863639478166535134578328421297809303404594654045817303831909497758553282659055827191119679508277159938354888345255100888210997462582942093237356180612991475237163730067942949581574228839769434992797318553468432713204175240717790808818081187804966303962951499447345129161998122158322497097607826283228390080601439822955535836704037405157, 12469232095183683914922665018229840698998404047307908866128792998562448057480287262952610308077960463852959315550116885046416212290339828395181943866215517292578418637986097664263855625816764821996867220735051714199015776835034847108465883603194705577561769395304694037531902113034871002056624606675693769852522332196094948983231226528726036585254541964130270203575084171984313200107463521871278978596692340769763197847022830853837435204485222507887168788126502680267880935867102292288138667122762864562350224452450298403792226667150228089195813231118791105606869301683472583036247774710642947335988590524998851496187225650728913861672502487931573324533355154988757851675087952678892283232627994098817765685952896086770569700283295521172195200186796812053623731872858395974227277463432410968681303835166053039491999953223313491880480497853873742915259642594934016478411171674016694038608951020208545053525519234659670264384667639631190998380855797042352630599002475099997122472035159846605196220715207419550061518069718473450104712950851726462242616426015284408674767686296555385767869186709675532567014860653496069137204163781512315797117158342446400221645037845794720621928629439399, 838003089126236235812684634886125324759284896546860706039780930871052883347914069404580085430461408716860448711006779784328607155380715059603217033480693332564136944192990379945760275861676975490613158263575081936000988638543918898508908628090271355065014687733246431262833790671504602907315896653527300645008988512816269812933024033159514073273890742037958175233716119687846273647428693839127895628573555502533453912496993769094555161111376669637245004481395453141615381630067288644563497170922892494060286175401906154517779721002101798147590554008314121262761381704641608209547077125994533875136576229997100034445272975866434094308715682233419806852384759723664562447051144292486648894773925764215672489152877514073732165015528457212142200114036654559586166018184463598237833771708577902108878969293765296407223204808204469875483554505010295031611086310026911683329849123750886018250730882111283839102178390990380437978063819756789987407766613054141008343266217246468883808247307105657994956042324746872239340072127476957526307246172127439918980385726982665881351389966864658114270711840167252641240652317212239833312756194854645486697622171755988043267482706206935911067234057228460556287411597264998454500843558375022457774438977514792183305404874490575157991155164974919071946453215814668346026240235393555795396408799814421556440126204996906098640568439713384850377310517469617803970366157424707857831417347650082902754243542013863532361281911168775248203129216375596743522756268139742508471202875551789734755146207731032416746736367293601015837779644581696481848179300811226688481838951426934008665591588636068646467074598190404425749054213961695831120615826995630441620889733390725734219083770711298658432454155419496106355308837965062724355291813245462977197919406560520326920399264511082893464920988037017722080671444403174639985686737936304141351450627703428069133220043462549293046861540800702292777753578524074289130647984171068911299078856611842164854856298202161539062224349073381720261208207564279412667827686974884804642065028851927224042741687627326164781391921947405583358527968019620483261846343777919236626966577125910176280859983726671084580416211697372625408645200393087090008519558450090689334574172408703478985930808101230967738466396469589469544998951581381337142713128940164299124093087324688966593640622075589413920481401876612114808539148, 1982381948393653406649198807410890021433690668998334418690863044632904679980766737593594836854455057544540209512673440043763875274681831348878465701901800251026757277145354548794859783068759082988015170460600403412699249197482619522497569865182303031087197207936712625638501814038901488047437066085626734974110465726798653484961551741740156426308334778126604515259350249366155997820059204641311692721932818131746602014399443555296083328391728655902445137362613155785089251407040946273785799067788065116811357933755148555910547251320588583061237477112607596862133363704900234341087000124007669880328475576701405920507847764732817859014559720686635149681921481000558101614687202759663127383720796036080690476068062071619436619373445227767110036699853536611726624532924425654112964056447341665606240606958981960571996634674127485993672571756938522343752797781540875355272778638257660904993427894262998815603118083511159395597647812298597868114333939600256973829269049854887706818564853057404599568305624499520792642213598444802707840700836678443805200414337184636027670731566573377349247354119689753931562386891606460877169866093066014600418967731027685270548295428996582968034334640157473752531932347386719008570917960245035984545505469886434529380917289311581421382510674828322158296706582619866966811009450998128983700750001553070543457875406894437676564580417486838986173917735753572921856532853954586313872104482080823282492561275870366450717788130769592213056727794233003314400605260410559018872446902753082764039507838540707677530074430455035624783668566878916870021406315636204420606708628764559170879111567284122668094014709433124753312617216010885961501567951729304833083958518740013830206125178969011239867702641148476841805053804540777465066576192628949770898858503337717667434246263351057849874352129859791372646462167614079549195561364209230371160369656623273259069377984944021208176367043617358047031458432828318262701691715986548795198385685536268218492463175269960250086331716400581846459222777173164767509499611610656677782084824341712132358515019849439151100947369502009837329662996497371963168284226421581625209218455444823105638264656003344522537645604544784952983230432165523953669703451146247572534263370403917944415092263157416528420371035268690086937636107656240233871759194474819789886506747017757003788791058092438849799159938083899903932819802695812230905885772959110878504447559720962261979636744687922959386139500933372852629063475844863921240544333490756252975632055984159051488908350882141502892192665757149308837516655087897804429429356978156808075604959923357599066116827541740481394342168494536166763108923457994684737165856883261499590830926415412309292842974205051291550213501953831026628613412460322293019589186217431915727304586153327312335239080038430040280129023666090785243023359861352892743935125796128336056139492940139809367934752588764977671592747717101996119987220114098354256574488434696045021254903489461676696466840176229979541094073095645375178023040640460160749757849567242730822555091261149477122341694931646431237522015281599370912196181763160962130454215403189329606451389541556402817369332358643168382879254202406915273274936469562473568097589732527738257426642523918426823026524279993969194206745363034883572381245451117419416602466177879274340807184711963686670945340568442231033908857273039131431320708522990222589839164172110393334250708675786549175509661573358136280458914700741008852519205019267595460203905113227731846878006135376793546976413547467845431047713709090484756635327517115071211366077952330667034576967008928549313519501792695596089739804661453414711368105823220841753000428514602703713790244093024239621869664221981962735748821025316697274438537218267540224933466082932770299404263647954170084771432242714027152041824504163450588812256174540853156997314665540640495609537193953384854639005099856926353522390335908141643785731890219653814828384471369546150190510589129233731751503369666330536572589214915142870391944858484025559601377589933605154912477374476439187882385864541044750307637808506246048787536178893449379272444220306535408076476770587514403977815566719784179290338255115873533683915400709605151281325729073191084227001325157221543053387467763516953145188519763773625994367426608436731420717523028961508370999217437057882251009555947417159560188173053795185659940803898195948161922324131332687590190416990130829148212522896305277983939346623392261128153717385569663462279875355259413394540759815497832677960433889489782451086235772570762481411484343069070931847076363742291281887625353694364817619218642765137412469308864512175112093184896168102618072807419690877817691119857896327398981624403714614909045154387617308288541341457081837505237117411374, 5709678272209019279466209588999954244332751074575787575459640700887593337546279320405830528058224811752422894738662981351069440917486526827114564178695348932294987039999294179893111664757999089855719697117693514613057659191496503419114109161031711703063227852407320789705748616185947833616571183218039774589670412152125345788561286344945137246147520553659819964891953974391918368137417123457094624130621527325373921134561412091580401118688978535061468123948222006291052394531304905738839411975726025282140484512236518121863124677751403275898851474825823436103517702866951100680167792258786494701487169034567623982353962320279102593585879016827320436272033126715840128457393380500707203822719473912296830886392500082010241234436308549063605300498411155460465881919588562637236187585244189768642394337485840386306312881376369107904125697330630615673133811918801476558130146425718502398145560656591020164012075805276083202492718374944583608291743042821480555366607320648589126195341299693421378910311808353707809388850551325245734545641297608668126978828993480154511649505602524061428466706988579661531552316586710957289444370104828463434246254516639597200150482018035702386522534522040838978269789879583166999220545467962915811733500436977566591350626491925378995053631029984279448275152607363103032146481325559389821658184730812575034530427003211137505436489184333169785884019457037618291502533613834400602736217774735029142536237815299598575292822573608357609304269731592309735667508174933516100101155895940336670336670979487313719832086231367154647245605287049393171345108700750709146811540344642304422185323485255240833673271051930428389355955592351858287678458227597739538367165314495844357050162236678576431412786526044914682590134744493356442802742774038304383004449672496976926646510549627794285264482432204568903802128944719502702510631264205912159366250938028914792193230298450302757063171475263658613973782101989927311446405993535339486640262205872998708963057684217155641221920368617558389014382029988764817043401446579962961393426212798062666323928913923096206657051752587050165322567576563977210620484473633812223719084314106449744428894563386717369658242609931674738710285904579249000094433067830204936769753190568739067395300652683205101268046890815933317663419651137352964440357081817721509659206521775900106550726128334907602721922982140019686990581551505680247816938590876820553053961705075320582931560814117692265660245255465056414056635014824715570616138270579196912204239787655270171371379354417977232132825539464246910170056452004339806617294233534551730051782407458596400560385956267371570556436592938464880120789604443846348785398573561793945353391325259378519278148212900010433202674068096802982969073498031178865469806403328388420667691422478586673310089601813966588592866544394087629364091769386993658034616206708807576166425412586979018882349221451484029683266433767705412329156629148750810404030521478848208922324849491405624373837063875418758547517848827196573205169035824399698505584403229404465455652413988574129074470677331833548946818342270549189387824803057171592653511568550600451919835431468288785833443901014773235139158143554828578666925524835314395661829766791524639334977954382442675189769278532786971711966821963370994467606858797760718948127299188290757084262074830542307536181435372919071734447198558932147002815046029081210114039117503674943702542811060729014001474095367617930053189503189952462596503079621714762217878047352232303811197773446958426827087038360398627704774067055090516424536634353504821966127553372527733009807795123894373266157827789326963980047446234322774597876948756893272113346046498628569228942855920998623737363717684620988291203418245243124279577822162222983420601390859275659179105202148908730397457217293986800468512859740157917788061985043947845758499362583416396292643052083111871044580465316575463085870151022224963035526633109360910728661672611411139027633601656005779762215343275656420629693906080787071264096066987194188023919297707669440018764649159005772129744499061330593523395788229404580236502159634372055853703695157924800414224702220223626574355180643217145560740120169468653270823254708035111398384288895994511424504118572096475986904276030282386066709072341744183330793356248094147543372865726567371346907088901187535385154739036738311703736780220112376673462595988568869190714383714807552407831159185300946323401468480975562312906857604113640369952061622433173999718903072935762601007629148821871583970863419580698009642000228052392355136973338973930019651475819545672008348651258124287384968048104024180483253614142814345964288215444753770221721908533744893623841939214292054714591202205842651599541617164240486252615794182392326030061372600674078942946410995985882607066881828804279976801578487972205589845992202446961304579057479379682297490077607326171472786571623604055024087397696731897472184471963461528283368830362970715876498920484111074036627830845493050286552034452707784821923604302418366595881883758267386688391590557218363184312812114339583852459043664601662272021177770804313072925740806332929294341452404335932900467076242214369376991737362488211534090764754449170440992946039062460852142962680102856943923451172305338794902339466133825129785624900292753945577430977866475065547965436519432736598533931624345111784930739691684348599253998240465564603285793893488533302257419002156615674749522034991477057184920556318193411174523566238782773301298349445142648123568235609797524498811379443042258732228964670743510924154340004644215179146993245408533837108490259179229940182957925863373432917693377471136088982025597579308310930522123800975767614645493608279233339675947982724594102378620548882291783726931189756892887747197061697620075996108637747775528162230925282316998127867675208440286051477041350851383095698661464304630847674687177608381994882278683720284147268418415590374845414625345816045721015210887801576093573298063976077675838502277236590044785801219187869635628521289025174087879265787458822737842352609664583541200248228754278996376154335194044556279629795329677837599985552556831012237727556132828462825239790230310279591055127922910856849971522054034994076243931763220371454990064154859009082043573134545882131171629420296996960957680679824713030046940369832475609344012880777016325302550978834944343100818822890504067124910196122378948274549059189266670801770598390034620245755700387343154857056355506264921974300745382886496237059908894300635812227435560086613284602587050010972484710863468730795520764880539026444990837210777171189167784349681861022817054225811391539177737337474077452589792310496286311535641278979135004443425780223965598861711007438235875699439708054861353583467567070698365514414265844589143966524832260865816645717396373021189747558109366069144407640576730544850590705892838071646815623614804515416549185964028054198054361373208706812933364405239281707974189401813822515126679240997014950625357510543040673276546428714817034015868003820484619278636910369698672020420573993491736516513858804625513038332461091747811024605239996893443423748166335601175320010033272059628149102753813764438403307882643397318513810037916476107124177493885909219580769275842787387449853590275411605922685308638230476075737560710900211389463293918796651412584970300901387450532495590666808766497233115104586434112165461801281539424935509212034419599877557538795435022854438201669526760576022759941559768290617583792633521691918321161050453261389429382512712378671890339088576171962272710285674157747235646669208128772597275237917802715778215711429198644298778507641022191275359979026531761980380247014133028985189964229746992534403989028550240086265445655844710110510824328770441886394186382966260413247459431002974196222180073211350270450037192586083515144430717275310313118920849381308928196683662522968857194941918980809523835688311968984542116922438860218158915639227311536756348895045010920029682413901916318996803437605975231227045155027571089085344008987548015974034334840531606759395531945235777260044800127884537507225396970865063853297825433490773739200247267974720448084309246658519449054423744292536370073478305099822542337838380013890101455523363524579670777038645269537299032001709334703478081778792834021254633749604378549793457863777993359803602169776029987663220890260122193462749944945175943303822388778322507594315264101193157034873171516421122747401913378169804703250054971485732860603884391144184243403280478052911631080839820511059263849810406300230325568348980005269361813308829129981809431569142660257528310755715978460396107628760519078033315725063500717080453220991594631736384270624344074899998357892014823988063419527379203978477240114746738761070909486584356473368468076899471172115340054486049623927708035715112773158546447911624088834485764178522619676252447768846636746472522490951524881860361713499314597550247312800043545587077269709028914839264707160437159045259710561960523408151873912526290091676140045408429630624969092601551617789260408653422223303974466733995095595893199363710036746109330330721394808033050123989722134391219453198334701219101598050253518655057153882539540450824302744319402443716089717221956341613950151703901822058601805786240366103061316981019117930454032404314481106053163043639325617911705759100004290956571557098072263173946827802326207318596419610273633379550123502438036199957222608726496563494075343912359951596754402749409968736225436318674632036681929169166224234557160583177609091, 275488746506091800221639103774623469427552398158566335319280012838105129319112567641586411611600495588652595362206509936045502202938088109551431658335098553168532729679753968600166637115227482173671069119375956044296698784806001654313183510228665755483665653300788538043372436833891304142199231215872013888274177895252080596749056552127163579310920556596966303711468658146414423623544433514371532942359295315965342728277234125909828543497584538447424250442185760040245301736663066041602584570346324458055876112991354123225318282463701782443959034215469267508848462773617755374327222073391977730395555265426108735153326632605286955959783544695164893872959406799550092337285540932040968941466819913672749042000094092923342011560006887241168743976106328602224765401793970522179877045780527826163786298153948037552459403709653568933141597707092697817845662746733125927696005698080721557763745995843071242396052777958483812302916532943476001711193453439673523344503042423959288668301202621909715823415351130869239277476750060163353444269843135375462419554542706925674839043673907961990948977646496675753976752721968949205950715042229710687642929099084748811942397110548202590895383616842309562287734829271418328571832953779989969761611101728348983320336437806456095261869025910293543064834975782941522414071053648499568607055308707577994843260013908283065762880258877002931917789889960687704967748211257024057757312261322400682277654477548566378763824373294933253366011687194567444636291310562529972080989025014381846820032754193447536932353342219498431434458421872348228995722393411175314969822653171849807598375174674170658809989575091990017388357921975431118851038921039921989486773897690096992787615619672128814585058210760901662729102062862792399188181726892920686110860537429745690762634604821049789081980243215024949188575153879367080108013760718043713678510944399038391837717478759935535381174715329901387049692000285482629138396058784677353364251742626203541667680526210270627697006450987643653141033971311424586243472321751625885849468278287895600876669107697539686167529997425363133501843528221815084274494009094033710943047005923755610949676976266999032660551015263539796365596619373266878282882482425226275615565313532119083567950655815058872095767618616784893209713964856478020642563053034259933233339165599292469551276221372920492762800036194567896388836332973018165034843386841552764178451571950636168634045181787833216137403728430904140609939208789801512030878431777177530248535517898274400626277412512412022701311649211990512033559209192659867187291568010064988040213204413450860790636858498240442551420538739527311715511459775342403984934332398649979629793508768037145693625732884584691561486928599172243323136006366034810938782504409769427094862503595508744367247396513446937167002120752298911303105741803536802809773452547896664735768237327811736469347483739512475345359439077786805463871980583127030837918003526362375998027063036979655393115673751252335853876468396159913376527669793349556351075354507552891758615797620987623281191449277054665177659125722280859036592468122498734969502456780464622583936144022702036670569437440230182853500498374996340504383200797869291027324694103244196883601146802960368587884448377442018503101746631804703240214193150544224391416616417776660287526220509242908142060870769504462811272892321467449742105618061521557317115081371680766069563650164464830195988074625244697570693270922345014701971640892376127643576131503794286513134800637485588141952438964390294023939975772381692302493873447129249447234839902187032871379730697704240426786607046398238634548555129517457084694180993323619562956320287589650642030746019720769789949318126600636071753509518000381619565286226092575054622886268216452335464685394668304907297917954516483835766810310570069843087860362160115649340927690147624502805317293167990288490362591831774954118705810754895419304749120405698018444297368627686290496157740609285918590253288496654658862166880975075500372392376128498691907387034897892099964176019015705382689873126138453686339732924486638054285912472322607260277586760342253330082756708752705993013461828092464413097539208817937103049440701214881407018612268672157442032441399557370513811488359086437364683692910127843601341058864079742645873831997089115649436965824499599357317923499825413266097759538383995179674784233196333421883320350010922351240659157996606763529817636555555040235027839135398906799821055763899379181761486166746423198615215303642483666958214056674440369890632189650017790064109442058759484762489647243503346084618067674949046020151564299269311113346286543275056367802553895250065089417600969441059094059825354009007320970817205256494940510807838783327471396332557613268158479742877390175935947229869720758139173947977359808641036336013514382501286460534726293339763229271775670231016845558301798402821932927263765715484358327064691674044539118508469404825667517359858504140784800082161855220416830064547951640141486421553094243855852308737136037039634830380801762682969362521620442593665479681828346905145046737888137819474466972141217350147676527059273671501853519734046677692760070168080859662313939148685419188213258966696579369144403868862903763615010571090321320802801304319877437056460237506918153153686553115222186903475180479031783395517725081950239673984213955704328293494091990716565847301405260676384813295916001105169277643190290941950350858806226311560901265838179745627135202759429027468529274904360462184909414416678233709278574329993996642957638154056054903776839750646686335410449584901827546917720631674437728699807752261165557469463581199610007036437260018177047834582948764164312224526048243559382459714802198267391329042674002386856363740881315121306196619219839685489531898296514345579184251432349998140654492135229533688784571342032174086131734464728607502237786680190621541149340923586857016565035554690615367846281785582513675184196486380832232860326786482759868071939016401071200787942285258558000911266457727440836470637613305991303811244189288295840599637270320703507076946081800590333614589205102125774934679123747595060457442689178608503720725037317907329741437603540030739637506393709561410065683884263525165809025205106877549188030912624969858350329367087892023039163957360522631257173635906882966962249726925553242054894475075977601158029416245636210021279679342655082638138895586111426236231690804091098820767914487089967227432932959768685565367262658800005615696407192631988349208271988134131451621151815872727724531716961859580071234446854314172721685993436872062847695369910895184696947847879285633546109895184564099388870646122092871815084256628088124816272118890546345138486480159907184759013168724110499074981935194118951959270696465213495905942887933585641456387034879549643394006651151936998965163110601765839885127393363169518405141190784293178334975077412474881628094411705804749867659152311174155748855921539496069889929463717603348969555789337340258254604872446003943101306930661376609044781993922072401819805048980697189510746911801278508412539287515183006417556187852263313379636497774567603892713376761938543365284908025484646321693500068906881918073540993485497240388919354552814918440168730551980505319753032576072351841809412940457568598269339628631344577541362675056119325933444395259715536831438708634764092072582359683778692179737209036607499116230585180399892600743157014900377785241991824743054096375909035613507491613245568281600539546979131038403196907548393503051955313529871610293899194854976298495859917596715647538609373695871539426311443456221916436547692276830975157979079657668673010522443239850392606139593967392041335043402114548954949297224414781847206893099278114366453556814057221893143440606840329912962420703187111409949680507570182195027502018822545025826951051754440100627888071774274218762553614519067251975310944665509388479409419143908891406358326203514262801185828677560038345961034380217108522285346443737323064897599900250362256894278106921813105778202089706159170534665615206386584227408591283764329079576815939222414804821575850583223508494188834427760380744703122194981336906257247350533979137606870598155239854800253471480917395010589797360907782514248395873130506397552325705576171577216667050653701820307674892193132746440687124904483173869607129667880496487484362198616263748172488527776757785959522574176584019765446741513387539670912555034542074143132046617053424008606118342335668244262902509684620600270132985828815768073574379838707520744527932159510318325929427660765840148724299971351688490266301059661549009065756301369140319015218452205039939093106317167465114451991417847785708181420884002219877663565587228256706619592475454871115926563841633992612902953118745041406320187197246734033114580061022324699562311100367520509921803867018982665483518316815558099519158413637485974941768324440686707638627626441763923944220921404640573528480933677526401950537062449086414793140327380750523692869495675077301870502219542816164148015079346753852752214701552016593531916229341126264036001745860414957887453058766481553372604704699006611628123759366690978613934273541811916300836079771527072357249310570267410601157683142757679347103583783546242725976444071159078956231884363903043621078442496382321718443615670548641689359589448751329979388293746209088750825951119874296328830956127608022064268744050949045296002252730389447519718488321648418296411263623198688898889081456436402196295446985938286932976159521674261105423851813936323382064014098409014941104828371623736364129327597825828111638115324603711158807957265664076455964307472465928282030624904786495429682884407678233445516799744826973308088022721466394105681690220900537104440673767930653410611769523770327895527790100708457498132686954078179497140604885137761956941166730843804291435366779698741032825058375177690878561814959470345100795368206605123854656307187714771887030959303461269712789168481833493070544879060325783231965430607838163973290071448594421555116925176315898164468103193545465479562320561070053537723284693546677795357525557044216160462992006961649045869443790829773991492207680986441631534033269712655977221212365748815001979088611433918325549956964117828369549450611004488026541156413777520462537599995452596604082544391788098246469997500422999757232953970602989960849987042351298230626190595541829487881167455648832681212625132699748687986568342667049721814421015945996946218892388378000463957359700177081875671732753959980906123064790814346446873758922943297199313754502594629213355456660379291317090216627735460455373649895510051756964746568793549058151912798823441642912321760663857124574373838603351418200336191251230936821995377423505980533865230169683129971383055342486942443945136602992664876230476527727173825338700816361379806367143574208638353665868818926897334871532805116436331740136671226128873633951379415478844221510188655227584120219524433394623141631156814274015631669741782336883745036970900919519444702847070748081287493572274258970415579903810027798304328799250613635327574244608172096957247702869878281177181792160660071276472629145444969207615917740614368037093676685667080521805931040473808140440938156100725984010052948749061109567632519787150190974195763352575753323779852346633944135553271658121242846326923322184868143392515712192605474250966829868897783133037109797825515580576151607422164236649023649187019805621623012791701090246783860030985387014789126782498049882078474282829818440412162086444982897061901422523880350808826037099532261479108081101200949200734201175281338990343989901302867905287222857207531373392169560891855884450557249854196782549041857881741167397088201805979723293036767464381492508031856748042794379999903859845920758155242980139198623918509122938608985803482499148756799445906707473887349780095255493990298850122795284989434990466283990044269348447596769201936742293110088898698923142940332917671517333135205736724770240070176490302860261656513186430568472365728420563986829442656163981727199731220351922649529681643182293188969303231458241530764421568223831321036760011788194756121548603374756610761505459892992846697625176477590268236151034837889975726987912104385254873397845644369000929272951189428106000114313640365740668925785801271387938998822015900422933183261681649283374599100052871055631846788800608279711265967937605420879608534900824596563645326047606806610915906311757322432926791777943656676542750852920744473182933259915436892458948058528190349975653200261819102935769171850448242019577484263723485170711253483757174634762029489999218694733250669031265414758179238860518138709354042532691635321418638916087973707228325623428654449890344936292851975925574761480553929572719073401250927479137564806357292039253000864752225475817794852663713967323321077807745778125187318363093666423088588765019005048845135127737511015769562685388102651298806439128192663577540512075086691735491586690892506518368588046074806600200275610486071461905410621450814734929949852609229513624138428873970055976442754075683873062853631675855105139757149392910297502888603551162564755197807174327167502031709903439925239557949195578422053644916427963681444799524471879918809590643571129373364885760272150831419772191347349254254691159431076165500296195446487411645672150318359096620902047207614742072457764159133060106796202900713124889864597733969397975243002958295130522896411476984265927707803659524676296942155333093417791202587990515818787290267977956862099815711776473165232097204271691350720631433111684649976495429179592833546370150436763402188807181036394119887093585082294387539002464093120073230528617783375144132384350818653283389824410212945569442974579910281217031935554543310635768263056717667850082776984607073657975954436781652097196817534532321783919502159821453193398628219289748036420858488461926326517880385554339112630706805074952380233913559812389175811056379053685170661398010767732835492989165132251659021835834018369088262333336721698096406062098639873986143015331839383883754881540451113589159009522956039096107900573653673906173411629913239420188744532508068491739672989610020061713453891642860682834461477885109487023840900513721378463601506069213150304371007344351504141454500412865726962925743242546534623342606356872098393279289924070281970073043904774212966783332248637267508065136759208586192256310841539306548276950375171239322003126921902034026776052548085560330364733759994653494902310653347760018056058677152961751607109523338325073419387617643451092195259530105999633792746162972249122376566767538441854316875975816335716199709837645460479821442414678554126909011181223687332910173488421582171527489393455334959914553999071678015627710839651595765242944042283062034886768532984633092656296099985257258270953772052520704744896057191693760813733165455646670136118992822826004098025025681861699136103694329971478559341588460892476801286591677097279102768890979555598956229523724223802197992310835593993233136565663460878291727013677074215637239558858574662216382866474782753158041286262470724216562039989117168046161487712009641517764475596541852554907167933044447978761872359814794571256880525845784239334834466236783858723369587395882223862680976420474059462744829021675023862121471250654714233440197026818189986884264644610145951155722901824765422877679986657990300360797072269620035434477479573325117332075384570215635621984438546089518032610645245899100170555966278388088170698081430090420698648213777151165865639262279286178885280471308248644247421007903201475044802989541389576826765128131421545577882559776301787112064835709525908690434498994231483533511899580478106277701487533992039140459972218520765479095088067273247367208694885613794666967234566593176619082187250897872562789641169492008111494247829744776833177298716741076242477504008026982094627680242038055458792170707573156605839875201304275285213727510373585258189850061171055153852535979577707621414466581009367196535762324778993247179041302009916053126565707878287690525069204395050337424446445564364135172864472173118698348266708444976764377349602474133115780340146378602828519012790372681313659685051382544829686962845942000961401592045617213761912120804455396583778915699092463295496930241538383220060609022612718367995125778947439448561186150899509093176240627560953907085234072897515986034058989262543308497164330614628365186099925327870009206021471710915594477682621179657183062026114933441301818542702221578467995475397058352232940304834289010677085690007892178244797370290485051049080637228008291577470179139548443160700723724592212466389637201800332368104686966527934065489033091390124031779467759410589456314540331062726086820791171494393863959255206645869555914585089120648854066265541560080424288534229768934791399469742153919852956776123092093194597787318749147642570898952640983387716063630002023486104093624545674178723160538390321288372379767005761155550552617670997338126022717285535019029911262674930271213097337530960699207134980684976937265893123194498366759182535886328507248503123627680407638770796782229169490100796315678065015691373414541902060611215664441683847547587652103660057128422144270393349583703471203327689458756834643204043198007819096049307384342460837591569475445193108003583356581280169051588527661097929849517730445204946246683361018203284608992697130560957618583266579894247426061872189169381439773001359619666665037878873144134344101408110165429389459723414517260551465630416440049397818316950928838380892775907405157666387369646412288046858776413944885251113646799497659735625925303545452750098960025661206121720898136155991131644544643365910158177850909589978125103462664984447084256373173434904600317465503588394954170860606579867711235879163016982267308357345103000365680207942362874412954793709159294014487500786565567371988437335627121425320386021874981152342913844286195933094823754133388737324735814562970236240297151627109887072477934664492291742871001731885506193668155823216256620099874657920127970503343624286657337916090413439833225721324728572438693930782840887073764211748968365217431599635988621991805527644458438886480425286743030282347561122401546380565077612324783178406335017815995749104137358063635828756817825164132268190782551498250401851121022110617908699415112675818534308750262529340800774506711254499596563612927941079765656605395749867019682052288908968914484584153685421818094529808727683130683198225381319544813303543930797675331030931664687306733093707340299906372022995792202065715774349483088254382789076221405178779952386340464254930751504245258586418748686977474268089701781132564165220021158377794779940008639729079426669970149950954568944341486866295538416717920439069963104829187296835423962104479280653702362703383687359731199746651999539389700298126712919640252426323813945957595704284889993476534508270860283255802235467357009681088079056290147403807877743340767200576063222105081532666712250621801843311116278474036271766803347032787054021308427639336208621804087706277825582414226909, 88991996286352602274077313477525496055335469238446345441841962978051759065078966351059259120780395248102189671299821891045672397476181719986768337822940947685472158184736496094979475001996362575276691102418001171060057103259613400536078194828799437079852743131487566916418683813495810666114896982603236193975940870019581240340351009982869011288842889852273203963406202599283844354203870681328347112802478437697900699726376532020013416605694947996721084227782546098133476494241353056274990071429712084231719259058560592352840166657750472028167697164438767083595680760923384516560877798899504716093425457403925672095793056743238288229139520905777363873328492199695119016209734290003006852374484956437781222407251465211939761726773962463171413634699830736265631256421887962308276768632547260935984282764271436205351155937689726007180742227638168979504011051278108792839147800502125801137660963951100028084456172597585949443016839020265143463479340323244720615407773918385566255122895015475155408328953604895625892238269165880996184636341680548336303776750844130525532619094956469911364214540221899526172481138468042739701904901638602033721806151604402745416137048924079912163897912253491243232669162909207614860487415161332024357101945641958719762712033974521510669493100959035548247724513897537064515690613426887460659996258237077333873712153718131253831859380597808000436381438384987819981090132667754162969995873014161501039005055479119903436250441745488493885248841510247730325035200175370261140448981421135738002989350091673173538470586900115703699695116959770283245833846242562671434193688357864185417922855010445965965595724751217973900794349319470963994939167319903791362562468406073248355122529483765003990497427796960222460334836224304195266275779286978344784708259669309970334829450145411224774153708354803596588027897419016793143048044957382918236531961037268153702184809032408902255375879858105083292011445061246108694090281916521234125825837538776132523013980077648918361384086104133548923927983224997143790008276167516492424230436933912242280491870961918341930674178731290599203657931101783730294677644476134639510875136689657002660507247761364101457375620673116580445633920300617378524233385485290898149532920233516469185987198071551676880684419354907926206242172457593082448275174652475074325666913809029503448995848373636582186278033673063082668260399696708234238640943441345714395915757188089742024424714086872537193459171774836574351875891708840336091958198826854129060314938660558188418181145586544951649124655408962031122916686158670422525294079808994292610814495712166529128773818804981925985318836562689469550651975756631077506027545809856229459015891805218674713538364977511630250108153295099189589050741136028463981890967872451523371449698474912874894819166673481297359755484031391680751019830106726024092187959652897161041121123870282647448521597085558422112434651970718890526516955258351425479183339025222230046428399357372150463644010687666107518436812256999104805379707821114320428143238102247570638685139015502333945635336472599096161092165543552164715132076918402627707550277053555182176479519370318178298818477647095897247548026234343688315025162454584343768857380018221253580926885245635770955238542953876170147992759297305637223658140700429919084802423892243912324748363805500558919221245093381734300741383008700352152742205833518162943844052089945357924950920889489295578445012540702859784670207314002142719812487484701119348696116620271510507814822854645628124672629438404747479060846051454153369915059704611913514437784566729373479589328067435490841068690747209935670418857717910355038071762326625145237263077733583431635529230535055254899740839124103165468010303576830039323458125192903739090471389476041713883511317887457273009804666283110623294693103839490707789884802853501300661494338385976121441087932188626713328009152758050508912002299682127074921572332024188522563584892764736637630394640876552087243569277834633632931393916434816566895830013215174758638867687435146024034014881674450767177897510056976531278989246936396316292046450288785464744248471035029196082216143167747823038364658815774609055924052300426572937514888030357781569719030164278987952348840162549417064933817008073085660736932995056547540081613586049851766442896790094720179813674894575606187009385467740730865472638670270815077102909998700255707297386998855672333416275897928785867503176738402742319610883013567803807559732637913574295486669722267492079352218005592196135046118109633344051036524741675887444390339209534915849274780422872058114529554917141681335947780601177281158103917454607542054753151722479978135180773981152453705345372097285220374421423563000511768032482709452643084807899129104002849199450651770848756021592686465001019604173315827831820718301609419813066831831251989998015350517626171976734503987369539011133057275457102368855800248504418632281040295027276824276736617860457205713341989653063713434382821467199100423426848907346545677542070847341126779718483273495037385002116215306352885589095593573852420152473534588126292665507524511401926911099740618303749862886680074887291217639024731917574492149516144740884803111644058065772265024316414645701236242854000421892582393060395881612108952619159724111467744008040111745718106650624719511380167752211367437547872878747496761357375418666957941366596705924405073474660894579794398446321134084982426198391117377214961235433221064011305273173866090136360851038409112431658950450756440222905506035859720793736360112346680454309176862207270069588940930494125851369827827263575319925761504976729154801604227962063646718180384851284111364405682986716606621837414751641835276285497061884389666689575717554644735534783648374451290119199196624907959545704342192623863603632658488764699158544703147416354327422825013146146406159390110073428117779053218122875442890142617213627758569472227619702939880316263016066475604473902392095230045670327209467573488421775812230438274427111189896777498863119451738754042089203295587593349519306187483783322659061474632780231727590837718904772447260291900187033976072973068918691936670230529404181888235987245995411838717435574274784868413480289798598259680473693002844583031719071691558691661678529776203432735910465193781134871030798308911943204703029988704222740811728925116279677041476608585799367162136117946967205632062523025882735797349155040295652501095548562584908538099883482562162029121560223352327059118829901628469549357991039740765001455622806438896128045944512012456465036484863172025304369044871328992116576071884955587752794828422002915152707361652183266486654118706425796087947843305724929892509485637721435951171737258369160453172694513611105223729062930245879353437573642188917235125107354378589582786225947392526660537554731315949206383062279519010858462710472226402723433923363673621724044161931595258938683055604943890853708871021532841582436408840200954288297993138276426618947723475938206065196674610187007866061881139506725135157259168763299690718116297751183692442335277869156269098288660322643989489534056080766253799848866245445228908624283273515510432586943108032804044614709428131526716720510269700156120754129558720140918641821168049335905426619278912338735220887544199075516763487941094839956744571614614415253894714655459595968488808019982743096389504486068654318313724225090255408661440616777880691042008330206658081673284031592102378987232245361641035371956212168070843082247093420501974826635196086544371183604917558739353441230949558353569986545252397559909558799825973443199354150632233484862353525708864437793766766482917082576201342292521975047946667268582256143066161268735674234806040232891405640501557445218511722728067737613085282390180722607963211281806733515895779967508640515230483323880956838629951034555187813089735904466885964980328485826724179977775253098349992948349000586763671033734514091163770496112958637276671149441412035454021643726905546834322005500895808673733613624467882623041752673886638352998365390157381547666165940359061719012589900939231061776889138156163114878596198505479523522833684226356340160251572960929109521904455541756777377567634491743686427698570191713740717852738591481879928411572007090814516620049015228742605116924538419029770811052163537875308955475766270634506545811991582100170462392832167463548264414433493968661092440866873552350109342875265642651880268534272183705683443764918511987209103010079225584006761264249705817491645172266960102084210763565459198047709854324052939368329179931690290424843904454942846400574633706245404677658118732174076512982560946562732983963237965744481867627296424316615047763991784380151519955501704798466552968786134544082782562390684710702962451766987475178371118344265592102861286262557378623464820344540177917606970433692422586914475853413029552824019681290658937267895823698005295660161273298672364770922228044866251678672341602324074136139379312729461426845388798166896388707872105125238192299459673096764484954039586111660409823372322314921664549245211068538359311226174448251366684865458512165519707413063026222084371390867868491736757303889182662435284285283249604970762976197217279459196734235662034073652688851811022672510757869155215874687840211854112686002733685602651998455874394511379636604383819306222827323516790405766457874732232948347128910115474041673231029592095120782357177246294100126868183712635484624136082674846315019719588591192306039631388822988875396113552300955977793817123588543319557014715612381486659572636768494175999412720737298432132016089952221732728722255796458856143618111505102649456991865596849520075245496608973739726416199655082844209074098094341916365942149327663455178309647382824010851862003950750589641501650395671393353222269272939896677210038953628600550218241377564268642580533804314900912087006559820169979465083244694514672041640073469587311259416075920229760477864175202470383192704402371706622719765756978167772518318384803197777635832153845871805460017148926257615265642578961873936394263957648262036284814440507517088748168909564636860356535652463267661576615581054875787084757173996938348017735032580369530434412867238290120464130465885172034054623538096632330077398230820891932594821185702815914809261893753381217358184186579220554258081444488657499630657200311841443267740520242323453561265837048094669720771635692838750393352752376649560861978720004555486002254394206725701561645826493554837879990777380730514676340729441117687749450704561180298251778119159968535360621301873533414009436666055039707384867796904084286995298344869430330113005521486654662582022225767658458687797953294522778065344788224431953927898350410694444486555876175353005131791042566115628594287333295388158686151852735635053307042249326506876569129428889213388281224756041760163436304153004141862943048740411731173256274151257016295802455604090363611806833619567375865860871683126187532350451035853814087290883957307484089358620759368725976072695607828148400580547654311573767902328693874067086586652758365134211147667139332006452999752831885707529792958102702964342505327529491947323796364147871531968440777276813438970276685558417399291150127989503653478681471139926290749996679547536795523594124944667739582546762111795813938318819512535485681824364034594803490195877065085709564520433284952724741746551750428863881306772726244750800933303526086976548128783306548139349066564714906748049150453116025632839652310134509712265850801422721788985268054329879903428205701788141413768418180227168705437607628276212205078796229578126844016383364296659984756512595715236249216072261752715078549432433750690196873626075199996901200161654057344378363588600754671137604454337710152580830967035756061667309962508389887787127508570435011643710923144218051026896517005483770542099405249249352377910358254231752446525239299877923467233205926149510279766270802761877971453013880923538359425383405319652745368721437375830404992909347794364852391659146648026209490382427945957596150204215890256820439252002071998805329010229048594833456997412210319788025541765328075892814128395466177944770913726005745419661126053798880398804171914606867264048850678152976420793633709764764832107469254721849568435899267023224841518218249147842856693970734408018913963390004769634067762622685557809771138814232717221048122375201629020301561810891085253822653472398763466621892652673993124211479217705109818990557044047607576040876303761890761379093504173485371831657373387021725249657673908896707877157362176529214760056139745342672152335812234435456756520195318056918961595354131566021801037686150473712069739318149221011229821313161118992538075066972407777310230410957648457647801525926051153502039147858558879425850522756095520659134029110945854933198762270455431841390449664210108916749837732367735167368085109596714223539820806716313749264107894193619135349281615539184838864263782144524544320854718355660170934145321072970836246121195671857942179310517416055988292416691470267361184741818349262316516295568489986373943358722231972057783241102372125530045962396299306194152653161282291998184635187062249344820332250255902032410693803137618709168388133882309603096899182679932881160207947667799434642608753155419856410611384028956991198683897220053153713781858699195787883720227716903547305626102841832786770391257590485752653025666430311736935575392937231223578185938142556731690615427011489662873626484889784097769468871540176793125082673995891271669276890796667823129914044496159895774047762185853799233958793504435469194345250632359574659033178937539932775782889167566707059627501875017669967259629045318838231776941453112783996743500437800471974999345142620489528496588914052086282827987238435753147897286001592467727413316563729603433155994574934762364412436144621970512532666960055453528434507929576777811613823179066929281995165776521597635395824532383382805402009149362321841709636661287125529684962891347562366598881458858817161766342646147162686817362481121052386212584125532376300965774872030306736026739532507675568306461292974095526780858523739878597727799320293763937074080255884234583620585175156787841001117645615570077080336456444584108158032399302379440089262749004500161596499758765943408718222119609543519367742903841092605157606210986785221463759984976471254369490703291445973173909401508161358580487978394675682771005233858196468381540687884318534230518742255344183960431089932205355628033943204869063589510815533653030228534735917860693333033580184122238336642768891795591544127369597963636790477045643570341246950586218469249699623199157390288642131206737663790243267952365845317982198091942868566744089045868512604317199186112370599221530956203894784277707120991257792165948984718591187208316587907015953644513548476488035323986805405799927981252068063217626062862067781947529079437272807288518205885651810137538338777957344832434956417322687590883616306055845239062388940438563256769689578147523001210417271042303620257023687467682170745628932641516328568690484666089319403070032051887682954905291450710749561617767677559598818772700184971191991346451608609613527849280989686226046352079488825597894459162511901728765485728285154169705191574825801545478331890521438936872360669108853982381446773405720177320062518403679859406659849522192663399180711326752635198113466562957383309401098463976711355458837742900224545117773726636370131338325138257222254353084642092213086407740439401084697136128396350141795301354192211376856112119424384935245594281555391398617931559779377490340014496537406277744481963011397684435153474976920943167606915374220077158627182570539988229243943947540553356646458256031132719606769140223591557269537845876351603185580568971316318771015046489033585575007285648799515543450188630297094621779470104156703832734645969476648088743158856245268780209690042339394138560600373027631063877917741343995418041477033763620175751006863886144118291894087052997443110581833218116988258819877985369540765905827292895413680535513063171808744032163539290879392480227440607853695269333902319631391993598119961858874079346185149581554952723352519016852492674929662842503199982759110988972021478823146346996515892142558410090208479536846420453634235872416317008163978035018087609932815874342958086396282668407184212197725038888949582056595480056806899757660705411352419411657817641506673401958361261904641354760117272847370582003957197402262667145971711780534617511996068245560685717032415410429309123459326065149754340491615528609995545340451872455317642494714522788374631014615553157520652868519074032344462127889341994961382559748614130159851576915744866366191066722617259457477182678060295519036411013185472045257541545776611383706982813837025883747419533410293445206643090323154868002855488916794942796559060873347903790654695075923925220997048103022342006899819683155179953585694773770477705470173166394519057575419946331976735713447649693901579152960550190114344354309767765438840120055189870829763012124410666963544419183834234896980153724133832267082197270874445484314605829561599157135037827758573529694503278968078562157238783453723450933888424946199332687989123170225089543456139730912420281277222292064265822304617260409246623234780139900058399959868469073788223622959174930009272643679188239644282280422910092471534335920415176174103905241231547618152324880646848133964942839606738736499427114226921821152000146900439344168738604952742483712229584797819330081841630201200160561699622179618624008026151028606877218696029637392784858663750633346469432508718176053999729243122148593174425546318177096279176743761770414158970485851140384620348496081568101506070634224762723116243559156744311868213857563674544772142583808957922489042528420897777135171937511798773575379360685194144983896827728148146198655245625692817425965688790483500839588258094134325303425952014516023861419363986107098584611767090019794450037525681885389744610948968800177584015632520569667869244242438506273765254771754637444824905684442830713400155503097039157054631033131666960107663631053061403108056326288695589756919553594672255303602647475978713278063527524480224876522577242302758621415492993452625005648777885429988406387838318500295171499783321578721340621940220452263796327373658953746307809887275340596356106178790603452885721648264136390315042274566131408628920208262255850016624745566769983591235957477949650948603864295414577481532235990823831804267982576850166477827815489144246664711849631731368652482018380257347424167896281107993656284483391173219462704212146095813372487696546944284119803066348586240442148348069701480449042492153849184370404195097089722875730197748478039053108479372513027215066254182177956397310299924365041464193545428829957438022282021231200003502230907425275837670078757924382276677840071080356924298783010595374236125072892946979131374377110583424383112429812765568155808153658295416847144883963378495029013790106520943008695039937917035154532468919498234992420923255579722607799609105247205646729801486071123788021699974340083639903429343611537208829304934915096033088026102469176334287234010593159635957183775257628434568648938157998684567723785390111930124545349327957163662217200666554818457483159927144875520583526450587327789413810274988525187234266839925768501733858089004135356886661955535792628295439311826802206447998645357954518488701522444801275190310392887150400856256130958804819251615803848223822104647245820204675172825665976854859817461926608516520895243406538096932480654671710165448568118822595134830172357512530837084553763314733390376407764856710432908989652491097870649687516733888236008026469691675404185788992784176274932305043750442524929610748240736497389068475432196728723545749804202112880741271981515548374449287315955564254734968470617795062329648603016229997682052285559568750332057436490076438064186238858204795626701961158299549178749999884031896281381089181286435354757766363732037139568926275441856896660391040400731157696698816119542190413452767248848723795016031728425552117132807708815103968450223649736607130314151106046837123666867557106211614470996177479066510004019399105068730593441700663924505619146623829635206414996896516696067628487904104707291935377119710110196505955346977150484005638820867937583951808689034950756254218049022273141808133234926821907934010894321032475045494984469394910136272707589937113311732058980615477110692611630108130839372014967741797047521606090989278679645792206298868796096977474044966605967143829389715563084855521291900042259977585918893305416057468030586460013339325712542698167032950519359834050102396953457030020586774040574080334215244817834780886806729729356969053225541146792202210718218496820710850519592354039515309586494031777630481839430306142282293884212193893667327622145715828498148212405502824207002140308844185086741639602398168505934023079454445623031247497672294657266531669207565003585485518402593652623714655782913840356713217787920765314699923623362676186007724242373898522200341400031993382901484080894165676132272730650480135726679780420416363367413329974825318938566568051629853350968684441825062548876228501544389115352926536851697646217437528569943341581252259241066272224963291298667853979005082889214967647665234970411711459693686987348339679944947152451109589255467193781369862418000456325861010330820708985350422901553656657944621927132549616143557728803252803709467899170082565020599312835086836349647326906941260264725270375335054146080755012378124751663615851732714600509126650697583349782146816616927449065957917281782134997221716420057218592248169164348816026249147490894439953433182439887338069591090812464926727513422438904310354044933497156350000412629720639610018054112059879332358052594788096345353383549961800770807301354822312038622386930094704622487555446000834571873762607112184725302476829115578220011742747135097001564165533673136576802772911421491007945890903562974242911315141166858683683287624202421357857683460447516606225325440106621477956932458533861020320629051603035196606793245185897008556591569561037851795730548064526170362561650574501447143759879598288354126520197917198967121508662696574732278708582185536877489069686846397769578202160570559963279235869687247521789616948195015302521710037466942410120060307785584461357043207013291316397043588221209932523790086027785226162497920023175692808163395578962907955654571849506738616921858208024621908220844243743958096110641773486093228206449221234146376155630303180145265850702274118807745957393581725029420498136713297718051107836177713322719504024306955411076654245834350119234372332719351081083508964591661240508264895646716073751845300367616707463573003691408276216972096771910096572336245557197595270796244445385858663900842082741551931437451631551487597200894334184149527788497743859927556793879002068419854609326294142723531733742838604968025656542687279578802624668975192801855937129005437353359543434879426077698865095766173716285531825475138333305582077505776944221314430703117310918183655019194171466651965824463510568059455883681670228386269647559875736645822358834906427035056238937042815273649851427121225549321477435058930636405265884903291393524247353722401826449054224091163574069669397004797026241643526424488842437576163168253063428119605908878125841623804710003421970791444351798072171751265791102655263397625060382100017742976138355515184240866366624845020651044732493888200540361173283485817067396289887698712752299666381846330432277752007838669274044742853648785265651792227006431011994869839658892254107287233515934336689911364362003888792755620030963762614057871790889602100873461960314331549756461156928029278604203986007204294918960827432956946563152008521966927855933410141019880498112619973669221642829782855713322645385194483683428300326327577707527770983187074229552009746554216552819162174267689395260410872627857082654347277395831153805056247178225165716047446213799284940319546746493069570837013677330122704680929074259590516390980476887659546851647831311231278711005570471484274809817674465176509560882817794464498623595390109431782272671467363842465400506312962847107323527423530328994840392838143797016098058663818816056825717993096586677638890023352562533055910925602470106876430224580253188593933903528812760670915329351046202650599454568576117671487557661805422379334045018509146101092659915133433188085591030011633567648751636662751327112020143273820895164751505571873012285085492170911912635000304581609730254444429240933010819796442689570048914837946144002427090868265384129009779368026465540441124414141757785052292616148482366772822308525905104235881762824070344136944039296257102519765737265119150910348421077667614214227880796282617269816411082072937463927260036080119758809662370172315292037333725421776360349714765566105725812125187384425763943653607221298070094927475282189101674920398824392854523303671768649039726398852615467824186236909584017740391327154695200199854084915566925086992889276700112193221092704490414403051525612372690542594611398365968048523144889922521205494774624811283997533286258900809154395821100671197222260362696258107682891396552547485303121608306105042290450494296215640987928301976448226180172096852331141664822718791496408982293491973839420610010874772679961245530185669704983509315578509801516080592542230258702644168644101122402465342490160020411762927048511512097162482266158264203918596963342690090307486183254592607814614213000596810938642027092606302019190178389396655397591187999773236809806011035967836169967297947842675929413840639822154885445922242263911597615975308405924177895422293819349569767604407511291793095456913706599745904692712137144558407261773331004192383235956606320675206039372475144419059503328255028606738084322397027817725481381367984367578814537960833276303517690971599807064362610964602245399337176256041713600897704960054604197587970002872718822696214888741088946919243130024573878223891718275953473921765245371631918257972681910688761651626658557179692952905038579902840455634336886224928187387812718073429615122179682445592498483681023472514909011381669790167701329257491420751168583330227972522765263509662418031123455115300475523115152810578512695004722377399384732503070302300395546174073198840685490957475492963920188405855387694979621460390830481887098348072006910277979987278183281993141097467731363830696664731048191405359913217477408629884124921660205436155842884109253626867330456382146623076835671566331593916194747194783847305924027637559548369302517117142205110966519779402916893310084057021288877588689728509431721124346054317640063774317301877236066240678771637522152258172404046352603101380630378622357647976043731819583572524825373836787714653208234168878500420299154918369645915568244667210517173068500391670546527962001007221575078221516079497283815030589829166141754020831504833294505140535435529803909521780304250794339270202773845216596345802389678502539109744674918270278320393776552097369321630791973697188058566980431027813001069503619953611386208698840435403455062343039792748524496943496097774032264246106149988390238771089492191126383145880437894226112508871573784370249449820390130815138728039853269563883737300931643275760152516616120157886138824871736702204373238151117272857188599459001089902066528953290343663121468829974310333200531637114837071646508090769197323083880595113490895540353316369913515672911343269623377123211351493221494512941072668813094479095997448798551100407288803270447616825322687068398531852423878048683902835578158956614870177730664677344603296164490361517509497623843233218514888402439386225571273558205659210144721359710637750206540052786710941953584121564476571146211763445339706942569637449246509809683809846461746361285507984628415683628506914388896416847763013609383609227092173191818956913352131587250177101460771419908918187293060879298192894465735300268275854224195433510115562558917036011946790189724992352853301339923424593813374142355035354516083704526349707863319490129594524864621057170522943334473728094869643324295406914899441728365378906349210810531769392418893020135076642154896352545709475093503353524253724176633332525091547456244541845547826934208414443525934555196377707018774044477969071910982174885382122145069222235255535773000801412431660613905631724459437337996198070619289084967732425528716232626801524408994773106082640217007926165627035691708176385183406119586093675136025520510878033630093300578502014957646457967323213937818196448023365458647846685940642193090051285222685356495292469517885585540468846275324968462308740653484630951556994665688125450264902668336437592727540031897565042480385881150544707686545109090242520504524548962651102193549723813408363709083946667287233692095995469926133347862722351732313690134635039390627292391284308362683376657393050033453086742693171878118085850879176987686417457847001331158624640071993640832133578466202233783522728320295029889460132421464003357887402506018444155521498539327452506369191190286618033887546327643776134392966558225874649288232455128111251465082820768368749218151187948328234592506644324274053186244478421946572431689509289103354334584801404048410351713281775355378774641892078461420308961879697884365671816396558536514171651157282707661668671575667836314274030787904747900594929520853338080141383282136885699157349248546163120172972203699584748063584396027706471093321042419622937453920963357424871796819627157284039001899705073076487891792800076312876991707478680663984727156165864428341423656481310235783401967197752020470360114648004986145486794433404508815481886604957394335947607121783249313044454358531352647928631458875242774962925155526567986748985846445080726730959432660263865787867312382381559165305110647354465919262288312210747958777775852524644922618575588928889154613200083765886663605083285175426218347606910757079876946388747274189275761574702403444091329744281268857206359450382355585570277145860054385537097432431980390001851327071738045758852936329610131764783810763921192851019190018300182394803197973185836394526076235994967656959950146682616239286777468640317717852030024335902952243836547831131811444561782797437125846782051947180899841765817034753685079954493164013668504299771869948962847643632205746451578601030967618540544226999460889843093770437501742028476602083837751911412289102360485152320413094963213831739289864072803406569605325588198364492100200402866980723500897233657892466361971057130046822045421535743070396649464678178532120191251805721319772267949794283052997468219993949278250868131640978959310463306665439656033591728772748761690870620557708112490830064356316293900041245308005846425027238835633345324918074277667611302525666053732741724859457762526036071896411248728658891982197414579994564210172035504266010493274643517741153514021674731822813680220192525729100094147513428341100385057558222926528159411090711507171179032234111817571392742731741362120261292563669445004687841961852806777240364863593341229944091318479462290800634584347558963596772589975102294592885248913373482984486854233431009424147179044278104533131651300761713267933638100726558933595960686792930025103663448949526907489319717518575359811805033897298072296189419372955247307722143861290915643309453288105211535839840649755691785758529012426423686275639886965761431122426263990227048183979514124575981800662639150964825343365892249051485855197880964136103271919922066003813886848712645067411174672328162379741927989510344369254808691157294865988620056555033499233634642603069143993001108915825882944750324253384854057620879561262182069270868186592379772620625846169570779447005343660290729522278749397027183071489636136115308993750971554220403565503261668678294393191642015655067228393119503782004431705588790530593929247103415434398978027274576922332670078731688269098557329358823847560317160240945274801237558945172155186764704772238562160101232850020643837092700805317344863832245361927738097674748917694126441497490744655312885833034795489765440683748318288675085675254580840576207834254931070760484386836321451830696824872485236486551237196505633975776699781234874818236195456362401807215569676945532798268474543831233216823343516437690130646090401488559894010395954101335995480661288599182317020398079465608631992679193455737448372718595422288082821466334511655678859054226386462274098414245038344495361852984573960724979563880828358305736784066964999808508978172889685092009266271607167386212787688214515945982546995519063962051790938536594580449761632325502533700979126873162419429613626121803438573203390221100174240904330024413495009276560518392984625576124023783647736650289248472472461950480526565846325380151103466588787217629264789354219446437521727630458673632891671992278674885647472348129912765583923040401012615640171972684869274965379278848033010759196343460062400526426223464537153936844522801294185643246842284323703667858070756271044843889555256130194323262738093516337008593768950365326870350080106502370496793619813739550892445349562561659566962703182636428215707207140001247193980680914538926337354595318549704834286997498029208917621431285115343109134697381558754832113754338264306395525427170488085826403883542125112162143896589049072232599804381051603108145141603361195434623332799210967636613933564913396633015616371669657527065660839020476864232589317168645461010761461837765423527304671016430110581121050306598773581713231784659547268404092797857460719253653502361180440391213102704721043682304407149537546396035693269818143175987698336007883386089246268251143667033020674124183730630598274619823826855438449586244534464420468920899594928362788574882298083476519482641136737296441739378680957325126646105204120535455863761610641019960745719813731132936600586112991483289857940398752223470229200729783175783860676380353064123473278206952662132111843450970799393307448844488037196347419044706938366346999761114006080044819241905510169733831049081246545074527740935895041060684536242403398167583663264902703330723748474953965259031649935667164984914755871754937810046703538924734891125350219286302777412156705184951420671799390706039236995171409198808186180423483513376985294794592444395925155194903562694565599702692783319733537382150867884080108610651725911987106731257253686619820599458549089568218828331254069762691322534889397514398720040632593679987816041894090354822046752632940710686411516894232390110719121390271950845937161779285437278365643641516831550700452526077435843071945279106982429010515243691370881152678839032017843853048956305271164272681638521866972743830265813815972194261882677320849296243164185043698765926149151720694640034194633016461648122290748868898161610472545128296909129718144670193416934536721665518636092951345547778080676232186844258468322074848077683951722100621513801539914184083363845627030317224288939623138016840424791123430900510303726074247587297296726611606596385559006702020950263359319656874173361277199040153335400283477634927956818249359737166221039620883192755385199219877277498450408436268146008315129916316358590842154468036103664225497240776066396862687606523648408802434063546344012329112162233345478252324554069943183439435972845596289111532337541747501504622530028890754878171058911528516828427783798896046571552730500416399239893388357731477119538941902042302100775699002166340582958765194376480905364007913027996428368988446123277907008697315625425082757325584751985218016872557685452073765811381553377552794473885670051500114697615434395282879724108644416229339742237514336267382809864518928845530402941920230604928364327461581764250061166093067196924919966454870306167671647672710378445701284006315572916350614456371452068759588817134123378278654410043999985615662352643253211815512569236065901640913778223692712292191208158398856128568118707200767657413626724377879524703179259257208652117792094333352935254981103495845634100654330232011722172029695099829585871263119104944383428527218411658650227179972224844171466315426595853580329135061402039990832525200039725864248661582806778681115462784731672401848229020117964774495017515953135722691650441607206273228280017521622396359068054576885978143239029613779465849454829381037286742499023939199847582429284763720314317852713332659513178893169179844286409989131130358767209046048490695048759992416379931416752832014984592724615866022218093180476058140574196513271694892104979473511257744939315202317940983164842940744354970552959838559132626002175284555082410089718123178250784750875801843643636401311961259191032573125969269024863730473962957045225657738369678797189266870969797844294353526873518781625984200299642743502227958476359465448809906351837392738602698112078249327313554869121651141351302259992546766041028041208066740866008208652088531171385944436266757806003293561246993593069674228327983024199429419095362686358000891701846425993335191919905267532893885524964930874583436945317786526074913409556736290424719115083451423274101754019224341253101066456320501334799084510906726880394677152422944351491573631080579779997464413308814160578711922539459479670092744928678216802298778441724579144704673040202395166458471006941463366079174055546235195758019118525577904364289129128462253852052829288355894871448790012887924751259779406290028271533344602646860340203995212399334875427525136382993143738905139285393342714713313588656452056123732663048265127891719670695182828098747797986229835695020941862192435565182436629760407720309872755281055224714272597983925095351845158748395936307997550537502675106592947153360350251116681983263488754973798582212390927358423893133453766824901943583888946664870996492397416333393094994785024710853758554281680061470290199224444053653653495945301870757115405972120093294590114452875139460777500865178193669135085793694859516638031727168720549293338092422651995881102355177190582050208924323961407036597668326696274408061126982053827641754707207950073592423744618834285139723894263935034922436451913455382969160814655532418850930807660672350037882407689912268100544485770003488580841581467213262793448232891056244105652944525897266672050688956482, 28464640657847286197484080122653322597989125071254326499548440501877512656642190809325180567907677301280791178421565318762463232740412988106098695915194148513790778314851375235052572115179992060899580152718995365690327046821382323695483466406681456078380168346813386188024186561158974416312251161695164037284622616658478305084683315588559259263809187979874349667853225778778601379221792104068052806629902618592122915202937454741745750278800689111256916453467642225917818384811726701678416555881544435863539252883609617428152044657064959298281468465735525724403237747246656156295850341851725723914124847846898782728661697182299496480482970504562442887312649977291928312586479658681575763462160073275771750033990228987808988871722523307506782209791495678887525850945801434058896172603430499807443934469744444564151869718460797759821011323591707522782005583430100147986104573194119657551713156590211953671619067090759021270217651072446680285512631704073195239475156887754014939295158359984584853003535019559630522538853691120673803432512083033078345630383917677295109377840336476792700810423250305912049164801187917481803087101245890724502980679546266205457351286245359160391591539029671060907499680699538532261577378161071395317955563661566331028435219995123317774237135399095040328044815969536675684531103525040677670347161322039513226442031108017864599466270930162592936286331630514596226680205241784502140352845965313737222149561507081893111851351191151107790949923894506967160907968054733865780960647852638081691561561259111973810771577026480060477803212625758087685437079552911614199910326061203595174004761811981440344666715201823579349696426634325701763737374818135788820827846537355708043831653491983265096572646722784444197330812805682016145796106413483647885918695301207591133199346697385162089781362993703905775729031332263519868963221883146644969831736333705433851768609644783377190986392198255963301856800505138493493044135186852768469145159391355999078684105757980101060804479718960432176531703934613493388784029356667386685281596783420182056465279005369968080813176918678117899278307147426224717877507713709434782863460464523112899543902805052858475389646266159638375370272128395350635606401562494118796197416016765253871996473973884313687968348497564967946368154193713227491399027237757786541730005953133198387566733905489808040818999318787763694706049692881510359719619406997565345815634526917552313218447434985249430534256639943531076782807293877043952968395086668025895921599574584099928164211855229729764480463217486245843968585000794346658557986316595312537558721333162108294262001922717115092122148098899604975155213333292056387427187759831522312591842960489779954220092211678371271866415630629329657761149403474000912855668746249247360228633059233458773489322666705282276722957499919145024290408239979931151435900163293279662503610507860532958452668909155926150468296406490360435292948386759171284940425246635222779891224031733256410796625294583617690835884486978245882748621034642257373606134548673338843957121829309488080697208312843444505317986233495808842773729962376464913423537707620564515096317036486425246604121242412536200533340167623915203418911670820964200487593586262252254865690992069272739585500056595945442522120062397629307974745698821549862160728821741724097663065997380928872995971938449225457236973602840443116493892775368861534369477965054027272603927067802521741981863699385170122740828419990112924304693180843912958555079987487828113074487816971920855301707598375506658704734516860689371292000863730596713544558844625842584581117887228906312619192495848343445298198516351330958249302057651030498771000213435456552563610971189049620681891055187027953072516655454532613391624827353451241935152245706453954100586007041816276186612737528576780856074980298959968067887892156955969766270959473803989616831664208024524905746233890760828324238154679846294358040025910047471954238066054643744154036099306772304047744329415087074716571934408491560663455617289961889013241715675256922088412651372763477692031214641866462683955330861509354440723780271140938525874932899705389485270727019945183936349969893708337342158090752842165865744800633121994469220177767732403903040630526205453288566579733096857407851383989183196834004166539757853632917770676464103065808538002630454444918215616691458361340007143780078393891926915160105597456779833215516054658961975578686606694651459111058954602966506895108559029238007418671172007562657102465846058875011008345046224716591246765032009106463256814939145798838622352550908886164021818556108764009927703760225092986908623622976102737055654999009072661905273485668093958431391513043656478191241889573339692006675421042871084798926928899709521652585945054948344342335161914167820071403409065746205434344436495672174567101497596529463563155193775368198026294278231887909302741609550230880669499505646876411620103709480340549600457157686924286334746805447693910811923076195839062658011806000351664832851609747549174877305198325777926320003397154132482762641471637709762183215184449084487240369837753850214782408448720989363252263908723690151148223145521312277078253068383243092175219033389062974345661844781151124263134254326223406380407796274883650189307137100514347311842223076257381340106398052829805550347978467887959557185573424692453939953988503943442577738464613822299384915168199811873996430373999806653304733048860652278637160177019788045019319622794905262538662346854915327987145323725673368119109245429453916098303582084696450474341548712937886464920671674701428356408358476750294122539628657081719584088591249272092912360896358730415323130994180064247666331752409337719547115173686547273249225059347188228013698105396308373419425151884364685902803227535935248620769134390680036344811598663191702208707835363753230571940708813802444261690973986271156851444180775077906813501777066659738375972786007687988315784840743273466480478322817789904294673718356031735831568306363736555012921871871336105897976021476087078411634724742883894977858434670449363116209781134104277995910335774837865469353323022338938250671688621801305182286473330726747458287449527102176027356597634823936332400878672936814909698212386381309315991354634529570077150240058137847896235802905225528026928461670639094167239381051100909969151179729336317388434945868002840278546988600120781188989269072522792355891121543774221371938414418620226010124599635620614752292349303251776966022656305112241659006149267254133400315175891334862444671304043040482455450212012189786760936510819945542631555356340583870936349699871211789911883086770772849806660608561366419868662409871805585551570192396034286728703617812495215224721745189789192151845897803301085101950486278905877608146477790442587107897911816064197275984536327793027853477953506973241996527408314352019110575383437839886366201334498926936388644246571922983375810119761854352520537417200420082938237620126308551550027898511619669252989817947060992725502295870532187577643624436059977161554172940375948421247010484583867710213370642667646752833777164649127701362639041588065037370182830231134176372998549943384399406954031463498648911810029524438340269684520255854347770171087876881121901491569071014303391683569747077012771443530926167395878927233398837456544979320658162896461186865245847839818335193197454346809322358043586117508694327124168212383506438822688527467066813737501372602861125491941879716599101592344061451992350818607515853486634922472184820742590482779713036834272780874498221693943565212745990454099552402761190692834559644595077501882647141763239405872375739158222204111288583071406506239306038558613194574564972683945034666957793389038249422126169083642859804046405397791254955732831177280919916630654341964585417101177519043956132528288486223039178026301400426537778126377920150599260207019995870147973436895178784474517067576185740931570404669159670502658143132053878815804503386474238659305962370754862885344846508821448497523439605815812913089029490591295661421467905073592365534083665900522185780710687814574244189503643020132189979799348164871070392571394466630119434763499683846183157245256401114656324236479801462624358929576350386379275225680655260068861045673729106473122007240417838723496932312755199040478115501834344127237858247032194623107705018333864332730734530512256681569636616311657428751154931141379406530460748682091220567774792641783287693206558144437407223313641977214343011806348108532273981442565684561790302887243639512140880231737915417782778285342404936222433394163783885489138936274429477351040474356920365686720633798598057428171837192003874453887869665671686307991317670136191325220214134203275229773846179735730015218527420273143768984852236453983662819573690871635425676512145407837969514716699307273710800541275575262927279541679510009001915248599001914773126569598976730850102350483219852894725178256836444780777458453469351830113536015580035476679894929708032279577736504578802754530050497173945736514916434134087753033011625873400172234303136625984805914018835053695703686473082867279258004745692493642936482357196540680659159599667695820235089110341662360465574613517216551710979090101710868335198406648723846979638283078285809517830028882311767648060263792039199313425559376053561560674070065426977613958077244501819237394712696240527352795439254332211176525296743779725993718338499448291389121436403108815930392790163854836269150129201603390298763136112101177226759115350330259922744770532892587113412309299438262589460527842649260633951904115370375080188048732906102047858037252901588351315612108071626798932613742137643434528526271200625924034390352839219053981314583999430046719682858471557985666140253574111476287620379455121415055566929058511097985884023869761024154613749274494668004324183077809459873735360076923693097574911004443124940283644571146317368234445777980746735383402314831108608082896708579022367570281565999300926117889563286961129018810458051151062031464698216418724822033018346073715473624215271496479565784425243191043927641629326419462487890895532470382818871609035040353295717811605455940052036840055163356685285299234162310702652583843370476317909264249538759777550340742682853229556960390709952551990929892479387123680331798830783516877328081133302280540778965733899291228130048765760604172613254096711959068790923243374870511420583108053997254703233054657007512932795693461223675387765322181187986453092583540196459308596269065298310841476849548416781040226385898353948761400497552029533766733728949958628056980230968112719893498425604052472480981370484822807662756476013967240857477294586429365789235774696807729235296720542741476543690514989835164878494358641638931253024140347022460572108920522083478255206152726951129149068648708495604959864300010422379119497939703241933430799525373824713855756937564779069764785624544265812850324165661330643107495497295705610442979294029721015368121468485519831037552197775916921550040522602460280635848631935892084190906797220023700226206924951769125354625624816693739055280778933595754861447390393285352635734727284183783559961564180533749138352923658158002487908534937221078291774754460608283984417072700173286567299110988834892786782090695179686628932087928226465530699496794586490859255418464240831600102295401871383810023381971400731459406733235812594103270295846077721715481354885874102260617643329023963941352341379989436536866300741325877815940218624274552230772668826929177967275374392045322075513930533434673199161337524795959012634482199281704072573124483242633889879580170932101542522673341166385242476967698810179290178839495659748484633909110979611747039341612989458337565616848311120147412076507726302923341284015328137372033455244994324140824141137967283166839374824265588350120970066456430725963728370799698706693862651952287764360749511793749720838176326677526637155914296797805909428486079434389384084186172136309364439156838394730931547882889864885882334951933007880839511110579103787525568049085801527088624929646684393732661767793459239591277065734097709878856950810313782474701821445314338436235116615099183770101359935247874456869656706555606790705151952030090390372843149548588753153537973634832801400645012630707750409752448630383473382628165305538871473817326087301235953588892062743663313266033598000536439508982236375479665337868238653959578611549990650302413541193155127243719081169848404899341012105015907596324767880555035789900044298895686832606148453518456242875624996090526691094131012647136045551497409603115363637771535287004762323907939891788627336040357337679278320685670100765339905297627272713872817136107611046429321622685777724168102239522692199108490715081224071307366017422074811275181448297952227661010255463333695439503403070035970522926233490317569796260701405714433151306069988298210871692188969453718333705443129967808423198232144556844650930067402386512141858459406594530800389237575252679635197214752253298783213371242999683865050871306577144665230303117624063382790131099533786075560297923287975707000472556848195326325671428777335830552689452428705411160670868308899591044539356217293476330638704654871600692412794040649762352886122151997955204636468458050983176699724988142120594119026520684983525819587830801740817281429705131383812134291913543256088586683216080759960447795107585565406234917031823644499572024009040651676544697920465033231846737184241411921153975418628644846247556615828976178321040505542834330414162946289403186938283020047972908231720771450843465652867859520193743107234520479135027945234443030078403128078698506476792398703639167099530855408418326903611779562448213438833039084036790245857691968334637527791298328209362407576915034299872286894886035501872035547190291991251012072931896765647691899062493872758430810255395276227900357977374736346963498156363320778952420675800654640782056842423787934754423968075770324417889943707696171556108427944235094602840630462832102073972338484938032907077762685659625851573381763170286307358892321946191068435900104473531789031456760223450047499884640241662629573733907952276732677820726625399892464123383038320302202154419586980602840389046631344331841221662725136538295655477023494266584003632469795333858721791500911803106736380736591541990123783301701615065608210547873061713697195805969867081622383873885146669840357366137936273113933989968929156049721000238243197612355234466017916460879687529626318019018624193445362648415631525852061306062811734834797245418084629266135553622141959433176334032503375605871807887882413235518859810641225818202120536448266866331911410860173287365516256855123537864702636989238023498519308139837323670263557688963902450732049405554654618595170152426274058796646952794238796979217751440678917824240106604938333978916891681025508189368126676698763896439957979670210997050208146162318367442321468792286531550186484290652983403811671635067927751546804364293326999680964071234921234053858612279484900194807582204935652946417186712426663899627029215193976323696906375898365802930561220298660764198608564365113106428682937860742071249842539531500871322120655230206418495972775709019631962266729428011663049412912739514256591398994284956010136566772626627834453881454364047458967976954559553782898503527659170280297775532867073814372931102158148159214918618651458421955987015198473942818214171602226532030029212793850975674511518028867945391536039073941856985500959429540567273810266137169633024207151849104319087256421874138857107672438997599923239920222487398745231725065225822672810645633153966528712145207328160196437263114737282602547940338148761424206277313602148631311392641711453897850409478458641084307357102058031890857327780795397910903863107212743792146819491788861759892669410081377797248562361785489381174118330285442794550506735133582396401317753050775781210907865415187949300389635063135271390342856120043949909553605631061368251275349543474701035140990306488800721087742563331278282785238311686933107963335442359984966777585564101496824160926152662827308511835504779716521138766264104680879011428968965980396173720489761224677633115071927516125248144104124317872491251200139741436982640513257079227425672929187295645354949396837174480800722996108011598766938620559522869700962705292700372160434564170018951788619704100644525155136861423197771922771183986282457076840094815547946209993641256109233342721575544432100964835129435182730264127193938594225378304061325037689091796563993077784788293429652851328272839519992342854566085247613657373016659567237262807186243070140743488508915855918521454131743474275405989142758873262579377451454171997869846136243573302498142127188245384394373665427512938122168813179089215868954527006361466464075916140468036685081281542570431539084693881713733469132556142308146577099988803883573960361519083197328634545302696426388515015606502599602588553370866509157420668924254909046248060428497192336741279439262701176463125960114385864239402820413512932105337571704440691974885898910304147739656933830374154945542371512644968216138067685825297614243733220732781220411488630745330930780792077332544710666807316768795483138355242987009752886887230436153885398914155409992261765443715141518239757462110674622770323295519250765756555284429562130383442228519101891425122847958946670979179175917106606855001222951559784669345982700983250660134547022215729106928955325854672004805608039790419872451966979150247734923129515310787435872539713793104666673823340170802558461222672585948676781095826042105058125943901854684580047719504443200245825872557048490219075744607921013725785859232360247539821127784270301589828812059354692906299373443124503624441090097109241537330697756297885911791157624059044386781272493121029681848016742532795244331850176084234385165209073790285979390726324533178295028379724500478334157347814616202910657760490461605583097201090724773671369429488493825886070135644457319091778438025661178923351586236437371256932483192189614650921782110285088832986942280810899666975120145078666093918219396432913861984786152982418784476475564743847907376001028596066809758836379923840689008784182814034068537990020300828712331563382722522499399459555169842539200048058275971292334685730555196368021540501604000548487582913283868228886508705024150065123765870595965704583830067644294445097806581554702763541151183641288248734693490778182987771671167889775947699683264675391410173716512573423197784733016718837345602808887025885214239567527193702337524662513088253037874332064439935100775708937033959387789682898786732712983263169796503588998117205824534547250242691604163021416515553863164303122993859014527539132266635616758791994911687782766107148011816895824407326882401698976959837653489905066693217654182610944138332422948446047116654514802410479703280694255436338333040970892721764566700128162177115384442783655626720731665260835853687602174651768271610956974594100454446884797123889091740223896872230068025433086704944495945904245085440244252137909175568014489221516168665398042910636163927024157842362234949649357920222829064385236254018283879543909613556986219662816243758600421858450166980985824451505204327138924072355620911192162332804534966269991258844914929303697114858605041505060819369342166478876574158976486981620912771748778310826490807703449931838166932360099935453661335011590302878307637315873847212928294768621589577141902001338183775895059320992938517016699032484319268731178300173578034896366280979063690012383240460788990351056087038741594276119911969180335487157762501012790328830020403106783210916922286484764897765092126683601795263712152778696348700668930437825825616278634749629635083453340782062996068430348916200565590100072789626027191729851868361775393127707715235019536849518249678237763893387294449812470098384622830221429299641760471189890105680126329735804825024150493810366372814485367191823573046198849464608376555301579805246451777885820105040607740939792283956035064266008226564164375831749830150727819630949650846038131536074683296753742563478528545020714065878108908548307035830970341864633024711907895367444888851878454695121045534478762637832714211619488806107845255560397629456392339479552082791165308424765723702934432568025662763407186207378336947558779119824977146969029802657460129516660556630246867413560057645576208437557133208111630894486844104773978144372926402164632099131863115460062621361154748549900729159598107894045319081134753200090521530928065210312297005238911958085492634768822501505414846065567055791155561451108023327645134800636399826344338507735847212041876780692271306371138146846744642553800827924708075393218467808890585481027437387776403972485985549736751800730669408081750708914313011468396240254743279496107165204816944695582522303729460290916777168544341326549059883901274584942762746836958204623043315761015966308273771348396610835684465782735601662592450932014193358573032768773789806720506806488893195041114154474737206019390698853358021966625256115793051654935725432988215024665890986657191568551150007885672479783393954073858154725515440867434354365529772278753509306432341767629877471412134983101789457272217352871534513283133967950856415982809795382034531470068671188043286624717098524036518658877885593684902493546071520930216642649228076766954749443127932083278437425908767777225205341839847495977753117313178264739487708814237357956128470367352913645783826977980571080821460048730357095239240946379655568023771291047692973838213393561244975467006358690946540899820440072055617981649548585986488840153384860696031902575305223348826965150521585231847788707669473486699030752310171630125093295429480594036893887181069330654415431882089284499174116405498381561819279302003009723682595711362052531998096919899592725857443931438450874328538337807692202546031684198122488295317551051468828750358531193491858198426847068476535299314123021122431821857028480833748218234758131532104214832547150119439160342243431073076730173610689577502131407620558346104970367310632278771769829825645290987328416630325221161654462863425851564231314210559216825962069504878449416150684014243317909308649664324309139777331062364703380233339991177159749345737066276622768371280293810558823386620877194264255153004170015202482558195085200953316342460435674532838975207023177872288507958182499638407883751004160520217563267841898904766831524620633661408297935105121010883559278799785480315483111060740215547616298056575839865384268998443189597272520920380370659870312640768729646275939290089696776119036898719013507111377604705197959556754250492965226156366077669729635372512989694753425780970801467288761650627785016910265382174307214737170408512656953993161501889864806824807692518284462145813206170838384627313710492716767104537978863544276555720171926691012755882220050503374149586310406543352519915906337367020431474331370346693264640410035804486117805071272894074027272517780855263582321220355075245948583007932465350154872486493036523122441456523970653689470546783983704237780385433759786623091323500474745464061098336923388588656790105778439012056479404405426896637360111312915524772950480006207612175784461301489165109576618342174904905740519006254615609096925940436856462658793196857912531981988480819288122656606689386382478317426121742691742468013432863569422248724154089969885456148733998174533882642864070405721861259337921276964757535358820946869355076989696672446898867416795915417226758544711271619012772029034793270171378130047152939095232559264862348259906162277320554316186292282050991676167475349733252909799918992296055348585112256981646028885798830713137325194759527078465354656685155432028698222493486236653677394801953210222677509177195777462864084310792445320402498066515118296467884406278289268665394184418289121456488926776000461784631774312667171440867019825483548995833403906095961070627106247527836187559057318766282821529300756290851350375754646407447493184951144690454492747586406694491016098584797550760777442836001261838011053093864293987639186062900252149249966186069402364992781800518065772615186153802573303398966371219831671260765176481217488756694383147626303328949800680178165592883788944197845034750397499376229460751272334059897118741734289153177846215181152284201817197779301404277289769787265907517532756085570863096857965056544497979792220552073789013741851600746751839603568646311029810580398476976892028231444337407863029518820700318809515817149269169166658039640016162221161621739436848100030719742688164723300545715573855023889316125146558324372762341012839053473809613168623763689439893344673543709473900050625556932852766471389777934132569322305918639585494387641824871490641986033377339010337993467953578779934116171485758213257305542200388298241746024274958942359252007519538453543910309104984290259013064509323637192563443467039879792741676380515503792772852257983972933914108363010253401901276431416935542190507948853038355590763009982202764263516700064033053365237465008476019844743120819936145457469136483775944576177837641078285987782153588514415643997797226466417872322988250353744802951885807068841797596173154096725439994396473569966105720913661935486885321824898475111246825376484205114913661733206584848084940200794906230895305960829953333231685213057420649257609461163181082659427425528968519127577592958697998380843002402935897704295239366454183995400114623415620027998601994564500161997663457190452449318443825191365701044590606829734418079429705348303677347662108130946570179462578783885267148985912945751511185609169220144092848417511765074360316669174976667109244016473927438976832109675065256389852908588748815384422117799608876061653356767373277019305414531554500735038427380555485352166519562298787171181410223921079093926614729340731910643580953666849359114380310258770077720963646962714487398510449305890047264201470248652968037790224120285831003656679937382035945538632966846367416384239749372607661057427716260649880468390203482590107378163033273472790722291666991597742606180173079262932233771456315033278145788815168936977003373287114003596336865415063652074487266311421443071812698740002725925468576196575984277371429099395662228163429592313517974091195649730145087403817496215384188310078936404022095914391565730163560361904935461028052921011892469002060238626658524919060203958413965747329390732924259290132647038697503271284861143244104675650265732326835066431529008241485057522833783494171585290016215626680107770697750953010548400611793724842981876641555738416512372577402049276338084176857560942202059593284447964660129453847280264887980864922646053638574247108306971364894668969140095615589663783883611200367582456503357485364794738137172716651977606804644089801015096033327629698103841352420533989086555346641325659896877983487758448404368284154266770763938285819191204115781108302102050554840494289379009725815944828683485661900110078327859576670676131538249343538314772890940500963256282832903050994245037725781491902969898821006922125908649669760890970778943562733155529374576262859157592210401198694686285201008663586991218947187541531649374331105593637158480138313860512448715864553864765609832954671351809972011502537808349473695115027834191861090962976044665844762498993285127351720115829343511557941777323520060417929671325003082463121395380694749394281640349324558195478747553620822012399016312758582180354769684544258935049645069750475365508951817177624019616386446386959185698985043591068150200217185351710809818217944005252014703973548116779232304825676879985425836544700908969333166663741580257945707888278487515691655915086864232227669352588293273275949945804987158579183280873426714892623004283141843039466773430434008012789062123592671734687583889377170044782991809407304952734229488528762491588158145642216894299287030064879405243312585472426005509427036461423680966372805683091289516335571757317354309285480886478856406282261925692331322791653641068725041531681522650303254072003289549989156335884036567673472581054570836498846344616260738644971760752933479052882255098455148310508332187873165126990930587182731756092753883499824488509637455026427683504712285647188208845999507985217069982077496740152098934509243951660628169897441304135994916780508024222340335689861552666318926917633322397863191543542092101961017599266698644758370870676626119853742384229105179274599227290996031776050198800328357079164909127037175130382819577977401053032344593030014339514919181873312985413272577601276763683919117485572026954041732992346239196397250984714314842798326868559120186172686680472591624611452264698953172978277383165385915644662988135957087613375222891354750849990876227696729360075584921966947743876914732082487097572679011810789879177139316827231862500512033205921561371787454929174654679802936242136292922647637192382733250959756323101854367447121902304151353583580788178793275558462813347017800444007089281980721084170648013508282178330823397746573492129822330798923844257014966330237771565037230300904784647719223545500508845830724728709527930412847101304367028360152443145390848457907227343630787905903303024921657764575836847021892778433747745017904920589058967782471247192861493038698511649569244319650822023323896164188371143192261245228605511875798466632994507684677652269146701598768286227319640167794202078632784764026303369866495967553301250909130337214960934502596554661177416373043112296246169470513308807505234766599452195573746748700909979543056384264995595439880989892195370593780587754244808621552084812893805647054442578440756155123045037816234276756946095801884156261591512797107434758995534451628660574784535486420499339052420550033964687058293394906026267997796263915915673721684494176722160160511043494750669878226483966344197977950754568710028220949503971958668267417482765820101272304868088909785070228108789237021554592572239058470808760965606142398156468655959639554713880825442249774989971114192058210539777226175723110210813184127024596008247566458117790297146090323866707054406128208394086402417444594772718309815199663881647479865714508382065413824879760071001155540825192642710972397756646760660788034184092201993450146655744659482784817753901384604047607960476072493060305145845916320288202410645072427778933305968075678220064575279579538614484329087464805068213180119022535541744483712096270999732319059953009234431783534914305495212874143542418477571243659836690604861734009214751653461732354862519902981617413387041640498966019757820399925511487566612971222471383772914541113831160409215301991819831996310514380159539018260130981575243476972595312878483003616908968995163777162718497676344993634146914317181013037476071519516445624611771602589963574093326595881398611472032372514590916225576419852382820775146227468053238684322045980983304112870263228709192721038628240549335309355793316923469851082601620997524601787808524829499485762531254363631518421820048567927711668723857092429611889246566154412143148332458197994422334964013424389648125339002556523028163412601046986729440464758726689430228691610369748652702909774707904497146600921070495410647088976120002272622576638919893300549308526737276900245240327037157422691128862152047783453717159206878128215252313780606769368630512795903258604223397092591238032176952526053654732080081449692648918323542725562633902973896655886629852416511774792806816941564853465684915765022915093723565212935133959153478178498243763280536471732006510993170548733908677782212942362340206493092610748434994072040435761984151601228398835877660822629358826459177022053855130995392662454838784351937216628170690187642301226884924298091859165804328384694548681654456022989977990953284305640518973256116823601828543833592146203345591557430553531071688781939414486025271115151999277643126279676966927790031875804470057809702548175466295257763188187064892233576457342625250286234279683902730464058630808922737687377397933486873850259861997717574563022317928624362478344742619459725785895388081712244246598994592373684054586199862175446911016847863970011920013276706849220735514242400213401315900727296440701820592477446229657898247809052543957727333181203486812196761829754695882407146438958395379943851844217534878591291256798221053479873219594174750834562289951765395697438956577345777931863063943557842961720556717567060471921270804266340543735335800873480188751481128304414514698912729676703009021311407218533884032720518858512107024457845796263385725533208027418914432236476801859887457391086680322803746751918522295074274960005748057055841708172011263681416832944395412828334654589822261220894651577093677658796757155010898064939894520439352251841661440456638312285610230016982370319264790432266106636860098741548987381121345801679695879544742152289715945544145629784643307455844796248271909871980607169508605255395689040621398030081557773335320709135112763185508723893289428765850685803268140539277360049844411911737835733543061442209370466835515420668840638550905597161181492005758293310441880178990126965334873901051799734058548589832850554225099836865203543332641653059499922806086588284651295517812322379638434400979383102076509038751575644697652072183686041595325588759713182627735396504664619442374194164372114823986325160823675926371595705807081191590032202876789889718949109802105514650040249894031380274640576055529586656460570383757446174329099702675367544899280529532060966881009881775476245204485632294544964433737811769097769109687158470848930474938214598790665060077102788808142133910216445043104464155440643507688475313592428087213447523674616212070169797782869331660891038323005887801839208382277300691683575874057429978810078122617139171350039109773099166850541555610077023538570777854674839067871287207123829013780751673265017299703887004777214198153110551440630461167155691586786186373675611208394896406318009862711336994567665776875613491605615795902161168774116482259690089277504560295070964482274865205049801203611007520084863968193741521272592818550798550391705334479258173501248983451102865539033453353992326779154065872094700362096251477194261265031135125346183987899001847369632044222690531528879298191137976807234707448393089275243869332327236665061955803578144067371700443739292011289181901275144264614560313926920618744402561755714259780233109109147691496498746205183470881190455846388811557407222431290461113030945046639696991312892921921260316251368199596369868678552965261834111333497753520314790334585574987455175754759207830991288049806665398483088740385732869819544890477118651337090307502807408485362898663901775537757127369798748748385411311720960404582271324881973654223160236184469078726542416403030429967884133921041074247212582974860437636148324456662588000636557183786033905658395852001775876615286410093367409994174858985695497134788087285482810325212805866044972561349238925688898355548059470425076614065702714101029485521463592732891499280769801279141039650095148809917675509548727020788030091522551313359129648734882087998380638806991451951145019330551453183044228391218439199461120738487595285742373875879991272054869487018477820965541243453624445640702979746113608276853019246506080739967531016941935177022251358443289672462448702041010734957749199556121955835847353343490409822473977108739634474792314479246142744179238115203177813361172354187074236152424956960993236896418049102710799908745185391066384570324311015672728559450517412892699491961134632731205017299182070204867301775722219705846762569996535790538184943968546077226648978523560740519606552285765543152293313092090570019258070756067145733713951284967937526858537060063204877949603444658827159046168369497684625851631922974617626200251685823420734152470388534800293270544052552032640422261172861099698132844157241651727787417076654390065442692708469705312166206905628345527829441137449653318090945455352801266127000017814483506674130592991755310060580574628973604259708136080309874328318662697236577407408565337259907642019932207010284889263167772463134732994579288264732829310999232799246156618497752536352012699608249952459427461932192839847470216382702319398950400850850378045725336870600578896921594479139522554231046386943264224148635043046993174538998729978762671950899787256549612880055009023174464048263299994389281458939937454071701267867165465936599216574882719658353864755800025394703309147622106139022817556758055141025984072650355594647402838028886243578094598694102127136443770241183035290298774444210686857490910177249207317749170289056400250282787627813401762255094415887784635386562449234426099785966156953945392429465496439411184945556771386029848710451206450629090557414067344033979817298710080142453877328228263317540170626508288223278428806499399394952607402839054326632503515212605104202941927206030867669185845677162269040954391564105954357864216502577208851072026918255838695337725847228933565446861241773649887039035198007627902150519667136855697202203342068111569483542785772861416262682499805196977371801063771191150349517680557784364224523221325585595706445092588858621850230187013896827282898955273979089767001931230544741788669817479100007397054003053607522584892994819332807703415979511114178144307189388009886259469085470058615338412527799536272179236521703723876219182085453767385982285439138870135053373431801450626573753852516811549527228643051950096428257039895677803190668596075255531024668507619024620625630202827457973483702929424644555270493988318665890230711081285568681623906766500107142667473661843288250824140407912505521898215636304495343324876089150033489051171206898280622977205933925755686077794282266935604642550172129792865686108362603812157573701804429972010942040063581195066767184194460375515951881074164427540811659360161588712322325837384810098909461531891176048139312506862470457838802468822380383419789626508151093068583448044358118497165742680368319606709908851699454871061020503135194471097737617396043479248851488274183193375109485350478568725631718776806249379459804669886306215753398442002291631962336893396961936547162493383515733131908246240581259095878423427348752036921603194456166369278727446473007474138169749157515138246611768927668774810808934530242603721319911242462031012488004360262040511091935186109584629284835892754804386709006778566605672001462515450996039041227433696850665068333509237388674170213917765873889158088342707017917499118368507302609445759789782516114353202724861795499765909034066824766836423329928404961268829232686197781787904911073330556608178262631686705589485590436976623596580669215487305677508626917101253136239006648061067877635826945444228769495200270703654208116051055788073712143344118663830612345251031661304173264222310999010745713819575268672353618278622464183478065868091072205772998519355505833369519414267244628100233934236299005880049180998870206076440056472525832767810679796790300199214706837201687582366201769949927216889403803120202255307252388693248609330288362297713658637056633376780870728638299026015905637194997556962164350669310206222427314951401653980133857802478458132209772245069580248308907118407894979661943732206777035730831849964364065584826509300084543080194795618813225568982124034516583807157207292855342665932533178438871954239580254473606947239651758216188117503238998148233075662262928766871204482736962509246362433163390707969326126256387847894413676853605545829447105017336883702764642184670451973806171551607237626678253682626375466769574916923865079802822187850521276355815883025098515187477831992558478815073185884767543825425561481407752824439426882478110334323842704033965229078974083964359358216370714225557137883983693638038384173830271402433547949927387908035613468139791707331125791665783851573906550405885591978859910943310224406504796323532317844286731106793190229827802048132594561141566962476620283391725293164974466424325897192537036122652628106465034730307341010280214490313259894687156292426390606068975089927067222429446272333799593905646544051359034340696059397235819333209642349790556115017816398365926186922628197717531948390315329208305067199689375315377053698997886545150994955444201574875428636428384403188595253543872292305620178686550630129184646423725399738588938226957820144235534880971501640723121430063163002771406300054114623300669824807900106994968340236109146811541951436898003057455990405426940539651950462122399876558127576305745527420533236420713652219401994771443247227233930247226888482675149657740230724910482996553535624173559973244064783235508760067039538475674203112814446098049488719142287017633630613535132194819593698778637014403317167362348089093077800083017102921071994215127476755823046685989244375460972924981265338921961101928937378508030561360610362439118582152290015046920116297584375849353185556972649703864821067987837544889032228808804589821929834239234524978363327243235372227847618700838265934638576211829230669589551101976679949791808703684128951196416133546773572810447736404213280790804513889393731304307710315591264325550665926045658930903217909569004700488880168694013526995358415639349452748356057716026874927598499898741901495193324953968447141222200799436623046051987823885760491947824144491599406500088363909863449376902182685354756719316374103679389244447795599490341817360471753183288291516152610766241478267006193062255406543990995463057206580165409207455579967491141283369972655402325923632516877013834414662976771452184350819779160924571465098044879867965459719947968570885864924447203131370925646892905952512505926129312451384907294049370668466920727125082028233398049874337986298988776615173145415785052019309584953029513334982853098469729560091013594655762819279667593203196043975724062329197671009864205336140985356508023021166799309582965118237363422936213888880934092469975675380063209888378978244103618334214883912861371125313101534139484397592765886365435867751061313001553264579035380393405096695301568463037180576635521457415297920056330349699920832202352111707834558871790294032237064543412618157753585741961855886046805392211503376650367968434944045406134059055295409374328828916320281296286629063648934037787087502050668893882236776534656470227983948748036693166608715940675007527726796217955313845904152663846916439970863139945722766253585845647312381478909386752590596404489316634717381877019513907221461656070693474451006907135248526347670866588976350667639715558689068332526742693897793962134031081339026903393735353697055052112371102268228057993133900307747671919535234508724103970337798318202260916846073905713136271199571103388977529387876454097993339603317408450150917792466558201292949346163966388003282151153948774228115971967383934009083066218129067095950476428604063574951586886597283980109020374125943716307164421072891125629290442081099881093560407247956026607060183943294720184602717088409965890370902318804931047137203373612695351887482958841837963007722165977529931212873964668043062111800207588102485338865426860042151468251674585513817425920437996676724062608978022404223832667339253429876798305776808696917864040885300652327945429043093812747585202015336825249762524899361553610943403420518034405875630349791080775894731387828464101028283399192043445555724197278830950921344449750395502915949757423837219500871059401311350644584957815658830676232967758436211280336569168615084461295655081931686766549725938027051178970484974168648694125456218717626012249809475855724422819726225046351728192448818619916556713530314503670379918875165360326083687085265928137235614189935562110047733988582735252869920881054220160635606137474194533629845281033473069677646218364997014802314997893705036304028152563604169674537826154600041426473983086293880129362924340808281274228833792618836319573792646551463686204591759636581957160030453826982802407249107386121031814366784261260335379159978825471772494676621643501893957338153048071759493345279563589473983435511732647181150408281347662347328307385816685410768374973844112886528258906129641484142614415772129527854510237006337741236527118077275405900514554820811416721360273143158521430196011762327426573357825493377527815053283696151994655422481947816852839671488954680088527790988923189541805479648672263880490271239447251461924191109539202822507746859676318848790662125898622442836360463988233657627510529061619019730954527703947183945701306079342231247542685991951239530302393410723315662778955877226320758091330176004369263543465684891104018111521113924114767278380634295482705452927791112955342795419781298471392313249974916512275204417704593831182900094238988110133245696019256342566496588462233657199793057502445623991207781917122900066772862778404647107151636013618377609662321348269177866958409663608831517669461381521172739999722147094139727002685009260313427508420199396981252677455763724450296638946492117736791081315600878339987111249214379953175890873960027641834406243925518512917194086868863299060291834459703000918171657105381768086283785928737393753778863315703480149871582900587749979031937757617764302684524275852138063106736736853497213760773479874553140191784098761663601528818657846812927023475236863037509567966304798628494230751419935628311049743735816438795502716516766200623700112219134811127623258352081327649494367243613124873261325562997450918354597910211412850461590706882842695877250823940670992338510333631630480688157785866312205033582782142539328920034063535683230294381913194846044330475951411552706277020696965222690883736149108482132748195164056238521296788120531714879696365994933568234933661677961681409661339256711106110177760484957029921332265248086184961777751713372814925054910630915584981993343632363931047852512657798352879048615766894335179638449227962869170820361365172456187790372957572945592381611729067772522553310103014617052986838274463545715879174430953080104165712780416878846720640632211436873309528189625362956523033905187089931024181125430122342387872293816288382545551787589797116608962091607805863992825028286644328943659391118990126398513334868173629664655324417054719571248306337606625835410558325852973771298835853107260574733731392296983876859888456700535403996889141497116554806469361494296858719456997998423739096030898756700981841877477921717156758188369366701689871969902919521550173641749340844328782598221170225193862033530211098912098590507441290785376726595414757323336504713114841126530747141482132862969563824637279851524853678378402863933425904655301025927764393002511245384476525981309502884670304710512444401378244808613582586146365401792185708942496162387881015025600276908602427157614575395408703847567785464621180606056746279258942091297321721623925104298796804376833285308791239962028610402207894107080278379819269205765985300965208642896468949007916762594704582537922424564656703502049068858711707122843445560032532846299867467267423930019696769836934353467804265274373714533677946073977473521855068926549216349441362083057577241273515586885881516745231932961433147057355167254135123008253061956542187143947683838364793175940353912469114837385971496949171300505064971019770082666520355535301760382638680261484341984388694170631051492229584588721449161092780092433555195026078215555850427846712742034191396993979718503611492278471965113407605491714715783609996050859638566794717677378576204501382265694120580980047752315643344190131646631509807220413120269273357491681335712403962902162583677316718115766549739216798645069667861166524095017017576993789949342463244350371700301388112778990575299072747567984955753982128426833127914632267109867694772545969835760572638424808122320655924099765835940306001599888910228223927588297278431345208182336425033614725172664253276628318704364299983340849538676156762600648321986537183073945553782398654681043401713001266340991896959418621159695748817007967416826901454634461926923355725908123476874799692987956597708167089088996823021570497335681397650001684461099689878629346103559036414969655293194203262684534321982973795784748817994297504069349778205804555030882207311419542717938224119458168673626725382004179444910467032202596813309105192199310957189065525104010228708120570341265264587823621582503805375050991272644062555719812921166832300455354924797410692935797367696985877670733833306542823918361896845074523778294783320113635927936069008723063634073467814686223616009831684860219070064403076251909444588528021566404690482983346118140689206649524191675715462090435095881309472531763542681257093869827600220899707826541931890284642602764460098276517666283045240882736707026835006092816945478547751069091842738303801227617925457811931075617315491271676272632120514796939016424880018132858656492770362385078990562954314597611867942158677698151863191324375425524809117222494662508209212850283733797760056867990561334480602797050834901147472089194644339533547398325976475805550862740733949131491853526058142901847735368201552261109099387850806379341957086972526771197744475841004439824417613622388166973805516186130208196032858339887326378999069260858173662882462775263938544708181091461253245017794524561572353694932421621165221053688566211425618276637453046186556824589622911698568558476072711049248395921111683632220334692441427456429141118963845019369444618227761660654281920438980743093480729206383244693953806781664304005811816083087370613827800892799282212046817927512688630351775292776203391400069817840796746421068758417324037839638860798714029450105992965031705967173119868383691500146377067812211089620833264847205355507896192158448263998246346487610688291707900807312386327357077802080040280750582952475782005797215861766422255768843370955583041718192806417527900818035808577462274390182477205444067625356402841576491961114176315244631558014134743914630582362799370869229645252872992693470742285323968573459298997657347617866210385513925744751973069090476908030062506246655116529751557937637720145706742941575236508156746604073857949447531664370293547641126823633404542418210262031744422722485417005421937990431253691852110592107332700714486527804424193223740443422144110105046203084944023790231925411274060572007360617391071619611384658804990081260424788515128893181087907123602056931871784529896680385350196495156753635313977835397941974600517373415225708982544062787828272628417520187590107568345644137339524385013851274601039784796416058030133501015709119312301086418787137809276490166656629811755177615006472030764901878235888074672953531221787377133152876645909857826172349711669242822757925509306256259365838935337417447621723082266976873623203342613351846992034783648803440350405591533938355125462534088066775802874732165023050094872836859638534705311225527836843485692719385030150781907655995114392634561211391050581688633989564752442217271189044598823099886151678962522011421452615558739804228918891829488853632701357739114277727683211015580166404939233168578039539921949096894441641690992530204469280955320365104086989011795660124416747743431290247775319588479612727343712933797083890465450725459651792888033077418636139401774267561771175233812487073133047778017666431618943851656378781507086721749557642487476360994607239375914862352619147188815000532990665203338456166059526797915099691012586326450657589657935472037788825251314119199714686927004816285130718767095335177026717003442489374623989727177239865695193885420824850142828041261976616865438202484527023113180419614894085812999836450467771090996142838245965332141674119201416530426051606251781387007344956574116091665280287897331136690012460314494738943740831405651601066978384674746974305033271023047308079191676306340202188879250779133681859495418845350993355458490792630594942259870431112240698429435678153828190845916141070284144708025169938183044529568216210931081431518046832779728064803404556453460558544138289443062551911378225140817259518463912679588826621406224835001693341920688628702473304827036140818292023405350796001987882088772787617017716671589607035959360251508148833964536775347980649413084635691173315982012119501645225615754126824029097497138078480631130619106493883731202678639636264179560146291973051437440613022417901384144305330362024143618068258887788618768578095243988043501636365699512583739508044408107523903486005177735584908495254533975006133805632317557388125838083138711934475339041734316741076440479897856263100876650034229684767243771441069663722884527142968328257181262266506206503192634331841806598527679723942729744405163353115377313037962626401250004991001447821305168907427144469204761193083459414920294609502328397785398999386830601923304879382133075698358979335018570884152125144834958581227011049613879036179759536323625527195772429201630601743802529475336167485548028960003110584566330525923862417709365477556944769812536928965788030013202425338505630069256739653132577834731662137015622969425414470870338855399003271187129623961302859675213320983944747820671054105858835660822446052584234843932775880382113481654637958093867374205990824430729268749042526336802606222144302237122834706006949325695474732697345065660566785544491663545775110744464407051188621359398320876335346110604721178068988078012326267452788057542365637654536212435600165919708495635594780141130104529125587694952985687189818766458674603962645751464199444091519680626145444754665444097419690871372617080991783896615860304022181615454199666974269988172033313852956963650293513107223956177632195934587217021626538968395569092463858830156437567298164875506184341869820167854504171277449421846568607283330243759680183625752356732370968652084947842941562578532022934795929288178861508376411087779276234732322550006168696071911991937399447433205129024349750944172527948986665770319510589832774669874567347947098405082531571670096368973451476254052903213498088939789826606235358516029160052389247710554510800010562459084544640099733834875795850727561022327861240085023090316069943970022710764341978455846386362907784504580743116356226427982046600076953987772124079094629288218454338504186024976336110524759999262607030588119661959828990724071831760071158562529751713855406224153485752330957488781514741186677545636481381337853412003020818447592095817591936634996378323666850373366593838653954507656947920076486195649382180338178007992463304027843500575192107213982463275767363937764682763252149785553986543689117635520628817046808261793484029228037336525046448294953725691514291150770958520483507598005350252871694027672906861497827121864470329177913849963403366457538888512419201227756209622169551017012248284346528651035740273886613090181969323722262122294801661500969123117401389859560890495965309651924129747652867981580241070536350651538801883722721889950555766748959180387740422745725151671558478912927867572633394192048840316790071643124773741008755459462234825375144628664407320341648610825833271342154924921315092095752019497331866298564316891059402588803571003918824867939000479098813640912873612395511530882613038083236783824966910661810167167867400631661262293321362346728969201376034091845720296142328136105190260334925358338580200254655679201688687429142595355431745832408814811595532551258464423542725665381667419692078748231589033865376430884780370419489062437761207165839144946988175621689824109293892595202589637571266042449176365110118755879502918374409332564698946086527800244293111916669462469683240143583901284503139563874452240204527100247848965026855466221650658588315970346113582677250009080341729507966192653133955859702118281472164716501690974303083503657314512220983902838718830769240199311249706502740358652519366656706120626885133665566335672887991203772271763432592810100335377339945931524555380127296557073117341302216010816692273375477457836179911851824082883369240857622826182992900876551051367318347211685061830987598549367354411254179783882039999645469966687698487007566268057429644590910082397235739049900388925208720433162493169358746404709442887990539971176636740820846263132772884236992291415239460421409123532271505471369010141984955228111323100019183034994676455716749516585551908169989308291846625274823556165310950051686292858096040700951613264339701711593742373674640315399628332050218740303784828685934968673096436251810375735925867266596427215182773862676150548198048927403398612006685500131339711480024501446766219661685187863981326072472811173796952471324413246322857036691618212405115285723243651150899692595188224752894172767440555820507833995107357950927712812773904486745299521202457945362084002070502838147844846388635384765195566376244734370994577682317642652285729155255620612188466385979562698203058809931102151241314843381174526135513100311839125044872619240350996214593066450776327064172263813014929120131458213789897768234584840791405375829020887819252467300260500109576115140857398397044429755579141937425655761555900623709219426812980297928726492736946276040923054734492886558920690274017159008651999929689475824451853522627545953474195315780802716527850929040402933362163535225694584784738798118773133325710843285309938004538257626023806318594700166647983046645438761696350868895081006872963967726616843469328311626513931839456704325879381530999271362461880309929585337182074299466330180606563102012156482347051764314341511542751313511465062490324152767034154419363368369744192672709571832594020923341943285832376049404600303851189056394974112193029721351312347465053515450588287423072379295561787251548205820228231663882592927928488032740625108361621261226122281801230827415011741154878060344986458819441488048382474067704838670352982901761601184312583959048668634007159431568705415412428639303479192287223430571007788258931533928654788774406016505475157645777665159505528133935385907056231633282486823000676145452752534921381016156371636710719072104959815531775536934001507093215979587619099666407923996165967994318506362028812171466412001091443878393297204590416139480217138415312779723855792062695008330528016901692153746388966034976603095901041841112379026801204183177448740725275190194836895918754436497824605822727103003648030393595523265672718137318860131726025869697814247674688216086392331752520361489355170053488023842661715884637428084496024224715754440981595186523221711700811552946414615832740358903300869847582553353991205856916604807454724003450483060802913959453792041907807923036002738323309077564169319601026665208836373729031839074745391375848773184092134778547101462325944349073177480461087503716842292785266944732065622932080262032678977481558551573222061273048017156496861973847562702927414783524808269667095687527331326852408710490124019090476937867852470913676200098245508327592029102784047930544190989233626487979438844805862278740149620453308923970676978772028632100419668875817611819452282895600598654243058955248166945914290628837409873873459085638721533173312080135526137957051813147913471649270795354189155966615918620889650931084015495093158472209937637370709254571026418865089652318731864317233763131922186094983296912965785231312949961376412357185587742134209708525652419972483047660509046884744377318083873098208489653853222067172913257146963636596927027281101084591359591392385952585981162405708377382872483770764263939711702319452847873468896511366481904400111956118950399483365497980717805960741168897925427433191993561181310652225205478836961316560744159876968457994827630127562065549303392223345725136608334147140907276479787491480619827307687367858838770775505039543877437014522252857455017830154935325917500823311734562546924207030651710228239529228889819542244372868974154802887869727612692271319945938224908015460103813668960685286724633535316871844130613361559872973949722107987408792616667208406904868675451089071472072682338313498006199687595373513874592416589088724839369656905319185678934711449561907214230435353482131022407363273070802906964003807348151347635772144216032191745292187581166868610189276582066407294702037243343815502525372524650258984897044729690236197973284882521437492712228073555335032339854987234065444893292170523350479761307185365853162095238784524808420602708052699950916625572305698979763549513478990501534457241077744063297081771455692337588459865482192287690285277670977311664534395945242450098459499466034100181297377634494839390684035178011311183919666159761319899323763650162631945636754630502571264984803427576720020625307956218005685394765204432143280296046811272045603034156315703526872216614291262937542968222202744017548438100484498171589634222429115838016736892415817575603179243101152685279262474367572816743744776307095320797999334632037894815073572784499265372094801507606095096460306081028698836046574256986600543529963985475472098295858948008053415035556349446505415830367022081980736118565494639184293936060476822971006030115768180263596373684449785526277195820002861751839770077201552691920207550418780203612119622114243388936240443857912768896499682407597913462678321687534746139729046339003610119719575481103940943633026503364614965290419494872811800782068488713903191035742697719131397616338283992184670767597969911739232417181186263684377157195954004695366258320330729393196556630607675071640198056473518767608267851995762569401763405869634496243596863645513862559850426974572263274745498935130686813924543042789313064634361861267683220347606467710105682957757573911517026049412365575062138872845595202617794269450124138784312282542045155666969571721111974716442015519407885616646008336958239391021883026171492796475116242317816980551782632744285735822108576706980603199085087408528456594969210516449643513240499176778346310267970422458073949355681269350844068863428312408773412431197155676727592730227203884729298126014285827726941631547769888951049136785696997473571342529231038393887270899799197828171072533131988183877377803141571236159568190678742737919531255198793538838561639766427873172816533501138554991538764849853744722453090965370264691845739795353310879156425113207499562197444664351499502586893906369330599458983794921236160409155474539378208795345190171169168156818838075598593781503940476106340208681760395269827073386206121163050674776831259097612471608349501314407460467941251246100641625646092289507471493199656909023636276695119669939759334122962597481992648827727635781548025140668339041376749816513283560908788509381018591927316236550676570574824187574113545998954580271101698520354238831163933907729973098507581874241360926351680049457821518752574741520647295862565392045087514161256350897104502825947855174205119769729662306088560550930710507886404541817870507232586924655565178161541832160877874145487310571102831510240809544731952706743590890278180409762974482994586355842222958220243925133923430507474540881488558227283264289838825966412403692913196079001627431713439603130638534167743782399342330127180014839708805914340026394893951696360823454452494741039323601866934858689118792021329779282740430110606468463768490967875054422360637637710500716692496577102075961573622409086135682430558556232559136132231045524183225946547428257710120578391448488340225365853929528397317389277658627716311357919036065010336484524304211214651333816063091192333756696465158852541827641102905613710762013111015269047499573775906463951421464670053556609520263803622130399879246135945204334877266175338781426666904533254081386962855760549801677379392845560825608781241391100957241726924807237847791087166089656804922115910464353716910031175445043224840182587457148982998343630541330071505096061286686905170710068524520196443754193346538809067651316614214782641671187505221392837864753460308867410011166544685676480591368473652271436592500283708262966584205634597971652988445756433560441645751646941087517771343282387099276190628276623650689898595783225652674193815641801692393033836515191856003787493767525411011064396132783809517627797855527717293718773640644846269131417789492966319165303610622917539764659792057019460235312699554988485402900253665501621083760252521279794043200453108861199673379762780738472769882051124792651662671688341906900234717948199828901656310896459922057997972485325220220848860061132916987897483035892085384589795317255116954499066528761390771462412355711881470379909969870779358963840790889312968303258925177102578379371250143095456713835182717462091763877508884668995265287259493255750172609630821452058581212288229589213931672833515942818994163782565455984590535460335992794429596236506442642191096720752468995891866810010146701102103349834114807620567218131467881640048253164274005153335420484267152946992084348443946975933369135868394189379026683761504525546393379312574316095144591728135191999722726198991237090521180639612848537777778196379236027509485833249597150985724102290978673846103501411244493058028702592091091576455932684901343864423402819986285196416786043368693788799592695494853380893972043446032709252783584139864153157875767637254034535459043781005417393990590032076255447218849000351163743002452909178282148007759278102991089629840330223040858843034553620677109617336755846117652150510129756884355923007538449711440917635258943710192293433348719278264972860150449963525540071537419322588039608065850597585982568460599019063008463208017076013078487793328933686545546230971114360651993390864921690594782675816381342997184802229365729887288400881355424151052341317504202000086035367643477391063284801375345559107990254692100017101638774644303298452903428865158111290457144426308402776404423527800503802319533650667524957302985119417679211476617967469634559456814270641819300549555226555576263612462290395881638945730830817137682799041303228129541083584985860792878841202744376874770869093361567416874023091655729425218476055564328212304287697342532656040061807020357064747893069571023416108611279531275933180841780594629690996045249671482248162463047612967990538207363340463768871531330348005514234978012178009238244951379983675177463111990478039593158919104308679593526037869748520708781279749686514201082118402334363418269758109219905583713953537544816957874078976732421707090169106796155037289179571931962837208439535261818106973252311975407854685882286877367088211228913262104098890805018186385199255991913111770117477761758537447552565113303824333871187429101189543927617791304865206212856433133616317361767694468298374157202723055747592869393467595506901777892886309890294794990202568118941610450515524562376725083321042434444538763464462588671371146150558486629058226691915775767077107827036350066046396588216289455219764358741344256830556640923780621940854432887841963025440091931351333621650932938051434070914302651830209543154677112584786585636522355478237689962226919255061561316211100553368822869068587111087744700666603959111190071231118964116951693882116249273363899166752512639899656190640378450034128145740248443555448996265668376679157750382766732290448238823831574753944065071857859603730261291210179071369855620149887448517821627883898112459866272080219260974328839674238331254397025386305057466405887155300690563836803954693400101808904152919359833002945307778416824294904620224114805742175971103892084033925468392494295598025272378019498131894287742169570390630046471639536265991470291556919791954306851864016631857799191660265857394399866740888124305998532313621375982149669187821242832270427172292760731315525833769462555931643546597208511621967847012916735486499874845058274136216464146641758824421000690260165908829447235667239233959625391263790531298708443196554870084607926803115765465901023272208843705349544934972147992203407419555045881365900500837302289654494703816045993643035881387443135859343059260236740707393192002168564909413132495323632174436137167991057247301518877952656842804994080875289427879204525023420202971616289900403346388482554632993850794957174887296843494889051747832288006265902043985272405481799966364281074322359619234197326887271043234739917033777143060560837404642674169376542344737668314916030223657174810115974336501986289778536995115815984431150543705866745125527606772649032801888517555710087424261471806486586876062891777954948733142189342793187398596899093388187739128452515199012675997194335139851263619638405344540060926514517972256456453874385645155037219804766877579344833212054997611812220593371422982735856855083837494922597377747652771160740012466376031758938341402951906833101083396616945949893043138136244113020502587683239805748977457555449841952651357717289530277675827363189803487190157025182398196437371107715169695812524971860730482234060077126383898713598886617066507043358458087564267532112467514525776924957537152193979947669106551034948637209693607248004312536756829360039410915069310054134473602927275252573386156958160920919729512662799817097792890849462020215723915901273740496418037763655312608922317582834208484757911469686033651173880299268319824949884700194286652646822339469350983948358846579148923627304121017547389250837863316495145003162659326909273359254394777154997429746424804493224189791747987734060880898161787855460575802664051940719347759452476269090023595496682719306510093961019421089358025846330610593766709218964478556252668555212934078897254890708035998214654677659893128456781288975722006200501021815552103837451195218669427010694811210373020696706069598381679881692058423594087781867066013446580135989044782886277508574397723367567243815053573561406715082843564484684091591325254308633660423713365148671339626573174937750299887684638218550229896420283843594577679717298560200989696469876279979911024537874014765471773900428567782860832794180830052401214995685572075547950938836523951673550774619496315491114389349027796598679617070254877994636483484663394556591499209458058573902831213239919740635909559540923434938801918813715517110870013407991087650042559541870530354438486361783970478910910528509330553149009419103954383996869860907627775773242243918930386723417814160002163405248262961725608095312890918821455396091553097943201891529518976371704999355405274810873107490574223827733639196714691558155934678320243302934031129184643434611016672166255286772704360449877116328019111648795381654677048413481921016006034179910149605924925000540883937351373478258659663975601724429568274443204633382166316052228998079974054142134676184452559343879846902620446616288689371444695222312792126202893694737744063051819640274372134555224918177219848682690987784487688785442487874946359693568961330056864937001998603815219580252876982364970198242553176725654471561049925463708890530057278721338220361284282185101948951758794605831449257865429194600134883915894046100363092023476381853166901271421177554773380813030549980133327708463621300940846122849036698731457233988301952522584994907023870308843606099007424884553392644069706867337274462349217652916152594110235463418976924683975834488361492372369291080500674983366969479168801130680679416618374276041473336616960014388878838372089627319572238960801529008331511533713381099120463196953055887297640073799716759544429178030256717744755533270897467197887653766817450451855087533991339602490629717658769964338115324638411038806013641127332989760729690901879557465683281489306725553662733909461520998228249565800965842830665975953732209107303476791056478789120987844393056447581111950707602303289828089690210690438769059628299241057203049844139259982509092178152814762222589269110779496432076660409600543633672435479801679972053169453664759215603097260365684482820707544903140197350315538946619518076925584415359104918813566366792616759658602625873006450209144972326365000108346371724411901221749376013567537621137042897395253163588595161416593584624399551759091449049734041274264114525611052609370446810528358876385405679595793885660014496066812902168476141586116919234980426570161305318775520694415597783862484695045406140198801412348143733182981887285903839327597998560554913562242078205543741607235151181881978688771453145567086481406443061474699395416612878316571509791844914775681963020355612959233782076472228322215739180066956371721772670811008289316315082742314903018975879190894940593545541119359341192014052822041592637640993842278498969831845875755982703626012089676601087366596457935743411405236950957563603027344935567260210607353929335432213198350669892573983438906811897984856690127901580559963151768304876932636435260664251849829970372598067329252270901540895975964876749175223735891880865764636375199610572796214209372657032972888538569949580763377441430375688970512149531063209400693939560663055386555460178992022230194706630124223258669309049590631580305013165564742936471481520018210269258367397962440468892886591466777101138296610051374422136645471575038191869111892107947249141649387241983105579835869777070477918214996430638994265499402737419680893422611469018556836777603733595016583826749990432379725237015073804591497541452062094378455947855339365143693244395365753199242296304236579042338646675673593705297711995480917834783677527479972523709462698264641762365227645881368674634555948811043859182562008951620763410038660219149129332479646047510039812287004451511056865588578260294705062056450566252083822002561959159433221674976859308716875898495790882491688033325946436379292942410298323905211392362010868526251882836172515796051492650442411324445679723591460311033913670876330862075243801380752651936416136904422362538314312851915536381535124379851284390990374867345033541609032653129073466932492985449115760296886640818888937532976973242391381141379381734861433281137456491350803789646344349609423410239492081024067832690595328674633530717564557621900886610963493976282113419366090051117918065984754392797823083190474688542580759481354158123073489256742246051712228092644224400381120065000277780375790627981153622126647810340852170797598949987174057814491328976557405322580279512676177118419999105291759364475866258981244580159381028578955226574743077616140496423167126729402775781845846102433929741016851710422231615387100924324668444797557662109872758943989696071225445523021346214674457435969035627599954310941292069689969374725411514990670513799434100585981391190238283360031505460416009167278900981836268413434766345707622138032276511484787333767147209425478215831120076258716686967346783225589011894351590670937713172974553138475024125095186985947782795259378591734689413486448215332538767882812093387191679643551693129384047498941563236379293380539870460062287326841987967177732961363399360558523859731058201444764203470327458231299121207112454893735718222946597873086513655535716120048587641578731842186166327601006789570042162551816291653367176284637124509679380156349815995654978504943877111457891850412760338630278455441680104575551513606975912805650699451889017566699828070187182502662915155060030604076754344655257051820068972634357763263628299556387395409316287708753824775488134947492352484715790381144748412511281913049196292152908667244818586002011740269124002131967062466176359200749531147015925881800504877732725980072987340952956958475873976887090553578033727674135869069464962994215080380574319542155043422327347930755584186931607943343691660030350217016114417592976652577881675549518074649689825739080156700595397596663422913306404152633628844859383600573609126649788444451046436665350583356531672176913736334164034088463764442771857600628699525534234470668964220363995979459115591205834128466589475123800918091529633281393968549731673499487249459848622589195845691270342589772879908147092187676859646074975314757698067865499168845986909366014846022820205228603905733420903957753622391152690575008567480144168155409312834713801943996014670425021499543870301084465119316060232524316640693429344368489543177347162980880361023142176107885188481459632663703278391745758416354122362657897799038193934834364409266863771573949937025244441040661373312748890857401769043049551540206867153044880581905251545788103875177785380354625644351676116974378470641666287460282282923280804409764930406711887794196474564106371309194991151551659671154346298990963414106048376199260241928336176132960817451745754127673163877043230783756048112044017538481448879113272614699942626710908916398636671794083197781699391619551591986319367330872471595123890266283194006295402115085198465109167421537064302711320209248004676807891577367267656829532877825374908720839918555385488435138855310932374056507208957829445710667437995666411388886362230736404379810209719525586608296347587919301267364253517874303147083996418269992783, 1541078211836592343156647209278457454350487401959941757933604052284206551050701746638851117095100863297749127163951100935596372718451992250255360379016397483599842762499037796297473020552431473314033723414445274405692725047125040729538835643284433769998250395808462095697292392283994022511910198358249100488479204222671762675091613930869057187316591648829112971656509344839807524661962605062923415426043785011783223537509554519042811048240052474050920506514197856809159512606920025601905097783704386942604618795134878267620961732677757740466162891630899566949401330475407898243538599376087150954584554639460272023875297463405900113474500552375889366607286134862506842446385552738054581469761647289444626335698113530458381199305643845377663317865404526680747614373236207990841958934980756266791964132103022783465287322726733703059287996232221612881134869009782884358963136048140476968608028962998232544770558671555533334418332464273083373812946914020581075824010132780524788687323277850551300646495509112984740724941300099590456488093693051361297328150451540905079258008543234318920005233159495499620927511095063842354465566461080614631311783590831741377790891234063734391768321883403433069864947383181286260607902615408302517970009406770408769033689371966417488848257448787329973236840803100463117642605925989120108415896972853101574288062328128598191365510694829479085175040942238771228262380372122498774998377967152866362973152701069483965737390366674123315811995952211982232567317691934649548812071041505326907883164157252748006531798656306937750338107214081621623434712930339419011719795145328561683779502806791646430580650658502977812969363022698470212521533176909738628217871000894520331141331210020601427016206229003547574217165184148028172824722274760073749308086653914134606454120561227838730849854062915396089257957351532734201794510833056161010204770948471302756497917591199618167949118272126848190372890727205769318449839589766271698214963642076132747686224444788560034592162055974252441051338597696893436965930629882468220526984751145152916710267838771596559529696537772948836154408339388858832694414641319299366803015123314617817699004650079604321925806676984307202436995724728540342052340074824363602930845507072114258611030116280884969671476647341886377901310353379698167517067327721390588225146153777509311383505826878748653025982495195340741907733666999682548306794378327344357572555840119045818446751327991390629076214181159144171934315548518005714014043339391199884029841257512353804539715761732528103636944781326990501176959606966387884504603131048303186966198139983803045675692884605178561883665892799365690302770854280938311619015955813073721988742085989211691079027128518283368823416653965199778694884426257174152777180131905219600250043106431987924291090606717871280238818473853038760791560080940245714018582345425221120132865129714249738240563477393525192087858114041399903945367444699941791107787583875478024428152545363738585317720023152423617201303875247680581445623666710652971448223688795015560278948649828049846004279094788852799094259527925286996870242997791747274860947873577513109547738223381265088483427422807294124492397610870061536861788370136501570322811417216627419180994317668291843092872920295938971503669821241646769244372046858945805812505043002777429345050858154172974840905174616144213076387210590019198085370523812886986738917678391729558751853629610112771569878505007680624650793409674120278846871449315377107160140712795102004284619514904103197447948319450290958320423262065175291486835862302758914303230665281750096938903211803333102987788521990428803400910077868679635524591797335939563365540962486705659764482546852710702107838628697214722178463360008365125431826690515544265219779905760493110631184286405375610040046492540884639352710255441184844229794451499967056639994169076128726041919902693288116920969929456539445856250926001293564677592441459330804288229948867525402546454752250819920810622241734311887935724832021346938616958889302124325377331722498794831641910534507480546596931931068955048036834482919816507227291379371565240706034030355461211079285828928152989080733041925909532760085366362350937704030998739870192252522663250253660217688326845199119641538636981268122005811320507759532193522626628091605705184581211516043070846686700676486709146910272583407895909407242523936474934967553534817996667382548063710508290992222567992438136742083705803177397443847155613291069556970751444637938344297715150485991073635430137485992518253983982216522143742270486358640328951847368329163368332482344581826957454820304867993582232291609941758335058708250777515091593818121527613471854027062021425993817370755464582995262863043209383241308788674202483433281616125773104185753485004583816722147224365889994926944348885462794976440334523962897023614586955386539896138588233751095355399087587171629339479039297796350063195286222269983509261628177493738792795368116250564573162400784125129925801730432817465205328811027391477926433205337812006610020978441562792215855572845809716127882747823324899362459588769729647871344329460888255164095951836260106051793591096038190320579801801458319197183632899085373511909924462364464319104191919926524961812962813044020538824199578596157242172666003740494334464523806489100157899046546085559978372637163547801958430987622887849738306398752347017807456400323920867849893346890459040325055137076876348052904825820832960071662815648240672830038398297176837223718718088616941887027388533561510961944642742720385159786604513012496380955238033717420619215773847694028528558713934625659084251656094176991098516224010518817759161849855998507814945750673568920806686861098859837807637310608216284817422944314545395977122414145387496022232307801949981599262332773019795295883752252869455308780905874000673824896388038384702829775425633355228857552640165281605111272754559446386807901829456014307290759515213960295001514119096394131350184008415515078071900516287058965005725970735711570483654234316217671281853113925792500587725217608114316377527406009091102034161444093441154416977984569863739736395558539093023628021859687507537797264829466561961226394646212137051591164210682088860353850299136642468123882515002772060980470035535118040168307917167447949227128335397164114029858007190478529600747661060818395582261730117180188410129844513852776596688405815649255501307039801097913069823566520457121050999157808657295183767508176412226462487719303617455521600579115489069185390097643369743451519466394442406989251202746122111740777756169512927262039265572811806123771130150664831545580704093270354849613775713429035715343985004034074875787482661616076843156374906653574571507725289804196042418283836280873319911301234546570292068228855263212477772554555911539287212061541893792958757114708956250116174900211832567398540182799853324594666710494472919978280626877629321760312248864470465601097058019725461836557298700425364563070114180646558230816699940435523645581310524433066796071268061508300309984487222076637103933656667811114256585674636735786734245521511656831354946160464675221457269559781914318419419488229692778232262584011202383728346145314735132636186467471551747421439759337641212083414358122408832218241191280580779989167247424611335183694047542804147039272648031822011670997001022292355427196979800649382274619699238688000651622201960609855761367386996102240744837066592220447718854998896914203406198233486922943571178935655059464296024568419291413048888244909192383645573938667314689027834546519942844343272651839150549793567794401924754089229974670027490103020909457495348404929903271283653554559673179322378688292735595070006563720365182926314609228923542446411994869278785326891981180976914678760866045772096021324707978651748721791480254407413998780352410065914568111081571300008211575465844978309055750530268875672443298690560342827533329430098976540192017121990581650740378829726754503216973416470007235620195637856962405803241831512510952046522822012348100988604284946129831254961222155912773791470809276660683084334074661872829036314429625746771352985710127423300085474694390034075405603300806211486616240717053000659141519574464037460680742735615893405207849395789312660864375434736610951887822052794855417544292921684978919534589665816507765123444887618932575156812840298959679238247156505611714220110475815990026983103395220898763141263156313024228824667640695023217863854969626887488563176576556388847135748906646234859915862513724042410260340916914709000562234934165644725482526214380900003754163079190571389599806031980957705528964968986929645786689579056479551445500774393925266008809743799005619756731670669835763190875237097101951436705299536245133113074845244705226685536677647649816820270297525642438442154768886398858220359756391384177866106859137392633974325475243136217982010770526401852729106283323417928380397737331883506481330601201696189682620640204054785181442233431120833259035772865305333915382550778545776514065526024779917230212181339627937107626947864234522432644355090109882029863353335418831063703387838924800858472924624777252990855398359831689191462956562097942714784346649882336484630402931734178285930265575957215422870238142010947919945233078510922287347483196511588640742815656773991890863449572936785563612747811098102858514785640245111884308692002443481783861400208615463407335845623618763781753179749713764663426597928017356903256979983583178346544405221114035993237809993940279692953097845319075922534914454342602498013430706363159249183901928880294643719585251195266477055541258246340144534568786688573110706865816863441930258126984348060326387793833808345966099791975744096648803247280037077575769317626843489812220233340234342587910605516877460744772737995751958496399946786784379795128505161663717149072362611038397352313906422591153985517046734743156860985911760143658494531762584795321787659427164744593995543691986810618286766959636639837889489008642048051523131364773436170569991192150486582682423625786892628212918336835073137612655608402860780352473554391548426684953019333089528513918178927533687306879408948069259120663959975905510405025865572480174185421539523571486949507156651818973031023356510737401008357331316864872181827787359870684323288043191823214791720084764221298190319758906861678436032285474831093538337821326275811916611812420946643784383031393426692452412798830200702401796430848420357540525308317236793224906404415390413775435568945151532116313846230638245612171063958019259514707913548416083233922925497817399765896390660003403614615536539245129506226218694663688063785131496030820195154217139297754014820225222906508814655893209159071369419232049830720387316918074506467325924655683064910770822667415150858960614239163799132231408564067035238650857601364700107782302022225982798552189853174905871316854043195128028304203801038966252510068744763683060082591712983094317215832345823528846891797592889291217283318559468121134222698275606547016525022461739860553775380467842227354500278453763492089307720370408713113807949532483624554058066189599604038855042656136691949191726507184154727650838539525028067471517190192733754989042411267787126534435216448092741052375629093766854387572889505997367148675479820996788772056640430748781227789787563102363791777321990561045407424968556406369476488509496342136088686139124572701774229302044624151618527213738297881642124627240507554823645320842841557059592114850619555364800328625965938558493970921449540174643333402241108441778957216987283418215518264795057194424300987088918048520772699357104793509567259501648650400702642964842005451610160780431101589706398871319145889322614454684612858215738839035216363536636470810987526703165834931636140808195405968221743460988354617308380873059882963122647843711526240067367435607614017732559152431571408346468079541057218905696503394366345353690736803966274240491941417026081526213528368020229607961197828009574042900133462702788163929577913542600209783294239867499618012791486727807758741930380378804025948479108671698990933697916071921231465722042422057116890423758530421624353683733245259393962808373907262186949598592657313076635027379449582470975125435895944246797250733255990890983830690916329376169605072762529796450960540956377928417369250146690199323221932160976899370542688812641666529965945855458568696397573213126573183883667165645975102189301289700006589624069454713848084611786569740889714684521564995947326763945832257225331960619396311082284482007484248285771804324483182276899812544910425721974137640237032532341592061063659346994214193969525462826372724961273969773236245596726584097271309259657905120794949177644415639307650640367575719851580484577688215930122339641981254901059028840871922100475870466772532451541958861215616400031477628843973852779589701545132226730594833951152945016318483491511156191664213251566372087958941292185777760577061231800023692751201840226671429090311005122316053441061061341813136051264376224865814152322984175796952877602899344770029037842340239196773499412186987274491191523870974634398836835603808382501549933276801040930904805335488100907466961604173363976884012137289723739729000671561343592408284627490583320447112070791107621838914736409697460093387853289454503215340908588422636107902895824818440027123011018976073962809765894450625873047956241190648996579128328720213147140410227269935281551215041877260810667982926170503983312461360383679887429473865761568789346405885424910095940797163200127267091666184002956362496586534908127726482780317943992756002665836006323254402298304297957126009271224607642143956781150655072518296108882893277583275901126827072717368366117551569180502622418064177789006165038723015544189855713042237715647832977069940722356853391761570744360604940252057356939920276311159158119648570502267141447949707974508112182319288193279824014934833606924458811321640557552668391394548368066886976166904931717957836286786354487119506944510781489892094227407830378872516324807647349095431556754347666418711670358302306491224870809682271363320001573933872741935379838636578643359796753647881514367720276769050016408851421370410214197079157305639108615236766660257443355082405036274259194300000002001864984897120255388293052404916536722344966103694140856294637504598389996498529419113864999877904749542620020206744038042820010652425392672830159522708446527093380183890511915250121879969011408922387983561295077433342168795152834334229652092657550127378509814043515067250772126199192538818851719537479278298271829991851134507110642304962838816005624350795058114582218303850274798955249409053467968252870590003241710378560027461293845826021005914197512013774045747274314780154711100491378063010705655991337504695175231636812308304183693301462296081543581923962762612630286542516192498238063437441535440475044510702193489599206859045442591647935705622040210320944354488084321190445504474419509045991895747759872716834583175575994560492807794298677795672592686236443604579068148937982386224710621334590241831952921991171929875952755869559551831129974624557239279168851961788332916117328533784750778814150495571078676891582054266180732315766405852040408825260637080298784811896854261181116273666031142691969040377498472137519963371922084153588685188406300287087692732180930032615610937169087896258978111691187285126269529494719241391910267201443094437393221786954960972950366017704907013651981295928409397821961669728435171746104099760492221643907143257997562581321852751362529419865634489171352133730907610614343312357070811449920432998242633732655355747153719129077936836786053579112929226294577232155743177262307338053579502442769080573280902312048138465646536266876529694860983718140234148933855979711710117395774923933649801928225653794625149776203565466740918793343393226850307891220056496315018552429177723432560061504724670189133206907107166620260236407104769585106010895321965449568337622153200991119122456435613111584996767089249640716292583611808563800143332921713385305415485618888642276199178132972408059292003269311196798137468666920689697358150948775100615178278301139063675830617577763970824612179394621968183773676229983842526143088564382382052070150529997449984639473110787780468177741230881607448793079526760046688678797251696716586122867627529604613921777476242635053856042590944824929943355761087932137079022667209931481383562914331943369080537947649093834871605730850918217153287062998599981008685380164093469775737222153555103789777306411612014682461616211795662559025121483940133465878494977794988946063253674088438583425484980838794946919573738593393745856064807583873094355618428860501583027523329644231974679604697774039012799109083348452907928493013421783657273378224471689335245989747110230115934274758835429050591185542553766464444126271682386240162712714035297965882087666676468854513561934444317854566931195980348863671668376259752467990745050234841207157805331837088784259354256703686871323579604174535040101255832498699442302215931636072066574511446980798208955551392437810107813649725950730362917570461186919667288795351140533866901264806177642435116331265613144652548331686632168754156245615199838329138797303350832675263890025937672295258274500549252087119164123912728774038574644440360002819028216943567005793440641168610726477633820575908535184100888861240388089318617837833140952730554039481445426477603129190238250947492142875263214269395880322458385024774228278572531084162784810330737156297407075256649648669141256833173518709659524902805318627261508760765212880243587383938074666000195019977896867752860982545435989934169790425236380344223661517706014464809813898627801315580603907787363461437948886947833340873987762939432297785352650891851209292437616634895852207764189547197615408404893693727272046309184082207281816173947243502255429680499704091914181167152414017163044353791914461220229825325530826942124928733315158708566936057504605956886594610077771464867008259608537885530684264713139658258616422789574583363707782301833348911778679984754654748920709645302647241716161668313910391298966338439366428163362205208842020713985348790557722453896735396574916555340482461013908160703949557776970671569587998775754463257134968268562158048070832522842149653296582453447437689911753903831639469500304033135338486428779482553038481643631385921967140538812452315329299518509883881606496587886889348442039487378179278199214866147523750934657077093860639651976837496436988795079391081144135124053262968505567269066007168870909542860726872502220447267905048014117044580863293195280316068245243192993539180170722951363003717645014381264540500798736534618486602440006864369612117122642677252995232763601792555928583145262100489643626551202005297553906622039332098005206752726555343937345660844679808028999976693575756605231474408703866079600027008153377848175917954339015539079455321435401547179973967670119490654868087185186793550024100290995482766148680246031105456304308031744891173155997371954713552444325616203689764743115453760914931117596429275335634111034598086432707589631405989779036809218261171760700736835613227561520667593392181913190775727173063542101812477216469330234244038267128680596208883839021154710287488213491513053178701374150851849566191965707980541911298096247177645565204656458050326343712670179927021242365182117946427391882487738500769209052148720506537799778414666681306513062536806806387710573476476024110234864105768852300071358217054752654873030718803199997150774848664240045152375959627953910539981174510910919642444580467898730694115762290786840167416279301923915031205903174876179273835082128017264276019037688568718341796581625142172579253001642103731495732560899434763987321433314132306689453265845816698454015506115962117132979186983426719653779123662647917641992448107217432728837047692099932125432571793173426485026474318330273149064324120168877521326859975739764642634017622586440627370920340579022669401039985542833216243331392953100405110051358653327412205522310500565754919538216113801479955094466539692959967701784373399507396760071820146959816233332377762597266419453259765893274934264758666813743965680322969463402987915479448154196653116127481840400994766649376092876201590923991749981544834055235728871427788353913069809467216478044391631511130759646044507178490168332196610111812027839439234907275528270265480426494547809410514566747284934706078144344407927641418931248753064552831431133542465092187537796715352529159937317626915403826733479459908700116902139758987992345741112893645633016907931950984318971366940468039403452263902459475012826131404436560049443214309865330449095988062803237980650970213668566302656742732360313081468300568563956580930523024089255703246424768541397655880000002094522194638613219292690396543564922068158743216506578419215307584336950385547261885896641402039816579486856258889763409609082985027871713101106574013987044632636047460770105867299150423280547301340344364247626709391487587937083385696722235891383653752080467490908981133595501328081852108357551410226886627632475037624910460363345321196650253635722231511311352907397797888324430890475413601493447803941991390167164385330621874323385516277220161073547839927843736926928050555901298325488244743920114266804281486922995492597675409488580444753848503501630892531558911673655612921756490681775300370304447191089228871529750673599004020726549089629505639074621886613667836500409178797957710514860621157804382649928829408956020068658918829046865314569046825700664630781145208597677157426856510179192281219619806917397858268527249602610467704133235294426591496198721168477771444487305063953344652861062967648231117042996356538171659563761798675218660736595000238167672957074624445265773624366751513577467905204038686258621141094393006011203972229574956539629204356944926898329194739785891149522408327102358915975730280679387525174534314450891329697958354616128481959371655088685618434535496394801339058211387577823115975587282444186654107461089350209170279887415446803672323040990955229675810880990104967277710161527558746216876882068656131779676072118466360650884768548528882652397303681198811944879119378864982823946754527135311175350938326907608788848893637318917682800404235730872691704978747482567038642365311251240361931624024698602727429854162206207084950232028673359101226972052246707448036391605199379552050299122766136219206186871657146061736183923067233501767367273491617940923847819423875423633084562246515941506426220792851198119951161145836680291788203767685231463026973650580566849977003385227311504223003461157727725381979003915253657822278166860910855010492533416107104941248162135306885283298985989478065776854961522530747325493814557734585486251753962895879397468865793792829289798131281912604946751758143280911447809375221668945625404246318890100841920453382062195008183525103906693069554658797104767659966748872559572791301470648885600690867482158180521059505455109652382882127269287266112408659056674554188545888966545782797660003723396788046533356545759813925691725057296136707787446540932109871896663347671251650375793139657074736028510668238745739266572274695397673791416789289905138562924542840419470624150745108626743546259355897037612566313680567332791655244021146486147534095639463680149626485145742148801148729861747297260634498094908729569489646001833879202332128269100714352455957588645746066907483720568694333773614433647925985777734200454485934542650669908683333410990922547761280756206321038147597466266251333068934165729198947617406574022957234938510127361422104721873753615900755711424553305712194795859084052777331318956778610918878200802585456955599523588786156078394676341998492748231191699550844784051206362069684894334603260892725228865670391701612852921748240056390562110160874441154057791115928984133226993891486112035267222203787299708016751959124542679620997920691080254194612780912916830221366238124405151157322065904995595644824075438127257480314640057770430019622460144550713165147903036791198419485860700547064830710110193117343208525331273431835851466399034104237393560535192123334793886472342163796232279589729963470975724657318365077861626860623460363049463076978413651968416300166300678831448447888453096712400022973348380386620074374758805423592679849277813020177348926484009496200592593005135232624229946312376336898945423113995313537216255573580737534901460083995636924259841984888273209660972683979024156513421968637640895902176722285814549598227313062848872339627097621066522064815214875575709114090310371050838762878094896733870785711165620308128668621011098133559667237684347769988576501442379586424138354778857562781668958212279798407226062701190544613844601853679495059468894107499536099036761890527769618411803462402957891878454392429619278486871184715409406357041846049963256100675254410291087689057380657727180820024374279810832040500901427636447920062596390222089639171592332476755356243868240637862640898138953928213985100278088155835437717378151405107283827320990916143409058551940162787775078319152252166556924972059181678728921758770434809761855609631098449323327875634699940558333357921734900452809351738437264018556736094007867635975116073829629329693703008274049850781899588152856458100138702759562351208652677762498481856257697583979407305573139916005369836890931804377437655641074444597915841819872343475594880760663199060381045014235154379050422439517488081865222686233054725568467452193107623362180387107780754364394250372512739932994473837217985206301379981931250460157428564332896025270913165647401983219365998274308055018048077170461232493618605659184801129440904496957369130342274026640533652170398419079132318457534820011308618607098128819298397610053699126066527195470169687632573492622478962675836537630299806401640342611464715342593585392935146486547641480345697611038904061116887706955095638678907002531474719476961682537833346465759752492717614458985074218600933157961885302828007565825511216447999183097095213956408924958152426063158320650558375043711563027223069939383447400307892514084455794163962122015436117538129576818683559306714955374828332511599294916888298437637218043545176232958143244077665641215334945243950358213112073010068434627300676282770885401113242349000907645504284440132999257216619007555894115364012954065386575058131678384566007615221343730119212073560725948754498104031774088451290927252895171613832773496883260008634527034232494791316714598387134647293884572422959324148870978498203774489629675023849431712399022118970964675928676805480180917519697933738816989177012938198214463548659366761150015404541950733362984742869992979776309663902916556526613618955702843441044098147902216482506078006476365680680068306024243929208382097813605479715843721179067708625543315029768692779158587874159115923112762956676745592996949071098053782763576512010957614530842004176925342975167967813803613272347960360097680170729498112976887947600001153509503496853259697218097104247385215399624188998085764071366533065926789329411843162681361703892198908933918606466150096173007468610490993877232476452838305003908501706627737029647043847224439199511890897913475211133781908340696853745200047328641802096259513886642652139305857653967208136466939074906918240404732061217318469631496190707421934421618219245503964298191888413513601723599477293686925637869293983704741701176671285371612985276144360659901964398881183563099744504293993307566107361320678391284575206844223874999328300432303696636394616751609325280499355593030271485489258642284739128003503340423513874661604544779808541929700404701790765398948407789627446409060161433881687376950639039684962113327202040522142469559831488361424310150858280452270958725515631161577664935668009875691010966704965500848569202868986274782053935254964465802016459949309085155623349898485692242689890927278235512454317756240129876451353522188102254990257697895333253543201819967600833775935035166277167091220154400859455727924212314724405579358086464194571226863251628365190953832576818766239094033077849090550734900204630450756799186081334355258676858334013610702544450280728154089890882660064618880627230392423635892826916433585946288187908465252646963295942114409984206499048395788881826915375711716493187096588977588515600584654097483760535349021882623984973729120159502194119529406751433703344538291857637215578386270691441895984277465361738862869252338668548405407546094603173138549546150702468691860332667919810606303371693186980456708309338542644568943937913364336749231939289227471743597954100833157676272128638139888627549913835128763961948327193545680120454528192507561136062201066943786335452957846566317636029537145219968473863191606241808280886885176869557168740454941287981374208960159623572807932624635950741150432395617460477589228157516444353039048640595809186621446386798325792697746868245889797535025938329200952186690197085127352041117177366544293607560020305184825953986069074596944980873483096322304322525939782079637271860317632004910588869424454186015745789120414954893944398303973642624001632157600220525377881234230017933154210922246500725830646633002632516874816531721293238852085647215448846396890290502491023766240002009869975922548278760343905228508165711150555918258193005143278336703624703979759924631366085735084771152738829657590761534333239430123356203871549425249782608694704778455173181187553332268033540123394728754758965347648356204602670590988656085292580220011718239309730253136874137739335333840116919770284949818499754840502482106402561696379954956872034223119686329223901196997406946421785574354550239124936805336376889223037242161327194348759093137145491152395614997005923482236435800626496891785614803414547307165726011051077638508685932970753155802227163581369908346515767788524863655396586415595238685390991528934304096189534676960108425548762640353016105209708441472258646381918861577518316007116711136710702941331615355714695402497577000888902814992730554769247744045988263671742341975503284869427416452136887418596992596516178278641322278849881377672457676567424521119190475392171467990581166665123777610675263841343047177283629317513329388396456148721247631584385758404992282258104635149789143341889677180178000116998830665097331164780482411117748983991409867433903909888517424561316919033211495154536017327782621599107430367775229529923344188966086183782817735825582856510535293528910019731725502954245710416240515126805901465715405247274823755874751418623893453356332623134392430411383478784043848990006233193448820919352772049827534097864065553862457845125016975517103294457835656682535343385222419579377953155435040907561550634443791028205421111674520586164920537975918581193317243000457158693111882673154413333956403981594676893934447374774800719212486277725713163968956526901961907144943642392139012879999170611863100538464673290176524613783239983916592374500742217272134805179328555272726581977315524190212509001317968908318190174496208076030786937525298019714148504317332522137378069766011737124674298255513113492235549774003018282954692039775755553375789454572964857286870271245808422912854837136558732322855701353899598965288880407718708782604302722358804265264654730368738032487281082732121739032634669661848809309454952620914444072199003655551382622662178922133675823111565950237835948571751993859739632807811881680170637140467755490652902443687291271808657120271989219934897071281932978451892620719765983787933858009558917543262625074252919392254271646342755668437135309816554683907586522052472851493816917282968678971271504807001704424555077790028781929900528910337153234173476873918855444347146099080321792236337824667823597871499627067061806989175540664960735546557129469096050943250078816552045774522699047629131624881276759383456159205327626080123781642016933260047365733850469431833883784554498308048449698018482135982665686386991783455672828179855539774321073703407614778658360112402295391870021669308363182315447689549242980324114536815823773234000947742050374935619688354563224457363382784310049652472720279660564462772207009254376425564320299087436709681091380264240131834750949639493646840170676962398988918239349617164212657004202123765324188723398727155547592092766442934449676322287780154403034327623167032117068685605781113240290487804570437269774913806605403666205687414580575200808370410548917832751395886896370741764728960981844950169860236275288670322332515716371581280808516605228448532799703999262524730337997156592812234280274812847992135089266822569403039772911532035188250841777786226467862149979798278822437578511462887889919384911820895562931754142469504407524001062969203146755833913510090444590036111095648286036614222166492691192748010247451385641378946773838179070577028442624795503333427277037545835412005517375645399279195459036899373450955319553972139114204699590069962306690780040618846463720129622372651075738799015220688296922957716732396101506169041558312060776838546246162879516468273519654353146942476980384000786797275002486367858307903884874970666971850668543655048738924276727942843208423099338104804035600784716011190277086740777529856282796061042555587489838819616789341833790339448827733396636403141949997791350521946175477168187165109588696309485296797053784501719463978893528146893188060822499921973669525832803287393868766159609368498945580288680652386176878175650191911138104307860199275269667761980506507447529870378747513264235006784034330980976416272521028577492839188003263986740601170590263903447829459596976563227452709266881370707233732911327504230862176292368583747379782969102633618327290743053643585484736522452354835910153954697951263212016944775083096030532988653477120745314143830751795785148335110822187290629408999062690437903636482376737288791167018442631219869253962524206905267311953790271566063794914953111421357846375001613077137685121485095559926627711969403977633279305725474584327915501746303108001927925925127616878811613900177231625818672696588613190283186589366413781584967104084394509910815461684213745950127945539305757815138903736022524474695676633057734759589436851442951465622341040143469741399323953516132633551407285402455189910076443501291011395784088601842145972652426753484700118357239626706627261604661161340441952889371005365776602897683556088668045159121248366086792906438240667195673854909245044527439091387042975426134433250122764942637219558638096803194889057293258439872050888051137640632042021077567780190344693724385752071053271124014841095846531802894197707685546751573012285704707558846040824482182223730773272505451660101914661699342403094191546570906736542392146362878216918104587519774625726493483947649839118038943508894751804187599649113484618809684760402719199508985199999044865857781119190302784642595920943373357940053555802789379929391673637970070204525668017364053125614139595969510818975191570859481749019676717629541652676599143663039773033215078575484941357715371680897039664404051421542968461761872035842136363509757296596026584356866799293132252648727418042197323564477195140963822404191209842516467483646531655327110313270705941572012622107949387414924407082118922837433533846821692749865923521719990386296873816789945020752160097018140703755257722048236319749802509427206987273044851188794290555455766949100639041465090321315543575943126385757615187036132780587488347533889214065063589354944588807076303585629116310829328311653860089100871691547608229808502993382852916146510739384147009384077447974099396431340555995025508878430629685860537159618575106556514152758219525586693803737131175683336799209516503022603504753358526196848533269291023879324727289385202478511642313611536276918625549518846777032114146743512566210970671381854404060484002841278936720451800973238634436325094159923816394865880303041065544267501619234977520848541107772940344964739437453096112012683291556494447416172326677067842763363276235748214126628183056729972725271896324628144666462390680710294428836010571234538180999976613495328509259069779151338977021758253372435380878253941257260503431169933044986842335040470110772205260449074560427667885859196168348225155903507451549523761073898310450759546597970620075038645681056273479017778412723840180788668607421727294855389832820875486062352071725607614000497199063016920774914540122110639152672836230245565486911197188861681138348628676807240275612426925707596058452712858884300336437671197359730086913403334478888585100468598234419420674658163414268190039983136091397128277309185602128843240183189467174098617930432510027641901128493109756873290124132232606128625684208136665003633962345246924582884986952960802419183221213999102544070059558242963487161403151129871413242988235009058208419317693849992181905432289923091156500873734745164970138850564632128384298626743273616654436548603251362864668875377378342603267748016258223593302758254057862941537848776563571983021191018187322367422293430208609394361349338495854901556936010939078181081485461689294393292699353581529805556805569599116037395773613114699290016771672191510008869543613951942571791097804430409947252402668556746705505184276815097745131722866445756386746575241677927064513025533492678772961678392397838093439118934772141192885805280900755501790243396838671207662604481335490829197582312165020992504440944556301906203833607780187190778705609755257363917620067216324180773751376207507780044482377565086320609522092893302291731235992083313900718133533339348686115449841893890023834903685591120203148192457532062130251781067144280661823573803144418054570446918100448720218725819212610945257786643965687301757171110251132393218392017077572548967444253488810622460736572876263494666196964183705319657925770587096329780856392044050713407008715883275993178233287996817035317948466100521763726209130312937576098746486995549341209639198849332105964233189328512353769627044073577266512541970239584054170998304503614178148522025092426082070412009651254451153437702241884456909493703606300406546181256538448364794482512996071529935557658286460836283846465001922616686747975267464214377920218090224448306316770800260051675785393302732612201787231096846521397744283134954069227873470548790428620110980272695531715585091282341268952242022271178298755730854230451933016489967153703501485265440455617160530336100349300690308022795130848075839861178981371217025767028205023997064315782995769318460241448726729047839860722223880504428785788147752282785266371482388444354714016734457672522840996160208504531311435479426401630839671051947747717648939942350906052163924490416029719547715754731982860536981709311038248099876359930010684917900839382510433242879907780130776624171822932882562337928423474404385541584689914449890735482294926678415598028053857735770125398992873894383159804782613927224440026521638429352097725404701645610241460144917832551707323727846467316223236496136697595884723883480125038485514554184754037921489617582559352556521432698239435436609073047974692240476874810261445584334067964122506605047140365560956858673093209558769917407066249946453607341383772283875341574571982004468623238927014295651715257453596147956846685883432549419675673505533221518203906985147510433820708415889038091826551491581040751971739375926731278354992658727375203063819206189890016221345440848644624068017433320385543365178693796996015611939559280469203992492838128631726493152374958090199887096880259566650174653053095561318410296907719225641223037670458871638126655951025495480444546985763985300375484355342616130895881097453419814139963918158548029497052838924742206948357778527502160373053598951833540821736324747767570565292348807249172506965289108927608304335089055997289791162407488357666651154870126549696953326462534633215671823640956914045620982550470310013667906810659430638008038694334458987041356507161839261606388201981819420733168053964014837690794605055860300056890422222294174325157837577541446300263208535662504152507310548384149368712718615350980819989523863994762250782278928831534707779595082673867842225048788541826722077573138289655635820924822009556373106297908234975728604441512522668224215622412244728585942347415990653954479938363330763842884880088756714100228264809408062441949414364894468659924054522200711665455164804488731688014387707423303843318858858556701334457158371364273341304960282464994645512021932823718123725872815728439340058159969028346465708562586929008906871558017812776365842620449692612641594924305204164848566436584825165648414185129548239953100181857258799715217952438293098669496314449471647261517541952578086665534951061570377082104580274943095116176845221772212589178097904843353069795438338334829351827206957013950205674372975407854651963383101336258228260536082571388374027617783086012581303108297515284264607956935137683146480688883878054919116274177245093907317765204509373335479039292995763604432882021607049664159374763873674909976036706205391477898417207281585886600968134914037782878918555345093060443025333840156366469874645615950921860010451185038165445038783599198577304585727471299150177196633614567133623873246573225388294814127845589064240733930461884131498247117923301571761556872006683711817100942489837952672207509824787644958766311650297323935579512503966668519557140456249235297578161049645474966615844941585291788181037220061075411303461653178810682678720207666850388097947917078200345501399635029354580756480862550000915261400581216917209573647152419196956474481586121742473292735724927288593508850341753904539661689076427242803802537018915398613742986833133234967666352273750233640037309576740659653308875140846361188911527875003720228718352800000273964182568817173661447997767489511053727056306530191891166516344800112524925496917695755020686329877258223164318724953054702428104852513543332040336239574993928311628143897335672491196113246895023247564477458168531275977883761009631668069453637890096935063954671433557254406416935439431406132210182404266106257742058737818987628718091519444224245268424292606273259532601486808406451438056770156642336105181694048987056951043565769579532344971617489780368716384283977785867427029701832588307049892988992099564183992093503129275956961657718151707332700359144990585272528106418869671543352064357896950679968130055689591237726649181063861459355447573325470397989422925903929932624207857087270227719020481504884738635358990530450721558724439734973928926348734985121304151294031716052056699612524922096735260419701807129402438685911392652861169447998505522672699122438333372629383803310783778242161173562467609565811964115142407019492630181742909368600711480219129665499391153472158528193717704464404715205232284296494911072401813532992981850954864145915740316763899120305805109318463321502467553382275203258953715932064339883741857423945759107486581622896576324769823100231078991934228390053247973091287738595669003759681790601719547940402260689464416105242377283929978616009092455809278021880458716696171458829974568362775189615952592197526400753453999918342363700323630529270538999452630541267265887457311728154971061957146477029986809972518044623546258200340051518000098346985338569856334690214315657533120355473383693779270197535313529120991641304701772806022070222422450860741846187982431871168751039058081207606229278210101658970961287933493975705141607183569883372535779470821829464427015407733212954347397937359258252825470970133586097331009869948656972904757096254826951016736579329643556843789556643402420394193890089108782190508208965752769969539805643078855130679986516782905039063215818641281870166422940272343411861368421500335944195198648651276803578562740077268048540622493095907357349337659157825203646578830748231007835563496446651782252927603278836359499972400714192320317977510380258041778277882203966673084213340768913969034556802316249592613095540953074978916190112435621971102745477844333315391616953346107798637659887526310721716967367018782465744840494451060028131486669265652102185352948745052070229124588968630218106822716249459287911793638717276395921900308013567459524974827725819150781168445575049423782119124982000261597308805682873228913250145394739827960587979583350169957906361171297631653835914740392479802301911994368797435497668759488974907397851971459554108319317635225537844622216431462417868605818752532180024666772907667859005105830964643972430256737440031103670331913492871729322698970901765578595472532123449662532265788761872170915672082240794491288369530962036917691864719437484748823070471132020927929033548459429517264596588958645350499501447429010303996613913673675165540000757254440859196820360374532902671725716232595744854097922675132640323892705519122056787183965036086693444385987788406894008062004957233180411744684178814857802188747519215677897737426489977180108831077631614287284679341286791501748063648274671417762778650887354316688413836835072632645181464192606957162256238487725285973836701329506740870654644577780091756382816006239422093619867958524039392043104619534597072507937681736064558576153787609630780626120420309801205889308295803269814989711650708068772642655367451466870854181740758121142914640958068781383359242217412946056170202189249045587673710314337143598955310302279469085116136558133816554828665479649118548552810799886941811270716913815414788423148230933387281297570002881171932664994772716120154549190358920456809246992534809459033135181071954826597296399275990348786453080906118349695166954199577812692652276925752970101246197448780339105074754964790439222109908359999455134583372798395444012780510381445968120832581715844441030107697187164016670826955133002245416741985843721481537824457614924671615425098105743227760182006605381537613009974368884440149172267725190351930025899189981702477648312371295137620096376822851157886640141642379013492982955481392231957165148146237804848910440270955410489286711127361666678440847173611825282983081670309634743608081320872227698109451785183093237637358934983849133689004296976337768842633784214882980402970736304552300963074326733943363052553562517111607316456465069527883987862137066609658015016795487613974100946416374917194299963766836177013395838636311897367844732413758211000556600633189920791311923643435436585520626852766982480033811423900646935623286201105764488721551225821604277594167583597366353326146099159223880924100703244575127505837970228764071241917224097717088013433899673710364283635741486335893041636561024380847332285546716995041204487739908560219012652379766937568878578267768851255850977178571170266672909233198489140960092847643201816604403658121083635317451623232650230692100541425054548242841866087620719154511430903541522919793136740934005902822790717605552914948127698686513686055871091211159466967044991009189066012256216160132466085442037948112469073326449191507974185733170257098160429947847536960737927881257077416630084734469967741384640723052032241052841152647803712603458630026593087157262821038117087097181202500763218932597147062466596218288111525957105170196373780796378525294594814716236002241760346030112656766608124669165861675679508043891779639493637914283082415366870161122369585213035917613622563984519558297273435695373891120734666398155099166898433146031372209651839048104902007353641969986617622444047973562271771736804130763187864041926123191221751842015847492453649139380989052179285311732164010172126400634506257182985744781604909838201889124197439583204131506444058251515928568557286679631628842898482329119101876910617116429595256612294047329498658014189097756908105807302762808602902661461640444291278731351428222585351072352587919201122880400349911223245180023208079492588665760273104033128051732597811302455346672284702697511747022751900311803141629824895467462773275609621190301780781216499056745196736652708854628811549381470321714472811780469173433503172335582440075260987216481021163789578819168591736845254486029325255974853711072885512864392029358546323629499616652238536936485625263102146095239518757840116594861163855952225399918033765578282110770084646664184559109759714468771233826777559463725822914968139921965525364968789376600648993460851100058998386297120721132101945031866138348401029173137034708185885555570691141959916771504796538933637247615734851395823100575560880896494653413376073592602152855639677363188591947042296774098076608752547302761087342676376475381842252442619015208289920655200666723613206262252821212513874360343585631648362163046496354815192944026805368595147401026076734651102503869588220376636807762985343662329366962428647275681001937427496448515568688078896570118272217556351405812268970144192395195266458794335037626914803169045276096523748001507934141764622767486923651153107242016492413151489097920619856532789146178621165767908136096120955913230204465157323266716178303433821491786063216460335868882460881147699801165859073440876017231565094322990954982176738355407143670735808413562034794348283031994755340472390817282819070783437532691608343437205868455979635146275311421908861204295663964786226919712781270280682192990368089201030023387431494379624121109191674994828254612236909433349570205584589712716259628138976860894862806791340449904706533579797718084335950483182221672251577415507542351161496900425062019639489408348504436847262271170226522820986614266550793801381008129021204082132496229347520637861153915535962424232883554627224268833806145168678159802182714850835571750864867422718129665920684342755637594496398675471724560168355456353313732587755745888076854814979847699635328363113160587138196742732498679602358692715521903414813745628103801136967601388818044288018355552350060388493553953576504292929930821984439483545939088792702065833525332571080867426756358163389953776501331239395894455301406051369804617503542641578804523571729245633759674346684375802602477189264550514929299179650307326738475580390334873952510361993041965901152559662624431653119213179996558203733222903526827990560633740944846297488250063183509450420460558529373387560984761476200313738870210654917160203845290783134006492850734010950323688330834294868568541862153715825103481412958608046783092522620772635093411609621073505546412521112080680610218953380336263986748835910447261246968645959530627832893956092116306878771734720125777926621325941773000759690364520506765211388040951470088169117020380656946483941839402449157576015989294295344780711671870224010740326667654235003698949763095125056946015077772030159882749254661090433446981535773451782274163572765347433618466686791206638834010243401285252981969027620751711428983683561380268453442634660199623060673162406398285717715273314736395097774084366664892405878998064560014530095084591181379003744678130218004992474862937082768544810619500909077986194820525848174367752013014244254671317448924179991160774838669290271596319705856750529895549070881216563792150786458780069010041390654298358191327190267377581203145274042344990663187590068101918788625592167405619449514925375574055511392065072021734115395648086433943479568041460301897299509827984407661452289115198658289509712255744452713901364381234887878091614341008421110576584874689288207282128425440861178598891914843872665090270512232087788291774325661329335264671339921555742439268467820763480999544757221734401346433144847138661780660941084839120037194281722695979090296160712878717651110930231401044621902328976720078122757213428889009284698528862968678414508257931771013449929453396668421051615379136989108100718091400140284595107679058737903454584439832494638472943228953621872203969955086705961960712449072142818022001859651595783013416761411554599548970664720579892434184190188919433083794836862634741862579037114118605090208948172871336627571325359191525412918374856218227136443629636167523578563401339528302476602712585770469799141453368401431935530491127019332503033742666921585889014611331879164973790524257586496940597273665141425708992224954108939803989649468959896693773095837150451892477766764199522617252216142214867785271054944150641726696393955004308737894159306075639305854936049937103027191430134852332501663391642997420112736011159348533367973755034418028675485548398427744033936603789275062954156701704573110351868240995525919315818210684770731020160201366909724563935460599184570692824066684244660061593992968969027421181525554301123545881645529156867035130509276420394575474174281640568660889803488947226683804816873203163505682500994569804477968708121600294344427802314257704284451423364764654540379759171363376044988491197503557700070902173258208791980372145157798524543037503545563131572885686441064300293745917789948909396179203009605298925048292823013823742420376768518925258348172260333389202522192676498501811957135040783202426185797248977053703915038896541487390081505265117973408441945045140973027436478561151033596520138962911676376511095175092331507773924052245654185020527931684987365855394039130196299009847780214558469970422264790084797793741878335168801716968551955322100457532298439015909881390139421690378602559760934480903744223749697820716402169562911868472004697295363707158530078323106824430924096646084638472888536037594066937537869216253914229531490062895042089642989709915133700557232442624347084900971855358949025686834715781845885438381969713994037340538812550574648346864037162056062351096240681872748633629167991828263317190946159818286861587461169579417673981514756670484606809262824382449006376220781019840997623359605959283026994856221538424419422539592388188926917567126743417947530952138458662394843312689502428880201824754388144209072178874746370619941311271217771179061489462146023925115392637914017483349622839886157869966022967682352847312257138499856666831786543481288958124678543898719377582858716305191998760533496834508700716554022886298871228769739884122403136343340656172454013600627249666627815401912074658611354453022794455380346971296162918219045396146616132241756724382848031398519403066177611581986835259784133568076061243498709979321820231277069898546916167947701980752913000103920550781172955158655253468836443552272988265079247545698025057998724526022980876596545507864513714638653606468728571599227708891385479594158200075920698820980728691999012738072176632230114186214210733092090515190644187469201290850487557573315637742831064671013017853329316652159572701212745761103754642936854698755683277806286099730163249361208562342963791721607644184002264614851516308655639868935722635933435841325628141022992030573300506058711474133893039312660356923028206986272374212497546671767462110727349860769558505349695028759742050214436085302934624910746079198851979641487761968533068840977491778016652221011250985145987078759668708709246038143540639494337975198261188293067578260366677381266192098189947142468727540919123497004921875472147633950471396352286395262930219702134693225714111859537110502744295227815990742315753191500113985034982510815606881953011353255086702483866954422282996560432397141909534474543980836563568946463667579824048059128538207766958118194492118731713288002816640074490930488918007006472172783584406328207530220190301644725696449944654241203316478356703932793288234645145939494908387060313242328805888384075350545328259024813897580363979715829974149027479152260104300289629811544060973919921336321233356067491562790909915694549381718230145985025562867602975944702833538785005848752628780820812583618911527577790137615111820907914659986922499752757091309844680222355616713518858751052747474199416835267820393272076351549397845916657073171748889582373109047270809608877147093982720060599379942976059026972431877721637614681839966841065206720891962534183958559811636760746316191249500185975311714504259363501157730642251766344445143004515195312474799401590163245689586884757526152759896807284475888606776219875223441579816981288656357351067488942517777923953776474979835051512888966324575842322285419217446732002954506106361494724549845783524280529087298335666971686224429566058538179335671318098398302555053633660631078159968678884353369128078114357617240319751898676212144888055264302229296681728415680379044997177787698262936782100547823276562613081193233303902652122364313295328105989131980923253624925290449537384156315087665962241696711174524719051485648917675792716991944444231890925161123801544520083812949195280122670584595168184955512674212362283109527098943845539972694160465795449455851665719855470099121327029760034443905759722993109720275057671739603975734514149795059833025049453223681950018189051454647778073401532384319812908836087539961894681260109068190093840131815493069496616659442358968093276236506796296155214017401402266852577475261670188741311910490643136298022751800274703448132348688715047946783670950641193982744870892328724638600097170289135633592498397782828206976938385782952384540329768464936339297342220256623825603945423531233767117161391647754528678670496922167929291940500543352018625901803678047288360893128349469751078585373937930677235316798602134808525537539581071430804272437600364140124703945876314149939958423122122854646381781264310275291327941015654364431592039271738487791667980061370870339525251194184295335905194702389567166238058365619824380622659528762972892004684860590975487656113853643119822951169316910184837880218544215939755058029148483332282198787706411930707867770016372514600801056187655384582568101607061427931004917908073083274747788473935109540010195991665104393768674576849543031075135321483080369583833989555394306640877782564194837505864671493097539541233106280300243715925000046270756548752958059353147536878932151788476314230811218049237594834846582937273842697917322876623676805887774300066090927403888715738116044545399480822317372055605231159457760243412199265739366412149880003500811244124075268035572318691463931123692971149134121908988766416163489490318157692848153372955039020307158301280225616226616736556558988647239012425545230923045681149190387246436537772673623535734841128924045866894128934968020491755595969511637422670640078174115857158916506379568005277687985822837468989878989514974660532576726069068101547744110018551294528062805660661796423287446741503167571298429226600757490584867514904445978037022746973385425716412829174239161407904037971595486089867549960370376252013589688793874737071916968480293755338024707714107203278653137189100049706735543846290677324936429037207189790689099208241059046749691779027798934507919328238356575017938265626850209917067463791266581147684314969569175845035320648021996400782682595793008472247457900002462813294442898736432999273949609941613197906124818490016237623618613898302849286110399591692441779764172590323458616332887754925633066567927917491284318009741895950933624157708720893834384951937549155163061323832623999047030986086587852391245964984504163709333283188631413159464169288283487665872059134360062356358646960972879682786902458674513096793554994373177324466552423120848290381031003905915678800688833703981003903409041985302120330706859865269820142653172676962814133118083386669856512912652237257395773480176698094510690082164756310286959086708070804277519010290257573565368229861811238523602545563067070686153266574699236083728689152222541961589799135004189658759313514732965020238707011228025159188682777743757766421887441837922118333247105015949166963747761533066701127954175844593685488806074366223237959139933586416035733539653150321815812722807697850141026149079861343000565941281885692828529022258430036613848587415946194600166701064677633826478928232012891020850711679859629647537823175779477726262844640652918347327921746295985638140049439921024128472028209394354781956982865327733379989638556977588627962805647755522222089687964659233217685298659836420706180101378647905335915633227513439735511331559800748818159792006171386822616815012891451428068476812834283994422450539324714757376485765812146572064894618639064496678923219275029646342587434574801137316241699403556173678963056202630704014544438404466365279011214599334234193508343643558904975726506929223070370597138277443716210372703064742428863982210854216473090109431842921455212297459856041958222675128935960967750699913360525217309270657194774222000958856193538701749149048563998847340191300249788118010921746423979206549806122692356190123664948611205086361553920695071976523609658970032148104061743219560011001308305145116838000913787535552734974108592582665938230344440486536272289022737802942559781712032912833993404679569261556879652487268830369169656685268836408068538101986154540287362652576378159411222883743763326117410488953131969799668477494691929133846240798533858762564874548054974174135657351051524512501828169323545746683925318598965673139664800716539893018918275307130335572867544070810807157172378994728126270215995120551849821334054594508628802625292733719146437216856944905796287190810437668394717690621469598826429219826246570166688225593136464598921182927264328434370345475524698981963347668720770509828537712904119040023143186708632434302306829383252387158559017475897705869767594946349457532555937109638635224851717610799819894996887676855309858638403996752639174269283073145187433671765566462881248013602448895803668447843985698020201742319019438084338244078144668313733703246203363736112856426430485282658669044366933544414944383290281674251327207024194072363106861249819702911360087811397778982595824675081000606461673881109859524255249274469457747944284787337507532606781191662304201191498773070096535844407201848510862818506260693489701516444852456593061192708491363303936297560339886339732647422334984448625230267425586601726332989996723446957300428657870061771970346138271178772974027801461900411554796875304588859302639284259427998166566501941271971480978166392049457996201176126600340357310734083033258771526562051292647994058061170359562065545158181175280525700772450031045918852511881289972860248978030496253142891772824299323215396355449677710300369948970481922808825067972466380269912377770944960812505118537098921663328149273432918834876558442550654573718110259658141678118800095331928128643816274346299374174541870493388272335879417912481959162289504285183621758711061475319845779808470615166636302197859663798805854390332259344322882887348023960056058649704201933121116802832041831183880735789422092368617035394512487464040014523386194369707183160199318713670877453341655698494338522213627829415058408163091076768832153867131188658877504782067549215455302075429953125104095161336097315246348337959595033763604638083666446692163350070281513255730189189221487734991151578530333350776865880535430289953572676335085228093874793933881516717553323835536943526089440599051582957967556026189119155412482021678832246847571213561379873548801755695128158509188646642637916666547378143326705677067592711957147939606889443467038436106841304435111596272403510670971745626524273829116157112563400751077438581405541490050835000037981983277643694558507395173624071634639072861858091994238724973878144601073250747752792901389145320189038696290662207643102815936303953683234040465811601170384016106863398157834558538706859699800149409378904531597299752552670725188822942478625391141148906343765741353980109691751834664885582997961239712021595130179102703624726522936903195902234321838922759460153121025524928140443650619825091979010642489028881785060617719754160946489950095994665733317585364506370913051544922294570152844782777607609050754178226493030300206088772905117274933748554848452622628780249648323990584403631544516887302505654908515596319967513900779441823054432383667330517885162203940017099648036613624980016879189153014323838924486693086032172472554111684198196973359775494328300314026673351778747057944160293700697447577641866470027857203037922667286497955642774332795968702741811459933554256006007605706357031064512961632747814843367828383416014627442508226534484676074811240268196817513450333673321876829516729459190007832713880724499224773711567915691994657744007205291734887320503345880258369851311154140008548661673187468384113860886329300741721589328912743907084178489856749681022756360939072567119301776306845389820064369755570268718808130436902836646087501804843809846274791379472949776872661231259364087953335543971328258153438248434734262893842082901918046961200520828906067005855230929290995659459365145795145750215191546163095665562983563739382271915922516636479308035795962507587109061066024005455384118751584336904891372362180025558597292501473432021236294233010364407587606735031445875306402333102942289125991582529919809720392549296393887543204888531841671102169011678858935991030401192219626517353254917297921750891576856465796059722364510203966976983043374799374895989731463583356851715011331203716149135885677043952128376226027221135867245789624135239324468280991155059927911013873496105135641564404714397446673639300395449088571195048993687048109863508437724168416236405052252120137371182456685267851657700247596234274701163022164584572668924094494951733098121320499950279262220684013284248270621394229312570634976421089293612253379410174909053755636638910139820481996346823425528645283857362961226091573362262250390063668377962503384893888293928073864434710545547776840554803585660339126215243030463160284869706424992754916425812588305177697582032673179037269434279907194823513491088938150091496662340032349694862588693484136753416241972111954798955866779576764564230328183048838946685583079213223330053580721550884434016974374024739317670321244442395274116491339087435198332352799033346646920431081747233897966363886086572284453494054608142358861290022488967325501450110832814483616735422037162591251966040897337800072192554807876319777805784162122286339129661815547883596857726075200842494212286424961332273934890425576428869821415623740724643825162541588350415940337083054449397755142389714353263737391843281666232274199832210655788530953843797577840283961417735231305244852517871972323397638565078895398261372629049009381431243499238995222260605001490451496556437295305164019560838522061431794781749537399892039064433901189679583551234203814863955203735102622625075990318104541880626796609880559568777227792005866711511646021975263030041397545472966091832648587803177574639195342372030186968429079019127597392369335387296950673056744491137676455498657892900421308139204254990371888702796764399499204693155404326203640047430474818592361628471510142745855656338942096802937728176399176083868954316955286279416685908822424398644072086060449832182433012036157796794840915127153650946553313636787414495281282430458732421575633575008302303880460463512508896833599530286303286999460340827621056439165703270146517722279569548750267741241993829647640799213840608350924532994597769237917826394570540774831987608557953146263220352034177633431950073548765051080106074817091838774360786625909574927476533240722455193095739502223223901388802209483899672967647109045173553299429490999107669538672681757180361432370359467728486419054065708185180874519943528509885986182618345920403590272161237125274506285062377408759403967285963340755687767882046962616543533025337447714269314768474301067316076132495544717606665762935223831220917316903399581615813100686348907155199056509602321464043152134129248201163845809711836729644752406828573174477133586743295407942946887123815739766396424777293255634185644442570674280246841815651566859349329293984378706128890029912165759469697586589714294616842164657425992849419841371146954389138868657521793836335670692694849455555736148878645187981095600110197376384176396718325949151560989262081897197587535811267481597352102529889170285974208477195732027368427051909123443793920173119417405248620338428850526958878709997897885324293812284851445557458487838566234630983974630764251453045842833961671159868876845904856003520212191294653773135327131673870384599477271125125598251436220538693983069406101685560271428425880877986412939687356856428497154749332696296870024248205296100541872510480836394032530587464577691804363766223288748969639664431531773516785302882156660423752884167261481058998247281540495093015252584799211811679968600425617974835896164477318831134797845593331571368128506231738303589200715660431428449891571632201382474014307358291199666127261249341364949122405616361184506931079368066668400368860542058108185393993890660191476983848507097430472659701479119666774564669533639667236264239554153393201576551807605945071195715287298505170101331769224426501999191282469441576271228235172616065343742474581071885735484363524841950570964478951991837432025279660298824759819183006575439491473137973447314187890247210618429410188288140037305833364706719820715112121137014445161303993718994685014142497762112407479800395407610296468735025205003868001776461067594908436555693345791336462169374264405765760355462652181391027695485225572091782833732367457044655615777381835144670619100583797730755451670015179892104132067992852164275831323475828949357818618460037501974280257846535090140253687318250486274360334380568340593584704521329039074496300733128046454322597374208863665639180103860338528384564181752209421914520882658686306952778719236103002527551361633705356631782742361208505048699000189406537877628647235779046266060098649711661595646856949325081998826976330297100520104281041236552849659521561916982699927468583492373793660420445610773061230325497881262449007794792929719603516526802403744482160890470852307652002943760421701429280873969860342471594363931267994848363119628663908867210229471412342553518465101494787609374949336141835295091761853878220184387487849851065939428706978634561993063948558062332177962562880714282245882230053705785985254244913162862501597615023782017774012432631003007353733401079025859927306894477984474917891117526493321008412272118227164493130282343177073143205244006597189342118238594654345870959314024807303901638752474853161207471108788568067555610330853678311389784674387377858985406907045713409910946138980481996252491151916366665347819691523045590192776352971720013200046980583975310539481354182869509478213025948136702881310599170476939680451639169971606886297009008876134086301563699289247220273285049497517402699497409117743850871769566419790857940763777428660945145927697255183022644506760890467394699967226453148562223815625198584207900160347908829236952983964760866829075706568818352947124874105488625102167446301408136672120905247736423414452938585433145926819856309879529324218905298945047062654154316958504072937166860483157623865229634889478069046548760915476645804024520695259008122011808500150125957805054190793695861600659251334458149137286451693602612472187359681852489296030698821934407052451879550869947076390405717810382612890975090161367444234622073738873059036125495677998102578473468254785821326298145169186975156726021365284354537216539548367828023240458156254143959105932547099577231838664797785612188547901529024523114336856736001733852131019079090708060369136302425551332069210834879950734715227244381417958244059655171504675695192008042359568547763124841908477413391817910182048167310015542665292654912534056939480229072577419282067497687669858142960043329067576164705056064952673875618643453001404775206355449843006577971662598100124260466954841773121121972591208066319705164998034475936471482057437162202170005976498168825691128279522853610566860136909509327622926981554179081887840064726461002573951086288811544672092290169055473783419806143499586144452441670652442852005249709803050836462772741588066449096301609876341569891377232945095662162063689729620132200807106186133128915231981969275248047385539797110718806550328513849717156702671196008592920295087656679962948368257168095412392263361578157658978730998629710496839688662168768060630517222470643190368736818231586281912151076755195838856712187045890708117441827623928244410783733767076168482830569675006714478875724790003670426534119719791446092584015926868581672628192376720435549528117683421724960813606466943185884648724343529169878498348941279304803478157725662757734600313867760476329265898877181231182760368418887039642037139048041342226079874204941546293778745101633329851559120332450048309270863701169965733093589268635549841749440362406976667691708852188992179149718016449479175297573538955413828120704865419578820178182285016189625948581021766826062538209084214242685946647521436687969554019808232065148126521828204607021112489380575922417539731604765969425664688601510157998716055950439848262753095551725260202818993633895726164636925431597302513842349328198428234143710153372424391222803812618585637278898053805789599842851168873722757406673754705503422234694596810692329486646671434144623234659505512078833755434977104086245754332846691721095219912806149226664924778427875898430526958383948222952873859394889905164390769910623777618275558954993621671885621635139819534270582828682739846706855830972322529566144000136493015854670570674167749474545166798809046529196617944719062234488937735106879593697357418360588554446407115090982008885612054567861460324125175205849585084298421247100072817299562606714183274429572300376849437614413804387933989308907954304724794255848117849907692346710128315530815001047330549090043062063016599977864231662770076442776636867264848806227562754599411028214706164641322409282040842508865945077176589510630610001502858420176995991156844635936318312406145901855417741233947874692464886222583653018098115885217026323915158866687957019323338595665050402075097367442828827823473467045043570682399417183451996018941058501727358120547550466341789715084713847704302660998803817396427303218449802886029284340166887051113823322434690286844959106388628382919288229675763180582897007961023736401458308475788257324780140031558837993917113973074845223108981067971012797271375421319260763017155377107970474509070700700262844568922842942514040429129444090279880733385136629422455521016165515604975615808687875458719303489604794747644076506723255844236529207537739472856209763784623816589493226377497067383090005400979845655380595810729437243954249246267264571653365841070781717998929007129966878896688381599130686906908374731271326409620045748712169591396676803723327574880786493583790698465036682212118774218804930344394333587355189235144202883988324626287531182231312363628957316325372259616009858636014505732337920124087737642864290477365542293857557809711788357724047306862713188197529644678162145680202782401679521720239470335046595903410155595124553295405193652088105211860430067327368533720641566009422907166723449456350469946753253371607065521940614694946925545382136019349166683255433416468004737969040309085697114295161830327219424190902998318861762382695043927786639371387501679353039443800328023900292672683830652040474580378532850457842177228616342044483281125920197579361077104615943112783371649248399462216118748135687485260935487447012493119292348037393931281981713999024799016268307097156239394158921419114871379515396150636422150908218882468884696306055520775487414356005856063622445715553502089207112547421031973456102570966086820372272982002083529872439034844359842367663303631280138772237242571870056340344552750527171981028577830345067512101289239168044252770983347736518749507313965398996349425822480882480886015723337135388230558621639073607176997472970603225466911465334864585767662620908736210751541586948831715869182404991240640201365894922239361945896204635962956802398163987762092378452866673820174317186856064915913729802492123110873530442221995294771474819700837586180984632960177894351740543882462594208542936318503798340399807552408881642829006889835347639729766362424794608425826666740721974482509014219598454398769592421540378418500862425245792272795488912205359749275240884908330996389732361471311995156924168575936076979428976813662242710460229858525308133049176538440147548955476040849535418751821871574299685541870638498211513235218358093004930744640196597696835882055296235055695901770375074282890924899365936125664678155870761123942451541887211128778701050802350591248774521580602132874378180423317212024839234164815297494462274674900709072751504594701742615249172579097924422040949166500353306495420549786305163283425451011270309052445757109709030699633309468504863932433195924439371941375960066093922269700860347319828358130649777879462660818666132407106944880754668263631626483505629120824102624439481907632958093457997698236883680624255372843482810343215732208794469500543601017385702994687870026418234783095823952183485471228601748743686416048151789767208395406804688308789683294682870947646952735514299573916551443886888400598426931171322407265841669384101877432172587102306778556407115028498802098660890262898847311537532653706699091215414725130100561950591954510033937389321097834089876556080028740148578495774104943386546043923353516604675769827280846191680307170782390999689509678210142469535999589229217767165856870069929805494176943137986550990132232643679077254087842680526766347952325701577479192719176622062202189788035799674983631588179104189500898978225832315242658281564355823617179079299429361003895164605586429817731637733302240138375272977939799232448026353401362547672919446057554094374919437135861267381903814035105592978821185925898987385402510207981781040494407834880948852329504357969092555634138240540073273749792650462752339905321816637179944779040317829058949426062998072706392463702418946998033942906817371545089756538907011591918173416804738597222783232396742463845535943229756893937862881349117753174364877010495620044462483459716883186856177264225939217955544161889061351474575604097239137771178433978590760778229365491995113215013075353447874358331859866375959452219220931698968514773538226510460008596087163773245500219690280601279729676272853553818634662116532057020596356160465597141575466022476078556845076109965983895332495168413495046627350598448845619300762628533600299903080767072715809811502593773192231372898745192141232764669099031984335917609330496544885481344019551495841787790799731302813735938810892225835343156981133561730530405265898290715927591960476579272687776466171948584489756204939662752750505663641238935023501448870089514921025493320393758686301133131648901371406267412200604419296797925788630619862099412270109582500916382598334025127998669514776342393284795898207485345694860316487994721377085619560495186392442082947920392632868318805411533015473474578150388303335900711479045846133566890036198176716617487183480339958120249284894938925122559891862914928472191397106193639538318561501330230688773910571750791292936999125469844073368020743477786041222954827277217468707243993937325848898905389661268233318591329025175386189458840588860967310286757221564699185839115663237756267788652331494505252980669661390324611555547910462364243682145338221573492659838642793474076506904654575884622573793347826819767086655653098687332001765928055271418003031865522264075542058935547512838430146951666967344169057160406808088498856661089744437034874715742962307568889422254122007658097433106995260712858585241889484453968969141268088535632998628925460150916773612150355437769080565745777921850935027733763136800961409874103190097563329268797765047015960567887316808690528927745681085378036579085697720153990044138246911935650717230297758985949215602611644734591207782818224147351509478827557595362072255267856886034406791681768809949958976994499739596013407957427362884476340427366549191268974519027587900622447136759645675145214684597025003539179421676673562267834020217517112669323639993280882673210584530979503006831593835436968176799285683466897239140245321389052814408371579788814714123522146175925713415791639269204813902624402310157392679283360157966338687996355087959563114705965564706562787476629256479476565271784550774671933173797504603529447341855028588299445866661563254765782343692863610792125047715993392582665237881762505389236613608602247280188312289878209025817383279977497259549160573507623470838546944644868280361442412479657665047127236605693594075463469950392155111876613933206230960653843679675288136806362149644810341588343368618777704901952430501904433666181771498202109947018626593071264017894107430421070270805297744906709266886261477159041189106921483552104819379161410551095637219325817478843493397260605036863040665899685102550261331733179762034574767542479197564561870373898175429763803650571120443714247579087480158534844429045594462482778883421303783405408837617907873611160784571555071295185179777587805646312979626956191657151095607468374428411323316547811581379057613557633997104695191938794551688859238416721338115791098241400345634760437404979619456412141666017999648629900504333670061761276898426639065957679926126346886676995328205792013685614452887559838396312066636106075061237853288952916941902668095615092873524451931633162696138753266178387727417701849125986907462068030250295242177988325619059425887983432829956876739624239108813623818252470661553015705807709924632270395873873540849885227005446589596763522454293369227362993930248253487143419643288734204662350106180513880052591581736097984418744669406803021134941847549003715516505170356858886868832379215976835595595597401396418949030069848813276006135188625577959317797816191573526198717388636940860823289805546515535960319756809227257148200255450101605217963046222874428615357134777498511193074575382029706672199695727329914198110591548707923136587260529869720789755088428746514211548648762952700756374541512837935273761579592417940508906186969583223905148482468391254441084187550659457232756445553016971007461349164292816688150686201224021783322899398950364006114362878703439804176828385868803458194881782724873205211832992441415277035206496779642328124413987241229114896066874420776227752534339808877465151279988848538180704164620352124905158594288782091195342066929828127138898182780643680246494991996517527470349459913701068367378008657939310474701752057274637104910738236349934761771125896391108194616706527734632063294351099702391752093347428923973294458213666134715430130339030760937610698224637298736584993937420144453280222450624750304426536355056747269276345398765495779251303378841695828843641979933948566172102482591583052178866096410601179732645071165768540491023943842054144388949540354115220599320744492717762549452812099191334182547975290058283430529503190657568841653564374312862824087384596687491693896965737805256036597018100030352010871946971458852200708634982918250790491852351023674211097405057841866070249415229741701316333420442993675498311507504590583742864457623540908402421143907528324655181337551799653841333545523323737902389390993393881813428548197923290674024275885442392940864870821244153859424731738542077214879665106807181856705668500195855815555567458663430677917193035911585697404277630390795159451929845370144736912694214928353654643905231434252756695771661862488473985194110577671959589053401923987932899788111610405682860949987064425996523209092289942436339979353746345808203903168328843883697144740487360058453470409415923200111317286422054891639995488966032553963194976142944369286251607092411346237676056277724440781870323229913187142921106674796279950771871899416197570561033315235412147227890790420965970763948296756813926826856997629523259622957015287430761489386636103241388997480190227020387179549485756664505747527188428492635311088836174968998030792172987347379331018612645619302910786540687096585123522824337261837876974733830072060157961904557938625092500758580679303056366866530780866701470656020898727673741632824650682635581790641950492797072147396589942484475538778401895660245595081104289831999931448660512274207787580664399735214789012968480531473281626596214150918689820620811907711026966235824514906122613861191937411949784816560282966296773199713199539815545209684222586751383751619073220188445945527706629091915386592538697696880357253535513718492605848191678539371154300375888131978342720614595083209534218486760346625087944632144396226815573874476670384881626559743321968770383616027980751367406402074546374469435643646073732665556648928164858239986158082737935757614203214471309896565380065478550495366538712502948381730676707063745583492923147464072908159533644476347716044957458329820332139654392251755790321927423807391372689545955592252466092114536307322415558708015456471862679146528260453182348585790516323561357022797981561914492111736799832356656741698841835779487793902509343864830122356092698201398606764376039681366539088225590357794765788293177972168490374021889527796700466577760915233320658420051488680595251167913298371698073894409246281072026512633102435180711166682116540687281401364576794292859159819156626489271187717827833091590520529904432115227173281182713970893657284371728897002138466187500057828963737959307278860649814497697867825466962904832166411341894170934417243469391247336176668297617130325807697108472324288199544188346522207121573139724191416707216118913463150430294507389353615065042367248234876043947090681087972226122291186944878064256010968382126154761944388773229931923790637673599990944433763456864345474563500873362457028418103322606577633488345625847388466051631478397132394667065339214846366926136516169420139692430387329549995404197154527568565909638322197620396130186459301092224866168101066005677559561929534989421629172338990622578155560822972423299923331735901843664340595564537818162186453434134769180436638656903715274418646827140595676270311073954038747114893364380270741784723560229043972018159332204940605342786409525202362951342958485812213362109111623204277895770122010308308587647634473253589290398276062814104283577733793193740252777268308366941909582092715891825550262611646694312357749805670914498023534715750288198501877856498333677896687311152519554458959650157522376990280466454271012837052321221578184069523249457867285825131069964784844735646371143973388325552133666019909742922162643915610585070090761862700816927500973925383082530941787776323537195104936346663565353483722307870128407903488756574675933539370179459853470257826990058851590827791016476462726214531949318227302132319874483810942956290851738958263161215242344248358516674921983515702456527727132328357909712814514315793487915920236282107222651054168874060305521674887785381194197232428623579425750826570436876369471255360670853571208084149725388657190144214891329080846132598431445670151127164561562937537891179855939393070641024206651512599389546443096472191357221104907800970729879447073032414110086049679668071620574518912753494918768135234393864410568490195727398538717546171094175638728831878880409747116302227653468406262126267499898175090026941132081637872872552245295900875219609217070147527823207538727669399135575942581201685287289547619723495212263162475658397341609093490469925427359900596985553615996083927443876580775207581107867214292670142382237081180241920071504061663071486182350488671750349676456140296448163766259998535101024761431327918842507422375151006275947599512051073821527685116050135222193461087426216755548508869265318688899493783644479668866023356520580609317557973391687647770268122381219105897290488730344518433410514580293705227468182885683198611084620175883010256415321851720289578977284782993218920669081976779899520774092730999609615194486676663545996877201113690029168140016300344562500939511967911975015707854120234222253806770828844463532608888887731283771177301573678031346459512395249339774834372239090302752495775275450923041880036091214239985485810628911404834261459273076410207844576139910574916739719573658093449047332276241916563310405679021807634236082174427355430938442131866090015684352508770316888804784955938036999181622554900122634449904074861065152804016777973815808071900114023703582989241484448689781784264419804299282359097528083770410224079159178378892847076814538954615552132291591370614993107230926042459949790486141757784490427811398851304802775952765270205770906823674688135373485213590897152668004010001856557167904336399231308612571649651493191774397909325861258522601741844200919813043780921626584776978535746734261076950939450725425837076205882303911558657887910333368566743398964023459166023851865053991714595707218640235584700551501567589775909711348238390788727108114585263115455808391993281667516117158086099010612886826351507236302793932941494658211692406983970955969345014552737840081704283637545954071723595748514866910066742012353613960248454259094999743607840085750168766570063562527290224152086367240764789013894920103222769361470194601028156079415833465217171359842905897886837001562189277985573858759827118427724137837764653242234714611757505906984526552412733474852116520640381145423282315357340775282962434442692232745656470583532308436923739995556050004349024958049188524037389801613826404899011952942272715592857326667015973462575357330736561658732655567127018878742276259783891829755270022332695614101214213019235052751680997163010425052133565831633883912687948632428717423162136163412739675255242778485700967824940627801236581740870583474311774414868428678959626417335174851479975855761013003861270902329430842180716336441049169918383945157965890197017610841135406955988417648401999576496290083498219725830592769877806784188381474269495394312859101622032920579895537470276529874652465168548813822979258437765700953562764272332250887094638307338430199412154969223569879567896433398881657028030761685774464225080942400938741226892531168960999565701719673018536804238899621270261853525277974640733799896066996480138880461561372063894285495793754267608038511761201059428947781348514234257536963639877845900948066796103528692956869939071038068462048739438213317647141814230538959581253233387906539749606673421895458212379352655910207635140205137539396033504138915669280392262443420166816912285100528109142488168781416716441999338200118137298955567697376812634659323827763711861036164945422802234557320967955496107096217889706361909530275354663188273381924119046830939621650183216336377338652968126594966826863244662201450704053229218004447215706389024431674184036908849303419613854606830069586646461230264040758323800894724160971483395382283575983939975904570085225954287744532211222684388446471984161031471816112019197938007606593202117591785658045332277545845791782517076265033831162685411875389407225469663397539869198447488275793002530463855392444472673246756137792322485969438452508203454440922344843546868544724881688015576543580502088107662947602674553146792514019106712562082192071518443459349944950085025094843314686063562238370456686011183486945069876043615656621638993246067048717704529135862753459941471273432455897254068766860914204019794952247021618380971846785974760971657983208574232399733673879481645363588421931687756274394193072488413816610661135077682846170998173515016325524393227852094901191172879588707425092864194725203317069295014316249701407121686956678350229186518517489315885423120322171861101962326651117308576686181900259748685434479988647661005370025214978381004112741025434319436576154849591850453255538833778603768188665342354750314351608135004032622889856247474043156103056967519612501016663486729860075340285698751874457887638765704041428165042032275077662075069722832773209366277037850089634584209580688872544525266347251225945483779524954172211809026612225800973597539493380174730788913007529794215092125906228194210986002289179173369983619903243986675033355022115178412722866683939668888470442145663631284184247228347984480369025561750933849655977056387228724660230595494643746125486883552722600674339365336159757917234517158190417742648953085673072031642410069356908562226782548378291065273586553452767485299330699956639692181614964009634234628920626711547263926860366896992523334006454920458880347509413362295214233819579760930818215928211547472637046042516374118316041541645067777838923211357708937451747422632601683246801484890419295700221643049091604309051822892976212440630671954979751002982111996045286031390463866440204856179177264239089214354253283105638948772758308140890391130864373052446517993323956012374096110547719553266371622838829014035954732320090667565145829851363193669175300041780536509681101830208372237852051674226766763999782517127876769906005967243736849173524458357290879938281252885306251089141614366699340235838033057725239461189256707447369248977488275487784548372444059402825417971115718746940499656574300370246743247589251870424989470913080988338217842965556550540046311586075134317170095732270775437275040858744866825529568015974739412880671147755318247607574720903030494387059315117279451443765587821880424227493415497374861492398284911067797023003401251206336703679116822064181103246807690643207430301659879393693878001208165922822916621008216166770430836093402987146594720612733068848330030550289292525415180930714619209683279864163459436633798056925685566714994149960732545531844287961308874985428420648230460147633090396234055683660331902950111885692319368732872838408562840833539935022996478628143769498760422367640713553883917185873175346543959920005982644123081762879510612449273020850602875137691855922325821436668777755370863967370525797552185903714291213586923296180340469228995545179761318307165568346378590399406061698539713207077245216575800607655834085130717104591714343221496734921426116915552312140255036247397635826272335905342803273200080416459625186552569499812159911017228792909567921275964391878863835979667830601994585970775791452547933104778810380492673971323796835582299218063430548367652182895934555770066420078484152047834078362554976706954506404798068894300149392199777267340842934013280391947599727821820627460434736233759998593186326783236548199229786722860783706159172445626101642664243283767313347357335227769681901445711721796721076932742711818746893399847746111181400473487149973662651898820321072484682976682904384584462449357383191107405971018622587888191623373140946748807084631995955186702098364934915172878864205569318441805079600638684954645066516721711812269931790070356902073014209773214982992726040419485705179483199954328794336590451891165085379998822175486750881750288347785636221940766742094761241771457519944385045883782961055852606017006413805251504144941497417900960406915812657468848407083866817871213972552888630715114903180557193450532564011902934502100644314143006828738143845128283520156992267843182583400403503577933998341838489910027650234236758127230282167047608579209016441146772081339548511906188919127193714420097794602942288056530458956277975845130988982536688500155682994745671574684883908617430551864744319058693356512273419032648237316869402275587625168669745903220577313382397520425733479514872328000263101845163994570212450869980123602310499513138319319952923705193934716730905416629745770561722408796168554470614344783556521373093468678568271749696146006866713538348426945538492056532874813314213777533231416062939202107454565573705632701402223831815434073571924474083702481047923259299772056691876718057449124761656572423372328017718596214050010493126243180703990336122284961363204548651203703522202033328175380480559069654135864673314258601749585476473636618405127022601007255893850160514829700052824045716795018406741458624628404163622257073476114805482887932560305484546310122553517950067299510544704678255730126164630335377333705379172842617795011337600987092895391623937613499055787673565515484685318341494298231656266703196618049698134731785623306386220291518378073755690237266947957618072558459683845011483875263337805255682511309833698615535903269893621331924327946267109873920939588844678006062410583659497789341371276560636407459882556327730713252978507094499824637130031764797024902809476718085482549743162232562544392725690864321813607842201836665068582792117101082652361384891970223746358677443520366766287665739292845099625023823401838962324172752088959317312429475982674661221999220627177364007143855790836490664809152454074644751382695749147765974515219417437449164073140649885878932498995707750549745865741371903359017157465528531114377656049957247276312518591625104552181603543139445527804996376760403057120336386284791841725992823814241695598600103110580200534678499725448733021724537270420832213412999982143209561960698607812046015608854779130203826471492395616546567133142812825139521724491681939167460046236323258532558358376628876075854667917290644846587054764197083889427825257156889956738966168139889049029838824026647947377069791682979923588092171080252215186685857037589818851007035165071966414285012144820225499785683617336453899294658375003609350871340951460189748107934936993790550938242669661562029281494142101170517806363216355420283145836525042357708979919871891777299801640809308603760802298323934008289851995511017261471164409778554867273615601290053170899719828437235402438578481204105674151618227015080188143339926270105763365383259705799436627310398357087762697951131523970561783383328886989208480490529606199091927465574366470952811198598710451622648770125970753866363682903040126817044035627338750856711793237223470998445151198646069191904510702485355820344407063877002089876146670511990411524704174025423327489834486552118621063630239368301462529427483624478984767440868600377814954622727073194185922700822029912478140533373365293654373948310754213309743505160295723582932416752123511257325916623624416131638528038417317057702565321013925206931363446132796304346500701195287029509677511454670310020318739005977968451346265864618540360507801885434794829356599463003550055439643890253318224906773528521713543669647942569005105429994856943784320686124530999587289970144332727306801998091264427149316103748530455301086353544260815355458236450162116233241892811294181723707860997853378224265061362640633131304171879777128055090749661466029429163923751523359208391828936348747822852439136998090280150320414339819950496383645398517296940961748882046382914651183313230046916520185813251050359715258502596474734374202080994883366516769304583657492176408980062801142876531453947499152252537296484061443297583077462152776824411332614777672173743265330103481928161354786286244157900328362100977307442167203026581657856030406558488163603516723784564784793915089065827313749945085870262491470036825462054319883097479002571935026074405483322258373743236300782495506206989893284809671773352222077436768610190018627121405032913411966231926266901322859497704474407311385662700126314573692435472847000019356044124127815948474522380856488870620209738837131318634826219073628845100542280579381031875135351156397599191121043406457680058576983570117398543742723929353355315420313035641743887828591596758061916383363215599423259062262719414978218867356955560705999910628500858203297670566914305932071585504311591013999480613838157549312458715450511305758847980408583006156655885746772962352985991849120032903081476596765115153198587146101210913039509894241748458526816506168353372429117747745401933171981383472658436096732383850774888510242791980598917913200954018468293486535391552430847208359832877996000826723223921177713728173551611742916416099325251059147569236864677540113909540824503996695840161258818895679575320104009565757682420760109898449125838954497322220765787028862750916734824295350684657083965864477282550354022653651498719278102415835365917147310635801544387872031827907689839651427243737421830248287104243575511879745528402969981281818308441994479684667756168145839187615898859538092818844264487928682448955819802693368642946256304574570700659987948381917224315321115960915935118448790973943652288811983956800949135262326401595703780115745110377257206621431478203356591926830909400151924146260639668605980673039756852551397748663329483512312660928291605587679984797093646902821437066793515990904163592871450478598987883291330680468677040613044669403077272580264175911492293964693319573556706529426756458039029073115936768697842677488779753183956948736830293909289125891344435507205887467342453806319334560991662616964142378519774851995467861314710883930818618352675589288302095923728537597380256846891729364564257782603162318508187267020948318804161558746105364954599549393447400291678334706625051605520310027452590629731972514654572046371904922551416557545887190747505115960482155011818567927812968242958879653137175312355845734049808183207372346576795209902674539745028724814477650031055365660415003588721461465705767223397668426752872658209787189661979976497330736671412863029511600995514244421335911443940609074447802061902187417038992364286234944014637534909585465446203702505217397219176992015723671744150779582757707569008461346790835395266146902674987335075558106356397868870157230920956949622105081864222332598082646378601287105316249189764842588156724971257157394248387174161556937716780909561785491149170155669073456680002002096277799804436436856869360641373550731409653674174247497603013098642624566742636615859015396717309590194637705928032758600542242319167586324081772166644549529027618805491733113519379589657781975757913023441575293714586163945985628773853730155123705554764763481028510256147769582234281229322050134680315975517920319341803946931343997924545436120623367881822448069089271718052558260786565032030668254685721364973232951254850448609348539799559563231549275706828579233896334259193894088593770564752082291799845412064745306939930560501387316740790850158620613689888994601877982825634302816875459277222858854990023383155651152849627903553926623296564874525963167781407041432580561537692165306118959366878288829626179382205575594183986757533335330496646419380748886801349951644895090740757921079419603141531567615611795652647404621351116626730812562683892516072455191184818346500532621928479177886098110251174509517597473202748484759731586510316723107548152154633886717294433365959026246928295431806585607573954558039577216231525606084328149894394692805065542553247502052789855377316620699603749590731580603478070110775241169820354170626556498970155666060940732061905873526273860847052928792894437254782188628187290613253408386217730470942266372340030625825814660457183269530440506647573713345105582078859123012892467828499704858876845718703378271575527168709375730153738871690236218721476244077783024485069832965911750620462202921857845116478921754722848740763858966222585402881157900611876712480660559700561282303966884400527367571713941647655490484346514608455867242154362307149926143560526892725056672570530055192113869202769061704725092483978245538047327519073331218313984619237701662943386023752167971499953208886006569018817585707813204216365358738512236859232084089152350337139513220277573531358783119216694483014805699910260623229134069357052877429186044127650165119192324221524274610586244397273724636455074138043830692581612753224838602783894151975268525950156415499400080044635337611594760241668278892935540140916033664587535218031873802746629341061839776561753531957947104803926593168309774082582217806666205876017066625533367583443341319145190794135081479134935060492883554686946054915848193500973094124618397439543549181499991000210414502338323670762543703334756674913485848688192818500496418172021930909523805369894806100625469270478175323975901311220322687715275473649272405232051664182528790249370449353987708238952821315246327070786773820793299296227078162387783641807505203481550715964616946392032161086952236969013201631660413931369906729870646930705607491456217098712690350338564865993223336726263103039614193690395226363059110608805300714577156068545089806463143440746092787460608797907042180698081232011976736520204447501960820253137950920638640832187116723566059900460069046445968485387660286543274968004413849877163031102929251071010113676168930037285074358803121551285840220542257425066140079428979985726173085474456318302303662954236035301861247175719247539877622132603629057827560692965624495328308521220261312270500221698328874855399564211246008598605958975970385111434112723984684251612073525985102859692564335499873142413327717256583429793811841092064028348286884889330915591089125435265252884650000212269595928307102192062025549297337787010493578560106105611160731727384171686532139246272985215923482312816791998741491019039976335534559831952580977966824735239153838481782615657022437123824040453111394123158430084954462910262676576618251664976592694286411914898923604322584314420004139891378380984244162469133927930886394594674896233394434948631201330323731181476935954668793987664038408107703675680419947830997827026333881717459218856013068781332670628753752058449940824824970442803817406575637914092151941842469130607988381399664375064237586237686156179893699970353369787548671811584133731075008356024054110336425092166721828165159580136503060786133781876373670984039646862915669475311104709232207391974500938630781372525947556723464779442983341882470148360256022513506411446158292710746272171688638018291058799846482501763842866904422664460877237391024978989794505641352939385381406340438558566383084218556546174885798890540892011577577698914435449333255994962407626339514049133643485304372134507636500407897107549405156394689622923447550589285765026787747368186365911936990592278238508645026501120428498572783222866068623403076793844443259978384009701951756881220730814518963029591512738194826416620698207053585199112472723184228538597314153538337069833506838034537592652581563373471953716982893893247005784796073755461125571332995724077170340283627669847534644118696935868949372982544910331728919440082320393184413543563508782746634004585003458516740426545516829513372224386908536592283785181792363557404965912594710795925257701004660650480327365564377020385831775225213155724513887104799097351560850234662005849310975605261353999229218888955159592874483044151309553194450575779187657197432335873879068471417063232186177230375539939472696731510535641640395118842557019388218616573235239485926841424930563972157296477357016049498573410618759089266931617364363076158422351415634659030952257877050826617491403636247543768148250175974667581523469567783843879510415805843526740735309522320484709773956281745393283921631023897314399336526324902798414606007772616834602566168224455695463008113618215784562955457075831052493188881994599745749375268551752861429595570449667687933655029358263200849601200716994650871925277890937476596192045503936641539973984850016620783215129601530788776805243117248084339180861516608663036014143217074690095297903083161369199386517255826236498411740218555151802085722402152819743897026852659261502645336513938050149596274174931617573747867919721309961127027940328942497350764286456409496925153252223613069096276493816821649245662518522128460415405731531786505598932989446359252183358096678404995781063623425097935783196086399603852009387647801680910592016238744329770780418177754378773568450363810983330570705035872887168993799883543968071338954101305416596035328826273521107622175389492470015121614334224859597218869477914790747357959615538307480063760156581083622134691849680519802166447346472592702948661598542058207668177852990400181418012993656038378355946267539600726267385995975394466980956775816689092637228356922061765650521300296445258461964484412868201741152112788878507827381814050997617289138407198441450458855559912995427291817405406174956102574097479270051813942848865398194373515593820688211012545340183062431456969764624848570580625894976319595962000738048173118730781731646552777898917285685857857713609861071316691890513255483187856333003339953484250233392066635350486214175847244666075111777084472082409925948962478318581477055290043674910341976523401035676226664774171491682410949141205033855397068861845587130773724926009747487429314083589180626284776054387247984357894754215143041018664367300227409280433723656251228181158175728871847649968235173567925304726300967797588346484561584884311639601376762380335946074862046635731118332859653453974703221147084493297250014411439916941321777112362120596481320133554224605432314678012788973116577504985073862956225809005665097676608002300710331334344508939164220002535824356504084859463761282532569084475819113477870271227940614290572105389853116377255722202310567560964391139512985826016966230500365604388090460625740796314011196651764750639159411228109585653042091228764407798224303327827717834881443210073974587739121155287163380554558545406527301102367309617566945828505497927891652727257611322566830521386623413412364449721116878091499089041900004590141828781801735904908120316983734602211810272103520189837241421607492683295369792641043221060603874853416033720722340561898773107543470944056527734993579252165275997342037208185979246081472576713045528083974041504531295107014935950402809565619317674098971146252893868452813647461546746171575673382747480542233815945089020394530212711298521458279039697243147381832695121580536225286981284599660073441246969949758586999027139948167897147817858742350711667840143747506002667357492009451325903256387430956973881747191726708405783191009600900665715973138390935982935529609533135986022790387388578609696698756675524478164757265400657930489978879713219265484575436555404520978085312268132545833146294009349016344447501803221743298176430020039204351499030812466139212177951241619970871741519025684744920435403611990254277463767755380007266306955894908577670159335375197206913147000975592108243330418800533049236636194134189629985442031271502643520231947138658059587910415735996473797042372348665369432724997013394223326210091689782300661141678494142272915934666794670720188468308444835035129411914282984311608450052776876811723787897121610752859783883071136157025064323066192549576643783902822402181252638433741049766717792742407239489795136536030609560752204549255535957673896784914030311442388883080782302347858157751817968043803373038291914009164948721571938260299775932863367527419704717816958935379427807944407017270233799994010071479299006946722717471578254293778163877595471378268143734775904497841394013788714288403459234978056022431514744419896416635733697056519121663705867682163482517037085221680304994205257031473342814055726150383476440873637949287643899207854540444982926612639432334654777600251902427399040456511770435544096947955946699256129501545933402156518339280790046730709953477294157746538392207030105905245403807391785153393477191922436204020497563760745636760285622366011097794781897499509412685809004303398695603450695644793085919838879939245856622763079105011223550983796731697637581680840071198281434668854684686377729587766964782951161534965213506173849017480169671177177309405363415757778090776764071258056121053325269686994354188266426632345239442381554485381076206318878870278373501605385761450167299718724426860208163351554970294172220301079218343346914253184648568781223503110248781968446343475859109968066577731934019684586657616263599711992864309347105763829633880989881991707487410507460390857653828865272167446491264107076921095891118779131620387351057154052391295674901396863468151506459170090903409912960825506313082397446593087100026963694425067060035702839248901214758497718178384130237830755231700689872606944504736063448711980807141456299727910105151998309512424764392133501443697157654772047569550170928175803647858696440970721094220421579962518105680405939784142902047246042432602427593610837035384174077600963296464988193533320415135092300669950892770921752908651893027161787527194845200818765461439694938839008550385581055558587545834952649117632711795664144025600632608273456765711236420999311100085053622287174546862127946704070357761486259231797999399370503727762978105101724865720888803279974145082252976002700950873576307446478319933201700090087693298385314690188172784468467385917454743587482163471436289572160144073729959486256062087444650304833227855904759936019711664681685901922910978797395522858913658665290328932714902864777719406804121029870766729741171053388608787827735727368764015712792003316737325266148482782768718187154187096524999955288420955568565675381215681436057456765001394859555671217817770485138568396836072991421142756713559361484342708740705566441687398756541579731973822048727349985692393121119071759070122674501474612598008772075268004863261666125948823249400992711022510367027379919310326742520840910468091456594525737966818918103287103651899232844075603424879404745437465253593255157513015764373342973746043261665356666518340379587552757983113406886114189228776995470014247079218681254632647186088426840708605525077406606889746410485690930734631207122438604934421312540892171703014431423911166940122260405261859042897913120727919568668144656173146544409968399411038313613569491987930086353180325463707946773422214606410971089784271501308842908867414586748715455312809968890728994315082485784775317415054668520055798574678305912634625599716413839700926085201961619829385770611268127578808945790928057697242053637942721144874334213884910499287487564608075892072274798287924920187240901381403770502006434012554449215233135887342661399804792464883294421087492055607872691744430471246926311496230593032599681237296652665429300438981808312389462102313045320101072160792947605319627795653871149629657895264449068916751771736765114702695189633496178169833996729160831290665990899623578650052229722750720147768529422992230552466887783906538321693191282940340359826747648093970771844402894934141902054647957797944992925491579074448407947523097515806200102044626332458115920557676092823472218060836905749936072797148319670725688416766611905736150384084019326576490319349458250881015780286216715287716683528955679566819600464219658952789343143434627954255709430571874600386611488514977673003809400036214192469085389797709095126996645963388644105056762287539539939522137746421678616504549311167302298771498322659540979786954191241167352348113648453981498842423766048078034705608512519574656848057548004825689880481810112292270698608855856364497606895790751200410189529055995381195611121059291184737309609624220984519369607008305242459337650180142912809761165717988094804899635948116149568246359941072933304732604706584605352998135045894568885598579297813048986386588759853407209773115126933782767400186223252716515429835268002950425458269801185095574270630660356780891343882415786703821475861921163948128812108524182242278564160026691472079059774049678853366547388723378171817463526892537220674394186862491359742210146227233972046435241202283983696862055064196503257069280058654319943739970537446143393320276569410461444293458902896777638227781983588917937270490936078033521211348916025683474430873726087883360427661455707439241005504711324878884928834911464985973431633982063140831806703693917878165383324480820695204865227222118688171327917298366785099126992431046295807593232266138175507407401632755694199533667066668812405784633155300542628347154506374858389140447333546678799342720209090110431290782341479505714642776525275580359000435393062733659423584013769956085149476731519726919197851292836741434380248287442171879912467126913002491448082202127310902693452964764552993975689873852343172244033079621086111584332272224946388702287872104305796010337179508457938833901967800922097127943612189114945978400406984697706307491042463394865034824815039380713907931972678351848090154476832741053832938945291133601207265053036608940619440983727998957139044089250231619188654330867456890603721225178831777876618109472588046416094319712629151916143960891061828228350799467680638478387368562702012562850584071194009922935431315737669819845633983137445543867787561205760941128205556636782478068989893514339671187925022025573347863491262429876991769398833121955064170664442159385806297997537513299564909077807173719287328822243182041574848137808839662166007772816983236451986410106557648348345124665697585782619515736179131295141554027160434037780120587696024969462563741261803874387812033103185069706279943104039777503588840388886727054929250632891526250239626148959420447529861948115876633770784878954710254848995281973148253588067647089744883679122904320957733025689790823189190836077930618201387731780580635534056798998984397422566112872817285841101056660794712572143003531626100127958344274225419061850988029295196897620682666777568218197687260336515536706355549612300881031977653715694747145865053756929428614010891999402358592175409499249919346710192062200072161084719139758927768238146223534628199084402952793119976068473442686471454007472412990378668750899060264670034856172961114909257551816691524004846847931632025578004903243236061253381259851628431061001624567771661341825127717894351118592599090964370526363745818516676952843955558088409145978470549043453705752458633834209809869554607030212263618492514502384951223835689481261434403393184024673954953285912275670964332033965121992416379178901195325481930739436993213130262443792178367881057707593195469568178139255836282716130580491422820997020603722687948134965115959234937442682271309213802139323899333084032264403773530901349361594095959425043086148324099903262968146467344976426706184562669378542039387485437819801851644032986295382599902310315757498621579150458994854484062792209437709066013375215150688571166679949726931567156655122589177261440345383813260316842734618038485175850424908745868636576856924757524085310489400664634837606813609651260186881819340105850797072504867453219883316365956088093599128532877050107317713450923301530632880305846043616215772814098424394297632607514512441444076819779278150711369464733925935438812255837536073145838613043804616875326441077495056936018806309310048102656643264922606802592305651440028721072016680828218471815803881141219941239729358161522044183437082367117276858285135487113777338032010129381444823651363002248497655067057742402026014201100503519104319559105934574425113562483760849165710172564234689198667027781928461721830945345462692286419871539581957673151779238722979301365253533190890828146381704313890894190546491971164494677543977344183870204288656221542485295828186542131826959029021318878632891284183710500893666249890283322192433282351668233070469584865949257933057590449855738572954647052108338329407183170586169256718714643722837817840754095847880748565232226712653994934772140757962706251347734691127911036164725970031688849101091515348304008806973239465451552877218796369016154488016481918825002084056611029822230249874000887577502921817099388616416513017163495938028235341895879487208805547005861239025785464378518553551560962614054784495878537056804422190644193755376114277234638351423286646518894904656153253275132096962821857383410751074705225065041690034491918401912414435542128958144217371345180942652794064168155233673087905853635960331477188933053440035540406417397733426670593853479609200188376729640842721527675252129837775848491551328385417581726276992712427145938659653692862753350806766894849895825212305493697854255253480215689157937789203089475001260671653228389816663809267742300091759355805638080029940013731744781688203279612007920120975156082095978480045704493240783240128776987762178518479152380117035384661444625915865259806883719139223162219298519489150079813468742891210358779617848354909859044424998570989291688264547852416510110987394041257385321727158093890268497830172311833040899647804087372772545316499394669391271496536630018919647245629171754218205544547674297417400450713799077858109307609106019489796621892732812528081758453479976884292124687106642136486122473769289355944333657907260570620513614263456420698177275446253394911353402771731795531308481139356902339643775482546105799078087177992032838134884275933641143453929638372446527348196674149212922665758854546097346370313157429123737989880726102701627985531151391195276304738915102468465622799721285028818486413152107579193337043527795148050024327602958049853550440569502109605889652386332399950242350552697735669809444987074841994648605104332806300402158940706690361566248630449805051383804036644060381964559510705921802508675277830242788351612708438476730953025081466249969210223082535143608836474000639015247153147739860850346904474121056900950141616141802386223539241019023543303630424689921160632715689738557255908597628000338978776103241250791432927961367180580581643777202914873766825538169920438196008880932459836037413904975530020412706401907303924604368886013118267984724293504238430740443354998582029970274374051610058891572517952776790614200585034913480489841262520775143539362484928350646280010586116694727468960505828305153230234573212818073478706559574813351953342336997783785136525237032456741933803705183232002094960699435527508617729341282636175177611512993621963383551323343751342364305339322653322973961274975505579068662972180462795716352409898122412374193596371991272118240519781011147643361057591430672369991525202852230850617292990248629335131669814754808300015305605132994708865856239477821043758279643561838111013897011580549060526859134798075674689286873452333676471993597000588234091153867126378008936211896264441696526614834646007581814457431072392950615253188145235810311114163933340317604309310747937093919392410953224582822047343282259960324459795450778888837477728547536333325191640999729414427863455685767099684573993667300377001802928209330529867662440902712850703976340441874626808886996922784057751583725172385017349246179045981603242959562683299413526058372739201363222201606048826066930282818775783465412697968907539007562704712444384694692382295297191768761731318309369297469329273541138005186222704707559011262240732131027699915810657623660120750925490178048639453546528326830326275326315177712618001019935429692899435014469621146630364332777309571167046453786262149995460740934926729259314550777884061053337149091669266118597321855237176537491022207363805531072679455382705359741358513838981836091186976765409945190610448139163421100812511948195677341570883945177949152288059538655239835551544410501459159033841896957206327244377647734852347650077799869087616859397678483722352784265180407251829722948278963719272355461010447601109186356118802048393472726577362161203180613359145226401600410193597330459376422462964189818399351032922573775755657425955476527460736658257703589977305813396086076102456154610668201346408580361681243429389627015401559190809523444990825131357795362900129688797039409069936966195584385351951459089636951487850592144459766306467582053035775349535116125112360113471118551672809379002817859716974381480907299406430545331904395558961209674774252017859417002906352044310379263693560644721131093917008481557265450781942379411742084267971149314895992183226669641505147848910013509503883111164159379359089151777457329580685744544255003951308308270917271331861402793661822097299634175953817219488220393351394841885268332840967270973854767171877152430363246088638572361160706592011662830020661896150166726790875949976183392278197320707599825243927227697315640792051760094306478157819882492437048894795527142682732056179526429895955176552399510425437090163256972062319651930541082997702456421166981748649045724658403963126671488674255555655206431718157606406932684339262765796914021381287674353610509358024843759061737065215707367631918702577587113615908611349399051098267632252981700087827645464918626652836862800219379273951717779672627803095334646787773948620534416235837465800488907450392013116559487406254090430778428359744210761027201634183386839689482636513643139775091925450060075512737355764391277585896903389180643845599063104106857199209774454966882607545316417811121649112040083513349988560681635130954896530945602596676038929380783732337536080745849608126059944139086100545768059711763481323870972499549992722537685527594418884723383434566973392095173149527233018478686126496332304127409826211988985461968561146487652292532951054681225369964105920656020031099135049869695248771683911760957986703891494953691541107961969422482037698643235019161487684896713135804455031546330118968038767489205321816997807891451221959874272352864080715589098180829884094927017208896573623016363652849846855064378181658814227268016512965965398546609263953063755236952310747479521578724401407951370131534593645364425610602795754657684144862460133952637636950003577824506104372005560930158972497301560622012075860668141069786946341901488004887790747252484611915946596588788479799944267719647065555812893639294816819920256784943793200611198228770017528927557799905547434580151729947586430008877481402410810243239015750458778530200915069895624225320626813042454330459705180790762769270147338592740919442301988202271771786155512490379766502000136348741218716901646119614271623697362028690979430867722027956470294943775927026223288851417173265408477384672557913050777682399277646375397235431689227514781452208200151533162485864000136319462580733495722666567020746082153317962005621486861301322430196709312954431590229445987418954619141704770075134976627500508144709329705419406846994993527768128295364301831304671687297280899497943426354948210975827697516501531355472529339244307443010710143262891072552842228659042322441284282580620341482367067091202791728856316908686128945313752381256988440747075638123802740314084933659509007085756352024235602924983125062082030982675121040087632824401108647990465943944651510614434659549552832717304778679391003752311458850406971801147531140403840866484143793327330818201932382680892100933123526423107316388803039751673456745245025421155901436226406201764911541018975860821645657486819825356490439894407912544744890838623625317081292361241709934465279830014128362007424513227699882010329174321846908846114322361415602579765766050548559803039765877246007071173147858645184969197155695956099255774069018332124948796871166037561273118857792898457176446521760022326937286120564970361665398068045062610705707012409671004751049602277182847851481646894717082144816153950614702802972963388696156519368272576870566568019833653680456303085972184687660937284511646435040190922489948733293929415153286991629241885316866952196198651101903285736432772851024290291455075677628960462030662044043958672638458475362360053279654727683848551104886733960202857639348839411410278153982468047890069938971529572322211121816902702315278280888849705153959102285286433653995845859619244910458824386148818305758969047507530238368576645751513554341979776596063658431036624432631666747234246664266840598075321665781193404673963212544224857555349148767770770338342829693686465568735027379726841822283492004501726977128553541377218729628536228824061287989924105159635025780384235556940834776081210884771167471033830055886625053513869317701404755673225979753904494390722452994481901677948456274083159585812800164164014530968735251562824805350197857955201275383725611528502052086715760723444164217881164706878597585958148448342773727119568458315910461820136518229643983768864791388141360675932692931203395471787918145518634731855862479368099385309377199787607008412644466698110357627811300340595514042084840162053702236851859063517885922089852189331758291977434524798725869102330295453069908273118217235289905948089377349803222454860302172967333549561937351128758156028172011795257239102218188990409614877857998232198052723824353472930750647792342241474170710674828612296896106719352640960315896334896194894724634850477279671029586353181346806091836962432342157919628070698345035903459095255293708542210339436459921424141722086660427443129492946203753822455600600647004079050383594498262759318942701606336726423568646468235974232648637871945606096857287083659935889628746977388031424991818852166472853695059098100926672862445833314776014228203137520645163618695802889955482389861664858583750922274749434606760908859492037813341956839760459893785878568736361497756402284735756492744022765094099860514015666334566921773503351483961566453696958158521206665330582692803430989981964754814912072539645528763727627238851498600016722644549214822392335170714297708977664579815795278259236612638491566396386055594944867333552975367441732416989743478822161207336573484879120034434861266296405528665647763982723975005407503872666708861288496771670026095881234966319300795954978497628941083826031732423647303426294092359286394324089967766301835223550828263791786325821276125091384945510074464744681690235327533250569942413834450839757396491971198736066662477326096046108918356897311046427387657504517485842268070178392250275303564610902136728678141605387258600219160785407306052357800266787230688251131649348110623861990507194099507912841557351115341865177255361958298919177827004988683114922365152770215170586213922759485786580053785986818067597286230460437670269462584689353523175000300998377858285687088600121137187947201379717555730083671455149808002431966827547767151567289965865402396837788406585701716681720063199928576930315548039804353791568682482522844410454633245063145689492169107203006333878249952536322064468931091113778300013109998159466828012390507478975245345451486199922936813065512246203556661418523871997466917348663037815988381259677962105267129777691846842745296673681602014738265781949771312383656914595203780318912320362352972342898923367181190554985229248766491369477917390396076090156282153979793199816518231235723946076881872193703195898926800204384085700929288302386937685202676047468281167284286857897535972653309639753160278750737335888835508091738645462647802534170391390423924845760776067280801758231244471412387029133770615257744918620675019446180861253772278546380818148191676407361097895488288438692151263504656283412220103648780313755638859349195072909434552244687534330614781985449005321877779953824821061448721865501292728384883434100522633769433188320490439936132030480947004955893148900958370395987266916916868381351060768455512412762536823474412220501365711664509631388844435295722040044869149009930003886935275400076824799310258375323352973350794887686767655125940613731230263011397498454291183613586498298317368214219933822076093698161144976049214790775043790034093587026079038405218376662549115138099837871061432673612145332949685000595940462257826052761084364809876608489427337894050487186342915903446716490141398596007132251546025923157728261082587561718590895588501670804947200631352696238700819716718711862307739286436844813951504252790927990431614420322186435159034335474732982175344347501430692130918474754356705568557046366800540693459060069067920820007484479364195563687045361865043336017567339033084267336713144298980695984015291933839313631414772868600292519401822151162278505448397937164002474150226567120316974678573966619687938998438270833008176097951855239332349822189554649753235892654264246125191460108471776069789971373205597429404755648032869623180730012936074920278029335246245263633797693729912955848104973008046949485819457135431341230198010332387661434054184636568650931218922039865495955263704511336833397596149210190889134612645679798107908933276842398635429554714311542819398276394313460893715393685388905838469291868123504602097614545551623024732888455205436674423921781254142587082768205955489038338992333340900286983376856725075950582704969976031300692528123843915810863070119883155411526643212143104644995186844441920915230653460360985474923532891436551290327283035962195413432847163855832085202788505199446700246120101591125684654039438216745132380837973803915925988993292893297013732951840546078294094821142876198572592430305536566566766292703658775169293171374617733987184558027405344055886817382966061239335790062015848435683713831415263125597564110722166532092119079794455179318012221892781189439784566759763244175375593494080231125311807293790806174805310932909919186511372699227611399117736965108649586226941066057755836049735187990789419861019992026666354944655301797424681552492267190201309208108439830600395625174245708331400278400577537601180992793605794208092932626961344807211115205076376316666974497175214008341222142135910780485549054297093364395851998043215594888750364639085815528144273236936852330699019073925851752251629986279342849051673630904181142500498976844296265889980966759334591853392530409322801517011597517347379168007924889091545022731113180698943633697743831805031559362451557506843292270686713742633599863364385784439425064381092264559895276885882408763941230824426868986436538943527869521122127859173034432979935626736043398424099564478742557352693954893104606182820140442426750792468057075833241829927640940857179536239928012995626318849525411824650217748013170670230971857376052578879628887278038264169862525373461235298426559064736154806861878496149116456633421977179830264134480997368445407263469655708801108564997954556387401587480386234533640448726912961946449987978406598498231148122738315776345004414538962881416207445615901281663636540743045129775780766749250123356744631281791916115011695749845545968045823033786041825680761552878593326958159273125798850899702720249837968874911838235691812037408808161441155336516256307838432817581253867724368218633242197163558297275033893355868481229834300040800709270655310724332932296873184440164421980369326594383307006675061047757158193127126185257996226158167725874462327863768688681633870286521384204868493590499985154599531407486391220471088522687927769642640489121296618395473474200451294036016635027821552402211259056192050629652860765756410530520014243006340745794380459032845885750915202003288786861781254035771361845581258030498931420330571213395160092921672426128222137372297112348866338145894517067999253360989980478014191792857251914859293618650846792578242949140481187182153610267125243448545619614598743157873672666473952531344521236042492629332634962129038334910130894701701744087977338175380206764322281072691640889200805150513377366693091436227295409397561327953530160594638212290327267348562072490770118243764503310513590647933458050480452511730618519916037666917922477725826997241484395549741126012660290485537899878682629612147161834626777570654272817561039406921683226982684010479391185524003375036939961206944386468859631796714452131895458153342966540232821395874329139852980024695013886031783212652287786180987017906062984148098510325459840461221943680836666160440255600310451408134407696539775430668938465648595078561746528690004022344594818643939722362576002928320192861439720561595822178899475733478605165836944680358611678051454050436827972699501240675359283941607040715948129540655524618865715223177362232268109132999632387387892121038345601318158816120667246701049637845174995303672231045315860708601168670029178990306323915741946168401979534634473636096037505050243500405328816140920953490079843743876421056202156089636213451632686330294055764136902998448220821617119614577472459529393761679028527888485348029073654391154439519087791236998184026702206208646650278159708657247651950769138116072011790142581412647652569867225771781601149704968015955910475213663455424052673187491704838215753387059783307375087303166627959768554747191860476194497130517656778324878836646115007991995130086929651220929201112594936853105949291255876737005489320288356466596142172714159376411010910545007991011367847314550696546976646610996582771896546206221323248967361775836661344890579897842655063166382884387351927835177398417806611908694995212166021771513154870770595652971091975219146327033846390221726995762734104907347876979802225209756977292633923370769050049986112953537755661133014906566839255413954402482219463947387854522997995568299554475668268512712742642560840801699160855782875369275143006347460205309430442156394007188075864623841368431984285605779134490585373533901228576787034877178913898256031961237937386036701316804703077249997953826852843040791154076345377080483504172569866993991049969247425886798214798086199629533498440269697210406814371710294982671602853207773995890010878168765567091803378339855122738940036951253320488669047795151604713483312561324403572742321558938715788791437445428803455410286524706776221678025604040260485415723093291471841765384050961827023660159822754130221425720805592397317947668965019345768878683458441341801658062351264441396375510350683320184160578319947764339836505172388567255883474965016143316668746851287930484339656933622202455823701346372867097955195637658458662683063332094223336633915930948212534296297598013729800797550222036153496725878577222224805144004166629274813707575160558422760761868697027563766616280053900786530996978022425389638807265452779368255522290203829084065852189342563527715609061799489103416999651423096420470007287605636988287479390635696937128095075467735036824773232944466161843184033475981982215416743282773776271319508675976616840470393476551616659670042500497727383918415249080375345300636611082803200009037247873527096972903804077391709406668886638439404457865123802858886502388950566072703432890117405105814282983683282194797275450375366623724144605328049203752878363460557653697095811732260034787068139957938545978634539423931479066467175142972119685607001857117043963394476018584310379818125864668294713834668280575651933646562451354334084552835887722683574849019589839015699893509985572777285985930647420862841083063184958396174714240055609272849829586814672005488564599962324512172198586424807630856364840850903813782349377540008460557217876662062504223759381393803098445764895550537346912096301116834898751281280193537239976471271142820175043850282288167091502400768811201863396845221163523557927789222236283533930276273638451332982454736090402869619938443187027066150462304961779234544349278367164298695637032940157654289206718281168031281748578864927520699458793745446839382892042805025907859637225884563268972028698282374998628163513337217972472574786006159745560962060964121419773438486631625476033008896755630923663978462292976543639673907345488853723808015594332553420142309648069003573471339073324369442908830780317262341100103530816806790394680280300842422268211548514173205316540548374730229335254705817467850588113007652962653525879400967368797501155662987894580382657574009455545159900433327490976529597202432683472227320108354274721415698759540801504901462667534339563659472339935894684840709276230701557206749402271881686148856275134936240348947955328565617096911854780403746431153521098240452627499933457568124040522832072900439035377663978922954302023876125777030393979556436858737147218997375871288767674581304367158514971781979091554864110246905842329276581113517173963864420353487414230928010130572676050860993093608769688253610234410562161970775645866867734168099118123248668912191859479055094656573605943012279741528616439526698350845067506767780211483508791725606324229354936611977784749318212394895542360176810942710225198405760696957821061462175055488694943398975329958072744059712128567144206510714609954852552393968998447501175672387687975781966737479906750857785755530055754469372341513105502612984320573880938207657839570102832702326905495488916883722059714044046571382291213701140596750904807954442781246474255614903781767766076747392319902597443834340534530552215135578211083005128466413657645290260892483028284474074061532161966705320044833280588777133678151720758872206392523788784017974351558109373270109431965206320874127928590552028155741742375052288134158349277007673664079394428450496531632326675229933255397499634501766534044169109412265178228628881057398061959823433588023475217503054398383822384767411523900794067071747527504370523288188534529900034124006287987725959854450582478297855267792294017637324518259926261758662692133680446628105451212462625862539294636801527619743859490320958746633197977780542606651721785176058706247732895348360134667069371978987943624045285781427658127430940954778848416520582295287022713650499547298753273647637011580303542997221859194645741294394453575153485191832413949702738662520099496024529766278159676680071573489319299807518308012589819735112503685533314773603777524935967202686894668736888864597277653850217544931790291953883245717273972415508602164263561774388174622606803793373833494593800055209580691466995456451543339840443744595663643606297030893990955463545959390934468684772484450765388734218188651629036712431387121288628730301038965163572647000826223803045165048481577242088292683099579747641187580306240263412220005126701253290687037885825094638510693911719949011899689576676373750888785957759346543235579201282871620826758385559074086628661918316179745688309962922705036813039571772447437224973768219170700690791536387797752459383655040962859883088888795741805355772319544972090282557425318847945026389044684055826615938987426969093050382612977541495957915087884761391827034034415361668895884698956134575760264614237272932934050468365081528181387468561542159025080001833419402243141737982891828591943302849444481514621991741625388925130340197166642517412321480594682364118126858291537844275397388481230640496514166366270803500968309729550209917282124781571378279843903667265313558136163050783183514756460561931475792027596741708809527807524974686105964139853887941542867522583043391077750440468451575606991276356094831055173599305030477569597426593162724177803308514889402464921555045893128616310948552481648192567379054825081538627893497498361396478004837860748197067844424130855485299126710145765021049347632390298556691853368558024968952293110078615403828545017695096717929401743891185219434665228617707705882911029922834192137387446889209381538489246467086391866214172556304563774600541984794119116331679251324937474719419858129036278839519467432477002200442272504275776234049811341351081107936040312115972477693533692653416760361350422589877474831683576474129595130911952833039309186754391081700992226307723397083074482243215106337007842191880054820909015939077616710842168047079868963543913640867631465814896983862770686352868254307824532846125607296565596869324646924662300073471362309735882897640273924310592677344984115824094298178629903334520933965019797935740060651754600409643616556634278456298306683252917837696457330390197564310191826281374807317584100494400605447174834480149494439483565164337748604437178705781181910566863098239605030725304153271904365264109590321808656404446993179800733243103007752202244491004068140486216808839229283464315132124367771062118192437803812018678283039270040764818010373906492084200870432787579071394755390642602608938967119890030067273318033617427794218513175857210779396548425293865427469795898984930130177823770927311774951741559289779950530191189364273637328934882796002270426824327910268121331542247840124282422330273044490741770933006188286688097910699472022664564000543890018946285591647597942332588421738568510169252226378503633599181142269331882259212404427235140385163470334980259854983472202564143602435041776556288297670824269869999016392240122021892936928537100931572790728429378890990668159367828578786648766487745689878985113197798214530457863414690560513535732895935286906255091252908240771789180611894165777213238895539434323803995719095047746275185259371792732358249507678482937570079224434879806121996883939163331338070335374854735794775533046228128580075208400313212892969279560794412172869517855497956454257206338653413244758499952509451431787082279921084914274029108539246331104795841393136159291766935524844796626772269874105682496369751267495774212904484676366929505002620946228710338184049345050945259084413464886977101986045192105815033101897096970272405825237500946126709588682006244133408434688875939670505688663611646710080893768826688776550440798314008250605735281014923428962656195162794253653072836172269788063080073160206457611694423745377963189981539771794984974072378956874676441442140366766130831522222162233852216534460221905188329437305418062557556170545620142478352643123610064064422682683602839342331266197310608270782942089299975870723830860020424093473245169591831277075968090306496723825294132247587306282129973928220509416745733241724983302661982360689508515240478104426920239603914968407763821571512144876453864681009496966168791337548305737598655708500312874767464312689081409086552761265809779187480243435249399169100265991794734927097060828319801564686633887441444236283590949121822009488362150335640325749576645108443744082569606593420631915268717990601577502781466004614604777899506521825205813248330754259956376944491698966437541553694263018288262622801757376787737770855352180310224575142613798429002072414596967289341492601434878059277742445000562206252115288172855658808134499062566795876152132965371110030497377624635169427104369084187956590383958443863434072287696592888050461870652518157078771025646255279580444572278718534317107096409054413713847949121421151095168055807889703372972480381317642251746223513142783556198043191996254442308159391683718633765939981492870547436693155663221770626409825106687119281697844945377771620778694640350471800025054882609177025706410535820081023143512113134701261350676107868108999494372912519289907588723862199546179819105281711629051794086717765682946811407427728249371642167279913012620127923713122082233210584635699868548238019962169709554722918412528206279569068941115548906394356540570242173755728335964098140007752495430375297122049275893256397511473240968581687711438330019940972829902674521361338124834371925597897339861154889532140176844154783653047511866402586113761064162053746806885733943749738198242356037285665090877144860067863538783000604066420855690165019062311303665887270689822142591624278164227837295537032723351422970842726413763912925562267270431583247195113914017226606370997350450522102999260171605189509624057957208973975739251113134307876874937142214817442123573048122752943344056232602096403892018688173631319714869655324972161615178925739547509525545981650318958299497358271294252282930403107581870266656622145344961177529061540537781381449990199561631734505903979699932338031084322418486514747908004252311191489196952763400477874202480081112635422470305293237359900270133030647541197946152314061179834275437252174565979458180382768348157215868888349172200466959929561340914067117708015638392916021743993072877379763946563038381351469048250557125890780941738165099828035912580560973385177768642157547308857973328623500019057809989791041916660687128348921458246996382389430414871495368146779627349005537485274270659653748292755097575011873054885067511576381930988593128313903965459008794893394238520886530148498458696339993031131873908061722411949699171480834146940396855516471464881688732455122444246075443509796238210880299313616962316751827549022733099610397122584021634419096453317119774755450018647952071272642644835964047737725775944657613769794329916215732819701941162008416627362575720886357938283519323552418497807297889853966967571539024382176944171088865700677001609952538455966555941220290869512004980350325878932239942671493569774565142621327929727388567055085657526481490227022793931865130332934641978896226793897470069271431126280464794629436989188355756956804213908795863117072692068477907558439191259556975900583801127523023589271443067253142713289096192366313013419365499614817009407839421003273626570560651789067734237240073835568580145567226866283822339113362726093236804863367567730247221496966681036794667684797885613134452491032881873139805829418336559090265175260683951142730601749687950351604442012664964933727292838639604178485363326377911416334391968416717773004696401139860440377023090784566302351452878839757233076076552688135218158606382416349067575083499386584409189439911183781055048850787664277088820475553244914601823684586601298770362501755253780025880640801863492692190399753547283003528123665623567302689128780696620898197253725307006431900437541567857550292988069352310910598413940576939981038045822801423381264471476653235311538509697012748530259932185052110707881762868837073120063207888241956987157640814994037863693891596251014503456597643468066919678667839383975114634054484756513477158495484493911612468916674141981454165942369640992793108706919773246463728831586868852360297102094640067312047325785903720876702793350069891668877741499917785796394531917695753263506792754706482644062017100562785496150686063661310262595216274694404935528482172287177799526954613905623765585804182240194026143992958478783611248477379882232425431066998895327031916311525121557550157553687627186948637377019036179131569933078996143432936467281876243839161783430312862436288073014951497640339490520031345590520109332656442467646080497744903148767680417724246275104055014021813874841738284087555692987991106759631815830287303057562819330824433468818046198464805866538763582100212197513338957248065863032764770184002582768308370528829721787364664959349186004771350821918770120261364438557079353224729304138031074879092861673724318215284682692870524409388514255320278632780113191922153666904546710641220720006880680628437909734427918373041763130409124016284608265953413515183584987791301235858980963907099422678536390823518038271225450264330407547276063700213374784537661738726913270540073794534609613462904519106430039687640432173331584820265108542311208560269990118482763533886483010630732663496513243382906952415174750547683419768244572511882038242874635759833033077214691679362071127628152387442915624017865047308481810164518329037697950541448953022549877449978071224032414582857183493283307549759460907845273258547510216900649185728381755354156930541825592843672764195885784323551711992845944108745740963012180416546316832304539075271487458536556431704103057135751756862302727927741535448597858917019153369657737200597217614629689981373646372404365168627046448350800297061237405867254487593167289381299516818052706295179827515322754435344683779884706861324894260695847672064931259313599666417975114686737174292781644604934695760713597305597099639227683687505429357011203389609112765816840857503093712209872138488574465145406840974079088018246588950867967333076718936102207268269700016893090920533285885920702520207099693872852742130104334613344264873485561348182520039613211623081535942320219727659506667511637918519975725774428868160879942158824986738872248949048777936567530761354210852131139516546715730384500551322532415430218596733089624743264064485588014976758571500846052676190438102026454498460333472917749394053776099778878007062895481758570684045622864204910531506059845849720733954767775600638140264224517737081845010226836203218062785600431954114887208902397385852006864044260260147066972184386703541930328763844724370117113416535848925222163958515077191987514786168787659824874693661168106545232840830797109928661829689166799631298287891074848200130530839524245533141232929086211950011992282909028485037803855387835108898729278204432828751456494078020206196881296171353574062092347767402946216118896074004838338538459764433346258862897460119215571988025998899483121733390819056964261628128823079162037069894192465108199850413144171690481977293469579534605355177706024274087412107595119611769647289104133849418812569263016266938840866582493664714519907182667432937642397150068114789751894858380231472525038212005220849150664729490974478878526060447571043129801825296484915325628269607772536371813901145263039823418083427858323902480944870361807548134184027626512862997590492185619418734085929256260150973975801094646982567354228368451028627119296248309932099144611106293478993532938264553646514644122037673412540521019903072041765696888088255551600336357582404398054887795474242913069690640787618066502691764494765054422483195616885791218950632135652146842027519342030721790985228778501170781573480421428600970789974698113475781834667930287152441207593284136059497168367376290261244877924487201167288806861917195835890589209132642972620177901336108440819435130658607026258230333907381616685198751600291679517993285124868203496980143240756214693774763701304854349291357534528310493467267346087776767122980291604554182279390567592082043902925955038949405652864640138393443572022617839437657790668847350118845486201402354138844914471524531924696119651599980004833177774676034173267590944048088697264649447582293614843493242242397049524378664615651834901436495987160612935590079573500448744851888021419496935560835356206494554982796133909980136913137699645558725533039227647727163280754002127950596411387368336658148013099741943892444576470862241418465374535205238820518706872992088274890468971371694090186320906091392535426167720150556791055164654298739514894314985086289278336318382033830679069526786847049504417585393844762061000720025207468584543847048468733034486832349202174358680809622828320563126715580084047918789917660656489645380906564768691760134924584365427215159892045426484832244285842743179902569330036190216250229229296818923176516487443366794475693897609769210534289238648351591389783697968688793669419246037554803652574393301854429689666412046604879251384959234814255937352233472180676664072040656143164645673224340384129920; 21 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 32, 2219, 14801401, 803962474296552, 1044973482470299529056157339250, 1129280404135815367702968119694638453692803659340140753351561, 3684558901654309734130093540300762737670378099640966081515079832859435732470009997617590208091128151330235312617125696329, 15413499602929889358218393877193673068180237490277660268158359065179138100499980085918126216552950847227235776264352296634110623831499377662722550320284580289768379585557322010403849334346697960766967418197136221783478303024748032840034689512, 236590345166815318220850387975547959623372104579564583980488042260318055144429210298451681902995438062626030441259561623102966543414579669211438791826177375175935516025165174341834046630981279980699603178575659124623870689568052556163335283760459726297928189552203694607079705448019949411010630031010963909334365890475709345232065091123050313493109825942276358843025770532623196872459713229426667100584459838997963530405105108808786031687614039985536575718909476397093596974348205549, 65100730386466551635924426962262782354282389559855841691436424786277982498218330764007132122742937248661308109170993424428720812830870743409252194679143062976247573336440171333236629757654448211345138375146268577228065284659401122164295415566838401707753362337658157498585701654635934272862999577883078040643569236982264472907500286044445688863734667177551320050608117641416526870271022159951818867244197425936215448395082356689617697261770541368361407191915559636365395145158527676730232228856249413663665396291096738832064017157425429532001924452834500873088725230307598988503861706379257152137750833545941720373172822440039741909395545244142284666228373923653202832003046857625304496197801119835046855063993007557754472994989155989667869334062130301172265000887892581609537224997883238147633355720283581735940255319841770104060362639991156748608943734239358962738264612260863245482027806665853363037964055561599407228674491151023780606468165452200475411766013576, 9194499049788951636282077220486412460244657701697409232360632651423092809805248879258046295599997849382414644775600251869928342398176598765854276035332385519554327689205092857945660609502037520983649294792955460385132150114000762112861955627341389213452075245535640632218466400181374738896314396909545323389090694606522900706261989872263383208191784779074369988953751405885076484534236191204567983099881996121274344087381792448382885440604028654769175380488135950079290445582081683567497924373618807923625312911948177802267775409015471116819692642096324911944630486216163569276253153844488162038225909964605559219234586385357924999107726932718997764328483643258185520792664065834614547431819032043660186042904192484819113602629686239488449356752144377905665339704923962615610049944953977553131535139752072874089129210815646868391071779317503944518641523149252985492038012572235406284486892748521650062147978103152670051497676234700135366454078696019624073483653040941187482100610384199130007403631471163783875685747508609466558167827708648763450043967751417004366077111759828882138524927733502442610652192846435581595377056074656225006258741278748666285250526913270796762520096667277490298300440040836753220952558564054714492793759852417665829937990223507985698117368323987601666758109155845318296054489137811013554613109349869108700908715964050769039480868739606018667171061443176988803196724776608327165194065596669786251390976245038652051137203701307143984552760542517478828980638882858269357324105036866015298047943446886427579163955475020264072490269152276429957983186133002791561393117003001981375049734539603203855781750996047195735802127426076949051995637316979022348468555821121394802062739884720244075767239951744735854289972517944623007370603740175488932647771557357858927739810168680733491412470584036522755380740880085846497653327427061218936178429941609106210692302321567466624242829405204092964424123129119669315365, 89828705737691911946887976247926360916192958259542837259088923125464393799836953983539654211565471347781588616952974323090571288797046704822634261163281392001448320785331707656031139086079095327876156581905287546559775865179514516652877189388752025220717002220883547490903634772779095973474153298787418417471668460034211969570558534458666522625303541344010175695211924741406844386265963040204418040366793724445049536930631598316922157954962348072423627028729035945877015369833239903921415564848574682258625271074883306258482524897565212331624138379459633153892953093096282400468394597058328544014488350091873617441753721980940950955814257533018980653531714213211716353415447369371419366077916344423393052749203398832103299478406722504788608275228331984347492577122202020790589875007307000752985350498786121871055387489727375187335132805665489164888641874099585531075556506233311065770552954800058702956375090997927218755374957049048089374683238190737315253356895242656127119731873609463834724643432200339880057375936365731404748146298232855621374363342149413049222617936595659540854196951580099892016819665497577701480207169107280525851807534210919148357334723364099624457707367712915678864729616051101101623194361125066860367239194597158260056346644209345576647085612829511649023211984355987426660724990978187934281220761551421770873242365730449834742152741369991091609361910752873292610084561477273837633711678422626526877090203550446272034777823527560706935128264661257135987208799356568368035627029971717962797040708123129027478741244659836825001237000783192615597915309600198007226980040541384574222483733394040354315357660915549677669224759457746636833726182215328759726185978098733829333917151918005402832510119361305804733719250150088292826179917419133579353274509207318090051620896602302097074856999057851811784848871398366914751445505119585030599565881318396097653882754123268271610325741989745260226415264511261923624602544904463131203511381650092162316696524875936346289189476875256639876875066139266790084317760493132452413071649173155370266493589061294352209380299565805638791068789138066425284989483304443269806713364352406628792193274704961348844964966167147114386119988386372119471424982581106154215597206649196072596391336959497794180229742302461536935922595322019749239198852886469284733685607872140122278336736783961059604034712112926401867733594670161193608918875144830260405391800306934347465423961555430438729864241951186358148084008402871004683779175102191605719746791788569873602805678049969429498566246071980262683687292997029525929938379964257436881695160550416685852603478801245713457082353891237444361085593159777907400511040123916872983815709005519524951340767377336413516768517575914540482128556934780594654970239328876366943311750333941393803694420539302359108371766079283862012534246698597595977379401937606888482884449102790338327287382343706797918380020208644786332556090554590089889132670361530171901978447007491257905383466030185715522404834887056868486424538819406235082080356267437469906324410932879527360333222866554888736195459717097170820004369693634971367655042238991165279963776361961304915728139983767617150740936169495103035801901475828686013329657601644128162410620092565552470763115087588124590108438380138238213066641618528937091357215068362703548684359495241706014184358910211491837069005674728695334694458923105991557752603846320754805628377125182216224324552886077431147175327699567957658728000642776872607152276356547317709061729581452265770789289277399075095091361809497116417218194478381395778578691691828808089388166035842941332560531296437202679591807473005692581753983975276405204286490610232619343311202563286455241634477099263503537330018264001586737600692921280689415437853610999868813415584716370542672400894010548534680782132535760546800784450922284948236480010796754380614873488143972735841885318, 9960324258325188168804815998203133815364254939426010711572870313226559188442179411173530126205424545445757571608752406187664031592753981148089807987838457437430424062221348651572700428941689213256838566946797953422236610268508077945747051646785949681459187721716458607706690716198751637137374486698068983637327144068895331914955391060694189822777435742936037489283596409677383117769037438862736784609597978342219385594315654189951590764002827027790246417372661673172862092683362588196745735974739621202079770144685562036348908137545450870437885709593751279259685909864304660593681120150552379149519394502067565870492265651555783244443530527619235465285107272082436546034844276155693485593649844315409925712337707697305308636734460612083488747697106897060638757469843625384341259490390034251125541805261830656094084956543809725554525452219374337271335505834198103847092050921923044799453700808308510461975274637515582412643222322181392877745287959069877667217266547903483887852806058324037830089965822186036423142558079870235401080506755762377426016106841354639962168190039525496819292144669977247446599524183955711363886492948835626024488129500429475215152618891788240085176204692277669742022507604354683645495466929092491502720672394376891693152810840165948480845108368427985737072945389731562569903035073062815068903488861542368917175880767405719352255841770729330244664848712822172522780032416219955646218201595392513766442842236325983680950495904611403240305275140290754084429346707521283256408188396145462502746352222941624509852779764203241857713305164867682016142510813464115536744349246753289223197246592249084520313920816257422265389668335268380239287969532215150524039842437344026335479920253464464296291767517287237867369045486988553814058808305847879931464131639354832515813208176161876680662649614341916812193286111857328151535786735227762383095442600022565943503697633541859909604399140388629427948845352975143636643216649361036033845771164623193249231691616175446451959639889453257297003637037067018625303326452775894214599082796223865629747027494844758491305656952920833449195346017474412493276378007813691783500288948140935877874962915175960404180665316674305509236226356679558318639430447551173246526670870420250611060631899772510854093095971831549764005688071184557720952498831442461577103602892932816232463376568879223488431365914760743932933761219706645134345102267865114979385883236223792494605898793956119279104399360480922494146721537198484955376984807120254592132242503122867309987786877143983548917116182780845923548194630098480415019315761719028368268452316073031617963224422940250151929428606219425091270626298474605905986615977858302596157771984188438180628408781874600626714925091644098574945437550186366726551319032196135305226057380063284232192957928774736685314642336227638509642121307639324188300359031262132323817035229756020804887827687638489700199786780109858680307054651062210107621186766632320459088916576318394197785350266158826892560676255257085835909271541029951303161358612816677458056646992579531139989775329350932948767203270566042096369461943040538474086866693291306736898886749009230373920348275047683035291670728516378495833713118228193454386089655558579770884566187617581511210069676102364226365632895757928745832243423590152000215227360746348689907318371225644824965081747027230158957100969905188819332032584316574760913503849991089098191806673774127013782820026100350465243693507312251968742077595349998283209599433734159280518582957246716211554703815641622080925407003927928235886102239578282012984752114221817349990861453114226116387205605872346063660114827934070887719106862735887283066461570621161175881663844182955100162874405455898189905153779742052093028124249198917941411760188308743553178498648782567471643956835937321470674175229272557135091105718625427309506093128274775529968202861781244838468194122237180865525566078473639114042497472099933233941836444746889424610954332285800174329520271821782103888572863828572448571264382160519411476005712985428405346687256101300822538665720307624431644410609520906632229853445415481740212539338743078486295776550222010793123637461725170403111685511079126228955404726385262411615045113203563493342748633906297362398276395262224321038173411399417517642303919974054921835680103373241298044082005141869364447574955713959660521495589119814121163246446765597127468691386494905816175091081484713284575733366689839795305734910815123483908901987684450307522372276488503283513209494385176836966091220878233212007115814732210908662226621130985568995508953123908770137990380342741691668937393521261757526786894427317641303485114101304707864908080255169508876098027243812922947504551801901949625842070534386598831488240428653112696056125516643074488006891221870813771028298488694505121509616146141247606119098390527894648640747066031060203900107293691430363478720064255244606392863212456820699488189253970903897024257401559888651872948184616004003927231241577620874603038880339121804982797765772716504423231864489982673240333463329580973939880642369647962520414668759526299216164542799685421349584527519713396713689699306616632451852888213611917839184565489809145235369835712065221684402969199338282595858205103979360330066867513960562577849219025164034797016757738961965414591468614436729371465713793522116486807787125039597155368825339443745715582866244340194169150942715711102945958515387393766568251084605255830827269518283553467579234394370203207422884825584686953850176454612646066610929729583629154197174716448247798709917118661975159829962382486460950140432455159322033292679720147363322731946035288769846106172304083822702107851900507475511685369715887256110698039140938607920765012496319384481169645920046924707732866696594838767315527202805026167777817888650466912570322185779283799003540996355696261892647720831460592407792571741878552216959400119198863109477623423293752930817013895250503446816314631034574800986333206262558635289117542705487211625877845914987681166224520151064052576467506344801418335946281617233163755578612088061035790226897392610689077970552809186297386737537333341309951040740228430162418729367864628221733708068721779230226150992501626306430551383028360308578869282362737197499192316439053682015464744396608539615254362076074217927574187034353578897001416298610605637838107312585848899908245635289391392115567755871451794288779419430703708055556691136523035854412134062459813595721649263460056129741406251099186837223230800069040606349674297097896949867269522816478968112872238317545477651249061272986365580380309534863163663714130547474585113267685385516559264063215347962383164995994372918932018911226057280655368857109212405470283519123107416675286987558471771475972261914203598469102770841571489007827067243016492091298671620052768934963762297976093233064120980980269777388538977276676088402535494198963195542885347140697321637037530328318284720086701011224514011120134226436594882696648412553362992159578983634934983786819302420997569728591539404743850363878272962785833827608583894512430294090045967701617281713933110624969821547113770970413652943584253687821608953062349035480170363437965048885451567965535564814591362536341999169430318838951571448542385332542337342726977272242565900446303481723105711091453424474248396558961926896050794142225946367122219482240157585768723474987491920515089080833135730214710888417346780403204567036679900483834162771450104354797778310954642767837472823774122409399993536686533941741642183214210607316954845999902146583708498249134847698262732140874077969872743430317094578223476755749377967816299219327932819019955158138429964333699950176660294922934547406362002751470729530721922662414068493876709902710701982947182657261822631509534281203110875675894, 109976811542524569743416102865088752727577372040996695766887933149861921179148941473451794947800190280676136775851468965062045598131978089543447304670599996954627935924375182313533171767252927115407093301220316532019539969966932460729185758532719181906045383235740180126284571770576231035075244354503586105385392552308392687821626701748372681076871086707382337410779456578408267518480179750162672402317846509624554952133184606825844625266210037898875026170910307617794333529513636582773994468498794936429768895601837680889961050546448528036972117870376496282457685717029821808733210517320480798937274880381795353763695185336944353268707206448261481549604550729034346952864988612454200857576779322238939381846902458783509304036870650551835676960206166801846492935861313412099420507179053504552748069343740696593075395256369004551098268936283199081240843624231891726074816374009212168069463124564186882126355319761213832410911006039471698876140997274760846557344778844803172791178697136462972328398716527188170967012089919431836579791594489887404006183591804455883883430842909056765568844969939685100709086002447973348837270753682177687352509545006788662475936743932438377657236874008971258122305522405922064886222803306439501147387094305648703155989540006192239100371566399340773999677880130952084172754605493439982998420462169342528866466235336030720211326075912324072028822840656712903304842235662353684816838201027629731930944667249464953876952804531855849529072892459536632365537938453157042397100921873410760392880455618091082678984637314825457441249204693139428704407892267613038139236136425645547171670184092618176817729666832491829918518747742477117978116457297869030014837222318601963313954537408867595080676058891868633652462141639171669615708088934495350100960266186793305119126631827815526076065721480392246666566511296577858587387455450442246521438196704661142238507398999306167381587521239008495934187492728972098445420040050748026844908552926735356334439219671856753993699536724811800055650252374028810077284516583319435655779675730537904852951657764962874850523270084570831348960466652131755891257641587265267916173438928341368548917632761397263831552005101806280408402928906657932420204582003058685669652004355666155024673008374868007293571829124410499672149174991990897511990497988982644370484025091860598469930697954157482558728442427394362500175087484480999567063781521570270126188942445113709491737669558131777857484745144180711127354714851880571441966855459285462235671992585602514309509557948689978325008414417098948704945853526156655920478848285900147115318988999463519767056356131262741860130828375612876894120298233752624967518696718756315680076455321081441679629211044322206133684869599887513306070264414634357176827745601403830536562420414208231257686848611259311626059768595486929149196744060905963519568111013375112388457266490527933846972172931518787002564157034285889439750013386128189093555084790427962374547855266088433429502352552836482349687647263796316263972669086542366743362491511308845089048139373471812894566419138521347580356816231802780226482759613702333849942855076082129263924314532332447804283183748311455713757000868298320160558753703152409339324943470096334539659877581694126175960986475691599278832938488865330154091006051240377651170487183821255830613014662307192343558817977638486955901306226224606111949818306393039086312627932595470780408850443192478187045311271539165538402473824707806098280789448963034739632897468853704053640392012821571429998907711402838700164343892153294908580510728065688980488932762568854333872115633634027795567406896543492285673529591447803118390310006610934909957721146646475195638395921552817808455760904879073013720607595533704919716937852567832692903396902675694991384361598987885969230917451216152459234756006133704264011496481531782516185207735275277471548225770372033035597169334139237109147527466231569820066884402422783710495472738308652352764255943162480740615265420196838487424452402362572123034985852390440819772835968490762304698360052281113555245754278641136604731612777916871804485131360450947387992992100651285316443707159596640623964982344666657138567724905070902742783369709453523458227460961657267763263441619515890746825424322506409664960344385780706267726402618619872787581828708131635914756265862558377988135588077130033347462533339105500719841926699526898328177864472841424653928906785193173786015520751853469895402796861357782620851189404961885131937199886932720328413498115615213059368435100246257777556952550860983182202999738800020380207671484295714711036994290530315129517526336929550397050544801721697398164515594275702079423053942898984233132505012342821997002068146668780570896364408938973616343437057771774009077361744326405986670504418004763448628356092249624120884020001780842460191234792708632342699397515055364416206762352661356597815897162961151513837928377893512124354122414495029384836852564384190218130642547421957094952308319094889623625079658674661198191928046848143162134424690004650632681421944238612300982118103562239451772986172388138871628518521572251767015871047678250497382824304520640623302375109172108557081059769410816447554530243230104894459571422730897933377585763773717015518736002533383973852656506399776120725783309204874919955927562068773345847818282088205674030309721505544177725996420107283942791184906392914833802483657896425128539768180185789175520892154556082414998306904594412671652392523081384410984252673678654768333935297343640540469970868576667683949396198387639991792774176151507662752264858798324797496926681436418669684698880403551892087603614281821881359640252964420271299625209484290334992257794835956550699461855602583747352137471658935123738894303518043121884632981652494978748338538793949485765670785347600225525026347716535516608544195773271623306383415977529236886599567988202902893822707338555005295986015948152908333658615033726605024323332928618780897566063709241244638194172751302220463372058536820825143655148151693002431144370664703788043934822526563158072172991234734223929653425004918392260428384065782472504511683788810571033197031551952523995528260368335079431446895737764920879303643398841559344709566750996399984548137241841227186810328340372327793960440723346394275958014171288882432194582292480336850869986902659877105932508874096644481086003204439595879637927580962367364233666760338398585054893269314233457003996579785715695743434868783036216546370624243590978354155913423988453001822230767637324384408204608743108464782394530673968976275337221813253858198343512291851201020724162493013994454859831244350622946092450994924129839700050737713800615439425611006308475053828436558463831652755641760582296443398585783930691300260802995522584296269141588290622328512767825696779544151220719207552003071231689971158744495067713388543929519894689966560417694439663637057745927345486171666902079930084165526742813053166227254808461694929465012520207664886480986816513470718584043780261447745292133734078919250438945891227078557069491357294149204056707909385663925042638393413211532250199764927121282152973512430763078927363050150405574698027286375604986803455513594068706667353558691472377738712572946740418043754519811643135638952665860847104441965570854920923801423097464440704339494539756434269062310067506173238930278907742298250983676351463044997997597523382585731081891469516014443608498445455896928131046262123688385906913829744304779819007194701961987304018495294014790050611879106271003665463607850296927674932634802469619388779202228329057128248069481600583566645939042422844993118064934816493807942205004588977793656247533764166147538642883365393899246225037544787670034187478443856950674611538392374679575238403222929658701679631959558671567925333382164650627716644468719923207992451689672210955771019638989046570399260456605539783781849017035482630226141759544390645062248087368078245300893962265962929141678913423068685228104067773906315064359517714715297871994208719124585562247797402936293968862782839867037266772676941388491663900539874286253904161524296135170425271053538731749305349726867807519858868729409609282089254263023927474718516147373304522214788013576786486049230508994002821275584654509902671796347434355984301161618550271544928559474119454918100643169753097698313095880439840641554098225717925839464252987253044448244667790301950402888961467412898103911182964304201508254700585191274373911214279429011587053366161268308963316689410112229122393393147309495204203011267449928113088404385665540947637775960283860488344134960576424472757435900147273812613653288620165947322314402407443688834703214847919172339714171991822309721740613618974180296057005708628988184658504346575312240895764366552834656506263594958073760494282136800041709085933981121930963928345891981864141146788783059628724224875990333602922168147435623562678860661888883145121487653563345583006766171730857334775757018961638018425041473537730157215641938645552011267803932936229218765817937872402242541373642611568046973579313017935712923940309838920736758552249924483162734919018353328851434468390157300307581523472470482930771444375419354766197328069093822732942172890118887684615419848004298944483723071977735294395250010428403580527361860944168752542992198404227091901786491495256402119121926383387633978499849751469693945424909747919192004520433651381182749806105131606193672462862201602413470597854360997066049942658956852251850620446612000961376923236643500314355057211651731076973901051994157302500605967258889126988945584144803424137335162439388726866083978280792958779653280521402578848619546391203530351890367327811501310568360728518829683126416166696533543554877481871182220055157241855540407892250568498429679325953233368565721533137503706113413043320997509367802038019743265898063324791587677234599645380049316504709554167624505729971192010431738498647162043206846326481270685137416344076496799538582034352370250270527673354565976070991220526407006840434548746764638621260918077278964682875469107142126025582681526207823710934353382529873818777790381912526382888289961791818842674365912050073950708693583242782402364126405182413198457315721101589442149185396661232041994804496957534220237822597326378915333806545271577718686122030640443715285934524649526913512276021131139010440006307249953452033963629962289560681734817063171174919146643046910004770526269855595160236593394431420924313728633580146179930694647925818636879926564947282063987728740777929991779924501308319274080856937778517533405388232215428068112856712953081748942334158925320015197825102439484083423651780303378653772452862636565194050471543698442030416851516786227664900593961272291085036539476459568060175787915363617717615147725145237732880888913601709688274030402594831051086259910596093762416441979967932261891357517997595821940107348207714798804027519606453847558695550505740372912280435202594290817183986824321892550628323367234062078809008833741616583432292684004207839294655950170345931864278815874104803517474435901932530296977255812448985517323085308479945101507324241792642827767355727302860183961725891204403338070087384728396054102593247655256205425715237301296423196659853680259607956344682957301502608136640215480897662014128068784515009443831136499808646497880121073521191774079878052374127847822524108145571102770341769647386152668894570446323825163407720524474440583420848519608545530530368678666485454695385424874432973582803814794836244536743382679985204615485734059502622297089189420004145832179103454717334192104477258888422545228498934963913843200659949453470401123670116670869504898142005491818170432991196838542799006870834179037890564667797836702172183270027838984658421608343513160461542191986759952936870622105857204072305598516073331583213728575801316543758284211110803924583230582760756067949487713337657209858733033718272706350263517776825713413112762974886293293156468708651442592158546776281446382413018262567391642304272034732478988099656907600528441075109469250766176583595226626652649768627587090792963737709540135246877926697793860222491118294586295539919835912215458242393432799281444009732119940266008541654697298871015068892194210652664194392960561630269953110357408799887444570552873525482752175874558835049667701285073815981977193443100611738962438702179967263041947865721367518942449446492239700569666003344258891751057125925484982218979410477269904499909710502566412244278801134678994775928729054319507353271698267523084655878477827699953672633112107451477114608148350850854385003816061660823695509831271792565447142363355981699709418609648219561430953186594996803584210357446086243891673579566161672011912078415569535271113279786647965954073099197752354477854104406266596782564110601101981216184683725146350461882270119279415668165318946450545630453572178702420394359610352869258525999444927325976212593911959244771442062012345389446359808894832645696243543576091315522240956173472266336901446684200293529376073881457287469044236429546180963464100990640421880429191892872355569496341425976861483952573557875712843094030665421578847462365289870719836525548627197245790644938193365980077141166792462737844985698286784894004844092962655660153142685235167674070957997042780997296898390040318042023048157286638858314442440626065205547401145583047194067751880774848867854265021100680804977351677996315266179413607769742581717993667919238767826491235419112424488488465698647493942523438853011250261244153041690250162095794364241264963855093034093800522410382511589790422059035122068398581330724119661080661305677258173823311910388096948167336483304799869354985179974406676255131356571866752774900898683959223437716314270706598570226945374838808725086083275187196292838892514824640682565283349538543288986836838775690093821067093515134688635389872115745682836205737717598092143327484176184550731383295091215917816234984420081953762016259700681667874590637444146850680252286490181433462718099996867178352612549028581971894616556283478416487201157315874783786680865869882819004599221954028269174689914016800367437616106776390843323090904331625039287156356743298570086703382696578860888325339220785457237655878989521789441452316502945255068206700694238429097922156450524167167147669391435841925954719369436416195540457787605300179798118179541105251276648578749096709514516693840704660670967910829514570041333680179407443520282274000304835829551298212001738390118413570065072222235863272355005485541814003404499880223219729076370263642798391899954697804611620462078920847082295859890582290842568902228760888218946328003828394288458256962540682270987374762229328751030891837092232202476667880725244450311975147395030178420007552082099974229112693249559278085588048768582235760402823571644781323948574532449540826933549806746888311837096194785035980545533441738011951423034035015789643337026690489368241830362030879760391915310825455838294651938939607960055701623990476126619827742990775101778490460994156880306281042808992359443845326613279594994215135654371938306641915185769963885518855666128164204043863052437273795723303477486020399444148795451113677980884151529164626977123695036178039616296780663899382477210414568687055313097317454439013324413820044633787246299583910525116324645845835720152342397516957505347351516193005100102199529334161334726321417667110469821985662661396003377506715745236535560619906989081881062173096474169047429310819479635331357176195038142882997308536296161386023605406620821575160875131975169931808830308403048735417382707809343300665885, 31528825712385858242906933773826893594359103104904987600902597738611102506289489537188071934798095776040500004500137078526972220178460568601260180115650335631028737924958073607013307706962807674223260807062029611819994095083657480452420493790303144428401100674223222242593721177622299098440670590080440344304088928330219725045290523106909298799210796620418915994446468831742524393272744771623586789249652591387940951805664532787412546794803467201390406910536834151568210489880883754149214715694302758624449677621797603124307666957366272732772890555723038775270543037698222072801883102116172088483981362380541673997863298997108976961923158553060962964733600460979668864650542393396201881287982535280030417608287654059545038521258401316401776660289499615681698315776200150989571938652846281961546409771935871965337298295194478951312996212498312343332893181291473536116310996978244198143426751277660381592582534927226932869147886340325766081969979612708475113506076593747237368055275976057517141027490394186373125275741519682506090790195239510761329890855031405240175808621761656029071933380612127772562175962600752729898030278536597403452387037074880519642906791546445845827974170747971292783756732472177702468931025095180283769104763041616337025151056552272965171232670732640661261825029895750132288014771168534135072578581407844756156044872509316202347342367002804164010237402034193642995963210631871424561670039697473063923737016834961400144891641505329609840470051457078300698359453372283390728739571145494539853105323021962866329217610757053323972010221311629035852882142130974716277762555844682440784582556238811448050564691284892616844150784438291913805296291281560603717537795939456913743918419041730522291490191971567138480384038994546636959577532996176312075561143609507307155771992202034762930452083370266707258679404061854497916576765204806431105514183398502758553383219210285151538906737127680404921997111027267675724039501765225545896910717056642314943697178177255401325739520780439666109237520561869800115704169467223066581153525536360563155880063026838471769020519055902114453752926504044217433043835944326870146350827564834372484242212663843126928321315936696012426669182112520512246606286057358111457670051445072496950090643125518312239752366053661971693232688550743332958307307386202918630159348560844241355842709156374219007404388507037378108058061694162495143026033658418739010835913591396563157261060124631623741116965757068574980984596758475109121662473998606274390800140707808656908543293624785055740171936988363925605187937893111719342365176712311326922309262420325607006588190818356411826631541495132198291315385141652111664862851477549144560603663818107395327924301960296948323519754194475755005376399740492148851884598452700812586512297126356809955548930203980580311221813941680554582674385813960752687944952710937394092701626322329512297618602288271277436497990145590940141763318215362375713839801263053635319849301748558768520736822147124138496281564756256679092126550505671081866215316837109304746510030840191117791605118480600065095528955314451754433288724913720155393833799255596481509772110018842081771196188100889023380617532997873930409329320965650899316615675476365757696801016614333815201121592930297780064173279955747399628622228582632254466652510149828386933185311965444547205301569685000297019683340507435769268825078616067509779094239580385951391612103849981724555362434083061377317499694179219838712309876696208440295552486824978360268289527316244030251952001237976657335142485330008611254718802436613112280907846920875013072472526065712158344299133163171575161311871821379460839259181513326812528998622975823212515514644543864349447721599068789130373776459300360698865535274943953567644562845447189186025989782172316930030735705469370417940750647146351043127896065347638140962189360199966371466899040448984426096591835642659803642323977249551166276551661308454518257411597906453499491104815612319431885897725762674264964672259660450850684015474617981885623876351266887463578228810028485309740322976184343237263580888833030502753908264408037808116215584232652961879139996741478180761358609203161720044208116060198355736391067933854161004859043762568274312170068246950995163290664869464158107688777800285095382350745658740576509846202711360170881073070957951617971344805516328902420690332836516914181871364736902826805867195907384963121410643624607299958492590375708884707320214526822869913960163374535088740411725420969121200090371086196207874306496541635536251666804167728896766564467358662334076498400959139149324334912081048255286558232341086773046126240364920347600881629112114249220656300357057418513066419127729671773687644452592403726284818236134828256799158640572076522607011227833364458496308885830978235687192540975854965156894067984340537392417502717696610911592265907509067468781390754541623735726388059183449512738500083739274835984820121987551534115088187962474456341940047627421534928392912038665091572712721459711012598438899959167326728882492736705504048115260219221985013193427336353343487219057600802662069015537989816752548230734253189917698956506393366125025398767398085447643526346991824955790060435773015043850470492855432945667500883105886775829104028182953165163434725757966655632181240624545133058285419139804063469243363436325718766283873288322304659761767729467665530796253601887519874409237920590994704707867936151036779596145096970794732340369612665115970129051018911976145676918545327700349724538596931982693330865597001921606713308123516590095340509151046768871693946997444572547230794540104730550138969834061284323398282012071209423986294233272138250800242423554743966807023512425879394998874365195674593692386100478894257536887048726453895366481639991175519520048268688629306168955571667716524547540038821170433976090535386351213986765385432562047631902288315750976382628325555735634868001641034077240291283413489065175442228052680540169535782880349087719942197283991333589123593667384862875467497270465300554517673226288048040707991944689499004887102667367318095885119742347366349616945618808540240081408862912999779986723903548713693633255416642488653963220266187162571879923724006669490816169701441523361294602135351198976703140171962748207460738433253044310088240136922359074884091519255902318186307899910189310215685684295544914829159446904567966758032698585686126456407070322000254807338938145631841811086151160187668027016064566305631454668782867328221028178410971903968175842947343068349867536631054947073827311423512362642353136202403077980711010463897758421933954396987556576158967688014593905728229723724008909625401787400283399774671622470043080998391729767058262273077986531709541506815151910443181556290509784793306679998329962463244256891198717160461405117780024183528744930200225497495375518907204049160595456260400008665612255771912202767717887846374891113385069077333677119826507235384859065021258650241098651693932437535231451712486456536130769972199390089634047735211971021553718800997500116284294635279610069675450850763026058668163516367626981134822283560103161149764251022112264253235339963971213927186598506436428888641328788970103263285067880991191718508826530273056075601927173071286242969403172960732054311785223477466830868938598109665352852217611593184001903059557463656144439282598056046079208674460273955882290776607796684959357964205718145219762411823445743969125412702963839336585912907165266220415671429907725407166224548815479758345928537238567207387647444304597563057460590432207323277212261095800626811107853709991678692845474990873896301103505902070806878065944138945316886282577550341653876865578354331290791176787845511879461292081938848143180769838327834826942918267341761704262883757419903980381827186316192781682324095860579599580529595820501453681203929033549309493823093177339624631345945636176991639622656670393429882775179303112380050104875329388608737990620290094045126575416157201565144910879878646623262304843605206261586177124824904721988977019428010060704375334603603962280007060969152799884648576096873851528414224723966817764919402353284176575327358820592676085502111454280094334797895122757287666951945399347747579228318278506963431201188256692271797473100108976231569453220425830965886635594554939463204097232137629218333966955788395883626701987298918197099200192086768975629228646071660089941277266561010825513856874366247929147073057952461197388783622855010652966062202144616255538589783054431220540531037627090151232856838373300088004947968765536952618188256352610457221552587078287228830630549320674170052026609325685194808776438175247841940968432604823156110037073142575759284340457605090696405438810605947016476157161366063073417868762258287888399786201238894997885519882604485020514684156846537406052221211622596697576440985192357070440035756784288576570666425714900183198891273543125248018341018383516092539090334170418730749618613470266087892957352544488491045495727154713581644834900250026691680796070547553770180102056522253044558480970786240247076711201216020895914300154373691568897715729889622117278615739435595599055802150697447735846790636895035103896706389344571214710097370111895271213700083631148348177705725757781700396530279326862018922046284271063989974643158558647797726658904394165244162784035908793447127720624160358701083527060583415321081900659739872092420194809535648305921674191528078960966784665840658556506251711544134900625063885623040327455574888833188689007227386993303156382559114090399100252355587115730045451187552400266828448689799701647604001696266096297103458945720529956434143089129210113641214538327012334643472864205679264561608241322810608519751060400167301979089630651914510110351009023754253011882860673221538637973855752898405134422140296752592876475986064040658043971644229552735209305464512119781708271252882816180987862730327601992979254083011867237405722696493864347353022936657003345648678469844461683542851618999913091816291748288210344239594498539050413183888033737236650919426598475215295010479385616732187798919254622677876561376378603779341666172957196151703467241174083150100254905537832981044059248069222379151924449584602545778307537529287254306651031542961093577324091763897229587649758510404878269063814517774390720643942304496045675127430341574630344018087060809427522067996444092762885668527370890413945543896166650275745263404351394102034672651141448296190551648819620190644763655192054944347338754024660882431989324165377728502453168665689098935705021408351129667170614487595287666633828027551877508338672059096464685530594311548147906904628162489980986682039696991242118603962387116131091254372092313193065958878980463407654060468439758921446910984317914510309848578350518169424284681561584364147628915725921299052866335191473101180278338453947115765974352563799230500148262281856321491201137137707842882908376004692312566353840613676603626204532498432399013265097876875632055980105278922662210389203555067866486626914376377059615606975021299448053855710113837232489858351511412125006165090407391343580742483520464854516488843719166259741188913409543158009345003616319544330450033995749185848878986506427042540904371056143910433466256588483655339908091541923853531612712648156178928117498872271319900856180468127209845605905364932695542913178102254322801545990849079341760811928337419028896707155272110931622538492655354720613248805103906607621085455159480117580113395630341084783395779044342233822077712911746411330102821158113373959107243851975511880572814781135819066037008367948843344484607168301460169347302581492193970076656800170240521734774268598364570171326157540443242168030854988767948602578462284599498643227515876330256374255945627966407723759070847992005917288565924672779070019254840267112327294301672618250307061336632640628694067722438783038029246292969479721965580029527238585823914155344957439195951936079384108609030015740003230011550778761554522831716282189950784612297142216710877516495027489123054498335597832372273373172000949116763104937201030899823659050185871734344324337227135617248945999392033691702860692965676466338406979523629814789313972562960766333238622790966204575168434234492030219111666246139206426702505213206282996489813672939298712595793291536054981422605215179003167210612233378243537061729750590948878576439515227421796375329530952551249006866868244773075833213438558101933826541290157368982605105819344737332765750574162427562984409464395920879230124201417846342011637625122689110177521348848786924713453259860793120510672443902673216586629852501353516580995768278733541401279326948775812667292482158048058555865176673427091193513719756772036516708949883618095287837601773281149223824142175688142904626251893827811883729095950620189186877416454680917808716184277314918412296984667162763861107253588761449912811064665092400605041634194460499113326224212030117114658980494762281998033233541032405106622683162544282284465216276301662644962145988283857193083244268970294488049705089223235892582243868646057230846073470986933840756928255136796388389279216266070170121725058279190990579395685113310234248132251603405399828060668026399312909434312024770162107579084521681642768132407154494392951298073708965478270849682253309770012533932969734636073289420070847018391489342278402979877653676171707242075624704708935899771567759363033312956328317623640747265169341326241929152059024961804680302580147875747791595156871752213167753604628746094381211478714140574785976564451142674333287753752773488881338142162398110024813660522293976674571638096856675856759329617000497506292535370222441857362967856480542152428014048699285843106949207654596394903742575185436277688564597250000978748828958516529035618291634452928103126209322161437232480350793792452635999017170342535710660187965303547431382517331438455246894376597027501776784688773587774878339740648104774238878121427990855142998742883051850942522603116958539893960541048187071306382150903308615320371377404529841675175478205994051956923942346513535222875071902841924077147994994308926722560309463148510493286201162025697577216466488408142044607893736836816694675948795348338910106855519878549150372641713315349965235676460791237172672017788540247792859289135839189927438768085887603068685389733140107205606799523493907017031842701471819825028663909016353337098073236721305603005943131933255904202385308326445612739925937294321293094805109591265586225552894138862286077780871037554598388809587471052654718922583921536002998547623786552263952133053676187863239530100154563351084976846069755030312695723837036856853102490204659366970045395726110632847085218803066747460868847878523039978132845066519970296928818384615244126989482085916696054938686746007735837027649698490151686463570223145203210116024808973704878459623812775181665644838994226991015363885762537515176586950510261025895196258732522272330914018673583655144209152750378901547531370269386929026695150198279214565457530572764483531402584981201565626077887462316074660431416000628481942385838989335254357520031652281471629250076234123627475495899526722299617962574521771188418896048578537204307155001867909802013577171286826538871880435415806823879856624293877953620528313667626698838949250610966850900076135297101313303241497189146317937673590136936313727639890875663326654021649056216542459132765999111768553007128413562160081046033748052923526229424752873106904906984087667039150661658446428679725171726907717334868954917351233950863827236624010460004489219187480558263512867435818751943634859803678926113057665623629521055281013338008793004988938467417938268674718746843569227558835319968602525799793699172295027309093185138983937911520989208838897342153847766281415218881466356106700361488985596561435184443441977205121614288431234864569628706013826792963774916075609408856986898763446719813902850838732178546926176378891191706815545952510172065193279431123559948064427480692434291346830059019618711862309178785798251590481260388184655969090584943357632691367843046997597622015635936982919137067177157624737746800392016778911851658421762466047793278195997626658890767656975463144082344124737744106079267622199391882085021349107220657788884093269030461492754916982122241240330299841857448471764381886108693547980349094809158993811253626925983682531394016945551979440890391410417010570740408782748758573221408158113124005585595514417670665756749279470440210731867007545555955565316975267358761921106595257872387016658925057643827850432083806014077952336423508482671576739071108407183216060173546132352300648380465679461950754180465284840187824997990338865544562614721369633902816619448685835745701832710990717529223273578969999055656411561384452294031134151337762372768892029210084091444645407911112412762530333833928297141413980085408280860985794760927791129748439843993430411030016622511453264564684140025260562191381148882443864258813199869677508984744665239122781271320347391254935525766261110669818950674309419886496800085190551139280863152855658888703567238638520332593471932312276941412065846105384424368530155667035645394542069587075962527716640075738721649394142498626421145552575924282294460152110214033937443396569536669773668331263622644585314785297680202431840440422282374649735004558011927155005343455650454309304209834688305516407684176199092057265639518250290715298836065797078055228384989512308497499386580939094481575498029438041451890238874072969531966557512414894337408741860840100904421555440102159377919554173314439178121407328685301300489261936688647949269552434032477454040289473771348264630907087026712565459710579895633738720305430119192395779851289460575345234907227987464200309400511481413255160538473743181403433138989204557224109332124932821729053998299118717457723179379081430418792423526538037066731522610794518058364803856602558801232583641912397848375903730830489426586996347923468265559117499236016575348873237650877650208010262359392284383300292317468163947326271432984555056288500887094074354046977909470479803776280974286548570110824330636422132605424415940886017255552676926274139282179042461219066048591093734083495201313708755725185855988742303134124055059051184367644017672148950410688435998597993569703825225747303646541683719651092099251301422108014895889850565109953591868942645539297281392102682210490818782449563987263589755868097432877548253391808767320896133012377462549785594639066017004241920803404168186380042059274432401980134482990707474343684757820946473990256652076698390689497512931481045295336774950927336981361502054514320129591199562938066467019441186263078066986189607303102851750779077596187645170110996428658634960836321955387806905892156421920354944957080343059089159505679456959595527914162824656658657831338420647037128413370866689807052020351043624079291098530721760696023755926840420311076435207761870027722062440989093368715801992924506432608635687127252603969149840787720220261831350133069701503602532094074132776786449070921320727849347683118242233029286219311922750566449530631582580329233518885466175849742878628070357850331130142083376148603276655497769666367646607404317062882940980033983137796692056217132035016797611790527315901554452257497837194802099890595462814386377205422768987985670974771441405968386006225121805391150280377124963143116072278553883883454011906268703116525658886916627040656571281588201042807497487927578452235962005820682599540464029240406335935549372241624273302318178789877446649393400137059674234335220945847619218056604064848221565624934075778753455368519527642023887742195924700279055857208817323990049713769203136368909788149805318564403961635019638761554748644938104375680005494481411884010991005435309741724200505220626905542505664692517931550152158274352610431711856918349837548999316191979082211560059382744606120644630953317772765361893145461467086441575217036591739715836073814833211620214468729802012875399495554615439632963548347942970328182788370350046632424308300837269533985158652879311514896450659807666504510540832720821487714583952018958732434584107877583958573914969299855503424678624195258605063443184939761354584058406089126629596520650874216866475418030234985447523295837286263614575900821809988798542426529404171368560135052428590103178952688127995453373114010313038064121326562849886408831125997431847682618935438558364436832591973320617385935682567027392814922172031507725849540166198879215498463081397125563690994867754244555211641426342675131593426432724257249682306647521409281980977963439146499306588752698987224990516892048210329895285392897107888086110030589717478475756696047445710207893546144940679035141249082481838657722161551372952298561131738017574098095380565584836788215317320575634275559444206861581283310169108133429634401147920209581014858754760574911308669453350796060479542274429200160582430289306221832151754265812021471865226360522402746700679244989265110979135534196950197833301741372482975704381494068516944703290907049160045162553725087622971904049535081339007809912568631382496904441932163579583279028353712890835284254946736385062199435189962516491179399200814466702300917774748063477221338081745099548144608330194419152704377228839848878740517613391549864062379434499645699515063535899563087900325707542139862611077729639563581864505258561856973317020886666101518647111821002896316558004570600812258250604987215227742013017177272763685435976513752822522509668966265520518536268170016145761694626463547674074067506601991832812854516652140295824436006985829267767132115171052401941016942071718674794387013124489176203966888689703642525982033734839750540869280844649825226059384880979591339317420711267856209121866328798236755240348148840905533434359128072556927007968411254489473972859270885596549292585464473854711426919656147184752602431489104225803706830989922407703397419419119374795979812792744227227695188518795327734421377861499516096519798406259439308073077645131046099624479621560358307785348781905143129218120897589551808346180310602290151766730860772619532689726724999188062737678293362361193857370054092523732995102875703095091004677635379077720193149559162936370336696978143570194483224579794651902488100254810318664939792475131022543718806356048435605608569905084156371860742634612407512332424840706462221473673450441554814133383636312371688175229640806910471615439001665698556608864372267616344764181794283105898151512481319808805765171433214211610422860755153399003729294902232790499733030933579350712714981631972837629165192436644376965748487695484692584904021192309063697222775684183184099443376595959885971234968423751234139893049724197673107428446620812871255317206137951479828411098478505267507132031388101133554673616249884508017758459396196925695675261659456795195253136089237123368458134093742565410776970429481324050246189938895136575690551059407038478841184303914385141577732805730221507301286362564197854177836577566315126018169238432906197698241018099858247667376514000092660486805845538936156303158596823851676156081662455219002992398417335898469142143530074000368536227536721786226776322483882533120489623042434907830016642660303393719327790873444729591835979880536244836074150540438158670193229753704772466160034881268346003201055974607869065652870307227488440567624067472705672646369875243959986698020584838949087611313267620567614057979326716245463557825999545494706440909611777586897961011800865078433773105046034610443235218995762783759901763561483627187931923619580792936067364826384168952957560052895019015994654119194401728934394160931217819564409885710530863749810137489572872002876652606835225870312244036654338490561128198600207089049025499398193457406861683739500102660591874923644826949305624859984039817277779961755288500501419751471576172923738493192587539704526667993752242633588066512453368825377538107056243640632759543168803234125431816235777150525191558102608764625134546255383235173341662172265617372058337623808107551218882882130544194703436052452865230660950108413392746826248854070291262563189966493234343506626559278143053075381725037987254836003212846464023730471593417167758250432423743095138363125228673988767825252363688597349972186537004678153137609463951498566641023293746000813935166213923952363232864978928567559908072501938995891737261020689801793988921256060429293556762699746431477347139364960147454612502690443934122671664019059616957632116386503912671275672289565977770292562586246370178992580869767508953662155057555512156473695579394127626653662891106643836056620286348258674684584400613007702502858448219942490081442833996500173229287960808815751773439887544360613346872929760903659867401524247269157642857407009572775126695455601203533777781101527587196993799799275885652624738164195769101949177528597186255121041748884846303213091195066463233819308507985848232239313408561378409025183562312018862175924551643701145166086769825555195604026059881321913197656088251413793615155182495048438956757100390170856676532892821922445153036430848233553202609029206047752279722156389369212986585319293751942329930966808017344620766641840049543872362412359452376077910935698289702896177771434444877834887479855959720369117333589896853244882902720848420569901376346106279602619090605996791503766421480270780397299881307994723360817395330689950513792589405177169923323800381394755863826637165694488747019636038973251924526623896319163010626539046607412055979753616825781616382406023331845485296642683254341080827141249269497766749141775236124757142475139885210275682614457724841870793593741849336482412172942505620341043553414582870129255002839077727382600964683484052268060907618381061054247913509691836099320664151402569387764295013834342563347750324047937438037516905488942913829059550966343019696098669838497347216011950503791691979911971646522679046363725199485536124821330417767471790674260319497726266954067419223491935650346315362537444655424067826157739305174676545963738910593885097452816168711082472018792292790064673724214160395309618124975305583564203583613558325457645194365600578965981492436815676294079930548350991654799683366009836954702846495702431116310747292324477177157270968351270949707314973679958045822078478447967031894091386911418698738598196200175390854853293650712798541668738962364332242696471177549372421654758897793856106727860944687649936264156938429667079158991370556919364504043699418321630708562409741500234756302983894899810718305831363474691622635084382523167636275745741644340524421948610526617940056583214383638506832577111831834887877123547646797525863430863413913135653835928666263558441574965795263563000650155281876537200019045295217741134743012774760471039262806296764591878787562882674998127994530374135233995516353759471388397574198913194781528880551959569701161053639199586136835752121622514637514111833826237141645449452400591183724634113983909142566597020622744032615537458156564743426367739456959963764170792383316639890949459721980549682466224427548418576589922490844804319622549593992592929584136329511678522442672248987954704810170158945296278752689426597487658579019472723015264906316167271903632941035546160300649522262342442472515635625528860654487352428802637745352310366479217073864101602073423201876613595669102821137043566098687522098660036552642957478728167184389350449628977596819737289125310199217743274114474793805454380338349302157590127991447569816588298997427541026411314541242147611093542780034014646625794599520187951927445909314270671083844862676899821125778675537067671999839391874612798953757671203621766139891744086148257043260785071921219946170248668142092043022489077735032907447086361692741192764745560680948258115879199010444229488126082082112825708038001837641820420132830585289209768396968893781789353644607066403752344132500985047252851246426226018921356994782747872748010562371764086902878533400068683783430483047566115552843567374934479791960112407650193444571148010824631063785649455261734442622807748617938379004703257435714447967153486288800923167081952317620935792586364025822160085897685908031175202691752691551453455668762296567857930624140884054737527262530718485879275347322292444792365234998842883654016828342406238033604332322306240404864480093986596285632673423773796612519021222610815897617464661058468601046612126692460611097935787961957871227882618199935016977497712854780405521087227098575631185205222230810745213346028339019785922620271524842108243917652032394965212966382876158554385087427573022463631159205934779726681462690653620995573123772292481383116451964103630414851044638382692697325223406269125358428198492228002619803686243570507233951624593726492066941185542670806447697741782534873209056856607794952368488060399969456727318279795050158928329388514616624692616642203571727132328264607894879357779143182330646126694914717917540133263392460354069068872287766086942501970829549823911847374432022354577012693325516149895948298296326764918044783855641126807233804033877023456885872612287530287239596438017048223981356710609025731820745635994798208079090237635940485585619589777944561109835531414391430026854061060777024782274177002740270795151561669993341593253767204204854871152490383999713213054423838124602336345043445700786262677801212379693663838676985049807178409534491414816741230450307097614072515640555323502194097576077517066109389781628554580140857533327888762339420028663859498857583753817420509572120017190504314957418266516346914307612439066262088908633562371533594120423904693623572745860781569966152474928330675547997659919135874194183257464273230375703851066398238685763773769024406663363967359426582638615562822030213214368484540766103227522180412820667184413852368835255176525942495438696037444772506086820635643736021057775733376142090570434291357770496159064235774141850551892554962610515047230002712672851029987642859530970111378208198731106000631920005433377159348102524760579476614307107797850558972554480244713025995805312169616880998405009188072174569583918917721987863090159860907920415890077084317479351894880496988153911627707646470624009818747339187134574603500864270053643440473921939703180414820551373492810804244477286263306508430338080765664344904789413905216225596830597502501191822394625877795489179862971429387412381913170562234461303689347729052306956799190916039880334235471118687322433287220792063953025160760927330647925495543267864649444972518040999331399448048063175987680149250544975049435273735223975026164656260095199973575511067233920608119140743594091026348969725671100841056165291950425098633579777942863644150313563129924539025743591484121489005571801793777252796598834205768982051610340445379708862805462658872229865687906086011148277937908310706969726432306386631392509573177711825089116028288932113098730361758980881724128380454664521790027636542300637295341819587704279515504857991905947992044279961449406391952860724590987605988935150011793439705109288265026878382743108753669432103917892618511990469519162070307586181295146786001194417050968977243368924846896683408659660887303895779494833472627361670195417139248855555384935208825612156924911764203108998803832593, 19534710004797247152895673514906792275629884027409301285001479656733370248416003109893192775819894744972852231802103668433094559669543662971083064541621368024096810687706584985380573483477765136531269429999946919180805362838709544795555144548618068287977525087562067842481559643587654013425696816321001651005250446478245797961457143089570084828705441262569199108053363867348630762452975757323802915942125529958112300617655612981667359627387560307545097893787296386875463846181514128747644150863633955717542583347008519202352774285966361209029268585610414348063159085286126229916851060225160117390124497373326636103558789501371260025398294492284697751445883504104802891056093713487218458609155107881541248751742912597306241244438070754713749859975216886162448386528204414536054088286899568036269180354406316770979866545049538671785678176093256526104246565055836436320186863269460531703749829004835472635229845443933005147932725692456940756610191578382179154406840457072520493043461009388998216309697766565146222252853578156644606885764491757935579844684337325403405229375481071765534012367193478178456691652129526671681290979708555502700414113686498237531302465972553510157288740698148913996633446271439765122124634075147111194433060700687058084788164461259816478198716237701251688432830582468625383104216923401364639670181519675658656198157094589751853168869468492325287312295844155239189381516304733557105203731434086328744279226672685212167698881676308613195707049446505004025391639849884280153598665924068540882352869339902557489207098573602121027883260362393711727583689590379868644288555219678403197014486714915902130257646211111657592318902327928969868991229516261825009775235635060471758276486251281391621039202815038817700822492990470225053837092493806419170696939027975955796407618064958554238282195699007860780972267786590164245145132730962475954770554884966799338394648375582907506694284987181131058150056085642386686795734641809757258298891858538815530171596772022484082374385888785659281736562455935606133601582716839436442549161048656747618106761815604336730912003590912663993013363858916900920054453520927505986288372420176460021674410832568692239391118441348463262178441508297120101277498482070564965582533223674865381338093267469728778296320262165908927759640007280286279253786870519688164048515081505662769432796102267407325594455449303595369621741626798714297672672152537518799885672766531854459788057600962026717985465435899627898197927297104406860895462808424362657987182979898667446461513792808054484360975438718250695790015791441498986880372447775567341889279391663507648945076448275355181763752012613296371435938443044862768543071313929313016418303678702814770319850605829606139107513850812082184564476213479575948663105617251677771674396631850000321555845099147905338369705091195413283435795207413708777419208545252833744724172117835861963929945374259261097200405534476523267010184584683179460812395333238662848818429704527663965335894113203541742546823173263826082887258233542334767831494344498772425552282057460350663433175417118974643661461404699072115813892951205348303743579320923882485700584202661749886732026800007292045155649014530226077236103253643708118759732027662463946928399668071835694357030768277563448049930180541009050748465848589737732547024729118262369738374390957714573032334862492309575446854742834667743335964240383582951816653928667438616346602880957834984625095634228752145111056900016982228113088025225300135389525580163500311465370172670911116986785284874356804752900633457885387548455277333594980910757187218178207921765325812279195242067336583812811901437313118197093736303880250274539842368123790524460427833588284069957804041245633701637551820714043995278850940428503902395548657747545186202732776835849015587811867595095847930735258894379058238505301670779387604735373535265736195204751593229644134066584610560461950057503774293059695456752639303620140093152918847465898747614163317454059336839585842110010278384294607717718581125392366683540974197285800604085387233413585968262662379811686474499828796728283667577449095441934008792527797530394023332122794200839868340543355175680852197451355230170997412078391298505671079330803324598695009692863375820853834674051913057912629063576930348446768856079912393488853511225532357052736285218300657671869596603687214257276189880948563781552118335765401018350642660331203506635202786452084169670839172829555897276807335219677505688937010405239102170389845007360775592982941215473583064449080161767351441590339612722151908875635314804875336887056124588820346986903254900737380277503007817726395186533426285640667858031478629299804990800039344333457976139282675172776433948364288409046103331947373393885325133775632442017011867533920108008033599922226402391739430462621922717583787361481308793413296980692617650472164001375032041685195360599077482391761366803574460361592627572618262804970529580271796811896011875045510135859347062294348721862405143512158948848349475335414122553981599394516075918641458717276180271056784214485533321189660553619629910606558060271263607587724456055515148437631207657521159801356508742594520330190200525187983071959415967483305465311636453096100549210946541623738347465189766187815831458395879779311489657821445985743027621703870753500765162379008276827765031385755154675479292173189592043271437328396351069483585669285624736746734180542104022136397842542191041310912580030787432192675782067619804315094670019927604536676945624769365662657245837764728463935009514004911296325653322610518730362776970229648863918276477824747374912196298371585700870849697548238419573015860165491951623114411082397565085266945430273043764102627750995911802328789064510297949387944497209415409291085954847519580618100663452090984555111282458654190541067384566535229090792794746537190435150002477648405279920271887141754978993960856555473451412061590411921949817087539156625381214966358562216267375081145712135367562490412509955771867253819537948031781605828785079137867271125346142903694841296360364373891557773126647205378957146121824455280533418216581288991724743665339959815038024095095392454103728715544408654837298711589464623596554401357125615555917260358308816558767848457346566860540107846384526149278867425458895771154193822649816403717869047665742257769222517726636439930553259928893565485912498172929535617143436419034646881820142946275258062433129060771065473536093738805650561786746316240314044143983929428562278497265966288102850355693674070285131218224798816609739708685246694959291461549618695360859426374201883661109850625339501847615280419745089090781285089810645330735014964599822457443917382573222222698044564661496335015318681434927176619090021000534854781183784373372555989803137156877682343705971003671472415234121428157355533412654869599705627522924983866040005490514749693676791812278329454927347599509703161361961294522454675658347394627913099884179922569586824612124495178679325117874583868865241122537243640533670651663560612141965866451117054910250977920182149742751213793106725002434298100408194173607743283041488699397103505697595046742609505125887726635433626798993846112764492145755374466458890301579060354552186773352391768461833283193627121708028708241740803170708060770081568286037953770703020566858178292489767079939553583545985898074007786341229725748249799753419980906353810293828719255960408022545631941158616082737245746958127314841755763462824922639032220422475948052526522020196130211808394963172005845697726612485220025379783853617393556009090511108459383407561981305087927324192233983288847101676480582663722551556622623064691431748578103095840588850054780663022049686976273615811099682515250281567791992332516512941802996567311332596085850689634703446006073949920581386651223135759589878710455334359911661239923767692524022465890193894308597364681600740967754860505781019328961283918891145825746234892275658295926815129044850855848656799961471771077653339535708780031298152356742921001079445275169752751610016347187749184356048651196856806309095068564420617257074332456249995988048551552869835985715705145222575702655150497262418319125473485233145158313442739559300664862662385725710671855096829673696424528489327512104193014580685912360473840860042623611549436980120364083983865583257471016856319057312841206601072534013012728835404198145091416127897333420978894444994475928885183089591826648652788643223515519427603615598846224788455788537362852510552936223772863175144164157067371752800817164339226111161127691425625396709474503600915353977087028519913347959543176756765116021326309123147590294168334677214556998151565296301742824336764705627370870603133592362318068539583681410572236048132707668033290310311557555037867724477178815740858001809582044684250387280216752464265028713655147238731075734228600995058646860186158256645813683358799357720951051000277898712352489849237250846294217745389194068259860923685146368605915152412253877774393029327935960202509219442823708975107182204868751643490490765915926628979313284466456517117175579427756985361093166925950191887158811258316640978559390835718710746213736421659040308735712858606900329108784991692863453886106027526927915706890060433484923512377764523787041110181690355966343968300083840336136082926653603564489974361701536373888093439571600613820370666555249485656113650613808269360499985766464043023935879862876322953349669961530931264567975977056235360128525912219531178975070776062215036069438138275138995580205366984994737956815232930877772464922599502833106972960334829193413632622076069525233074856050430801016298318251799807060991710634172848652626296241111181005125231288519608965214788648396733220344897260012864904732643458166323281709809719697829133917880525516904451339832676337886159422703380047404105601042150734448089723987848196525544583759712446072905817486890709276979258445115955947072814532441455461824070041985987884748811441156003886829040913504238558527586276093671506325704605732381404206207795136394741529224080337375112613475704745684961841558514641142632180855533217173589626991721821691091175396881511278534118205744258206128999776871292469187155384706934005766942863279966288155854521755122246504393807138967652417630167134244317927482813653039900295314112975035898007580315707244693454072010511414029493254238838630059711397578978020818251754922043398351356345677332958141373220660436150384128827252554289543995915970437139215231674259099604980621846407931260360221715917309369485600847819302890639669373832346172767783792313477603546568543003673287575896446158701917251552206046557516764329416839067261897932032156588180636554381400642091081294633221295931997808076320882200402928775999492023484890093654323912709033743227764945075010308428094516475075296531558962830741734245908279215221680346180859740336237187238578871474698176191830023487106367419051662892336082721624762215133337107806229733020762921417756457265007909652449989794113645103910914019529476206632949701183835358214308610105975379675057255360336361961848888476195449370378062148625923381698501035574495439880990656426994196779558350018944198471058081761421911901057658120391532808804039905433359962630172238716302933543045272812375741882027295525951781310626317543539074843318875953810255874946684480859177353035541830777303222956611636241716399056882704177026203703481572936058291028522040372362357678399151739290754267481811614610498059890258488504390581674990625444178721635825900412162886754455252806467781572093167787644352294191629941452500816219866577562412603656371554444362711937535548775994068478444330381892527626077604696682000312080063680122935243717412632332552630849749374343916985898584493855574964599565676368380478484965870914196352876097280309747908135637150353359196673212749250364947252497779995640691582000906324133661769285239086089031429773632508276153929424881214449334966483811497788300281107115963738089646147717532728830855095299407930867712324799751141944570436329524511536108303798424105186617841234345553761065380309104880096548554372470882142118389082850394082359331952641244073914529989579719571673060343961428749575427537126364594758130506595917033602561903247405913085698263171708179485064791291301395964418929697431540410577519788100868281471135904768530546134457765179520903967553321947896802528716524065954457447845453838513247035723469306560450745344441017777584889655228481891033889763959098295494393728334751652771577559996068993550939364649256036537178116587098972560545061839680870641925405360788154023025497609792470611918101789507329898134119571375104844269414687525247369452671551620314289880373471572527162300745554377396331100892626972980486517007615509973369715146862040190817773671529018001111078814344489717941205511292133332832513161021397411101706316692998125696109397638375408806361318630177086288407632516249982334090583986648827007650259717023504078461802962172155352372827181147940048176510127329515784137478290147070512695336826354267216972603062704020827195531742328082693543922104059908773487422344967767580588773144404436915461853005330111141142856379164313704998772988341493768309824936855908833131102970833888953331208680094209178847863263824682755193992408045608212122980923189352666095665230999789645213401655011539429356718227273397197105491139561168750676893675360133092871421455348021034024723561054187607144913211841543835252340448176138401631443774669626241872047574926580543770873031233795919382525480319212852231498613709181316172771697989827004539128816966325643014400156955658428672951456331075424314932967581708953541520383458195005708642508196760038129177450772221341897138132920505791251129226396052455494846766314372134692620948751587916399365832773355252508975739961379293504240402674232927043933805585550507167797012549329295814103399668936534025798238325672823802437125960650819801614387992201988765872333566221783644625435271246444618794225705085660475395386901478027544681987597144149685172588393333923115677140986484407194192894255678816064421387238790624673528883617619749435887066333894084038408200116882892118785874900700151006636421294710992122137662708410702850808091596589343210263044915963852771103427915094267899483824980137030111050906324687570301759043024053563953274543332890202810896329169396117739337864995885277087490552293066481134465414671419586013359601343765574755997434110532114164734780820024286217158773438606283575269227136412340499180984117904434431856476899622562434890416766194322778818769676660030999059324446655266401672967711711476671543559691544991431911459747691501577774996576951007760697727010003132609246040804911965410350874483000477096476120740648321098215181196488490052182860649056103133052223097581184923699432428098022139681964622436221102005684191579901693354395600004446249237460875753243992465972819771548931540104244056944651989188628734491642819993420603285010128637501939563590450880723718620159063634213874671199196389564117357687752336544313381165301430122747214878667146323451852647627896820081713833790306459485727599882745425748554516641868662215875705790618476532176426619711914108002620612048969933634189129243539942163937199643370339271637279621892970595009100175402742257585989411085510460012745448411132096314506321516611109872284027683357575252936572824711809930905717690557763188520300030222770986398878582167146418161197112524823251705057868568566937780224220849706210563310166618897544977653546501422821824039269250929145168167518582597972085405599885889482576875784952998342746657786509923704901851951780122540041711322546484190441043380513988344257862124496295349025519210652977034762084297757472206106681403662531419832687963742932083087560325420251125138980716310506309823494851408026927920115952727416056282138884283873042768588236986759090754824961135872900359217986732954203030992993875803529805688852900577417153243360476804845341046010484938477286912232315905096572923482348719062620498875273805056223670425055546025699236224854060561381909156152359723478349299585686807710548683439821517963348522242850528598719306628902833710482885712513727105157767363949852428501571890296974143572657741838937117006275333961693992986591359568985422101216039245274686794512350540471494437194360875059072991659242618040150148046254771275211672172759348419819398151379142891544185143719490869219501753295820176689098270805320788243421129554851205986493848329786825181684692649742925681411789508301438680494407683154610675934895977869164494021594360966759546260482349339628264751346298842547481091764558131295859669918665014840115148668755783975784072016537794028296690201774298005487042231735296969496350132199593057654615116972233633980679565246256368592433216390130103537144760288746107683420523256167555256589316157137090283366826344646882760675452862510272146224611711082817722189707389344452474688269710284281933033894526720693804120451759275805359274511966525374551184234035350321680875336332778574585098981817391237140003546661192090273884265544603549060691941025939880822500157001653744547286106183372820505378974165509979614624304430063470171518154534075901832408888251702314223768720696662567095628350460720987374903766516154564629349190444458075667285510442603847645832475429958971955688622280113324370257117640354511331016721740515756743697913777898620611584062497585775403689364729664690734560808025747411047901491240945160806702118120638517615091804422048787412983481943586658750316530417299095760582770924152631520833888109728321606880912971596400515206022670185766003029148669299303953424626333504449213014948117388845745016640066100546950546189210441607079015056826907576013840188238295967740837901473723018372448032301461557408630813790720692927530059540958985092828859180268520069733969556116108221012290440082843338698808372033073051912102951850619969123743919048173926395262510719089603070904488863530097939401781054454101866589853548722643993251392744747495413854680116673253422055907620023840655727500008725975649293421816053987384177102837181812137639206603786970368087641765958580664131092587472858077977130684938160631189992073192667199693297076873765583866103177655126856584050617838466827540757745381989526522500417078417796592307511205007443286048952160535128573778644619507321635105435122677835838468652601420230060279547767085602926246610041663496813611306298778688580372230366156774939176964572037304342144363258746809168539918116035737331511918805603700987721823165657927953330781212016541754170144068017460237845931172071334948642237072082014671617607201381766538931589150289414370143557128276323421246811649243110639544247907873320417451920802931504658772897195095816654231900181517982030185959471938285429265207061297795731782230698081695529297600172676237831311376151005083515452132208800539244383706471309804513515526304686624205221141452437266786044510155204595081366087496682744639444886928734821068469264592907435271913680307081588557635345243074416442061126204886049066418482198298314093403017457226384202800362873988812042628989285430484647969021810686307219606940226670779470117846741621823242705574939163967703924062732543975791056937909658714455311427619731125398472649986572002388443218159544720827092474884264924035200407126629767853124950802197958192826349358726962378892032898010814507563957551223674938791226821074504193448642315453290652301741504896389032188240925708873013799737215042723946091104754895769312512770364404948251374163161188616679642766568701738617877752058154629570956183953972308204633098123118042187540989408702083285789468861126096227478724056690018142526892302800678417237796495864888003796467548013514121868638316107365634173041534946113650726960049960729625425404085938149686704161436387444943486073284255025109709589672731820278709122347440277270115008245710597590444502459970450644648837427060528014391055410051417247548635918844285655363283171018359987642571747887028517236895133875107774595198987585482424059839691940312664131910553421897091569223045963270959393593372035246132412198383068573160642414909893553663680808866779906177202916792266564156635914189486163389621699065876305458127055707698536314743542619068283105987247309556650120962601524415931041499185728982738646416806517154675222875811879682934903448997619773998142134727576064230226146058448929612302985601746162884665800191071485383569098538455859499743322225580375445407118142782766384643306559816669503837535986116742486195430746433406851045777140184074589122816003419683129774874295681254335976215382823665079765845744523362742673175175224307574373912583546072874259158004218330009335861691600337025693753066749306771345262620412288926057274462035065479164302422573482512171963571393900651489298282217611110807515588670293489283432828712962006232929677995283303589432034318520717621673025104581686203582610145613180913055684271646980453092988475127806122321763419303880672848075347676019369232881315891553783461405602991728833425422789246627110866977316953970813463391717691214234295593012994433452891199593022459367951635908110865660867421916805146414841903922649515772641811816704593377419362324145865092654640441964204383420160546382281839986348056605354801213062574204156291281650692925584137242873392723488983002446069244836038505815742069810328157131041199918013758099672099116506530842235922114158410445757251123324774129786659602691151532750015910715858271925698336621316816418202847202991199526913719828715556781614591864101343683319441079457928272250170584831222214236115263902774098076069448216736507899183995327057986606926798870061642444971955684024703344939164748652948381255386764552072329321430664904840577970413199535106269805431498837579515753526008779800943663077536842492459379333701726616566270969100929013306699147861712726071856235774038410198123609966417211807497176547100743431149345258189848017843126895319165462639609104137915429156662955380069224945944242891667807888710923349827497147339151753684301404157590359236465292210923170220201473625111712667857759751254963458713081472681907990098860775579713373139419100815567966665660165834767341668377655497747840977512076836416468060745203687188695748430164672758199398016588583069972765416551667702512134599071789351279990325270248238411380699006897631315059443075653251489685743945265264613248850165302804551106617714665161936229529399353118605416095625145502952123646330383602423732866678505084535687202949902313392206245996500429932996839288255696226237463915298522311990045720077437434098242388255217062635487699803290914989865038150888448777232609522938579242324947078828009723106434424856899999655677082664691435346182683799708301196440701985714607499796789302269933304681838904536051173750899460719998472687067731165771253385790709153765251484009489531358490002854040134581799479584404276491989619763248212509932621485738700759309300468970149566022287762337129623545680859042618860607379764755100228747530242142567351077553777463410645507336789708731441760694537093860490289772160259127488570371178606005764664939584056427924249683277581145081748168902569388054925454197101113153237393571773345318637954946808621910880855029499653285468922737320439423667303404004115717035345303004053432271514410724346750309767029542806387174147375009722629521903246577787043371137126702974900764761999867438794573547907636008033863443169390102874480521854052347630192714027890650670860456581246040376301924647133892284202118899253489221760854955310516270083522092768917880536749633263594645808735955440769250458547986025373266705763881782429108703174613461535715574585906384078964508350267789020361686192822334789962799267806427194894272686212339744449276351123212414698435229130305581425374541492892801013492555597291409422436762941941990888892279019876367153645698083887170131091331903935042519451079631832336652461065527227463511602340345912353603611474294751816591673183232102171500538902609654876837380340999399286305651337282049419916692015572158008924344694866384342899872157748178158925528748284270301640753056160043142210545984759488456409975030067577151902921155680971967753121028099266005200005879417029486209487885548798452795791525697756433697583551773719690332354228375638926504973429527749465780837401843512569789715797548895577371401176284866337364876037545691166693479122207359702324739431645307265874211092161855354164740004897583403633541784461434671815639897183598702910578143651567211739128030436826417921390021439939337234203380372060802795986860771428949768360842564920929120754480356864384045439667826102882913031591155096324893628513511673376164625786872617763046780161492931812795748960512318600366337624047853563541407922612225624965987040620801155631837058484769203790247145339138714797769526614258249707469936016993980665208742733591027055179144431975063925826310296563503782520328599504903246466754198764896131724252655074650716017115014166735346968166266770997718732390811532207165374360689126281144844968581004907945803347716954446588441358513178566064843307811181554100254475550952221340695922051424047647173169940810557926650903888346265036832856397035526418092923372154056248072883259847900946467175105303053945495299749685433524632148457353765621210564260316558668263296038674373679473972963321478806462227466323245039086120559000000639380735201604172079162067281961627668938888591491255167020553854515950761065640538675076828122568474899955973402181656042583379696731947335865404810189737766953079071860434199755328923393244360811491804295028323115754982647327357106165281217318006323326506913359311993389811762146723331377878620035467022650840548808186387642036619815244776342559268081430394456061270757175508567912829392274539469844690384218349078323945696805127216510622803539564436671735619395393497023792924409101254282222557395410736075503317136633728508150186161785548540592187223088811386555740804063874707870439896894887924499127071512548109334860246468999365309173764539928032111075823997789143977128825716715198105539366181190980943101874714498187420156949189405186320664783546482519191092917210555277794370705452070454921987572122688307206709989389632008965886077245406186520242750762431848597714859088699222279039234710581356158322672868848285938361971247951828076613095653819030990662767909010761234799529568866728675575286173054546765909588596290367178326916105618853779074923600273801089178305819312417022534541231568332781866033417234440688030257200610664589978168953450987575503680677969150836459878559705629077984156153919530008566748653467718286956061376013508731911415072891868328550429547961114131483962340734950897144768321977287301871722253404780502563143304148166485801832556449472557606867548899671906416448517775637533123175988256267582012474824422907587228832848203132907383065987959164996578265404382914251801758174986536954958258889167945668431915800344337637527195498582786461443513895289231931156049359724666519948712941312956180207558747953287366442169105913989230327375496685049125220638694060139157865833886686402543611138406032094380129866814727511317091240731350277972155431921349647452916049364018441947808563447284754999114870090061756577560361185583763359567110323566601419125000457904990434136354792343687753101701432504251271626150235949866684551779801345945742422398905843571937246283260692077345151705917296835864416697661995226402845645978634119564867573098646004009147398423845077309368536713756343518945000889981173700216636613332660572619772817598771226907130406956812703283867426361671815357075236892465795476955129483226869158858977640401285556646705362428270450113752576830364492946042971763366454033306474513632314527591474259105377549746393093605950542946082708456110545517105013495441058825552868079462875019168631974082495739864482173214733062635935402167124473109828385837255791968670563118528985365480051997569565949963537533328057722709956227961358668134978083474416376556521345753551910561704004322081563754534160676864477473069583053604451352478065907705497484297279441137900369743294541471599521896657146292150336690816818843642503807510106127099055670547813075322307142492592693533579181774483687281165129877537527144337098633537775077063135572719197081138931118711235862140925840677698282835089431342681841450810242353582568973849326120483899112730650036515516248824727677929715555707458082895381434178370836022665057339755717178447202895407390384701419770658263335746264726491295726706015346678285502433890383042048904025697357376975451540569140058517029868515293757899383818811148757656086183263473694567440389465840880785434485195935436204952459172637440462662162318746862959925218523780224010601278444693158309910385604399753010668221921594390908085714004727752923798964331398994519773228300003994251801778155151012247518636836658297259321182006711843882150253895054010536887010433932694825748103953672697406035963839202746174728608487503470401696861303785993106626023802279941687296144477741689433940030482149972518434287901686390861219387368616189858772383722250368325437263058875147723025032191398641493309281668717288285246084558028647470834602975781936024159319334465387616213895971680177819902173306452419736265313010898694301262520325002716875021455485968630627926374682854313376098245169717468914373292428237113496583488169662995765697307330482250742208352460673380011270112414310285538137845753011709258035971769219667277166326511283188843992049541018767321525463047135266775888662286051426544172432765085235740289906934898544005332183456267971842324603622630873085861522300315377120584531554813563645652410551820246947503204561850481411599505625982716292440683758695364808959076933483941682857090162117411806112866310198254580098951531624408212678708312343311484544713395881230680781660132240946290045656665753568517168262476400357412347672505870637318325932797802150401869586251605968530699826097659459585836975198781838648713855282681828886935037966068760161437340063440183791524407527386633943042454697614314408471005160156888439576466148324885902989187160800290756111225878498679038174675463598645583393462927035014914372598856972536181799766351851007112531849107490315042193014774150621515145967222392381557803962813170874158756738257366916222421623695128224846734862586337380486504750034835447031150299972115993726081146754182979813371130317247652332630933792208625772769563044744185591574972127253064164880730428582422475691994905304219664796216822740970881237355351877810916840521584041501081501412765923359735367993844600426396720512763413639282552634746138092348816800297166368080171143781420253766402597663489706021701757388991714670399839713839454962233187719065020987952535185118715450645846844605891047370139959917808005266646763754972049238891812852152884686656841457558070258916678523150274963770765445446863636104438725253193344319991466923698602554083052088734995623851010207042246177169920583466691344752551905960214511683413808036026845245141132051098627592202643166234589168077835657365593122878373617096693903863930223039226271471083821414914375155888347846264375922891530483218805937058626177624084602250726674569428484661426153064549364722655970545022233154500247622760707143944870585038605635663163252864562067664880652614210317980455913448563088791276803654228306252913690750641125113978416443660898425549821063391187068244269720025005145017042944799148923276853206018911660310611329356002688241905371896824534389570936447769734242274703255963767829762694953963949706926936281622677224929540803266854979673329214428611040297741975588411607082187598132599402860340241707238864987683611019518048271839802579696113522548973917769771441449440380442627372944129744618961097613504657255596590121806844855827253651305412718861203226690182575832636777589154038967553178467295391480579724459534481639299432791945592555081900578080034030547426660334237432961155788900375524223701689741639587538262125274879178983219452427827564862680615485192060949034251237521877857611841545378353531565536075566925459981009252682036555066984625350963353902386720539090972132729522814854112121271382036548502236777792408969624580259373299629736749539852334974646110491799067778174315246757180884966777884267776976861521454948056200687591022958297273790593982614892040872279823802550899764873059081857113105084564738630450335257556697072186182959402826897031527282850461224343410974735434047799293994210683428933388986481291073855572189944603375248690714406475893563605165659018716805199393381196254877945827329228486845548046429911791742641138263094012130065392608359359195006394264439414698903764322268642361792451719774577755354219662200924870185445906481810950161719273276712678961136864681538760834239657542212287623498260017776888509600202360515622493800866654033776392287598021681916445019791141229019697351005344833995978217061305156509101301668316709010203088136505799119678349683618504636553284811970696517443539946184712249425463878020699127425885217178205927969764449924263367484976286350190109322694785879383219682690893116726276260651879512924142876859721301757902308984448948503773712888889527185041205483818582880482980512919696927393231100002697290964430428540218769811214105205328688889749411161901150902995230674850974025461537916376352294702620972439263335630729181313075466704519519953396711158366110776098727038931639384412438146875866182018391109351844717404761432465785127118975825830552517663502124896991132844284064730912251160830501798934524706451276383028457427694115734363946984895333494250841296420030630283949671108184105701004217610328937650238972453844617453198352550004494900677867543364984706022050067566940462518522152374555782062373030350281151560012830886929560408754981234496266523309992262620883049583189008692491249379297070698782005877396275460219071117061224701520308376825597107536480824222940398211799148270889951190381645653765621079514564328596786318374833127119893101392705802192911053831439116110096169990414150290130677653320820630590324570858415280222481549268470207882344207666699416254992494171800937449168647170141077073814201142913711759564077739397089082183183336985142143250141862655490830314549784932156424158171852333842701078197799472429762959738769265596617710588214512458771385026346497615769368332613292731040718202499282890730590733950952351838633949079649141998548639830129384023483940267960286683975861605794740705288998520499193048616911030049965608793075719389441600585397413419646785053002867334575409029657358820543260600034610815814272358193790592975919057778209030215990531755952383558327265656696398578116303228730382356519913732518684810059581180657056989155666430169263836732644734123566078266294292254788928285699911967527451951335695870058722487019262026855290914666714455329713793837406597576152788382743835016806254540005589192356389908411631162710491949363539131701778533615140001352657876442229360805796141726965482361403887038658375980371189806614178971143151937385141801736942827102166326620947213951698517916531904951552210403215505771548932206440484230091014247461099187767325941999927213116425932726193574594365522602834505701596111080440351016474764686261876441884071644698545728446610871698299128987732744219327875995828125227724079869762438525545871068364097895447941377539113590147020606813201155517323601932682870003043972297269374294424465233356476318304970414485312582457937305427511531187140569748552315406629902492714629055862747927095872504963827238808799803368010534038234575721118797586328430478294525124802795288289901194934285770074660856448612081052631700122597845837041488002351954862072443873993752181005079044762725638571761929318559898798583125413194065000081238641721460333754329529500931585842629878271134577571172390651790045133028148608272100335857379646670141874817747861630819739455629882989340663993124948138523725933440043924746558912581582654179676492141284577908389758126916941682321527406807068349993141394327889545571888375444845737674776311125372062121432708483557693517994722172585854506504023230844210582568973606649038170181858174033773048819841625287304669728842382234187114617151251007157441227693170012120917745592820098301102189150538437679727362003889198324251027831743999993409809849240315571872571066802779041974723844275926716223156392357404429146527490907073649328690948788283651419388638892596164093491111640123306507896412812145633325283285269767768322364563400969500911465123587326840639491206683069111554991408368060282326655925877521531206878400068788584683669894003879020192892076368169940676682258253619730508445696838594657736588423661257232553708732382982494462737272742042576722714730905413346087704406197389406334038418246134887327685177088005620055641761303200205398398171355478929660991028621308531234828957760563163256713950760640983988853395771358869064198766070261638211587114139251720776335231208450231535127634001766494718550638031008459459296320786248620579330002152648852781979061282763242112605167366724038333594746849517291888473582103125249407628694748124690837025419269044084237876726266232504729080286773591408704576719109920432198710736816776162215800141706710126269564103293636036843233218785993818603272837673686941705303806592578590650933706269890417023254256659073905791654428666328641351404548298632352200167757310943589898830667062982695231869612487883373942083875326836747877503716451590438697001643499481062047717785901617819447950819965291827035899824239191483173647971840631456644665102648260684554625784878731393568108170158192337683758514711491502452656426520365816731323161492245476950932705969612272064593990651106401175745053788695422466096212369518512909446197007359769302069452648478818893969260995496217620260678288318334770234908836093478340682433428934108616756480805570409622609918892946168672536589213938115204478086020206299230883297527912800713363163321515474498108634059076269935257727595582229003166319695047015336299432150745732808745757085537493018729566916242137832180547676308806388777792300176394549743473647410516892561860171937769356006420484075590298490164094057881393491336650298901847986783408250940376618306134966485526172016625293710403536422821324590930181064827529033375189518916242865666207413630691861322139211033932568862140917556502042439549251017314861716811559168410849039973897460259771442767074357537373817904002070538528442435842190083645330535875170836634264177848735125022384956909307366943953182163169880911298900714811605882710331989261263402338407319383160002553572608887847092954005684042609756056858559542207302245156275715807674073663683477632496408662708308532046617785435414875923334885318209697595975540613817807100368368706968004469120894017927082953689536216967850157845604208185724831697090570534995415938342081868932687134145914161780484345983177774874518525067442045977482105596456742528523460614730569274063185025144477520661909938106564873669844828428318280927595479584950718279871081137841644008548131543294098327705527720371668216922355928832172335823447704652360812211243232648952029444914284076865754659440226098712438960347141779502880148418548207729391554307226801184198296998955739099077361284390747378678853938656957176448613763491721064253627764031738483535611401471036722377727950548353539364948564186180792494084206186746875310801847426105035613625280685742022522326145357175569248309143629690327360750732412570659803313258879953867645137832098438716839015205044158142607239108308704999555030816542032036279379685355309403136499860874601190720903870761847473904207813348826599997854792335886862817277821103785123601591959092330383674361981558838742075713253312739320845397594771610708252491888442041799162358460557194236512399056071218847430034315876621028705601180403778255400050924181666158683586634678468369187318001056402716552270759509790910871794682948722544543832309385710434911377657511341052012904632918195181924594896974974207838309267659665617502312298537944266902832609049476762064501545150751933507362157311488288163820200015790022231861021631556668813564436776978278252769331347649043136314831408506700417576547953081773797913144962527953985798518010202795560741866873435869880462179431639673430796095062615066341695009682005003745300455898928672954095335471013660164354218838557130279391254894833607974713091441045331934203125543277543444220302757594932480544606223082574364221587146259569444196572839517567932619059554907891253850089730837119127536288879510355113455927376262945274109096121117674735092232832762005008979622460704546807602350665886831089646047956274422280675559994574828572002169925515504996104343623701555152866507028473989648402628368729378080596130139617667224426597902954445119013432019821844000591657224114339642728889154741095957212841933935994383869505819393381085895709723142141142780937650547379271828848749423013021121451575300823532790981128354172914686166228021198906254047152412571143152069653022072067377961994539718668854419744823274248176254244262026189610894368932675235888794708742488730920298314199701898512396103270513620865279350448128137815368445263831527503655211435107117915337908375558303661644066474208376837739574338212993306282930100342067931630480236701599652597420454699894705515928030074994357294615190858986420201362913940124595915251102713278388627003763501034008790900984604810198056122321854192739924697566462817199391790199227813956542758101567381052514503992605336271270977637763272849134563411731538821470415397933539805107091566202029834927024187048571078310968751575631379846361917652768366357844432234603636208964900937186552802391047645078604258556080880363151369569814801689239483678482201601464091748428874885961233809353659876396267486149710034096292038920887611249873124958318043438771531579884486672909730072545103277247037575398957823030521171935934731772282316698690208565830343437848773186524209889726377079480810733350513988652324652424778507227803842939335177134958648279835037693599672869632592273414822966536844681676322278648364315215670066668632645343461131403085549923375476208678440339402069774894602980585432797583761182157861641821737905173926655446320794887469189740500731006265559778672101122524309146541057160469031441284893500085362663053254878096876012401479468292406761810682702004956427088707568954000299654733037643492882761008858981283104004330144444717194634330595482779393565129827777251803143164295755959319262885976080777494210413074217843791588261859444576934690292318218355142352545886649481723717263713008328177015932642504669285904515182392981615477191928701694840164044173949793055786517246368807581328914928567394992833241435885071710233317243187460087277547264933252671036519731307943629463368912916786701639277324426526820705358147015512592136301322212611848040764325790865794805381188401549562998538076823137232705359903379088815057837913379500570049487382619260399337659812096765148228533289325385764962622849001630770154064198441247953612632347357543253659093868755527087891870126545174657879592907462017071737728683521849479292066589527692951981510011239546752636850093502475320823817593672819805674228191292383777382147651935902327568565870185520311772372186460374636923616022175116427833026248139034723599749483699378716217519163634857602511934110866534372788066942051010909674535152439389559958203249604134912554963685187434546537399516365363497898476293030684556508599507810897142029945539611373299547475904397259668258144240099793050546051799722337472730625980478834012442687014575002011725423663841390040745908108507330235011355209555745722973777784344626132532867363769477853919843699596453890244174287213758811198672517869441686117866054593887255351049088730866082720335083266854424542078261370793094955582769655084630578522219262749667656932636700636227948990051491044426613068465184685853897631150538713752120105133373469874191288996672431135862055172315294841792515793421762405618230841254094636303288538842010200556047552873460890113936837520076538356395067744215857073842516607279219663108668090557488641659896543521294128276807412588987637601921986133748893292151199779058141571292060461478046654457097652003711883086600452129851207074288987797781463809047122317526014059338942559241035206345164153222151786251973588504799858730757919177432488703574465248241650982955147962612289538202699361217083400747227912764120346684548145805204036208806133687462406623574304994052263001401621613389322698253144654137299253082461294426903668321119134989584320797214735065489535649275637016325822684709568812422221859130023974900485060143691664117334988685972463688350752935794081925323435575921403382200859259852970713237430864134791676701789887241203730912808089219499257200849948993834266972412851120585404344551863506784521486976062570494583311976387815759639341782481506583377900085575884602836246038660057483153816314770315599570269603674128530713419894326962886789326395427499305028653520885726608764818664708728938935687929223882642969690235945343434313559191922866403770155567073943004422571066509245253388375872151876046119431118455078956265643873327391035034754380915780777434379220543960126037611843345688255425621926051718156222483100597951811297910590260851967274068517601640657848767264930477863469733596023047932078407934975250340631733365536360812708163940395080714262415158227028128951341002811270240695484486064851923469692991070374135105161998785468257479294445370753444435657604925717633292779685719253986085700268347681430765970646256246143806374870460957201802610833411570575069853445498604905753214519155800889854085023125411546087838978630417289944912541325420389169076678061934272578846966637206022786062558169501523922559010597944933390870825929493837868262097787541453614914501177269136911086282420818387545829344593301917570718524049786602978816988097738258141413583517183165676231952107174883870521277166921099163215938086181053200762051528006650246047669811689078283062228953788247230598719369475399852072384183332387508095103337024191416046649732764417541262634639285765241088360623211288524671073730091886141039443091504401722413270788493992410411175867272877665534708566766916975562020346645100535466235565736775130645248987679506587961984398042329195956433224768804917495799715975975917645221684777345083764563071376551140925665083293678946246588867183624025245010430990387182645438205722148155442309593833462415970593114043523454391557522022277431440439919129957729088961766239943527459379932984864316324545505404606540477043784294389509610104652122387668436195657922894274087595469199267406092149020162971264004924159401974247237634048446574606279995374290805835751430390832896827283014954448085092779243740202476631488086185313064841555780234327160629219435135392460228839298606044797221367361357479117227877258326032109814387041614079332403712780693597047549078721583952295659341573559781367901585052732494397011367266388905677287462649279147562104860786957265762951135611075129665575393933208225286043030098752082925428160118933981946680415362215388309064398410476042137845081317440664446728308355711210574230948866104391918924898955592041684502799289993239150361083386004711364886783910291004007035950897192416156306999156772900615105377632466781759283614233994333882819306621807355628058660425750770146720156307980172320869927626024131913722918036455294225800284698882220574696991166929885542915749986907015227054442379625420579958825325743718728960013218386606842921514705248863696274021224509292944453213790401643653905837216654214409804793872737666816997831834576359269611018122145586884016432412904751279462614071261690724639004158882075007261738486288481762234735185679397593569752406150844829463156977385143909888694838654324066600161962440466792834632177389221206397842430173126142327073971411708402948292930624579018502564084688215644906349934772859182495022354197525381255530913705312623934809625525461142378430990678078155260956876042757919948020847393257599626101181190991529748888971889185544772212768369056661730066532599396193912623322174846823155048846303501756682876459978086762302987066713368621853322965891665764575435694559270033244736747986514330272038454279234668394491328426918139224327630406339063629757520674411766389956387688719901003769459031453802744358558841232404226026251128036036658890317306224675692315990686152677084753451770723730791219495245544285716062608862079727387787180391126277434841524797044824208843201948399171923482188409313394871731232510653957782550493908318515489646058502341778850110622450079067888233331554625310172626058619147223905287262375786823515267378473704841727995185778921723700774275725565308254421848952110186302296488212639726814324836053610082173535364029525960412028666837373841131489872977113469242650058154217814423515288091241032788419000713053197502816590686263781151391542474932234187964952963787039813970881915116636362153942285854652402686059084279011911094830656296697213943791107784097990650628415576693175533618063346497773540020505891209464595724237308517155939461842699444621377899924022410029757018568541007715734674565692496816384106580521235435338156292824686087137121472694908279112750991166292761583305306302193504009949452847890710702618540134137557911076822164937324149830767956965696689191466587052048578829161916147158209852236112390572978765908922702101167340569611963826686322087233203531379792666600767562752189816753647544967941948518505427320199473484280359297855315706412095011570693170879490008671032262577786630515434644255716963484502473456544497452084297433328594935535574724693158307105442902819894954165306108162540872954232202441036112942517670468095615462315973501841495918130800119411430438037769666589243542418180088348692923364440964755549058745212132712953356533434955538053360405680376772131383991977330065323009475154078792473314422852083361533092900229499820067326725363890848010275394048742183711641946708579197200717554747249043549239428632993794661858132632004104149589967726130264920270578765714813392886948371061582250596220455974796131261634089760971371753243177301960851489348981894970908272198963457151173048050308772200398090558923779473164641841828431246801745082232987318163927716113739335611360513060954041442920325929198835508611301153386346274827323236743000265069960283818849279022499986275427065023953848170036778687913512131490027551765523618145684921000214047589404005598656057792979325333195890592307894139112429051405022715846357165729965244500362303185622733163091541497140585265372381932888869381009069725086301594304393263764736552801456926693694966600497181436708592474879007322741207184466996877627524809714842898062170464800693954106421768860295315958191318449431221106374727626464488484323823257254203595454697136755918670578119812607436453199392222898172282813031987393823245187455716647156094193731153658962846301432286255355691384474690288173849271115665052808661481821245175002316462638710662954515277088138764639524515576654270600095036247996285169537100915852659624446899978003385256235942490550087266732469243231223926091486823263075163441423914625624557721903369990428698160884570006055894231187161946593594066392291281557086815111651180708118633633997988309975981842963190215230531927212915706409230065990677544869551559513487735379674626566436646870440982459270778823659019442003292402094793689312822136797436493450380376638180972333846571598168902883861184398268124240772564562442160596548314449554969550756247581192543104944089473405372803935807389437853807388535104272304027847446456698958793737814816802886790855306802572482410405593368248109824650242627962121800659773671119905461096497222992335313722448967843553790242369338661967083323144966664522159812295028626111404619730163732949583109559136794146885762674603931397927499109148774703238802908339986677173892201479145391391335567884110601903378683267658877353224124070967775767937196607410872388239690004404330388265354268330755973795397942646120706504379441049746610860698002770223308896526679968019953544392486379718381508368574749790341761729541940220309148145720665278072825830509379123987703826376552668792540647141173899842781663328879833962782904483882956632749063388247167955329316734577258768526655771612180386053023266089892629441240482485377891812499322285393980817922089360161645582909857773199143138910014671533555353866373480318925852639929805138529437876426608050735992652406182482703036143561260426234293024517531670092641594483078828509696534647871541195264109150166045731989980378666339997771246799929076038092997851337635054533384418582388761707653255705685990999621661088736596567173291974154523973210329409087508475827891633489454700022311152934632325967870801562480240983176384090986209040328046273629366685873024912709863902076358858173409065915503073913802648088033940306310492815279319494553411533062972721878794946608604707249717583924629958730422939091245233327244326974404343567328069411303499499997010891265150135059801524301451691733390093667112263713974803737441843513813327623718761073884552502268561215925070142800737092395847401811958981079041275349178417089184115036925005241729222333002901462783702058986366484348707442819336061548694459469551703499409978421098996160933715369841076487632576752612437185032663586103258668788334938671704155869859996818138578932989444901073540389693725150927151942145497649801484357371674892823054605223296538760640573029729466838997802098673012446969614962776816407310413631559151508751016909642336678835460014245030290659427980901459907683500422118734597451723622835913925042391325592506184387354822041943533793879143919589217051086083509782947220829868063304675350900261048772295274339186731824166554309937712136072124441267869407007508012062374965061098350551755878153062341487717625554853718244212045959946714864679737232260406882130879622381729488636180059730735913834903323946375046845561690090265813390387743620281150252152438157001971715808589850429847491945623529767570231858326822371035581886677336227910977409031220211415150178573385923339760039990233541906753074591165770769525800336221088039601642440617309429899468509821162199519848731761272289477331073564412823012789163120422169046020564282684581282686941461539599154571721394095799513551368752540419566563598131175536019458620717768004657658439586678203541957902734228531733172889453150228657869988355766933087484802455953386263484995153514245599506737094535941804281485883401663462456913042808555539177252969571721115793145566633426458676944032918286896514522038199615625382900576586363073362916372840421971511318126408429952639915885786446537928541795677652732965350268282211717822741910029108186121014551805331093190528174708254862734859159306149023045912395167217304424910546127111785955826214640648811899298204100033799185838047947246816206956323667812921816022941566303587257538085346346921781599887559294412360180103933197304901722893670592131603249422778077558125109513537796931843978454121870431319623876461808935924973568584680560510339209475190614359163523373514163637247287370940149536780572380586731225411111475072573237404870463632444214880089639516847850758741299335786213499336479895547944500241925841159401026713973006793483538788855201887940426709022018511550264086765063550715458637416019806909646833818700889614219329096788408367533564067727860978392028421748700880069125797354838526128992887240322841868018556670995517255215996117747050174442322337982212871605349496799252694192796898276421974285450179155146011741238431984425181129011628268183640853086967892704155495335461584088442396781199380020013932099721011008556257093848901570867028978935526738337966329207024277224851318532680675608830757941894457639896620240006613197726937387551022198515308472794532765649309240164309799226508877650515760505892279579037752225053314073858765118233360072720726699981439780397882945754172146964928016756778107189668909399493796923126882274604600325375743319141919224602649008331515600561682980860555358755385330473209209323380658274953854701147019475432414925420277018801401374081228520627503805360860333624694232567635866542364389219174115366184915675043392088219553963324472527432603681360020999851881451736953000883089624360837656403317840181505192604896710810174703962008733982542352166213347789002265076643509544564687846773563452225710609203789021896390483172531966867677659386445293549503618836754445312661209354401070364656528129737199369368865421701567321426581893456108705859040550607129140855741174999578248940243305362450111509007686520182067825201669815596694407316175668104392465759325205863721277669354229840672433196761821121965818501104552769329001633172590485474171379275804773388508195607528469168710504445058547396566197957339334071385224472320326012843609169322387358017094773009666949548201384696517763986062974396573169834024488002588466230253822474251041732956783163306605709056488844073751805506827967860446155483068433489173334797695438497839352288712386226994297461073294863204130371173223603365083393715319685438568584285017355893251626525053152863253183138570430111031398238236885208304770626931408911324153531652960864119150743224279049879693265638590299839771320895328849964041164766369485229300242814464589698784616048665174582925476055764983479213564084827620244054427649295846561407886524498259903622360448785283559466840567085051131110804248396188464238913643039870413439451597186306311402389887967112645383205530028724641289699309323448576556365382169709160892931255239636291241083368798143018567513150803472498923637413784422972104095630136872849440866530605301126400581059521751303364600204719063026025354340384589762009172003853226443128517031935732657779202575972822832247835923704044171451493722300068804571207803781607257215312618694889263689583280703699141203125920908183718447689124370770056829969366373755166854876280631027040111004936622214200062628820123606799449474921634138756368521574027839439296599239720806484838295520150587776024278282740125269666768899395568914506303018960874781024592413095434078701234588992304101504980389434243195337592029541693129409981763516371033469475623985105082150994469510477242462187517494398158274371168698218513647727352906767879678904907867454954203291972133314438431130730008281834337569801845022342062933204295631794499142043163666841931429437371765302858165038672610458917274819413188795202080460259468434860071188689560496862753503374014667645028553056791697620770831318420504862408266585224274686357979765047577939066588924099281735316975668116548845406553657930283654779981552652244167567079094262622355652317519163565398013601493824231417899648183776093572348868089368278178022559445473666779354912907384316321234877996963510394712899170023218674766754054670745229453594327392966827641570810727853210613756070198091184620998314713804646415328297017647258514829138324814833124786731513761781048101339949313128080217021938481336078874291163997739233020504935313187250705564261465603561183471583954190481873144466323119614277383753056397988693535684995412798766935528965089308174102374375221079513454371566121374067687174499607767472255619465627561885620714451019442831777027080470271910256333643306299728798809486467845079224409817516065277626846924847022762164175937338788700430649406606449252236532157721834299056634891830486596982693805922078359569551417116333417383290077953126714519650961383018856699557579051941302155493663230721426129114757988748330147395746665779548068317646492469249161668082374120092062624535532089632858033215249637905786431278807710328393849378127748785051556459273721739637527561070593770490327918176288492427324746740323688590745179493731415891748762807538450833403540077835322311969608813715707404539098132313629042222429947112978808367132437031104278417657877598642592287715660503599037741386926874704071193532025849506370716678202754846469087670325063737509504402956443378465924763931441091840121923477400933032317040527326960255895112814142334258106751492690475947412012586073651974108791265483306651702430883742546589291721835688123622713326036261566875655518207793972132889791854249390852656989233269942245354190241219305180928228459792379388231664843992132246169391516430425897633009997473818404880667957768533568654120202689456475392284960560131716509160577740586677741695982734844003429671965163859485069694990730028986863499471116751029647108031579387795935569770479503557698021078748603932149308184951489179758463373593108922839628380687609879786481154426760147224346446087540992930852216808577786246479778767046512863344520233428324885138716880083153852404411821046540993206744690101908243622177539956683544712473855768989277241773804209484135758694701066784924309525103550921968427288159353334149893525093398784052960034096209197734414426108221789194989468489336221269770653705079031081570052828530188903415869058049629421841571314888154280285042053853635490611343737125681878001279617337899873170293572886811580214940286077365829956066374084300727289947720614827964554086685692420718482213423267925131735434027172176162291256614719815795915330761500777687642853483343726707536025770824455767086199233520457653222664519033918972302731361319219398538021046894370096520227557872095138057444519972739790445486752024443601606608500278503625156862485154512294973971830904307526814939707298742882410843121356623502947573208978305195923080225024537962860009906728640319458170399900842515254628345780946842294762666037566329308092864237115079368988623139625909387089094327937297299321685017227785879665334295253655344821430707445197458872077548877643226970650784930032593076529338339544365845943890598368029503104068715834984693090125210137516380276732717853090747899392368791931155543382764511519501892655621160555602836291941178642092804886064981815547129492097340416547138041079265442559843647075746108063191548452548218273444852691085587875511229223213051937959264656687526582920841411418941864367770257472600763624625392608306706240959448779838820950191538018707596725611068218744770896508387303648405063975172180398551735279099982205901968548329168675616107713836113219249107267662941775779802559515833184314, 971325610343573613820442023262350108254413969713095640066376783435735456957262030608181364277642789575415372727951473191248014622156720059710608041884001608778475508404293113494511977213369253555689961597853045923827236539603249800428020293819076032130200054217114586407503224704873033308391836145808064462291416460535783793376180674050737191412570520954814257693789946297642109996043158687173430796399127669006529358729636390350639496600238833877086758574286470372161975431558523833640819497341240167939846693232406277331410693983434263510219861282988310974166855753636708480258618991230913073665773649441903428570115970354896943923806296643096330423852128822362003742180930454452321262521873378849993242322209562909408429334440126020769247657655415956980741168526662326493389343163666804650669196656185041578172470316342960142798999595603991902349402396708549544064812704246714640118131097384962935142378572491364808953586837249346169255829464983474007258107551651549057186551190791939957407104818378992753302260396231022988545450784915169627728512318603034907246583773293780423300749172951978148644533417223351037234447658621800678857145658225221226378974864249668770164155837852346462647614893285940429543107810450963382582127714776916069867606949713187459187274615396988768047845255933387826672426744138879675711917195686530443612730765094588822868725779730564753211141492857015769997365953326519309231761655873964501045853707218966217822520880386033502621470958754268515963707806604296329923790298475628186767943658913246377850692881209325373201920809156007610307742789345597860710274980694014563117156309099262948940386769855704439325004682537307953055401373236509499451942067918000180862610346714219857258614979068805354210631948736466701315011150167621896715763428833092787704872940265816798565026835421389440953305440238658253305125879935258894936180169433612006394050814490620366093885247461431254522656211391596123562646739896110199485351798932693822398042840304655855948980295461485023681061292405062405364234778654904802814865473496158361450306648765466682145277321039259774272046059106482571273885480664104373899683611834139888376700808926100088543267790369182262823995152000024387570410692928879622071868001663041973173567992134916250145901185841918672199843219449189592985884939704236244173398610917331225195390271952671592969655235429171021833686617370634072521492342031380002970824707134040007665305628146627245706555875488274126980836633735463822327620461230634336673129645432270230795837074391613811712675170657638187811993383909093935640720108067857019919258134246415542282556672133596321819289957878561627955627083041849671757658657679737134837455606219296966897150036954098872938937131029955315910422951437020616718114845550737205184728258466698523681624006376071266190502968179721735637030194176206702903560621347885796267786196814843293974382851207721735381045550926830503620069636394570113720885610529281411911850546115646405451065178319091280001188103588357278920414267710563884250267167466332190624876078872202711572888237603094266389907005293478909544318571294637908240492662247482130521127969507693528313344864075544061467060408029238031126520038217449402955000497391410114139700045381335044399834129651326216349067679962120635333086916449331799933647439778313802311638224199819505642553209871756921664903180343980390575184306727288409614707790509642698815358337474172156875726567602060204982659543851529505663362008430776188194608872789071525217900122834061081127357888000827413633323526280412932545043455584222021821375430447907847880457875863392555951512497577549998607099948273731234727614556703488484495074232898383367043070348199268698239456276191426157065301615209191082965018863169925646410941844485168665139365726892389404678099011455251850378786853103460114455997615010305600239743897268559815730741669623093385661645906635752330016006249656608495018267056295909010451296536415732305953641700744380971874811396273715715703453947474046701478854601379446483038986424520088312811575517361923446355251524453363639817447351001059534289124380792243391983264444077339363380311245514087499358517989416206475542527518282028290519389826804271218234838922245184446483425475053974971071770197837766083812782473834799933186072169208364626592041079533494869545127863036516189898531025093807796235127290029856199878168894278371942889217254140075594328125644699655001185653661921487471531880919768183441723837159492942816064924337099063924190234016013691203871860019406908404974143316586063367604186756062295318410855237290723427764168552528585770512024259592294439360672657842695494838258860063136156881911380511549971314147547205121409628092690730088971202822875597192388124373025622870632879320195560544681989572693191247192264133947937856740826839921491233994611346180420325186492327598266944817778308651329654939471442445992092856413794550507483036177172837636900935717075653107579214663967313696747127532721113272147583645769127518581639801733325568307600173197888802717182893081932159111635775823908998060186935088984881978658084716717920020470010947400274368596065284766985158630058186038918201033055865667908945406514813311044008881887812042472495570395738919332780597975546158168146372582882295327538514577856761870913522153284992791570253188992229967176498596601514538356630016527821687333236751773337572943949586924706235722032086636761779871947523903538894616024296335419170257322076888810262603150889892288924354235968690649966602826366687715274844158104877512450372713749211605702785797183772054251413571207154652665732418154383027335930917967423753420092872509851117223111550498312429575670653194930041723998686625012378872961474518459510027044945521226301952598315694391008168352734446276666192451410645604258445403665025610094206921800121235651556289430222472090148130234891527420315271272508186508011745573693413253173408072507179471606021029724874783357930090716700643171131871327546667460179026226441656422745031711364537462621401788535652626983150248282756745461895900552770770064446540299918567301793615138685594924601592688781680444401221113566278320262675429491558593443183182012711477865202110282079957053118201090820515383866711186846736714828580524555453260893463911837853528753035395792927925488301036020331782603929484533644849147716982147601769906642426026350818324291534006772180211246962908232336383143193239532982044548888088184099467160356351863711266598755914837823839438693757751244048507392998906464483361772220799696963381223709233223447163885803832692815529964927832011428477771107329937297680223565484967357309437570257879571909958470903733462318908114762404569534083572311261732382035994732056296564574925434279467915675717168690902517485142632618842367737287285769628644058995425312613024236056318043861028128830742145162247768197171106488851724130400826333209959344591606309945554965291502218251325425883519724751374025028106183810242941800829384775512599336960927422712826518702635185269680212949148034905497356643174499121010236693617489973218717333423657479581418591620904710594421555601948956447493768568062632795622682963370963806018169944482216876735352508240149319346599143341899333816909700931664930159636923802856814705166844653743257519867402971724411921807986993959576808554310036514379046148082442043202608923272654883251935255066674592986203859097225972333527294920866427652389624502247137161615904440559300371767376175141704936966979418682514269350299895056942719065807160326340257457294577493894788626604766153944381495472393460988214050864974839611076818476903490626877237574608951622844365911767157657801927764193901654660282661692141597547499434109492007792542692140546087377873078152230222367735445382760398927446370788922072655250209838156219548626495951862977354291347970063112377400228332231328104699951996351518706058807549818932402508693252098733864519906716633771558470903773407440442956720464244892608398305550787360245726786557275341421660094708766833377365117519631071785680358470748678731693017715553504898506555356681227182118986124613483872998208037153623593398604225804623910373089410528058707294581700323165718910272851905145631777845754918948268256584755880760915578610818444623262250489030177973452930004500152141084758691955684720416608278775920355375575390940329588645570559628035120933021945110210529686470586079579820926027994563859396639054083870289281063614453963433779138013566132419969818940730279431753726276444827984319743574893287837082057077167607892434730572247888016473868501326214466463485931791453084312519981060409012346546358226591653877005380331089739055488277806119945447388951047990584186478251062260909788332446945049462149861905721930355901107280830389008870558583048725818498705587405448807598829063591507637694812771370445886274566803505668227814917677587686673247974927027124358765650159130877618590108255145523435051538395153625207891216379291654391818997510591522391230952326628838019079744144034209054968240005958587917982028606248584519203234888699517307665756148790258376951498460205394305753499421237465183738990819962526324579512325778996205435949567412592266501475229972989403886783322000196989697272842169911664268870988438790804950846759591751602960408423183322242454293377649666936870992239016878374097296344919941535454713555597541386055047425018006420163167974196592223170035024836190132904115334761269323912504601144766484588666799149888801984474075735041349241447685935996029241766910295030396292498453458359109729697047106087147005037978557630452189334591190029222010828217925152795566533950738377854272574860439427255151023064011879829550618726780449320678735864237070634970287312375529647302215440394248531125546139969037301817955045453336255511381463580599757428673186024578591808758920887488705805919242816595036382438203573030214869725207451679546992533313089137667855556235554682044169643960764530421794610138579874623383898747640584103412227610747273246403728021233167236251727416419240476516908612660867541381462751240703493701190091493400959318473821333110821848768654331041984941407733012632039338590586691657257037690986820525198661808960336158294855825481585039243347135343026658300658119856306785486684480614463950278217798728118996582170869513361711543135929434087947080941947128936388461617832625259153045086442941712591131146458309894279553764576973355299597791513796968033639565783100056210996315280624911846322781805301839549683495507644406061686393189869071115757888248156860340237558886066653467596457277508615710909328953050300090217995694070558180291030704119525664915677613908787999343911167313218085266944362706001905802064153345460762642215777531496290385877494648565422621080895703674568767486308255782420890761798310772538328894297579722775858989039015211480516688802803647564458413069671415634162509960621967207524299255582203907881661081000184493341811464622958843512836434932824858890675456198981580914169957886059092215471772360199391156263583597621804836777868576722271266737878660347147512201899916754668213334211108715412038265478024042537296973190270071757398005467633902077333964275084606428258338593458711115888918265441851153264410353898782276796314209149931473408354198273715531159688125428692103964510984910912470125579378532963070279565123664123443398348599299871346456752966947084026473829197104524292115849944886750768155857848415065708634969290246579169806781000898199644867411964851806271090474488702660135878602051860889516696853703405492681671384626146635292180697563103544845577358158014267301602738696229779693332492733528094277946561487138445008620966957046270160673613893531105185271532464402205984248806886918836129032053845942440096355272914072385559052934519786594883765651904626801697493055639694921550547937266977590768986199650713854086322483003192781732411778196372639578689653380480257429295180242199859890184971833991363983762708420320562912223010627216079641006546405848111626060808263574941452060738992855448971777146964924059747652309329383226480100963999816414546674382156056459895434473325345355167758982698815810870902674981875239750564281758247761596976176931133090054936552704723775184170015443711932949626604087189046002133024005868147937677720105363859196786824050413690419942511745250501597595258718924897994391409139242837272283582963856589730330929388054786217912831915850898093395289651726101052706853917926463108769919786567236010997784765819353222608116425860045085032247019795767906818333858555076929781197306385378770467556982639279014252559885259163022733098689850415094077220175248004162119854249217145575124386445233010904347470469363538389330004845251864405336844734507486864438169080526127821919332154688120543770040873043692082485508316062048975402208667284815485233553339495376484476391884312612727594097742561316955120572402974523127791568165350159074129899596822436500619893335535312953842086487424647076034926712389593571298626296090793834191187430477067742918053791860280854642005210587110593905619193834394872910114353343998169427709153227015521878836061547232159213954146044731281310135347964813184793793515906597416754607300910287851216286211809742053149970914511116705622945065627338735724882456752552765584681621345456011690726549080658642971523095367066995704649351291859129143510340011263889456659279183506493464582180253473461214213832321993979532398290540984755062854144709306873378815192090182038655371733437794965539236686770654798628153958934207622821459715969368393228639400466321204967647404293335395498741799933640914154307235908230740725320917487431697845084050650214519465947059333669211312389268411650206299254270966078220393436149569026492232800463310349509907704066397539858776498814808252334417216191072757608867763044905468667173445899592457291655222723161026135010132401724942979846412356307745969831429206008613065440114596162190639562187612354937992298035989596519993081545072340125569901381179017844871632066727947896847647899738770417794646681059815332166956324277578300507715652047802987840103605440525347426250451596889821502081140059422148576464405046815813863631979291121843400157604434864507111753582778198712766424043967467666351265677370574126978687420512830900952308216557658116297238403027533048677424918731100385368929345334051661424208609420979167842956649551060785471549848185154885520570536647351504369190483624135401721636909685139689027935912753081437979966546210135756017978349222772475150872325976431138893349493059945011336501737631657771629500089295534269315516358975861482986821884750228893715619541342172370917683918626343418903180344964688474829486102986667002916105971561991808987695561531746954303464418492817916868495960573380594299551158924548574203373900134260863881265899172517222802592644030389017069061368096152700895793029691035118871977199818657946680364858447181834175987842132579235452940931342885594762078619508399871805904095516124732303667288308199184604181219091852067211696583594406106674950980589834341009752303388894094647270878637909768934274175298117292775469518713237642265530136797364149953690788493439591973285279053427498775960290466187928417693939087808836738905470777480076986119229080704420252069562276646795501734605718337378249817856296120522214887386314627304641955635358542147121681498430211229896559030978841448010326055811476312308239742614285986857618552078647686991319463391745554783331436006525859283482468143632758679581039746003487419495951094920042168893189886725815184054703810549257397562907587008678639557826291011788106081263239490582750041275505801235191949266110228728829266666584832770574968493734863632360915684121863217854708885043605405904066199785530328376082254222268579431925188862287896877040209089395979083587103162522922981478650592775171943808422713383163412788292634740608672634571328069841434895932422462337367779622872549039777818968771958875053012100161592147693978057321924615718351930192277565878525405125209861084904863736938871704098366400680568973683977658801912321230411727936931678463616295607259359318241506129623817454377839920661785149674264308250454763265021218743331644059438922793866074655188732889595782587222814998330332111612279497914530202996629598679187538611442885034264383287698844535811774910392078873498047128512482948373148999054327286852641040753381283333841549661125741936479760217610169244944610816249697544953885793875883834358998016110194177593126132780727597546449138471324255611451024875020244547986284300872040674469507327270587561643648350707356407961027843119606866858122254745380521543038671557412297634199736217386345237387145941781416988581879868704558512199470190996477364364080207247265035364229185752839279061702969594281867557411253432648038922182939190497062082856741719511181154988793695094022092109857253868397375995224982441058203576557400005134756905598713215869699403187132853770599985283362439875433785665906139291008201916586209465457284876833340530455898281397700325172013961145596614897179093926088306668404800456270969261043482605760685133753143121286483199443915678635571449589858828586524512390052589285799269830592807998589621227451222893596741822876937282255976031092378316146732153544420633239776049298791483723502171217997526170528227679702766915975444310283894461144360433993753478587817736756579584765068477246138632965500892121173479318511354731452400807930813357795218867522612787600456186401284680355987372396698245416555802165380186059690322139744654412118887551034466213071053724523664671108904319904544300449318084449200815575736789096148515548431024672890146627562227750359367684777017722427789418916987946481444535189722133771178968935405858329867755673448213308853539923184014442922351577480887412224882354337045706718163979133257351009657133638921428954183941766568809392671564973391495600450963641530441075696772933883635277705915296604969829955266517362320769484358922686912000695991597138137375722707919052342323628563191581242964008436486426927081700360359949136636683213090584385005246390920680613752637963733576617792033425337508876871197972160921083257805773152963071904598802484737325492486480436235377662112591270898051170318223560643237403061743630537128086722251773031468793497796865906191274697525601212068168372009521559380737756828432183845534699018475347355715837528585001137103512698163043993576318131081918608433058791136222034818104328650685916442895095131822511169811128762978038231231788645409835543955366305569449944990674962500560499464896007956612881935470518483517541751676192431345923288768595286485838805425821036321949986544332219170023351882414575993671574882753636797690157086283046055453000293515409955607487132562988934931985682857867550658102892828916617290614067622596993653966455709800541592895500780692222580435201950525243276646591783554120782173384673737061909004163160740561314830432215683296124064921832374365036901371292756769676832814476133526199959828814373978890423187958549965065495970987375144017846183673147629413145780121467657964421314764466397222880496254437294825805307898108820380504147731902987567964869335612709303487024297502120302067983786764178694430674150882213307555534450521084696438160661861731029725084977027548068138467377605338352612689178784452260693104024279302956056053104638846262219356646652460360277063540646180708328507772599065622707240758540630881279179883734879859221503689033939364585651816822243167621639968016467800528473566494999097498712656838943024924719736540100708428073210847615112271692651667679697228113704363551388605528954017429560312911870090493289160587437871572782685021709019993428985991603483854608925731014705218543355491283028693154239904923491882372037855857050246096839647756538368036316176724120465865285175097430405042398822709226081870716408407506308481548322259264927662390027771200038035228462812466961117825946343628713467820233226727469732667558404819179074577374432242343294603278909600574613655529055586852311631677567389547768948072321958714914070965045988580312396218970241488651671358223918738224925665638838077397854816915443544393534655850965454215318993860025766358786374842073203642870451652142897501866808018748513987034330758106397954101274349630598164507185249527720741465821506578271718952656657771060140634712288214246113162725072935245592335419344323281174697386402743132006181924053396041523517374502537049691871796013058026741740487378056345523970815625492066408246837946869356324120828687325681721499425306386354149016680468605442882860802544625404145131986580171711125275958796051880253489903021170283185295206651495821225739003341516323409218380644458830735430031698857471787076605714251076609902527608851419657655485205710018361225230276579718838324552734949233131868638523621751627990214186766848279300581994486546903785552296622949026127461233895115148593617000703312460223114484971599931555911194499118628800790373118480403651990490523702205964959921804643892906865770281715129652984831717415483059721143591589478669397810320974549528448237937888258923687377093409337184654292662247020231206924407047324733026680149416789712818445332176616845298292283732616465548164100519954596709545786086239111356508568203499683394787260897759724600437508531117383423156619346478815010151617709830676720828997438360955523393577074672407606468619295108376792999399878128184644458945071290517685121306666288067458578164543843292854136482808745194423202950182428111083707430452440354902493452930158278719963786219826945314845924626664725854584302469466838856685787714234431474016979763539722934988525606006196788418850084571961126304235070394733202786981294863985838882784554415869327318795667407427304678392461556385916671751420947084329339533404227294610348736800157367952798469359623365772748533973854142832637752862858504498764434607251371582553326689585517025510662705689275294777872672709524237254203734919759952346540755557048194586893045424975052255729484536369773632424432059244946440191961779135138351018556811652112879915491747670420100792002877256956396095303962939617420380686675217273973291128694723460656037985067114577108744445794973682901472877071059196577027528796379858309875455746530225487057042372787034942157010469583513160200983077981496089346206821542228206580430598581425041822850596663138801498018923849011592770953644084746726132549549048952424443910083516979718449640898566775607353353817021615193799969005122927849940502604099728755906526645962381789114402588169728901319902533503311291084628649351869263297482469894503542015553384638878539081281643362449338789021651944719977604546345212983613500621599324129859276554116546593510713651479342796872363342199255500609480826891198565725404986148219138212919697491927392887901416012627815565719764732220001768553716205338989001735243049195925452499253132495837217214747379779032199081886315855659690622133220616159718942330426756583367512630085492692580762493566568666549748422829376803807425278191337461591351394111217897251867082281991852729417036750340313724475298171332502424873518327327071379013444502821824992152251654725025652571887524283433744412463012133363716395001462503348398836436103643849058469075815291524254945656317209946961794681404091520797157233061568236189858048788006089541070714177036588619488294962806261429713812407545457904507718849300700489697210172969022640954321685422461045603743246016975875829230780866529712807362912270821096311256387648064634044454843365854438880479774897608023833555225794259598018921819957730348527889821941315860421340773621444120669367899885627645739917180560397223480684512750390061012962878076764098825906043720163687977658068129957797225946065227810859546203330719272760535767565341595160480580878324305199021754944918743937651672556405586924852789134287980803511500191512026769548883077062039623239485524692601461888302002245446759953694906730241200839006264932357608006704151355538156974889043553244171679575735349747678583223071880876577422704843120693737063893818684972257928084485704213985043613122661087668029445174760181105977932235618109394653560242772839856520436710590776869963964398272419037980759284389841470381923840345101635232792000807941035675680351596942114994067946933559828132670167319299468839786984787101052592997279290488963304221742476964254182530532016613455685899258924546994764112343913231386451829495231317684115060697256448299439002926338776766102005608818299508749624335531222080755923206273274195216898384094892437127358263729840596258534213952498103072177085306922745945767445640169013736400073583190946954933449917373245132784674178351818594706928836626195867535104506873693005645029264632626292533077247171036297987018485974517915458940093444996619063264433351848953854547558767448242901017554865679045313520742675893271287221750970085373422838402384387713000552127932316311500197419667898519789810723558390363975715746074521584625566202004237782965152611571113806812535186975393991498374424808819036141968899462032247583607226312346298473269668970199101342685395738679348706052306216560503314448676440721316904404090575907696723847816228768828403764698874740468934492464568950339772382017682667480832399405061487186858253676972053190912438268588081535886051424518814371734898817404507322880608664618522842308256620379008891728121572961324206087691259985670837937100048799857571640609482431624028861869046980572442488121580170218805243242577718296817126871987232330067922540557630504678345732477804504642694450692482332791692026624565876113674296672083378582352585301877638166318784289619798177529157901301139684841501054576071683449565703187551875410024927392340833047582255297573968107220412728198012865564872897013028090441547689291636741886359184723016696780031433787437259192722949550270094039318010062554802343168981192984835367626661681993671566442523241489627706153252122215384909414305372203392149052143658958407623547053616184103150819867801281784223609309817761461778037437869840504918952317635872320407803387903107834623130648664680478577341185665056577111223514521354971936766113499718828231139862413721511325272248405454805413059762391953924936005907260652077886185694088054691713844601607620270406277556153927550366663970567713340684248134964381479914317668287508900690008741853749876833884676178974526022961570715268085490889985565694142191287243036703588793801412389665525108777357125270999499812245895052351541341847139158432519919784471863622381003059034282337521745895596281475684455622265562711554577178799011043372186666234061926349323850641132375605356683720059335519704248968591330564011860747410233341003686760686894330821998634248086920434186264336063762655327091723086956383808501880410726686992227474192618835127523344615917987877686492325564323764722437431435775466933474225369368626499655192263714054166098635243418242412584710914764165712875716402040610407518261116375365985980273213670609014645705167629810675693220125640907840626261435454584492533383902019724017355220056288173338855663867463120030217597097651044163815950874207055656198257130278229940741457242409323718604840302898131787348299492887532155556283602670695672079651649410714797563748107017559133512484744076156528613662729443066733968112684931528343107303760044012546417738977337971044053043144462422862187951970603166957671834827931250070190564237961759784248414123061485487952311334763260655921119656745409194396533935306671432080690984135923574508947975555663395316571324745056028488945802022243189522369124810955438987476863733118564753623352356855496874961784531864682820808954403524655104743442462751299500616965176585590617998964668004786758206266942280053285651649543815805873031704510051399220474360285929935044094076103591532239911895681551927211022215640290880169376560639900198473448661123132453806411380580456953298025711167408495299338088778567047910649219974326337649562461993878524480920288296206339473295638213151212817745585340285778497327700313774250384238657670661533304114118634752668416634984157526342920808233674256228944702109414969135721695186256429919789486135898793126996920681630882200901821444177680481785645729763325767207823666545136268516466291164992033498003334382880544881770650504523912629085351754442465502947993383267967008384351145701420842859046032729195389737115191571926531355227744518923812768718079903464694375409682946238776351449548210997328340785436223448257285414672847678117649491929494987152043074661096090159319194724947450872092519594146540479615709527222701845709403636397645973639661640568845701923881735338200150341040077399615929983251686443511445674903661552477785448891816755277142266776990017735248525896670228605302876945287854003274019401834365215797296560309378200684328597328407951955542253309821682506983291616667876013923562216742020273671988462240954141185283724573268866928096346649267961779758760361836644874647795025204232848756220847840507669569024252033179859341343772792468193776007825690480509782890653160816841610562283118092303578770696435120666857884141794266908724133537784381126554599026575967517232074055372160362496429677801800502301492700467663282488030690828783370120376166747684731279295005971123329086078122398721300369081464365835604429714069387572970626865062706238882102845300886174176181015401711643426973522518425186349557990108823178262546524679439902659080542986578174579358523034528236084404535852829935740987912903532823728503340330816152111999657753384109740519262884402465623648827635198276737258013148349228650548093220107715550426848979576154149781015876145518501672505098471640566299935629373875681648481068089457688303172185250075548402565021173320914233619600123612504014352354802705534663667675456502389328128562016601059613526587638876615106776683051005958777261110281547840060336191742730415864437419412172604988970133138389734914548882470705093997179519703298271875055543380656187651680952467756912787842493018015407621153623924075829882070235401914917140370439894842519431853722996491197132805914068393802487859623407893511199023947531074272046218819835396159663971149400140652399206994362761197300128934813476536593133493055145849678795232470791034066208336491958293425670215225855810758094064516158047627420031527493355580905612833043971675317509565921999940615788271004245464733807315773559523322270239002078174661070648740559418650572209024391952322405616989523019010834389958757307306107555063020452260762559014258011168595248037929332850459085895590813764749331709577346024882221014819652509085702431198847070918912997485583531457453048201743528534706229651358859239466958786040952986786705445363833857263928842828974689207911062537538610181742486207187140932055877339398723830414185685283409798463510192417166131280167051151580116671990625655975424540244438225435319967728124297304235845705162371532144183471789877528568976995128413799601162004733371935408974332369085861056955606776945573465195356706862035536274154378323636065220989565398605479522252307450626370986249522597415186396089030945198216643449027517776020898772367154899359521032642870683470906648625202183159145109126606696227454103466216581275210507416942675787852967441597862148216150713179013095273423665809328767412028149832963162231321296207400089441745476545105228386555121689589489712396010507047793713294552775694582746507186968186625915950670736443629299866219353218850310393167246468737419018048985694237827023391300085895421819512015541486300901619813415697906875555178852081390865682147819222859946782956459948125208159909146359131350596758585435073431120815721394724472955808938358175488271997952734223363213620036336023101107777327461605046414758336121874903460190909438164665572771965890749135774658504944091275813684900310010069919745171396310576242793250352136945444730878981469795830576432242879619399545261401070851541353763197453834020306371102367416649641831559515116130806767975945734186764546712415632904659946678701528536687705954124691249246907054020458500438190159226427730760392806604286779154499229679041696182959205464876784379951460135349595418763260891769210466342193132758665260916611223055816166174584979960046122895295095549514725209244808301072639984454755338025304613153741183294732888357482568915758856343258447216385499965932242392415962461243599938680039760626817313862383503089394293638110668087364442205383064262212041995205755131150415809648089721094508461371205288089398843170667314315867069673407721883248788231356149147810246126280838357343631934005176696217908889947525462329026583897163765849379373190492468876965817675925782626271478272314888172746618919442282108076159497481533577118775471119085421876309200953543316998930071537696369903991183476045426093617580161770666679671945121720374961613349492320048250509647616010251287108008360324389936896691219236510514336422696691278578873551192316595048057764060983861301720097215269511762497986084889880095223885807054046742398375994046532986740097445088325926812034365977201294820809649564407187641862223393524730845209388542032573269826743035875108385525314134766472966810954733709109868224061615777452905761695403515078362148634568267854833965731576363366465319258747008574744879235747791255152014957012366283618111060221628860927695647631650110792784896686551546759774119475760906645974324120963985242886207753717937963672434601190282251516951607982181547618298596379385454133027418650990000131254941970226593599602917421705714141291799280154277150274256271231028986372475629970596249170858483290955201782362483416063942531674573677591252727121246066381872450487673535237752328575135688755687432129651335287888243030889835902735909669540555355899424370522175656280847794550581942609452443807829280295930065464443171446798099072397481800838973446190431653480403043981919376025847158777161365726148353310214008076651810319373323751713736084542584546437200876927287150606859501610664573117793371401793560239036556114706208262377754989614408691467058056367610441418521285698183474661690186574795787962821274913465921352736441282255246665880714925230036603238518503570839383034896372950586737912863030611324804762922259812493764433900708185853079695566509182044651430710884674685890846364558881629222133227445397293634056070276172297002521792011327809557032434469971440325209548870525693108969920992957091006384774414700649807895037110340230175704442757729626473882371442429110262469738015639884427424544417440964347229723643459003438818272859660329921180609962958216283665524145302370415664332767779597598444135974046500653201490990946949656490839300784881531914510514658380396174729629362616707389331219303500199070341115305901528285190686698421254959880098750384051811203805494652470697165147267243281776630917407673205552435675002299467916586356182169745980859478377062357301353294212735820977679078649801080701612727965393593217749939535372046533902507494281537241248676600485525655287475915694244975127725166196104784459279779783231124282227992559086297602416961531164247944073863301213998098980829508486278187718929053922942221572026857039891648357050144908213269995943764153183613570694531210514849281005361035315523390636534203664795784100082530888064509168270254646670609799656076226216193228563885861078192290769874031909236039349115052506764080975483910771478688384935671629375527573634829930646211779681127459400013930171501781526764513320157412436178296051210287017982480925975930155963434853297553337117710633173078346620351802214908237452475744545939375643042872804386861290895510251206563155975726745217634126178748208219656558187751534511190040626205194910654547611889420058090149320167759079226488622418848483786993449363497265192917687760680175774073989335450827307778697874310752146049021014874451582666334358919949738293471661941757996897333838216892981960343991804817314224322062734873845582361123882104962994405771858551616180322852462763631585879216979474885584069782790917625654775380949491111271060569811066009109610140276530146133526356158837132154284036895765646470025811649625027505144164908422724319378912453052336455368565218343265358318441512320504124482531417536903001420448901551118617807698387941424013177064054429518897738097610581883485189968613684306705373077734726667339063242972966232033199690200340761596563469456621996025222330260988651901743258574987811938264156891709762401147070755816230075483886858252909704343622255122595276211891293106572145606257120793918784976781257766989466107949886636285157375365562775735055940232406351833416618014111348837239314805922597034689132168327233049841727542484610155344520488165554112215545440857190016482246593114829884326723517493438183408617180444028769878625764444868752930733463076338575284339894592524032199844520425791743774448488100615116732772379325907523328626772807843767342283421361343368540048926776149199100405850428347013424275270085391489214579726008018939041156326229818376487331763101501386024971290821648046018080596850093652256903200581720994196834344623243631298206996687013386574375323334981994445670330179794646694161322028413006013372968510199063679058356771399678367317881515000490610787484060915713287351058198893618420953027295259595592627838800346358809888591801703232523209279727780868911530149565667489597032358998501953700285250303172148110675624381989654522994155876360416534285022392315478875828590089139180885463228295320057055670732454196138556248248250330176849632206542526046060570771267872750060954121150722881940908687887333703107190327551544265369171224164057026246004290068615459790771274284835215610546148591728003156305342325635964500772520663803308612213428467248002531879121860302313940478345690768006258809036087508821800892279034639870815860891170405994164047570806542492093520980266113694210534978304058364326312912440113055645165296595824850579195761286955873018941451630059818428763672124382743945440570952077614445010567897123270698553995397090046997675762078793136403281291066386810536433994254390384872373781558376622958009630165232290756414648230130429160565222731575399854188049212030168053367457353813652452358669218377439003204584445814604189608073347403330270342622359549442447424475511482566574386827767472636604136968593395307877387807214269063551519131121441553463125506202703530074165091148406767212768036474926557335333920449926905726847539323716869715059191849144871169755201883088418933279368737615441252940606955109815379663468287554937967597378299172470780142711081609461754471772377393826879645233713704588893071575543110980034676732817188292184422428414412881917034919471715301172183925278674786551281764150835942119730813334062395921648826626108393834790647596796707434580740352444731635503799331617161029850428348121889803989855587899685560046771916219176452172716985410063229912572270718126621142685503010343553156083617962940864213996966184931408942734452726058213193444024714022090607034691414356566923104054249625619539270546531691402699780896007175310870345396242418158241471786162826163116777066670782841865790791143584646834341167608294683896491380285066534870029988599416433587119941570496439466298510824913178249970214480146289674283065941078821140749470849266295351040604914086752961206749770169600107414934482557892044920622061380124432720214409574839249508810015051550674575650701822563304559081242032301004212087286811998389276851067939276995038769556128513477513782513267936419937530053690082826258606405014889110480551598671024749861989163199476771467943588690470421295892844201827085542476131335718407866926776502616076910703087793453797270574767723986923632416501688244625234452267371511889850536504862347856152364670582861949557999100250537341203375629322341664718981227520061309281848459714221996638319714181765882450898880572842778771457255822259500090980119040547938463022661156917228320276463876160836139986315852286081841236270833707645526416754232012173099359394296765021698151735525178195228497957417067315682054899419516965849055072524676723922547637454420069381487274726535302516267355381004510148927722108816350382285817239126997690109412892418460233112745489074514855808499563289788275487972062025929687295785705905032693712316894685727609794691464480517061495706511564149592876941663599238757361992318142462623755870182999183564154537717306410591297793443226301857696591009247195902781820859375712860672267569357576391876350814479759233704597684754868879070783331783014444341090152976218851845793368542552486842978233510190370916098555989293890759701254917336219968851219251687859024631083269139573661596351393252730313544702138244297024355659733274065820829472228779680357671014385327024070840368379958173888469456132484990684629166927885080734268810514540297456095246290349522983991394183964838279943161057783738605251278553424071799095636725501218883714101149512848071989569762429478657570922278466586890111970943307587029929537175900471745557160467557889871648180350798490290707416836583791728343822718096764540612416316673263641776463473955444715052535275357975901183120493941765304332485803822684172391988754806929383111754749116230246929726516604061838784607203216660319333699932897410526543744341303000361684266684079612010871234413598689066315325409220430340016500827773793683136846041348299980802051088327375642765793228924468723910397706130957873758459742573989953716254015293554923232788072721367523129775428574763980363018769978783205787004844169044983668100012992685700894723495918706857818124879190753832974141267971536078248024073922106376704271841226269854190353408311341961883032449784847630874708967058927604597300544083791645622958182412491423781800985297864964685700006710289088217758399816798441813383412553871339366426942510781302139097509383881558690269524988755859857148647905031960765264299669178603714477746734554750683991403547466333489709563170223618769046257075268672810609107339032958369088381398844395371715950965816960305459690459243926730141286356203778601497536102795408258192350949256652477005296254401085226708536979038771372659738715349673119001200184781059044811183099601029745121527907105954962183511982042191345909961771577978486812102909840047131936461180111034784331472524854462179977647477937841407999816307878258139030955276510213805552250563065913684787789892781530928416374838776348101879959647988251172019646614051695467334034598242832389203767753222975992480611261043913813588830855592584088209784316606953376700177898755155090238427143142183102775600054274014312334056146751249444968621881467726901416906210893034001283800658233906049599724899263544117784809129849866722998479273054633191975829323245079991320500892137213214187126605191525453470887509567607646893457222997890000645041758661322357687451383218009369581450658710442270342066700434586909354033515483346641843323544416795476198177006233456414418808295598354361449965580635864322976049816082888059943426440290025246822440804133635205122763498979666233677816115638177840127554609527719408654060559759369383881140535115575579389832236227869397788010187004711642506755681691266079335132615726364487542666511696149059454590073256030488125097235836892191389565085432474842442288856245155054593954814762491914755620017048773451667393906778088957938829685396811386689661939995040222236037726702853207572521750518939586266102436441632696323441453993294633625177590208994202417749877933524128147767481254512637425558020095864664835020023096855754555663809604256727596650179642821221578083770645960964831579056255797657789275176830293886507927191181309885637660458920957740252933338073597898249302660090209045935109574121195816650327960052854070127506924997682900145284814089453225405432547688354313652060078700471543116558936037539443736440014440038111745190484932459736823745397541954243536328319987875579637457049485787953872681218255524594065953643188904404068383547905936735796294563750536692472826381857550808643063687086002660971245992342132896776094380058707596618700511048732121063692422018442047298282610367475279901194509142120631534503776020449334727770265089083448888194920752318593353528517050643895647777291248425459065631176614371062824276510418483432874192040254395796575604355273042856569340935779311153690437992282663500491682489495416121264036039843357003979907663960741593477748821567553417917624809599782519382485150467172547261125870172900006985921216057306226286646576874538292768611698522854691088464773135976969859072263894936277784228873900331980289078456953107412703492775474389734342067198445856672494430698457486828010014667105505541789650903548044486308268856257804414968205824627486469641710697542310583365680126893607516852345603049685575699109842811113365176412131884445079530108343247053772299728981645532686187470135624580177075542016320590359242754750794496814652593436198449958775639078564386202176560652724526705345459936042949440515896848070372821626901996795491713831764420650173227901958691812815830586333602034198570580246488816230180063181225946641848814949045559094715708564463050552787086612462466043747701728883076660486545835804546945368003948567663456930155837374941388927831724814565574453022247507514037553186084426591716919790955440273375932610278955283397510352371033473943676620181118222678031461260037937052454924773222054425919098583004314038840481925484668521228017638323465281823689939746669464987978984354535304918900114455766003401007602382046259422878795726784961482467242228140948600997516127274779961610786919418711772048801073811914347644659521761543074451340338892018172155690985638418421046930861569128094449410874248736128756342232242072347269604999584520612279687853322504776077510209820060720108360720265691932650100657795561773115374884647756752489345849006634737496440601890263239256604440208043747212533866474399261215932366152233346120640451561440749916792304641557056966559976561394014657664832088861944209632125678846490407033784811508990672300715585615847674850964245375265160503902751976906767047111832842715951196126964409811971647855326251657732291349196988275646017218480299295915696635306490142685669890607629262186312955075126954522074790506263751476955343342504426154101681510580275779582906833834238764555831071216645530871047460571148118017335925399991218508913314435808470487592541829285032984363851190078725652498679647356097408843727880741529402849748844278108875885139609877241051969746681695847970061395919557904178482248476122790447278123343275086960932571849167574535789901081530880217350095009590893987818417060614124072762546665025728027486096708360505442686597147080728493407060973257030878198270208939483862085121553613080758485734960588450742533917387987773668318752003182957144631168403657699692226209602107406508063490034494109310073202561970569165553750123287976157028299162887865856831818489931936638425058971353395608634183433540123242522222893176772016053431373600748720302040294092403488555999710142399148710176899793115236137028275917917792650498008490014905328299067250195885718826844591419395271116611462522356535448125160925934030425477501618403301180674390175620865352602183318852107565955174613549552946256472042762495965150779499879178294132626177454533601077437127138152159990282984931972088673164957118240739213428159815652374788391675509998618494097732619610489028174451404132583836123231376847172229637413549882182284643360898697509926082190601555615308853739545095323266702568549911712848448748026943435509903656689236292775478462323067500024890339432524498028220821095757426183640634477027220294389240677601500399819481124177395949092394103878712784917410434208608511589076333515107965990550799662252177592467831931826333447817466619448672234765724527667973486869222706571706260088172121782894554574713450395898946229029693945037514041113138063741069490152287960490101106768265312198977271102781804991311481539336646105007889964481535508988592918459308405005719414534660821558501824705833783830213148029638911717760885588478566762694685892594048408794159809304971599071602845360691474582587330185471841257085829750351731758512961385449507934813914636129550912556145026683729025973164545016244456068149866630979056282330861232131838992200178595010358781611870666526877939875665386061522190351385545283317131345279240551274267988102298179683677349653561934485960497381463461739735414307967534520957284991876338131544539409271373974457823418991987074467329272659650334223412038267491806799400911292908410105100936303856653846363589043282072017340502615662024447974652615148147697060999256705302559324638220508824512395075657587792955088338873437159883951579795210343743273026265029054135659756975714645207164859202971934359276064075755384439675393484480368557614479802096477392023546443327001371632264874586133920495412504850301513075565070514530169612531896421698654785287231795360036291190802014505241228350379197789207278753707269097979911265781940506502797544511650819366363748912642980937253732795671775032732706964906350141581143453664558376353792881411698794147911475865109904938612593596270701405946610912461715679480889044648731952154371746459112424830786322000596128690410178621079447370405093179798579306695402673260869047170179362948238970812219613339464849034401064983558130105871628070657234182107780460727159019419741284231493568275901218818689501717914958946949650851084481945415490526838755292811363585747839128423182985817609920487697562537754156270192192158580885417001167010653143999118612178856092546877693378351851185578791471000812240779403985117822736871713778738552736864408159334782633079055098384844475361486626625866835742125570542535971362352270398062677014807705807039503867206945773222851684219107187455307785533297505854477641994514295198058845269780130534204635170488309640727928239144819771962749680122965783798305907318422394820348787285525902881839495247649444797262559343711504146314114185067247572598841843065386091639292864228892600268670617106694569322594373906146924883944389773554085081217605550308041907987137745350930097457246655713340063552482342956608069549563319753293009099647938410816253961169851702068680573571761360446994670955592515417913118615231553869932858860468085174679089125745152692167321636070139643580644713681884185360173219992091952891579123172608588336284851509551380744681026853807730302997295534887350541103187616561803270403119722690968383380315049292716715974241279751800942398339420393419692181925752126213935120363378517008081323115043007513456664769728265719233086267191100382276321586746558941597305383840763988544087304199872015735855433772506406605374069022762992989160756132497897787441092352246814665686199502940391638302074787822942882687014855229868473978471074688050730681242621593918879174636080901534980132218636300659522208465892865919311916445810371476848973044387777558023747986345744547787695211419550643440711712354773186683019612508015146922359861560183568774557895905479213649106873600106898192703899650902875975701317560687656428207791103552065702208807357838328867093541292906135241253207004562775251640343407539511384776828757326252466189386765715274916831012745070897674943973141158334738307601359178924436854680388299340378654631706989701030657288764551724153601379004882570668141778957463038944120018076723659025440714190211635528739262344212422034769243301839251744868066212000296364403398517764475869736829124323663134931607260607497728803575378155975006849668033263255383588022699019762353911002076161965849042901206994588601854439397854889214400923726548654775502777332645733366679710335100115194753870105599140664686656028858328016581142908084291395179765071865509618224512525493260610401837392586237576056695213062975282094810220387238550579728667695564222826046004553539254522799421609095032596876526147827459741539779309620920663022385793279958865559216085721701731260265013792082009576855242035477544440476709794658361322926138165228097766001552786659913437882276322973206790789644438132068640063056849962175699506187456662670872749324661611115321949708329235398355878487746424723732376915172339528377381624957141887490155216724998418724110544989227508103684744564541816957396071760270230099173697000628815838875718487382489636850713654882657037178121326616829272418743827535989377660626167537653173878892264387244608386860441289993266879404502206329725742475010615158286655476389985727635526134847285707293772556127821782063679681607717865304286420758032913504474841242700803041049321971799037799843948625327691448658434527432258097236997544577313372726690907607339400785403601088778077713398217596682350515096507163473076958318608658397054419177812790771045947151133175125990781286157673046176175458094382249900627897000296233018505400786010455069907872994144495542039244689174570069482513729781258988974288452236084842385153797980804917344843678485282192965369615160928785303882692851084702623739520077908672365631947476308568876896716074005502802366353389277931417163505135863752470109979768132318823668256211607675942837001260594460761619627124421834116885777706407610382346820665408679410835708957762195672590114110458377692446426290844264791921007507950382718659785203722656513322106347792905055382893793386607952435765835218371837360105032694218911027937718187286107176958993271537272360859819942186986392518868363383064394350726172319577208363969374457813294257317537417179064840990309485235887235798046243593455596868209812314328141972825054083544274212248149789327839640111055322542547625283233120073068582314308729695652826174378339166935313204647388541125542270005426213475627329316490672467049552564391161418505992485166008734965944738394546022727395116537258689006408627231646488692884293799485553789979278768185634143861910713577831527646547096219938009910230674134665108958082059030622286868629298338706789495647621209679627438592763440480156553785038591623726379552725254558043038119534802695717716746095647765952350685333292977502386845355406073900748541997926088773044118567008108538805555693508438854502108951971640975893727397174756672584678679243717881210888937821885296942997930541928663360192267102934911247230350288429261401306230298671011888820094210509131156954320808126358232538989978813474185706869549098281510288609905719081292558141248151080119161184854850934885886358996820345909463360167563020804755262049556398358755767379151178188893966436699625357205749180550736740750098221159343143650931627734740894440771824530285673050697672138657595645276579767135417654500037942493479725345990264751263583044050160716030783514873536340426773191927111948510314051846736875747176616490212997871724320656916477671888053106090000901617691510900382802726362901278321705082828031398711032134775228088261988122579510642624639800908396774373508486045690007901015085224450052360467184260606334287978845718367577129097028604734989014069940146495484031183661026321101940812032613492203966760633331856041219255682584550344223053986279193113745970068100084149812373032881638417748047414113445686009798002724101098474527701182283332936219729599211381463300416414274241205059068016565272168435487242963397409557708958433984054981513307820733199882688644824102505152535409664277277477558788649013111909624799071107302788118061856637727879771012422473319936961240630305570027803866070487233835301958457269309545106539856213663681740611735789025541484156518809473597534220011429573025188759319819564298730780993640963431303135497834087971194301146712231188962229978059944306311866155024300344763884219035473143578700208452144095449820167684557334086319752542795004593263835522967694557392137701339676306727901211842226778140307098855214997307226096121606518242942982601645086039347647237970112002101254374372389370540254923283889876147768630626216765687526182697787697936001433797114974054018458956071185531595701552330052803968346353220732286581115373648831149315052883813509815825708187709075132813931863694400385585332555939494209818238495321242517708628204449871279492878100281048788702520739592570944050142695714476592980246480747000487410928496908584279008250011456743314897593802887247735326423632222411287597368245786021851786705432456615706510618871429157848378006062225980125165739033295176623570289749052418000164761252114420404151494721787522942110644792836740671285358135740094458859049150622713799028010286028383062061768489401393757424846868939962374136679605208538628834220704752491747573923956327917471633821763991007862145440774828319332966724598986022399583734214465162663054900126057515572804926821764525134678628735836914305012663412759266297777647907377858488887642513417849623328201234999258904024014414955913692600478339601614161710917613755797631804401679469749067087027194665677750833306684336230487440560727844812463677791445751757441237263956401781071760919080684585890469117890200507853818306176096678014387953644111934492854638606851443564308240782067750404869245657214696555705878276269832924025283403117950082879056310565786220974129163458871627720405814455772190551964661223310018649079129270827268104077691163149887295361968058408402536394759682221963108257927660714260964514777945283699392659730616863621851614461607738890917302534894968776351437142464766357517683372644784494538232734066416716600537671597612365565938997051372565929544604521779437985251444033435027536656224819457492309267746112071974402553825995826877581135147571664426309557849604925587691423586237500393757457844933611996740320703950918222261124873249054894064734494510562183913993731753958170331262049735219546103780711728257649351516825843800185095236868846225962031229326901655219534120570624755378853232257260610407787057928646911585181677443327045686866704235791297851237284598638693098685871080037032833907688944312079486673184590792071320367485767785795299603437094795648880477615318231869132824810529722085515824103079943127881899162141790681896787402030202811577984155096629896341235764560781554615048135363262249531707990441403945896011882001824553061130882563468411578973906449953535585619034701695047185010636903617940514058653501368917892699780184037839923898765105381478101613978332567156952312278475628909359475358061061967576463522803092223833954247920934751505293561131806889318496164405643168782383919255055539931309208411707531919682279768594281034085058234641638745720392075620084987824138136129966301678608712261837070215831734129877128185640685997030222729523708468792702556438986367322659142759786044183796015690274702293369985161750837796352951734361940850684816391722739249191451644878109581106365210051473781716196293493773247401811869626899950574875725105904562146820127859147821100304612880149917078135285474968796820242208793321910008636462896033732126516902450773692580825811902806976116790026701115371221711418441496574358775859976565779435666946128613907688108930183511176431073309402920624799673828346541766468624215372794787398452000636421839843353791750705270566910281051938050119342221266060272072858482911827515542269910323313148665015669423009572796857095465777811909095905469608171691125202223636749133790504934814659818818061866359005741683201526082653269836020172000890752549018580125823956303469174862116337676963851587661514849786581844178554139497897734960527924787112352690421898599472737811141220646357651422516672439158499594408496815839260215824282448641249687838849841926469615643433186720200292639100105097605449241860984733900599433397205508754235359886114464657047766739694384491933684900198426782142094050635646261548731092950990333210820422526802168214602929477336066225524171709181972061827749188596189778537350743014409240100550393783544573963270814705516659157256759473601222727172196520401669755384569698166275081926227199817296879625491010973719590779458989947330238340364336750755635321075180709616282702528917030309211036742443799498618974987900679637910055437405440843249438568151432618050127748785154192453226174359009664501260872360046267095528995951715328327618450506647766008178478847969893297273561920794793424449058754110909844957898826490074431068114751619951856840669337759238168900555631101343129877436299271870348089409115169198067774548724465293892798047089505679456909966831891009348929548966474771068353950944152177330541590083948771631966160944449124424047122809427076141711441505458128761057948385559848207288277802651265917870950365472303230884545862637749595678563583786775319179608129552587615545020145538035070100000233159257982252812027150455606883717351837436948160256322897147230964322438395154008497017320153880623747149005591316958611728857603865465441683967345140947916527385917066886178166533060363721488729652104824844330315284702253722695401483754860567273687884925613719535835659562354034657013726096478539475704883697689840830809314510890683428882326073778322705893625228456336923954830016269175828716002736586314991299610409971288555304096472368092645879123088942678706659487066997862164323763424946920009464276274903215773898574168772215188702791177208703637893626807277604992407357994125752464378860203499384949788917982084853135193946721872542270756862285425788854870965736469498260134213561305045605436850291978382593558194654897902939698309902539420939250383997182971233455288910578718218297430356280333077709513880299929948879867463942376237429430015241505484121985590536789408786483733042602242222592508265081858441964612054167289782645118982556013103936976881821165255777254043778572019346378158049267766619339755512321914910599913565311566936252774636210860966780467148969076692582117784732656363003269970226446810016435191814059120958455790189681747144891586603442492638862633762826793805301100392086211242882543741635537238535870582706544099816424892684195278801473792876613343740592472104023944249617435512723547834229344973450045297925916796106950714698218844865809193826323434224693260454951149180810773200478952793305400051139675280700434444657831664124826755738169279924149809629916403909167899104245230314930161377408989874312194355065449321412138962361065873761401912082409245783045761370632175440045521588916026675684293306803922010292650081618975178348340370895481645612693524966952473348665359987819418885495222079978294063678423683457195411270988762957844692772888116249863290161152080045634196668485328511223139857971470496196529561327101578376763189994640685661199407373367706622170843373425927767156913421718435376104251931062550956895733600004809085220361096500914056102064119442252502722557565513608616965200673846364776856279599780428768850030140567997071076853745321614894173439582843543353592335957190078053795827865392100874796516655560458996247913953152019976822123270004580230449940000580217183943158448989210393095332621133197911018687005854071373826148701320901877547994662875661960386950119549869629370968932132018353234419789983607833402770738182698575040587323183123542825376125090800080824642251201830723788238743660399675960339961039418142145556997275202727005675644744849943381312728189834981453680054895598859414216400972900708672667323137382425050968515653404889877572485068982298016157492387962903572648986079780236878406860984854007755362978506908875864831314823443234675941291087057633595052279068737518466784557717805420536238211835923908090842306403297961096129110888745633541414331915783661298534100589674160486836716200911222896743299733867167266224646914482059435023521761359643572960945583165843934030421271269514849746312805469566983147165694776884465292395792841963075264108000609010794995698296829538532488982412795285118662299372433172345222707445549487728046991009005704191539985062930391089753269362768302358309373787659169581936176835781699988865433519231203765352384265758492107930344513771314153976284808295146939347917928788834949811210062159259323889874399433320141334146064256050726125587608518987440097186375933404035138515886682343482005260768938250619533816478580639700623426226087641536145895507316554976914560022303910709333969788010709064045610010044068317212136498732585835833969858810777744288951118805500625616855321603207058511085330995611764852934769254474661322873574428448708707932411945393786820649436515184561596889811559734060930385348065763180925096038789161219567657274637683597308330044843837578712127590667783312186036835937255683503415674183029148481149515939631089970562092446399740812420205348952740697893441324495917501754300286204819320976557566904196481517728801588410794572482990187931274112001233238401562891869974811038382090954081421972106321749813094639417982102955925779149839527799353386499063346248367760098396771719306994341230729973755125728020785014057729424779222347917500672277449709449134033421730213524540909240341323687762239855116800121489710416873291410866188502950528512850360671105103821908525995131594678481807042758895214417430718894295065201886837238809908167079314796263873319300672354623199301199196773103088683954364618586343442894361226889958571551839173120638778498949053290846511007550563836910020768383486192784281085087645437645743961413163188818689893812758392331103524541177032813375020895915467947695811704511764993581095941868275756405415847432596785200398965143912974941220482515186489405333909448972364462540911082600138802209950285076220869494998131452547138006385487226703566576303407050258142879779731210073026524504935157129111965468930705195756501368057349605264878042628450503620035487641585626800633910803905205546681353284894411161998012853973787118142271626289195044533824213887225567988864089368390597730077075718461411908329138568036369002560250655060234601942000777399614458016197871822086184482428700814197121471804769271836409635520433136975967457605146417449299957625213019929008131400932323958182014602362017294110416061406764871373063667640552168759827805312455524502223100794336691712294048434837247503765171267903735091373451357887802634532079425859853138833902630737750335546642915367290743006500291767318999608356430968136569472149527372803160222049881258952720222521070141215428216603950667349622463017071226712735375857795381274232311507084119055577039483587065878657741051863784567570858210315732300275483063076789775375317833005699656175213680796383489739576125704506554422870471745697374534596605189882052468618704208617402631597481991445419455878055110542569173793237918321397344688507332614440528169510117637367767434564391471037738243086985078533615952320155263211970372465398229509618006292177161867725566179460591138067058715323345510251360687576951802757531799433309445728431747579030956793366871070873576535562682362936469900608987708730109914735367854596107296004669383631646514409262195198407309184668659812909161219524832332231100020659231850381439621008232264278224687671161043665718416854579710179546954121229211376383786284350022633296500702563109346841664752986961478889821350013534829799932787079207047069771505904001799196633170834620153248834690763561779826127841828507765140796778260708797805336913435611039017050858714451591730983228079301408201680614317727029761019932921957171345595068101751123741384288000924565038405140171368943503773385658270693086844120454414139139712110080939446058272888883931499531315914761583391245988230230648704593918292443256800579102845627488744490085863996185594277117594364247897277886071116745548569188800688386713402342341149357941285186739503039181949472370877279986550810422199384146287484501378304847550921387425578550627336075395234348270262985590621109281832002034854382139262076824238111296585010879626074415672387671577562048099463169329242424549901042475553603266832175792113904974776968862826352072678233891114590504912227741184023173894759515700246367755428755818668446852570444856547518259770923046361901744455326759839391066887999067812400423455817016628644352154974735161749846615035675854771159739530647629306501380339713260644737818725606134537608040734342127245779747209662434788348200770866588338800779038440718496629813858474769462929755811804797830187189701789692945709660182943118772540198598008815927045093357100300797066559996465882202886986361456393126161002766289721161593635855644188326334777244477681824710460644040455945795756005693834138448755793602352759302406579980725117209807320796773684259980881258634590486251093438424742267667635162739541711719577213931217924527497617854981054256736622924443567467486939520937239465580195493386130186863619040775738308537871891996388307598994078711846228935360101107345459957706323312269894454647278688785072501149050372234970376922746483639811006116580924024386333393101353365396818491661325938639162278458602161505009462151752448410349115491430695109313797650428833396025120409194990176893943817536138632398358608703341734563119874412667063305769095626904117422812820445356550974115326091561989627201628050067062345044448562458628366098872026522514074645816286784140122799042373435124954154452586308188539889353805062413829770365338012352648506635286258534175693905481668804284474296830984216848531100857513697614462920907371910929678378154745555389739430494755064963311763939442314118668639177413069492277401781661385120583078628301407972564292583512274877732925886253420738809857414448922969492478562810981426236878118650773332034138720040624870238746332737517687802365117481254093053492566390887099606573407963349612907090130433333783516124367820894623553803387114265075164404116350945520774706460262219000487523861132380807518050026531979497832418779375623866763554250061484431877672449222502730940534640467297686927299702947212750155563867022560101943221347233817636926033144522618195818733376064170187139385512434637084829854264010999727643204806773654552952209737615011960394988582014315790155240623376811887764789821222574985009349017761263419380970873857650724386911245182900603459384203734775960487586387300168084138705481889665243288335404946847115544448855025777861390245770375401507522635361715744387171909324875492397207428970761387817596582974093766423484801625404502495603789244055435916732585989675309832149872181435453910736562611490539749703953312692473890534138583904376176763293820325223432075693501873993567744276841654706708460303666282039804415598991547934379430422200062138093668031377328416098627908090279580591622152063640674237072104678501719522674297786043569796069968988039523059332257831004811215875343214218023837699159699313007590324201899548135831389108448762312324920628287874898944350686248274134608693977020635798973521563177297288254353524218224017901135356500165646402763630654693380242855959155765815667532711097531535335227521612718306323462704893425975380844596016099702811562864117242457428427267944564512979420958629675010266134260883840104964457056273418058006049174198794163742545842797343882575473724477646188470574230876795628429560759319510080522456379271812188215341306681674502927108547039236649102148968098489915134964726151917227124693587503119291670066767325445946680259185604538402567212460844092948497974079182141829547997251358430753535512800064764774426526834070867205083176663194444231550816938942016037800908005256287550311068537404269610113992341750856283770168044230906973610095756203240057761008923182118853268942878294762665053868559458379499784118836233654413799893223157383247976038646688123966188679765344395882941072421424121752496129501872111645014860595863177933568660614600854527939174714544626552667121705060484236852987510875778053293083723286785587314363436767977124784915556995188171404714305300473174626930164082936473492231036875242658281218584281874954239302885136042149642808953585546015403493363450392658814870070215920183502175350470317321900663672729202728986852380027787754081259757729010720620983788123112671387580336643841663723762682541450032168014588640734982100851722758935828134157860632034120521893851153725870240119087177141900794912801551900395939944184368925200708378888549635532752596473910848986169921837571705398316004824355001400395332440406689521913999463003236513692314908015794257613288243130654792651668561117328349475699184312485206473457371895049670755433266295041592720340809863530055015711346606118155606776188739025221214944796570252027187982990116707939225655329662533333783717348306927866094710391881203927746635467087846250159800753031013867417083999225363787106207319521011171461481907776983120008984334382308937928136725049193499239521458576470460289473165017969958888085758293947175215669851897304095981011266667182639366893521770031268373735960340090741508010637675027976387888852736400365375937479346401830851343765633935813983566436599390160197609181070108113164275965442984987174768807179110164729636797689078046352408902372060540211123715359809489587171486908996944611675692936751989998270951792178678881632839719084321731836184684173364642771083591116613692481825660942473194060468172725902009014061227900463798703244139440042538276040471173078126032215958238227800109429771088564564133738533306604138663878917520711369847324102195358836530116464182236195673743282118802032015016324634980152496913933891004490086341851327241759898793439446897345923253954558814460167594209064836864702782592455086764466941309246241110475263612167384366304201502320795169325264011059076817533366034815753809629626177276016283384383093511612283074505857819067914426935065265023930931757224513308482526208739755073036100307046998465561993067472278102484628648791922380585889251582120000120772379013365560422672686744459678163167119916631288073710393376595691545823649752434459315346959824443232123440444518369387752768926115307007987966195213982217151522786403484504283773943782401472994677789495217340282759176406479463675013552487823335635566094362180764870854131297356464279277472705951753805873930744976078569648495081707405024375431082334771960810064174914814837519378306656060416554883603568143631137788923386982010087953261398726642418013114088084782812681083578983855204668369342562597220731308125823811167170490911490676301549496253309904913209336985362575191825745505325298644790491843596498369532838620916740501160670902699480089708664096745014956790703736588845682067980463187215137740470691825323204016706025413537698306345468835335437370260538865156255721127277179923577720488008099299750198175701073604778512898720339566306657063651328636830301704388195303094651645263805603541582243612350257500899145585665335203103711611992571275637528380474157135133486693248123980140557544676827916614854162663094838857111624650311323644176726582207441878916425101906741257722467568537776547643507426582608866421285751121049524610361780763734397271668387030596477317297336516088085409843169583499830586557242324028790568928747454363944580740675730970216611731331288600239744207355086631176589887985447804153079422904018396500548372792615275101132894885612931140575429658892627841337353240082639607395948231098224670949668226844695101402746334852853554836166891388391516710919802161068169294023468357009837639991388761877773471385384982369374313056864925160764160053567967545131765344924181632855861101331300323262029070563661451008305007052751203209044560006349475737405557282829956835207184970213203413014295401513000427606087872071601934060724856509930452794787824858159772012873633635765849080177435564090386389661067875040468836634000040632755180985419487163546613445325999036156034570759081469190255349320040462487298966889224805016824294860948887280173736542489946166791986771661044818879199649665963464438934716497820051598074557485718888202985165238878458795365772552871697450210695206244977918274005429357347869796768910570011368840449929555494987558855656672395914641633462563732902529561265497436666072617040503709165335592708716102848949471430223512305280829999248811893354339715717941897063975082316302116682792174309003640730673333942799234638560404088916553454258229876137450403904342438388073504779883378046722263201923209840717574098721477852659711777388663005631088103969817241159265866779544124620361455730532309408200735994442526896630843438059511931860850663620217417425198755393273200286449019124798400001677324466209630707917980094091654154346292187252111671616300256704577928323769160912518869668856520081251403211058038310671595369143237102206436142674062004552558989343270622116212656234600483903638855874232301210493795020923433977148136312434773445461038063863785185995984449306906855559371683924495406535038132799915624578263384518995610392191926026839600979989019199968979870100992382772183769465975187604397594248552311584891582330731930242072409821442274746885783442561518973358223412021864739578280544313962949416934708473449040005361014799722791947834221099598386463002623130684275056638724448938217354254479705193178332731913170841457776412944124666516087984514468195406933842473503168904998088762466838702032286384777786389584445811435192611185584684973384588641886891099547173089152026773275545222541506175745875389716507458500870038878008896070550902710508403998832521107157505695960596278379585601097266199026824908148829119502831902804870781844699951292140045790189648428288355395029983141744110893763084558618605349745616968210025857292793354237099534907594820257941679201693962369348338315767569955727482926693144972575466188218568509662434184082535898467051975826028246496713189456245765323120235654052264287122785190098672295269395160861184806398911030043837642638049943249333281742892391569380231397391648340003186199065874198711586534542623947101832664327718854416250882484793747993929675427945157713372141063824662325125677307232998003806476951524733257770537033339275830892394953036916014333548656965757159729787902208111395336930101264091633621577053860188867393269375591648016038873940190898260772985206203363316569266264439485987566879236551398051006522050412177526926720022722566872793567751250269665663554838238998052633404754973793390298524485995165833949381024430401189820467509429791726101058591677635990830114065013757215910075855215846303371352305786322040283333088213745718058245264098497579283465829317755805950577431720651232516828121611799578192687037646587363391674032363104820382448640481482754482191182600628229684008384241339488004982100379134712636674312270601022332347561152694655327322771333878990710817634131079630372368938144852341372611021068131484101586251462043562822088362800004866408079750668637531283100124583895135039648672216295391229604259337980113904363548282653890958606115223455678969585860746332434357869062353009992546124573202634293439497726415027911695885580184949911022648476308297940981646678614632608627670396303578743692975747204258205315534139832151681200525355609180678701941898920890770964979950472721557013771003540649764952309656563978899633544653668381875426675875284262395857492829554289312916935311661164936845541452880256405064064712061430264475455323039946947843577014399074710844987446944235401148647864568687229523562706799528207586041366678740355488170480736932225842371745043004886122422297153504574696475058949316527133201452295429879273188514822484132056118005860575476205479470849218069699356310988821386082300598807094113629201349525939254026525815920254262277245527483239571627798125887348792587852706292570414003411086560331716672904611486473825223079514607619977870990559227520946759390429007584440907198123714755746458094674386330835602807724413118760611886421127883444570666295102963352702493647350827886052394171248620952185285658762641231993951642320473409208177106118125034115338353302410825197653163878795186309069826684392067790127454912621162899140802697210664304613911114397944664816117334346132148959168748505219711899695476237330398746180152671524396891475275648579397518926412467618750121962216969367307888506878909631464953577830587648708894765422885241261247175395489233717710623967266475553225646561719231849400321630456176095990544909575305931532546181490755396347101660747558478627583597940192461811420720304415211915548329620168024317083047156002422764785015759391075963288600484827803995674410887815994037518375880038588510836580280960177268561234221710005573635900382373514457960869388499954884559752464163174923369988860395341193302127015873722484570225920253698703225338916010751928970218271483862337039436650599370353535571804496922487560203416593303298495173715774123320023342369856772954075794821801736254409982896762590668307388588788492068522696743312963607605633615829114114167985509986805854540233812752413708624251389579756016878455657876755794527992521771144688069526432297681096379232919509155634022222095795063529829935581562336152663813553961855914198409931988570653730987033226673878599895884034566364177402830217615915692450028280522796094340659232517259398305612206679173710070220036566735888854657311861519775559572742974438224286326939324553355725722196925208675265339075324911198713511665938742142596043011430551042931543521177416935464843052011201382243437029712375814611477421292576972216917198917814670405444208746858823109832020358376951675977285738530692748193750173265302388117123356538212592153760254109815148246855487177548677149120001716678916837009047852715745214069369293857794542285679901835791674636957199787256695117481783657269837995657054960236131185800079680386786415387583971417814097270202397834933238663957522717900167693077084803979366303416685020417679142690414821065535326155953592775746101195048336704376203155635331689151024913887291328902326318493979993255547991336658500115195400933690889469892159426126088634404066746508051653693847357034897879824860419561371904959106535877515179647573068962868406945864908684369258695162872617239144469256239725277496296983981348034996929421818853268469869630292057052392187116672153644579543336480413419160650462506906589647949002894458684709877434795747619068338898129205201820852401297169699242556743992223864224597802432136200590504388313145200060661269398902279015590780346080246293103450452508160294263216964905750293096005772331036452174857872956761850498639526908586393261617888715463265364269758679900720687165761794375667295527408310633650396372488448649528917990415396148742219413683215380971792821458872350130714845008890421947699817900542439482298624849282912793210608310622699927908139493835433215354445782087584938096593580682396998893610526323781597033051061050417973176096749961366142716111895738054447932212413324772668659317332989313268818579299367007718115537574490203123683962803333037082741812017327230887046793780122897625947650739757459601076789392298612853903963890244818069722886916051736246067618526220951984364910657057727210225898568170668315265257991089999185158505878494371632835954106179710121794841572488916190082430717207493292038413678814110952777368560193605135515239001218083607485175826649597599721623893976518177612764118022030624539911370999592442013252940917937389043061549174236799436662206208020210564086093437827596242561213669548506238005580681557176821244929642824561072888721510981622191356509340568118036283035431601953587298493002020967708218724816797306680322238981813082308287831860587887804026860027510604306710102226579691080712805274736845006539339048219158909651056858594331598866658271711114222615342364516133624747713489569365237246922775672101161094676946635035133109824990329630954401181543124174827076492576645307283520211555930903797733783407153741582079794280244213656058678843844504534676439217840355212991487059950949579262017145424433660141986931321128584064828004077507572084528740597956616351445759936628705549669154450036837758972395831547748318473186280430510018093906446679512476438606966792053778482929214796979518406257803880347503291280129436329793578379574861297350606957168949294325702214381541980677528472257325068408113729107477131878627274878885579654830996363854109376751473516252133535396571448258054765321183494147297564559036250245135422597085238692645693605354706842702770807380963348988863307201287825898307494883730469824861270139245430483874173555295874384378245573587347429122379543789427293884710940732305993428507091943559367500721549443196628913175094979401605655789272842043248626726988999439926701225218456885615643566371668168951971879571979523649068834485932383633602625580659108112829290099788612877233427514281622129974527698432286894470873986052691671465419587320995362519306940265010545682248020660149250088578080689372051538899130265857823936176152469595413358551895318597588910624705790518189883757815656214025191451255926208514947473549604796715708664633871791767429928055670372966854760378244472338493550404969089945974618590338255551255944636718443079910326450555833710057761958627615394942215105515267093048577489695578770954177671694394977533434747298276933468475246524385427939932280752945045662753569711870860238349650612480641739730575584475500190003916794525718253704740785377019707372731674426029090059606780146525573640148072086474735020897149286872792763170451546330972156127953941875187287192657917337913494913149956547723066695719917963390515617413308179172411764981541618976252578461215463059403369710998309253549386776110212613121002221111638076923245959505815892268080259896440726431954643077831239184842130065268477995049967913620655202800084234898397553411943063115056504309264703945573341001683433383502698578455153957973182124168014642874486139287970699243579380735762573363260132825435353629125726036345623823370087088251832322865730455488172013856089595256381863031513802557373730251487319466720426615063307961850412144428693691465150897093334472844437833253959348115530780681444172248279871736356647701792490680255428125383691982724656031442426681249647872968399634220826911886663458407340808392302745316788899884280313903533940980402768179937224716227092508877439147209154542238131269115714903148616310542874160414036405448708672090169431079233076002360375116031172917360834118288741338427312244842095229090427806193047587792145135228085468092979106642517104953406383736920396632728494544786638395684305883734416174903654768098847359797281838575785258848049168335095483190546641751209364265568835355216629017766127180148724168467421312595361295549364139149145275158460052693125315734205728277322836385367681486129713977672374889953156223436307300845699712556871717423128179877736716798015814736267392643222867173789271145592344343371034939370831264807178127923109382076210857791500221476900736800155469206597910381054584397039894712370565675410145967524749776679450762122707539807550398855251504897685844444797328128852368806130363564084146977175864633328266115253612358373934596009447177249968548153251284496194926748540912479504810430502934556421079750122167511752421387118215574863837607293072996083809123643698714658138984483090441021842279061106650051375501190750116652975358968873081797376829331368722598257960099507278684301906444700343361897008473397137291278937375334282070759673025135828888844915361835074610240356578819793377179822589595639688084136034072990067240032629348858779092807798241219062114576493246016805679345113217518644593458982085220542075011925572600259843096123234234376500159179054798942583847647394971103966864786526784871464358806470392457585983740502592266576585289910502261641919124457627449812715302794796377183991309530582649724469956474749071865132104182837341269671208789482999786994201674121252193861402698067959652025509410680818816789496499022735052638452710493970892807045083120723929709640265150089845682554578144957668896663115813968300510443839503894029247833168902654640219493167304534021597402425649951253012594876737571140987913500270703689760024663856583724398656031383997829683906754750872626582262339658743892435628752836451372066945709889642503394225758170968417961932577675304013282145159906580559004788596474953126629869490807417795943406176524166441617549912041277392188772020113114503536690253663973612230536984888778792175469288223541758101210715807981673376512919507747317479432700442174529833064734753558140854037219429494503740822740260489586971183874294453413413209155522401096264727552440724799162054217446031278198789308994337370979206227366519522707340937133745246809802380509684858019650383711727122474151525361181698415506674018432989369096307771041527246640747430806061471713531289737965924968772719120510405524624305509049407175533688354921507360996084927801421644362154033548902025602339969824886622919995868919495049198954997910729899084066766292871377033760617452609656456284645363245778237672213048049851837510160154573213195948813258549860419671564338462556726839622252033359023062357005626459544215069565386866238866780626476475582862812243650069831751870269982860800756482165583035820196519232929617009527353605307465963830049989578858089665608103182213916702903322503314092866545235119925745783271678700841551981404266291812940719954631572527155661217123834275144239885196309121982724632709529471021758458206677199572525626784947435302638173704492243787752220230794789358897858030225009825370719087498071884697831175812452390070019465771438562075939645425553859819059708855875211545307726861664661498908980472620255385388870592194140633269320154998280037302678895839787792618467311175143147215343912844258885104645973647303654978988824369986237972444611679093787697408648394958074120321512805435816302931835563364406680174830163080878459337543556806564013850459015975620639402382763811883779773947763182784394696244839979289154916773731640494939841666036769680725443654333853766367823319013901780969847076346762512506382056556304148902564976425659943431426945782900939255899854367043620832539583091129935794482671955908752226097378164353744991382880215272681866786144341393686018510554817216871369729511362129281847828516385595209347680241033430113891491049216624541025923447126062517876989357557510608854410118829251206329224904158932125073269845013632119791604378389756166887633906287227372402648778760698214590943817669484460688517368420728225046024548876373620310715815814120823555104201900901558617154862956048694912919255144130582611813410770327045942458321545633792726595719853518413445770562612978012001301994118006012488743104532145063117745775762355481801101277726759824275450899580666204551577149640479637334016994879335560790363428320319193622012062480425324246690288567855823945365070449852949089380773039941146599181427921066149314614442003474530500277020764848848438377146978956858482679783801963462799005773696246105009387115430172448403058772534199253318774591968123051302414443752143336221104462780436861678016043632694976048306431019087068110940982926748004857645073480315601758480034343794357187225816091133497609055518428942465366342136573013009363150303899843184788761860416248349345553530675775327035749237357212036240853586076106532163184130247521712704075850758338159354793587442836355344912457274965441485761451202564809163679420571855460625044134482448619434045232693274299084352073305127966249036378897804176808636326008735444086196724058319940819738879879129604943545456681133708396370759490869905163449238866202650744454919716187748944378647855154819740977792246641837445103138326140880200419029686098761042323214267618166110087822882306851119058743424935772687809322710727245154541455089120402534356695892721734239957595459572361298162265280020036278102319872477957642984967552293778098493209724161157144668580549826718590406607418047323733355538604538425649636773757212707895304561539210812053055363616941519363146861414221780444735942582576833212000517682310533075360668645855224635258944644372823042401994725748981002355875154227211548130263152185643786780216957365270735238692545502976909648061626070793616728190257897732040945847160131551735186688375515179071057122218508366741842273990362431451315917447666255475453479877477262587788615815991991574972413311027302113114549972161796928546651327569510700943211000112797317802493606804889698411548806021260570233561539018060639947711243320291274271706614428784644427355061422102300331457350523053569956308031631770614803790132807708653563955797103171111917627428607291619481117824896320377896152652891175790712252581183488305107698620374934862426173489078964867312001620565257129807801513608437884703995529698356187678898828757679925236406556753074618146735436795707881847916723293393622111400881661852910214904048207299783078745200674495623795918759572365445920068188167831773973736321146729292149131058496435221675266023353206782609303799093586419287524711317426990715866817579997582727126568765825640393782763999954716393231435465116445571295664580835334590593633458713686065265954482518760935026712360630454390485471506892847680006492091792235642010978240500011248102904118470702244813136649660932209226842908009199848086559740762146034991175956918513652061453758756268531149953970609418371564640000328943121369590503106131241696613408071619623731135556921127152987742923439992652100453353586610697239810970947307169897133774291690482346494229470877111539812166027454603143945749545162332794720835101142020432055855646725479149092028836487243001377415517040754444453264340706750434284037870069020660977386972154402145356770686196761288527636243573253664936486901264944936614568805987233198072785407971790463031575932743707307592499921196653728947308132846809496503273099597077944936880739050347601052653790629008974172363712462770842225435313361219920655827004802620626630179466011083615301495929564733690025609945042845344165230577888315736053054174280403910528116040782681153997319929272548310845356045183618116567626668191506521146541121564986550047926546176254523071236854114357510781757004322051479011453378977805059133069199369155818596117178722188447762529698714748206761426657807348775960226543440932283595619327873965794702843979412243483385760546642750425570565773822595704416211767274286664670043680471548123356856249200511145881043165072204455415472846292359722439373088110314319241416529801951071157522934115518486695190219041018932112596024951655881683797701814839202218641574342798194230109277618445322005931264030494718111190343837993089542650048317487311492458878762560761565633296955064744931962104393860728793829643423169561873746179319754396661103979796935076566827408161945947193337261591984253237193210651107045203457350713632918474714615893281009294066778740065332014222383134621668978252463251764332809883087260847380598938542069410135671696377198796404183495658643509492116647758472827923274801566864541698323273326311167244066193977060107571495124879017141481490081907869903675406043901037419250829965776855830244560652057958824440157907815059818505682274791434143331880398439442576479871883902955461576634831833005933932066360189708025746723646333905851176490451784054873040146901038698849528500119542984149943490834138726633068557744656364890336067015763650312513277934017799451509385383267801809358459993624038156888594286401611536592502780675353615904076054944183989033236938514478289602865824367543005117328108856286027205242542906493021544711105641548939396922091184953741310745661864887049249546626893537562896374579584940222994028176818349124646259445858325097646139193376566854015778283162484531483870123341075251780770372195338616814042319390541753987810935287820102931326720794667255248461680607132130955739953789789712796934464269519038634837842263859805772402303674110822738638437617588768041245249843374825522828309213322631187798897955968183684923995182184470158722245088236212980388185491513868693904169705597549633972682522251955821603425881918174020594369816815716415781900755762627569238058884227965792589147503302567492939243644651845763153644262184410107189097188396468860689259473246853595273670295379633797312435217997186787100130838234111352637950089469066942488672294935311440367951282350572627530439487959558495778393002221581501386666170734118939428532757394262631101389779938904511424987918400095669461793892480047320417733722266727190668305662121772163765829558469062784628969196885281611071011739153066719292758986158319630581351929061879696728469522557900278375908038864117327061549956378856628261737925502924091835100601784769622888513918351802829009956210971217226391167270391655523763680816574735014969761091547090438837678972112262658367962562503748285470060591300658007906954097526865004897079920723185168153772345894703538217168366222462643119656349291342965664925087458753028520619992157738763290738727741625969196752609717483342250549966930223290152907754631388878998955893840769922396428835274483108986070505909885594819047794193644529506753136232034136790903168381909408123627254561554961234014681389471650047382888858835614787529326410980526041017015482321237920343105658560675783180636848649480679700107895744599597939226438099552176837600503653860481262453596470263972732224619161465093391984914882919701313668992163407806102492003196762999962224627243693958861045037089748978530521430613393560195933629760288668034389015849309766732590759305681019725440640202087705036847071688253825434774831034772446278524831056885207765682642324047097145607120264678915364829238871856797778863346811186054243434658801196292227541871396549389455007371745830134078390157602278870302964529843652947443733552325428610243790854077956036943487639255791451354848954996315282423671580030291444493282310910778833888711080419056590406736692342649667823583735446104031459277166349374020759580753401833122559466570068038667028692655239668397526684255558453988674042401449624240086578699770357299688941577042281086085418933259013562492355666793111502707824217902275512094036344183746446412156242261006016325014142159496796623294615189801102195724335068841018866723545359868201552029500366180733982284027938568585012984142838723849196359609655268267002029966204167884312639237065424465972160900396282555144286037571062945656155816841250387438421539646087142165663136468073825279868842308453307579556467020032376925334578232988929473039589615609113207954016998690747429230019851022116698136012484976513521208143227399801401149991652648676632044890993588706006216230956469776851017532401274977501657238727450622150471699543685360137456019840304747839713617302662152521986790817017411188993707043530288317816377150650081332552198579430956179576214660907113205825736556631350131380877560057365893782504897750821453095002250140553748119542279748949006433519286385125201821724136800087256457493053667702114783366738288739243483253095795219837256243401708302623192929849168386888927649812934149531977398105035502918680936797237117675954998441145999472370119173792469860487280095370226382719813204009634507481250852437604312332852426228276841445538262665598039925246246048712629351473559192399889997315867333683710215153665566219622915820459977301853390476225513026229839627571292521665748501821920665112692255102241811217035803550048123367538567636449673404494680942255845956817112932400541780330890186242231267327641924076089685861991344377108788560025037379505121065281936406887912951127589503861257447006340841393942563914095451339846495966655060316142078487968318916088952099548689926161248216662842238178204235379922854457567262047275579790508751032830603086409728892820096308600973304047602607783309076919981705274217676246203166263306301241123474124935392558278996318875066742562577208897547922542676846680301060866173753768458877349871977695621525285470217376707379897815763126337552736785062546678609007105862835158173409972514714981878057966513774168313403588752335394698580372689175652512214716070518605762598816781968797534711488997145412208285584467790102200895240820279023579438131598724647567588400723928038598247154310277292075533336980781844557608945934636286357625338689016350673621410846255649794707318946844875189873324868685240958299336303330380344951990896438366127286679427306823321496405468310001459237742622311135261026783489203127685080819520955051175371780832590264738094401872710907085992709475299007530012407285292004278759298892901859302382256196645217028029030275144675217596517581293197376359505158716745871737736965781733060042149794720446603397522289899634281993876371971912079749752379345372641026590976402395757115729238525559575843206886717833024628839072482956316701083209342081510554591013144395876472741880989560825802137458467635524366585915597033877759673609360026528311204673664203956266143611391343560225478245474867448657390866750288416476377718984637522649621430806674615106075724636004529400659393493807063206193399156203871896849054241909076619125823965099862708408017814637367718511872238614598925945353911017841293968942313962776569083732931500738220029312367410777535877059797019626219245257757139285971923669522168959010411460481878931250767943893847225153976896391182799502151952961853310055779592407867066902665700144790969749537855556117675377236490562268837989178381921072695827616801424479201320006481289430916970127012517663976517344544009894681744524739392842418024794448659038319170406514585932388142046593694981522863806305415596275910624509398324089230507250222822816148098606555533708869397786844101177483820543801108694314711389712368611262730301182060643503655721945107919617069067749130893986009622285997768187927651357495100979584013638706640930439869364404198849406911161477874719143249764628300508930156600609777599581647655869620965609570023995245249570100236491948451283205923084084824773654506791980424384265251340092878929498904488641161718820018973047179709060586207274316912597819377517195362216181176151187218804059922020196190677701454316685511680046674982895918987680123817331300221078244876597709586044311215291106085571409876993339896433558147363485391939689830968450679996571969006633408421498280607139571432461505765317372040400024020784121824158534102079738328606109996306227986224050557851347082949692441566001192970474892246307634463361699079269660854036951062677209262188491249572963357051941678918285192727399681971053931110134603737405547281846820043333295658410897672525053765980640317742175428234008402962150411068110100533248573376259472130502135399003619001300429399983734071308454613286500667830502044154185148255557164161232891345656654691952225348819627378255766324833366373168647466587309230278086688788276484065874189449329134718576978531718913374962072479110848460341847240626140268383173506818876132451838284261443276483388953084501534691874892967555159470928476682180403229025726172245658937385585638966280663578825923228656284919512710688496366772255646954243908335469026735061087574834952833986546184069740263098790522481203764127791515973313969044218573348698354395474846035879874354267828309743384580580006935227729657630174639346477331435373670242413410946481923639772421966908087716577252836498166048051334489144235477803771860740766901952964229019574293249176669730940833504289850721421222823803850065483541345625648366256927913696099506010924887056521223467074002098706500581372889313438597371079580056573875938546662723548561256829655062377970958494683820929497115480658522399260841164798138355187993751292942370306674982799283206376648772099987701571349123674069543245255670658636296909010965647521512267052057949763859045108179894699057687138092064810163521412381491634550948310583664289486206235801108686637700733864846834233427179521866643173970739208852669213951639398652586689954811440735258223531116880135245313906061795136237010095527379739557502897450329134437796765438281948761531444102231497310159301809903867321613877422142122454286851947200151869539468368620234661555071077069369162714840009640086579264258192840336560045505961492148313817620151993655219564170383903725968969799298803421312391801204363481594488781445425279426923414419694194682118873544863907796228289632775953818945149664840309015799272438939685306944023919646269337492303617724905221638634282531765205505565378399281709976232329393668897323406220915917393566333499418639539260727310789026669691905567106210264310399814442116514463753985157885878786947746421234671627565877166897243338134292782169183337051209332897549289972934811075674473687846514392756252443799718779500029425152737392284019383063701151402920045332175217939674983247852198306752984543631662130880202264198957051606734587702369390466768985516127765167280900656282894974895715625311002993244020831268645864970228885706020707723625148310251754892011026065869946082170871391658103407585907760113994130043122791950513548034454242553870065180272662183569359200881636575176035404437007823673875472716228001505890233619764730420305429128287082302352239804099013314559198557988947608111055825340521548286456757513964966350409406970518374187773185125933118749802647371063493002223353981541429874277243028267274512439683056544917153899092155440583147040403341680774777935195867544826640671487633945082024569129476301559196751468418053711698615101682180303209844732845036514747431057179060827124528864822105192454517177742029033148976509818425253966860381674633674226272495973196253366009406309882123169106289287135925895439523118934905908911221378987329343425330698547721058485058140155193965274357137126898434015765773085639268242440199590501187724592471671987960563840205525718255764303021789629787745797367973668542302592039342855461864946973001453177598827007636320348763937055143514766152113754664655302227398752699021096090152562410229204889367978829369303110449539106456610381751345628459142058299653122724062451150094807150126784624828627107486315839987831281585890762408647172503420485588562889521633993650168823627360927245776582766290251572060476234882351760252359682406193358221521051548132281966433597007465113562080082130837552071190715269688498547878346408655343080217251533275472825134807592464612099872680295456749547882975968052100302759822812159742775450019959895859492281679571904956560265203064359678989610092274058662300828993054311935236140452515237328871696520942417303739011152864502895680741742626063824710367508554136997542946124920725786896765054497513743221767448833389362028193164793470306334134877134881800734884093709706755297544288028761042617107917400473716042548397669645884207425929465898144717433874407675856248478366108928731394681288592548926414744513204511177095823655758197367937502902665002727255848746645735449591162903626834069636506385403236920725255612865341931809276270648371369892617763887601153100392013375073962346684242387675183997307864498868086641534574373917160709142843347351347029950134469501834573476790592789472757570169223493425944343688629865607710140834631549955410212429186559159420728570603915924865037305078398497928954393119385151753366347394596609884934257815508818076360591121123096558645886675233077000710318567569533818722290563164852531079611571191534455687560997557357072370612815339509294476240616144841261994009369370079812876795838622595893415664914283874613004944699734685262933827653773465670255129363737084258557216045942864101787710396778106801078897811479212571434787711170506745915407161903757420670945776950994011413270865647353828332586139092421763189480130956742730855896256641882357809676797390130659990191445399490299515188871922057496738377924678630295373837394988136934764859547674527494685795116004325752200007120017416301331683137080038624527916494421142066970638547272101025047279704727307206960399039922721752596824226236917201478468512737124896117056465344510912200571622345965857399781235384347424408524393185107851752673477210663697522694953729032838870057075162639851474150889938183971604102323003504559122643041875413156963688495092293995283717981353605649701654195193523514069076907633453276540092759870657360310800136651422876128574032532605286112415780106271298920943213102512650756373987903830982321722056773862526360303909602560931633698860827236641898939020074168560850067801065096019334071169797679763206357566269173350179486349086731780866816004081226588817808639668778902743575386313080087487609844208261009605650341286095893988714897369718091577788265745301701535869389723786644713573634377699622062523134391017077197771640954464311465146384358854669899243812621222994301039723016166106765316582989198044821278828641833274573847045405194577726621794655916571438519781914639408665821334164750215406751442287561859937173447224247256721354794735388127180821958142012206218594006940457419644799065456463813246427713849499533836067659851107323725399609636997500172516909065637370377895099464523764250399232356222802323860362423620760936828175265092976878435837048223798678662298737330771367074425662833943506014457166683049507871810471685437540309179028176092174088983909951190139685438353503477755784398347454599561570109176496570516879620333309677911666538838905653009172697789291151801515364073911618010859603376096057648310264594757211278484877858264624550231599531281047799558643002959070454538089381859153771931531221862477766687343401992730401765428094694892238470106460238381913048134035622161794153064128960375609069407274109396849692155401861273683993295729078485564532678135019161841732159266284245661921117199578040201422978482676615788748363749344876678870773207684925673125340280943698037232453164848748478258832412248208117585905872499505781689765371603015531939542101922468821067494030838522427863175244028668378889022809416389209072069335037677845725348075405433025981670003245120265923177675607726114132056219023636816328288646975717564084916313337665903255365808110057037083508423848228726846449457309987860507690325942553422174972678649521224318529117809638286171574292420429625466784929637405388378948206778367016498339918837813326541487525616844561611145438280433131019231944764498298973315946536649295976277079125806614355402995081722881488304673061266311026904723548451621020672299712401781215680690111474602837735529090776817632212489047480579700405686759373226381004622604875605054702526880817485091668173338086303700622852292135924896844723788626441855755665675039289404732301496517571642262810700345941599731389191872831106768181145157414819402663947271727273777835891476884749748049997204390040206588504981682061115968578241902247550431830161464947671364242156332663994792488721302296414129504042713772176312178163257640846016279541041652467360595421033369161166249950564624007215157044266519305621250288373772752708483648020000670386248847275091396215210572309322183724372776764517247671505571972789195356620844520401923326615443622605899272051713306502197193135418225140370439080201021456106099824350122561994044525540179657778541301603899584683834042321479373401695205154722675563889245469563224278154700050597547311766017203483703242966804914895018096384247662847696059315504145221892312855407255392074252751926519752473231875239827266732168031825496837639921775908766733014318773933190962004518154874016443746196406136945420028816152719126115831119822146713568020249332643582397678757476171620510878200199678133439609293344502344892578196928604256854431560197730836620067414982383975447466224848252332772408898006488089043368985551977087112796577093990941117937891285087118779433075598738044045034297189816576335087625776976908870458560218575897905590400090885682266135358062844585048991778755325738136495448202734454902521676916564911473481906260219403065994181825222250716786450739429056810270618928404545517263865971236500632797698905772839659822334690848581622690582417943294195139118225253118087799133661779430020571760654755218264040864604246971239764094768834808600601453363580249720917014140055140890899609694273086324269360635110102568828487463833048696729889374808998529199916445933446361953654266546787583244652227972037511609199482793920561279687235064176542074732450328623304079829672891147084987040658534490351572325328130106399121365166667235881864700549336983329815363348023212074856121848901041983750637580454714151547424642732756731117916701976389331800542928380123941857163323110937197639596966356003397239876788795143240281237383401284596310563411033133240106205084883017353427948460740087723921040261885704224728771759615171827040606243161283579281597985057107535667847201077501581892314117639445339330040484746417894534232676126921668087686729057305762589334995819165415957187760211797622088030183818553570045393003515510515969208318763135877448691521333311170504504288740521476768211125634775018663870005529203840284886728781742253103989794924659078199949001720308275972421608825556237179660393244597237270924410899330747312599951116603254508244906600175493860113311934355744092382479126166013143541390652367932474619964646677552777582997111062542395659523472049361356140899866082086535787546168675428202719322977789271665957787102714746164534004860142995473363587960913490256183938149183970168351656727556896180779085756079313885725917167102924311375949803451523443006781494579465221748508532919028976447062521519578239561752907276995677592848116611371543913417008427971790779866149598786531038707436780626859479668763525301547231896212904778208439884828374255555129770388650355187838002154605930670348036205855163394537921478409629051094505496223601968140949088485053099918297962251016195482032391052608284392084499536064977662621657961642034718728262030605583235643488271787028402312850105581420675979414519612485785759858862773274846782083246843876055036387241035778757462512818343557929868544030769261867795815701563992883579687767788352459745409466506725818443963224604035806129550616263604720682863853337385108465863865642474441761237940594003466942454930538337124014675593766079017190728928274222670074492196982119555855001574716098966616277980726031840388478728311664513419512300353035680292229623749609642449942650955721538218465600555907635457256097962399817112193539325157324691235749957523826858879583557284626137188817317918681677209252770877651798658608291084057015696660107201762803428109169975207756130978545748988508194925635171101263495626593093382411238820277356063005590359928168608379349593905242473515560403016991810559732350460875725410717567956593171350210394135016576989701254311909664003405641194127370109164182768728711266888496734871413014311646561873857441420992795619867205686544494479822510177889093129778118142770081585970459212712843564252765310025400602742777468592300655366522717499745857787739800934819331963343443239570037618415293679860324099120486589082975783263931043327496159969011686857275421504479332862492117706024275171535906762423835715556528797269053573182912593252102898413750294008082489507315331068334345535886650356547436591745525681021040728284424862640790113201816823622108813576610609016023090427699076055345781288222786271001210882698131605231353825293375832737021115572499578910086541415194410769733202426540338176648156934145761625614719192150777091938137498053284425989109459736936417368799647175517588935247572668460676666876467101108930117926467316707170817928804459576198082268774155211722444319797000283487477531372583017542406116299985035316909122605322274599781244008630857787443919335890878038744539309328951883830355972813777507968975747315121759531527036073611151383204016650727472119626525882689694821567405699814787972335851407649986859664483175291267845971431760142287539045742452908319634886883929679254915854382066739692554000361663087970480204705789954782044557721784380278491215212488422660450332808662444804123236549987460204496483057005277298257264760897176519103181025264468275357175877191186827545340887053115812659904603495967001613505629233579719189751106616952945255491675446981271995403981071592865277567512251887796804800100227052598288057603378100720294423298713569277473831046416230015207622370564364951641832373285924723861800439571747205858142453527929422222981226332371500193469083880924691095994088158927115912230603073830916205106456737379559847868474823329573837160474523481112065054479726688584281523152602738560103089207437971468963331012172526185855749212874432692701836465207478991061018142932423201674047463367148734222632761524382689663990331168166644771612355782519950238705409792217367907783957626998214699618226519018214113401540445279411613359095724159696795492859061827878067667135502792623402723544770530768412023331139073510094940347568418939396750857384034449970841281165081367572605389512166140706514789315781997204451717986640678306570573395168131116588899863966815421986147147858420872676769197888338136083256347601606189597342811791813364234788909864633847914949534516352129830734521852412038766800016637914254565364811466421168124153885115763799788733944030986050098978538771637018940638080020097226608833105811643249220406681110744318969386721223375451096493276799824159886973738755260655477241202428164461974353823394966122261138951313785418746733592434021533648881562187896655297461432800972070068293084614820734716161916132799787261837214182000153883546410415036490034252462097378380695440876818443470709361854952290135138879403592136048413835515726105042889874741631661135598702802278423948589173642436026077412146830827321282776230895826709172322052860522780896079813726850890298682290568639435906035084131523679785256755554746218402216555235339071783621028634076249493724082689904720427407518453410367160879466500231179748664149046332190543221056958829532598063819892976672651067492490407753974774067168274764012446355140624995167595045704281080294042340804498014314827133116480841786193648870748104678987525391169197221467787731594744315143329381028221355480295426391949164118045709021652706696116708118457324378274913534245442159457714267724505002158490859843732724610525785627426350484755562088568611108473932127087535273040093143523496493931766754754181263117854793147514667512530406013728896313181482818299095187897255537524074961353866054988710149541911496024395651907170540050607020208313609856098694093781416082814318245431085179206284751628116551036132669930892118200029865680382751751853404789069176004211276309868495107789488290511429058098779897957774290821861500132696546840915459466022621605728930486401086600187898876098877412333419750733670381353462659510815969645745906105188062010750507746245906047962892925179171643537758130436271521159953548834845409568386079963754934120433462722709870851431294767388682837983322365979598265412759094035459644471681859826916009109477045508269964419468725552671521126591882264216749142092709818658544314271199009256041401307440205090678720973796350856740156865189665269501287114222146383632917972736597112881059566209228382610690395108972719386812335628671281528722768202676291948101362817540802375226740655671140679322164361193293440681072288543298716702743924222906984022847859839309866981087098865260679343053856330621428999109798130004055643712589096930746382443599441429621222272106846130877957635755221732464163628653421412320923815019990658624288337277581784123992678286974207404532050702946281969884756355108315444544735606643055326157533797041763925547844670424007933490716271473108885338977031550609656780639937506376166378214026158740539199636592094755820176643821758099600706284315299584986050436333273744204150880836277329335029183724829168605435068471378958612777378198185727056637627965804769322432835228493246211306823415197496997078761485022679651555842877974227876921789942220963496533799363524240957663473313197299566066780896955940405096994000558926412034319504218251833125313473375444212050771257057512715651728155460882957013509129545728927997928181725310440224735721298043333260561633081156439595921184526977014449961964037975909972973218828867381278041768117614024031393397612988338983584797557194592695468514355463954589472753702762669096941572803205696125412231068100418891102143855021897366247075364187082217749662174462829126525164556748930357585388228132088222411182838907665161530979926484496576915742476169890040792630102316997250852880162793904179347520923317847968394035881834542121706642122070601346474303750262367457600169216188034070275182705281377826061636249995885808090072320850941493794907144829499343892965966312059459827070833513515405851055880571438807028767251715628662015686619368384665586478937775419397763324070519985944033752917310528156877039222742823086248939075920986495223335168103143569855287468380366384820484630922573799220115957344086539589141656603285724602461181811402440153312293129203085741700071828194017927971727980623237452597549289953593802028677912091500877419916929027483809374496231295077884927034505782487608038415807877751945147416361490116933350132826825625808312264481020035356233663724482580766200730682646515218042128752785881773708440276287156885946132585590875169395762231133404105130776282225780905478797648280873325723040183203994773476211353171130469552104791318841965997147139675630076166246989019535596372768240476526398055572868943773332703005001060532710599410029705244748468177793112440374144865856929415570230515232880291448138161765241738742924462150878283963448308095038109293915958469791805328336316762344341641629204498006275365404030551955413309713499840745879183832817857922287296775378338931215476303778546513638744510239897228492756496036975480891364535746131027696311026648033953705159793506279128009187934261801667773496514194657884475478817142663940121883458110075823413986994025431995137145091923636248860736645585935718903269988300771731244551154014790213874591427584617739288311040752149765453734827403558416745587572623735094000129871822816392112509513209275698730982392650641025691606134488506378664852629607548455334984048287426868725350316481583532701517889777926240422381255643127249195259952758559422262730630897092304945875961114499796113166723060318284855131272999441647428007237706407731567561598742203814375220817149451387473263457051808497091117758020522357121559335883258500889938203815732962095372903018740905567444957649542561117303268776648661920256120018062693099892756667299193435359912177429375158759068883797465630673812310081522392945414199471378231902026672056952192472577946896722484637454348044136934213833124902303119299854096959168073189702771653229465770589753728696793217243868647408292860604199891439898636554605438057249108185239740789186897802973707568411437187008796344113976777732706185267611679182711106750016214029715818673762710624533513276910720304972754812828013839988871290834047022598764401449188015627374151601710542093165663889505247677504342694124635889725585100875080970858586801850994178506650743788350633923482554027791571663938134629530763728534772201727629193218496592956389785414585581282043993273183252018874275872904885139775869759183795944596402324546133778273574538701651120515673009031141247294532666506604042258891617527917130249523514240543845317887529302406032963900185687303757682734483522111480044509623182185700219030210711120199447777493326952864943207326462809719667036964497047898029316162857755858540190367033263741312996029685962564972874219877170768535042649022557123734979351426008652983210007587766291833934717903649180358905199952449538869207131014167791358165714773841655086710782732903238299062820921183260021170418290155196254770876632541463811882695976509749703396430635262920731696921222823218629739140347603781464975385058341902822980729158572602054916368342816320085189443869296692686062728424097932888120422138448204446117688210692024955915576654509351633746045045893477341436367738888329630915547813166078407679795641045342452121609915783344327068333259206193322133002541681524791201805514004769578810038192390435352206289096257088943316809523396584785574183745533168825244808443245560081361851582347619626752551893533830756103296918528793931512822036870976685156308342700492670084849369241977157775720513860490728014281579400747364874980441053128797756387106195331073409911030673739085743996578315036839432127300077562012764779178124610233170945016877952556568792335365383936307518170948807846324945144068875395270070890296958412985140284905735637974730396253073693679596901460416551101955695666973316666607392667215459590466200469686624093898811563356877228592856396369449018358225091466678895079384433373162568697830199987929926290293379338230980314855627030329847528094525235776501611826317254761949975722151078192232409019431606941404521956034038620573466579724631170478008574826340158555013125730997969422525934741700370879429313980029890733605930128452022871354984126834987563717397214881342748565520369780227511486751979422676933459179147024731928065161782598872716847468651932654355429306961401464664277591821124890663381527986384765536262605478596348930402181665722443964006946192, 4246427338460594509362605415170076329697348838173478134104930534186388015777222938300257780652909691427341763095155179670625138745565055706925264821209812296850226123140095856360708892969479048495369918214499998950108125203390148101392023744509201780986362038379401815548748557742331439230326240250978045630367521007457762723169628355125839549814008956416618481679605044157104334086395084282203594827236100884193236577563148044481020652551383104789693480728980989014301537695890653695861059871641746371628484712101706489135930453815932747658433596249864652394784058864898487163479151119388765431219240839345001070103947060774202663122335480583369337447848996321377635078381439838338254717675725497869939276721788023015751804756202123133410693761552067432079850046647329887331818657159269298637292391703019805152051752273154164631378940467505122687130164880353058365289156154751276674347593367924252778367844379026172270272650917272658207097863335882911545717390481020029227437339856998292741272020907744618979159558291231058154379644552621241728292762407316149665088079136556018701889331066352901118995416923989316312139346841499205184259965237524405139997626039098556891255149794790411178746431576680600882743256751755567891753885155019047524967024901416054677515572345757024769434539326180292635673718238592950410842322893659748715123107751754003834955299644100014861032519597112965847587245013970395099788917467912520356664707202678471311305780197960685942752136365292985812421263197500205884194321117922366144724245233156252730430018645852145921573547716068680470033319182462386259587323443858808150988073966322528078506248662487574117806659038375120007804028856246300008234820331886266876259358507957712513281905022447460820743252775470218541625229236434143981833923295784974121839116976067772520670363773649520551278134844570466563188276259680125966426524304265173545261532043490125883874251692320556697716083532552734960810411745914500506300035142605543078742647063919035734463367069806586916590046106355535682999781061131660162550193563642976967719345294875403503230285300259441266818000726095273004981398966117686332711398598155526890661114048936657437263363091733521121690023331992096835870851020859004584605171191247965530387156682206834676850655060922272229766113826791744152079845593128441667860556260354261792928875514531568246853905570162630903079383366427713484534575932343971290327212662641390441438652890262415186624111824068026338155743555846775643796136563914009456039328476669281484996933515088095907603170683274005420349064623539304002973811681817975530275549446058199834020309280024713212067230671162096589649557144623079968400378111104552929275686638849006771602404354316828187128239812170224595222324568194255874847611998854537999224041265993079689922439182553687835556331887242294429282154625378727491039193322896861088944853034430488549448429093647946449109968036526757681369761054521306202828890301612427538531281360188623306190685358861609091430872449099963399192876043557766375501554451097049740913769044390179462619550694036905365127632540432576518172781778207109883919934018394517355530566378729644197944382926969769437990168151193071787903973107302100761348184327279802947980405025214601445837764407275804505449448050335060553262480699406257325847697231238976681835342585789446796664552459344165940383124246269624683656225176750798137937481111787027845249386272124069910668150345304087081837872917388436297511773246034427649403321851000421708477474077224250853762368453018168117933014789668943471467896683726867748958359756696462503834862110904019132179423843527420572624687436782328305855818912395865386728549943416932855866937109562697656960076766168770276184093227812895676187785363778454280266327506647499312169077368244439849560054928653314286540017376203531795497628560476550716227009868688884097050424726293213255524056621508977951736920734251633970098219273251704993309406596801389179197021930342686078495155206494268487687796549273035089620469299089626102439774386022561580111949710032691431062761727706458917165471929708604366153379155789988222139752182272275905104116527865733356631456423707083123033429863022333748318796718377512435878384315886554913145536779581395069387580981739162293744636011698231761117879911559805284880635621123733019855557094625685134404118367168028486369014344525391877622550909605647930404901686626694984596826670041212161877009112482752536187168860506493024628458215921817858200400277910264079645345029818628115724816038746018197118215209332871897265402596799151001978551830229116775279046219446591604740881271255702732341958159261441995905137975617552466958669715134852637770348360885485785736373012022072311065430386019232536243937230773710322477974050714925356277083958593433453536363435252516019351998979474530184005476083371810135059462712495840375630199523578292002290168427610712801504680577599000751581581448620943296690011953653361910401631189755841612495465485061254616499385689918557101444328948400410051495879256054276131596936676471968400261855053694239942797395966813570275022105316252487317214353972464544327227870363136849758759879554825152671958408819926479166031728685735500696531686378320008067489197089714959963427178617546491919469937059919092145907466977373434987807113178165737136957426303590253654060597482797963975045138489672708742913340208447313023771808670540287032571652674081215637141752477645699390363868950576824657849867611055385523982672083987927070909708922196793557205929537203257273464288041693809202745462914390623010554422152474856694650160047438703110989474746165974074454404832183236878937824636677034366104897046212750489044531528681603012845045067875317351558320593348777544731497511265859300977396489283939454394578358248647144862876194751185893765660101883407853015037628042654549503252128519212946668908866048028633759292332827499948572052048629433099738018357787144663797863007709599482812355571664904219344351391828739624101201809603264263935889348843067880489871054993887717580195487841094400757587470154137055832661332698513090361193361041659296462706780388384872790272067996464063289795911168245348850090523544030238005540359467191377620824216650007900532761041826002070068558805540847397045088545665413973279484500418458752042257862255482676263637806817453479163918311815888581130143125137770408926745462060498005738873519049402848641771862851844919335267377552607293310341199902020387296075599290344638477599685195807149531332088619114474438819605218481768992796161020423296758135316804518175028372161141046178742971432548932318137343759607294321944841249222180013199188238343252596599953794308742069103222661432549392146931231867800283116632810286850990995300365940239713231184154987165361205641918249570436234193672350755790622723406344874237794031843812047865663088755785650472874586744271881081672724748132382861820583746570718984924898213975525173485484444785787378062741466678829072140269278987792847502194487632000680063366243982288292281190937681626395028531739202171154852121616260291950328746788380937190710135643862409695715128792998781118016390789681009946493335389002457260615525485686389836872897300389961803703543529555232505335437038594660912813357928434591812360369664563039576223526994444575923942208216777385340083404285446837857417786818696419504181949838035449256046068388823951379036090514908433596228108272085162146791943859662695623245881924687071314231605721591697481271632459692424260241327382541059207879281482258021851392567881893844285264000567799083590357400007356108298242392689121698540887006416026505000830018101622518789970711575557219978824595266869193732638670877964264205028156084719878573091581805551817881779311087712418840572513503771699126739756310269823752726975620060294295733457796516719404415979422524011531823174826459693929878694118854208498664185607790272824435696299177601888139748560330357890816760984635035510421723614122341058398402178597880017776573264473207803708641667818729272036898056160874768363035101818412767916424514958882646028503759788905026471790789238691362934558351924777196958161913265925919826939835846249569814659162639358757900237231336544280432206942227843851618119327197614451661277306349776600736514916506770627037457658431650392548335403235244513708020403804323036596371379806910630606285959537899787058829413118332457469990508871026811670381782106536002523580040234680552851322155758288308949524117580426394643724291455965373461967420734113304652589949185849558066852000834279873817425199397967485428965170385860034036226838572544698637957456157292880060891871775315740722520753362274713523278792035286341307002591742035446314275694554404891622409269086877196157444859959357644643746592339181465308930026655498531430819816606009117822810203233293639921960404604962131239897392968704310777310912490174408615540218447775504484158405305482411738021121933021952235259276106057929632477896879917888445747164654627157028097261145435808416894832154625730825195096497844128245614087073563116262674762266613922069379007879242346428313555475117316846837412351261170195802086589221395288685502404926753705940920803109496073794347374115791422361454194482183354097908598274447365065756220893561555847433324163866973293911734195736408171498191998033882797219118397026515848824231087570136206947641142522343588975040449709096910426397589943450699050258654645590087375260250886280495747890723081217099798638937880056794701138125569977607347599386020862809894391617515476020249828748604549335499977800105119171467481373336890859065149349081254347733606223991318284508659632480066836660624758126775474762124524982976584317487982688636647557004470809035588058101754891312612258256081629910026177604623243052090247581136286788949288237191317865070873190648868088665075903885548889875624649763374224918988552645915726391228039186374508281365993323188230963048699449384186551014541471256121246369017296405389611198482310907184393642412304173024688773415780907029499959867347397769895391704732354109095417943935193282681964853317520487068242191818950575231715980917081927697456056281023898366828530966553090393353673680006198558612392523460456346184838453255724610764489185367785470931053712332142582295839773137694745054382278101455077739163188683132590147460191844849250586599061317689293845452467106617088215483262930296574208427351756701784895978600477035758703484128564762581208994631895265199490850533388067825131943719432543483984970585526041258715547404606229632986348937572847803217460917091238750341451762446821094472799733295122376482708038463716711047011717720694152303196209455570609683365479391271396704869447067688283681330585814226232546700302085212274337222533875696925426652616224940356325887439506187327471796113754138586354984714711180934662640960896375130058693388463629879460173275097322181882610327298644807749173193025267709876401023074040915030276582862111791690455427321848789007242340744654368642777311015233280350887981547806901584235382250523766965973488679916838128001879121717429101665813910497437434054639474002943567113746216857972813568257887576540218232141696326201783340231758888529973225728171495164984193580809407510958950260025038607654918848583498851352863833496032863707594312543991217960913310585825612676040905401020537049601427866916354390589890232315621529828243077509521295505267534447758785590924406914585173986325611275517301047762474973344219128293652296185604745400907540646824291095004761321346529214407918305265834771183889647573591366279697665777973423372729379216641873263707560603770234191696171779367021674949098283931558387468222751571304991513810913833717456405188792589158762508474437967160344212940793974000872549142448713067941194184717349339373493132770301670702759670552496020776145587970017721074688901368557699244005156206199636051616397670281447078778408384679707420899826211695958610858143261308156090148009248226884729146804601679259429490315478159637395360816848770520819315273348086067942169063621269412197200139783536628112573025818243266899229379873087787091402092522849347172243070482029767646233351535086019362016701173962723714813224621835891600350116168327021276230513207106163242914025496467648656891095993649492971291366473826058725250992230659084338611868400357795316342233806005386678425853204975331464759443706786666513508383965540081776557073753149392901908923792471371819882872955908262824294578302056101444719552897700923475447853448712995358829164101786385550403191873926748002433375125453749815335378503218152359579451701320083407278075255910899470437497269767788514656021453225016629402937982757116997264847732574584320135560816867953484643803025001281809192587954317784844288200522279483375771261000724806180744023485986660367814821602013935845065102737476299829871544902300518977679284903222665013120472416254168724762354558852184777404249421869506020858267162828514973640018547709311523063263381548150958384745615824204234352682062414262484013413531439984978813024355030405921273596824372798107359040483643134687729699522175409265004998270131661484737766702722704516991086702143062873189363614988497434322033876224017206240149811293855892281108083934773216608042458980884112299068865639138441515186997578956615946317981118606817947176789478718546565624997597990740532774169748230578453975587099185899726825073005445355196989764812011506029932288641826912048536023472440882039221635212299244352430579910267963834862281631962464733744323949545083176784718223138803022439474630371319862321129842630585345812015916620657503311132715096807155569352869676986402127325960268717777976161367249667576892497167231992628076212687808023092161842836055040005850235807891965987545476974243564553525842368434824323389719958798548856481227052468003781717417569814054649112531412970041234059413867131043847483041732237064301358231314704163864751211791306649025334356222198793651413067673147026427627573767521807527587528667407800572489481182426394717944279731729208997933639757576963586361086569828335871646913900531815297851237077784713818915165452701266572113910157528138162832000645095548135004549549723929881199569365854275700415602896379176299353017772843106267700054456963417642071918622570651307654439850814568243666128465104568705308046307158646868915301508370182076922192672841666438316630759639568155527758745663809983002386957222739503433712097041794300848657755484364258308359310770971317548885215356994018589479489541285545274293899865313929811243791495373938410310389761258414953880106379116966902949326585991707049742627661162182367338556286265874572231712127959835047996717657792698306007661322486010965909481143978903455859034389853010975822119842301769433463927402402078930027150342221454750405733918883449732586437851338126202733783723412443355579983483677371358669041032263442175610588338383488593245424433370007821656130857901460987818653267769682334247391729176085387217757187392024341432178366957616564006991164637444208659603530739611991136919392569114422401924531152627492588120769068307799719945216886874086728752088426430727605065194036671362108896255605235129169755812283856064878411300135476440958039819744303060001923046800149395751657250411397945230934558142795746426498731999742653954206202868828323234598165166936502146912286589980496760902287785585197809371111591405437050793531389907801388879577180352525073196188786211347925523292823004465065903443579598944460118562602788123382129652371553268555611552577134470978717321314749268169504850093519464411095707616093914225849942064180080570975041714522440204397131838603641280859326371673015558071078376762749373082957214931902841264978203975334761110637510072927561273227387801655040484822778084815782307912713203594633952219579917884489641327088851545836226440483901196396483133045473830901969932372649217563090426456429338560540094192750586904019647232940105870470115262416810862513963903412310840306651856613429905684803322769109709548526444727898390017412782985394500602596528843389547834563320581908410420962032895625102229978217525970088775180038487998389984158710084068220981802418463647036100042536920681738776678351878196431855272823472496844038832415756167491482831634225246156478091525603050488921951946611369797684105267815240326762577495556776443523816179968820330765962557040746058485544125797658376120768005670120343387104957793850527877778358669343145774880611374274368234167658290225671856920968548624725129931306862677729832625817828583871667413171343673669841846138393014685890449053087079309249109564066963888341134573923399891924048227960123553045063583113902188110793205350738627807300670293741126005693851695599813670133275795314092310829178049560539701707801154736591968797063011118621742803296148839064274886483028514186960642126829237451781135591334880428190616759708857975240700573615452206724981792088731176162914339085559053615219928521857046347555828557146699925802971398076152979471692370123766847086990476224776828289727670051271065133406373325969503181723390897717745217634981715717457648672369538881313741146709935082394439771548751450055808018067159568773982720073414700473989451157566788467125771944954981158336271456605517308092944370209600461249273752881307147252160927836547742338336297294383392372966123631555353484405892388954838440998255039701634708681720941300218157560583585039017775113497507783392926999940516235456326677435359509815371222987175134944901295414915053379943401985868015182672879764203317116710152229190188309325674947469103240093557995579537497075949812496418035271486902472317306802443096568447731245250875548113879270722437795853021319196530205764893922941211086817947950818634999283013026951357880428401628204373260517126391750950263592701135825205614228591686371637217554947780159613853089748075566718705772490790068213471700402389436651614788787879550484398310037141459240454778829959413408241213557241092292247150951242911048656264644993957705695746316947540367093221502852241446249360848150775727011910687484747600639528825394715071178674811196538385780823645943979629295640291604547149061780186091852010642769749316886820293685615317557453948781875919549539757970420106014633331470754420444375417584259513631413945125951343400359026583255643143447971980794582658704766521992954428105505758732897185497307562037368647554590271091125867682233012854749363052124807289932196824501818050422994371109915177838930104068890014565850296550223433071741194389845729084615035391807718097374636537001315574191910043510688036497762926239139115101434465743035270099269470374919814354885981566951978681680708278299182470976286724141534275608025409794032095063530795728596503746011901978705541946167445563872884556929912824652653511728281317683466540337855228877694082803400593192167226123528282419286170648776551746743956554925204668993672039327461267416963139916000850928509617828334764512101065641201832550475114546741790349361833462347340421888195147134861035229300219798036474326074060481504100054715635254923708213526768939104097930071472054057547275706348014166755197540006323975426012525503813112700095718180741464448196107102721289518411032363374838659236952121471105512551232736723380132076752923677924877331810452878728841332744836156783811991562720513854652696852038144493698580860740861694548602833430555711539059671609641369809743981737684870029356722546283011057882668164879405073119409689613850893979778643639155947448455311781798362253222746637367551226920220326360494759089312676568415201090549809351827080536598101358397497595930347285181874243198776397612428012619640640718154068968408603098202403464849676370264615547895285801955128172428978418049522000827653913864959432073563288071393700473901377366969470700358878306468914152395215325764082665586776426775669536556122486002908974932648770729360220435678449674947143632691603454463482031626805373340424801791068603091123327667436347651638225497719760717318147648836126081803741867892688497967232537862745128603102866961344680304323605472647763436704400366068018253553012611473372021170196518931295479958691166573399803169512836524179601417877961632981548802697803759131437674166345539234243566490260211197793366170940896714106169217612449714247525527422141034818173162376965534441193023043045496283654682933460883321112262036766763341679669948733124115692620598786068415883207704981626833451850544469818772622296528184121845699766209668169904155823631816566880414254212858250342265297998225437357269269449663983204934612935077764194151275699481565687923122388226387246185026753459405583699092719969957520131810789511130482735402884036815704043411179251107085292252199556907783399804572883191590029472443276447654513383402969904678852531238858667791832837593890735854969862461793160149217649412447651741272886519941878149516712798875293903533828851389471442435978107538916776758589390779097896771511096990123037044294775954290139818136484656375431012083669817880618424703919918202299233592755113705305146431998137156142266926218122939660751859469038382441614555867992524396120181189719886963719951514253156473867501724089079256173322481078189605979137381255644144880615271151114138724416918905468351390416740356985256183100579958027558554601993473258706499817836654640241957389599407731501942119861315834858648814664071309742350525239369290204822631941045784170848814495828762954756121693440464615498490421555675885208115687925494338323991923177723513009848580633179192758355416030307901506306282065781903062612119146085119300985238262534717843466672550955705418623668291305801011516675271598792945107860908672836097007891917799359078371386580188182277226663995036250707130978910322992288132231314626754652780210289153051086594183988721128881373387038814987446606308497866788460562454525090057054215194851533036760451408425014384422133736319876082804269050142971711390691854348842012286651029070338999288657466236523834503428554767199395590035469373423035063603642823096368546465510505850349680393435917361203587535031014465975053532477642165400313528107060371011382422813675268906057606430324841689757942739665934631218864798631391988494462750670714303900045399262279481223099946009488527056843821383807089488310845596603685205999080202604126055616783324105477176227827965213184385466038710268726836504213264070899938169391158835100883165826966334469367269004923236523480271369026518043790995310135908359057403484243872181992378383663526878936875051318910216088621894002495039608931976807021050600107941454770745055166879154000691827698624780922546278176909553148279193179939540630937995013881165370622348508412902539354102468433906032632999203394261818498849674112767893864776025057516261142528168541870504067133233885925559315078799839778748697022245032410547065509438245345619960324263257431437725471297629716535121464769770680414048907411545392837554619258063075154151887469021496873485947910945186061488385437555155771828481282156921692120432854201303529446916249423347919774818908863769725300428413861309576616960048179436148291645098716223342649015971557491129058811494397789059454665887161264987783629019670674850617269723089117068569416034219764409476010475112292111272696160271271376202546799423675093276681665778080061714400889303686022086549720693641813446344444734367861316527637491386556133046163642137486195599050106088017501594091014451708391637399698918904690401823598039436431738997359665175908194903369036255276141630464678158419243197498016922591191066434170245118441980769736056559000817277566570072087149281625432267019813589157273125382524986198722509566256104043308794519261479324840134107845515320384255269047347603917224134967437337530451779242468592013280372705299176928737585167640998314295382198247356574377939425270807948447802860996318951334394096140994787594080929267053151028002419195605017986865883316595141144452414256542496032495856851587512652212091689652732144296780196525246999791775395241302965374178137190772023103351808355390089587295464238727237302029512774764023959191435498927866791067133900848185851942828918053566063102555934647429426083360303113801100906608993207269539196355393810680790498036509346044065489414081282605803629675369806349598035886838669010932766153788359775909776972969387617977166363077521040857453639496773184710628475172470654472092955842038430429610463513566887714869146525769962599015358658499716287375001261841914093090043011622059273665530404643301121240692595099477810832024086964196185781505440296642176202992812915768901874126165693182125349087511727284442292322859792805450392582049376948153447553452935864051962492183124284662773217445365524624223979637698319798325269125163746869225995398098790818397380201274731741944528658323663319925242692536997246169285805104606555838930843101093696425898097584692000046902184147967365654277161621203217041760852508465020246646631738232494145839049447399024527002721042165131934964491285761391311120581318202532505446932047295199726764868239056950565558287566262461889353919178182888751082227516995035525355672564627764173514177356224075312849880754443926776018493735646460776579199919112787739274096971043711692413992883858448892500201778443794266284314813992153199634187437956117641229851879044055462921398544538161263593657783750587099244405424975325385814969083479701770668727267379803466250088552757868988659607296780960549256439597962192325174168071477938904518126650223502170178127429985921228967727579103942110490144486924075866242798551300737428681192596865392348338332654168750988876680190677365527325573578067074354281917780300885078949982984629946843946339191499464905749757988023777821426542726331196750675221688101248837242356483995041426236702861934825144822928850075342601220655744932600295117820801452071660079722238286118049482049344875645339526290177585080455418419890689716927416971790599642841266538751360102980650693570267815804591511990998205850870456340351751226358739270107271405775592510437875267738663315397954203732117463336416535384749913403704747299334105243444102809526161434203545893649332234953660630579737154618197943077353561280304656020255301104061103066947746766358857245779791532626894460956737740630826089773807698679583607014191243635632484221634444609257655531045352247584039256868852628217898329752357641940272743822782718532367434413136944336146122010938782741883993940865438237070342330036193766959490026989918697538273270944474054877866842298887717653729598890230644370750002560028072761654716258902586242405794125512122452537880265880857380814443908328549074896232531223142606449818450334433376649979090724224019415803547314418075173205828829737574054124845236242663295289054199779700284225413655555374678976348701683073130975227501084266893743286585022638563994799793411053774221270209373856020248350765371451763408531344666153370053036948424570297949815127240132607387759309071752224542551928079252891523224989167939006614866541822217170697763070197820359356255667398404632919955330494867368116256075551548724278298888725174597141560152829033725714135880864896295138694315929807834716721516493183159513660440557495758919132343109772412166370500874285514177238492481604128975160259347814023442349512927609338839888066335084281940498179594705847940928005849597903206221704451990277204477548824845613956601574943973149038141813030984095331023965114222314328296972311880482656332394501223486785506883963398141926158600762191160081705624578736444834500963689718023085965256151965154721405932722153121347389593896844905837220731713122534453404233846824569979712822452490868130559266931146795835256743040854350113178507673147656534545110482390447873187318806770582990597576954272631369133487149657920192424261311566959702553979782646317793392864816832029118551007812483807518674938648424689955552314742071105927647051006245840713527593128637481435449521895755085129016536242443493848007017174191554063745520994221484138430675092266322688329734922256784532255364687017832611270208502373054690732740466663195292476133552145864272960491159856519865789071070913483641949492650735229216857486402203956307103403903937189205765982790463716568697476589140222809561291761326299407298237218269418624569761305003696099138479996833414092481458722307088953523558425386470367794540340406841324967563386788618509825089468126592421269211393149355182711406909661087647592949562809983509857067905891567879475134801244197230763742047790223895555473438317450438750066125043178435489446817860527246103255261555397764251673104725338224546560928357028990362400752492232924812095148830125450110357924141560839036789168827169729227070489586912065521732565139027487511590741618243492323218631612484630517471504103237779182731388392449079903387163965680094305929345180750516651511541043306761852361430463225031633961947553806850277273427678630328041194203607345900817555742948895206583980936111255001124004287089159036873722846706906318439334123828601632893047559549117945822331363319905071917283595384470457163620324646887295029391550744048546373164653797105982837567302139528376720703271559833794701064638232138895585629969076237033724306591786550914977842768495822967790727466242330796457146640987383432909667584477235101172940258271974090135703835623242314324152488155913013496482373914413293097009889993981663766352323718464732664278313534061881021796444338625467081153212905815331208345261534988969208366799044026001439331877875838843060901856265631579617834579309939767765283347196425880295358133564804537542358678941733064070263450017907079305510469717328949674387995095120374400093844136692406611475698998374306667054248197034594159677897973877423225802570078790389403039891967066100429792847873133035875188206292764721074086764024257182187917092069046675317600322015160428264498952111827473985695066438064831280714629006621532654077439663613954511799913565810317777443065481510873358777477309786845457407871260207172953094746899101098258609003183346261517908714959464418696250201028321099574119508353552026231299631543666256959883518280941804995186280237008350337726756202495815818272046654983841889614834627125250772074796034693489045446360097478230271052553799619792112986013611531727476382765344896512783381749555836737758723426655114047674091837113588432096042244816021515466015786579509197334597403724631155392115290283033245812556656595973270100870489565567157317857327034627377211305456972067851398756491715797461045355498577161758009759307834913605092594719968332713993232435922002834266001785963274653774544916475200705683473140280706559510077891986107874020919960568046576957043834396975352460988674654248254201902962669051429538043253162115320235752712566606935798931202123141251133195599767066952219968119456623445838335424788568292274860950453082962775869742311696741681050733099811979457594524757276031871675506921274275624727522480572785554953440274620360829336872984411450364772504566607792809579733631174614685394180042693005983554059115006731810937784656171241033531015847389910456158690078051933606088914119617544230662634035539195190878556893060532346599176114981513244620808723396837773776425029238359853471411314978572547961663073748166749560803468751900250786217936266635592561935232161383451284366461750570260416286684930317377858438969996057528341164724888055991147692741876649807006463841039203834304226080273236843379061105293806894012096862247080082099556000302347406359514280077170534451035769018448959474974475538680938542165814543734610289771372450614719532456422291207284620197142916403566400425819419788607757456941103497803312103508826205636226088824455035533410427042984769760405254280366069165137811507735949634414061643896247005624737643328031248786987955527788771787146981131763493270086815817682253363725370163975385106750496271132298801283447891757242085717129710515537097507560112367926246502178169336128691368144176034305086306388286405426280910304394752935757723557803508083030688305866951816880413417081583737962749631899299760989606331626943438767140159057731245620142662222074322373575343216086050620985282491706276700383182459601209746927546038930201137992547175299216107570695658364769474924009239796705504249138877567751185219219240278523411521186430000285783330656713465537687097584445694730856219642509838864234296067434591583604249227976164201289646493108844817424445279873385650810090664594690668610429523432704962069015502239650379473807147863580418557283603254797619387178906607101592398265836425174544267872761834753109039734826920064759263882538027820206440979171597382817012302618445763112126334562523211330653804240171472158073129924399414141852959348662113005154162623457426436050756300158540707175789455647293965109675202739929286066303575437907947208777014948102010386699509112824502829949543223479260537564963139209478710803563888793066511077418087915682841204583782350161808100322894960374695751080970321073940517582472628367556435194046139091991003954237401832363406761315024497963271614053991685221496986090351313840591448653831196895386318432827546505393697579929336654054042913063670397840117452133571894103614602349864387642297388880607023705447437980300878624708349855622298837931051152938756834953821921808841176748943028061544030713141153784190105089901088641948078876866790180033699172886775756674708216140736772901508665154573929474461834638418476165559813694933417631747912173607581640182637356712909099800796496815530747884798656045615452732389176615135401093951861408199977643238208909431774066887285544075527810164399431225472494133028034107751216005962456886717569707092039385217857472513439082656613508568100270141449922389602570299371154160101009259987656470062762359887959268422511803256133434097428820816906607917895820864861268390148908994161322493449013233940179368722660534665937361363972979388132007435147347658384675203820675898117366789307174292894277922845619288865632521868604285252685937951627245448932815144111430410932915790021089722976953389899018567894389564459406154732430669199804291345072538013678575320508052221143023165412178892627725284963698993994885713691750599773806501617811594582639502641666487204241648015102034043757927291924620686569843970674958792931836882120714190201429383285484339601493276212818902396682298630285571852257984616923340024078914305062831509989728607526127743336475960835941687172610991710676470835557513774755827606594967052192366121487593458507190411713677652944147796322525504210138702942979532540078634312687232096223705379982360121602403760029768321885409217012218953786897927971488155302881950688834010624658561806242950416462244141779718407236677531712632222743182921400887956356352840146198591640750126064644224071770540254913139550009173135816320853252866939313114927357348672754270231802187500830576043627890909519066932235366627985069737713714252739574789918798383032713337365352112589568104516284457252539516446862506361437893472921820269693048289060276927411160957997208159735169583749625076191703429402711026865103483568055292645931140539306843473753104779991022897165020826928973011997430424560038358870054322190994897092578724304975510860890116913067771924531841731992713006766021445896462164462958555279868469064966911436929241373184031573221514787635129430308482034435123695369401440065067654101616816601283085735890901648757992620874051513946361264099033393734539387934281928315928008372253683781875595157539293930294184957036080748523420498162609633606475067583784077063749137125219422811837936684166426212761104418928438811152871662250300029117810684949243681693596907567506744618703510396322000585143999248694925568638985958401433556624440751703042260678429040174431753203992180951228517843127946675319547154456209652280652172856525297589847097283569692669809084293779816702262227649569122890936738075881011401152699323406972059391882649604845357460613006137080156585667188517074274499785908247507572218552526148966598353783665851687090296950181155695307037868183369832384318664895422153672738581511104141489323616612028090004736261004585157254812113694207169035229995410620236061544500038665397110740052022814542222328656047999060973006584997332612014408418985772454593336157628170275981040703342660310321074532444850586445733104800850935125320529646434550146879188562169947290401403994117503871012586147930114465500553362442837711118363629821278822455581955582422409702425362921686462696140400598018053096410829783938931282662671412883146995116269373556145024700191279984249705139704435460824608447483771388076769008500288352183944485636990672587966653826372894458359932395626966540228983157719020336357795791972854669780978146319214072185692538187297374584991762080619751407146184168715726803952745820002887521492172042726164379405282968734380105999502361343685833117718793881089189770088883082451136673076424041082733177516033649759773626158220698340478774659397788884584205963869544458378791102862550360506560887309485515796781062649299024395894708378185267537232563741813256612533560658936772174023650303951047083412463246375731638228901681013625047174106118909863182179174264431456253560798274577166992203100838586324439955794097674229643412545546229405026470352023613964847138851473959198443792559687717887799060565765417505594592460064950832908414447242837643968993661002833757089210544535174354842262390713037095545266240818851576465461157990648023289144753107133068345578751046484296585488347038340275327422085585794331251021578937918717068239577660516413310829006653920821409789770138744940530626590686969631693332066007479115688659767975690188498385271234683771644325987665446085281213678505588879881676305911702719965429666954285728530546823907747825540566480217615290738018493703254440995543527632507486998771286691979058162761180978686175148574065207297885099883037125776433921382833022293105255013003425843828255165373040085505131426243361709859283104916549602606753888169330038836138442046664724002438905541557620228694962945589923393212762623480744666672498209923913006376388156372687275192612601775781600163333623011782443686813577564542967890028528124033297857255650273013268599756207625699422347375356982838099399874941513467084757114434060159239217538552718831806499222047801304602423918325276157372523845186607707372805068037601182322842417937521722575955445649471054951014650332074234114659206760585404779501436392563216118810601459974098848310756046421768797431413889799013260562450119893307628629330467831768207569755327952283230176820968333375504590000435944234338890163858174852781385396240223538812479586488135928018671146066984635155159901294765535605769220999775353848567321180316016019378255597120949727881313644250343233411643647284784699755945789612224698698512576370581161290801626317881152024294980420110090841293378996245600817262894309137276452210496493823575153254642478832771439687809216467508071930725205433074227320939903904058843559566962078801715956593904247262180625754761363097058100409157356503307452782953370381685257491765402699544867963605488791416777234426168759365166398952383666285653334202853381770400418093993821653340204150836183360090291348995077949378307940929191693767193308482348694392234715177655106871467462069461056860007888597331078708909688113515804270969615967477134858007037916360448660591163964165079920670040734848263912396142623812192944640064230415822121823010502715702279230065867866578339136850206084577394183291827488330210011756637493559076878627192873867071267183354475897209998512360303064174886755086735141598490656789476408151579658484991858087447432619007422021419436114606521536825187052503913943161983670237202657788751867806644847508078757642116702332511969607194302939215630821088229251358969335717769490554612659913013990967965109676716360650540214835181875040990016397366899221296323755074999834495568491673377605405709408852054574500116171732262307082174172874998404914641757228204505334993101242348092891073825306005391531580122563537476075546793716814954034339937832079537585097879542314007994982761899900576243112716832453675056956444903330879681241648245005499558369105929106455107598159722329237252914953961998167771893589590234705577426328874200813962079173099471942214438534702446900631796344237754563060084596680709546739642900687400552681827803580193944173933996844400873737431912185372172605816131010664993386028215126678428662516284444764920106562351720968172009415809465817824446185034527462985222524309708050632685232345389098385599956926758204189006816892214945579093002959817654364555996358028259381509122899829017484475880207294322371918562872721603521126505631882609889508385824810284365176639139001049833664951310521128850075337278856695305603511396229454013167493266602769249758634810046577449655630970599504968665762699729664753050679980883178638101215898730557930223057916319019009265355988299679127328154539539173230847430121490385648543383198964557826108935171548429704973171043561620014658760100596719048597269727146438962646492484293517081872572320531014379550283295524482338406464663275176589208182909477521389149769903496359247876501633449170888705156039767630380477991753459283953615086115962968792158434080378943759889506451754826933312426664889751794946153051664464628443935622638989072536893748446897215524324532625559848534932145049994003993376380448042162781490707522534515719565269094427251102721761741967510190098329952322139033482232432135304115672221810826408987561932449409802021507586078884862693167362731077193186218997811411928697491325695717279058230626071863969919325420588960358905245307983682188418215197040701568285872767454763701718157994708438425823455453925422144824335844230305428744475319906139102087356108754298738618925201963275411703225583989858221597106617036212730768710343913139501507637011407197858609355354392609304331879875225568273669619723577409804918139129424494124414722834717675569528006457653728395839601386287591088319675395668166777128459577290718055245991243717401439805907562213877436884965927920208295483795860615793504633029129974121248112515552675185506280206735299972725653343129396288182138816192043624663772010325907419080484132098017001222773604242613525398183513092969844865197216423333291440877350604483193163965435313044757773048196454169812376272448826873157029374285341253866642197543047645080206523296723737096713527883522574150303975269386372371995872054255054073139658946222401598608569240264776906831822132222278928795415561860813779196772175513051352814463366280695579216582909217751057273887620036913991185299967706029399949715406614671579453842528157740231909060198074969063066596491615431530964927052578428674638238332318065082707212452867064773588016396531870081684780129513997438060374675036558463963245671406692763622795408189755969001596894340498413185902704866758764364757549339206119063919806364063484735308046663917513912583222525319344169551785953071129077097822246009189430332482028445338013251887146679892200145508012976648156804049543858741912864482942603550608259146892784781785142494534483553357345887048716424023662863325278719026377592413164551569416493199750598087248114942201679920571194752265053885102531482829423106803070860703104633400142786656252136392692740772724948253232362391490855266502327793907263036470103981488139165396310027089138139776819547905840314091088285447958852347456919666864945115290984674081101001937164058882715534691607559342298377401484309117590370571790338463217759229200927330502374069652782715447218869336999877403906873649529255276499463838680564309387898595163492130148408101811761239394487425157708571233171105089114139508417707829293018840666767342398157508396662395257719306965624356259362720311028928198004866316995878155596189903952624414970998647602153132673754339365387594145842422662641650455771166015300419669419487987060829246872176540042079753279473262309952977325585071734304809615170702087863433867269531241870060148196925285274789136038493734045222886624832250420512596250928498431413731197464537882796754407442358259676073321839436448279683990224203935147786253951791011482978253371032538780277928134206526679820067001919452949609973949903892501398517008598643689605083878099304803179345119618668080909871788196097237718038090807615601862513274922841314290741570325688104522181518983473173604631772570835739691310291851769159908540207446452058652816832980371635643682447068198296885856425819342091824765365253492439542834244143016849905951447999634287262579684284020408335443143498532804406008435632027888394854064679204420054330227763926785167049898679058921429857698981938732338845764740331710236273941331543195207817836370645840043114264637466516617239137060857093580788149117592628209266879108485798714578971354810134873650376186742482684418927529084385355486196431172125291208693486850146357606280865716402726617457360227938943494642702040021161782484689066251851164687985158661655200927651721289253473352002085233826689104484271864394932442620166126187046535183541040950587730954415267681202697890746398822650218405729641852426056724758638371907981424573539141903650118605447063807276976206056452156152973445233405467723625992079777578315283476419751496839132890366095354853787891108328038030379280297592702001563098819205535372055783515414273344314924503596874179678774093007834240925547764803967818429579555533206380161828230379787913933680519494486190332085116447310180911613814753051917154565775947786705607674008609693994606416338054277478724826904284209143773325635031037023601511822124657751006507199244133022470716022483574984199601207580384384541598180788458194772297310218586958099593032199346084281227939830999692627678224473717460504088366745448695704242260577176201931203421405089246563478878750572317440904233292287599821183549074652094972952354640097253758040355085365426915757810651792477333722985207045069096450817136762474486824478723662960017222031991095839876576115900741050379778269165392892038931807986976663785201194576713971755340391284258637551181354910105304307180622751185977547376316870857363512032387641002833860776829297940751136451700516569545857726929711930919335608520390172129503961891291373458832207883333887013305543732749690873285712425705002720952021758397920035415025350461322843259586046171106084124403319491027626732739173914330375707951524566948483923859188153496726269176921340342961936536202214259091593064651757305821107804416115493188060767960631434883295084144405422229074449948431312278695238571332437318611771566714111042615050316909307603364119244039698352877343735871154999387514758957287495788302518314253931976958715933323860294146889900864748428992128962343398222042629392472212984722660408498433472178600543455717779735858865570152589851792942310132245369488460444368999418200346169382217538006073919149476199077580860986821205143924571820850651887569620051452895280096337208322219063043919596948820196023943602569693592987900308781154411442677874685281492092518207781194279118883711552431877829915156839584431371588646725726947865718191056383687855460787510072175574730025833341766797573590864711798225456247479947004399893029891928513786642303920061825474154607074114786515364550469017408607840810299295116009910441806419853356343397904675181188475808511826411726360681810733799581037562862676320735988709604772114329040918945940675783768839842894383443631772945838463930370207548223418640211967155494047840114050276585701885284516683844345429932526322602944934800886416825334711054353540680422048165597122674726590811057350813382182730710020047136238053707153609531524913002608391638175018543801999692290867893516013371052948077518692664060790184476377701859463178460798063566269497488848019458950022033735180892262148513210827947301989903889783172580758544851144229222873100401769749548380305995262696146128388770230963191084851815606685687979426631921349952644700010399902735261200466294554415506114606014173117094968922602751182610239659055458994081455216180192998838184102044055635260063070467550577373898185791126218987429633197966379841102006377062854682291154369709900502062577602609298659581665369010919879091431323664131267191568758980763606737805539196359373043300081627478284796038393548212188030114556465012064878736181897053874007730577251919766713905469087155941852721173354837291795064534625523694818408972352929578758413837949534059116946474554643345868160179957855979751440582587005431942894782939205964083234645774636210148694648943553514406815964764213080218181119788502172379802523090251957201338871915907429465957368481329759617291657229076225392059271600984601988812533614940131659519070205452735902039139439763854982927320041126954203534527530591694442499932184205778495354577134799841669784897221394881670203329462422961071424043541406273699448256778193949870709899384290591666824063551728536184202504516130902858173963600991022145361488102305493133476254261692704848153003878054441542918468427462682160342646624616783113669551330027607383619159381102334995871830448047792207559328188831772818400815653700308568312268439007526968436430858371777835882146145997878819055317819892104025963110088896035268469912682288447390807198513933830745211537025949210347956310178545832828807581978216479170479637962928948516818402741090111630170288974884543562461015641061068823437502908992295117500721027821241514477766857101270011640187135026845795696045522160016222606833602827518072931977599900476051556857002198964319438716408514202671276318124086920635436053422981145366223923812951933173330287915839835862421940820558452973952896319716462718152265852472728258320208383716167078634232896299902578736934405061315517898960004721773212560714888582396837043152474643594969771624250246231679807614613501772834770183803106548548044306060834729464525493239221549999998859947379369926249843724766922162071252315211448727838516455094685602062130503880221746367803365153729567243808215450015542402529784031730767612023125058071521405911982561519756251240151410168855527929571654842460786256318901834859906861202064717762601327070091607035592023763862825512080844772327255213697924840889946253280081618528600069141961055627827677935835065900042157577678321623650813081370849895612367731080216083782656625332990643143772849391500056542683869620066486959716968028758417327634810643775366101232934915293836451490908787238544298155608422693972656769798995234470060619530057446137516578534438449138939238275571408032838110513495028102201438286750913660010552989347450837279238813987489549876298712141768447306047984488104266517822100687328570804562851336688404528188789007418641823503695594986491196450917787903319004937017491274373519945547730583858419263856845949330679333187193566457229383023521437716985811902852142758947994284511446788287466359877145507101670858753164080544577651253733790518933552490670001888022334339270553832963729023607337543836590481970227993535287688324149184142219800611181148584922040633169467812511412692624174376933415082972069685534955857700596700680892750799089214053361258135252571807454552651594754258919215194003039959200231251524727418019112633763923783398132047763935168527240246707523037613559947867876084863073610042189919994585834822488402200926783004349799522137807467038203986004543387115955322109227706805812323373277146401031952682056302017294899764319538958638644421304025904516501496238132221197735540335685428928695217737066267193826279683052307484197569244395986123362882065309207920382750781209111729996903446544403553134426672408000696246719063052698631172442539779460180325453089385074409924690273059479676909125324495523828340260979141856141479439697073100790755761179887385528343754532970816884995697817899409391015036445755170445433389427900053898090212698799992976382668259546397904318018776347677022915400715389702994691270219617568499563451308421716564749895874590376224003749122699213673398988047404449859801942870046115753727205514567109906896072361022386409365755245914254200857414461484828291953242388709124156876662491485452266882560039736103335931509727720598921592789238601471111146541846654483754209656038788037156795143482348684595167375459175709472224485831860536058046582309083029729922156623413552570542547861065075799316427632591020253133842718667055672497076295709500391398186028040951631174155753635993202915697518404718281506136053481499170012940017089663242385592439686499160568496525327282516354066974066437259638110805753403717028669740587926784883416377104893975798103075272999932380909883029099452725298193948921998675925936090321628175381729424381755537460512712029165199033741421451643206627702533113091142666497777125941740106629718879948662552258243574196124424705605604463464688909309822253059560485997761128072360258737291645326994621771703518039829883005729492314766068766331942322120518335849454970032649302025387454242563201934748262308652337209905233238366361458565598651277937042483034896566431000201071900138356906640765175902515725891107457082424925183085000190594077128463748367777694645262515032474999105860273599442308119986582481621912819665639521801446689155499650653369177443579931106800399816015735410438509643491819664948452174133802337410745904017037384363299743862499301986216539381026345436066546092558451888464335099961250990796176439656035717779559707442529114086517227134197078924901945864210436362694452638814804593731198008594780346207998808820769673005397527674014850830278141885894145507698210359948820498133643413601188389296090016954905451247867860691345138077876119872117913083969577971963305129542602577144154634090157168126942398825356214617400135189240773386538513752561374662344742659468992285602078359245562136197736083460609242105913554067977666895040564319514268085826838328553302735530780554109852930929433696568413981767056623010095733012895123679150365085645191733205829590638319393625870958206977105357375975720693904153063839647859425417521657324822296273703869155787480498876973036220181871137449093339761672678718806072892642547891728222306433820309896359252664793553565654870728571670107743357704680034859823684827830501434472956744225486068703842371703795052918647749437666268781595100215004483322349636704260036438481158717536162646264112768256698371653141736587983187050802805274556450354919390453293128008823915626511672304928960919477582409960320572939455633087620901763159187622712172692752882631290067002058072664820349624183599195202130016942768981107560185135686502234845545570959425294368932715989898526267590374679338849429040068698629392995575035593058749585468502963825980562369833934165791227114948875424755653986993480921889655815882800342855165543653931933616869953944811901219116530398633416927215041152196726530342178266006388779368471212897833493811517662910045860986621798337632054182036974388869183251334052271212953004889649829158976626533589327450025386203768264175870944107329371916878763911104386392759601803568978421439226770837835575125662448105059111707082923011821116054203355782250899203401998194977587551364659687341525845411213813686126548054102697467816799757242792448874412002923277722972780391639773761213597993519038242743016873668385269674577989098558682080578188819921031258375092906451335315377393562376567002248947498932741738015116336558443055070817393916019742211577758168022601764600343864439424392806087358848110368423880501442113653031678975881691889185072515099783641281942941841379556448299318539182790453537342115668028142002709858059929183487688499443772569557240776770598364802988993932436755370694709913384710214589955400428675429704099275241599478070652554035817596317260966836003148819544052664715083803470097695808551312498005946562515632521448762001394732056183847861738404615964318685239721361077325914703542209147239025436183774166770694753869087684276352140248963489871005693613717212907558379899800920208041638069279036066762470903478613784410928142947032446668348748184837285026299774728003287677231465707389585105316689353418345523830278027920461102432853075179486301571504534908117749394350356473141895606738951594589192036441379457941124040918834657985299003578231794389917799568496825330690349163689211296898198219261632967989824120851921912892011639570783386606731200217798807398137307921192163360646013882861984722796226535455244291607806144430069942916381946335899680614389074421794548028803124610754433981029218033220598699291422112160814117018231829555568143331675892604494912738273834161840792774985258894084732077267277900592760919297865178096834296592152357964098917629416588357820807412632667612861194236986259785630249304910997332755125642497921390373456352050390939936540548680310856512335195892058710268714806341645923065168265530606214118133864654309705871003257991784938227527690397989077524124146029127464284840969440684321741797652992450131464091867507688859453601529975598967883295898426862494863445617977072339266804620357630361012027923060270059794723385657780761695559977162347160828661957720334812145438440137720891938623546799334637853915453505582584933832583199403604271566595044309640569798821840143146590255489445068217472733935412304950005191835866304558349962436242187027714533314966371667057729532053221278598241297252821278312053318194285498968248904526987949346971888036397190141500476833364298798758268406071441028237942474231397522113780271074525235352152773821622997316837409025383902133007502154782225720011415885589571786920554127017519387345022913744415434502252600725852292683813789192378831436692499250975647996292432894565271720191782635942912148705705864603159487707509672266504582084203177159355447957006940737650207675486948399169209270092079008425860666777744739297848696678444612119285773069299560944013898477850269913948108850492085587660184217842611818972632460074376324787624617626591983070967664548371014795296459392906327806846056082456622084657779060316771683058722887246555249438915685575239087383159974478269903958426975668642110657774269250833724258535000244987260146615650386161416362151981959300254437651387095451357713275745006469409584155861289713284605598267599389573778155790434106154403406928582354769890377361363607862958270132656409769223323186809590985039137110528136630913902233937867947671061284525708253294866981349885286554331612893577648734752393318672110137463542766330656697211460963621612462275377854110964687811341564395466005229837202744707370178860456703662170919284209170537912535619374744376118005737084735594445898119561580829108620060248266910696741172193928492446229899556755066123326555774182591233676027130761035669567868553143207307751363710930278613815067435117419802040872720854007734505169413798806441275005055185049743386319254092685674680147155997226519530150165380735935354176351893267121902316458158752970129675565911087835043013610779792737917991951386011046554115375840814576759213521047879083122347874721304263942829710232686485020277785932482183014819631517922781314311786525985791710563619155623642073677895838967828563219476604574292508385595612202835578190620950401002275446957719722179151533707249372442271433608897886890681353819811871379909279752388481352930675103170225969204015424006155909291302451752249257595997012439268751653445372947995449865999194354247309674674770922064283929421569048482361428521768330297716160891957365303738809077765461436443794670484535929524198726018563327447002292008954172102499991249089883348452687730993911736094576823841492928920285256680113814883839905909370049277010980541048455537253693504648084525610192699280260090937491851672144289026008918419507945898719915655854844670927143703792517082882254020367716045109567833921371221737374619977299566585380659007420044655498408544663236324923950020887969120668651104183504695042381316643130681908018169124756540699310276534845047098835512444961810956576818172871590966676939272842124388834296695841162658116068417243419371187576542275377740129467867751383768196922311276543245210152139038423194623216400705196583228350989438303329265072497450983938247887808231144051689180515182958283808559596169842860468684869898339757177941165017810405134018747215584317696546090472436660862968548916343188540315294773520071378908565902914459060596162762313612868718155574572676851881549927749975359732058066408609993273643228628470595742746506744101295896978973457963817412065433768541703245503977221497583701104592142522661739098793015035667735669313350357485264469855805341234711822019986256967052656661867418732551894443640855813549221737982202521167078761558405836327371611287606192258756858376068094837153261125327223042725384422451578268127010689335176179461721238405186815729171168201838235708915216232897257572474071377532658489959117331150062509606708335196762149852880721064525557571651694628797382465815047971086375042281451762561662543327292537856196042007473328548162374787103764189756137292333158316831057987246958513123487243899127331917741611742999028119847344008427634794834392525506599063114116370660799196513442919882309869918618202872984101405735069625211788424409514463138771877339924004909021255424437148245652612651190751162096066238192419116654580696846756477460470786953657449611001698583799359145731029476154513492571820964891911873176159629489528514423494860809098919231673399549224992863404283996335509538627062880540460325474555467557166610632017566501948471183984936700792732474871187425303529752991873329284316503211539590382498316584231922287303197898982644315971435976572797631183048004388479636012716999589153079775613524201063678299142396888059991083350824723460934559174154182959207697659765665128935409229703503124584682501428106542142401153231296271285981796296938009452713737117636794735319416915468588897782972836750391412516426431265444394348482606678136512282771939875482465607842982081492648229085645822978262003719039108218566665874175349040962653874616820643321505230095896969545050954993448254361941856448965917950112349707278168180155422488671494048800388720952383788409211950256812568749120727121618466121819605962637764498995206068067103697476475782157245918908894676925608251415782096230799990407144375301073883083831518826695958133902175358124730108130980350466694896971864555110179401523681247383985221530766943139421188660936174426515079936479832063927247848131208675492956262452718966110337317188595038310456247745376075343170210643274683068318046700497594866299429709309208602595183152139084784791108127141205451719440302581580096107123496029406895845618873551945567302912547318462503718355509673966738568604180243788029397201454953616795883412984231751208867291337144627284361471916834221807243982988799509981806281888642645019788507783876737273584798096711534426049954644647292614060921244286986240877960168800672849131216891037926298974908373492067175495386747055172131912991843124876423100494754018246447913254335577666957270484079428647625507436653090679304140836399442376612431383194293191845493623727024907190934254695543286189592331536751774634519093840651486714669980280816171595189275993291242045309248111558121306487555183547638801356943954484917873378269647285427180033036033681665253900750018656891480695939656760212834018908233957557200879774937066100472587661565322798531470027923025066307774556736844368882250813961290669520082140951447945761304968440782919899060200345193160646265257917670722489719913694961461492556981992729086819559686244597393094513630681651745012643252641402429378222683641412391485841137454636683818220413213968505107882393476140329810287252961019718474926353192313235764249286839921995707206672158412996969740279772782370915427726445900665364003011007544935207487432039383698880774085941207983329921538616239845119140175481727067541756910792748746099942419936896628146267865684076003699921557110184349902564842285653561044914475833247663571565471685679908970781893077840346508928151201006734002129147351218478000391539532644626258670148659376180035859584146532861712642706220488836678844124445584271516067329340953485829821971106290284248578453538414635711231234839719672285194018889848485809227141450970533734586826471693650200345325906799036267209977234035426876321006782206286641448047176915764215836693699959105154446132134354115936852011185939032088221305624550603628947266741655524023626239755672955420334861523549123183690981185643838103404078327266352692133352651789397573947600818172526931887276572402481707562363739957196179624013084470989803440362688865695705897594435664484228500216620384047048825463855837144599425539828996698624970904323556544028116319946628622594241976144997836049207388389313006877564264841196448989194821726647845548274182040667265902188962834188372614490598965689639432507687259524700289210653675194222645450255712748909846484845274417251325744592293788142113898991910533707813160923944728076969937098619151752325273276762108225553767201547699903191798738141184152063322308395008961851530493335437818874004248283020992534861585526222660556444384904344124616463983361826858297829742897879960480453276920035916220538288754248776468679026458247246375374457964459043607702730008214673284357216522999998511947187974377950234588422442447927891671981727411951428898355073483803506970230158281807701111668060097190846942268748386510267343656613346263451417877303768082557670992787548015627223679781101550384866883913973973073302027187608385115715418945239561774737257348115425968318678456156775851541374629269606621310983883095400297695099423194343545340212199154832198656779970359506392579344984144153831537810965134596326698353683794930280996233054006285905856416768270728659141186842508140333605307481599173989979247955520110606407645729165943550083319269560077503856454825095207059032003776174508534878581004283488726703650823912498299974765068026960632282164689896020406607385992890684665446707939786314881049088406978711850780197857204971354891442334547354544716812999118134099998589105226461592738154131956323943550535024599239889484603269029057705494166272758726899171624797407943736123416516205340922318032887979606298030895321203303210263287518822028434525854885930519232163923336645071910220346682815363265740239781298786851788306226751120183128608066893953481224636713729617814022534349303818865107281457415937658153246615985795331985704975195639827789897321923643936274775235191878400616862291923405255420939753882626333272053622808227460060847592425668202345923518350096914575814622517424298874581564393342307122538114256071574208348522539875325139587474158257585431526273279156255737847800243493603666320937796669053048454880489340646993193367683057171929179928986629964089631904477454790129092021164335780360654602629909397053692833053807526628873028254092267442177648193637577743341334985538237584371064674807705197457820309425064231222487108021917815866751150194971330833816441966878380269766668024439288472423876936881588607366538704587681452532590747790951631636633173291490814275263160574151270630425554249433434799135767824346562956377830162859022723820498539979155489086217294049461548185698327151223993689450954761061719940170140471255928475059561289400567211130591275755551121913932803895737054117223540446869269694207651977073747814264732804495019106674610431452488894315361271673783552446502312617057642413255523018901432132063492348664734205632973977446388523158814138181229775530420645670543861887512121334744790043066306739369987484372227143566281263066423629835854522424309677870591320893251777998235427176802086655813065200187265715423130108423579991804137090833987493085311135257887888615510832090388109171129465005807195070012388991693135943545156030778134674697999112875784202259633573644610701945766653279083689536721784007426672581008307767004866530628388518145025751242018111125382185864328864337346600211124985950051874874481877916217137788333313654029266271395020277590588904284297003615051692027054167813187277227264322866743886807394950465455519547435034102593211914613654668487634511670432639281101848190609985913280070227640157355001023327030684858600561819824048041077343520205760106459110064930093141150064248199918713134458822137277947401596461020196029240313846687259667230956838127801818482451881133313263184599306137262527038753119363213875892290045763566345944767494459246787236175645898688909761895320420767202222681665190752069567047620543872098981679660254225142136272304753472002795935777054816561607829976155605536367571424580467903571397193638217884003334954218352587881913641312991532046221811247976671373741649925950836669287702226711416043962941863469370786760248055688159268247516332664353027200141637148090596205623057990533341201464611574499889790038128986384588318295147354115450985132307252345357399130038460578293776219315416266881323451485561111928616859312167154132403780851230620428329365559897596268909502814507981087384047861877988764564980626704388089970535745134226555760856002166571796124222754303604193804848850433536776799820693665411068497778406790975639348487483949741955161148524715650432490702959500589005359702891410141806164415761470997091717092689825658973935437514450293147094980756212395875056605338617125962275216572702552569591808880599293463359942682320478078335375025865821260544322465673982444554999401225772182599311480281176306587811824415211656220572332133070758779850401377980791486170480005993525691230023238764315890784690871869074943247721841798784836037406940690612601804780607734203573792813732864673831967837647937959632010163601628285754423945826690187380003342233620988651819483913347979710768219009303054782215645958708098733611577428818451633875349690240692524680952018911525049346184585961821059665839753421647634748900806605810050037683741960949414932533158602446609122972956241581798716463441766893581590709393796506269918834003491313351683790192862705115866156701265099222955456967367653578730622670972321531672822315897387935375745962393893502622356656595034218642279070383888849346850358472198086138569396568033112086423290970772133627666352506382736961064173106480300772135124927536265579592236088553229565588642071662449444501016782309461160115803991888379772484800956666789973853153063081553259580842039197907527028988734260396932169517614683464707054841380703172564544888301853148076827967676655248318368611022806032051766747304907528298331810723215575560068271281327263754075246487942247378358210932902134208005364952409768702258768772617434980809736121520715679257423887188788396969040909591088633371563564949120453234681406600895604535104805483560126523254119550645676109245541612881647275417740459514978305537886921974820980845649681440692257942722765608110391736964370909648385809782154511312691815783075846620047048073791363233916528547630214095919361543835691505239374212082109608508800276786690752155365814216605380761418672258762038749962131302661428336823999555223127809760689318205451813482676520569470594386024788089574240373684312009641272841731570312151719098127729590165399930285630837210238594250051176648358706445076362844867558910860558974872693184963727233391118578160717885185453652083488324644398412040620263270488549922306132515675817238581779922378892644033806187362640043766204073832136434592521026639491498066345676845374558323403725635810101471541795401861562865223577762863641619110068938474024883859699140340042224100747765506864008760630173629801209141615648213849903484455321075407753281320062496431222141148924973928193805194496496981768559472798883097347868619042879133299240009232430615187249921693287741856162970121921743340132677099919243568781833473319639220444935761070871422838658031556254675983388657320061351958899425509440490903589335680210401845286898114265170560980864856670390077024405665604044232004506230250167377792552205660878792999731785354906755576439663400710390277069727028581956742808768551303770611096130681402029561988126278212501225282989051987271471082245059538792649968239716767999753253664659492857958149134375598959386567765537372687181172795802550073389895583135422419223067515196592983376794986892503188595204680988867996484714529123355752619274282182675501172635454039035081602924330165025123553069078892693705412810353075183160666089017126068359332365602683873096461573996348214726159132040917409714561583805353187027914411638197086723930819721544636954190459770269512949497514305515536291856853558996844225288067111604165117212127306115159789871798080496496356884230317168021932285488119868257724097869849540884460020904068724075829950486552839699536019427216463221609959001553392592298723484009517459029950792192066004837309654857238609696120082420473019223515900699643024984908831057584788201013358758025318515302045072399040673258955377173897686348026634438873547772791111292779568568994111604248018135800079673598302706842077073965946300820847862472691026605297739029697490912891004408290570445426298303025018717299152771983173391375231943393292916870364349494200507357411558065420673926806001214693470116057284619531721912662199945700273990814243033092541503640790477586564457355638088351424607582644791706095663176643259281356957452963891487598711545954120308091091736961704634513011628911522037221845206843395631431579842998198656244049836128306897164111336025527014895141501515191001578025199714296725978168624237543192525518972064785558396082143165415663360277500915329764999499455952696392521198923570113432766224915710253291711337696158897930229512617210957242842033216022965511436198351644554065283046469675970317054150286474225841251563953707541657581516844687366111494490912601902143124464081040002659640198780603763111181000672932826852114727214817356448563189603780544381218345658628641170356099411255066357998944824554815021857108292738741086833190486858257244356441631331452854085122622710700343619823934588692439672692560663264669847206371572361126906996381949438846557645292276241069758109412606400217375600019941216080995574350910689413736326064757304854476386298452652821922514711453079454332235188393208463649934921598500605811902723883676613496171443305921963382541679183142052357230987407101033584355434157734375718348424929936983958759395052979502999596506241740794663181806022767711969845738812436989454522382177307999374366140700297323919150500159364117986715830481883957826658104848983142479103774361148699726047153904232663569052588500668231601156685386007368699844561145526737425778624939854316602803311573458228000026759292710976054278172169991500446157864363406674572166264235086966282249495999512155488227737241767638806945718390737777407033049477413245292833317701087484911671387854585049498869477991892518746119422570054427209263298645108587771539159727046389694954771880814854592006267943596105165297599397848784868968419579096988909623369175377898375476203606719979361704411210593088964475861855302427653619335150202813253550243309503803072048245164248416103966083153029517240898420731481002943283420560972744049861490766337617724506569888153260878839077856994886077290756638632589049473500571341866160489815989735218883368605506189051322446839577661121206856613409207706622514902552910261621234733864787350083542833835415784887242063971764504525959498380155972832457806755517162872839576852709039349950369070671892967327830588634359074656677036617300452321096268981330730889803021998004265758166289748709846324668673357072822749364614206812156057191639032284136363749851366311863697738617018632885313385861385952320613570891472805432988405662058368815418335392666519387457645405672595261029667820496231725449560746879103792042151990080215608461367763409428905131873338584294699586056800176851354333540615075470831510236644010560902594596182126646344414370888119149330279507526649715301869787059463341819968838344113134175925098279241189829406789830901115598121185406999515152612583093954290327229392016547136711862256735596536495102490417303001175853689207724759083827984772536978352317549715499326548701154803085488613449943387654027871854513087314242533060475638276212152302167205049930131043194432071139074679581127711832703981617352737983540994677537306965133730829209647788200620697245730565065519880546087203693202488695748149860353680593547566593647431654106940568113900773867248628547056173587460604100354091499029707460101393112379717507434798861740382588528105616647920309990113296387575140961553163514560122280653776919975586974558740837784891850695181617661816554090661941294676131457702198296730265379144746911733868405145701256446760293252716599131442888048080483308368079728042314680748914945485980392396493932508440907456779612092654803630784796468708165623706826295369725951125049984096900651479152502692392568850880046302606830266557187328303163672822245639828792296305588993502211221990504740677057919468735905331021745311589819164410614876778246104616842896790271178290131050620164211000400835698207783011539930264173304482568609522320796724424913527743335002778143252970643161250916576409699327925596468869027443963428416176464552044073930430800492648453315215423740204509822479690193521257725220974870823821573698048246342312071350160988271310703110243010637564065148365553274427230809845725085082905773398448575816991256326401785865073678009236395529200136367133045386783233637284331732729195298549352126489191060710600568233365162929332958421826827570336591960466395880006121024523575978368404007388533613922324557289403645203422266627112630682646089531024841460257870973128330877684420275330663301158836518225752919841583082700014555427357103944698784058395479123867536772145070757680814361117675183673295703044114666549023395172687700743019881008604943798162759742373769010367389158613688034285796656254143776721775418925887882017729114748873716337068691999621241565340870891125437118657248788953842915410246467062573095826222199675117918888702622675972280162466211205008907633811144906425383261795258255930505692533789025188759808223263640918757337033776209370456658349185003181330497723493503950115682313654314527560181815268532660946933654735234774266185318016918125499289151331747171046609779142669292932386462016366899163555703688802709555778819325804411658759133280303720801150073666665597733853101492722969544766826359406412882813711442176433865119800917350154665887641804013417089548620200171284098968959098876632837354635997552105375952406389855500093629340667259280535475226866543642204640322406927530630464026312119167701132692742520974684658797277855549931912569356805501974718169902825958243059627848853673131303956037693048597313832108673483901070130522683120163625386782387195197253551921973229857606302479207032710451799609916334308688222548502568673767603484859015442879493423148629095054261506314358161958227939301288465646614592665588053499553117871222704602974086417044328978334152591972722832299530682060965398289097579367548461359192457460501710488681195267955001336961192817886600831481272098004382911353469830707429827429597918962289298622229586580865938663920992887593099670147793747401197904296247093133297106533789800798539133757838798243711259953242244362664285311048856181392597446315434255613845877048471561234525222907298382303706800902631302247419765219425818128316298531395833897296334934907304790347131731458688936365794382337542875879522289795133745699390485448083324079996883078063651567029043648977007164612708129212034593749982696402715678512221481867746509566828874610849532123089583567801421739977828615529630729360751093582051687146033713761770830556367752576227912581621453183406110977275216314126041083973967645320328963360080315885275663321501723463883800411496036062820540120241595606477806034834714175522472180989241750528549825450470250971076178049681220939633930007835447614232414620094511634015920434045071269706944864349533776174531445150179487068897603959585585212106833864919764240731454441644725571444386701530771655548097244915579821532373559309934022199808578022345367043789027125814388472800396829497511224620309262518980617273355011444323181871916442873139178863432237384961943143823035478733851250701984103984507657837058651817395419515654736209051475965745553293326778208877105252673051362839851732301409925701324476994696461915171547630586128629044402174048071013560363788834173580184335359539288149695324372885737276492960846143398164240125760383885387029490606353632413991952781417750449114767301916050518919536513836138252865695988773272758153741066225954614568624271774907676031710564224389639616707739537995072742168062603311162656674224809563692208040387474501541530832319157520543855431120489732642124233948885071599774633880452244246343687118243948113367757823936311690370875952907809216786087885876662650548752670867695984631678611499396901946502731496037650596963927845011418164821464827849546570284996368850291158315640808995967003630038650776949169618665884617474857536400339219982361412991139293010443637050944544209009099724726185315775677483398742059638916280754361969854870907092496163090744400255069126732035249527877738996459173866748684037025901837520168439127456357157880034804828023809186064722010038906694263504405776841400151285527396606112890996843112184001162663189593533379933146170704860354940574006173888194543663231474033739884797343600086950767161102736207962554917678860966745931981711364901731338732076957140814535543469109438638561425576438030546869397348536049081748709653724713404934421061107026999664152738705861246394843734058512433143779178249512654428782959701945628896225381315922679915962144836196102732617625782651732328013554870015696388785071036577975255632177857378576417330118512254456843524975311660999200864476128039894838844203837758170656629858011952888832036762382711171028069190462419908358959626613561935552964825646117427841763994026124256839786719792726759652234055838123842724918024622574785758748845723755508362067744781656182744795231231035929105404415058280683823216945459062726081076454654464212627064012271079966152766119430387333434337586510143282421719132008173740149954484949757959889429922414567177989286513889119322651852631943211896409821174490130827547219906072019146693683112522709733414750276005308598364682740006247961154312850817984950656485522455652752644548523453770833436194133937020396926380937225260472979575006609151992402398351560795175424503494848226371907305140279858382216485343128089321020866375382180972566189396662063663549253813381890448986968121629007561598821221551872407265729546590750021119907573393726465924987441586380948713687876658984716595314715224943603710615880515888720809421824983571675462691145627904798717818424532152738687365024052690032658749261750781291617646897510133976159382173660988364723056480511210600264863274352110466609079397193363546587999707946520987160758984583950764291227121017145621811031927062891179960285960526393540337968256514156168404764395514480979693624361235620503522548845179935629665296749303889178782991880323922835338276745389517321520129030090077190784283693106410279668397700632574844829253870434034955212419655487734317087181225606654559496444349813678107777399378925663326236839723926245927216120614779844082612903194136068908809622004846658544920311508037193735875677858672906399841222632237089422398613058682752398412108488366763474396127810718377687316313757153724618914921416405858018688398202945236853947041086234013214515371418080657835388572640839969251810096080590814919486756842732720577145782985537398445477877990390995830947250706507110078764613365651632116611602315695235545080969805810986087354269656297638408770586569645273126436514723409597268758972656490297784441596639361723081730973974991848426306562642774141926152040358729670580153280010463907765097015634667813789778757461944810838905802597813105818232454590650876990952415278952554940962889123666988990353377726717135456453158066805644614937115300012016877033002654188875823590755661545846370735043567311864732982114884023525692309723227645943936091755862598340318832217419327213500258137363926725007224313421936997716291895436266828490113217698306516689397913916103855647643856052704199732969611867410864996807753710298700468086497615565924145223711596646553543704950394223936067283287333376500731523109119887651446564625332982469956724341233332338278533725231862924961477694866001620862134759652706503043625540674305105901298242040831229662962716084683610990620950807386192369784961177762973553806795798685985720107315938758901445399292095686604817536095882640107060890627266225653967323276998554246742145142131445922942216824988008803988753528012826075044707355671456814234030548929440559738576075704716200987990886973401691064831766159383072303213330765187977380901315316546759745810622241607283245227706716095225517492494356796799968152238996793351813619575214873037728975690763534734263886928848390832673855693082404488396454203309739087273949188578583355773030444782761749050589383637728447605454194230000141033898327530436013948460316990892929595488404046279464385656869371793073841506650679879448592681617614141147224566595458557099391648824728165610459579709567003531562884934605634450995927655017572990685871788666747843719629067141851985536288961479189170635623812024799149123223467133214371480036756197900133551240098107648363691822882153047757944596463157745470077051973302864338871193789624236412221054892412862182685054634531836934432192637040217847081404859873641232769311206351415301099901924209422971460782206264230346474930739856110407286352093795078190769046546688875440468752207412737568620264747301638884127467784593146691983608846247244638444189419501561154963438790859462233934182754583611610193835788469168473958583416368685361079956499142569770500091780061117014769819519351364974604306380838091274804409748865718681554228443790707525188789007259939380234273871328110481108310688804693326629795019565213810056522933540220913600074421143170984043565089595142411242311851525722903346789982808166434303104687346103471629101607222335592750591676231832026351005409361761607096680799189087331702541161620734276578954214936116645407247724946704630737959803866519287696810648290419792981819223975954947345785295621848174650281660182176425878509332208115213924497434692028943631465228899815966912436933045749471287239596552679067571430244278157833013763499973156817569934427197496368850360746881745310010536117191166391401346705383327157595396462824766965451823949481166259458226190524380480681059073099243275529452843545709639404508549667012996196657759748013004867521965430403749215445450800936228826082577877648800033309221102126299348445324761370244921212296029586602418305276840231731112040468086737026643498238485344554987985677938810761586282100503558347717598217035320695303334740930684466315672095706463228261672151929204917934096133003722983758094451658735208782856045346828542828909982105052548105097016746125719109294450469655805515042038083264085380498990589393245682913175714230207384195586591675251871608504832827409771397561276371078850176972505447102729224249326171248899090866588883573414425014063750282879858045058955395584310826209989211694481521438427375960062943033703737623426147260431832957442543470606086917430482008045755534090639607123419356201917881865634032582463818622018475082310050396372704800556141076774908927230571611226746799960951276509410338082848169000867176593409259710261513106443994754452970677239488657962937257104537242911973226576687143657736921937580536362626560913848904611066720820657022517250220591841323444454819997230644327105564138761749112945773432185070205387008637115762449644918249327956862915625737205170704122815159942656384003349015466850809569812210222206260511428003200336956983263000696988360627723179978782476970862782165969600831527168924334366680855597784401437049266714842227738848047590909550401336778032365068358561847022235612115861944402555007459422577347643509673514866513073883093893066464862839817770676721438924143359510573935149745404144358894975477995721197693796798984635283378565121204093074440266435515837415887668441728446572972054540238624610457353359634062825128484556687438087905324820047106111874069720435776313032133532903498475607695406879266729312372814437826161450588922248419660237044659986827415686316230481152414623885804614341064035909921928766467582340013260961277361667802763123574181141540704722029907063025519112001191157243585309568227023040556386487403325152892304136409005750787188209997550623615965321584033422225731989473522144304417316918018915434129175795666134635830982307926456705971562468072476202673624014769881161220736775743387718462261565068721594754838232447865616542396798839090539380423720224822953729718966171541459333059267412019553607127765729423473462310746568937310748517191820136684875052288462418229895754710490328725034042360975631895204138166838389947320790793168907238409181502796930403750431934929566623595747200549636743863787969982124158143176874865640164147039320818284576107596572772117260996472800772135284284317485059926570761246965159483240641193423346473590562456621973114732942082016949860281971850001201323637182586876667523064198115890981067676453826509079919537080695413392925256681834823645649497943082464411152924641823342534110448238240727187827256637163429693575388547296044491725966046803061794798663745807199370233189337031958553702814377584976801905957128324025103430359933215513347723008828930880419493005170914113310652552336025239969222551228709453186975604610274839441754121273679735623991551781392356699593809256720322574913350941160856621473398738755954183589758604961644779420442315308520686372486184956272009966722774859442311462225658711807967018373728935342997731251219864602331794392267813104159337423010335648122933304949022554072627577873853444806161806678666365763040304833076798925414371540504122690598254653818259153242507678097911920216101688011350704355328253843791871231180400779926099262899247102968995813184597205027135848477843486063343632762455074396917308060062431309500347329274423104380549608740237171601616734464635635658676972984572315495001214579284023679115086509085094819503007873506738670934446087810352171268928476658880007366704474275293037656411739935191460297051983503927144848045724313542126361050722695349318002685615997620723235515714160868455265099128246153582528972474029887807920060927443455315579336736540699771841163476516145636717900088480587424541886302666792007991245427704984344820546104748427079002457042838241768390150390825999533066393676520953145004008901353521337494729206302350551829345452234718977517945836638082918120298246850028177659896583514902273044376572696728865950510083042573182144021443906328907338837611003270157140491403440034876491955612881385678453147248642721348766471792088821639864088075139490731617731512169492813961016898008103708931889612117528733345192917680211899122171608819291542013743954357440750444970357256869752987494620474774552320486758828581763844179435736989825967931684578384698518625695042487768883776424856921702081734475202617868595397290342573096037228606653227235516231493884311906332379615333010267696202893272290539273741785292067356313832076947083648799826791536974377246244711205358815190469403647903304072845697396085699624494502809118693204417234643292295618489639641191954661848736784384191671089361796604790627766399615354273453637785694087794893831278607696712824603495522517656559080117405559764326136567296905422177863076512478839154254415085100270384165923689698589126100561896740973746205976883250827335349751456498936620463910028456465501064799225364575970882308066300936701300788673788614216700598961350434081974204967396363933624582788990084521234015995881285649469882998535289034112676311070564257780217547842342536407521244728841228839300363633594449665463747087517139107009541306957877440406720950068885587690377616393023588977691448306757337801796277007752217924109226271996437437454986472608114455741389468942173061504224457910152227830348797685768290628441963687908743116465382111764611510984167511851448185908265626941721141855563283190826625936754780049348287209673583937829851471766576323984958095439805353163108443524312955644530990510367642377714797845985710181719056734972972511664654096633879775117628873640800490052709025808299344725546562066329702132379006709983518471539488786817491993549650905015269164416916124759707541173169986935522345110105836004093432968270796416162974628626468260931437262781978625638239222129176045072084742697298616352929314623584440277578786406256716166797526667924125657237831891018999407302546571188824844774716909851169609071379348867090452993887757381432606109402286809904100581134084248224358374691218657733071009641634975135071861616994825957442422609649390933741608260471295484001946494032900822181156650794509642736774408991210111533425878866698873842624729418918910300003650673712430343727248405817015866252566856050677594442154291452413195921764504612091410297898212266896346749500596645715301541906603549284033625261544553661439814279904711393216555538654410987815500906038332748206447290908370897014681152454137949355088903398444827301659287108479294252045894099667273436377966352406814177260958616938491240075574877901838412298921686262966696043515105540734499043274452288986669396987156639774700754410837068613038082447098571729405438933910894498864582575089672338811665929616219794181193201217470339732796279180121496227957741710945017802945542631946130016912042761498955044531748081632804371129601250435811653728557874821880189617669677818050390307620064112207013239302257286297772744543754410546399660784406123494458940037139942605479965562738107538299773239254956718386891610182108699758984749546653782821876011829135520329647420206844906724502186079085456845292734494189513430730873557740622023069422795284822537872745674065729680180821591932446125143313990960363752592519346481053935900820418097242774293526483981396708952799535133606375908456534986716620083510412931391616084309141538768984832323397748008079164473635749264544172798134943433628682382726450581704069476987325966210362323100609748837333024751149977953984858895037871754744429524723022023402464832482193912253141374425618296340612873043150299941154920227584758006569646471342614354886470789257321244752044467068816606436203557947605240971324288516424083332791849106108204689018844438970975471288100798613456963763159346578229038643668147688078884425227484473406617614452686766421663233171795247199335971580626130861053731002194738534158059093680765432663999705539415474861400249645575365380481040638856100961446117202030042037917210836277396159103298358541559268915086176702095723249566557920576566915662451047357464318757148391521525560594023291528090935455152079199817173808211928620202354538690913360041530133732041431337191282465416612446348581442433580830840853811570597265291835346819867699637440237489667903167189277013070040014945770535506334886540870474535566700930103899386258843752794412518891543103608019116277445923341931133098130869439840904343160965050714509683599218370159585526459543994776105669718425682980744487754744497373548589775664972970871954079912958445556241818769443092980985465190872927254639241221126745430738833951928498622962190651798748889737182162552952228466521723426476801963751648920843477367980126629373005424728463203367858316089128626271788789507756762993613443296154024474125033333995465927407591123454112050831993506923480681526932830757162827634493206744691391632391764262477818825726866741956873643515370219764225603375249809442622071168133454416093640182751522334878441764346950999885556095544852574541697623830669716566483233174698388631538867752769110210586212175340649228520367731494258007160638462774160784898090649344374777969854751176475028299395113519150806411211455263326500370008772644950734162944620924382783057605923913348343645521284654891818661258205970628634329351403660733941530238910949887725571835709365438074759416983047854776439961154816687816809544991142467790849290467971019408564664353682490572121522732972181391866078610808304465287803540967724457985197461138877183231623432396373447936097027131666690804881817059675512664584050245893245827303922587504357181932651934592297899049272247610986231973518214974144573048265178987629572128520574793750306206866261340834022547141149707480565943030142480672104522304496136707377387609646522050869922731792354030882968001356642479146452617461302754936783449005107663278325404566670323792629824036958497660073748991149380986532709322442710124829899012514956689690291055447265931006924104965440989095029007035679062447591740301352964453772682724889468145540242902282198773446591255119613931804769832543654134484632255531068332085987820637530521549122272066330288349692502170223708111125144169698826212886910618748254671006653514840498148089436881280810071439722819506800723884496977424164594202987949034737087780084852052614115801713353833440147134517099549514440534350248739564081725558564645667964732120783449110990194789496869798858300205679859475695806148418453841476257734563465512291186329962039848803302459226439464402001521577862542601175593721644496631934501580447559097231230284192371199712214876670218020849290951589456149122356002627955446619214909642477438588267019268506534105812775504166948859225970688952097668605299118192683647826727544045809897873079108594291605040327425415358696976833900218344940836721634373525303604652171168701680367328250335578500501227172288478753632513510859481106404562661448405344347007525866113607670874173784719015950444210013431225842459056765372825731893506402193138368805775452501057687819219421658345314270478302540330617726532346901665666486957712887823239238215381588351766211202550248952174334127621482388672621756353694168897169942657307575892233239934914923861984024031120557062857546219158236000122216903724442494072160143907913686536400788195784652368724694059766614675698103814800214197198380937326356586769663660106826611451379534883300711476399900552256386477848980350778925362248160793333116915640015538112304685185507578282639707029263237486795988902133220519973514366597634387772438345302118262945685250082260384196163041153634491589156980705654423433350064030794523645465141092470603466252171989109653861097354822918760867221357122900843479974288934469753379748038920423890809947270224502108281279611720919788947060048994481990710215686734474346853303063552883068339789370052896039063062528697527474770082999329367112401412514606963776226543648382382881924338179955546741604584199366222125851209390190563627758682637611251305461812723329043532117126982807856749477902453328098673458428180833784283353710069982484584022697460230123261795622847660420497672660780491265700259895820780175919895520939618813215044318541191911609589405960748194921712476928592704851544771616226394633665689727329677249753664602634767204132366478112436181733441412896504052152151475118850970549064084092596742253138751431927070433194079013493987610063981747424931762333917213254306290137134336219446282830020300251458498379601590229613957238509541111285198576869054616050687171383371234837277190511299907489630023365048332356774494457679463496726380312154862904607497678764868479860596950320622198752190851199927440522192640075583812466817158670120420468247800794643174482032126804041644604682173079289425488136203724240874807284541702688464245765532669360947678832658786204331172195705787305596745502163266324181911660998010998153525780978508626227507000318968388089723624539796356074493964533241621043528017841012880201947544378332749489988431395073163994187463188714393633212288648421067980970591498627707359833417628246288472460671246285204992334704618939482670323434322032271144155010177332207051185008849985508581848505222918527729583520069495922869836134266089668123052502095629510255087921648678830897393689775773369437568940445105636502185784843509516537681215513797619958482423616776167446601569276400053048557287244613398334246151640290920953496669565176275790920098728707064859724123060895914642898252024706774520759507151754157934380246182685390818070436773425334112556612603763598407155757488918290876211932813951295996990196602932430329321147449092697453558336055893566412767620617744266560535300840480805178966015259474937901726643286402643404291872003489895192327403201172430821001487064555239531277709132248375972419717933173312153042300481238584093021762042227951682162329149897346748488892451446083639652274633306729008796753920274776074662895863510380321251978643475406490839490526458294164295058729399127757432327366872872069256343839869999958672602211497982000568002905429290814339692458581636432016872545323403728847104779032534855152001028743327670333301238247088615831727407728645681769913405823759756728278095019235273769147985124687335914274842025154255351591992050571783930272196889763823613589236554253774982333684329666307356028269447745998152035588989275359029401812491854256396585050003858053330905845581998383813639939730933714068308983880496682974203001715473750190323143488106890960856168467762393334771141390191594370492814252544843033475706445087947731667239302110282658069218291847609524929780467930711034021832928963715463605978219293013941420507238714760944573527925339620607547419457468612468483233088473579677181127408019885962213148702039430742225464513345903316529581604469612727115377822104909133847940440456564740612731269288979588644363721684062552693877719472425610285262484813807185912272228042314889437515994105961264456032029527949814562036953219520408873557222442108893221655171715818267723838866474567630883545540369589538814992742263470265227607327285174916511390132281027142321789168899211660380485015002873900990693050214804184307598678318384301331833880658320062844880226986921981742374273441270492435886458698624830140371158451739332465127753814507382704151583836538923988738783216857260082090256650319144355546796580953721112970143813116981325359167346448593115680016066462257633358683361725895657714402299685563718939045092813654168247729402630288540490810545360004725542773786159188017686560669474019493126823609050095221438715932247406933752574565127931362081970978876355184284038940016823703327105241247749081234903051794646066570485801475591973173069793089407941458257890977538468254168744723161000457995644448912656275381192017013611256767044947597333807451857323463459759628857220709648472007121760190416379095687492526963661107430129894370772873208345127756673227790070265993854054227256009895425327827476096980908455134662249530933001790052033143943417995226993586797015144226632528537424316091137860840503162472577270918782171252338955448296554850043014352085333137746655284010235481446774566334639882009203111982996969967292064488259773134008198029631479783900627845293921965084344411674499190299474469945856692400653492452820384222378318091340447729534360893661734046203631638635671113554496079692015701513857626227999541816545092480321456978085425495492969009587797307518502050034588222662503351366019691962765192057600257364888765706746976947378506178678158056170217248385695124023895060681878308671574833359899540834817702324180507219561955102944357130856905204027731176590257086786852697900842888175306992004860431319478115791457782246945996673999335085750818380704802725358951479707855878927693260761524026537173897162083371610363263863210775243271956752351311561887921076701180664787248252669692539378742624362863873431134788367369023106357767144369115155797002500996473311022650268404560591157450900472406202951170809611202947741512287641562959909940157619571255485302237911504225987555044245949375207423723973955707454466147445245731027374921986464499392663121159442975087258180167281137720239884326995917148178403508029803964025251409215021792562059145330022041661253524848782198576471483148718953216598662703245350034977149803954824747011694012831434901514691343497969231144846219263786563020514448623369527353342534988660602324174111739361104561120747902170947974772839202084240974765870203965812488785049107684303747453737848593890950792293496191646111064852823226820059690193288797827567040805419066609093631668838308013903698440967739532338277151573359753539920085877660331312273432546399236570431836952503734398605540409321888869693812811150397853873302056615901091743387216926029052764437908488890338017358262903316261998152232405245018087963874664513974448716450552904447493684794979178687793013230369711136923028665281977185260527745710154579813397793836339210553208139389952760195400603415498250920146390197090419035859225281628250653248235040903156060818606203858974476103118386821272392766245500492628238723263902151536311346847807751605483277538662609488390344726587162406859079182760618310299808090419435445672370253604155475239262819666185843653424701139335623292560251576003143631130400668076259700715262903959175774825763767251700655969023957129906048199276699829575879691540498258500151079243448965031978743600557967521177563382813867761978576401389456139379771965850027528239789992752111117404865759333667644441563943413712729942693246206299938449028712112997095255072394532135897027824194868585971338876302272003568250408039426211573736879948348769083315652642066959303860491729572766471139357928648751985442282909769070021065002496806796230298743561799055682554777329532058568985981862905994501301006105213517179987449705083383586168327772268337000642927683357864343278966910931854529819235613460465564941196674870809429596308262465124245955764899170232630652875298922605450439458816681198001514250093165873415904878227365026891671285840835501708005597061447832733604061917364241537997135354695152339465673164289194437108520502969280905435321114500500122754968227179371584093407903144220968997118339393638135151805033391075657570691905842026519767273919801737559702171471478550853935714124679289055431646689943342899625719758539489442622339874474154458390839886210493048244575056921010631728042300187966708197339875308668722038418611514854818448406560582098708974447490729949592828052831859827381098422408569694622610964199969650114393022202918934316919791005081606797747899970962239705785477554875323643858820142864401532807590580859025828222587788961320158315286810247522705324282379497010250374025742688960497765513534294935691523842462061373226704994449530185168182621929083661394667240233232554301547924043679708787126525335807915535917485164469962454696018672497217116241625714741725892579472727385269274396711507700365992976779727985332049637699512344951970598097642278447182629737612396103563740752012237812756798545244861642270607053822326614504920918499162732221914881777064862398369885786744215023236492799519711481812720193277180891583001752447097100521658096935323951468042954656522404336452636344597210922780055649375744744972863821567250840882290936949559168769193784642124980530246014781294768767167793988989808394901033983438926758584784042229280934490070671243652844783825453538835245868697533512998669727950021269923773020829532750404785063713870502522645767301469883274621364934965201988808652496676011267011289164258604861572248225810039648699633792349676781682189945048611024328382901892989572272323648071563467191168868340252984683243989123705673206330639583365531617239347517824015431236501002887093386408281733698161366326777113785882576160809532230165451033153754998598418575271165623809997739040948460220818073265167066384631873875423695610564879593091588117056811901506980987996073797605812195999375382270264388436591738168545787347820585901506746398364514066815632846927232987717730442877633353554853217420833252951472542842936482244629951799096614409835940008496120958608293967534586059875379758863033335219300624286517683732585539980668046313236611239813634123602858270301149031370331034845706675856817076039338409109651384921853693540231206254893955281928080104750369281644682272669311442980604067614538924502293130185827636057582582238452690989843538549105138621518257321611275984319834800394708167943297075294849990612612313480488121784307075018329183485390140235933836512429324661318200391546150600844377900651021787236768713587374352688724680056727477151202526755065250414057522851234781283759170011380960696008065549563454361193747353403951901319815157831601547038164668038448419856310276675384385756972508140775266320780738812487524379986866627273285378145691305571093713459464273453602839521848785401765079737583415694684086121743508726423557646848200610081178268442231249787439777323979518151816979429065446694851302994199568217676541995599903090959667924991039899288611379027727080375009970741390525397645578335198029834710378889999316738419991713384330502308745450350585536493100978714290900321755895386080329607065205968713179231624836037688432847468760057102476576222007577975111454765463345165253848314704968553319206643562759236132158928367759519449114048836940808399672314786890198673389330994580142638811870889734002930339599488311439619189375160947543859797692157861467557611622932598394649184701978678367554293411149978635652597192521425449906662089725500406674066587111290626501564174886540915928559037939392814673175377378850428149423673449756772790252780171196181987602617912291291436641331166658295628972297052524908620257963249943388518536338255070769149790196379183863279631815612199040139863933491758936056974061688502511677591679011822267508453637403573912199737915338373241026640510146928451101690236151060346823090155677755423753634460992566910766951818393022261794322067650424618639726321201977538962917603131251676234139206738695846324584605423249492777005801849790362968761627892866356582548287291327288078827583306235971490626701082291417073642462550376635730076449243555623883790008635448565773163289804257522133547506381292189498069755922175506805643623658940896275204224529195597054748995051621021444506512976247027838974020456440677926900612504373893953095071807060903881482598928438448735820512186903468833599409802897952394235380856513212852166045793195040551682814602613352280590423693849602824345555754807422039335801043027513009296861297662073526500969482683014721654637089220611131951227955066629557644237795993049033693652245393275395376629730003130996489137773167626910840111357326264838533121440068671068390975898439939893661406420433566027414424846007707394647556902973132244288670188824321806311790672292867631104967878381370517150982671676609524223139894427486075694619331460543420246892585521101782408309588786979875178209172791380911245301086338091507570568624416161701331384926574902295297770056866458045899754900368606237150075937072990623049650048683724756981883772247604217436890526330497910632249569438921495022785480856803718246420343468442314000114603180051034437627343891744946614199280204575653158676410220540307518073690416229086939742970276619087923879713894752790950558261886906013475816489311017503091191044358061345421088717024268159166681019343624165364448451876581641571621464070949224453616767306188344542907281970307237972620690729007298397486943391904152547455106568555259499922912403194912981621339931631621352122381807723117393199207099649721046149196267626435795776438792401663133807082564530957653942270742635901271103917045952879821158996483716315742184985440261444215141817629297329158200227488141863879179044303143102008914376670840328766641511488321361021916433241262568292917168586570073832727495126354449511230574911847565601936816437525809001571419696326649624421069661628849621886316728339305422322708591372136915545418792116640961182314430509385140037359521835018630989112554022347142640351236253230981837778033568813611532483114419133051393755801113465160229164336610454172645986133021337142983493201876456978125458117122876073975074209671149427512603214714218439865829238429872144155802249724879845693349664434529024600854079648344494344475105547726889265550254825348705988351171568361478328287409108511143358759679560261887762194422931293220375544921149830975775155018342629160782048246010416678981846080684513187251730475967043215556280240679884060955533768987605040014988698184658253748207699643792729496081516601841608212999614879882404578064733351713426528895724633709004229553915442742072482063670020915711060290852086122715354204441074449408833976659441045772294664679943629468773509563026951359303459470334393622501435388111131170396850395915747121437431517629609429957552178806446542786726728712625461720359320585436718156362961961078149557681489842145919651597924636744091100014968099386093276269949437455343095033613637279941347639404638415967712970676615346180315571368808884523028232314400621195972026925666588984053013910426996591318508851150555435796115892626541803525519131874363169919234138282262233530237658561380916581937651315519433279025902217453321918683618807402880955233931661701973593413022191691454717553964991772643184115621054402844218267863517721664108213753677097047568383630082246108851258648112820832130564861486240520551626755519404099110239769157709383547767773358208517117462997488078526938747060831340805062128904653064491666175770706507236248519384257036160760293675991769763572313689359279446320161975893161021204156308105257550909135912591194868721154497778797017841408146892576537780093054954829586633751068871875266886872031282535279951745754745889009029456856344184787712825961562054085101686201084545339661658557971538007584305335107892866099114146614451160563199721131256980394678327551523221154445747769456113238037521336497906750103250485854413656421252263670259539111025961215659384836431748912631921870413786535046915298443999228052542496089192795346222964283256666014737322957698293518999135349547257848685272514150700158988135743358631085109860772400585310984376238951771586442062881598848045157906259554617691927663550128624290391320741330682421914853162815345985992028342746605131229505478728745537336676721604703590412222194242408089009008366297859828392532378949117046272141327135110613663461534688650544977865155739386471167364603986221704162224053611077064826683728629960499174325412649870836641270704853154384039020532142944392697294621005221200630943203789369258147762139683001241984723866682435701210527791892218113723012398398407188551956091699552866482747731067137959319857854494928920968539138513389517378681134864094150846215005363883338780521150548165832516800575580124820295223226739550990698639106345060207656228553972881072396409303275796643413584739466016693512213198521705827302752647786201191016683484243575116449118267265979789329395004770120831587925222336386373323608722145743154638584244289115286217907696703975907422734973000663691895940196973891229059282677251358136014792645539210841421340173536635636429299506539007600842843743255738705153864154361914122207298850628043826367372212992527274830001688287828701890437543705799227592381258306873957293810147458654084503273615258639362925020573604223874191242893573829387257719541943874289218071590877679923042033592934410539672335488786613369501305389165981058831749183725504625612002997355502999880472392463319919702170170687189497916519313614909858174217279509577941682574787010938877708421727807034950022921629413901554056717337904000288872802121220203640588412521239687376759402189789359520068630422805830127669052656840903478902242012125628849419149677785362296172189876612352451032723101907483260719863161212736077351955602455011501446845522670046448773739155995819933864944165358445781574680232140014227645902200621939749445817486679128860351238385832735403520144659736833073635847609626891059443221968019011890005336631572119806364629805331952935894576346095576697326183753717704477558557826275420115893268924662620134277256638875981833177861752811023850222806206870885100096374763329444258918622317366800898765050347510012725192201070311402821625621833654413142637938689072657237458180107600649022133964125536271329631299596719954682679734316261866587668185864063064340950040415967062456363485300678246202623198743682702201844078412771136497020613223505631912580974350435194664495819156829275434161228669259511091895239655434402977766167761301458246865159380697869114111858838728991040428649113653364989523362033426050689186054769109164004012512790784333847908634586635751502373241775822161583864031819413423193008589012765819384802457321925000750444288754303657133092539352647998122322083434994201140146004616615134991424807275327257692026612142617842197583330350398565926897535882345295965562133443974321548786679921773380435215276006404981514884574519512257855540635621322345407760399612174542985957529228236403693004228555091049810294003097638635198856237877635362734879535691113223608900604985156873268830967919718543353244633376758542361694107042979974072542748620703842608942699737865932944242251455192673451213337469546010331586014624965586323061161120984735865966961864955147170765318140638189170631553167228513418216844274677937473656269787311452215201169395257979212775100510139443575005357572346455337085831894674003067053916371856621726166167822862503948947604846544124064051140541188980575740665898095085277200759307666476990076347963098354104893416811407953884250884034972485729878841405720281089303533105573945230943535641050774239801191115956136846329177046417465903165931360855430873661591608655511941478655734157081561523350349229649522182363661631597506508287029700555647682376115069435520553625707077795921751414852124814424675699404365328525531139209959027396600051799775456728970471138142404448430666482820685416048227638872923500073846110253383890069335345544528716321904874272943662869301639846756209078841296674160566071871355774145388658343771173498546415229627585967829771313896058058776423866719582621299960939783023178393566355674000539098556111772828239051493274937009928588234658128022407711623698244793539425820973424701371952174913870053171331069025714890332704226735056365961868434285413975936663600312551049154316199248571297301282205298853249579623911930945734042713565293023447429345453331869920985323986995455484639253305655081671388468028916130037774122682145277292046979645984619323026476744027368979998474899614472530869748875938285196414457989070091212236205195234130242286974340216950124382963097011183887756478611592527707911618636877911767275359258197310551772894442427118062128178425377151579785160648631778292942741081001289538934232246505252983063646434227471330961780733481994763107233932989935619707447290504844310152203083898634407489794145484009557156476335089202456639390332351397746296097558556192023775446680420729473123067885209149319501762792549885938084379747118925454640337095374708411819736083968737237973774938284275803787321960586491808256837886507892649037258626876782813026213127605441903458447351666969792284494472273613880829523101734036361802719569879267692932576156808909653253631849825947762020163751400765499016220880628112769362384896988303075270182667670065704402685624199138264425378064810076049637685968059208913888110078165402575213080687391233968245182733094079159408230265919754285580421749435959439344131661364466676154408635967495453437756151086589063039195281603278179541064708820596740507345766331073161814324068863044505106668049401334345469455716801680484324444512628301343032140366908125389249371070640846950054161006565127072539073072500633222764151059999855047355643854890220896218730742966334128919455915294071312821794948146158648157688320228589412927507033371819318590184206040446387374989863252429159804780945493733701048713747407600632983866749248288889905343559871088941496261968624172059655120331398773015142307360578228264002031191397891843042520149354181973982274694804272114356941168503220678051533402072777572779450101627779880489149432814118222077137187029175295856631533864169286529160875446010405389388800012000012950486016346174056584717916930689596420399676664090130504305070793733965101405155614436422250228621052244301318459772113148815896907136666227310034693948394736548786296936793005574064229139985683302841504083000923087780906442820572836893115669338147580111374845379543826439670129149393732447984214470698778507350138632356438202134871299201566311087068091202814997845650057667245812698388246197039767311962645323123898628703623000092841944845753274361321325800041769804105612792954831762143422981706817134635050242276732335786914039872196502579169151249135818400202433741660033886261264865270548723043171004581091044363249146550554675519508382051153450801489727973461247364562670262399020912929665081464505380186933236845642547779753374499579335013110039257593429475189688255534979055197763044806660619646508980266323272124408134274629663041789742011296961027115642748966879149698408166345678558642559167892373266918405616060677640172085598531555980794534645134596841340309278383016957551325996160650443019566282314325237509636380502677488517573735773926220847500483166931664820876666593550835250997093605019879034947053828936333049005210008049501808236573363131741484543766889013373410838124493031010180368951382012273384932217711487598916967271121039781807923633744380595813938867649697983734288287209766261862984310073171546831764004179259093913835017880575150491041442251473525610112022851592210544710503957806321406144932203141374426858390260527458376417991318173934714484720293968564442415773851186709097708466038459439351697494090541772782340431147920311554227486161891747618327444893595252243439838498190417879708235940054826849059798036813421537035224594064530212380344567040870705590777310810732719264861386472332115861245966874274867942274210916886327835573970668371097260557433929317312241271726562445574641394614197785611760901644240498826417129108271013859549120362635162176522119123164185854993725971478813780808933680819421270921659040453890909799782426010877645143466046795890373622596003023671120228209791485669822119828699612005880825699057170181269006734287072988609352705470035420390772007694977266545637202293579575866526391614636358605447317498054506607952890783581752065478334033588190504298812727906363504245968422214265303299045672998372230643333842945959021008103151023625724894161561946928749010492064177002377624005877659693005572006258934120800282780238651177310967568601537595930315304419160719616798869848827115619262336774700976033864382329849646980897444107373308948278058089169239578255115403896894706109972843113644762990639001441133247130644398998105391255524017974297071412634856558864182183181001761456091842142566976727963236228506183586769444293189890232674492874172875062762817694455234567439451748846889016900466323666886889111227141462186655990191614604542743748313053602697636115671595531593111036055401574476579930917479432762213857038687224416690383993002519967283007535671574106235101916411917714637214317418370000532732513818681445948057170596948411967422133775762855725313935812406578453610971734077475436393123142609512372394473511233315770020229393990708791376337132276522580392005973076613127153314593993764289240349317008208136008417163517679761254905496151417907886848150784449984154270656285711177066040441382740848371626622287310428187615793702426814722750020985984140556157942595059584222449321799423329811674787420503263854454925547719039110172967226116653819918491120759189939997307176124693919481674061359385925865319223608903719002185703094805322068678822811031717606564373852633917801301860742623844741005548740209399270254608581178779427151057468253816076996881458418968529697914310903812909352134581650000018455108066547525475213444005518994631998764444288411546150870811435674537208934150100841482232594997517511010119248127405315731029118787464479749255400019303172563603996655935573873024273093412164535171512259231444097190607095059529099848325797653457990058464365525992307916604250593913267040102553918642325832397915315814885018194999195581512565671780615077245158534172037316739232553496071063031372507870446993416551135770609859805812323029432845874432127931976507667535604327174675903798315241092013935376322496423711301374604300320771038603329462868721390527933961418207547150843006541570280600936647424426653236724113673618302987351581716573748378076560638715212556652552699294144060034965976132053810291271788569465103987375073214780360419522707795108343062728637556932663498102852224110861367892583239251834891804357914911280753877246692137571483236984097017316242768840963020593408631262389302096670199277777904729713512982109245013045783263838794628630378054919438337154531963893276479252492787546174399827213848815092834939952608250534545554154205893558859435296387779597723657745665503952780976297805884201560911486919506681149331078064366538735381720489802984934812556940429777027454534786456631249032329980418254419722750244791392052291446542667347712243637875792156789272643274818230567478074041669784154528837895756950454765981677560044653436247989361973360073234288707881358396029890959524268761823293155120714025927472491412805852394841180108867926404287399850448491219983061790615471074923051522398957475751122269956636895621826273775946917028727629044519659195316575156691397735662569932390045309589391093897507688103905459513403464678310254507083034064935384743554380818746360253258007835571932358436284686361988554103430551355831301472798057320437644922338420123880179597497270947023298953547283844450829841462859115813093315255912468280916383329438490917382731662865408853784068541130908832492764642036094144674895726852938568284622889434044209153413322236230373688046852127180965157628374129588962579587593385888484846634927021006864630758896309160642369190108691705808558161727303234203134096157951676934475887571357392130204936192919673926101572919996267085257835672866174620183965153719798057902991842407925053437414728430957487601139066577522709055872231307455555756389357367738426903115081928052101593231300344372555329367350651274145579164831944918698482946882701697905021776168430247627410934715505050507212914992463626471230190352525303264444383884996025116247941933859349452137202892361681336491578691955191907956731621021268501228495304971747491410723733312046013113226321108346318043605383752060905069941144950790991596157204188900226976647759380080788968164903768658342607270787125039798663281098346144050217890520463401759961809606553920530518162163657304528268289376154924886156596412123424477551104103294479738096024487322404115867947395038916277219458478927073969838357977715665362217741174995874149566049306136519657242096469437758279744858764403828801284779382623800852561896304900448325100783820573909594347754507916764250713334878118060705263891454041899053329663580162968373162159853265715376483069139322950914103049052102150831566031672875412990578653704958765505785253811372538129206138902617484921097279632466712388576927988392582292454381943616973295501292989448642378701805195455093587800198121260582168202521884945354606299458390538828289599623135925360291723460177919300675099254680992183153212906388161940833202921720439659610373520138593352047815101630267803226785132785033167306474553635109822781164780261038099150117260779378380068280682925327436663554328185925680967620607073025186188038057669280292722933864387066210129430090325160801364876032261970551662755532651341170987448869232408708945352960704565749835955629642481262474531315030151445215568049080650795324113077928586260952435070052734567408913172670532454140841000808645896599352040844297674495913685458642059011187966856271765203758976668074150674734251243150765865845569475742882028697847038099965471332694404830808394397174024797920323279949132268043452119428920679657039317053318922708021280556957336469650584872798836441851344483065056925790741005125419405190227585705414685713871403573622573740709846179900831910375040978221689472441209309239136961525820964505012660478996183240817110312912238167456119866905687226691566528182378944432007791198348235666212385556750521326176756022951698592943305222720351894294262390663386252281912472634679095835347698653288120549482233975162646552390407464921846319582708747404646163109212602519570802923068975365406802168531568946190849461518321765554678855345374097387775312730014197764227111552123332419345726817847792543566726983952663845013621302734016412868128277879365097911874586850107306159618777861572684850657949369285576880682059883685123097937848626079033416270585143774613371527946223295658398880381414863264378152188217544190291944097551919633147062586087761540501074361367126488666285828301119375396539582400914574704761087987981515285539310096382063057376643937570045521736677296623116375392203472067256706050804185439974648088337765555156398965577784405797793482875475872890118304310527868985367436830685507994572934358745223087770981128671362328195650592311562570693138030165461872816878979161942339628433655780604232035710245279812872607647519969865581054320853615482518411901545423444010305874926316888336691792324742976465118085982089444071545497402035630905507770191139547123899781992092656413510212849931344910811436765767769798045498413397009125159600322350041225162815358712494981635862099750051343917218424137490515830482584317659764777925249854685048702531791969904825466589159491726453001175378845821477209433683069013244471718818416471754266948127793628405655119668515587686171900513033085665585351682087415238598959743896035817357995092260803250004457474273139565546256652825105121164708656961747431684760771085894550478739246899068898753534358506647211377049750427336007464203355670113761217309166426921253018780047932286408819336962015786706286124806267527623847196095889011227748865801699486747536551084144999539012261863369479058259135611867352147086119210623990380540434083418098376420844991411002367123220283976438414232767572235739856899498787685311154309467750708411702678212270422092542637085131568587544604247766319841896068560573090278293824987695351874829229365062457733698171869979392335632600487578427450155679507267654265459298778425203585387642210039092012297846556141108434215847420470927949358104478318544567320849561529336746316777485235989025462074607030589654769330585615532118781503078434523785722432398661922176074902578246303222197280579864349974255976302239292662524536989835380626863774898775799495398707471328768719417806316046144384511643062491734036103274021390995904714957376276467843323228453174307900368031311032908695623802121705863756760445546048326852534896513713210291756186171117653136073720315863571923695594472956890165734665999354292130516280891085815613634011905818194726173533256633830950039081411671139452232572954611248429813208582018939967921675517776221384746724121251072659909390580095618804880553821366173222305584455595573398291887484772733380296108328612225223553599754185932895234402213888361196007710632280261445258700824488320656573008041713381893965588140496970225164967901276940909442116865542983698029956767601342399218563172378213302346979858800870093023518428842508643732545199720465448139494288752686550266080679390909058562724586964409196414617742522739478945993515196457758012568558504176904072278647599442770795561621034504568044159457400936113906349382692057503848125363342063083949418357014242718655130682839774010020604993902059814057779718534906529658365527691745163706928233887816231149603313540831009295362497270987725430412410332468843689249276273809844779352593649074846331561050929717999057151407260505677483076151034807359635538802799247323205635439053843258715583322106681652868997604534347059415131299773442922414252316579053432891963072955375804151212876172829805470498672747313767194269425854654427020992486965625689516261372906163257558181910475991607572012392030655970149331612753555127566083133239664846496218772339211107478303382697725195009276762625809904893927402692290837220148818944384927538846655736539498598121854501718325997009708944379535186355311559936656548179726115083406978948970913033517476217200010293892676150641646221539077842204211263256717539576117062947784921486668374211072576830061581455926753730334248905871309294177034618314056295106205434071897290510665835734310979742172986088252478185194771987620725756269731096089066445845599018931822419982669744654891371016889166480661522227212617996002148149615363378704747405558842490435077012203119871212077467653136873436990867989739079111812961317598725752221133986449656613988243037358108328705562149256777934216439959022614392052639526530478208084652159011553013760955348155368372772849366018979081406433042671432161029863039486607904567111175067155471138252407862227765034176224118249313959758736951562803139877025787127661217352944965352782029885997962768324082781915880291790145773897510169637969594619761380413995216621373783341032264727747599402762149323551402656658146733985774159306137040163198801719756901519564657644711842433100423219093800562168792839564935542123962158567973899217565133169140358509079245047455309261503562661782354936294851633253510417374263065833422284916991218854754385456047644395913205042011438232089549319007407128562461057574039075403089312333296325982593584904216731862648442641690612547313330543973878775275331413758277029967406154692136124272252275801957574200705444885592306445777082045054275583270352548901593046894205221162162066779579445366845904039582142552006620881859358455935599973594676219359310453792895966462063415299787984282922647889744675379338179166287298045847227069261111449980942165325094401392672291875715446851685751892108993553650858615565756355688217192561050810332529118236613244660338123038611894032427124848143159474857333210357222947469464411444221828406841920622780457367094667561571843716551222937837907364425861401342140348208906452651635877662557643610333244548928323659022576477051723790273107734863682233268066613986307168366233177240547401955825732115822818127903393242565867324916096915535982468741407301401311197885657250937560691218869936448338688880199866466553314829849754800928834413041795408497651160288851062291640255623872800677601131779431354567612459363914964038539670799849879520602893474660211122262372355582018135083608917528003303452740071164835179211749226521834631766124182325592018623590424758993608740806427495344933687513751236341682351757939467624947927399420956934585024127440819175544839536990443732223041227650135542029822036354708289747496237800016522640872537138978123626047394005538206052844403946987852251328460464121868471024556830355792724152963228378702347166324265878203573321142121360250702502179076643655604332496333665554073571262799666877208771186927286906685249414905618517641739994080874259856704550423224084643412625633710356457552036950605182930341966078336562631162084264162936344486286601429507022886255665853623172348077761748188440346291370677552793564245889350914464087604318882518462523820942415499061610868036713794154989206802851092141720881890842780498050839632467966034905408329647768751544550040065230128570412253155811200877138289249092052109286628092792395409741538088435867178857316151585793677252452262958691821980979254195764266581565463337138695197797555213202926736440612770023038374935627783595899975899959064015442724691991680484673606849851179626237367871379220563922598599250463917550005079219258888369731510713643173286097866909940228683359969413488369595463489069924162367517919927495878818259440728012750352734413041383624083548770448083224763275869478287342891547229398003756080687553878974291147200966416551061528074280997731598673605388791349630427532172561196948827002791172225061656294099824966507291114386212853004458722647795732375479150622200801256217249188600915416203310010739056149637234921887740103163920925684675029978700122456644908535203717556682172614512293161790565296704467324206020832774154523298156934120409259376162049945889443450984508299002310543364729653127973394792002396770769778450354699700272825515203906526239542756846240286451473410182081746377450735265313375064381141129970653525855419388094967224917083548586195751338598492667045254526372472240548099328371577598015288677343149392224662461268710157039729159096303407552347601459843564402802209072950220906462933167692948226227354513710069952756166016546284674763446238989896468670868209607839938625595816346524557186282909779402151564545712019343579809335051001078214819519530942710791648434799990877735493376381687782031159989261683907545348241514367606014495928188347451869914627337564080266015306659301720084619602054482219778503639652119416427250983622003490545863420013281776671081425698908318241044893830623237858136457803289505146252023711172679283934861139403168446900184535101783136923387172829350519079451496043664111355782898165458688370173134780214871883862766400857789988991243183754300681917133868028620137177973769446639590648521480776336476937846807399317243097575548930484873326279390545630249224683579328351126230524275275387078824795576664891898779241254675980771285285744955447293681188162340827913745719326436727428193644794670186921779350831772140273846429132057391108319439467185320557245469501370090970714830294867645774761661943706646912816872528359532618760636078270939370379854709594266593962202413236986361376698569191716846356073192897655699014888537460024117215880407060585605962327535179292910105036074263537766321392521062484791796426370152925018755164150771871510111330269235231093842579912913806442093383482362774467396794649332730879515335812912248812590260493942811118901597971812528294158290741064392165465396734210284899956745580404471966301634178555239504981428375396569330089520873917342535033293329757195138978895720247479713755206272824407768381379200276059780754512859318565455905489023231672692615493877012724908887450107753338714564415083485327753644236957235577536106177353821738060852520084323596289940102951525192181056798783579487907621365122925587631596133292835670967282254310046802421232616698011613557931804550109308953203315269980893215015469097469213432285585483321295529015399648794479496940910248291850865520468566547547217844909814034376287893578637610462696522738547246592079559340176366031638151819303342784308239298033824445739208063551225393176322030663930598356502948004701041750298769914810897000134158692231318536269172943379549635505501629446349257742414538356305874895599371546813818591734960854117075260639425187018973008570989495926840918218295580757557625277740499368559238684297867854153230971339606084203725271780098224727090030758518778609638886458658942805328484340526764532134928188958221391988836691815316664180820304482197861573689919016527713474911999674930558562716669975632995927138539295776763010426036795408233119818353226261273396055457568390403929112463487142986786190141304174740320503195546298384024269975483519238514843329885119585841269280121548973138101202273912528398006928587044419507066855113953341505420504540704060483963929541154073713272197293240299965447602660175334431711127944003151957305344426925275238216014823164570925353758114442100979474492851652460518580495214004191030036783010759824919740388344031789968915220961914707520073840950676459782782106007557688774039509706245843023653021977358020497249220308211915173755420563832179855492749095528955510632521218052495069404354137486886343580434903703980133308942000977808636369477228476610379969103815090098449352571264610855732065923084846675940217263820288253855450541536630745884301158916803082545195592459979373910736142261816144110257145272007125825510403473318797337660729763278044855749755419612115369019109884970369165733639237214493977421190186205293815577213354764345312902428549685104577014107357292612348905526723613085931621322534686478648275742060699742107128474481830633386072374834289082316164850597958030146963894398509358960381045124713304454409987858019353507925527818708015735492883991997202985887762509516085607571653308966488225429513100436158277082729647938539426682403601518960027135188417296231751716188667864861100524251811460436081741589300781524952530100623166714098048070542284481926853348351017366292625438398537039919417290094326169142490114437434985835244337336066948247653019890085344850926046960013999578475550184418833690067703409109432874248933757524116745207525802349450267297003755712709628171174007503053396593960373813562099128190404985330084104502992998053661525830831869840196282091541363880907512136883166565850284205065274873694028050628693806722954959772283339684795034122234671278536299380490069250181384907070515907788367244157453483845839825648508372732831188352407867748468622316637659668987856647393532085466146989157900624056315390023825981263878803335930352148040424565607748498007641566728871515824581613161692447150495889804687420483689490957962241823933274351442608878593584119646722449575779078594535739810273423312696285584507353824744307311770713512750712117387391897714366734841290138257635888934073894992984991609987772623388376836719826193198253050183593189751443571636041775080177429239823042532704854750945490808188074056509980788890346648888718903187080087349752833037180437556620213456064354143409284227783499029764622775322588045040224511197475489134641117654728493402447461440131692132297834477522140265266964878372710064507296069840313532512553787247705876391233637920630302589004442016238985025318786112832994794666711091510581996693778973385389392617143104094258738112801269969604901173456318940677183419500880884398137755280411461278723947380633509867193169812615926729546057437280863549327443214192613672679897591235255850363274195149908132185108487378550141932551913721735069988652617088811158167287285001926497254613488053127083532789401570968379711891527945300803203727170682670754212453408094512152841278213456339414382675158565976947387338739717334012758728649218277159398573490802531731934367977514543546868195477061734887958069911174768795479372313378544772194967265940017763685155711312966292247315824143232096969630050378637769205817521128971506839287071951712544643000364901679909717704419782074744604498623148545454109747671841399680021354038696244160046062396658074139287746002963420409040879090642978941187835040356995055862058937483180183224941027242896063896499861713158618452098043297112954786283778015933619322490938426149032178241506693277778800995159504313515856140354056112207081082082587438000005521156072160636157504256812609708486231851481730876087088485193102120386220903005786316485160514154364060545240386229485859899138793222796096777694517200951271410117982211177044752496751074895922333887709357764732397217406400599670581788502834098105517272136735707613510102255289221369794229645287033225295033512918825727625705542812496803471771270138610748630011511306777596671227169266167389753060465441499798642617947429709535431131529835052486606509094055245872299722413437727872820778597780067303831732570959117168152904892357634763879165610370467867757973924630079262846790928992170348704062649019663883141726895295565880905813709798233911982270336956316434607218761746918584048403428435511110341369914325630222230758751903511101951183571837281979866913969714283711266191163550485016682593581535657590455914907366704284334980001970841024184362785036397332970001449654142105770413215798580868310016414633610449913673077215608234187206344857672928070068323120092589035044551894550293893114210279874777880644574427364247687937674342074294518501363993797072298183967803543394496158291623193228211369312802659295744868016648787933630463657975511559158141110625628473946786970832825100449260451568822682793493873701797040067936715344174515344863606589309897896026104833534248623357172042226530052886015123829143907583630678355027691369243039233532943827366382891627504930839309361757206556248513441843727651644683182198122171149857837333995872878021111144161487678207687793835659929130500667754234604371534136166464110252564115770344676730430806680067064848047022117471378304736028930703095361350217329120247124211330682292056893619009993116680408856686948176607143875381850479572923513195638457839423631814273891482704394438762528405550812915320443699773471782242165643154997715253170322612542986019904556737069303815410417595809648543742866037948587128837197091553890062556569751206146133864394806906333033379785751002244560939926116751961800302969779721040990832233320715257644323760343985589353579541227368621160439238188141759756878965354599281310903167514603263676713838536892101419386062406201077647255999664946814641874192224415977545879642718051682023469347805660035583847675232346527492131472090892845991252762720432818247299017998094170898312609858290544468158766028402610405961807246995207298461060006495904908659526932010788222731661069243407182178186189598423295032742050342940337327796229283906528446852088460270942977529219591626183685595308634461446209108591291237839490130598595887028686047505559017925206482245248441776314311950981605443139930069388015558787563683436549132213078737854833350567283643326276103937264742337885283213170304538444802992757701084030649481391524021208465708142560113948654632462927430376005918055027348804605372473297984005299789211208927280798107025988307713642520908504182237393116546826930436531572777355654686328480335484058680343938032232780558089366803285044016890689540772999418228967577366113377918712283978503961462005901895955723050838180415130660195228186898319687493671671617841514413381685176928930863068393035762676373206773491854729181988963015798149295822575146191997128146896798845682040995528513045813831356988007085012138782775094240779331789580335948002478625242177002021207987582803393584593289466864590418493636768051981575739991173994178053583537196612239412298039607180844756746468575204157921009489088747106759312300583677666056687530660487424138276582708712865177364715448495570152269005810784522320048277246260949226552029164724491596628910563319926649926404249380461109682429908041329810192729317001221857456482290497953767010550317088434837626734766492193930611089563908688269955044618557294895729613568225843573408143906614238912174884905190241204527333435466347482558371335888086027001259606493700489439895606993240473702176495720201509664043166996809723236922695835193954310935333557079207140652635877711513789948922168761646178448979440867505650581729782378140541298953382409884443938015032163857368767499408189142285691533399594019501862243229191006061698555652601581237503878735283843978550208210589283036957055911863305932276260332115939394207356846851028066606839668682143183519386289667983871573054744840978913779450858845556055241189143046978441952541322833922298313840521647226264424942313904078608598580535842872583183611745301981738058396491404316318190544089118659705304930488002013173485081482594208551068650363611099526467320453254878683092057852583808460800356261653765243302678038919163264359812589678829774922738673598692864013200293778682835930157325513660353007160884741755039238875103324961111930717732762469511192698181596226615376567970565766850271962628967792193179132773295997504381214758070907606954799931984616406870746386523252763729831585664909599915167072529882081504087157319942493747374276348431461897553686630882007044556524397798254527287820716782699885565357407487827166835249498579189189880395365695073572234712567516147557715669939939063846646364284751756131825686793034826985939581628076701720084537462337106341175672283049233740301281162046784360187106641424384818033114399420983116880703826965833955511103172443886533816099924902669352801600692446464511183800825305464821680898435471073264000046896527883293242704173649392645669795558223793269293288117120249791854718010232007596159521365555349805797037309206381931969923203261262220398669737311413391168674413267143174510747204931072883697950624407539268556075138877577176020664739044578204971622823251154153814673583850463964283320902047443548309162591270837170359824740011562260835838646500702144784311755068465573903574184767487858774216220296337680466000841038563117675953346727503876618607944298570059476163875870719667369761090270533242957837716703844969011922696276924754751791484548606424452712066408239472293511353597437442431073077665666438363388658028461854044134992751588056625657332728251837728058104868355143692671627548277365017045426784656279727456243197385119943088255436628299861638285274151425265588599811778213277720316524537844007735526620921544494559582435819202627269506558788325257308129728246889346948472972039442969932944822354597469572653543073038363998963540700834698985880129384310740027406320919507949450044918028293041553868396795422345520028071874436038884038811295342116362371184287994693074419859984830627284720402180943556098730925475516714885779732385939045422816773299472227178591797831407843199072883061090246926149344807732833973277494783153811115497570165423746345216068944130801729955540381200709594196219014755301641712290891361401024439650148564273975051457959139009515045743431517893575599595487751550299681830517649405561598870239426073235156754270865390020331835216671750881714623572759395031750448657127044255759132758568217629359463552878387459878608717477978916443423896401971046453722041373199275266557288388170616317360081256826865957863111138370157068938653219438568756417086337957605044262048940771724816971777898383797484145448316208520504042113761259616108081123765993860662593842210880294615201331669077731506217790635842371064563095774836608978485952482418819781639422684593457377449852460199773632577354984781073121518752656585323536504676712009357867715254057023216366846172768425554739571652991441803313259469622296530311085484018981303276554598323495795312084755652124090400060544148129057495196960847434612625291830471128718971220050374615480031101661912884202648608071754529760871417821048518061491837581335763298794309167514915211577035611054435629855433375298314182394840698078643374642458471426075274336429477107233403912944533469599561854091156759726495061038247591308677046759467976154092131850706217756057919931491780054871285592985139704332998251042527224135012698754629457236574498765275571226191253914605532414489181315737395621972014991009811676377878229124681354352530555533970933531284808794927180676079874253691107197145318798567116235155457290379211462259689946586319843354460770107582406707190956794903367463888247615370122212899746264135820828200098798998661198585100468818112513851642798829813820792295254064723015275959299147291063863009663809561524989789700989136100566148224061653997451247094005913653464176178563689417825114357308932488566894318008647948353391656144178406809649591994461099757736379013358937273269779150667615798488550918790903983778626009400361682867885775788929724927543898956395533711902056934361466984303337355679590750067258953989289253666508738969087338592179246880918052534144299248654840015263395448755618456909193077197028878678183300564399394136377326879820986346562431120362019638256738448193170123241277528056018961640554111141981304988741948456586261052889740887805064655002715812136661132875508046403376604174527320400839637070717171997802652556368475474921645436483912212102634511635213062647250608510062154899461146023943424362758869808496055318186672631741712917772388334188678466045978050181041723879442639675466997261120678483068550221609575062104625188331758094921275654960918685753316028153039451160642871401233611100290566661856126653684339013051903664385543394997660324316416460114697258297923950322803165931538447660718897899634901316692759341057048020104689931133971119241095796324072581539076293714523515782382564207739564871928146001507180324512123525416493198029138170306756547733573265642206566036695361659952568576307858425999817442238852197197660727369904200074733965678780074319132855415478201681964581862429561669693304917834497702647610535004812395748951885837917916121722464007575543042498473916294457903473616012992254419469168163703804977594620979333426401167121593909539232332650479882797411794780072254137136190919029031199548396165145936794002801364003819049741609692638026479441575470579765360095263141864631428813110535666309251412483712826097307401280797872237554780975483021012347138861417768535487470651460746993448647341478636675999386460017653671214841426639086779865730833024833508802794840056739476570135062347308152460289601299911361833234671924673793850651942340189805782870884236969443588796474368388677339972428831024269064962406299080759172746867912036147008156095513333790475600452663073221011039406590616406577992924840672444312381333068813060927079395453898609903637633038527455408309610302201455882215697265306015948398367716695324471653332264261759264698094712564594435263504471371940922701124288767871597225280931453445384964070812977285566049413807589796568600253887397111664170963909473992045981572562584734687987565221382289695235916030807168149618646851108385628764249138658805050169863940599466391585295384255855028838680380687563365904365444837107341832585920655882614355529278473141115293657025423035634809755807781350394978518143748015566348246096053526487386496036593071339259105642709402274991875087253152235427592940058994646106361566666066284694879205242661110022866534735560919951343555048041990106602255582312816639928245123689185274385684290776950064925636189436081685332456706719282497957468387274292882658993839888645389080727514582260448122000598148688851640856137939798146486618371082345092156780815072025942441026309549362763176286264536475527377916702526053440087081490598388554166672369261869981510474716289987439599318441118487571179691699225576468219965222259865163467541338297667201847682286395565436214162687055946660252582531719639608640300519380975057567899272558194450870776010591506934965753205781539281192758473008915226787687131580733353035973054205148580639744130972180883871757116761714613249369967114501186379526422864199251633930446540028862462914982789201204592241298712915199717911719152229509664443269188351469440958151777909691152161117330670716360189129079951251979005308188166851802598699090774276005048239828259899115028159895294362446892905759690527891381435643121218133836083892461559739723302555432503715730311138422760601071622264833572634379810484892288422294782862794603310908640514888870435576458621059009612891561784812980269909759919263698666416095167382931321749079478816843206250566307819108606994991176938938837265759315116110959013849560916607192497772214462688187510430726210068090385816798559573587209110405552688800567833694799458974387732144788566035338447396941004000826495726911765440918730244745105594466690442332340555250035644746152886428042020419468778051457857822202086720098582094709953711720103474982738250354069793492036522615648265645135813854668558235929052395436874351071216115963060202714846872848229978984422590766536103198375546007737082398669657993116387412560767463865281831882070489179179769871411362651144995557956974229558324347096324591807029816359774904462185023735295301175603709726855166217244381756898645040253042984449575489206870636580193627940600447992285575975503733767416694135614075907281428810013457310655338947180933588310016149031464677413583516157630153175490301945396584309003271767517139194826677869772168051159472789465434727842117869545673880826517527145376242077786482399486914557491948925839614318057528120564498811355925536294599374099246569815776873971303890992540131916621031706432945572218994798176031446507748129210130496046096999433516367741562361254605869887244305620004984551325673661132212762782512533682749565871658880926980653290409782931091202369907059058718284224917165207212431764214658456653669735472893213418029574518184628176608181985267363870560168646477420567034055847322011599177165199832109554005015066184072584058337430332454807365789445956991732819139059100874733136404664524507694216980821292414500694108740084683125025298942371638330238542791415082312442040339515786257003928580278204106919672134114445193717917295788480196425798364117827209710117725360937011949642403887839801455219471157215424697759065013493420019755588156797784755513939103774165310164327247687630295675357018198451949214521831865138280686977612077216895915977594040749346732251692648558069469457863689473200482466613492798097837296543651243320256861336939637636213267662875560584850551474098033622522477469044807218772972518750676907515461831828550875110681412412408108606398138985039208289514748172190203563596915436051289830634691037789346864663179546476815615101152714014805614243535814915562427734842692793026150168545267237901896560103170294715067431880544764435071780178052526234513223460451542406221336913035097360215018199339653676488093318703942076340429674006749313463706577268001897776768727760315902486082145976530029198617020204763425797451248987561958357041793004619634263388024763116096498689731652231998347754230675237745161609573964694353101668404291036688871479466694993846860736090387278415831244692165553711608120827350639560162348517138085321998283159083879719358511057031771791080519004159378409731784401996679831274767316463908278074900184556393886624460012789890459018437615427593014746037723648940334296307817468899241643184753645492089791063462347814717888300582625123637794051229459837011691121319026806061622385128393510626082578338494427841644919419632939726560588632056930452775976516829262068558260425393496179680455645042348633874873204505423172878278481244347823803057284135734206970570260258794171744060690341474808915539542109868518239266851345995053787782817925195381327040488147323871867520308078060689700869825835547054542396487036495260966717796809257596915000688920858740425442713011211963365348084220510971612028298485559624140819133009798252458916298801878403592516932306554041586281435534796584238582539514679371074287546813005545003273668060080746002492661967515557386108885082356002745176475857474171944240824491784172961673235694744207237092263788391364628491632080447960857701321916609928438361056350153818692029986027207129678930970427341270695514332770861693106779553130520215578170024264782890545383460257722790450828306509881402519446752777713508886216466061472161404412136554856614481815517378521083583777652905297153299063702780653172793528056521061178649045672424594632720294814900820041284456693319947769448571160831586592733529273674152971693280941929127042749941478414855476565563380848376392549866484973666687021055583628481683818350088279873741424630634400392099495328599095509443551212470797494563158821943813735483355880683050102875605621440730873576469410164632389845415422811015696424670898332551748636272086301367117300396252282395497790135635597370562920601544203108954906990273623538166809884593269527985652172127576813050129300974010303542605448906009447528998146714480209764762751696167643204559549307567054826480385677417377169296784958285862023834654145573785107288730104587080932145106041326842166491970644818889022588440538238886254767320989128698590690716080834485649866081503619632723219722485499806104972012748721443949913533463345979968941718649629726968006732451676750045357508700163683232616576535516435717144245161419160113299957310025344807377649714151776790820543686967877230747050585464238916158033044395169997004028505348538858723083268167778132539623421645978416058683857952413083133835547809542674937832687285090532740009329296839719277757540988245925488355713622563095583486563588259987863136449238867525902193550835223323631475786607834898331796601978560583262423574061689219441909503378415140090394382319937265908796450811046012139629508922627747097070676628335219176267552380022962276266353763758509818914141133062969649275015688994370272595897555733665215711003499466909539351711201735050504998441598266224375904119843713931526487413848968931075764754370521781523964816116622729595913300708216921454972149006578103591095192354354433934382865538742782426718362350486853449446596164112679568507572025211717481572956478789739203763951265027132007513934077806676532705645275893049363232751297436923992766259454485448859827795386462747188522445903839542949916473719231742625517271270213668626523104116937284141880774151401747560520425773805037812165136083972764973940302143943318704813275138586901280750214577453245012290547613827086668483542269904120726281420839579546094777910981198987402292482261575506530197149143039242292216467036678760228817415213644274886768866050641712318718078003138381026528432313695235550504421244380442332959784522936683601129781363457479976355875065011484219593189017677978933392771061425200331616475752328894733369119734972772855518882120498561116302720709815792972417989375959520564721517198958499238117961861654861286439086386764283117476980792974679098417653945224359010390317082952700055884300388263798726864485841092032307744270106564640907824595654141148696299454144299653440317841060507132262480936665412997104862311201549580849186398974748970507048490857735586129591215588883833401428695283102658309935689982027419342821677558917845660432041625290095886279602209463949717981962093214916687436551974466250159171679633122506383783991567302893874472096339556824790897228950905480792876963191393543194241788772752438198513514990246613215955732857436702763764837143007774170392797582946162712786608474164163529756413680991890246248971604375948899420182874756078666176571763353215211722886949143326832938195941045687827785579037517166513735156593595132472783031295971330925774664845117985137649281061498090678136313217201640427500075455065000969511004990369345933444904649702988128127143546998576565792015021659706032861282243832880691598641291164346432610626254958326199550295534679548082369092952204056373892213793716130628312698949854607291463793718321633958750119964793743043691514620175624351643098587301305711574530920716709202452694981222982832376247731653778319347771018673178969214943625640347679417394931466542919751548684132933463657507630237064425290755457225339532354308397601655375286924610899353940078674712470354004390924657684476119644774280985955580243019776168099639823770326768673021476520418173945152993665189257103633597543638195614511920955905060730171160789054447889288431900099487522018583459398275672111092462990806808534862913215613906445312075398952867799185624029272473515131275471037039330046980655790924424999157433175736952175311208998401297004130681096294271258835546790227741098242438749553830044794675998477986626563255395697789296009962849567246558550827009961367417556377509288000434455165152040791698346266344727490512645513747418507202631309939238280868305724670472000284366802365891258854423083675331039028427597916889154878916764619228868869582021810828442475118814511524736093423439077024018640217914983889415571155962341365624105244285179840162723540029420850537324098812894790241369009995593180710771509187203005844251025580215709987214888201267132129086566294463157663427118929062454543260731711696903538985743429448264172812093410851081462369327516855412111803619502493130543448746903109411217053472187416193508660162037315605276320092393063797513075429519158669099934958218450859592910635179032407798242898155958870231499973460187127680820597876951338057977079482465709139450893233297817111057391265433412699609424447363233261198983448110939834381626329766628688644813983529316381567246168435268452518277674208283239683515586370012365127935916082632589563878621277546705334199665373527656249036930107228853305112238740114420533535645701520477325051083403790457921387558089947558762945100724234048964397931586833644658399985758241320960186400938448026431038359819011019910613438709133640384364868712467239755635466592386169995546290058571083069457335780064466935902204108087380541619907354752449913492909782985170305208480598878936637148430762619985012292369901268276048653779707837208249373000683621949363359704161883090123408543383879874530606450107993211194360719536938966680081531848737840367484940038419168883084961924147118542319487536246137615753528500046901274145245570900171316182526529111915380222895593618285755377264166828057039497021203192375295694425874570330844788286677263975165920400108380929988615346050210703066609245326618465841136886445098886051441148466388245393291604779783918790192153881551314168527634446833890803800966955318166976837343252220826841814110460480899736496496029933258657371498591151127745838495291380437748672938504089342408815078101928917058263942628520003338378167533245682467331270075656735598439548303754158928891396089405670809435051167462934257176424753523241520047460272468393635324266096870096315433555055193010774394702342551576174621296020323691461826718212409995493926985137744834912918497998808309536752970499621522993614881265470002536971124968345527318118529694269958826560956822216441961240772063835998664623724345093918079645323440310467753854048553879188022291981882623621714672462439688533052859099996803564749044833331236400450853648868021488602593234192395576546279012995872610038213758542270625919218767334539468278953615892731441091571113340580334795701903381977461012241090699273078583230448125460073257599753383163987543295002661230488360306452841536621884807746099070802868707131244676241070359022232523311919519259463936436285495787670365165436271554765939069285966302309688983253699143896162198628307196394922598501137398883828776626533900426888487223795820231143089596829660606424603194627217659215310854714032848987518027324752881633097576956833450375763167290815591770372237282221532217059464317182309805590798350034876386617694062164378190313763908442931168639035194942351725360528957105239607944941079127480959548601722329565948743768601114676962637603476431492700686466011993037802527862386698766313468744978250032769764091157135670870479066834786667627951694149440498285094090603399021830311288997578051341485546552034543858645597433539568331381536472893652575761288394381681585566310912440456891359142751733562023324408358027618174927655870734464627718611427993095624305921550218442235795604462269846465613563821045693394842526764824869344414537406599655545811892448681778440546852602441760946606544559667067738726466664406577886424224914741167582337398453765442400657910813436119460528035438585378801995018701663198138590857975142919888514122435212719655516680612940483611231579183078618749603393054721701192299143194461189447795756361267829211568649507386741941101244352592768232024278392500926641546603536568867704450994173162897517109822053912066378601318338766360269144823184725514832596640050716412227732212345591485318571192016916463717269946308447107884137120048875596539998423037633638773288601977538138897219815447784530969179186882870644214421734909548054495643749599837680732691778578282710222473126559886982175500019819217388666326955936294601190388501385360652349944920659538619754874429140339894753022890701769469848757245975493978149869871100237366068085226741344007047049349853269521875950179940138363335176658719443466031378970301742601180959987859877895322937313707508497725400527334445760178779753858203041722799578925346983661237888454732845015539171165867813918521794970870333441935219447238305798033183970456909556643761731451467929951521378912361265471054444581417950119497408432765509298665361956519479990219804291219096446475399604053827536095122405174455241297799335250025441798386131808433594904017294978648368680720969772372323804304483883057493062724468208273000233022175472848366080267296795277953940949494065721667896737020867121530623666890270138054452867165496653615791225928834066564124314287593993673541401357822050586485312033293497074804036367126248977803483577617318564064864316733460124910593374900170732158914908297453610311058916484681055820016307520962391039591754079910570078431605706984923786894406113444871116815150029978716958395561925034640666558915403812090188672432999297964405308019399711345031073432030483554257832129980689155228277449936612644322447607474614385097517270373663298371460222943112220671207853163081911768463824559253530890773001371504825073098650376232711700503816413006233294680706357857841978745086635643237005287722515783491969446429541733335894978364308698894190665000893689925336465143604240785359402249572501997150962957815793085575450920828003857596193183473326145328451833234690161968843839495023855855489125569801631861328049879335321790283521236065883791762364387020191277239846892226497564146777040532540743200649530837863783793342832712403731725405204572991535569032757320583227785971727661310505168055793456187902878194738942310656258075855273692645538565695490010197082868671947484235305669134380209299118713664906217587229938077621390439190169683733724980425383137949727661756421281379519931700518114937910613570440457634039454457234324259880093194628350880855590641719886315101290673618083300024521044427185187342817607978461061154099175586487396517664081599440177314195613788097894687378147750659017296940871626443371197171127216022966905277038876536026401015628338388590177835172963150817417719943300711596924606518199033612926879345624105297540254224608874638186387261438194889056703408564409291860321092777563566243669538401535139988935896782533517440313454383904714511422461136138061633933382679307336276069057827083318925177285425452148145633404442501867141592277086674802828258067218570196134082588207373945142693469144749959135584036143472056406257450670653839401891720948588093607478723081811946302942566229736796364065695713528749588872932876601729223914584125709899411711402134791010779815441334138585333614334774244724347765349175047958178651194701230399660524546762485548605497235409096450863083853615731501482310101895884079237272057429046319744925919922711586416035211433289927573726702293332653176661971652840767787122654539080717865083650164206414407744718571875181180160700103728603205053870317242860199159581851150733179699719287373224795328325336128788963544335555647595105384335175863833783981980463397885000427875368265817567038410215438442086819501020515352823539652343761471490719976698348822026584174926503556916140530521382626228072910009160526898141062260305265617802114526830912740090808084816547853033568310571438665361281725801175906414148188503336623228599726932093325921349876282776242852820724250977885952144313495334268171473521974654347474712572521527893617156790348737247621221124927656162056633740674730460151802853311239116191291566947404458369002486570081123527892731872565390575783214912694943133378641509745647314890532706923138143281845154186655810480248549058136759503295793059344212986284950146951907890180411035692689666818551884547033734113811692915155059764929876925509594032282125901311793724890649766842438451234341899267382345637470158952617595829436226346434486265725759481532810977419887054512621214805210994952208463438804654283950964793841487176111908828554359651460332926125929544227429939947637410632498306872837455980051715099620931842395924411916543916036026074943813357886627138697491576527077568086226665862254769657578063490068856122866640383768752047273985962896499981944551519926817446380972477007780020858064252650766317251153646949068441455299872959715449465954949590612502271097703851592714438325798961373924785492380132133724395620210018119185255430133550630162358579447356546942472055431739266981246128731903474090562214171921578826088862621340798953687781257114393375683725702230971005541158676621225350924236448575520243535980477172174634425663381683812177252784450519899005597504249668585257151523201009622432439706520772641120245740067445409040009868832392665971162180562168200862989427887946229008038663784044149446771713072294847618150897887291000578949627068807067162980657229139607523308564898853751882307083980044904160689864255512686241246482011177826580116216090000586589475286051902838972787516553005828436559990939406317476577634207929606062262564287254997232215509295567075751419260912918694777518741445397618317922424243387323968265594432172889638802441302381503247011727573550028072094859839945137203902416621321875906423782700196696958946534710334956966252865972258790422439168072404882493421138754062630790384975696496641985850685064451671606361169958199190792226347288159116540339292277777066846513879913245593715447726162332243254925559441531240216533001320450722931961422166800037998260439039765469978297191687173355919042837281856277961961310052907802151893265886773944835662649991198779379677928075146696195275077072401509471902455982745377608764490293642262028018411644869308503285764264053075905197428393588492186609478449909565416187358983057776527534457902603349076111307988755122792772920913946171164227244324758607203084433411770763592081331488584915710914063115609641673977784912325620595627335084920358738400021425420522083455978439832787850331128425907505101641419861609522120509246092743438720102850102161253080585696304784918827147347333652221198571619019172522321981426009598141428669702836284902547036559969352423430973722655935381367022925863733636625485863344172207534541570897036743494776297005403230522590352325868260402926468413154890822228815099600978168382276938624107310634138445568855865666461188289311324544953001241862740093551655153411055845780040222415619452570589359587527316065584517490907644816937248278970730410112595138933197621682185085224016160702701384250248503190226938719263334993070014978941298536493601761598137008242366108388073775411394685275540463619821068578314957951366161469266626136482846220544997425506171748563364018728165290918771067215649284009803280297520332180355202471147199095149721823647908167869014594759758020530044324130957634644477180595798743599541311852368551295225897126653375553971501151687807294476588033592500502051969866279342562553991021114743417079254231824573693470888707056175479915586733262758102947294672633789148291469673748701403387459186795802838532112620202092773554150706145765078555589916704673797686343595244340798759251718582688030958416633417499431761164134417893179542165667345011666097805260072505665637493837889414271492524615759180911173925925188076928275857291993698226039561082632074663641609589080111839346570691107410653338930090690316606779478064653686556670112677290201417373917354452138714145188685632817675171339957632675671994064275878382546779433903756227006509451268273702086229368302345870121600982033852827023770456682359977343326049995887507852974359477536114132186115521837574259957225117021617159425578932853998909969783455443225117943036697099953340116289429088950398656020009101810253055100174862424177657884427549350784808808821769227442838896369982531621021776206462336467105529118897127231764475334710415832600458745533865004673417004834838540853069406934881909702614307448800862710305008330846162709552594384029172302178432542243570695164735611681702035998767800075088226249904426746716527896874352174512321169774968423376951812927460588087450731768087241044829395435196181570285404725170621076562351861723627724754232893423776540733353270395806635226706465566738169433088211309990154286548398492145296447089342954713133321719203818715295753493791716566275258537255717107916496820173952175493809188467409499647011701390914874975501653066652944011096670054367053163354283740897914286246701900015792299423348361818930248267645327842751193900688242871054626071977119496106014127211309005794123570977676881394596074513215259319865776951089696047571211484895363077464786367197519741766834833642158125549262494321619355878709853436560129202031490212759613756744115878469741892822682653142567444770871631313866478330655392877244498221257865429919719680382045174436106447857581604947299476104856654169822630840021571800886853489359879389510131507762734011348170449159697498686019586531663188330933983409898345804577647516937262567125598562888461069861441045337345270868479186282366360962449967225437788230809828907580827324259914306506305772543272872698573816041384372094854617496504534733870379890096518690335587879617683581103968806158677057052586016753959612052698542524323966659294152130603634601013974465143491366303017947930754025544533996724053839430082184019987121900350621605367570941745792384184774107764570093588511708289476946042354934233142950427725865295820549526614361493435653269581039624568874779349599566900490022865216472170496289158752179130318350153125860544331511528963666714774910631218240097247551622075243121616554033629503020684263297173047006859315574000894046768775245676486691247122246526048827643357835012173447857482821769506422550739629270734521454834587272427837208005531400599824360199681486323213372459467924792239295215986739348183685088180070685989355293283422431045074098508150449671921919480204381567372152560980669174612673845846567915171459126547242177750512387585310553227322327771083581856530509256786320514087633636474387378153644684143187384150498372085252279029883212694763892762295604479162229622647654134420644012139408110035930001327955629131504012830239055481223856808264645893500976321190597533792607786192460148506295858923329178293069990411758173025433052541812558513778874092940310444701043543646251197804015531157364630141660467010834515488133445395493470856439122883898787571829413384182355685490140758919211979223089917519957452895963013079110483103838212506528680496046179590907885393299862046299548501888486732848747778144172721612435222063632283917317650140295695234656332018029927876328389762592793343679384409924279889359169083882627682382588663859288850830614927241062858590913900165708736465185972627090055910195667693800581404672240775819624206924449492664017000186782523562575244038232266786617237382750367681898550507262030509267345443993871285654607191454920360286498332079678504111162188785448679778171262556484325510236499434295142307385792581160109694022317166435211597811239870973092089593787328507703253484024080384337048121464846186335072836240643008147709481238555471950241132513062273074754005117893187237338165729956067518831188529787952082885322479243931290508499757782009575324774743043013286955668207076156055674567892820404388495828792419912841265676234245753646235772513556453414740579762904834484331688601227401650262794114436533984651846134538035408670024969215126783993632658163058850657077071483758122785624493509408151938538986526399003375315680655894076389191948638141094739977638291320453633845597337407467715851637450441132193920088035918025725783817558678306305737111717767027745352666784586946481647050952530686782297379510147697550756287929357917749112685659352192220703811166674718485020681454594660828064275362964764087383513491304822274764538980367945036224862087159607981165596967740607490210421879556161215344875593256390688889082882760691564713360911177851640958986157223518481894057066381674609845265938836662456791080948659670259550249983995203527415401286144362974842854879736012402567515858023095725203618479580751065505552604273068560813673158129198215590166981626259551690961875429424673723450564404382748391070797740973333699584515116763205091958573274651485473752289346468773902467985389066477531371405294677285436421742322207748683380736101425141257296994174377113804744006751403059902616508313303172095868266486698358859466238256324628101014374118813772213884913804900373717213072104556360916677700484414036542832018708030824447135913512494017476685825751386371584207822332451951607334382876829750430121275663822520480868977146042256440470769556374727162047931006121498758255080156512505766184343436127722416486216434111614773612336377439706372355196845481029872920708981004286642192816837083411272786700877517755062204922902262683417139713829651227433446907453489515730371314409905060921246254506609069666590674623888546841949798408562290005641150556111942152088847816736010212693150043298257718933607285310736916191442095047595426583254752187040239665169032381859064089243235824752535324888640775479991360461842089989664735200775745229077685972639088323849482089762251349320121525365845523796461301703355882590296524794913231950735452279616963076399231381122939422316891901838870631311679069881927486709536593455964736183205629765033217828113143237073325647770430023922346442251321318544940483238740996936869745120617065961389078379221010684418661521569988173514933154397676777954850340467867075601609326866463328184529275966167927583883293855780397266315871945186044922779364750648251871837200875461196934151347937861416967899420462286115733505531787161538025232403081338092757586011782979356264290342412586307961174225660904855550781457823658035013153033632379583804235868407257527348036389955391589748512391301073105699256118650357865607225723219290660496754028822058666825504729868239083122900004333517525682386216481187657687392098044255106833333853823010861875212699278250433925415637189362624480886643781567666979640092481951259121457738209133861228228958625264568629484328506048691880932028957830199852444234866275199647653134354734084164299834497838062969853578521108844797912886784036739875341292533059535588381328278869168598579057846021902561162281146555330500608643247727419332530564428849231072059611645470854670623332857191447589883987697367293667332528395930818046417467491860574520204435990242896888851149783747219253946653617265435313370068444442396744136171682623632989378692563888108931145899260845185887492967256419815044871775357503784019427386678293491706539566164691340389565206124731165736486403407643416631860805193558681303312063267826682218904987870107651520420649963404845789245781863612741132075921838296767571440386211029913160399713829070929756593903117825173312705484053006198200672928850450527801496120808867631823089213152164126752118925700050149650818505979222368833712388112155020196323042767643566290672205733660742528699875365973827795228908878396210564504147248815372401272881951742348961808956423875000807161107796289225651132536632015939467771709721831495492055371763308664852618157104917043222936166373430772982245052602677893356247257862392287978401251479962880444602237310962939664469349838890192894774146400994523255912947019255482406743128784930436267781331937447695246346081582991232732620131064255226783518113204851037608616587457407928959228155666183254493714834598973456182735608960515575690884027108094455692844207567683876729941238012789906088176176913665820044547084282237740929074636460283505727298946852735957573470453731907953517788860124117060835472992004952617242912002005487077922205452828945747944893385821032197593083956637867376213321696330273991680378469481446906924095409881387124064602726927527977279898505208865597297085304566781080637322754743102694844371377172711824966731696337767519256874886703072086775339807975756099051465964001704647521255792364899655828223864116363961397349374887333322731413916198412746549135096481273025312646673727194383269131075720999237090490541645737160663650897887005106017052417060828429544024145082032990467210559373443454927103354241380581709453912794954104847323406990517959487525119179308924674759381602646633708154975293644569953859580954053546885795202949779344285974599552328705393239121394008846918268763902335861662776137365399959238820480335443749286031451519236261809694948944973662819113572502712840960655850165747791255034844133582783253797109370483931784256030975952758576470972114096150217300898078522693688271332650965207648761134821448027476495898241417691928123857542841533030587771522962204780973412017853520896755197141482810367334404467676537678789326054493712742882216793151982288999936050497783784250612984822505915513313534410728348216149772121766618388935714788096382587206463274806179852002539305636407868506997938522263813460372095596383073752474706416281959574725134564471602338762603515808375343611422087371126813674726790710594292845177117827426453893041763180017578669400726197883484211673710904573291268120051377577409777171638839810866330853501931056473657485315438528965622278812226374625599852205770966830394358432109034991916537719572565045118362178065665581980503545922451831780656162647757402449249858602407456513631898418268483592659368031556377713328418191307555616201094846554882815089896765661839966001300955747305898415119675718090199666879958149015790085051873933962645299121999992079845955674378362281779696083659199780953679117773742742351632806012886780200639570223588370355454198632937438651271474463069949042788103417840400492761844762552412030839289789477792826370885089740856995456774913834779557451617489788428200053879321354271768464142567965297338008870498181466005980632955539848118078343495857796763052537598055850046184014839402424135912608293078874454821061557261048354909749102129694090682991986567297398970670494422964468382650988029381856208433646811884175720903365172725861592618059980293840844422579554364379551434076867028731592460659032317157906936326930028096773190518407786871684650159536208831480957074055060950542343233643997635460459313428557739417327757088303074705594826902679816513211459149430428984700730349742714062761649858871242550162576038989510349861779085153226460460790431472299900874663212264104994059102420443259658239174886819522881761650904029548621119044465441589431877579516969701471860892793301253788872538014906672908561409898709565173482999814997237034671956784232531696787804895848640385328094576618936657966939263128485884428008430549557599399191600187979785163562898628400686508738918454189527902602442620767953315318388913172221290115552758603478453115520339667451746577489017498068463133151470604818735712046275576089595368805624147566803542195182750378618982582662244979699392647872110257539877753202080340649500695642937728292636183073661132220073593331888257860632356123954770314204272797458887990185845556170611579356087538735077220308200427404698958968848955154007105205312973351398283077036214068870395770124242681388855891387794762602614134915865344952599121020111258636400213701359225012593117602469575265993555306581290414536957294802912614550194150596785257677433239463795949231668131680581295878880654365078224685453126864379120585545268955167501261060473907293373251098182250184935455716455576702994287091991411229603413094689947001216028548210418944865089181363320492700785509354402722043918477361874405704907579236363323800834248703883410088641189162167788414233524129575257438893700153800720148484529369718857580816559396180173405036271405595186681959618914287150773413150893003729991886493787567974541595910135199435477316430382073336067873326017876464631876738657954066869675747731231589834784072253777981445770106764477941516875485851923968404355609680482887218123670649713326094711982237862276623387388418140822120915807400325285602829335858710813854878435655246869247145257189571116611787879740282268552775852194144615009270161822660737312473947453372592481632245362207655015752053535347463824510893347581235086900175002340449309744039969132450416269625315009797812957216227408139775548401934339170009080081450232422118891245036783008827518425019861442832917036699510985346205441206650120939820581328627739885180960135774367189597812598121652808897950756650717442105196923748575749089033745767222344358248707212647624589948206402219926476814623270702912120746924381928635936117531712484227885631865331659015487870970907572680311654677161149881471740933569551432197591312717102126550112903031464371754051250850395652156838830907862191699955776285809449951768007192220365603079776866964421472953086140143331126590412748117356645362413186414891157162400683910280406230979391931456062784415606594876322670616757232509208352552682415487603062601359475323736027808119395160292054843399034009210725599640963849627380167366887662670529798587083520115350884407284899015359955814470243106996092299944649301727212428004982074571882994241657426126211239367678944532064383282066523678635675627801344310334729474231279121064990531797076841718483533155298420508510020006221430230252417349683276786357407612641075955121914704460415752017032767814070418397084998250564296982069397313513342139424933431770967652331123546816428003230991798475931841854364439163956950780676341178263397512340640102406597144492760463734133017421284516181167180630213544929091337029711105506753792671360618194083890486053566845282379949764946212503698670828567447674031809118461731348499604411277853097220917233363579721915209527248966181140571166439846060639759879728709968539505839609812603213834378011063817962908318277243957560615909142995641488873396503844046368881051325364474545057599225575371645583106984099050258485943961761056550764813397846819064974000648194811778839012150774928655421398638414065720130313653502353444678616562603683526496769775841897138992555532882551181790073404899240815845196021703547075575633444005015917820871869899847661673439059663885938905577511768235764034039013602657817286647927084749226588183948573772905814798634149139202974675647235241275539080426471740576205178760234815011096019577530591979047595464785598450834297623802200783418737362870539471439985705980787488247502589093826022620802927802318806011973783591003720886685007936268211684674431722531635612315265752483952808057974646871016186460032225907540312561385777316856382841552666652884204455880681855769840687734405140128945952410664402423059184147501521667566374271953121155144294675216908584681563085996367693797768197459223514117562253190000520314748367731806317253886013362816255888632281557203759821774605217601778290659548966629874932851580531644784766579793894485273435149018747975600240731956639085064019019906152928769634748968487905617038909380792141726793940026081096473311081946369390019906661817975369291023963699574970343873144738494156095732242212467171964325301154666871720013770139528028366043460797585232215131267002600722538598838917402976142794322195537931827612253952726447891390946406444552110739718019119181089079987347545482190375680198102656107818327229064788115839892779579106028605022316173766012752985943313235384447893458691489173789078974304564722695689985816538490378894867742027459948350948668665870750641363401923786744751817289907944879237814695732262406002496636665220693396342363002441473021060423118629168204814601065586867915425450955575796806837065035217550019076488808980631590131777718195927168794892905058397771456425292750886283347520722620652167356366738366402919293680807278007089753260394448664118757381442789741981923767626909373247037787206696218685538461880386743570008801428857239702269614124746447559261193005815661682125510825795941202661554142742326428105859868951250733189826402991875835510415987280414583534468865448123206835899258183378883490143259633427664211441853148523798058780598673269481812981978727316737311915973896180963945253245065091709875505855882170514663702295747835415494097699645588860458612517190112710058860216499158633429674822766436285908620506194783393058818663405479838401689820672131640497256378101152357040853526976557064057369671563164642673422283273053797952209200961612536497054709485211952362767397725648461084906555775419915415140327679648886648959221446646545682527896061965948587530863455047787442582948897055153645829264772224397428806076732952874837155219846048107817292465100500604130424831343861888712751531038465320445015852650917858861603118359807332304969796278858286575386103325256541171461518585272813510322902877492813240768555491973436847405517689477454368791145979227884076620375572885471990718796087654167863005832469038359762274134772022580735082889847001210508833338148525395499919623831598878155895767333917829714121849414429007937961470404459643360261671251926789168805231470571424446156586678809267561174997365003571171177365811076248521395360249318586831963427574469927251988619506861503367226238283959403270682312053140856967993678414053149477013068817428130782356172126683691025367780175245635609347737644483336271504972990836277334142901650657143056379261367421540727522204563631344672461468839251437860024205610809041475038232110718782947351250283286569829789030291624589885184618111806577631759914312905468774487237973254156463940888929159390797988965643393601628745054030291662146213868367082770282157646432126938174582759437436047365238362203899473432017488215168600085153752403850405853007392379190602554775875518445191822386089430127983568230772913952355356114244570583511895191058577743457111558763274394992945410668468130244194365581530005278831287169627457541980491365546435016837129870395662466976461001689902738206596153196992352402573874704314298129166893349802776822345249124952189316732620853478122068957818883148501557996610699132517582544461167087360642801357294551745169895994989348143011411550343250673414181007695839602164030961522306991747433381260423164353692470699979538646635657526576566668867148365242656340815518236717532191074513426342573850878099181020366016417549289020988411008671239471690957648927952997562490856723620535458667324769985377831531865835586349848926687355416606169009387071734501366182850731936231992641259059211887821524845757465347414382764562540042274608962044271744972311250692723526304012189541031991892773527140260976909315185029472530384590341025053962223762999050481152417472962986724854740152010710249070251867133934515153130281557528829817839544825838508115034422153965792486438372182166405416228339141626406419825555687240040356281265791871890716957399958011257608437574425174216326664212957143360094721979680440193696742477126424845178127799094346361595253890817677625170142315148784401993427844350180452457772839253749169564688917953117049057637051376841602086136159176654394439396706534228790280077149513984999507304694004493236620859623340352358534218345911601650928398389163436723034452039000545023976658696752371191583380399833455857849133858357303735556643597200942406744477708342749400862350540383313074978510850489867798260698093920152673917094872800588002211329281010641616153771734028950250951021978488096613941620394345650645637204313108465097680283434989550270930166324645025053701212466549172959542445822221600285678406550758021471703581895441320204290652935493725651985811863052382326113104562959796690522175971400392298446062630762252963259256378625716852567762373381833190536054055385190752791755860606180031456205511035433725491480377341395762677354864277889953797027294778067466663220765555373747971480581189733501660277721917802274785659168619401050708112698990243529203544158915292177876243671858255145345729762830850769080709771462388538215335679942572944877187253447343437106556598084133083584022544504288907630764751338980079446159479552542086735349012248884818571451063339682157440901775293753182698358938050155056221801891713512830213177293562558273888964069566811029406141070715249392715732445795170444027454083469332429682538593462533683234956565154342702490610330319114380603818377784543048228758548211513722499365180553188529811377311493562219960221141162179750218038171209948860175249099420849579162479020578548511450853901293560612833567043827854171786823359747134430458673112543983727114460018633368244957454242321304209729977562849127483568377674510280091303599092720620250241589398909405670952017437540258113641678602136026457109833484862319064458683658795032237835813854340920064375118432305281311472463370232801284679628492676435158454732163435425662091608098267804849907788399315736981956283683451321473315048788571237116145120122626649915809385578486810128190975737274108859713978096371960410438397108718646685399141740281807148655498278577117889617083924854440321924074005897787518039777652830746195696273680681368657564403212178613951374619982721566418102271878762622919451211743111585444450688358165886001630808953122959006426100509592518937676329331494200603568972841313500588839979292641139875092010589303937079875010510621844613376931245846161489782302528182318102487787934452374127551767809597797549036480297132571417785616404256184061210103530990125284637298820295627472191350363215351769653005995889143313156186798921990098541413792924240214243178739234470613368593242518234627991600211976272331586937390497475973434038724261643937420587359731451229622724942200015617900307206648650310448677401526415419184254753234950529941775471059645838304952193358265464873434817048409192823270248035828153973396019518896101138187012187850301418682537419339006617110757399491414300896828084748812601483741042213838504001132659706347064898317043137817353234248728989590054279281371136400769606925538188339166341920615721282914469939134300452200126259069343314142563751106868925641137499130948545820122216347551055800313949133345079429490240291364686188602286539416926908603019376458245815508407246774483457744215385345673252515794628094370427551963275422004289306154105594359791241734135029148013210658747995704296058309241872743303689974059889746292299936769152563513449360128537384200908518663712101350073489167465846701039163720482504022724106268149960018729228038767673011525577990569302006191341902845025232848979872288975421979819118892526212927407794030935226135086499530603344806784479128457452259728406550006379683695251960182990680395804412715769054497397090092036396791200308325388688934363818232910782585573088296381726869357283074000731632500709681870104260185648529957597902720007968286287904020613538487242363475420049329141567523364034276052932370484724771588816377108544254498629347262408602313491602579542539207988004048435190568712811798931448519616311173168347612328641324032874636765134542410322719206656874143459587376425854525010677142460458443790388192015191402055222356599164487576104965077731145539826582106993603210786909923415018840660540218342411511209800321746291454229737990535455873204584181762111078983030195017489243608892680574705131029965494109682742287918068529537805633022776641258116897157710580311513764483640264113199439592634828253282002119945279197681234013448054665509351252225882981638829753049536901370977676201814616787758699340798640661564855901668580299607430823931435750519762547198930319827950555790447363927478535959397622855735687648682368280954578406212195973656059868902245476111756288669549026944090167828474100463422867295179767635703509997137490402459658078256120722271692255181749269915255955249812427394940293835184515569184404431330493377270705262859228808179271645169293806098895126154676035315496297025285425257239155601466400310409348411760055072295321453177075575488230375568658083130232505872360839107242462141129819356520664722361356884766855000293126218027847660697934329564873015249476611782055201336159464491808678354892524408994847828404097275765224634631538271053048031253852262023099815143402630955489934885859373396787168167497364870661851471522334469276014800703302465820448303928427655646528245303393713577976174869397430865001667433856731698825676768786891888236501768885878277636675697151529058343400285196550229657304497782962171566872945010790751778784480086915638693386423544582944228546185967894361670793278248420948156221839511056196943341842845247157623527402483583983079726961502762304838972170544908411942391838649878002055875117346341694304460429049323959152719816897577557086974295790567043075815629674192070721340453357826831052578327125875558055177426980558518014212879985286202300555087937788940087367389712809321344602169554525123490553074261305784923856856646901624647976342188310645974751150775511602472394131911200266289336072648144965295276139392255150734189359265863189095209796842644413004047496860497615252219164832194988686789539017008518032657945356870787338868743319539442931837496968674336820447671286596216276417699242151906865641510636450451081232708560308528927989040177738955338480339330562719517036919910737219975129714883143195270903952165947454303899566011259292548369959200457937732263488286671666488732361655565270197812392849437496220048615021501857962204830356104149913944505967146402712855953780877326197675163387612574045830466476886712293278988296118012635504912166967755057640988573507989117655542817894388738535628337874200585953763458317423826473999903715641127959970667282611973684889270118547860635017803262913152907437157406601264328510619805657191434909175522430780072994901728863358021482714493505320465384852040865960272970089507487523013414604820908018260412700460303059125509086317184458053398184662395113622395679338527369368387738536051328196460124179659327767803902120328138935809233479533538326968012604402821771911376438348920836222740419512828375016160215529004410700014590875957399319496050003861407825911008241290321193156010869919407499212484620063383265373939811985796923009022644458316531616295070998190118457193521256006473469207989544947592817045679988254403743185466170975574921457403795036230816452571179197293653193223088815307346718430884198994577580661236766939537368621689624710888772711079046189882935407069958138628813418145837572392289216210710665837315078608399045134829203528099470603462921737831420285873112166517225800177786452821210817570525232158654309933150875136018843700187538351038904236492692318655137643655817431079917172209206973667778551523506995031417351459544470894695765648431129976427682085709230762058310504742577736799321893273630887246308500934497884275909358284996433664570280792128019802760208684844478156222857038471338660986706852861980523611036434186671331127017610792093243421653928641129512943621517666131816150038374339214641934553693684361542723877418516448930726882279848664356816490262171879148924812106743594288317407846384662702146146155184123359579900909664502016076182719066946987396740649156737751316343104089130728926870569105080542217823718085427931833623942934501612913317818091463422356297790136098223941709008817184142304240769162514948994136388901285863993282869902981672235340060978641449877457446675594993940192797590044583439285239461558680152976248233447485486190226052625583186927109095029404721568113607875386346925234018386528262087154988152359373886997868381730863311741084932953101445197267670457230376069709562588759387179725773046471701943075615603667040620053741419472333431556026902840086339186722509536115910693178866445301075876635494125457511822735535920976298451216219481098129530964842735477278132610126610853022850647365361387714900581688804366652110637330238546836909626577434081704590231769002314123762183495859081204507079468342557374855450896293086795322977823901075293798575328406653754197438748369821609611715598682871716956698892991629024550705701937735897106710869145865752191965300593285456663198492515882384247030325749897927158460737007318370796038325586774563794484762284879303322377105414245289889533957290000814420145668957170442216727313724778513744477148244825307912515915639885047636446815447958037891242438643296501563069837970517065197666776278289041085139344602653689922556127342487540444496648037489025374563587639850934484524578121503253649348007102588669257099897654387070413262299334791797431801579322911092441887208225905793483050440186574550270277269813466884975825009179670216676709898649241455724504534559049787697265199775332038763366112302979472863597833459224278555275757665824108286669665543542777565484261064842597962750494027539515734717199730329150814423776947780457870270695561394405799713790541340709325199191923863854545605888916628209604131664270322583765269980514762385928193295556553817559970159679264394827336227616278730040498680025912157090927716401799223067159913903399046269908919788565450436493723224558477601801315670095208230685823447007311829311488820846892923859543306649703860493078871231283666388235224832942086403562222685662729489789699454033326511116056334499031166886407738595713539538886070052332766442748118456302012526731280167832305796870207501709318810368586177847540379693452166907783375508453873204267489897192073009460221020751762272261306787368754390039899627301230660986288141593668373881203367648524845690914621104218802670927743051217781495136965738917719048182211146440176202902228112227722324271560978708753030804679481173397089070776861974891608070413209853293882220918149475467248268490198023496215893088489037244722320181977629524992951505642748919219216123633553858291528913830260269625102488176148727243092041014439393774476777951344698497272587673595725322078416672265880460677605341464010266575119516203976242487066780595507648203807856792440239792743825077093806858003033036622624926034386809821820098564506368444205770581594156151097976943683986896371026893031102671688138668130318276157324124613577120427018073732350663293732474377465102745287798845206145093165575856838886019612551559963591151819780737840105957052759675755685308668176684550877898812220856132043040287953254199109087732884631703817465882546548471811028524908036744653598518343008037187362512985253887798944197628757097483874292274509321347478759801337426287105874122885101388439198503862292317536311378899742832774035741633204191274552269612793540975177965955898154501758570702303016503964903519764277759263683564895023801028874240262778572332850622730012232839151801183618277454606702265249845107454752445485803907672741079264982326539671292611127238507193664488453424938844844832192034875596763735015843823969697621161510681379742941749092244519701014640969839350221834694393421244820310157418809034568114618700802613664278889130498374444451660532454230105285844626983053161158309701559091283234185265296975183251765585838612101915739310877055032217143089582710873317924092763621653188601034609627948956834740549422524423125654235176863326512603289951547521793193891661070784714750727388457110437156638290612590445924865823403067946364778473335429605043361314486764645469686676357189215477884143934379582535534453428374175632810278810218713073765544437229199429869347666982222716753012185794636894841417478631245996727229574707786918905146359127247125757861811066141213771567943708028700230747613267119369494764514680924108381008843945252641507555069096354974116751061906252822283744472765412411519482895145778078341168930304177868652490918312163176795032853636655095930296030584287781706930951403427535198642649737315197008487536136455991745661885267952226979542489226764245677131747010605112393400976839586170442159409902010498514534851289031770597013047775648592492480605964404775666527714995776970362329187377294988747300800758576897585370600200869492891553998814964181412046651197971654453061608509616312108360014920833767060159235300997203748419015331211425599882279263609405613363040977912389328644348673551082444574352572947103125941696244818708765262013741972199476570789117750081325537856390338088125271618337805686978149162933860600753405918705330260456533539647716022619772190367351156371061428979803323244096544014993956334814882635791642022603471508725586745676721155653010588345724129734299511388753310132954739300656276924683465612282910022715478139413470951864115813536558118094997686679166401756465562610081973292380160677925058915273005300456166011656280114122836808354946119997409046915311697038944336957386633969053856777198856009772764402881859352242418365951559417361841714183290271993643883201527433040855749651193117015346061207543758894150408214056638234132992443933364371955151528875000058100995518658291435411320771408747001428700399264278520577044154383918898197564515782262620412252126823159158185839063270954941286993667006376876541161434103991834998358992230236333546507836354552640952754444889547662895458102723783885347040100564183889784397480625102959584211886871609496302668198161869636967996596335825454302751774740955167379483833329725968091770720082235913454268254958065821012306370607780131775743566549776201717585681066690972457038738779767629467965151831123668266530373081536404231994975325816239226001970529519457009038970726632534522507898465179750811228678103426701206822858941315073068212196782198890975905533609968210926366900865863665449570428907943363342118656139795106577622317567239588280245700762222933186319562368958559889930188948303196775564061095040776965773445278247604240014929005676267504077891988555817049089352576528080770199955680772810719912008088089755949460668052312924457404738874903154016661370960988915384027672771343156303683967867621905898231845804489574366142596773329238547423669031005739569025708486350936511025907553174978191703690708360227667890646787474475645568419839065563093272496179627970367008353716363383386967571953671850595962509113384918049696082793303429730770695304746211965433119245627557009593675713762703166242628953467377795993141828345737643632558559771938825623749651610625506924017893378959860088647562546293869889086480939807175994105197451923897666709267285989378136340180892198094539410030488923579936365842671319073060921257145968273102879507036506422383971528940740997149339925962037442400128689274436357038523644317842885452848059901176723281990536167468943087187660919827767566716672293031202600582805115355679276478656610665752410669579954026456689124478928232714767629589528493772793186663681204035222385984300447413089150524715024467468806538172045621483155794848102640618282908523033043623528518411721779461389675792365224369378057257714736041622061875422489755535918156072005501225878612893454015355639006571898285939167660696560095166869498054877522834963869471129743249560379205974016845993267768740607531807358826612498204237547599838738645092386124640668567251749816684588506289871639481050900855997461711166645007578684456709717974457777230149023507819746201170328721338517417621435740120034729892425319908062267243674943619216948403253931128269571540740667694556957370583957898582554403941736597749545377700352328499312749721407044611384863305775086477925554759811596969751144016608489200955219830303555572278634179489065538677289694690502394602281958045886465685687368957121225903399144661615209611853717337965995820491844468330910941836618116965698573794253225282113161500090169260610984229698368329739123358679216985419917883074306970675559674755239245219568255476106814564194493288276062924777259866677822530835806039818417745478354414990687910141194751001352459456812332697202492589677398434703290087324313067719725315929004858203186137994211987730304919469474753500742547661116606752052397449475106081712142284670499393151113121850764318372874997531514230539867542321258599346450588762629891428507498799129579936273621214995399859372771258725988531643957692117453204465739611621268672309925141658388746944810788529799413404763492487852025477552021931280651336115793494019794121285830456546602599179183246422314568283361754822545886743251668900623912951799967746863674535108761147856074535167089080122547753895452561473304470660549818468912710380593936271921271192343908125725470502907370073675407220314474321832738251132757818996451763387547800593284895979945957648760837666520424138387284639946315643732930676012192945535871046542617075924209595091140929498321352937303676150602268494153785750765670735437170991504129137515128781874645990018363155827221649991353987662427243474037933659451292431265845133242380089182560267379629401284935133519404417104511151861135737413273717815500893042366561657649782433154831556003904051653606168195479635095403534089594052763955337041658931635364572298279722024293493747059023871894070674328179797367498626116832040360239095125415796863799859351365087069629942008198640170868629668477095561286397552279361312379304523669227189335070379496822459625943781705527082002096765145673762240508262998995612835611962787722319031137907000927328399292741112776765649476918293845051233562739025317661896934969022544961313110531727382763222175280036873769671434096576046773359112323212513894157917511089474624737668591357415341110344428856038709148350292047008697954833101217175051348879755337939661283182429063562103518913170840127660722245627575791066753251742307306543342950317412363310885953699260613256791504752676244002017917476686394428095395898552507630049693208380499659950445438373739427855086723749063224509317804031952040856379848520680343905859556396491842575546768631964387275968481550694242816144018964421856100636461448729905505478177125957565087994206614246369706787551671223473498925813751150147484775079350268601886344748690873768875743120702984366348676510075839733795398170301956390225492502051488145157346902950787327912787756877108194666464355822494547658583233129118122837922948300457758364736193784613002765219674720762978548300423638810079001509086229724959596060948902444541946110650893563467799428827460365941927618641304516266230350390378857942589602748370648569551541909134190130207235911493925990317380102172579874763488133825974982467354919258099779235937863615909812351519105772355390885574655496886111906998606877623340855227318804319411435169775536558803293742610739715178569043568668212867093561823207167783416964415720205214266661785794692328419005434134855521440660252594828893936231933458703193797139310171144409859567907135246592629692434310126458427941687060359510882490422535566385410401763576736597927607962551587357369591190576756094062963011258055863610999428684433977894094238228906063956757326793670046566820916408243904225747745141991871687527621155727903651124341441580386240494320387338615823084232159376518190120121166061232313892841133497535742248244716355248903579805687030905914233465973635377150717880837415320297443975411359418387284944780524800587317216562983504576710128976021611617642683482754351054204289693387657286996107199930799346593662226005371397168671850607695081126262073365216356508818279993610015313041051047589846202433550283254194939217004736653708084345727908291075055152739694795001354973010873778712447106304213314723869978188341065775095356996482449609001653074244903405780622719461021965391421601724916170245187080644183605337092752756101350984906334927605154871279478927458935840715310150105744141085482014755354817133989529268762799155806002947080401890470168170909206247463877129821955075124347445003475354913655764872079724910443846380492638884446699733287499529356894403020970176714749857825574976250557891970285655556158603850019745147310687450075377157602633845558301890959305431682063116799015324340845132867261813277500369200834410773485499772139864480257432152638988105318301393114765625309652603718982185427826305326841251311088669826166669072291982032213774274512395472071330925504658051676968903352389503079147916783952537336253182644966433355986333624517725091305789931668136278022892162076558260087286789350728577044204032142915543984862977103038468523716464933180838755566467879462254950826928005415753186864748263822705991822901187598790303674053293396461693598807466287445753420009251307385560497206467462420300531189396152529326497159572423715178849496110435339185561195930940217323612215676525059732349804770176420094540674643005142692867291592579565014470200347446283081022705409365490046846534903603086619339830341558663089604071501022893639639910917370355020223751545531684731302670488902837346958526908166826523207895789133460845719969820514243852562176308110123061916268266495351919479846128785599847225116082344568013833820556028703066992089645596455598222796360761375208477367152222116266196195945969782077096266105558082801924656244953377093874138405522752501640779192935122343351555770495595461180729026239668842937957711539893099631895971663506057094097249172400278814794537788781184000778761693057139740508603541215564665570768406059865809755664495536599653311411955094980309987827825077491601762000563883270263958750253567113014434771990728916563119599236767157423698212240925165766394813420503351224068040474311393722103819064455692911810642012763706806330391343752756381420131418905976571860249281274841637924174637005208596005220369028096556607583493570807915190005297286440242344976332409047951211972114656831308841488028757296437453651771945922995859149649062530045907999973274992335036731318348767783412380373678182153327722306749817148551076628042937102387849819025450978884825627924883394541580704468737180189180713309707859101269567848653474148642750441408226394870572650972168605271288466457878804340031925609171125362896361075577974016888797479594921185992794085060531075975552177891699460798722618082930373743033095237806248097685974256376439365914229654908911187781812253725430231961041193423015772377378506156512209754290036422364928534954529653129633324289055046069322353225989297333255880258648981426799164385723119222204529089607027002020129331223132944900086604165794887570187647909030199482962705041840692513085211903984541932676453809950308708248594836422540445363545941230993161187321219307685518361454250065011956058710279256650189367122803920301914422950218624167429657200200993025085483531045154199653858594365678518677658543004694691873694046262665615200795342237510056941207362534604695892415611279751475846201839216955700802956103512048589827913916700277705255789114639033878374126887014336317579491217175896576380185612322325031438623548820922110327652981442956734508492402722132373977512420525923224528861284535554681549353403100284761878323108099541770686712177022870209849817474557984436860489169909357987546537338102109803310896193424944597771653680610103736845898042074604067617597157558100356497017694996087261018624229504580662304018135439399048507707476565535601814506424338511384652420753264315863930040677763424983081035812207324032885903293010804451206116566055888581385160268180169202855774734480218918818622311752254873086790707549709353638357823092099093234631966783050095857063485549970124878884939727313608410841673478341371248242746794976204693739692563247840490459788488063941592552720040103372355653819311380436734523495688534049488251943741359171054133716485604799651281546173736951681111082002875791383080120914199895486141467626599839689127737333854498793156712081971716280871160722182039882485714175878617999729068960568859457287752528657783009705110030740629513808460832637642368065450618071343916456062834881517271052776723124947605496361501423065987116809106761464080712242060823996723187593535344362825070580730761668948582626293576691403594053472434320671219469284621491029666130963682387246885205523974867111495298953833169334963795254327455387403707656590743810915389231213981675614522301822792265811883355547803993214787183603348490547979925968108449983107601384101374773438664869971877428414129976815397666619224985000136075161044348590839496353422551305445513478959847324482873722122080661477997771719588558096314631695705307052638595484225025555645664927867898827487278620854181172205716077233608406171059810549896095523677637203707055441134876398881889402560435643346041050684833865386421063251586672173352646999602424313816261707031807669732750074889535409163891599225321817536410442591732495430190711612114276762670986213369672874579513869646525957213815080636686067194279570540594863253621388155322805017465695615418179657320918311421942084476577167915969850522432043823220285987316889306831407495395769770496964320293845107234477331198044729900813584997121979847415351206730592402286670048667662618893142343646389492630498988143980751081173269188737500727715948291803066789451606553713117926112499556506217896301671157953652139282423712095052724544508210932018742969652431116947522042183954094015335994307751145911945854744007670430322543034813597602378153273252581156269851728945338474903611151821936497110100549126652157702770295886019039719990206362603025267940234585705423238736317098606989223267453180456299656811865455687717550889977101247656485785649574372799337720832922536245863645821586151258744961879228686621558153486395759079268313379035805425421301431203808397360515110016928921539385798401481094355866680649697947131763275392042421126795196906693642825810180808950796271073171558235605883734305541838908520586403004449679757228793708731019051257119490072292087985712308156067275180195035109736551739738631876563710275889774149645007304083296741186698226172391429195865357832057797318097759110848521240910235362180939243038068879772925106935092970170191248998959254692554685505907928739105562029565188293792036415795740878267562144844086295506680151593237334544199846783788534007680724549261671203600889973573899483665543757708996789775595815577178184913563799010324663023646272247096030618924016128687087863706925575877529193753934217818499063257723678599557273781468093587165853612101339864471239768369407828562855950566132375285790142428018299588182653974327614649807939365913245900057915102449569751958140194604982793746902977384575811568452477875555468365733739109005869311112404320493919695315455582414771999231466023919193846884964101488415815168401858450605558489594644300072568404506897013121765502702044594995544663643817238361832560144985618252135497833079443129828740402836494178995725597709550937618710996297292264568324588609224443970956287290626262192172134770314059448422545252251590974291856082114893462309858196096088382808954593772680497291496294180470376553082275050236563181878450041083073612234175384968521912030018508242593687464908872133170348501221740950346385689764120254302989525938979847119737284083214272853162248059789444925098397056333720386696800502987853153834257230232334465220628920781901383596941008240448214444228782590092689254262045990174162611070624760952839681600262895925851292299971880955170760309508379538836945331960814992492661467653494286250391356228003991810843228040301624734699323230172144220730454091569072605441182204827512869664678677636151311025690815902636977795532352076562640101511421454473104014896280079442368258066565576267809801591596148020199838238523857711612106773706013165586615882554076936270837132964470652470947660246800410706686786451743637003616289532262841466610455769971456699159818585368613049486375778415877585998988097926410336240759140901804881501206535328898066736878913001044220189324113903054493291404586958485691950241386357838074241727784599731255982550683824950557324939308637356212905319659601978000451401002423568548740724679276341695220758089160267347804103578639035831012148061555682789723478578193064005184269054191589816679020780174611067610654880627340628837388226488402891311208518062144152661334112533223761593390615029984415912296605488767364882301538307146480066136824518370135880807669016691162239992560550469678032916163821802999249958283268974135959281202940485343555802029841535291018153227595776618064024643077835575856893522470962964858734843086395790603868329759376780190744872785931052000095133328965421309854265385131726128503062898202456879572789951389399096151107204827512775966871274459858571228530641491440865249551307765646769608734874301543092448210350022473379119708730939188650572930211618605740196884259597598289723762824823117982329251060310556258183464600812335870002874290129966228747954341535035003135596948060419695828795214982356758883299717094332157278782510187556692833725885501263205129668079042277969341142641027101515209426454316507219706767213847102842414127629099106867281767415363192908104892030763825704643241702371678027628352202649009640015102878681076670545824012299833001360502144235815165893581061230406665890217722735093212026335709190281723956149624589709454044610005121052720401363102551046471492485183902178032166408437015068264293201503977985704293952209692070286127002237508957837908750990432379182454513301679829344780527526280762887189256188759913640893815862781777216157744804458885262210699610085228689084680130038596682648655527510599890145689311692633853426380624366074650566385593782553940050485047643947266776895205070736831422289462136611575564718744490746329858441983875214280530261512915843087236913013536995140946448531408092367532051001754301288413965787798011314036843930758350474831571999656408332993868812373442482292734443754504759973882277120467139903875357738952348189052835787766351785741763422086851124707359170631969173995603424744494047171738049323964157718541757117420306408005101961230130654363516693765094389096631931136136680010937824285217753393891093916721741226477350337423177895830619936258798319739278347043674279929096280322338496956545849013478084164702256259338004064139709637071557413793600286315036527160013114313083846317595824452184005078333317041706885707011233576469820623721138724782880758613841765084726341421343790932737032875990487458796127019872621972641914189240582074243963267540323223758967363051081160230256781644772675626429959997221009110634126637650394121016594914387304951595533030169878658653085104384227051800217134041464803863188586746056427237068974786858201410810757572364432457668420734102580759978386926169128961637283102027854578002401005379426904014939976805064779758613104959923350032032195900403847960873097030900366839169416516996358408458243313299832634931845519731217283302904697151347445927692888956376154265944820341161534057781335359382337066158675037524133226481529194817081484233634827646827408574600917933824645395326672758297912391472498741219187289062409220997956029860560971076451666380170914338663621371451802857038914379905351181777911207679740095592861479897910540439665535250514174565945142529083301535578386279291911768744809022640088070445456723770065849269637293049276580575909419651049245322987473798286119891861011591512860509970073569136043123446210434230709964812125621182125055529969993044906528259733748103740879785541464103993242869672989617965467650482054788304343341185188352998947326649620115985220610712763895896449484648171943008236992668632778325970303714216537197951008990215973358755239989355718966401919984899759143039856991204371618491432730671485796468530582501118797029451605474250017443497637091396242660003004478927510347682721881806882133732319068210572150515654243824150770866601803122607170672354375521113286428883934551189485877402240051194933030991869690127355680528035177713108298776702346518021721531411225283656291719085698864630290745781894912320094185268151296467540874294196070067204623434239559588515525635217153914778100270665614374092610864031331851745216755457063878254998648909531512784128520090813341761212045467888915516380338326585481624422790337957352638141903311172066893637423437169491874057954203590428444990475168124420860282131932399430167317773096476228236077722524400750027821988839064348541132058179742311207825279367924907767268997069528631368735075477158504678718760420678624385291690573354364959494912056925539076364876111218588390356513025724645066199529136053560619706797979729227037012663999554432989611412110626393351815984140664636850879795362167249609409250857132412388830743890725001444184722640771869077486372414050431542051727588902641102182521250946739228867100453647475650118008375440948526175651501790143631342468591288662381569756973916285309074167342444354385413374189673511793117552001289425727833735892261857448726692822971195865632784748431930993007620870625429292613998494972287091609134444104311158850654894555450943441763724781343269183743822422750985212277056525502623453796483446200608523716670212375172161799877551049386351145321739845385567511141929046955551792742316517902061573821951266385190305694625541901804806178379650496011677911881856288560971268538768873623234666700682546791522612166497573887333628212464604921740449157531472974431151331495187788049468415889582588301825058612772584429156744827419042275741202713537288245212905022925093036612788737304135759043324473031513346544162986866426479344473362977239992184330611528854874681918659914896212503962335544917381343502045249335215450209752943039566922938145811667759625769648294962059348516869674275607695209607099148097920058568795872667893569556802572839917752771189600160005768109636048991969082250170706129770628556817356496448209417919394589143263612541857441554668789874099287417126767887038113934063996178347670858190794990305730005118098812865096550198800180076445909431567387169896475507120408670463387447627566097747681827485426781744409576536649538957420212855677361846758760685069373132653502074223837072202128870430858611021448546676134516225992052011243002798935997664856336609507246840919957860220697608809143181661672777979153454807860839919385548643800619357967799382688910261511012012800547461193453739045853934546611755772002002794835889616270313582979948218319741712980505954144040825135061544631453726194067847306788833190828585362119530607131445671195366283855657221899596879228143689574647971207408483744556420283918275524092423496449780206926249250372696010827158046097655989095393867350066215418549604221587195429290474872987510036659604198963897298816013094353591195858329930161468530394304722534791563275854738882514193849380037312725433358301816915223925502159073376216909424525031434301698929122829781152541302398113644784937974585313216808493904432025768230975247515761162638529845214229904262759811036483420341483161333981271907317238685181294286911168890911463796277172130611537907748076975375269954174317095809035932185197382753739002111209603871344299204505604239275314723645306814875975048305859603323516907291915163654968990402464386099328510468870247980613459344467858106466857359678459626168457987715634623990341054202707261657152100089665370744530610119266893174564834293814027945640184041012319957280678164189162078963847998596688054799916891699400917309173289339731827529342939219280743447874286478777394837105773431475078469303916667667506832287219518537842557730197582377210247981068499731953057358145709975184671454715555953770486230139811502692138692770637815397624398487639183470399847290312546612790501437126031688799735530456366447115392214455365094718691214891772715460623294901084712954742906705302125142398879772352460216042007665681658390274502896062023390454553218875275108160866685949777306426070524241590589929071674764612447495218897622929763117484013365242683013956806623033331495124798643323038717172516508579554610202142270263516024391060802193103076028484900912788629507591324454406142649343426192518793988084924394022992727821206458888286979904722511064414746009711982787944070639503331420105004262536375618328098745785026284810788583020065606137113189891644431641570124157462702571094867019719401737201205602681066766319587202258623373825016108123753278971364281652497097099971912674036345967343374243090807794007220283103566023704448721426682484638239596115173759283053658714808434348162323315858718566326367497248652122962124395249615514649106397847688089029298904591186849794388479946271638878571307191921640779556739103457764071574032638820438811337872721582846898223090334427121073235581637979405002161456885639848711127146075909286585728742982215904565430496399336920035554273694199348127355923098732145671310311229259176309933785343236716136318788361157767575549488223065327102402742296434645650266453849897551941403097208381385487464119151805922685326187365104357811928260145209553170423119650281135722744204006557095964275818830573994376934168640174108564965783805145541550552900251602351927661521840361840690159646396883708503445114277228363353030451136207848719552096720196677804354303806741397976467220002770386904352301386881358024206541748796118330232150738962556525247499156227888515716993550663043873721188567436308802810461230021543059935742464606381865597721828253713831300742422042393310810808313746872183957991322439095992999213025002392890095349064420286211386614128441059313211339685014388014469609899976231380753774364014407700450570180878228964145081053674233680226013804213831229322044962154741505604540956678373283597951649193471025426444199431465848889259121278426721159608510252459427368807630188127827453860226110252053313250300650400826865698534199604535116983814086382389934604361148581061880664187232269133481220058809176814590760340400123774538920843885168117889757871039501415581996296807562320770076154630500887999892321357974581471481205249390035697818887759626021491122752071728422670540293844569603814246533327610688775040457519235048611600793525728599220027118646474233733105724293663174946146080275097798729824326871832383025988018266500731812602781428623914427262641596660960214453383059367279759537597990122712205025819145921993405992907363913521192585899260713383512609060701932172849953871046232161755411699374972732497585953915227529742348569019457216922067468666111639218530761266930654713499596569538770997723275227009925246843278168876026336510843205730251052260731152044376268135628298477304693875296713670633793524335639440178891064303152594651353344344560424513601696822068499835097948226024379206140838493051943034622180915196177664679079126826110938338531329345587069813698673401587170852166177234497588656152990332405208624769768973149054740846116187479821575842082081610974886996058171042434483304210869508521079232732204426942347318304117911042906167128124209851032612747954150913852560051068349516946314056254727624828434427993628206043608650547148135843397615920043314116289615154543233519850771622916316293363724797847585868798155204580983627730400854247153737148757367641882722231897238757624765324233138752946381626573223945902811270941998538681654653758280363484796459134817662658639573496258138474543155736614431907062402764276828737945542163597428678274160903992051276664953848064007453593322979822899113831715735010579195891027939789700204524173654653956519418685615763225560430344833471317071051531197054629724289254510389649061820572709760688451870482379360482597946466326482679490361015314070103103674894841370797603535225078295254570606152107477701484055257991624762214029152346357307514041483373521682677566848489000927694895278554215867898519233328908701534386500103638651211076939288112048522771771922072445455198730701233722973488368987491810670302579718429840075988737500111003466003712394581048628877876579427281122457233368373241271948057424206495259836726751446360370238796903870753240657528521636823067379804263675552841714324565599976559474189439558335307373201841505108707354162686455229743375844544874938462490570982324910594535914534382957997056594887583120333381720534074636423029083109927779413041158688274664574286289305057825244025713562267807410500898187036043490875970944956840787222883716470991460311351236037697869425895138269486338747704912776708293833310733388725499736117706014029400540299284773375213136202205911690712853874156583212339678340864400429476415707945187319656969429461474676321479585171436541554645764519530436836309013912934034988800915397037922863786178514805289740953832743068602546187274431163899661852798437028251319302626821486277382640622160218906486534797960779062872819637329999292609430258503093494964337618221249493835315972243306401457096534881396727915402804099060530896213934235489188283443088649923790634001623008579842171494653092298365906821348562927807532531497306406216367505077163795618112985563371163694257512273798573627759043772962037865856441374317438985879594965130314458385239709480415215330672893752372049923277476045905859001684706156874660360874438473761679631031218747998840600635635624235585326156437137197185230127473502064509442026237593881636378855480669800182238240648118847518076139819949188534556144861535984549464023380836864374139379374005609121477981029475129869322544406307424838015661486987731498866209915783507579562057422482762784472984500442433383348765371021744377119747561172361187007179430514012225471886239776713282538680255475092016342342887760068702762996656039355789718051963158108423897537955824775260961132150872156473648961793259801269259795728566643874299639640730455334492251435510031661877415822146562015685056248264349860010533196482709745204158596639477665465687199949175902341149118490510510723296926689841164963395593893402647006639507825709670050414641756081264172418944967629295840426280694110052025590886200862601827694537995425402531296473186314859739932046359882461246722611574089865403118817448424742093147378659377816783063664699062404423283198607032551233672689800392227693427431674909227860636699172424673716922486117019416657139100739136398571848028118661484415246105867906164118085170867486268133617041022738546421197945345443013677069111178840677562834624088161344390538299282580191583160609420652834948161566299993600589525005408067238123993175981895015113652444185207285832874113357055540343319768009152308687861061055978146319380810048615456489477611089884495609315336411005675995079094456189594497450237142561115576540134342956747805637232940962572508706603028352715420083654329581969239932738458503475883896757645778291265749009367257775350056335378708552578715391545966860690030634685172143198116335045842390614760045856126184014313101356106700882568020729895765834543192914966085384195353114698018799418198975879508465988886391730851295058844755250415789952719346877833737678308715170957548157042605863873576786707347180928701596273936216243191610331867651122365513086269817333326029656281290407975499097334473729995197052366567119257089407436169816344702564850168695602989418890259128641483649288656627315151078466275161786291389563956453105612059153245482416084645401226231726216569293414455167099083045222061087387514120393709062077703520588895055848536562297988057454695755153206648883493033371834962416414394803580246722378225819072206359274118392818368989547152666938892179937881975201036158206068379421024948427015229271558688934938598492443614004732511152269015542762458299128667621758423350577525210836479290169493728849468570841430231816094184135821277948486194812691561784278659293807210457398040518773233461968105208809456521178586400126421408639763478489774470388836219152580947432171141113175562962940315200526636695456466615286326087726171520667285639817904064469115619306067042057214684958341672979173921221699799954742800598922239745506823916017381383359890221390222831803596830996877998520861980425856224550549243885224304170802713139660299998278121420686320454115816286425168182310417679194650939150130899561293365987159503356321845737868290787082279925335331724681323089287733632803985983690012690234365274063656550260003651460066560142336274715563234913938544801509410182764739896640753758231587775050155005675384433647580970945029072490180502313442276930053538655922580379622130755784543403528863624091973767068725366761161462454873430069980985865532442046923815588884095146735623195242395884542089224336694047386668630949084245428500846451406812196836150920931712859690612555975197284056617619487685179737365908760200298152262310915031281712523482883379011181248611137564668071606321080890882452040579301956066704412146407452730904292670210118851306577378500254016586267797964875479862895549373738155674398928173775806657978561778597928194497023847636561822508954071724648594297565553962328930908436172792064601188450696957343049803017283780348866388988430600823169502109149707245239008050593200905054779022294477895680205482396453120317407210128714004002723157579614700222620884686997643459559274003256077792636020150527685916573075576421943967998734323835413280033942780809950056765143067442562696867516910674146045841792292298325212806432438336726836057350092019562019216123563974823148650612150398587883104128036969839637504503881119234695804382986233950407777233433878284799614683776680465018045791666436790154130929984170962885496585925758286188198129405194882372035670818973163147706430988672635946570475568776872789383679911968198002532247360903025014412307879453331436275937197593788061074423486744915161866084888685294961627054654133334241048634771494771699906047904643254266016786999558358544579687853942631870724222629228376187400364159473147860762600455524141474598218580035239964172497021235818937965561222594857587838203272410075555656410534758632996923749139510531406728154049134861295897485908421153843144749529206841250230925214455158692699328166987641670191590700530793688781641083049937828606892617475344364283721080994392247078478496917179117257049099904513739856025840653179485730543623850034835387423532937769038294152181459862839884370909962437961549715240528674845398677160929461484628223214288878705234930606632305962029594556506230985803923146237350087116125861686247992816838301858326421509681599396246621315218485620770320822038799305539926285906681921924767149971041601555059881437365694661192532412855435016117938987023510852840698471826954871076764055542964114033843906861089750629149904101379651065091157133377667476923862557009601054607385862633771223107075737448279586554573981346499617846676605668806084089548373844954314381825499603683250772350927963622082989629123131116998739917981421991039575034511437049018499401303287297025803019800462203153629877053121429471186486650718743136642930985047711486731161275472929898243507447787169358613769911797361626088128950485074126845001429678616158044935721270773915031679496692217282125010264534282592247881954300960875330564311849310578530036059424930779736300406187623712598640635668573982414728774673378535885457677644662264408245330096747647528059631482901618387936027695071380878396085139425989600839092730187716183125482734390091797240389430460273038959975133278602016662026247105687480878098684830750768931678112868434118781907685412632298433950114150286359543977412712779871668662041149792151967605948009363739853647596606286025455615567226263780310916219755006419274363889555657546323857442437951172166314965712147342617922853455518805786346747471382385211175414445237497470693903623597254051679170686818098395707940582635499169324645541509589821141907710240460384491760464387155451069645086382123045765575658180056258945123597144399937085933397294486197484829344483205514697916368822437774824720926582243346086021485821934850716416744298684311385754019806189532021042012684195777933008697739488702400094810507723429023626485506084642142556872350075482645696830685658062178192993922010155585038341778610378479842700490029844996818992259748705516376806972044803489638878204828473498226588530091332206658747848117732936302607588436710056770325869493487896092801397136574508181641274087898011290858341288209940541310702851289476894221862081810413127978310442914632986622751116826740814010804264805731572476193286004519451389263032359151442479518229363822271572364427353709845263743411531730417260944645487872042587422308704932104779901048645429404576027141612411882575702982921473530910507543208371980791804885384231354346481163700446859221631384590126488999870012269423310484865144247593155184162649208079575057278856722164335062503237634471713001839479636019545197370520251299203208106970042010149713488049073035343885467779194991305746758123577688420686013662098748954771733458009231731295756926755901961930095752060444188208251118570478092054517695917388107256401892506158211993345606397170615526487287980218113053094203745718175976906747121025015765488386714414135415063825675762064347214406509184364486851882879334054378280054907227163778516285120744353834049600473213859303530433831138072492584681511063464469357169851427024400378579561859177355165451816191905185368482810244790593348681316284504673374207808248240699235812172409859637075256994100657967677797260579308334552832317841781079188179817747218332914268700938818849810424391390303755057416529292075660153360311607507128231373074743087876520870591092975707440310162618055628532933241274247385880850469036431143491311640374289812684314447491136738348294850569896928902958513400798577487255702083521785870073072215445754063983437699542150735955927152202434431521253268531821939281170843027299631375235295852433573063787621795785882486270671364277772622031683179448521279460599531917839477409696623492710295882912127102604379046751488443621686954058141033956038908960306061618060602578938910942947984226996197240779221650164324688875447239377119099614239183865874041687287147587478834231708961575157713979778605799647758565597921327666407274011083486444358388579482299233672551435994869271837390220452897321399044920363605718425706724416618338353379975538482485181929733592098852153943994391948938119364486631295234504646594940995927762831664991434022627805520133548023127400033291631383295238639402541930634444461818943079802344976715599882310511035940245364362689114175144686117050649213919739996374172645460716778896547680499660316226929179425808374498895607015594752144365008795707198003916691829906350353698227609210761985544410445501109283721596782757165393340148584936254335164827305322705944060467268950720205626380651481280348340114576245379683857076389639682414271653655769556647859578021590027186936011570141691114052266400010627449695671577937065379192210137352458930506929121713348232515362179217882711229703919676778570772759767901950502104110240948550095665589277853715815481605662253290042189585784565158194648894894046576400356179097594637407575931787416633324252595902532640324304939337539706937208286353757276599041885295237468125614195588765073416927166087392432804552778838981933601637367917712803477899758873575832848981463885403324744318412563566102323362617140392404678209916461704297327255269463641700987633619124696144702291604934722432557124658962321376221484827407099186975534761752371944146701186564883943378206247662063494866408621271435040314559909672167802400295621443836598508800062544526884583049580436886330214932782148279536322634438608468189513803557800949097738264416586908561903065358653525235793487946264122960503231290540168943646393859967665319627029911750577145327993805435968538166012923156143571092721530218307948671715774997257505724119820195003701659647331125496721880418746184886469731619475566147952388308840584275866994684793878754069163169378884442592066842269883667225984598888763444496209194896939525170854744030785831903413480773195061556181380826659679194258489517927342801210109153883931812131979387152475235745785626624044241712654776575772298550518858560641388873608378206760596878471163093108638845371741605214719312595254477593720823513761994838289106131632792697534352686863724145873462876136732753485462368126825134854870100442914836797602155562899246646664728537427328288230774258199334834913500323008854775694696517997936653772377499125441977930399297874799083599373318164575364517183306003456697082519718083648903316995403748819390605694642064068532070151317577901980986218134384474935195758228466971049656535072838381990869634096120631259597210194448768472020611686967180923411265406464805204844968019311570042386493003483710981538781436938513398850360966516885973698427167305093150732950075997679090041242495748429818644681457430853739464531580985467393223840755117636468031663068308102257435912440795096726266225433196049064194122581585672664903101676414030938956344176657028940337839775003990414263867909975466209785981761693347290763355422849821325478626539576971931464557967891151245049604693801782753232935652307699824080280422631359244587838701996355266360128398031704936798384197275564517687266186281605443083468955643058529571263514059723053415766215007374633495619665013682158431320381302687350941685041287279857218067351010842672363011516248871812622353604026740408118336027033533563586295851360314575201439398997409473331950529404124335353949310074038360975481478620269426481596855160772970436926631574451287567050795566018019233509360633388375913765558335704888749303427844675676132322414814887499122409915849579471450047915841455674137171529497073639739062735406222540778211750678974378390311816567489304935612286955392305126409267852407919073967526984008248598356713030164319975917320193467511302861027662360440501083080197845762901677192439624278651591526561713039489189784168376567842715518360360309496380984660702311438175968495400650190891850016413727084592656189549299516117583358214391630254739896192911584291504782219300171519774037748490883424544855761734162439052033258410505629326726061189922148009249026485142611345399308647623920551290739337739503842199432244919877459286948295344823547370172773973869030083914410700784419874653921329540879060916946552274196571185614260491600943240110646250988797801545030317715473151041054760105268417840781818025464463399845576847201671563647489110728557497155770392279806219670644050912969638020877552713589444681817609638539666808665704958872867834939139538477933661865350023349907584531655035564330704334671751431790530744885086681832757542909313483101860131916785576454592241935665332820322084659383997593686308578290162563833257952193800479501808086252279267029370521089497337328259640804139113486481197939054682695784737122111101730893328286033365520397966839133762976972057563090223911896468729332028510393523291658684220850800755852008775514561012803672933037544148802737653909831058528000; 22 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 9, 74, 9498, 105514352, 12132987018696132, 402960641314713272220702085962149, 215025648012337366259020793244752338440286200609887054713707304747, 131661114599513947595710182205897615966629300814437124601215433887788470998978233757854795275477565720297366868261795616248751772103, 93652775757005603762120961074644739558482921131365464615836641752449261920236703489671041714577670192498783198805885836745645641652195576029040646162248800165435975441780846647625292030882491571610361508589317214139321049796529060402715622056760413006622377989234, 12708742276872144182324054197980158971791058844213848210000829833862690141526962827753646595913880141492621069466504770106406676318450235539390924644477207687761319681159274838711079563137234569132741707648632633349253955711450189667656831493616447985387052020463821961871317100476492126111157421310109819993847750450583323164036182415031370802365327468746664111828795786708668138057880188451406734034314343275938005978712542085736755669842657643215373869151925754555553208242636947493687102511787672736772310898949068980394552, 287659439627678808185803770019474947500442989111415642657608561543964379092355349892034953626966785995035016174423084031372258664023850675019704479876804797798887186121960964217138159348752238402322845120206505539701904685043912580809960153208999342476344593302824552884922523985222788733844975001400665867096574581107451207189622537433141000415803342222080041643695459498259842243242238529417518773142246472533784007721196774394192540993782052287968668979495084405030710108950695603836915537219298045732601075459699178976558891818021687723832431681879934856226168505092970887296682897661842674704047949875238862245606447578594815698057645236439840627315229890944661583949540673305055406532716513099734064107322491472494380410180449628456485103286249431709507389414289354675530884543147779588206156785376343034286681955197690413533403562988838742398483933999995265528619151928485488151752566542847362011351269754233205089259631852466840883936598001676978052149063101973437371243046700797452537754913606991671556663787889334380856012999336165912802771337, 170561527840536880437761347017513353498396880769066019302772400262270857569633642245009118024694381436651143779272205352981715827684082802495902191946474301643429035114067831101702610962007004382192986707128859681241212616601097493727319953924787779503181809885927041216811328028639942294597140834625410326984695176152229130593428104577617182218520212549497027474121025961827883119975940032734139573478109349513326187433372921793240103179353355667597429757113468156781551576533701035184625294392621604581019379499402843171329529740543510998859182245511137022479957355228197870647067489363263510985380855790001830746049739109152934211815496484930674720697039652003478909947433330131229827439501090326125319757504606591663925030427094438422140060807990108313572727801155039043362050581040697526764581014306042104444778020766066192408744142151225089481926925814196781703978852065906560633224515066398150050513905029748944150451898237870091394719778270685572211976934690799633738699196368499866270804754221722119941273070285400801080148114662862858128612536242680723205739781903148443714678315019454508782229910629660786263547278252247116723153466167085155515609499784410232203799696802067764915945142988857761287387598705188705468116153224122309864061847587056432752526384050744133017566879578692042606261090012657428368858175484804638679101233291406234551324255842064684606172264574595781044633541395941899872098360864367382823804074531155162954170336895577644478632485464549794156922864259625404212245784396378938345907464788452016307615140169424860906425241513995468248718028387845226894085100418470579503384798217101975772145171664616580284514805422918149407391887664654378186525129319105319449511014288792126279560227212863415457316364388388249151376680417569635954502921582372563907183243104239653466082746027731061427259430764471893568404707122734161048139339527892347377999653461114850043650365826472320061973056058363466760659806914098777176847831561021910446314125160192245491587063546152755888329896378386811736001765013865769979622298934462325326025977195053906804330670128914087646012878069805129, 109753952832905732529900811722577910025083740422471017692234015129462760904307880567411062842569786357986893681891943968406180256100969784378732687904538913566722456796196318905392472885366819424101698338208118624629117642472005420393861455326918961269195856253104214805129760147236705328925352758878835754483434741972578493920577007995201534120384569634822618901956232704561004554990977577602713536674851467357511201460248680004921039610168965986288010128880415311651659773250246086450250137656044656262349063611729130422156343711041052916972284938751291699823733407529266238190733491913191536121952623162231685201166361928269743188187048573805804632737287550874411411916121575780415825229807589568938540910556655718730463378182463313698882989043024908839532132883333765091812049234339013483797945179810452569418598220255682337448376400160792480219762310977402686280949665121498576169314677762012812585844079973417432698204790640186966150476027096742405219045040781908161979233287557158029111746086908553499212377733071134032059541094213596457406671272224516022729231297680226181305819564473657452398670445996179981486760098661088050324194002833857603599746123625189388851155974292293386547391370468837423885429846710137485034501144969497596090186921201761880558798490564936575494399074436605862449632576861276019310744542165280142116590178171876208147502883027682956351175427360574370846812450943768648058921816259467139440128247484123693268302410313858337025181929382752415312229520355774748902118426568793728235412012673934154611431379132167682156018848872771283082328683863038157215700751266134269865571347710265626730049500021080716829632201772382047191663279290365614322304083842645574016359548294796832775017970195547202097673265394545134184470837731399277645944227101707151688168755096218329709231596639889315216241350842938793051596110085736202382477374754355084803880891943519693999113043929834015545467613788047513219896724590998670231495324652357062854458301747568412345727559769487244545543141321357967462652534870502032273043404850601671320155456950115528353855870957412365044486609215475894740762566625346979750633932123525204031868629665156973249434829217045387948114012674775025792105122745621983467776752561004965105729473045353628802227991297027487673563391119796819131413624616111898556413562421367869669505679653436065610111139681329977784392941500056684939278582608525609133417692982294478386322510703916902179632212555198378599658529554107619327342772284145573433687231933271490953985945975831940823382936298916005093512680113776403417380505562236357085495251937694307228085312432487101650175660562249174308090471286471547415668924436039196534521241552636098556420195012323270455561841808937715257380011905745039047521063510100302302477457623579535801574295382734194130075729111400719048217857644083446933054533215042569020546367862139897545203734250309137891808985461841575206505795255343699014116410017878340683197061597889900734603112014547467994359142334147689842447793764878479905995140068610807937247977875798598924148280192369355520453007945571090037948436434002523831027070126193033653617404607945450762827315540382030075851243796683827215363448145659303968422586476134567566159022058209083201629218329559173289411522197894547516454975232798279249233336293836703228095384634071004407206616355876240009083056474030190599854178119918208157269119067452615719337709143614933890399601748912715840694729210819925239292360161951000339751932824787979788753194857702906606557684296839407729040289953692289340384801347511132007128106426663156572714726771328607274115507410382275918883377679024762891751344895591336314174828028761540928720406441266537933522468601742699701691610592879089972453344953595166275389858271310667518954025166701804275098664890159245789649519871234447723285177949719194274868187284043894049688101308932231916874210471581062484514293245956109128248832015169539563732746723894561933954930464078849952402142774896241522553090436242818687521891013290606202453922766358778247150196207465196453631238770913961948791906233402521528147845922047096995328120149232289501959569591200717374794917315243010542091306043906827468516414276423080558677224683974411149130652441773871, 64333249852040313828945235661540125227542980637415698782645247025891503013400471829057429966033162095292894287292983452508981208192560214221651917061837378681136688577104541039294655829344189384613228663963820903760376091101101026016474080752739086592749389405009617672891861175985004985823634968921877611279444544447891626834991268915772488111498253495105554128260472455017307517302903418972755491747497939356879258298834508535678173876817163288759604396854300915385451421098473038706390078922238248947113777487512370751065185606338933583626101513217931446413871604748148364243014946732523171001387103665018103917716182291955842620973846194363270959704540487433441921280966187529812175863805674319623311727833604847203237250513500070887487041035240070300068067668271812843206759782891694393430038023833998028205348694202183153732208840899597166906857877651441971414882586943524616033858566803666640466246293252152895697322856352670979976202894573095227603956725661263057375335454899095002866318150243942348860313585097974225834211457887919315503268225745898911685581355971166347959018705100781480662314447960703162802689433706509094672631613241867449975559895244471980838134660957206334736571934003627309955174898842945286471590632848032284443187266276530124635092375151215239600068618353059804961515223765011600732901425600966339704183656537383734220134270268556986209388978546323476591094171774277348362889395308755465969510382010625204607868308556357229837743013507359233958171635382452303570813221279714010195374561538913239439297632378199315917282727026330258812210124198376339491082479198408031286522692594316503589388283664470111204278755336113116725903970221879375158007742209586517618604217551283677952448921901745892467111864129159154210453965772138375184582863369652359745002607723215483327175423922684321922495987203445733586517022823920948923092199539531981961978359165904209292663185005604298563578066834520944136693050444372594843812069636599039816835693444842032924069873841762576045099077564196504978853163969539968636212310053543733677892002572069832186064839821266285764537723433733144353033644174402270149068902190564180566224415207769089748136373772826795236004438028875210312191561998690166603062839393948961515821027720271250508042629637324408138468918026537728250884082146106787253084887158828432021192026666121175418933661296607236627321093672664797638998491226175779651124362288521041511423400943042296650815655407868901654146871516822413714640550313660805673878241986224560707553628394405602022728557669842107973956232006442451280258910867535181782098804186165186996313420385342451915237874105701077744146349089369464753732664654410415660546243100299401202205337449512790249979728913695467042801590801645848296481055354314283265213609120229885666536394492016481727989887945785079698557979730648678482772758579493065005303232032263280332168779662549342552976964588838569077164085339343354747431095243034075086634825914778493084332876222665074559714601444541126634818625670331498891285204649616823535200385873134720870757114150844530853106452558637067830307171967669945979464458252409931896723355925661767580876996106260971435747659728688838410668139251546517178357383302986824717654226458247291351434572201696406516480453784358669799759673727083850882593842895856431700032456236209697404534230008875695697564537742756198112902907464622515006376391644924983715551637939932607927239164830119301292303034056516321249498729943878255012400383705477419486295675149813882366532179494332972410233163228274348401232424496563553632250556743243413768166463461241769148997516030685236777579328980013407648014868810198659347761464175305428385456202524989466024153368513289240202634332861894492929054970486214684141810827829669876115203240389443758399876982714431030045299972893324955310232100207774757321409199334890959493483166011786608291103459281843328972640239398061765968318357464546508941316928801292645257364249372594224598720755039961934217641135412405233910888320037897292475856551589891872902197519059600621374456639321873258995517460464039999049796320120247082671103968987293304338343574003034784758260784798289896921150468501960338777823726480178738398028102139881836782886610191641509021497770996282096419397562604420502138213210564316859707835793246876262879636086135084061337012096294799704179853327169184624406211346178331601209168627306378173032938146188864614804665438573462249421386228105840642444587530299785489074131076330599737792152734980713415635864443107020398875072621225107003790439603201803804494901668017893560226563543447797623158975181739130767682584157136503290631152758540969029030121737405146904335054685127920235782523666654625409991672671326486054482670984810736033237705617083009678223818929237460841016791571850836157931198778611701379672149041014364329764921503607465710820167829900652522361830459048666677590864336392434554907142751328585164622062558220429666405868739905179619218286959104022755697361016112159665936107663637309877350919251165264851277635087958742069606791304858501909242623653935907472282833706287962550067671456917144006228828540632681575323356891530560747499041121517636962334991816835465128205035827413965102129889188633778949846709637590319150337809020547851201634225709084368244815032540200848513900894969848031771080760487202742181765376791808528924609774174948117197213278163715179045334660299972420986983386884346204430714128944742946757146191872796869845839339643348793841865781520450221708999488283436728260614799214957406378376200944534252605710760904251638883839182770210343469409940142796511142749868178441784361336958882581421012582677545010188758500071192163044088251762299525952845881603888597979361927825117139858006574956740007433298329417009030229749103626795299568293231252125775201001127205823211538588990704984864773233101145784425750143637187406068421246070234556330394062538300739884375547097372416214729038079856993800104823371483388726509668932083125549221838330463655462079111742965941818332362752905141783317118583691862296925486202765565963059236816281961546327520759585325018975726573075472188379882246199283118892739450648120290366445798003406237997346873666655728123901025147516010115497257547282242039078657429503162845898811488538931809754065769541686475789604195065643750093084163785720272750184521732259600372122208426763404267331371501375261422785655430670742584071462997895156171363401602638711224215758219516647917681044608950257597351076983240992219371193534125957214971471328353651230318399617984455875167181847923591428179770101790124871922407089798110103564746606218724029542932777149953564914538978886265294927330913821461946379791758689118023615596494191433463738847829911395839278490107048367349705827617283854648377391505871198824394683566250501929270021078563662512842032454891452248131408686504117572686232810648409007714752770379501771924912802356666285189467323122532281239410657986230532127754713982080448215903437071563910265757615135328116404338435682049699994207011673336248602714592195601390962568445338860910816201905650061064256304085968186897020181030348929412257515186997570487101564077720507046012504464887073149910758739548676000259508379143071226593901588086028320788522023695801217850975297151030708414906707308035938279095605800411412033509198092236617711961094093991383435159067622430811113437621210175042055160421050980852792960686752730715929315072527134502101811129012457593597180676579443737981153267587085876565464424477803022689015899255822575133061252846364885611737203000426859528351144079867962645092794360378003612442575262827673990421838619790132310143118565429503015764580312322960465853570285048216459934695385430604734902882247249611961656351620463807144395107072022173574955586053891021141860524891542781720377560219469019893364649309191872982709285054197808949457245082151624703587416600305344056536081223078489176182066203107107943983925786097909670789250139490323955294145692309760429960335728643385020263347594890977344806822424768425394665547281831506467404530597453523856857525794417622373614827938892555348778543273233249927091976623607224471015481197109911541864071310648666350783279740595016028966239500400464190913847179809107634590347274859339895347017028976159370022103143441950600423460381354510372771845115209312194473065283128167641239446302382852565201960618967675522193782915190501633964981722629399769167781108008691842563064970674137067980561998337358, 59149661809944427920288237701008925784962582643831935578112468821019221925150708924170425649833949324411977028944822248302958190048733771098206952102145173767681350449538395422562933432819565260200772826270404195228366722035710723955226028982532423725071233275776696154900114088480914788061244565469486911428688023641021006862930673863461604468549953098024862042006417115590097055483070184516966413978044964037729103147224528285240641539823600369951784742889821853379475114527160139447923075866406302050576590649021629891483208407878257496415269613175116202138025174193616711291567171917063299944885118459164980350539406612377681221674672462548607162216862464417853386846647639788138925778739257897334700944771969503300117456029814136879517779178236704964523528777776282039605440124861408608519052463427703265758604028522918661143398902758945793885137184137699912668087368483587608564655429800304045429623756215716806043951225536461294916399124067836168706774798032971436430850031033453912418274031479979842454043843106211704105364244014132483989872174690779948168374131583102325354857014819628478528611978604265423844546440991943039870378762128988507859785813513416174889453419772713488044919228766953236640603340944156491861690331337899621363170115304051567266106396276179243072739673762300508822834319202434111686176254439928791990596598344133927753045324387671398758937829261274497484309993965557708309541553120912905138085536988488493446718269838361540058082963885910437690648384922627010902294033765029557365062391285770316315707741768623859116825401512455707256806802931911200873486368631137425670154364729926917112074291738074589328169115664326821833652476840795211720536445143941188894826701998247232280450158387166660430360434547960820761366287591298140198478493894655192900094223474862546932190756236766379658247328412501694349636747899891588140829921283491974609320782943067377787289056906869887309244028701288003603529815334144725310573935814339246259296310182517008276980403211023592180382887147753336163329894939956963002166888122619913617013531060106424894731652005186889721244683621233099533849283128252291193155759110171065460210406381071299154199786862351383977839165909035839138258128834538255103540057505899118519203772711640861287788052069963161076309581702689668507338333571576473050487613079373371348972681195535436362908541700424397396832776184992919280108255663923489674673597138839746754159931379738760522898725795886074163300700708374807158739940861661792058937476196819446958902807817475261165080697181321326237027160219172281494689906402542813635453197802263836122526361633706063281789243324089702357598710366323910384764957651059665001923688682312668228115292180072420530798828065337532651953841650087092210462342057364634850743355294281848748319054102051685824436937082366204373275548262610767488845103643527128625206493787007593733227868778862404063386105653567646766186633796970355258872780164304981151902542940498536042456301814843508750606650898432495311618116074878324607142430024971559277599086130091698436976083895129291695027272393517417248336546268705469576346916626913223948098623196930557757589731241406711891245499318533292058845686042102112173920283964536445540365893479779289797776263931642345709411902268958524471037982198836354561753647580063243350299336056202832086894668518122668586708354321464982399069107884112890407747446163363650092939299775046852381297263919305051507781582284784028021436454927096237148367153568044625019924346891660237670481671107866959231041304809539286427644689631151868875777170643695755060732843576717744596407373550333484784729087369652638905544703186891814015431881899126283151044341942932092668815012034258466814794096856342618877678217082106913604304482785392228099987209415900938221665539539926870659596963479465569131913354810484773567995090178183518719704349969240803236940643483776968963176194419754776321554750616149632428200376036966947087223794939504011334456743954003507271308741322006240292067268835194999441002330070086016758562098467396207773634394637969008341549146231657869596827106467881718197716259691555952418155202010996246315972152417267213712063557717407250703078385153917582874065719231285712569809497148666961122026389042004349993032305738812276640147848204078967413326615722315269767326646911123975474702688866237783064451462898637435365325332223291706452045967551357933963328371982099410697905210618194298822483498055838711054784579674838415130407722624726916066262416557636702346821340957437712137312463823128470585396570723585537000768334816597974019858746079434859117025629172021134168624618910057107869207117155308066675380280419785455590090305826401768763398601499193498057128827904389055782844018361584236444573895703201464107352641864017582644453734711697668475169845458223917925437739030917351631697738857550127145977734458525207701841952742122668082888840206858319341856246173318829878285515073615234376085317452976618573856405769983855891716000024621843490150763826511342159501749404518388038541566304319116634411882869222076115261731317091446561538742694668230369149486839560909706133776263927521674478614040113224438143087623426689951766548487936096150701484300440637243715696904710296558143130519141137899170482203153797848092457307549758722742532209893273535395737258273298934811274269679651639689880954494309910795008192630616957860162005654445783777623797268340044441797601218793253971509135125700901265709234124878803706081100062901309644025807995269319157890516063386509877546984887963565474187451572693894237470298501876092035170835548764814661689508324843893620813162552465284995009633832053817049780154372584256287412546600119914593046653267088287473690715062467784214780437083932484405715396468320467144892980159174113243898823019416680800316190878975503463896064134885247963591403888699843352719220858265351388394960050767155368325054587088924106722642463280915530848873789052329927465286057435968630027857567519788742706689771262962339272873388909982376014345773463201690925081739160355261512167045839807992983430376776402615550733191411253316814893109128387458603541374231628445367228799164335998778268916582667605487204797639190797659934887721614210259575633929663456223039711373824849133061482637583917637860585987340006188041335783961259959133706888070840517684754073157995084601124652370277451111290287469265174042631763753377287807100056744219119860603713711014958866931653729764240795756342261700011770393951068329908103798796571632352573044904116484042538543179261817366917056745268770097788746407087573932779140447563789178270485525017381425996962302419599511913876064881047478603978802643426310121158603399521028208328969865471623189494120589394897565306340238007723482684267986511395722905256759086479235092318137413887273247704861034836801079488477038345348567180764713043718032124517209915324144614326505672892327716952550774794985201587005620940067742908490406183472791237189998385851558124916895605010800673766587977937625490022235036081334525988623511090145634563426349719286449921563104281502292248508176004926478582016141430456194617742019007985845466246988473346194311320411914349835020262691179134987187730305800155816113304086689312535575310487703603864589025680509732732766089374699335777767273207445748236782406185656697393433052817580409955924592499792006242546358984161266190797354480811895189884950079491262531465227417041710227777552049032686826924352816227429895285628516059709911262719364725447204921120727333034571858915958391696322204621591631142918116690454336403453218609530941439486874783776767922913681012894560669192194418016587663122179901370370260861759365663966103572048996926330521718795942656102965522627563229676132210836877176565403866429994592576441003429638464837364708129384133978042164982804027216958457227551305705998155170010567506097525655807127910276910590752098681094879912839327543223318802651938323796240408295000970958403849819694513103020256221670573605813732606953007349551148284093348479104534107285702521116372280780601399265895284842134486369732561178384974894837872605724916130099731279806139295771303466541322699536476559565869580352534064279942845425038157913539283588826073158356857191783798275746847085562028584537202091130647128765435513487904927622545130231394755812710858251675148759027765014692150424898524534249698834708066019893874634874171477879508290139249685947349187954195984082927374014791026695941918636362833902462453762715979325697916606983549538005606000293679635498221182123573131585982457721589371436648427712873344027813494819594074451490560790815852866700656306803335768255139563572210627037625647591720563598910881552587850127955266899927922224133832407272869363714954006025716595980793213647212768841561828557196691474993936882863388583327348207909487413631233647994778484398013212975315110958507031938727577304141071280651805094022024650504368798173817819208444804250266677898676517852459551331196876801246943784296297289902631568051761761416148749876251929021457916133611055103838607387151996622492984415853584306826959385573958101970016977437175502674733651593622414873354316881900614611311926958281912228323791811864140838505554726577444506046582438802307059341918482341055791048785311276144438687598250729233594260329640264653777964278925591760211035920852301749866124434721236632864086227797918235811147413792731862738951883921025266190148670139299575047751994729769520459727197788507435768664716452332543568952204396585645070966748827020790471139092101093997858845447700276899526548546319989360827588032987272275733322485268573799292246828281425808978126595545923833314271732385872457356452660801740578590207577138459140823616571393848294991046796754572825598808352458247974305483928320610211193604057701221107464134660224014822268923839476045910757938636802728972876263801753916977915630060561817614749640845303550632886910414011113148251903368299852833363837270903420129437306070627564744709669981221794476138375194496595648229567829299989382686206419660248268688391681693540014669959734439905211057340621456392729368367509900228875779444638250856246798142724245930510893827367727691009947520263878201763760361661774052857240235446581559127521224323599402692177566112711944508046590414096546964212191819533746932626221660201591120850630311018282236118799091693383586560400829243132000179331089166387341752473331016847329869907423293781511985938776488006087503877086751459455495905746539808217566815651034441420181482995971545917961061529753202898433281268282531610037590257886839599233115782752887830080193401499122699866361813340706212951105163548638005372665130478210423576603735801929124395425092832902075086438284730406273677428221760659136832117610161408011924723250030769952377327858217524598909435462461336309776407085412607260944612770697624596001225506162889642217200385228713017231670835179995870827493669053401572368526079098127213908202323464424976433416147756492438114952861075331087844189778961549592472252898338403803491604819672391876904399439666022274856849535230132697328520720016687536444049584625576033186006759778606823642435563311913566380069098890522601624407757525740256929526408571487124564536221447360283755986224097258592107089853343922431981344399476940270837958333145930680488580386356288415578047159818153564373868973746294875829943925878006087495648752368391116121862585108440996306119490091718057984900958961594592883028442436685912731989738163664978870890758881833240777961679883392063990932097653425966366933810088631258976597992414974705815257502885856315073453421038892204194895608825478852297975914979460501157533466463451667815045784258612395229666667468543683679568851261748571278960623933486407151841382901187476634471572035241018616553913912841429598999829961122939660569638378387764703037747075242056351898051661179611200867105104310154559850262262580936590370641504269622293819385842081395855190959090703581445775506782270074795476058330806353458609230303030776796633968976061689486183784942454419979833424896689713674709234027359527912910371604839598370853669778579099111269661499284303810137137273434855848125631038900883305756015920975304737721722299846704533466522185969122427652859048871227426440757569508490370494560886910913022502620788231310119099406020665265632889968203544503730081663579831713014299353945779171063808507637841530409428399188189933951667573303993283924271966137574238701326615815361986170459044527705955355641470302067987843321044550686347601753249072905925418079074646149368907776572528688656313371794186912393794734800621278070079454875758049244696316734023699226913294774508858238281073037346328811667239670247731420382940090107115666249574842179105656666749343478759924990997671073198840278871290832064712124855402395209173348199629479255596348660643865324697028335551370353467366462018721991924373329438989006752315288479957928146231413009277893223827259355525705885982129551199969763761576789881460667689056393148716090166854371562626009790813910741949535509076432118073319035763205140603830487909275202890507416952172038854154546952645156995203833294696072029277167872629105009390965967186557089434535508757446081600940647861210614456608270688085726795111165538192081720484378021538850353489925194177374317309320337328895548496359770784463659020374052055016371926747787231999607975852933752401996117299796895030351609615603681399218726077599042459063946829945936837037870878629397063864288282189767882877659201806486606471240308645104839903109640108257341713632930660859242627450530268969473360748380803602968310729223313711157331302538654483967252424628880416977877797686604906290007671656225801737656500871511344071483684544341661023203922167908626265209834426559486164574191905931650796758487801396562253661315184014139284010436076079951564919348732341736341333360790100115099488510307075990559219109783891371336889104665960066059891235805574716806244709566409587550563423443326153733928001512526818665924526395259097067103745151339250472367572318747423871887769904540738208382341776025041018727901446725276876636742439111557084846387491825489726195228950532969095870361119520622636813763224107569356602665657685602514985720164118473694223436286324583485954566932279958281981204461557043120778023340679753705354112987406870250671668543015386247910966566342187646483115645556129999309400404513115027878295112569217771655562342498395453316604025656624384043352410173822537658001663098139839448882096517448526066337476524449397534862871907015162994737811592056874442358617640305325060846793513801685373056763799399227702588141142568640530021540451663403465263241202583011679928931860249230765175398257739418869991671179164513485009127529462133096096649542922348768355206320533877708748323372366362832535030499313894795973019107522937568264755293882184619060327381289571334083007404596354188174169956597593397135318123684095389144213730911396205620127048327688054903548293001701740945529914668374327147900636213875128368549837832666727338605639655775234371043264925949044044337139589382108264534618751872876097817578490826835718287692455328335879350153377904915288813503080878295844665388922819055788792525024042359157431968627099457649423694931531468650740561687427696658788252907063011346412508507254492703916605315781028794173285029843244422061053130006019028504505655902892096582431653380556818670429578846331767335169174023341328856022570674230647683206765192076964675767147888532968360615535427732820704560510949418956800122014969422746033271991340349500569886119167624712558602491120392138499455177850810318833384692638076937417378779127335983927157599761132358580372661895905989110573578365946133378011746584459265556641308531878901951149064475424576348137709372283457626813010041225975694207625134206455772405541541611679926112601962362995911975688712352383458741811414827455409299280452844363955948211321755242013261506189697714775794389056862104374683908132642298149589636111124437604028130861791264227804704489050994313429065876769054103818718649619846179914901171596689532468458997737553973210815710444063856664476729167402384648400788839077583024163995117170741607753908956742023610032050200774328764128109814261917193221926181363730533987776680139532943453643096752812050512810186094204939384995481260942271834132483824739886457172410040782511946100118634684274205878082930406722179675964098212406814491226556875861087567617917102328382250872661317554050706786732373545793331641604048420837901440357520905064465118409451946597248371903523270015599872771439258591470668165688326349583634009628241367663238941218016950601506042870634595039272180186285675977329927073826495536594560291903057077789835973469150517217561307218584925050947951008820815179866853589445954951370475225072281249478802937462567806179775517023084851246326997324165237727362229090254541621728842908270449193394108303342928020467787501155816160620913274817946590875, 6468694494147166637345403584132900370666426631015029196477700705692961451732999607170718610058508798612317001052702738439331015647347749719699972665755151227411668728979663022445114177155851769365454587545232082727001772200893023037833147969294887064914531453197696274504075641611102051518410695229856622526819501522712822997698091574937731592535677043468331402123694118911579285930330436905284904502186503515926661742044673808062934559119504997695679887067952848964864324309719166263875320474272908555640894267716770252366184647895278373886580346069844683454667756140613963788564253161827278826910029183847001756106465341017267666128898338787030607203076793741996346348555385613294768807876716989397366883585695536732411538599795623146051889812150174321729359950278262367553048561655591408996481040246177002733901718652900728582388994191396279409047120647384103108799143912627577581341453454913317771313073083190579774292653883380407914359603552092021887584694472192302202093497354870260485739396362342310822482163526294193271893012725719158571660905521885773754481790833152601676575349686628404725680475338788379752858892201181421747977896485531004940389350034014592499332018780776042182255418828576838335178948734602705289392393060225328455124772151202575924222720657072835778031135526394837865659565844735466495669333614038679383088979570683983951530387035094904917609820629438682599518561471665356768267841978578781620346877546253121394404606971778744600223962494285604842603772271446012144341225247947424220196361452103571377552743018806521754834341987592664491543047124268712115312316106414290119591980532454284455361277849832762242468927763814419266185344518701785883629965034479977116205902166936029039570934237170223252113279303016787205328447315797118996317031501210891624262656590658533880307713073634332109248661023702382681538458984069287342825658724496139934171159964508224682362052804245022860388767637342247938597422375998992243481857735371981867673580365477303089010129594498324134337226498006141398440506978110371243766829417611340034428366241177285006472447343744402615132889877581636603857381769318810773547647480361224677935093934004791025597236805431003664981673656896210513082669894783694098744041300674609115840919790614781749700800835891786412266632700152706683895330102116058965007838312066722341944315819713762171328510146058210405082813140115041079789574825653196709986343532703451269298393957038411145256662488064050266695222679080341971789649818676660283092189931100523688305489710687253831913936302615098552530513003226746784065642941490975419113582042549728596696816580000391901163271487619649186192907429822540431214676387950499222732891766903245648379979556302653876377299914253446767253124626551752759857252492554836417374908931002725412658773109891742968063806787425351420737788954248701776769414832179789824557024917145710577293870461557938096879241719841089693501463353578048835496293660175873018997320678464706715607659267179397924287745019214590297106114876083354828138086702441171979641374316282267567838947467214537844962639182360004226279966182922285427535598274985386437481269218938746983994882249306801339475387580032467227899131292105041748690112329613071066919406746939786920233732827222078537808660105562300118946097636645485222794010837216963661638220614381348443698070667631514103559461003541096819671819510170676999091576216542802130246199959418006170124361372305084130287907555180290311745407316758944418622036911710122459712199973866702404952688292801187938375039700013278073392122065762237059099710798850310128182299175417774074593790597948968901228341569404720976273144037130060095989573374223335161131374996829935553129587848595867667323973704323802667519213399260725362111413003295208324623339234563835767058083113359874033567678082410397429243699716633115230301494154828912607851950254666719237633585614743563932426859430164385935201447625373511107541697231722504421907355512935073763154574851388258024873098775392952500919602079333821233958040725938470651716202461563410752084592913778422816593734091543973446747986348202095799764916838042184325582113044062422119046088621966272986753930373324923212961347225657383618680318519671529931081703537050650600950464892804996310071235452170437552996072115894434386871164858317121280867132070982252836463723574908910561537808176964375486256673425591133913445139197425212679413070109723550289527774453294244160935783884510559850383391870958921755414908383185572834779237021488519878877736422950425977091735774750423747879452514224423630397987383894037156434467489021981762457084933037594865614756245282383888140612248880890464709107656174017784095015682394594236671711374112619069485942145047747252782729774559669833407309555863080057071993733464167976476716837162127423824486369009100314244837482775458633674644688982544945010050202554298793193851436132311288119759926761959266934153840769868471044642496820708490993313527603052497134468807436098543073716962895042071817454439671422830379584919341050848307236077677298684987114663436801155610774169888164874659295576081701513647248764543820082964406313271594330138750264248231612623308175121279128660220808227254085317209964097912286300742301720385814651993520167738302502530183019040239815022221855248418309848933591428744467669852836380679598885259784845950073105943486005811427235543354414704108415678063281504144005430208679884987143056514966396538234064228251435983681899106686139209091935002878874866310163924424439035645481524155724768795907120283376302137529963736325937242492649634834493504005302745125531704672475474496443072573610354466366905205875810512585082036388251474379047021269181423989817338647424091611572722077374133440940722497746148329262405850293438200621646693216173207961449220870359936339118640784723277030381259749050631871466200192317724904992082728107071053858777126573039203435291986661433035090771873024813587741939022908294324801288806529702166025399285527935237204657013697325853721633391582279728094685770195219527053737490637646939531497062940166506734233673417376132621495429751321561199531413410148910586551432751946265062964979985463903409916261501728415653500692609322573523922780474189216144364344024487180887088255378525292538729192280957667170387534336339879649468627241584572189578087681481832316269504944507144776583033170876536174870885411617098013857832200508058699749739151602976732542827054518928955613345869228499687340880717605358045387468210539425988339922685237014086575240261680440177154841350242565140750189403491172138925714159961092270671277620832561263492034286526282435663614300074233911998331107696178768368048472555210737826221995717246254686661788641964047713008976149306241265606402704611604183489645582847078892083782157359260504889402763376544039003893806660297165411072250735187455441941462738711329941873300668166209372798839131517812943100183850591163375587326627442770193946143515979584004669138232369171711529254276662081436902477330519405492585693572449945788098878188707986053483828227383837035485641840358071724070547452861713450304805499244973133790795782845276710107861624207360418922364190365873304399903334054834072520732753921740631219173177062278392767165075952175440850223942047725146694704226724987691334232516931747529944875907042905213386021250385159406742597992147900950188853089338184618349453974818768738046022343699231747509428284696460184674998164730168195725151456700082909425921648402122210901301412120972757243087948647777091013761705506398571204962379620865443812293618034418900621841412200926363789978761382300250008063519398355722042724390403589965847988475354170587886790002347940622622177728555500246993357605568666163091098608415523098446392784090049043880293111284520323797818054609753786995479873928182026946187983244567383498435494258514979101320654166041394052296986163501794434112491018317501559725946997766401911693043481126782619312505324283221665747000724548503300883789984938829405960637815246233213294155371407919250116391771651216760629748658007491768013160054797346758930543285942827512403890157335768735071875285784808724416045647866339680766475224955844189719078432511303152461023219925273233564541010365184100970025356693448068582599192094771585013763195053522170605822656510196797840933649662884697008397458597436977599371991273816196954117866059621467936059346452146884848898844422338627776158552559522388355206002429457828749954622274204429775616171046970127391040933023163423650339331388201060218045165197136649127015947003196767662468066753191254093228141565525407258973242201701978293115829230799263044304845950647972273328609157793301043438939941216705042461836616234433203676885196999099600281084596430422530165814118105355241305772092537956173457704048310808738000424229291554849879071565152192963149786957142848064845047469355126709770348010861174118420018441741365415709539422738493929397398727436672949934382173588724115205130791086588999600243038215434223431872144934985143656798058356532676188050256551832159636444382973082941806939261447792570673398805631656338665709175390669594696918099435090643370518959475095120407367563229983337190037178430539047102271525237534916339744963903777531206395204978013667195034498911511690322537041318917417672174497484532377394540011959530087868248028620676114429550228214977740711196960290061969632716083439982530820355635290808652996367740751915564397199099747019512537651938211101907869775061266092940017614524535038403823397409741506213293388035589520192343214744056351439383912759445663871636163434657480353047419185929801946449779666752266315148947037031288846746650034050101446217121087420880221233978435922367609269864426850890314268168963268013941522385807698851454765387493575590514620763959242318616597724298021411509542374012350828767880619630573866007937749775838348839047528532725076086398593835367997433883462584140372417668330210822041916733617864000440311421288307915269993514733232131155052804558452160843738320993116822285965071661264386657321177768358254322602960195233030170509840242854802546760273353339662208756254667529045613269839803828659625248487215684968322457037348938673179905897094534390664082220746506637404646970880002071898266780002073245928031855183983416218249448338374332454613060692907830639506684472433338948262178544125326614417868225220582494084410003802385071262216696756686167897655556589204798626338006506055450180620716930007637349492306577117013115657206117587288987586725514691850788013658207775883946213012348810836457904007881319443719269517956231880035787043180428898894659840218393813513363256488933431137381173174594361256641876226009928042745940180186892029835605483337520006298503571246617577522915957251661589177993485829643212659215781092192629540807533226770640967972779380546955951590222290021980007073851450958200598944666470390455455925697178266025128447638159414325301777247623865245115899694795075633654815665184597186328620493696668215870358622104513980267403764343951117059861447204814063734116995408043032450792496141231701718160094136293548449776508363087028071410203437041633461856724028539433447213711230507370862478630136471439372708704016453592600944531127986097738696523754350774581496856354696757436480818102042427199629281548865705144732191190471660783388268794009426876030720233479335437168466981098208203422326460034191488931337043857418920246474931980239610150349054221241863288587187864861841034684421460574390410856021024205007384612127307497269607129639863898971531277127511276137746177862650225892691372464210495716217712734863745329249663788838745854194371470140298207708029554954295443222845955008789576279733402034949814027496320966152763874640810216952154092198306551584640246729232129494601114012846144069746049854015304799291459979759582027180349168573966316276982809452703700195163295922209030865312062758730324927307608058621692365576056547594348209103329673227097006633460592732987040666121892722506309266984551365429992083821121801654113574988418844043601430506606797997855539504660596475142969309149576776957930653373155103838567771144508069182818633239813824439505366428175108564321990724916746834356613715167660029738931458210960592268138437262639644804585189593933576555025452342934283729826965060662339726917269766770734031458872160353727468637397897605144612052182813565126476052808763933813749360436499037398438141337031838464538524456536044894885637709415457558514874491804366657727112170567715230257932044115342915473572226062836007820425237482307982489432398952634965643108844292967711088989174891203375244296089290959105683932331601136528024111420847532542702699412937662693009346158953257746928096938571034366508184694978630792280375704922817545864494640212718287570672614645499560530903228262602332723490904444707491354184574474354449143361543196052073821869264539587039799549496641049575968047395185051762931985425493820171309353453859929996739786727847908076255075095037135923543711402917533562595522525887643244164634174114966611577730121264264598743403704929688310117118408289250682974783512563947785373692955676702202779708624154226488714186719108755956313309874549673727626955535706279259328754992938866123988746511765016862483802853254506134168570379805676030950321609118196302053197742214862850648832070241035440847531535354116506207030808026431504657262917487778976728990769047069769238647944797438099993828234970483169405680558844088441188466005285931435727343990945357754906851687204149579664216206716748056987509857269692508008761065084838508155791096251402675257024658632253002920024596150840161466212080208149909972924172853371714678212625921401653098204111045694154480364803165406876333689301160111146437005791527862012546749067057844902999870837529558883222705642937919097853739380168036771408927143649089734250286971354775567700225384917349241712960856021077991499542562383154060644955213024411918260388834951217639178402738564423594438828836565672176662092411951136279650823903898311198823846282224149059218096714136195637597507568149531555059768270557290334254445207784123051706125434998275094343735031544261424951167048942164942727806778636251367090954018076748705462908106593828205293401480082754461415894315502913636020732662549382366792833443612164719935065248984591480145349410172528578554005046813922180897871664335891870148452992067974893506071817421817208155617855204342448732633336474851694095704571584951705778870313998480428450151751260925885314163098845366463036716229899437990880525879638215771452982141250767835558479033707089934675658270201412260924421446747965829008787095664225878128615518955192574702692600667618053571025782186624297963568492945671582628598594281097439699628303371873931941453789230301159655650229975625025598469909103966561015459620587579430948052532062892384975063825038358403099310047077793586245660166829906421560109496053570737026749903566116657134167471683344229283261563238610346418488566431412133629668912643608154117444639521561998003427816252671275057477077069146986744583704934871175455387896088567690759432076852738613972317535527886724760022986394895651758876575080032677737403947852771189173362726609735282817526035605985758612908374980220635191579763262742384556167078770604903598945416789118091863981286139888560900533440998128566464138334825494497296884006434863699067414521457532785578080710485182158957327588871793983518381160799785120713139747649273753167635567129764938061131673746563174354356036022478842259393238150475934544386261026374669857378742061418921067912387049491178215283947551210030619997028090605463126318255149945879629540397430653152895690135442222434175555854751488741136788471512018016498735573957544545249671250342234647616796657936943747317345220316686419538644388584603833017412270322832801634182151659279819136506093147961958572484102196139118406602144742909593466279008823744543605026418366472034136901433913034356788107670174983515905057733652695230341215868406472185691291062609064382914160489614462106580544622660065748886888101106497288347564307393959926430933465408585138084246171184476061399652634655010198142512470561148777781056763412831221793742936479508326832163769800508272528608875883370277036434285300345745757706499630040585382365133213789067499284105647615605895089987604367302044286407786244852429102982653264968218898044560813791603440036151864428135175765012111054353375519806515969422496422127909356779271527509997791555320664292497632804106408621275994668931260288087989403071263930343593838445900721105655649711097104010762917873718354258743250516700319871009238931585277922828808187386628291446671195409490554594931865445575568971548238596785505036253838620275808432031606072493928814432570779699464206076380497206830032569754086782776649188148413316530952744479844321032665369321424382496111887011881945197543217060453497612036762854201027601987759219741435601251682262951789828756734772223575939150204976361083218903815063169173599116443945161409024310919780382928394368434561155065910966051202194958620544192791810780772684998278251923026408388085906262694118939199155470231796837691106367450259226598565595738356368343540728066997443395206795496353025327705290621356466515346166735418984903551484804635036000688724066444960604250832807074800132227981913792805538490365664107874117483933265581092494831669234390995849580728668811404963891947054248671797593426595802137359507925850485666418589627014176143125332197600582493187020105388356085149130790729968152190397417155570422310926928270558318219642055178327563674323988542282341218511581527183455698590200053368359452410062244468208430661677080691924075981060486669644861150382012873295637807625996165498424835733880137108137366505568456882433316443615894996924065624937401818571115511537762236056928431355961458680995852048351056945237004270274677304141934319730156451354071382326351491364227205535926406938292667300756561617314747841849304991507554383673755163010152744932493673498463260969841085334985553741420578613634697310288281744377537586408419513863384532439683856095757627633228485308793979170350774938040759914133272249376688396760514499255871274859789735999441327990266294582676833988166920036615000012051761649829224428277070355086846495467269177719499461491060649985853264181659262545362121425434912696128544950036108829314503896018502580188577540225020185224424778874792199428000601273095763502325580564714172116365400680070348772790238987942013767823311101836390095509190556969305115509857248227372103430770545293290797206777216566051152491714031935116958518413549870801809174735132171501303879485247645851549768939436019448474587441222585379937736055828190258238852162297316883162450671193722013365774861922039911008010038666962102397025925252429671177422496130464759383564475228647396171397591674168846319792439832658344741742442844524722112698531419139931883325904145288458715530277822853324277635547706755120295578811298577204021344904350260759873241255459696082364989076412133060985454423733714567743869616507156303922517328138585589039189081820907949234211047292961492978101513043770683070019083000694613205533505876874809548927758328586159825941137762784371590777301251274926959209117133929961238152841611017293996983182447428931168553395704543014440985591449526918598750980361506287700245503301359208270265347666726809777634198400406377272721695866054996144257336393718166313346201889319552668054221996423721788775770545216203395177499909129726040084518758716783499356003367258330701260021691746356075432366222075222293934223023392303190422785680328262852002801928154133864059932418269276101273179398254817873714906495565981739252969815209876061520696667699099156383084224695209507341080890168077400441564411523406297169333991058150604318955693277090621573126996759217231648665381925304085809477889220308860095532598473001795421538970639092203162399712426210438042321148030631635205527312230161294260648136650573285393268492503600848161234147135479761595402491537033471647146276232181702277357933909433909966234014889872913806510747950909141363586638855376245935728961040845857302673350541527373555134115689002306049071317282458595235094157183117091869563537815747788711707038768709233941870728273314506695547754587676548115751665188306109035937607968188150855323346182303185337354389165434782346340780293155818166734150073833399492106301308670641664844915091821666404493964789288105991472898834940201695131592734084447759266478452662317816894905772818177810328482682693648362987462248399962768235872791046729622467391420267762359609036643355526491829853321705508976654178594109759757721630773954742652864896181323743674716890299207426244681215319026197039300147283912289860828104983412838665400662939824548887666285964950698327057131226109871409826876407074878348192832968055895271870765660413365577049637967704407591214980402645098584715042822056800229985267384254807628641815894500908997867349289534251913583584792256560878861175547449527659218189958333991692195485939633759840746182259397130812043603220556270469932293064697047887368519870617005603390659236671454863714485879746234290444119907830742777228802264574378476897083621257261706799055137135755191031154474360486963032819199997405273540440446202728259153879422665040823163164186267762871950829897244976438283202729962745554402930385840644910015944764509394799345219625754402325633820402070678933200671181508463534633709114894752475581679461028489228901998978559485860188634630451383894944901631825097823678683442906712428350592579040635938467977124151675585077343390644530446447940436568368657244882547296031810494297966320986109596863638448541147628133612375003577477039354490290115140813820404053415399612477361407451499905789767488199407537749988730968340240599911999073590649147272369270727619153245450259636449012186205831765979609745621511699059908673674679488567320845147407139228102400632954253587314424492541561768686798259285622390538321496255079127441828933743785120794183285264067496838246684164113141258601401305128246150258402142247064060305552754543108496993930332927277221734257597467061374553403166428088894891491326991330451985606008462520398987395988139780123408696967796114655860316307941145606351435416321460704960830898175299822802385881538521835889971794376757547908466974558885418448443473688817777132064764586255652362760885686324903232651218653531583382821032035987759766270870300279194637743062458231672023061682815292813600889471227230639233686471540639308492025866954000045881450855126899434933532752102211739781118119786330345990731510595158730270274257181295668637735131957321450299588753130420733009447171949926422088125729661568277665861183395754481077855893889832578537260730477148726946628066716160131528680977084247817169709864536151096120035638883777459040587512700043955950292671166318845188157185906590812055861068585320786832594734396274250799167302232328870785463031613740596520441790713527271465032978528546100921322421241804018676221383536986012598667354446856323381909435032749988566117326382637897665882625721380951688997420772383782083016511330714763611265533073981892973836902125354991076631919294174160653099426361700572316617387101004271614853366546781827760693159028062694481166328687149645230900615120820760045255731000118074416602614310495323892270715003057010008710858862372967735020282731387448416704070108756866578238381334516340517125266195727067458454758128553143973216156462631435510068115699912817318266994144847120747677765237632287637625278125098192805503829993924453908871993368082431148796640916875150621686624683274412334635854899005681044591103688690646737509950286496196215159122897667147359592601312352712841219023844806442197259252309531642179680187206607881370223013316831168652434253151356427832865605618349801428952618559772530076846908721055933053257688088971477238252373873834537285849107729046231266908433597258376812293703617932688824251641940153333604602428555187832491214906889754794662073788126330159355690555545541755937519859679648715218782771183575897651341812241093655437874946848024749239378412748319915206391472328336237447925420232699510803551382861418995831922048007423269840099034013428764686395688979328537165567903591207785488455393139738144932283302555646883174129721902044848759246547673113868922867103257282323308270249201995867787556430912925861118641272655615780210414520531374561969371665394280199709685688055973636762135248955251648787343398907500761147512987027912711692903014683026922709445084788679377711753965737173702170852353590479151177876877615863989701244336087295366988682008296093289904737920175787326713669565853724120865182479916091104497787122040628462913701782623326162364582650417326499903929117642298103896297611607205940625998368770342040972877831968765859989103117817700929824805046449164080444661475431241867649045639736403804849168894558915370812875441031857728535428119030841683213001896732855996626286963345074311434873480882590456848793866618281604578756906656890338136586517794465954449939858993025031181514222158352398818985468420509588228979188238726136045556656989456161484153579388966777353809949830395653568124322369600903156706201813255104452273507343341247881994706073780711570951504911194336818020207807611988560479690004720873438223642657930511797600134788450823453039084050944569639419688725020324391210853304662337619097861429583169913534144444161481611016263186840383583147303477566555767621956826108051153179827528511431374208651053958981005604894682965463092338371018840605379566510792740688125866766477620731088817892735570412217770461668921612527465822942488002334987520858460454611251679883448292072903756181733975169527967310426347078427406633404255142285106433294313745984304066608161319313447582951151151475207487110010419258040604512005868887355734263919365694340308733924092251191196433819338874114071456813472488183679941087633721981979317145216932063644778237973621420078120527966971130602961978711425346545714774914583027673679386213597864231218176371783868185579466745492766980548862319043780759388591588865503845787915905505963636305233786278535726893408914596038118348864306309307209244559947933432961078149638567063514719815167950367256938930672872339742919609271447122324231511648083468709837643877687695747280539704723937088038404707370816726181668407545584338752909310211641895492420534097237688292702869967994282710304350235821402890043803400158353222591804354411521570951655938816233605187356288813362672562683138522111850385496507974435883960672961156580201822603209229992340036807426723723910964470336125250935054334903147008350100562318297520967151674797095203106802238712918474384095084072243412121009171222091490494916143868023150722245967205855003686876665732024575985321694303528473624612184750739327686783880005409733827741634193627109181158471858028961784973578943974666899939575038392711305985926321999247052161577591102737771551621914526020772903633970906790683528205071930530910295947323684891716083097550565160612657010127310120140731643617389906139949829560108396271767156706020488191269683215467291497817607873774719277564452477101215197092809115800635274352874616461691784374365132551071909105391245564255542396631711857006943724299204346542969382122536828856199429118779295787267664346689677270488801204402455735294331081866534640479791181487827709863847027388379006574887091562978504629485657136275056679490350811521970028952486081683892826742589163163835127603280442438640192256291763298845537538054520998421083445395789605959453077604250182855330876173698005585855112994905409161481745779845552722235751146617101799226297136747057439633230136111540289805414756803988287794570147690267866697072515305071187248403618060043589268665276011396087369415425989299795019160260745034351156055821640098586326209365173457033841661725172078749485789730664240786305004261436862579340304387688658282563583739454146730095129348819514633723778617608394256750807236479344677784712097495055984060523730159229240300713511933667304390130467074744915009483948540327975266456438471576707535690879385004996425170249863431900002981329169472579249821841061772808712179813727076769686316116298398881672325731250989138910700023541325123903962488267967332506191686167636706733960317504384387343851972799866692175841737828215324252726223032523019614770844964186597426333519549106964887193069557813592689660644253824468634407500956058787397318715480069611097960900266676034582763043341317462616750334171917364604032523942081926088229847684304344211745065056015793961586814779284246935707362314323527411558013407515735431377739889907403652992537387039897686192080611906723637899546864297353995281796622648678462879178653502883414695037046096780641626802604220020668889526515792106861360382191824826166280557434719615056468968033283430862256496993956068391406393271652813782585718643271189861210888328537258884512724774782501615484324159129991901837096872574027776940098646935517971739286675516604939693456739779801863910012087283252166290723771413767548816602985841402360981079919246392584284703079866611994961703012881979669470186643347996585301830534932270547239238372009680539010543705832816797308503068529592075137559222094277297623967739851567970841929346837098053090358800191210089537729323547258634063740791714585626244737042680252141337613536197531059952768282548649777370924379025697620055470895734572279277355963613250490179805575074744804058622523298835847392670005617753452032697273788601269908173657424257388009282615796309337989543588531820009595449117213426928111381344359452399840264786133653957348958941101347667446370933505501334321838492134341007303571672333042777397048531260370904130418295669647051677931633526846780094716798933532835152897080177205453587987301150615209442547663116442723786314631342252296931213326861974814636880513485866376001989782008256747318561075223511667464093758251545803472121410853071084810574297019309321774933805788939850050601902197068028841354627606592356561218964985913525464684111915966853421421320563114381036804087120610868157175754947839200298040923685332149321011837472664111233428549566974294058717410819887369917229553910161451450231089648541170683097695703894211387255744892211499477270458672779388463173160968321786441832736636452180458701498612732783584844559483148850346273251302504642484954373113126253809412930194298505701432813234794540614245491755615520998538461873652942909655647256104371976777808115988579937270927754090517640392631938915912622485692163973608544033728324802926974774101321876437056219175449555160229251303247959961489739224678705705399091886573962028779591908247075845970327105487876916417840678707769643002964586729977004046731998018731510534065546170218985383716865998918514416151415463601253910719545879043022458678464207431962900695846084700833372114143406953463530807172148957691977140272525325856936278295496974818656101031769894415049967220516622599875847891010452181815914836380690570551787382542639858044365584402514695733932799610212464072957090738466330535073231440100578288403710087431552876646152139776979335779782561237268387600800444100141361524165541900925916456958172358199570756621326877963086930037815751447902453556008482281722085720286682591446457798547570890513703185158269346013782308845937429234862503625917470164539924061167403037857191869636592952457857322265014206596336510755356210008497424745100515405852707627386702895854238922892976715982539511854317950334523181897834804175600057887321963243229687878817104261511272583250333816539419289814338585178649217972125806248964616241834676494591101890324969214359176037585099941367310905422420489625514609593462649977273529050305167338524886969466066684940798226452162097094123248622511380011362029633688324871826785943288027110396904017234273785154454439929643243199210313506287956690257369478814190607307116704193212595252480192104579257684667757181064960283745818229101894947956718033811724023670302856299649337162720527980455271685565962702509060737461828351345624963070897053682371518014291901979582900190559510759703764039872771462709003209837531234447085492168528529823151518586217468495823831681549859518557345507399112241847866039447504498642728853104817133590533540824874317603290971991534276374327625074337498225638618400989462485720136137202785820095655120724315056633423645419365714897558374905999869029610553649969276109897251401269728939313123096762615865167334724400357973951840230364839759303025746299576350341347332495006485130479863665479239735692133215414938989839815927484675398316784292778527847624880008485660248523014750093761897959272480665327946262670469872296467164117150393284588611378187176554692593289596899451079330204153768360969535729027106994160188953594146589087505062866735315772811298341028629406813316743247989262212035776873972767105013657544673924235918020727132793471446397746516609828350607992134010850574824526761880384812147185552708413248003965171800401841540015043953326270123124560483560406818718106678929871871993829750882063117139178043946924904342848004512718450184809871163292103735336550945642424335101962837398637128460139580428360467962443090777085651827188932771017096292622892812024371701969886671165768917949183181786245541466273762099213301232975255044541466056481657459801346511456154215520678464644189535737486964056078030976715981217153948587487010151862780390675043724293159101497200371205888372941838338042222694711904853884543159283511768245118222943583499792089707710850919919485595963678886763658613293769430048567293937665581459662077733119399981584403813897215246054569433997418284735014782120744265554393345428657449231731067343467715825456634978998678991620575169909151210988076433142572071591440017127240775680599825996976750578309145848363063071799844778941383811470105923849646148027839990772077757438884828724721943011505871321507404420, 225466722263826797834378590005937258236049165901228710676704042911837138014530616029938651719694748475123043059533507720937478763943471247849875153058900716739575819102386437822589247316141058305037229474956791980701138638636670074591651623042063494676674292726898760282466150807523512260886213445555854952885989049727621858696416564860414277224619787262893750821649248660893218677508573092308798164754434710201810155341775348094108524486569039833540370849114561341108536480587488697190545734629902386474319192604498446856071215381625743974148233781616020209061194301950559025450199329985194574973964461674861513697441415115590245077842652661418675643059329266782110224298255848489847267969777073146301533449635939538294878244078890467653316904988846063323011726636910913911470333327644433655192662011799391230667190194091151971630241825842590425599685770222780390333556853703345180759556350446695457439772792681621136515251384921898073971594659237055531302674162559278552556393869709675573890120914430810654072785157360248511104051932454448927682527151076293682103585880357880138526553306777755412202621334723039720835189596860969975484794413879892156158843235539348177064082084853500902542992471156558540598926180804861873599062007167571463444074639394174151460094701499675634104543049388651915484108699388637121439313539320745871150160519640658722927159274938029168389225031358767600072869039119930574807013806689405980624980354749778311959284768875375719611377704113006533234091891131333142598082500111814943446662615923794310479953399779333726497880596437723948400250189537535168703747166346237992861343458009532237528122730613779446853434129498479082162828222467065672420919999738524595132486069929390824517992685486743741376290485155548074001561917717398199181076676859946838192350698104951591466921343019920934089380520665773134567644029756275787392019425568230206326865646493552825085608340197151978627776133450147774581137001670210698981643336097613583195165261748552554343177470583636146387770123490198714109823531227329005957166806899408200125265202315633878503249150785504839878073859127631365312823882436753427993557276767849091797948918261428711040295605715200325715889324567049233225598387807776285857972704082616173026397533367480066743989862149617700607538507150299962298718781599078430713510086770833328049955976585198860844804043042132572049296664970479909328136625288801913391155692386955455460598438468105255099527159025361747123711524917493064690857417182358067235566002792195516072427188641940055505757319388472707471894233504317840744765297990085734058777826329198734707533363087431621418411551971869054468320238357316701308177682826780414782231684088755383416915271165966941770670039057770411389605566671689982796783213597967238560823740721261480769315524081347163929742866535372881651312643514140100919794867130650084646917979743772867771670535480830816533393886350150796424939535722936314522125607610934844350495205573266715019364434642508209333662305094810446791938035893334028243027060048654704327092227286605464045942148163084068167835129739239395266488703085663547094837290451019037078467768090270262474720567679265009828912993616908096995771145965075922039676948618319315144752159124820243568781231096744479889633780019250033304383679287036180170775203422983347390894265397915047015967761403965022911082846459688066617959734415646761662131288243942551320324665558047463182592105693261073043597320451774575750547644828699561964601177158935743991369246182497677883673667862170914773260381713422108835691838217142729496274848150345501448765781337039883246185580160660515389925561383026319325238148174617940016597966582785298254331614683270976891581778278514997031309961792365427420310896392018146053302780040032577823763074095127593726021499293904444484623134300912973980222415078539026299413517531528841579439760228545096283390184930948465141495388086171939707618657309836029349180388510511675434499016085427032442296638686472884405773592965338743583363681517513291680083960288388748956797180689688138979025068080119296957968925727979273883742556350362271103765065228681110013273131744245197999403514399111996467247850770379209985694432933140834806488564032086970974465263369515547457849461509514985051282329183702126671890771899561886776220063161377091504852492623186482541518056797557501511631735560438278212127148891976777322639698506229294034078409533035826623952239443685392482656027223036769370707112435671068003868833783615561824338654829458861909409700712977139944798333397270787237721490173588782353281695075419941477829587033024431049610319677417614281744998746884862332736333792111248451648645531954835552711410061687754172505512949341536542476573278111182827630033849744365807001118934152617165142204241409768120160324609685482379053842516151047210470017523355461110660923322247971412914079731855517259204285320099531634327438414237297125569263493833470360534959795842648250392424029689316491050459801255128186472758952613989022680337670058519273270437137856103376864334178659753037875933251082739490525631519830370626123923492701356431750311823699907560764761977607543431140393995978493382745728523780638327462306475425454722504055841062165602816912646259188397696484235652223657027748780672299602266697017124894795740749142670023746029140935803099190165086088598989293349526945187714200950515624908121938447336174560471625725633935585840508377781374972903379959179543394682493166817013898666674157975630083727382427845057476933177663161852795405064568391850905492875561803558787981587402325428716394880072598322241893934926592430816505691243102737927262624123787357357049829778231922584425205695254938196863083667464355612759181011653439669115685180012209363951165620872843689576874815616027644361697500525596288736390838909663499273241080868350685897613698061838183710663599590137787033347597990188254736720955504918446369822726279113182086330484885744822699637976915378435239288551131153844812345113421195894624629662412936865162034667815815100043350828531861533822275547996231083802999145002404295935348968287819094635612038485360659714347449677226898005414410885297355137298991286202501909184783024154874653023834258951249438350112786744042962837670490797119175906843725942302670385281898162862716459274444393437781861923120618742867945999641404552307440516905326192639136250387296752121124488896302939368358221979383263901267060816571446751328363597427245127250188693542562144628161087678466973748085720715945088698061306014063289572955155105352781429070428963930893629859585902403098779471243322798629381124802984928563765723413332429105719808128215857858711825595236326269772056763790446933877841608066249098138211505301561282485077888480273037132970063206603148743508273373073212372372446269639145926614803754641056227874208002357797866114678483707732908968933195668390686898116170628706354107892505153678380212600296538480253232990867748119266868506808839388173539816392239890477669187931579833739265956133319237377986064136045121252392594774700671534758632044937811116381088314731036328530716531438790255740020452184406190993443940636306657716276997020583000984696184177360089206011220311869028446620966763105061477222172959206773708336120806244534424455118581472987508502093085351555792698971258600033160821971198183903714011947232148676512585932881827633099556493824094794810173807458364002392225136772926722083484358722082575008130445633171664673367786878448367184773837262615773272038542024391956720578987558353604471623857129537634827172041929675860074925337994100182465142761629743717032230758638534430759671111948873868443686705585452021337435295547868062489063752039757938649907467758091968795342813003847279636828285987046839037780296020172859567758840002108190958365507711641456752173084257983755804795516080761138755045830067978282940530754256942066234250959316595379650219992989168914832217046740293049479567290297018771215512997217063504208470257527016142436790082341777573957743419103266866330663435994216278757249468942071649868498678841783283805338971126673656550689522530637495597411370997003647228296849420167924158117624535623826386126919999820844565525056855190748403960340629399835787480439577004078650356899201273840156192759480964099171111587437503392083897647896095263905182568419903456242233758978845600196261715136363268138622972053259181983457445679170482244779679528764151254906101163599688925302817510041186918747801251879316494725202939352978877886009247696171463820627264104757562147250710935174746575562930090739497013387736939794960965043362688078309410644915312810406009041997715142726922379112932537239720486511911760489771239922599021090647531079522065826223200775301634743897472869884050833421792568017696854853597526046345632062629967838006744761934933974332488688197432370578158235528530556502240875882267106948540840509326781408762305748952514042936866078409103623569001828507692569556645833518362701217088784451346496860077040492999021551949063036360538646640156104275472210292814041874508821241878636840089716842477759965107805856206604335748865539308970267872940629801032537702048667178711572099990575940641364840880951238189197711572372031781647784036976849506389571271558813357456948788773763517565038795736119397911931183420840263591035233638124908973781455494910550689593462102065026677740175297929601593953128369474845729771374569479051928447610374790867893522964707173593506899017050526120430574433788588046863194213574822958280754109896448195975185603401581273880115561999872190321100713799806650542043122333130983121382418672080078698153612860596905081796040977843132162001464149037898740462378065778432798518332933191232570829191477377504457741243601024652491388648874818531893257951048120899735188654511811634686674524875946545577637378466820864959794485968811072834819196514463776345625060454387066927036368804547061070814575660471029295531880170875895580420615555451650999436466695510449513709543431576643584916545303096814611696722692923386924405764971685266852046033101121680938319594593791195182966729103975805907694396075895330222813799410866884448483024798956190864653517726064401404665433854969540198761683698786880289953329717649855985073962081458497476367116717029436676982250250788858243007885434203938476276520594916228632142543726742939113687683384452525199898588687239270893723472751909388722893551082956693440166748184519565463211422058564866941144917236985372982332652625060176521644367275160620141393144435690322013606393097309568647005812561799296305567324463219399051057308032778443729247234170513596364610454130125671248514172555168417097980950977205495607471730058589665714889358311323364371607996894042386067347177089890383698018964667834788628958539925510556783369293533335432035658627861044798054490855423762761572349963144611035556580695890575203050566610381867600108346436353818978305932044895700336078037670509612351444380224866904336309925662163262212159092947060022276366351028838623527967634106519141461760705144559117908614064681026847967132138452415773151604457232332120145192194901504179954639859927932300365491445292541731871421164630086355303824572588433217092206685671218891051320625156348861459378196754144821771204724947250822681199007547691113938268225897888071791171769297980324007119486287016806501051558198441585395187716181354057646035856503910884037950785679495113130421155536224942222017084171587947057085293667586108416527481730186324924659891772863681430922291778930059011197945054852135792901906562065779708681572998006140088715764073206381157182554290036262153570312513765435110740560905039537097851441646798475669937541003111705937936464901635434003493470282867687546436558863598313779970839657037665103701358184814518862242262462073063394046786172199007038865387139357170514839603091312228663314914586405541121122641597033535332930896810558751108861065453057863207609636261726465075186633286831854959377806772817250712947450855730404256328089389979288064898903280405001461566884657208732108518820483391314745725989759243528219686529615099672622664029937539524599530379191856350956192451157849949474192488501822715808822931012914659261504385200141732887078040891493619096380723057146823912058163962186458694446380518067661975700832377941885053087591582545851803708968530715903016823169273890570120140798234874501425123497211882525666360567655010169599753452938692855315998522592320399923334929922770737261948770764866760267775123977968482333163330270553328283982036485011920311831901130142458160984812643176524847464722516274711996015862108403439904563988882860779399756651335353070590817431249637492688625643588843348239408967230081879533211875865752349439421095528840664768951197563349039478144682209897348172582144931369885429918225568545101756082227090565853611611008404278932172845667789069263127842882579300454357388988123526045072926244053355351562356307245347496103398873498300864466167353672371930101114351568550872400000246897171168488203060050032742214924032983024295512427156853972629353660408893744785871986254467765565513285683952977905924582258716294204639082641387443958293784168594913546685799648409243958480919356985597570327151257222047362292408237461270627849155976883823506191538394796466244576802277523728524139841389407094459793081423143633633650513968329055021681747525979787114532992889539628983647272807661907252792350753397873352868601159425801932869758040047418031567243543837385942662691762330411304143938206022802123777133698803224909276123926208650650449493379778887549021128870219884106153959184804087453367933207043402475960542495176471313555605291986445566544178546267241328889900534345862408127822867440591298507205170431482352392478234348380898120039317689362749678697948083569245975197445146432482616689702526326647230180496115977475349671217860266173902644632457588214473149246767677674306790101822154720692043441771620116741804326515713811205694758117166965790908673532703718363640326701012981281327892432681602006996099516999939791239008997662002627109782344157667580922126880480001069081728815477758959970593283184048950252859589073029784366271351034927227923268155940321401039173243149098549474547173220566892951566037541161313601570215514693013444536663477965126226353782261069212733697211881732252650020922564379973141788621085999121432824710123485891587939645248432839723005118565301491774449155865088234319952445915649443553424978600326173408228013053373347572339933901384515031511831075839642079339246416490738176270825742447570958599003745005401187758972236597154288780379962326059787048770718983818995378012728309383708547968168949483200631059413358529684164461598237919029199865991347457517891900400046419980883975203185616218464844776288201608508312708266529139488048713613025837877361105714253846029772575596277210890649506179864570015527021031192127793046371877937818471384189548484670790432338985226155338757096982066926054860653430349744214556953450771917498273939671492484837747426642644331376524964060562842414444879823358191805799543253752703879023612031824975490428473838485712189035717947163982707671036160501708582011571958702154642036592218331007352240554090899194497536507744643604942985726550775643824841498303904341270570617312535310671477988425117142799290562388766614800331113071904131729797659852059677331995981040617178188655609690549180422888062770543433960402259093702788314656456676263937632436843756042687076200521085369547319003401934398109131739205575688248424401812521460715235580709141226100208146937956599100299962863817178335133731177488584195385272456010884910782547625286209771308861024892367174284627492607172237896862267369645875985578625049527465370364489938957050556208147734216097161556696005319782679163785772367278346562937813644291600228096912351887547275367753665628810106892387769180890940671155528974560853864484389358693564305622715767694137521742277494507351602152182299705348262513524769882507903928199623959617054489627761649949305984400752488373921171976614282999991203725962962466267904978156555392916460086786161080543195641108851069902731856601112281765299046898228227154987426884421544366916117672729048335057753082953042412568325435437503866812227232952263078177991258226473853815975860710259721839876919885663365036872691020084492555211462077492875869854582032702092947365644921078912481603944563472936387590075118163353796040092948398060155190406455794814933909042725969617479539449917453089516902797580458733582970563636663842937007415334331743098265874686254562298948167961165272849790619909564210378552976265137214703065103906460441166676981779035128571257768829318499273830028431929463425469229009595520616880151790305828407873479606007929578669663096907030428134614100276513780418019059199230021755614766060612374962744712935260774361188112692951908772447743026218714562790685423338081136636379685835647048676278042279220245614310656344394258057127256483779246074196108914281035472038502545100877883315372374803541477642611928150679365740933675468901701377328948361871482015299771323569905410244118189655515691605333099990803789398347833173847459593706350806250871681746229568086358001714427767309806022641054007684665684774043201209780780798852861452078604276961928152443735305484857163330167608105122649478740987668443536814006703350224955252057043780471571293120665620385368433153593915324129908115201398303463233031768964289974622739380361374809562758221799264257759701727167810981533525723152791820734693572022468716629595722573844990957286790506964348495010017148347358467114640386297327248614300964742904194238987203421415869493277062071889664224500270028377038047782387104532107389036168025415685095057853050986998451259123324037780529321542213773157992582269643067886507510813827456555256381045426864473910540579191943264570098575103626423492182898603002918188194502343796654780065261032533757710514640925847170407458786830297648931392069024401505455531360255976951174356330112945355049395977908771780752244389516543395326500991177295101197786337407620329765520192653705925817888767651276632199334737237014517974829787493892696406578983533127666546977788388546619265394464382061324669718541144253971746715547334567183899091568173183361774735321039733643708782671697709124313722179521659736665327827857093212115409002097099539519742072830855659659420590398707282807381470160583706473439517434766072418108614459056029968099401913487771062558820696662731086539407637603930475824156402294976167000742200065026970570663391890840110232740653225519841387524593290136149654830730711769104357814825101617034743892576235573832030766230815878645264065272061350113451072773510335228315013967273823725609384129475339693852439591170014800191900468064861102232208907109740789987824666472295504155359630904222704051947733169345714161597100256013889711251099374216032865816324892028818415310246718043099231866420726045840381012791207116764569864848587452883240769443644309988805213213976230045708139833303226534745973223110117237448453698258628987361764103096919553032941254714538789472245424090500269563945517874367835620594108354050881125708228957701862195518313187274349635394969459075056701315318793630825139976233255217038051766628190200148013688789326265625908831641525929110742633742926494072909526412247560786079671479474730343345000399477224420049354427845007633109923320819165312250285234154656919499257644320977586650578513407977786782428500133104022861603658756230556960537833717988105538517711774299090845709368157967426339504252233879486927182870623229125321250106921912061061546278543830513669762689097359786357735597364056247080166233295774520773951515461331309707396476413568998924447397343753988612262861883127096040969534680003086235196915920746860902955570215770051558385059550108890273419744273009409736588447848066731037695781085991917719972294643168135597355585848264871339951867838722335364574061696045844762840156372534998639533057228850106160869450116930500726233743673299588538070647242765621129848389148491151681450551324786303658733517690421578914456628574809617396364563857570680698533327233908503424596498430509919116698426360023799079138282347112975564060613776899861521564650539192671130381903357104456396963297809576156513940081496405766797940931103798370697176952024670141614808214882325753148260603713122896614015958728105866362280204734392980693637981799999029840201412177463131413280485353437766477032869375016606966789772447223376597865748336134239267380833910970970965531316939554906136020207819722213690160749301031725224707504763102799696330137423928387552954799081929100375184496258348178781971245949942484789879928837912744752688882611030717887847330008577429616804963569279115069586898423929093960339930403249727085290423302705526027637464036972007169816751613627644020722502829789583008540384307091848991037143134017321370758929406519438230402214454688728565467982518059100335794385138340071616596509776807771102434208398819318063321577322326077904860648215634049736671151848483673168690426944616361762846769905510273020124706726825440585943619343577362056907543112385662753770573742624861207405794194570875135543723182919034393652504886788143234604455292792525369610677470298965931880910771414919039012337586598083524817963115108627545137172978009013953782024816497797669893157059986771039959496487097949270973639604733262378443341555829663361942430978616947455446903511388479759105981087083577583476996488532205497379755738312265362206683180280911645727925602172092906322843330296976195220928563009800664800654839033337569489430502428103619634653834950633907233039679684448060993748041756526271945092341071040650908776390468577112359246513728501243394614488011244780434024559990014825862239018120867084930056729767864639097737453636234046044111281843787687146784275677955933076203437925093108496700209347150440110365487418478902917379836869712156246765359473644665226805637484854980486255375445064236087871330159460419620548956921302790049916814877581128391864943887525226102330496938464183475932450833386887007431568132701405139251080104609758188707905166719711859810403377103829078071700231336997311996725329941827039872931083575763609490532009093602818141400403092886180120526648669733913075265327414250196818407863129248826787005863604830394947360471737523211226881911923266550889791189260559590264143716570835869253211300768068484871758908264450090834694609040658477046356063150519008678542480753481829185932465155765093450923918339319304042066246507997744474858812105381050377540091723144849389864071065595212659050375946610475550671326963206454807040595384380285688294381310970668670499339030425588734568683806598394930957655305155601464261496176700729585700958803014407762592581555249454035911616243147774929507414159165162726049045677429656101787763530363141748449034694601788478164338546074456063424545883167480749285082240014585566142647699419958678563627215703875511507996335250906090951356525373332887852964446058113623142581279104982396547279131836208963157914917372572146392030478896341950147767110717524128443771402036321231810873966258986674780228150025435178852736496904627292479489444808606746360734305531472750573079090238620386001852347702303518076228110404086315735588988722141105462370663033993801307889924474438203410376042601574216883127682780480075162870828767929969955239137175867694359871186447458238187318729684715012587833812938818486768712361355967535224032300679872977515184899980996037199493381671653833986754594767197959375886449218220027871979406047422220631912596845976648335778859313679033335046152204605132735381629908086229310237735525836890591439451669388289365980327319140667744682768805806411449581095587363574748359712533390307842349692913026357080989394982613039798630795056014538001983010031153765467352666198228708007552265226996162767784704272586903071820649358806444652978543218218180163266757199169362669228410777798963391777315925972690969023152627056092766417892744853637113782381437513349265927093177691445850292672685048376414901665368666430351018625575470647188611263173292121756166799779998971054994545185769114108932047918180345024279239711746969663978143004798483220859580243555501796329710515816971217633142835871765773291300778723359802926062387761238126168337284106581121578992785810226979587023142681186275651705284192107522690944391932387469248624597439845955066125371379994673495938043155986706965675274962004174843418005145494463092475039340625620398720447553750190166085545220445193165436782426163773218125397181231273556892505507811754467794633146950556270447070854402741468950051356952053431741795500031238088585983139902793911381924816989598751886926256434147566058010228138624319610120678368939087861114278596404803396685216921851409380267934974290711494858231799371606694119631017664773573230118044541253567851549145249459027432527201097528574424674352413515376717734803874880238151276182722789249209133411003262260058945444619143791470294431650254516379303072473055857729036039810778084250737423937401629323468055482249526221360985433195148421048129390759003753508853958906674277772382700214973693155247621327403651061461866383546445911343967469483955504504358574101617216873453426118690954437304649294368881328875567566976539799006252824604567198009763704016652170219198574740792836156657485848374237657823400760149335635736305583800252189280189869826850092733609284077830929170527956963923675393217492882754992903780721093273916708669896058111771984657400841287593343205647569162944105460099628061334003714737140956605796893797145778872271353391094386519677862747636500354045056352819580549122570793994663096560735349925525288194797040182977014716802948570215867333972579182065769713925198416022229867233792196909340833294733583793017943941393351426723407371318038108606829720648145860671646913331493542272459948123899627033161327711176868926801220673445827394297402339134807838969813866143204508721404033761046565721766383882332295350617803001002315346379893949586050919207546913451863929137028501318996744717255041998910130536384018541451069247065122355276519760606690746571849177863771350445865658920911546173761225404226436131799036238933705751423490823142203914175284533103133588519629312404822177610194753368819868092126999634300903627942902108249781461416995311692704746306741802054621783580573036435960479991869781293009053900013842863946133576708538688429275475909430779713820208446570560176882340214557962473571939609074487672422097727251653270877769845234715096524381589638974634028374014974459999550991427786124563277713594002570914370542594374873265231390506616821865544107987354000114037959057912106217280820791616715163792814561694165390505601637170427867750900592695690903234242537818577356836586817498297853365048297753718096659306685866734244182019713124356487984062485306485141017501921836493335065873613019659534844060146122964096275165176692241233710588326314823120114819649295521799911341757598606253773784452465018253815035948250578949904231773969275905767206509615256367426672234673664784230995238020735162282684645567331984583738601151645548393421720753381383226256022766559906663083627026033219842482251971704664678335591594458575524397628869259253197369573330790116653915609536392402613382720944626446125009239431449520128632054726573329764352733969280729849226136040031845792961841249805802421170169709733832746511899659586631910983470891292766810043315023007206869835803212667162834583932462478796803951773037363914644938383450196527922270898481356953853087810327186880645902178082197078913126984971735510276382597391370686531292099754231347314304346487427251815180511236693645611851020632190502908668010677551875273797983750021308668483174789279101075804656745919833731054973544016569526941868081666797213131894795280419555324764212388509424568222906741770826814833928773364569361438109445789744485240873734418761292229966136290308722011783115376262787987818041437710327093972241438012375927207333685407131818671664395167675488900757301819639625048862790761975678514725689417449814647129014756288371472143136543331836524430420615423245572880331941476870302123842696766221082202277737188410302899912543556651014421834257563892474463925581328266876238549500656715910085047694252905703006011221139993495273529016607620939835531321816484032787912289663818434152741031897051121897381993271867432674810630747478083965793253431823233190632876145437076329234411180160499963531445080678525091999583298940772139867306894428524751217884600726014860561167030862431273370907202267660971812317805639491784942350955334542146640767799137541653056660678952605387532610109799967926570445123563815602489892756744523944915888702765452314831577043626382255437782810665692872621706046005922261974452053034787916026159499149636625340164753287092795859196067087673328244538131448572197518354207753662438801141358296611755622855870957751545823732345290239683726757799262143720990836117201334834915519306619400473440310177177777878177171201136192022738715207390654136755155733879029181304074703005029942632974193752558913873094692177772886271509393219929319424444999699156889123500290180666255307264246883201573099460671511985504551237163992927741488671826923234003609459018507239531908635486722872796124005112150207937821999093357081363674300014221387538549205764629110633862339438232555776668197237204188645542090937079717355200897361636285209711844579023756145118257021451101605189754672599280401770833811957858461816775550801961824798969651814449237219453020545147736150167028002104672122776925546240231704878415358534816129881685443967456956884911894787121916472528104084772087040494268386724719328825513514488788627152583158111072231873105310584795139612665538044360015716060805876534809625955209986631217389415301975067183937814697144203162645696453251594178093863376378904076653689675782930025336554785277736441297694489256875222776119757952909064456662493466759519433349832898458366698957144866726742964037137129565799326234531167340774074882275631937213889913939792608626848081577829839016805112373107560698034272853765336719536232606932362573400528133609794514678892693485686996160277841388918286898139242477092877686760636192462130340506987227701950522844748374664256966838825373846968134979732013671518033920301377409379204529448706389782487432357560321159611759175134312122873968928382157992438460442735517230312005168974157485979086634398398224914947575438119604697180883091407363889481090539450050687661003196351000290655100443246734221225663887283036010291916434849602666844445085816787600978673320929423532001811511217834713626891069876430961963917236759355391935760230519620943311757614498108560773892642488196962673023503431737913320509908669932997221721117001141576136439721182725799489836305486643918569241049771430057816127753908252662949830216323020877904781515510891580447526774365192424951018627896714423675422269073535122660208789777774468928228412995775175964394686050602614704618086607658412883473633015871204499526562862273382908408760608315530767709675267085351596392080691973367847653024666680114055861396891053867637103129054993843941913603758853998701928696062484855856402722862593125776169445723262295641462842487571754011719292256377180292980830745749450314201232816956258639546088169035679930658518760651591466618740850394563930506039383850956140584340001773569493069571818223741168713340564283597031323414557712851587259032075460451537514535698615465031872553205411913510969417765391302562233537187229619142216174639648446723186256204885420560324703430903619713123253058337805173437503809822657083318953125359921598025248708419878476521071689257325711243854058255588942213974801738050126303359424400366160548811509600590363204634789099031611462795642132115057970017086167192687905336343996296189603511049640983794304661243617262777783524779288286671598904670169871875664240142774556709950692121391707961502667508861482467165435593439767475370104474565505059874461541767116370073223950776897935135604858969216882033555131111131272397744279464948439271455776049994201573399276053459511353319539120724087205952005498205437462694922265917934082817737262265487618246917711727105628152492060851561704904703755268530918062649252040605715570861509420325001019646786985901856752828453008919703968714867956597775759414424731649325563364409914059708547908765666743738611410015886706793333583794811234245448357301297309054101674612504231788274816670659063659745634840099266980314610625047118734711086337018417876439887547280844665373357404845736137759590332605905022596669644597991563110733122341793379049880449748491124198973450092441707970793270992629827500646008588230683043816624315784049035597490209541287645161699885513188308760430366909552663456650283510708736209587673540023708187061997843927626260969246743650097794078766000833787941659768898198671411347662352558763472349172950522355970771371653223257443322308107964505336747900220486140518221529034198053356897611654525567488444803677625750079888612699333922160778867040685738001993759463495696522912477462338864894288016822885149518731370432088296191759394678954797511838112442102833470203155235888249634945741993222762580996025862813259444661065166138406771169787798882510094573340171235392317035736331556126602325765854139933238064227479218565706377494138947269843095228536633106474455037434069096709006406040754813007434525668528840237362762548650533137892737817680526091708849947416750258937411626792882624419858162622535925003879704666586243202416860852269680580871018025525861615657405411604090450322963804069031341503729381203057387410880700484672571123446937759981119408568578189215610439950289396652572581200235389375126080622139445509350679628964525109774236044435488053874268969019525078074646586351047131431441661767147959279731865240417092730256915716184318556539874074936696374289460930109021615232931206203976515103342786125659237914392732946460396678538140211282646072073190163627537055400876026894668414334680559789894403164176223888592419629605814053294773886212214483563672460639728107274837874941002202667417678835407136954339398814195291437560088787946203540869303799578049355053315521723805290931827581764582350895158809353741919432472998291165742579707926922582950616901227449684822947816964329207214715075549222066286906375579702203042709157466244685926899066551152453462053029969972098168888980441814733345847678896940843042560890994396390558556875836630643708464551939319435161625828871799775441622539864390327417404742856524088024246793941253030366795738775861117996392709400334943985966658309234530662054382924072785148131091815787802561089782243218079169371179321005478783152317987461069059555873618231211649425629237315831927677101807611135146624373396617582164813590192441027032911199833042863287272754148455905227313190088428240165273031321159323195581510906359928768438563480758391192980615390696407402475548584227007459996994286918265271374868811393873216870413160860867509624353109227340841485908505867455927936773647965604037808395144168873682975696143506596813229691501679770196950996269759578651850919962907922051009533011529792915123675449381548061696875622785519324855870250523910483976044642799542436596412790700882347139239923795836071585377450804657009352643942060169856354413720005134964582366261363343276533923967287708250290067569524119568151232896640067506287714042869422232992560175720506766749274042219107668178619310826247749579425949446626030481318460196737405945645138200005201455197842630264680816414897550744275645228550820159713072106766143083695174849788966309416894539206152332386810456641132233841236015758047157643986011374196450297641906728065712689103282880411422880337146003117845703273371248653474161242504877176389971811163363296288873319978229039618594451471650740550503177864570573678646895935163274345576760971824810469087618948598277624002363481206626178782317319091438076994154920989579485659143672464358593871629165171371792501777386631822752173864936922815769209631361567249144599425860841199572306434771941496824572120462925403763145762735322205774140960563479409491270499780693593433500138093710650843263142911775178877138992413327764906515610620742658618460124126887540995241182797246895229550146512065477796680796261865889431550561290354097970606751708703232862794613064876381258947173979663820242999788930917217793738345750935332724090638529828193518481556004822131627799409578106777112858467408672946885599529813240257829109855048042969015157397625444086798908876028302517853388211528342265981558863439605950926324203206488332012131541703586837446401661192681671607265107653260530730767779723720460603742716471068871965429220992356759362075108874703664129144288357301398516851565578567822541701751613702617051016211426414170431648462630351947769219464401390982529065247539368958054208691967427047061383013313927713110962464202757264230230418458377023656094217609773803957113821044982609968109480920446066229998948106361169612237585843065204848430803056088072471234573399212261352302237944205161399774290513788089449151217740169663572931058954431111342717009573782250391302786278551699298941781705979059235154366136461848741614768294171949813964739245794032350545291739221077036258725905236168236489931510364826664060078023615857105180444092364704502448851092767222418485516446781081546186229570061865710239836351633154975762731741981354879251248182069997429845194343037189613390215472206098227565029280222567227404823299708048400513109654390883462831082183928003638342983579105309342114282905802081502114144866170720870001297278352583311737877350900643706909996856731162648559571576151309327763081674428241166079936815011113546573955272575696644535626244036327341404503374032692282205336867024723928785684891128009632586328267407261430849411949842568134419703460068019791367200109406300200633143873759740761208748318210614931333283034937012915192274803550728220490222027284171933903396098985710328725793981703737050434409447285747743809952148867555581078673277217332081906958234852903345888139675246926841216148797554109553546052549417281352536885175630592996548375143395505059692629959973490864897787964182558109987839482480033286215432595463273348680742216418387632589842383570358652734785244415565422006487323312109964689828034893995028691078432721544308481314949409954697279140858566504217116541479428066058631301531872174282996714703210871030749873988432490614351316386264973495418203110163631700166283798357040692042476428686559526094207883699280014175813198599469864861586639998955782620327177654318855420026765460968719393531941933431486012159833251657570627420395959490285986604682916638428077163299605331052942760969149043931757395860947615648034656642745713836578366576701080580116257848991544197705180193728843098369239662329053496638214811260283507896319151345818749741652580428423581318078718010020550176587879397759486707574800115622024946673612603049876852520948073042073727325228731526141768845498480305160068455050953988778200103910060964373971989821226709579371755960865652749252577497677511712149799953687049122094921442850535370578385360753955932152941932475663615541197106149199676915482247836099881717700136275139933709450850672473939013369595349663723060321143350074875271462044515583514720103155734192857626356936132256071708090115300274936859290728986163178268094821033981419300514960534157889200647392465802093179827615757644189787965992536256670147224068903558123056602342374237432041769025152949587559332887624929286186949326803077996688299604175506337804214704100251491470330533891121615067837371619911434617054178124546357681520887226545068467067804927101073373089229041929309098190090968588840997602904661540698807349185764664640457382556929302273168124704559297330719371587554281395272424466033990749486967578403733628504458236309687326276973971414097609065338069199136149237927408938977566916090037905182156376422561267374408075388734665373122040189102076905596675772922167590854066020402885953456688515561283425685738670561083360834943863788586165973313980274717448240756408021545007832789047120809180088541742706233456134229541391318880880742354692432870174657941952504376568764212754413339828086715934488421255365931486103412529785059917539893849250145264068981415741757046856168151994018417684076697813927597808790882031789313526424495613504340834948114507571883542029409504441795258903010719108540751012401188277749047946634150242236967457842824350079457951294384265274785645774396824442589069679118780099017587577821904531295459104589841281220454943509640083009294233173454445313675348148635060451392231963728750564219842806196777939328136657075062352874013202351664267407045545011739208077681303442077142439686646209284331566950942600520240708052933966593291243729951424372577503536844836657666471363220453812057448877144824266677169278006081382981267536556100240785757717823280096674409558431916651431668724404456055925035225711582412992742795581202509194683663050525863045234923767384494508616823726691131950477610575338640065603065462749558907867887196850859232054820993132116639079878587566536942105242035570750444727060434093054101019972041374456940898382483899262646056582011203799171523973636814375564405498545181456181463094469219089230989947462359211442096287219835820699754018736822590593859071078017611999115857889170233808259643872976959993643250839087154035321932972754593473861176738331997199819202871332414614597782523901806570096819265262830582103836201297095749717316965463590769851693691364708356613308845878158351669425304470031582222584271569427223610649847174470222381433756770210004884289734302755643726086515408625872518400387871205795629448633507990989643282808720155205705062891715787953021453130269475151142098131755269567886559113834867346289331771194266464134905017552776985136627886848507257141955932463156839217189534642826564967462489584268238312933597132095684975609749972119085828968720298764126470876558412393096566925205269991872492316545916149014190038620126863767609447283588099307535324156705333627979645821652316664346846761416937523785100997465931304353728546814554577214430079792786387530423355007275349476152541049408326969203825091600767706831541795867060238134973673382072397807917623711588809522772782137381511568351490447679568856142135313672646948619196982406939983761229241115974850408101183865766777496949659231071482873606728653370563709224659987929058714501472549635445745775787223056289017562562349382311745752824912587220673243755350535946255623218577446156164898752398897984227141855834710529760929440243302913137575665689091117294537812475057774028360860474468363344431265594358984305348489682566799153071548892729155331208502095547550627351659405732800990473683353722597528867484465932345722759276973916520419854676420621636072571747543762900088300362966899553705651136844530462664499053702291570784018705356318324242327998436612486067359439866014698104804800372435421598339592186727170488613126622854667103629110002709261408922941673421591153007187018401734417205874201671663960276269216959979294332219021217760297471147242378310301948484101870338935711364547922171504223035225474273370313493097060683715514402310094632176524716478553739585269650642485468702945450130509467920808056569354798233227360550167915464758178408719179658610315191000607708755571906498722571632873624156501884107866008023662497377263617135361902649122166996780043009065133596166680751362811064143716548493075263069934977814312441412100806731629663048682825807080898592677181763754414596681905184658682505857616314077605244037277909482044573835830693304765345661274348925923438914978965066897206854393005217052679765487495870791195727758599126976483920595796174262179171950172892280070977255827390679004205462786971227608696954000777032416575805529116057042694216245570243020886751384628246652627309654735205613847584434654475500569634341081591336419513364359987159688211018254144684968191438324571189195031260489561209633584108125226278640644990007796329955509740715420916946771791911296727226540921346988893356588248316266658617836049647050431172078370766166819052801170441341766713000891492734758787676297442024929165229186890048897784529545441416842773741678252067327635163924573037481223160311969714196774055259833224801761848524738067594397819410596250165170133494856449165496581524534799111948068962932981950907908057030346106395925778482442151329357601559091464894309578105151562763629488264063099922642751172390348386750686080940624338722837442278698156832224549254315215936822455841566407658418262977705719624266237042631525837196391149924341186862074338741304668492351390607100726166790872728177102635349850856515146503415027849218838236961380644219346168230869933021741148448602116485139861752618719480116324683374689383166935792619814476526547092597715933631944506019997164692887765699445392540329584815864146327231187146044377474334300654114650062457258241818461132630915283490835568741219625687441151284187615425736718992392220979615288613687332588540788574802814346545542871188452629966716532138761970432950125220645154480953448606360275600697117645270092912191869317709586771988789249919034585663058435874405972416561902041844795976644398339231152565846216490706250755238320300339387018073833772246525263853096598226500272376515153212009825151484570138601692070965536855722095595775695619690255698756851945962854871659164422239296745612540992026380600171395386693188570936288256118076735989730176087233536499334629620899840154769478463280643344735170782542241415202476461975868793728552977407314541279997840789098798760630081537991252291826596725633742053888441300852917245463115677238408369243282131519058358397171553174736412852470656271232343622640682878560862822898475013568622144743177726277110870174601585742384789565716794637999009517816374436078194315293922980074141043588744715946770770830689022324047788332451562181162479827277941711739450110165951426558752211751433235188229966751548456822421008299805984222400301299502905858735207053717622573882727671366926342063359095030577099753991345931076273471979613398141588681146059053177228571459243834024030046576088882508940243865612768044781395717914810464519015546716830089728471221186800386900656601524551132283387930008498040635964021240108578440721810723614167717045686015468951865828654195887047326580391657981609650245122504924236595180854130000554275625084882680721833041679499375473541567310739503906191960984551868973865613460086134094032841561763795499748681485237038995460692318317747721362186844011609410324869637256333815689467844333422233674240042854277059724739355612511718317545950287578639956828367506130216188526750831832115763273898467206403695075077193000482008104017423485242222342768980432094304310859600214938741838332300564837729905114872329039039436307921107491121731488348028064716681220725477255970333318952535003273231510363520813831627161169180466198977539520263479243854736628032398611787319593498687665283337580778583657992650810955187871398882022099165649758905803904468260209967968378603800758591554445829787214414036277863192142196718193711956967391177423826120087503500457729326720928395429208591589606721559780132961670275977623557730980909319793260536868870217946772783784494981014154412907978367998106534876872006896031034171142085374429474380892539711165346264474861665639252576911129173223260062756181289706105681711179717202678432430257648665129118505126534086658582734118398221162219785992745096546823574992427306864737469397893942194772334248660540541145446519138230869878996960196516935973702152364604101828141303478638226118468034018841365771227953026895318613569934756926558685024034309193998509426146352815450739707776147671958653520965611953003712961724992332153246331847726141496701405796326261176478717515157609035477599701296144507452693870241752009641261088004983915695191475688432955259071162014566571099588226809890421554377801109968057983562934023186051235389190144044072680058502963294201057944707694927715962606856726238814819821563925427104933133770421432643749629306355199460132941679823031969543770430260671684014150629613759415662873650789653959318631005118000194339832699925783318012953474137062064912619948436200663155989334525585387796446944200883413994319090321375224999871518309218489032849847678816609328701998580737961782087724365393116571551973982304142065982490194787667495878671601917218364240824470106920145742689702695500316052651101714439508866560542047672572676493205638386508787553063109593987882792063494376936533326818722538498621152884176040016462203138316573366770413988119449019314372958062218327486613794812407034978178016442159165924678872498272925173696944750304948257973196484569896584755853687024088370059408708763788987647161182880716809778064152252634331882235187509157383189622674017539293490230353271357484790219283943468528083056606719259270769043219274589257889375403689357261184739174268196218062620095633548148588341796469422885732705349821370501298549931129188181901202580275247038406821377185672396092488276441794947949540947777700964868624828196174148356747389417056354255276631017305055640411720082786583288745678692841518970089618754279176267734595959072434812089842764897112997023154034411521517616203397370614003077095145879623240316339976522471109270976731889589587651639594915343516811987508088856793558014554573146075119197607259684693729742476484758491178675197325254741504019287678771340042341013098442825902650596133502198723352366658121970038622289361446030118381006777201733086765434280632283673218265686189158620633746875448752811189887068014982427182918244420147517591855368528020080311390090383128775762448782421873097141219488949345163671149633777310232376971107176073502787845317026238665899347927709926145580599791047463886182641141358170434506475404424592152149745296264064773334246168195794419367079634771033502528430206815380329852795124873919820721608231495880052682538207322703292422187011252453437715146121314884516121583809240984912507372680209009941501744288445347956863945981896090586790158520235346130447001741862864804387639857882250345483401395693971658643210168975699162323332820913755027207501011503584539020826327523642931316567817853722040445333564289430666618037227353786930270600295999313884828243323859136073328792442536457517160840386586847182320231752740528034630901122536751844542994512058770477489852807447038829387265461253533360485066312064338462534528097344783608735873782032825576047498230018731458490583838541224143827177912902394768095852211256936014339153466473282747741407795143060407344138927031530052723519008771147514762750258328822865336819714809845240654798921666390055875043554273543918640647574348315418194894312039684952763725787691076045618738721293743981896289438047758066382075847926773991241389383409949556546966836813912293412613978611126666420176239852917934713342307898853819611385261527323217749100634113008862498666227327028942657389198521008662490961228814722433116295483365098662368154229171280838624375995145484972481871571622712806262942859860940421522333467093084694809325170553104014440010171027590641427728817237616810847446825792479493851119878853315139135269782734403610626571600258460234050368742030334672612944955068201925424118452141028995379276618786427969889645231738579638446626598769506684237082942233439590601518249193298856062186097930958396410889383292871617342543938507984540812107903100654211640465192663145636346633592769367443998790368976736164547712670714830895666374265043868484576743093692757956625711814099979952955625452584555118869507494486249955476860045157689214491734094440874048923251953266556115506691590512833627851965759319653556493410054810487149583330846079059337715170100361252892119239147879576833220247908808134739817356667916002608721011998209118257343139068786766869011441644957681510168019517289669494745570025792238293658647274164347282409510743851384328870604622058322824478608523861472869294490536553830575270916677762234120350016673199407975752882064914828888475876566087454014188931231432383712598616609129143533505313544828436702141147763131966141789817168932084907677685799167025635052921349944975437438738972168779126117775517202293911080479702691470936391042651161633504977363442182238458651614330737221455614037478411601422128723022812067046127977509331428257524556602262427467011448295921333615185639338831353376960902971292057847913317908990583258714958519985271049945646382549765926866072125308097428213499130840954154798420390863541700063890568228541504241023476020315911112579009467099882733344636161536243436309385998768648658741782535698261407643111418141824298179737968454576448872328896297346171763667646549987248308877052935315725785584432183973376994837324304722327958930624456657523539451133824406328557365556208082457985494287688722487213498269787539774249151158172112097970117302384334648176560400929000988237326461125075990501385342249607749750170392342144642442914738178763099853072826703197988030267589344446264694440557811006512047847773493303445067970418133107786100951734000396968335935919959289566325465768629967395173840826888427573055881815380773824441606062746214881588257806281869265323627430001074261881330024467527096250856720433847554819235167105621488250907344760721842869851717572808405489260266101972268924962926309816062219017957458901647634327871905894630944250298105871381376422997798233432241560011447294587174362191481789456564324903330492922567231177310834772110849764659897467697596014367231125590890861050033814669245553081651275144463701925019617739331392732053085887874352566834102239997875528170054742535723503481764877800651648496719750572137178719895448451880382292707803141117230039449662455931023162097100319909533445009413411289558834203146256760088710796817294261737386433058737973468701226075424253787382413752350379768655994462214852787675388589687548897585668612279220779125163787693049823254489296295152676376317706780665571436315640183750010390172467072040913595936462067664615709662997458831193097749096162264802798367561037024278864778877641613559616591532274662694068398885512980009098965937361873186919421922721249454819318606298420676182094350228287365030356288363206944469019025248204640851949616661270801091598566290631060673276329048219181085525050709820831952177381638852016739441849764581233828393808318860178669513889664856878332935937953223526605316145635147363782851114962915132499513206247286545056548528859367819625561736838196649926627166710949462748637821747786439211681805037844263941144637516274689146523553206238947183178917250254758021237467776838909754718228941609953992875009459622895833166962458062683131468190024295104138203703602768943056560501418049089927739246675337779324320124654396631732481454873903914027988384830092460491120224445170161812155978185143586989914841655562713717842183020528867930499328325453080853789835877968435019999614265484350608662890746733023969704972989213266043596748616716355388934357598110246352502627590425901546847372974110501378673977807026680506555946906517548018359671291384060973553882974317664125169259042689916433059196437946783865503883519783465436235943167177846326869475532605466970242123565781439716120652753699686662904064180534692854236752776681414693842363874948956969621192043807255404191296448328324554943113615888571577483911953795720313113711622065823629885888378396843868308433504986619378454517643541100007567252107319693633020217042607745595722770833409427109124681705560886361297501304953223304321897690713372862046585695874122897626729240157106422381872268900974184731966834290346026861842377103069275336227880456148983621712923630010883946433170950144866125514215452479907089105675188216538205708849528375767438726362529787323256263950366648487105267998108211589173018056816773009553346512258907900904352007449465407723157879784609615086721191575035690262317051173089035568397338972558579133717955815023506922367371814140062777224728937396675141330017734789031170356427873012679944808847844409826896981408245343776828926738194487943018911756663457019504244173454017650920140359617593569269753256499051933276731278265990986540232910938312807339337804325257203991658919786548053517235155779987635406572014104761829621323800060973008831204373974778730004355722122402957322864624572748598222159570919518854654817262532740061294219545538644947897018834394012246433770916523561198485001572645037594341636792767887746464563476708226764049585623908347113332080463879985190246656735675849592116117121476312361707238709061460404456925521501353990194131498525210946548434558256399932483395593980500971031284289056023189212920539721471210319168930324296660226414449623897247137707597514515985716052133972187716350831196280084016486278006319701113652548953204374573085543050790341539669885673370132058246083140373297830468219016039702971920616974763081474497119167089509913233426626780574874929774026465463839971575277998447399082066295459869955464092837452659535394727320910622385943582086431932674393593770239768073550419585898558839802089032552627862210143667714465113276315994145444086516453814583587737151090725894191917727178856543131284201041555982089310486227629661841449734962067762464964219190457960292704260959131485942086555107239431551973187630094478050495849364732131614202678703845505914133361216176611670616324708580199363677317648763269178351157093583611515347520540645807886574225187716974364252252203813992729039526163218990693408144907609097492262988819330172235225704031963308098584566384260187515797949466675335734421411469426176740055526157021576824582235365561136443603355083001010660695105533106847352856589529903284540930365175783575323989921983545167598190153295014078196296126362465214505000900175818182440690139162507778746233893228336841910130022443267563309517718402275704542659882392690479911233955875663882930719448357049176109208394455043785436113627263123565775392440978236808246747062095827022366956078845880202563367579621382832738683970216850946254855654634812042291133832793050126526868348224848274826559971698844709910855008753315534623965969780571018709399184266726762677828062481306112752568615082893115082344175267473126834497485803901742144247782187334545007180564595740676133408570345396141202327790252862186283201251085807624622187605020170290058739834280316991174854062415612795633440139505131680698928708119904828659982147996492023894022838538320378411829958673124032661258649697330708563778514664828826953811820184494091130109850100224942788042496959737765528583394048021679711121908680803515189683208245514277412382396266381552665354171670282896245830941016801084518491745032538460216558461710703116619977065712525810429758524458282383077547706220217272812041787692217139599774855062052018874840154326639549162807772784613309329256515132731776664761617438885299635248908980045563431784058795551244858417645341072548037887196008079972554229658522106011637601662708056325419985315636049570347695449400434179106228969138597945034412428551915838050995491002719600067403101818548549897049646921838217178739956627662247425785967234809833298451461166357242561323487592304134935144655808795236142852187367014062707344767843325436710869036937109097396565613559702351678255902849615524534909024709804646920408548119567501160736358984707831378352495067229598126885818131869442003022442265359036318075267234751480410811946784192879907560211967175836057701460470953991177795996055675959535768818679277195603013009719855180421139221297200289177477174990466989495377399856374857714137386746750572422245868359606139574289003225372548662292568588530126973288622996804447344769854288360371305669178975413433676819226161234698543429668162688285545700441347373212636637333744565526405931358199673886762193635355999652448614806964369673718089403957695373770674497295359435085618429388511185140448508928240229573425981899393932006353994084745082059518995824073287939684195741864500061224564926647068204740874455046359934230967709201022372703318877238075095833469244875812224210314623386991590215775466202682629232377973269290264826920084201112085934236672114186716665580595628791531758112913981537953208206540986359087100808253051435348736074763972238390932887075084165879480014716153003147804705989209178803566750131820906857150277224387853469033520806027593654627241402950603044689950281312875248332704733690358532902888718489878267600651009521952551356707863030025346552605861313551620026457146517908369184511234767502141412917712343611386347940421183889549279322051727643665419419232119091090583145547629624934480033897298952293071800861052519302532736077952236876548852226116698672211014335743382895064276100834267942401296864887848227642330181031524600962656557217504998362345176578825396651649471580162778283647712672149413057994193072735916834670878460223413061677725226459388080090731284866336019686597770717061558390200858268493230195102501219385934797224826507034902932339709259046595509446152135931446355505856691309326271026132601707936608815825391406160267525459498525015925059795574719618400997038349889979518035075262537484610337836382586579663362521470301792013970190983300293876650907361774882952619684795303287850534989183732755442479903279398700484364059753664765278835260742862229366000733627156199529612465154141026130233980580576753914984917178520335988691875495045762030315323545353342482137944849393456528086731749350553082320519039263016747195358660665483639486228444640914117881345875549906656994280281694908381284751717410483684129098422308784569176795792145488457057710455010653126791029668278765292085358527278374345766219204119796528845751559545278858682936993704969594271929206489137346500658299799262321407291310401800219230027175779829492636021804750396728988234609804229798032829927790730165702706187360115207617580765102476274082954414597805196315377308872588595187389969219972187040343783870660811772697043850307358111479320048991537270326554356227180766893644409489469059701564739347450928298877878867798082130687796538640364754774908125834805721914610710472931292899250192619278685365307049219127807857544420591992005730512657418551256177501808945253444105564244613672692001813325954747719859583921613631470970278509588438618161275544866486165815546638467994523592671369276979944873103430220216828814373534323712777288628124338473712657756818659079457987706911572248550609217429469986106672844283720841134721577211806344496423406041943033191069693411469675746950322742792499709192843378716348150131831402717252041764723637223288921282582127448499782482288086345026563862147448989904837297579430376252999314319740574205717242967902446579641702597174859876369770775132295039766008347679371718150582908582506770473910437015716720066293402356922281399339151159140808579799133079775306062882049803596378679991026264428092977721840298621418552734721424844810897055163771616734560665698278707455903577574225321594877732571183731052569372429186996407393657863072804332390039419178747080149249906789353164704817049696530837204233560810761666252164770099667475520603112525190476156746161835082569695674853222839368371738059937774073955792722486350874128919928701514676823961761749822461279171361734990173272667237615695010188211456133636732481706993437964084257088893383090160482054552220243830823769979161057365983897115303656432201935156338952071081589423218775714763278911210620624791944883057750658048232603738053843761502015970163526108919958064121464606379334215845535922461589111856260029524379968058087084527458496805801921663242121275302708506741531132404241225203730851668312236194726105358641464777600025625608138632430330241127742636878530853377637909791668522864415447445094933324496658039807887207058664680923330945179791211322333517844363258843357579471108740269054422686999079469686937160236136227096439090394873767597995259138369609099997064495459517672468513075442611346665656540309669031143892877519430030406070152784088378715705922274533131785168535035556350732041170417796350918427021256582577201411560644417712541642842414387003232365448697668112791590290182900511804383863408982115969840368170194360529938517962828806773449756356589201176400100815519255607863814092227268378826464437614453023863116555726473476718110908358157110845508935463845263751719780787426019456443341595769539933632016636484239055411532368237427857044749987289717963446236055883434057424113526646396829569563275565312599740178385519862546981535099922797049599766598649218573107563144260762838725117135942140720043143833644259150006359016394327999729568249830650343524318423347158498491486478081223732096091128422035129621424116904539535154534833534384394469131200654488388634615710695266797184003654732792960818608717237559832955840960807590542726001290107583430092655092170138546189176900918242137984126979641623262478555198811159725009875308913098693072229600836851827129838986625124541463693314429011979561480178894884641696054501664481910505039270691537685957124114751326793165301104878702460780896405520940714066274300935827205091595213977238857706009780465699268010643680765791479182944669482372395629733807126877776282012994090572573848161798100168746738222539942376030831595299880307898037611136849421320666621220254282799404893172322614255385384539769052523093708601331559823602093060502633646215005739992166673920181716366627731918809157403152989890764028677098814504624275765005610852288820801793886895093935181921218347551993227532452405865252793798991968063479235368309373943187144454833257822732820033710562060770429907505490410901375502733465076478240706004953482564734988836314249175796621048999119919985812659762684548784738977684325382801070202226493289367220025173123044704194020117820421062317244301596017284430533086947078353391248638824080829083667298032632170268875168147897744943650668851044540159129497509134817777692841716751578237853942660702632692590247855117341461823017280351496441690597311305559544705173203770273566950327082775176998060750893754570197352531808920406622574280930106182963680874652459535848683966324923936265568853366994183151441440209515138350218491004064964595600921591993994568596956518791493673279473242912959132256795349191435650552867385111142882909379172135773980399097723635598993830170468911646841492855290548106240928234013636775912979556990061386408157370236115031105883871372081734187257240857325849221711240443610501237695684413037833618603698303410352061092163279018032620183062174955579824077749021700838917297675427131405725828087486103246488959629098772223812094949144214497605802315888183497210357512789518964983475737756490386329602299078304063544556196200655403081226769850888227007913707497685817592495517073485342953019327197367945717979833635558986987574953309046953016887433450224645472131154253283436621990900373699388301862533915610015706589380839944029464195024845893072823467153053294148623854427496441497464432814136230899528126945251323050249880886494621012274827075444712503533430136335247714416155830015608822518240022590090734324857839801680412914502202046292526965124492587437564323757679048457385113865617752270183663768729860456745044596213301858182222527561468373099156839835942251734508786555950792866833008788229972475932318762403844967739194167163857508617106236675222847385334135099090276075757916589148763773607884053035109547793994707795641035694641675200989884437809495959516324698634313804560239277941455888798196276176250438266244977299650699077671073457061410432323155719969314283274269142657290969431036437580893424251387630034167487540246807037670645761205146516812888698991204848799125590201364817659919139399325122211292860602301219077141688163279324395400303468384676624088685424547610406188163407572972, 440483600673807579879591154710627474660223112488011739552950773329757108400514430444298972537027414877679772917721305187023460404756713263030322288678322818617009710780381848598788585377399313090359167836462133873971962895926696491831574834498557055070372781517699137975769685886995277581576726109542588151825547479294834061405613626718441352073898253615566990388562958519837257345768220876213955131667170364748618494057296025522906199521919333584871870326738768633979605150702924304453455986403569052332751740028448825989058330026406740851383183543388455961033834562196528508687212475935057112826135015902930574175179206901624896634864498477915890092826563245305915311688355599723309663200006038876304279897853300329189884403220752508170584739456728618393436270019685700708670104353515510639647859614080487582186836462652457757922376826561014283777769011961372033667420430486201737605634863971396127018800336509338409142210099405496372321977529295761652714861684667530534041627094455336372671882172709976222671312878108145945531613033622095206612312999469364832513235863432900203151798018874002750463003124324806962458090420760035194937460890836990570282954029263701437489188174623636057248698149138800490192931845930531582138454066682628755119921705023104358831048860625793544844190870863249519364308072172582642329920616177981585293735820662928762797803189539465872411614447682520770623730057354518967641326709756324280108350775468305991882909751360790980093127410651972325677451053331116650932600336837125606116827182354021325467314624387362954156330946420853618377140449689860908820282680069056951190902453046664295495201906243224577991787726005704478432100602649162146087401591009862260149399498828570156602355167765416313895218427321304346790870976735864505878809484563502817060760160152773465693993387364584285729759613105230560639278675097730136099876075355998900994742642957423455979810947304989881955333934991914367942767246293561100110117598240056786811588569101371290071182036391405120342986837493240182861583500709503221452424459484316637887776040245525593001898923154506274190012829618387287504831249086221221311694907842598321041384957832878977921224494937439380222995569083173204373729573409556184624123145298179094841552969101441431703722692855610487405431208759870506724689700549163116666644111277829472601979512731210746117881509015965291210282728188489639587737217565387696627523253208507518382047739121266416898521746155570921343623640476638377412952392958405780722270188406546524133917180447047037242140064101749305250950778226031601093917247156842993515719409640590221183799075020466201148108520080054710676046856345841643186470187685317564659063233602862265527803094124094714780871607072236118942478623421462180261760766287731218811753580057473519803367055246051530659861749070008743943402100770976965590599532177173216711543250403559359753276787049693752294372144244469114152533053855509811385960308489226993247950976644169650885184863268300217928704128275721331840871629929872038791546796792564363961698151114733912543848831337042341679677414881527011329084919546371049501307169061934430887127461499340674401030727010839061613730344054410918694285630770383309659228164213725274568419252553205266937383539721147541882919286973656211969541311157104764347856108089698708738405264267171788439657935940937504209176929204270385403606868845127135236443567120593361368118519336939617232259637693433254881545296390344560515098794376812260043670903045926112746690497836811493835452472269466937712367598367075982291671510889620136736414740730506616386065514374326631879161255750507831049049261974004644835109642211339219335127557043061864454448838498273587760512809005450280885547641372126121742408669089656830301590954080336081205484630096074049280461645177769788364563612857713903567057995543707725395781405643178921899083334664872149262012451930331206111143622104520494167994031563494720214184207134458611461015736908222565968364660309107665869030044806036578154016237342604966135366014255033330782202808283015533797537711168791804088430556867278286661474724367465339057470769006065413225690462332719747301757634354307767505008736718453653596196561353489705004484516531059940590268216187836718646154546723254706292738639860644125372966998887297747480771276715558460203230244035278647589878931330844415512027020518568446769846814452543705465218701141602497694925116408578851450882711407786014916828841540356801362937472426598308905509954746767962642200833342043766915435852322576967434030707479506781815528924185780149043612977141882729384900366313840733430963594719836469348558503199705971688305029812035908202049700945644374705804670840907415918830467872188680499952902583617404021230735665886385024429736989636743196443582074858086194369880877035532906994916201984734537995947849269440336069217664963161047826596062660892205981590474569076738056040047401845641937983092625328288589214045551181009589264189975612781740367062072062799210739357530336433068950829039308694362678068617434629437770806165169292588452834791648003835804677366222722679348527376472765248950909064759568516476798527365702225580153298557706846009482813410497395649073503796251596531697228657242487939936733387910356183611806437503366460407983964305350378072191806240552007959796560200844597277002241487694807611732408207745588759982436516948928117954064080350713243435714167708759844360976959703325973478446338676283153521915841546483084441082740678986234955888389777033611207062355296757959563862280726395403523631123685290066802097709543433657717396205337509376697291331580959651823951710533959708219874161765207372942952837128012166043013790255233631280948980893419736689758905115831717175322088876154743872529956162690691763489482869133341266439519617646790076003627952418478572559344984678705493675941045354686489626583185455240026689880723685982195171584166087067131324898055724838554043425550845654631235262154221216454812379774461788251408534145752375506656183799517891783424045023193167723853256523622547286074644380572223553612661407315005483235073462663654082541229630932374765102299403595971843825712218943356199304621193043114035521331654326099059122755257783002446328900873696624500024589413551290769146122921418552033877759406510044450868813461528946985698591261695012015107549765618194954556042612801331537545365607502163254030212840881312084542456808440351845445608885578199189746082575823451597266051196007490173991638853183873754180346313086673130170491887205197945660943621612896985397178782852901258267162915248034402468089312763613479679059696469626715371850328021890610461301829963059675300002014339677671119771356937927688343412329463781016634585019230130935692581638712071365987523701534537699342311308079927126341465532993812295329640652957249062308279391860066469122714485419936183764896066295906450937109382265927271735456750705273726250254109006369841725576634907906423503767984258018464791754233870495841517438945726161363800572240191508227171344685043053334366953149163868349438996433262017393545493370409164090058733107634785402443523897041262364643780540631736532198474433172245898187894248794788757414371271189114270095272178229625493529541464808027490544250175849238338731935906102597397097288584674143741515439243636092004658513781436316439261821344004809042704292599567926453646079385008852423580570571879602234153446816301656624064140326887365253866496855255475674807317991968545131973073233931679426968937514253310290133516221007508014188486519716426404944197017923237456199318460716090602551728780497363106767265601784900934610619083543884488949163579765170785873005100623768928390255301294504985670670133144938349764789967178700501411726729549405050308388718313121801273135495941648240442983199230649601764754273788944058401914358615470748324428270214687862975638833201497430876673945639299250101721157007070261776650398851814579489949271425688473400535870184437908491328924074045273400468624618777456828974118233508769761071670638684055345386297784826478355797791964203738886955840522327612741807291656813415765521331811382870199887880814193116408103769343203981262450211932339141311230418107239024640928250229952025033798976396828649711461025156756130629984865070833542216288895022919123131147468561435551602609426074685798302864855424262290457397860652894057662530125527251607972038010271989519543144657717168314172827593646955772910378784061732851803138911156138008313126999034526906271599469491545073571504538807389002404283993681846986049368172792806450551152377539427186090580943341396881003294798084735898013037038778030784488113556264005276882336388407910724506679590298705068063973279660486862246254953394196941149738702693334559161123353256452661605682955325171581104640191008141920337025694222019112514744543019687116231456875489133118292537604958639906071338758295277911399258360373616860477553207323561380819650618817103347705712416564412996571141084722430564649068920325853658383187531646944702381501474242695656322510180012742394190291620538104591799771942310905235859820960411874928312194353645213041799047289497252625039845556669834074825942603605122507797539217106114563511920367480366502865328315786441698881906478134535233512330223214302606800549390709483681771213470755725597250431082857232510842729654914544018851016753756077380094237082666221137793580693217242831001774935583759381310858725139955279786079624421848064393450171273706864227583133386466211625133669587515973673907674484797321013315471140808907494701138773471186339876601754856097579144168770083744546435512073639545292454226130885205998652679439055513153280155467954632575371436413253500170620155378350112633545149050902660862869250940395894701532993899615483766249195971726318934780370324422353128912201762912009233886548363749785655372767491066743975460744085882851509087290903226343603955084625127436119618257188726606810615629517020305501324987842381929557544920101973775527322963528134771281222332604890660153907124645101683428025343094167222414325496791532436151058104138625765547036967169083426638739391490810470478722944708202279926785954671866625696551201095483746289835227311337558721731573814296863738651288758085117996638842404587118931173070535108280290555577958400668074564376940900013813211704960313530896002379560717682728345888627354195936124499300769303938470213644623959699041452364975043318540141749571371703216928032615482177700981371551793176325840194281380516435130749054225468809717203078519580737971804649592839466370833549450367150255517176903202398168340638368073125148346747389750127889369376357962048835196113346221149534154767089853506588050704754842677186941285703309350392078063526258958053516171705803389030490497495334049175527399276154099155208262743724365642073964502005801964588751242806819716849154696079644980892479199610024538177160059764598046928863584862707803943004065626108753705686828592501607396299064788099184970584911527677379694231327009079135708023902387251762559261100820291832144454420063787268404243966992629717427159865317593655009564768114964875643406084380149639514815571708056634125352487364154847026807570760686004520244162030260457997964979535171351641322804345766273399376421922941222212279757418218499879796800375068121558887978646207322104688175795136571170116910681105390770083012503174962783067107692415002700085911505107435462942610509659001034746783128043065776511304283125638763205913329217706245986951264941746622471162865803150448856197208632390817182536071041115800371652662728085905275494406801493133826660650451992076148146035710714406751159778451836668299202616407387624089271824158029835377128802044452216698620837927522191124355080497082803431654644566272274086015300805973311104328816798242614107167037361229627125772066004330268966703852336515772723068965171037720543466438477899206113147549939585258457918945432193530840615204929019118289083714776141442900270999913089867231508724293147309035272706132716910354341956488614910082343313815090819758187138654305051675101188302791032466306256519065060896378359021366723161517090764543699755461665214905142204583033741329071299508272387959252358409749935527261304281785617833518002416823150081700291346932544690388135389228461452273438349879337630823642578723224490114987749140489951035807856583737843406365492224660300438280386539928272993937524897176096793842844258899012972933809193475014173272418546576764583742795904871191231312493073184229774350753103135259867924227343226267733782266228485358779761929644193058710327712430993051275770743811722926337893141490639481522287964788184164156481785506636791738576955324784887209743178025435487800471828325407208603450499696267237073553665794461147425331418342957121884244202886452015858166290431407447970180201730038240999030814406404457194338323243654558845035515674070197830647759258833359020466930549066189526552565911359946052635119006762277636699731837106926906302033174551410265643857177572635150652741618757536809009669293191057254849758152986597243595148075434813208106533087005642720933835633729205231015451466191494105219905277899627692305174798055661645041388984214344120143156659703024832743301165800807901152409024653639041662795909114979994848402375986132981007398088018483621496062960693492753801103875314589644021607599078514936314640242757966674328952704213744308525298103296277106222587021222854011405398914444139717033421284322965480111033677292625428488460819689625926481178622243679154320258293381735828679308941146973051012647488695003307287083181762870440124985104779378129658802815754631950194176446360102447551411049520058757014989577549206606833993559434557517102885362443808937375438951678991494410848427512262221710375874889948868306882978559105716054502072628577499501914077740004899449355007490482615549444729630766789825010035758239700173161945224424892421000288359041622288466515681666676071493952483024878501017672264556655389062576524910908934866799835629708260983473970493146972069734832275078052579290574428184199316345236568423371198396655906768164390287269816770695812057421733717050098303565528980243123541337565257217769617020376828713676125346797608216841739518796928769559836895213514122816436007110968928433747274039562714670579139953393151437529564162227579828064814282544181649301855563812674802491310883981099523862654293043899892287415166092137114124818002475820252534877981884556170050410326711152341724484818112067398215605366710177768261104838323749855729020880147555906329915618276789191152725612050078370274631428362210360746500316589505556293248871503901888834083930993975919304760684739052413132037159972673780949451009182802647402915769392017850803801072452480769781170602096615949540988256359422898660489298019359286664810205646796845428006509969210465428013676464503186871644595346364766938649561604661277819716369913473611691168410164990149506409810039838251355275463774322282737757859019961939588895814651852699082252038293565400928761325428475601507600278677784208874607797046383274449949055182772617180547062285215667160758415386156605976686022989702941070760192330826490699445482666982137558084183290116957298381645686138360254537231513016168655832484040056235403877423439576033695656450494824824741685147998181000599499600189859931904576476965240722097086711250334742660236682229190343366723812624217352432236508774839738030415185811472881266351914702766632621454763633632448594948624159849055308116461068425251551466128592697786435589966999568127672026244969146267944322592236282141178404916526485917203418906971033812896263466399184180816490308030997699195437756930897106496856141561382736543362142219077952162426021781768271101784743102470763840848960736082784660833343515433108891431481328513322220880299391358784644190458769987330178652049654000092944156384744608941722696767512672180676525862917918806085256795877392327628003975291353215178614891004063988872851359303762474823763404276233245452017187851731485619290399360786314975937692759240942096833181247546582950402606176360963006819954895471154447250042310388452603282030518133814980175958790615642372762876929143827052243527110093050410114922521277896868131583532048474426275025521455077409496549086081363682227039009741593628275764379323758267478984668518905751922205156828256860702201516959909052779115509501798205203574822194504697633825044462136787481060045898650444733644758510348794652451933187550650689353936801793500919278604972606378263464071596801919463754712469596542806786944207627609282951178420002449984155773628821979935104561140224641091733209492533843698426817610904497477123798772341659579461752670935538628015822047162554476441913566875765107859532866157501807242156731660814726134681850164752188835117059321289732399270162757775581408231054033293269796955186625509278000234855632002807428831059399891956111217226984376471481045633939285907532857144941044874378872584057052675865744747838212184540181335423826394792695018955832838200572835231423032853466223858414987814804992875491400381371072328616789500415166155180160560270342051918032939723323382830706178428322704386299507875859017795126164767563830294567325548310987535124283885393526051064726345099867397549995654968467312980218358379278529345295393584018637288840584327285052371919897278732896982189280930488493892296041821173812099915693495894272975648951983011872421465068680590219067557244269783599326570689914533008790733967756212653516406998897768857839347656379491344254690826626436219144124597944487233941204836489415971505500843381105172947582796990301749356710923051602085967584831005135258434750284438403009565163770129850557936317671544334280163595758769426418796052504415293391517292999503014129157947306774363457349920208991970584235829228975706222831662077326685677232582983363022887290424923197644376152664603601505742971357660334277823581162625376304099959685705560158260172323580109257869509042004033334031677681130394827089281344122965600079112408969098976647864968746095604365139682112908341942361588340997943958560807830809819789515990275424262915749977976375712041790843001936168742491290137850084101381460677698063631893087022045728989196074199525428361539601587908495067475137562356542556280177114626169572059451630488560500701963990513647983634460097821534937652132961488024292170175434532681218297014125816706419425495759091080270610329856956297707686102647297665266069678277283956781674990676138252891672377159931171627043744177294219768880507830404299721359642757776755423974254683061626542573573704199506977283707626773472771013787269497042327922484644311641473436109053925093271813849747261656126071725153643751803205425184288300367707803161481776533133266675969703802964779058542389921955186433599737808308687250717829599493488605834323449615125544445236505916973126310599284482771370436609861242301286595199328328732418053809897482407647502959643129325535071684936359192719758487301143733391189516250041390075672896505347957944225043053553972974115967546122200542304333256681390421719453888032812498856082465163437939343969417661461101133780507839320939157641549991342043004422781329693771384655675678352925903569123835126969662630102213086500997414558704665559108748294248994385959401059468870868277882470946585679594750595523981845479458473092562747144522777128188607465869587472468746898512778727149638477959730165721159959602026101472641692014796957691226472111157627768851053874829811266007666821121053130593169144578750424652789576084394626165110762654731166690190443769887789293660343627246597984207467874380050511573571332778687011293871028516666319011788313625257151353226161722595933277948059276917486740240840826274136764172518414025152135569732892875578286081804640698473800344247577310846497140524334520101685643849735464401253581789118495079133479016452810093464956448168298365421958588831786419563543853750298026432746971082576335373209560405196259000089489858393863196991300101431986065100350977714524171035470172646537345997958301213726788191208396362336538789203064686353847869712547962364481289672974807034276217821634055790261180928104637782438508247079407760468421502166347951136342134830519993572866265099093804392142670390103463079147212014971683541650844423097089345662183101646969191280938132486729412865151658581563873586654508185141718298438954011814050311945281527439906558925390879242501875342622476136636908235840183078347043762420460173789823293657767723792429018449435349854064244172505748014208184245826307733338421843633702931197873366307303174770675775120663296198333256667422036533511628306868914609365393734058612098384120222155894146096387909071544892275093263299982911054087804947851967559772866621334535357528787195915456177111135218034607039368540213633508483896793481932500913587008662638618320086851294647340236132964711714197805529843336267407434247827344355323414519022837617412023296046301180520795669334609229486928696083974967326713669217666170805783144715329503321587731515535642959241557217975726547393858625940778156857407599651607528868384689650218412722567509362088241914600652671536425232499849128429049628014759832195385952729867654781758480799312090411972702619735263930211021089128527693347809005903130033511663745422778657770669023566316156991415068922436454797139453577727785825539906118502854942209099386505265652720713670843479365312222511508418574803748136145751523353106004041883635140590704423145028877649993676712472999639762048321217845253574910017921122962960184516953216362907380088183680759487037236869378276416690213720221725558398617000380154822402315006262541876763601181826885483041298655166480427830664791334615248349069858158486774997706780620652327537093127575139551753516037335605994744775009782485183412514014149754173038999658848714724385849873353553510495333164854678334622047552693335755403452066771271072606549701676646656498226433366850872450160900078802480875643106974046848461033640327452155361718023183161280905476011098420335369294053201902146077818013754322968398129974443180339208563028367344127277825430922196015707271494778490742075353453720409287358472493629565371310596558177535822528183444457526568493943376474325316203787149189967135308838240928368413915214672382367430877916815990557632357905959866458046819170736840226109508118181318498949156588398335936232495717999249222670848028023683098394762097052344960096280893202528170794973531110793421347949301895847188378598673846161355821983959473540778342132739650274167450895474591361916851964431142550549809026046021365086984137233530433532735620809698896174125747154427002663628787911690423897164536210128195230327362758670315756697007460708772647890429979025588460953746524927073435055748962459577105431073356532334620567105545713057532380386266733791133365143781566083810538636352050223687391649642931706675566725897445172175409350745208693376534754195751883703176958159437733629193013073740639625166964982617187993375796292912171896774372201042944764613503316368261683381626529014132579901302439064705727915442434222478658949360176697869250186946344276119893456882668026683009139112588593092133760949446348152847400588627740829636292486493062211754355699366721602630147453041147054025324142573220290364323463165349199787396920302781751093981798144249552570434658717282472836880064447931106442476649424720049033222374656703465898646630446499437428087756798766189601540143165748612947517983205758097541414756661390429455273928011045711357458977858074410470021490284368271951818179350308075072282690761925180209423462568477719798279995031705249589358492846842629864326147105927140536764670903868091277363935324510983311084102016661504893224217789475994931017896162740690813684714565984042864596948758505316254746304411899500430024127505795110897002774146366417764394960279024909766950148307029815162178058279835343655796832557046896732049156610405250190094587662099030525664212072110869153513350095288705336461403491950232286216906631162642981829549125565611953835525813375567033569359480331723451714045178091541887315997102069908787559337011967151860712839485022846361351195389345020920930458470428681220251419502093814310641177657132707058231600024242653002411617131356463984113626452759187270579100342389464257326843725151967437034942477339248168713477767522976265256422348860911372880518742047574093885166955026831905770935344542171497534627596819977348869031607254579459673806494767043894614788227270114635046921388473050159199637848667791087012416316354279395808018691677725923112797279121720016492685298688610157349442127700023464424111884598015849091925367070787221542806612179649504068039422654561089318525315546646055821144872817735496490235716806127318532576630457053275059602663896668656495889303482118994574414379082559188151860900413380457788120048424483856789157460635664270262290141773218830734924118978678503229991715158685530409851197032605589393330239733460270925902069276554824526667214595036892502899743500756042298113706083781411684723572542563084374694820783994827498116367173744107696653083637151201400599496512249571291904796230436155382655102389276621287458320417872700846610872191253531670450893051344117476952078044777480868469745337871421770730221370808953005139846581350994403969452820845285211417268897327805509254765798290825592914794128102132951096567805225379493895313703915059803636876692289135827624796993640410168717844656609466879864103331863773345402180560793305102512128824457858012176318860028137377834337914878743728950987487882434995682946133366310184243140705379772063013652533015835446043980916593151075206394981515238916911711702482143522282476574238141344767284087972765134307114611188930925064129489400558229398630976103110400383146462987728047414462406085564554729839315612590217941001740024314166614520729302424683186101826308406593213069717719829359708720959365517620913810788644522052689181026428324892097037394573362916076391157066015765713874943853458144144421680349929600134931795378373562337071910969024757857957228546295197168362512603705159605280499983131759596682608679220518695209038772359182539350868983945796621294673858386270923912154739521612154926225932256272539869709980284737229981687626004533812207484041338406234510208527239746644852080531628102784115763085674612677690541984793639532299241886321883103378613694833449394226873874496635397544243653500035166616646666903166856452489314335189193834992745758236369433861037106699883280843664884484824613158082531498857438377852704126635183613802425429818733382740451897938534052388848734678959566059621632151426419834979834984570924562910536332223846733753949143731761498851707993606173535670379077194727141000788461988164883772649512179459377490310133297385536186182321116267478684387491582362955102045264816981959249479595780719042450320948901552699725322583033346959655824348352860880964683992158780194972001205722118022967949106440655600305648343091189484065734468734766641011317873352409301641791009151258848913051784191437982211673712129738418471262640285770146604654340399950233892996607412395093471140966977344296854529929629067901055314396920667435352472668365285499556027084207972928091642252847244998776258174064925586063319757802882013696971498303228062079300374538697636171396913043282741284601969980912035324578586655800849423044340883235130280212689431127062740876010116350211060188869881659821102888499945283128228222163424337375576235088264820892971404702474516854243055318248817257302691443804547140703364475901361881179768874559052326738645292999645331282883544793198658743432428971640389037983934713801266013594155718867091821474960693060491434861453982069845370488233084894320834831798100453049872720269576616506765791482239494712501575346156565594504240833187228138292804672964128353949462081633117562530039722775828256443305715744258520540834675640490730283720457106082349021007648182426220915661925432976443248213043197153521964815346939665245265666265884453403023961685296583196216116780736321058115324332626002235397643608051935772850332830818292231740871595543519207958483156285405429436978746056807535969202635270935302494903852155177692540386971796080623708471629849096072506816727514939811951040801837389827855993057604922080425055248398010715184392416152502133168641981560507462139815665581382936769480202197355427959867530570539196693809430330288099494379021218580347872299260992736978488011770164897283438597966529336567527887913487520804263203521117886808394784952442039345933321324828944901911278532904609569551643242311987855691185260107436258054386624179972113429964634739036459387224820960032084486326637870537440961660878119392538060967080336150972909103654363892548788524536573023131579383802271468394568143264522878713688697039854632355775628755140496431664073770900317950179712269523495944554571873379157134106263445539560489467549888999871272242296279121093253285297289287638096737907901455085376520856036993452393848463680537324139581004720638415325207240904330193421891699224644656719819218945670168861891262541985442406901608297367868020194835299648624572702524885855290033720030052838051046373416340057095088087771788223075191079672825548113385153991573071556463882451823925899912238613649796960317191769130306158821730181218037656964055928242801532724831184536595880091509203225867927544076193637663852515284741153730429433174960420558081645874217764582484573498257362280682005207652605512065661913201715674544447780335470480254202912444808840470005930337736317170358153236134129662862087302259012727733829356663500221151108506223835340330159020142211633696546489445455133690804580082358094005671921163282120212986660453705095388022428235728728244153059183103055021541611027903142356668577316609749741739004246813621639216912799159920591401205451782207450766238904041377172386284725705433850491980473499018681717696575041942633876164802480834352553576246530515951198117552680668620349059935252636101499068324544146982412188784959096277082782658266056630341101826848151446865603964905617705236263114585420908517533044631207138659479994348131087616419558652488242276339645600847681485471458276798168223051495951965733090222312646160413057114304895105031542784588190064388678190999387335389281957407429398024644424092887719560855932771503487168852816322908181035245330325107883857997419754311063259859095365590604504218969380125409352530641934903221265017239344673232020089713268859064709579097298352673109508674898840471872242392830421456991763870148540367382960686959037963653747128332898378078896460306613310712909733784729638014237261437695973039274543728799084287919843350843971992846116422362513878252526546970158069652618894776809182866565782710492859370660160976538101815829800593911576510475543909519207722599538418483915322185428276377808460041323889487108940483450448467453922035593077859439411039930932222716007083595952457632051711816112716814817079367817813146562272902635562084961616264139831067595600332291973892847168079852144667192942654583778316642819233563171981385805666993428189230700863682867378273620158624128835822698674202933054282679641744862424987017906942964900408191819072177588856402937370105313962504557707132970179138637491857236329622167227597958805562163153593191192952934640950226058088403708926324733484672425906217430769317758715035944775503296981842452789162549588853740770110128142911244469923663702833922143306039839527254396719548743009987023552396422279896153993735492000482418118451913490766489701489534126989303612679471152268761582858934028670857117287285390109906048270318187665248109837307349323495856141805629098348009358233433597265375500918169682466788286787119064936218250380381449280495018960719231586277143830307023502106396602057666662177817742475228381604779666480450001656174268588362548623900570220333964714815397528177336593482853277519369780741667728671112917984706332656603481582451488328020386151956823148837897727633591431634253731543848802564330366745533778757631664002146628833645358328894378947426979149441064575216054363220086959510179973415125689511643805163207276910596841519791745429630465949937167183160451168192216019099370254734404213432567754162585019283036355921573594908455657743344900651806914648434654389150450309544944721510462499549032800109133011644632975868700093762608423302890876026592531888919632426289997918342158019300622028353943230876334282999110098942213833742389170252953438236819128734438439473404307149033624132072538406059586172204043781483789529974683139769762873727729617485989910435295444379788600557158905357980628474158303782404793347400808770845606748311350353766261823992217458208967761630676055988748706913346524221808335888753988786847079966482631420324959818421213129305574038057847212766145554587158040044048664150768339456397251439937275482627039678185566874563597963829399970520249218054502948357937433033852960115319014602403525284540822958010894495588930572122148503588728967415105384013851199781099490060429689325530684528374870012419975854673327493914888300500130948772264703102847778836848035553304362793479638925396260062012887622940743424377656465378721053741761372379041728847309840902277555273440379873925567736384020381859672623575955388751867847217626758257693509717825609650551760668885433987461994053242466426196212032686661421444326102222909802452540116611828988147254084833169981650320825519898303933133428899906991423104100636257669378855410770281057828360636631579679040595554257261934319857617961878908957161180158467567179126214097633351001779518551648835730122599354320952216739003299586005421547573314190182146617787480096221743437299230617014416109526209834496941458756908642520678037349465076352901186564473466209044835313357051690114379556639316133032255863971529538384495105625878447044628493115586620452801589163754696888979377076791669354797108172633031934370374119722833832009305765349361020052417718201557135882356933631888531033580713199467155128747737607565799924298414229378315323880537933961381675672399583612150318226932507452178940365316204416969534421397778574302199285998443938402451244347672507420126802173915377377387783617014291409712450643270236181394402779475939951033272832661202722295301312367138494854659871322726404429606790833773753112127321605573543376369839905691080769449674097848841996123433157327948767240311703474896616878649211584572003896598910313090716313919297204978770921431082695380270889522349803089060298366575102635931275717138043653479384084951895378251700369232357339516769699232490547031023685061834335723663220850020552076753575469091394495135703422418979896973882291817760457062890106764746162496971808724074435404486922374435452030457954984317566741800958052090127727698168135764448413809356507576895527414481139762933133085221285040620136416015999340146324527822452702274456008029341094975107544097602358161544521983891116972985958130074270974986989282848990461905545182130665042244592536987892823110478341187037721048531744975411514056545286618847385812022616584325693992369140702496092644804544400597599661720138852176829763080869472305019652098203322049321630108420513635065475875352884569085279819256350635638835426243751535078291538225066035677166824920529060209196960340880696490324500222372513937307928875504784106866203073251205028282045061056297222061544643924570315254147274913476839921456976920576521113671203209437575359307808058247369903159827252060814090726796717876675955005967247811995960944954327383144586256584363400597079665253461584589417748528001588089557514787104186912899843625101507147916828212481940246999786118744427305536855460917226440308349893755221788598511080347520961377541794294730518720557799827873925775916871925414039789709163568910018005870564022829651339053215998539680082967591111049892042020799136006256167764826260572119242863777809318934987463049291049333029772579759375017711869817175560903792885643319156878354064611999839915684796260462268525975940884532955653975418520321054038301566419937849102589232704804921223911306867988804509678659250220098001956191552442455595679649345688656913515321978430831496457874841178482786744751403019744073459613066162469633900936343982989263210951968731265448240821359749892839843126711051583985815657415755127274619198942039759903991374930509888716961364247634894389410400269621896102072546605282745368014894536290530079699489265956044565237969693275770677579268921696366546308418708278541911421601550753313715508170573369031053394188573779049856909016666112639664463724063451735045680885239561473532599504439527189449431496879358066620580944515115211834484779251089467497588421921524921170803242372007203573563303842415631412457667947074255256849733497172739499570652977463451763209225883623700902241462120560175979481144642474619496401468389345494276505250870954402506475614254036839133291353571039126378692691354088884661317645968151310955509697136912349591606772946791925559871284190309298123632558023385143659713722887166622714124013129721102248838061031280389196559042072687162929263083374675542446769544805801563807587703451475332213837469718396612312103674280076583454418170993707360693344204772906465320354619325955349986708257834878171993637656460213868797052941331986605512149120517745865480578344963651909359485372346917368367928712107419231803304825276064784710270606729065038463372726002446457018257425729037716557517179143124104226271494668960690456056968287832837164347164351070092547361159646867204728637660758274609105336698534230454279053081658261728808148757731853630737910212306928305689031242395146900269214192466994816923147260687896987449037738803833741748280706430857027042366570680457313256768468678046611693766164173051498997872920506654003610779557130226624690772095736872535197691970844896094938098341167461815285285040540754882521173499619384156776525348119192248662759223651951950008661275085369146140450866290425153753721821583430435609641067359434969943249138808295432836746803337493749537961943657484230845954494174868150835221307285645448720424445492177754566095597085839077163388277338229219638708585590771807523184626725205855338905590205784917318966218548397725918856541458006333669749212284288449094192923039108960978724205908497500110961634873854589931896200481402160104845730159148112626978300482639047827691752407637253609717481844354659169635090057973483623552876515535542264622321973362214476081614518154030284967782073062062167202745761897066825325820297588256372598323322313147179469143704758558593083128281794053199002198059145660430324192487751307833460296689046170299972457989716285833481607534575707738074952893581832870016026898465589566163609638598652614003954107952770171574196771658478653727374451381456262851695321770817636983818137954109656715315559232193462234477524838268983032230283799546369870552348547138439952700780385552170394234181395022229216854333348160446095696940255677393563550732023790681796142857926324816907981545986152468157021047489951280409535609375853030734487347529797297164499912150252381745064163575174958069508050411550464394185617107409158297694301499568410344094891762916629580006717210167364283644598815419353613540673723458720498179824315980295112475216753191240243852728737362373431675930664352737714937801769326356010022086649932942468048384175653918855891060077086998598990729141282561403528569999758041020457287049196289571032227893175812626963876573196634395106332863387642750768478865817916401386710265739595844889364563618097357516012181581298781377959953110054936485349424063093705354426397733868738793301438733866561212104499661305261372267870555938122433039947367360126441866483486468876664212220691546720459017355277161177709238735341710910929311553046304346919672830193573633512422643952676435031289627966551557252002638301125015063827243977967573808725408166314764930106112383443891872835107508603473391103676963688635199971628840367073259267193548749759525889028162093232351909559744670068281845931939372346311255458929488250345097115829363487365849634583984931087585786082516236216406790008779403408877654457426258607003367520628655732528407272105766380129785157227583640848980709506491405024400007709201105754353146013952720461297066922209274885771905474681597735751505266912416887876655593937306261323062077173015813676208348424994996370741117494020014683859145697671033284998457242825565218662014306278697249778534798815406596423457683788072526291247578404995082833672445723182347911600883301577812212425346640795863205095373522215294945339958083003388608980497866746178883954011271623200955427144353838798940428224910706655059324366912060660702862768690886146652579380966373187567494993047698037276721568723543142543226626599197739960383478735198573475289270628324314735813004353361396765594912524757266862870467089364425444488609067383496925243436633783101966444463005690877791559162158335619746142897539160968862483749780367588934471469914309094930471598076398823925407976842017008960243728398420767781659980008603485976019385860260999037491730755950348146754277428310786351225662953719458655394422633840422657625799142101670481877358228734086613632763649106158597831160620457241969580183850648729276769437119725673913817642938727331642329853407611927735132381105710670228306069722792442539645473445898878830319961735892197082479057575271999569819817301558661435553762427606303920340882057248037153989378949553634812260450175858773062158850850622652416516038852557009410623493424746277653625598062720768871761401024813309613271259783433116776845344706970752798903239818813928934842974634957759726261297356528053935429650477421284098038122891464154463420462206822882446973116584538404837501193703482387706236876059752825960129962967132183101877243915901540718732418646580766406969715788443866973213906910859770505824074832666010285828349056797204480536426740688668707184944558835129773085190561195409970026170163795103538895182931686259960831266383131560248853698254929257592357990004059064502599398590266399602466468248435789426894028976780512842378448187330467787071383127553035479743511572549357740148484810680525641508220969266295034444418656877471049018918657616193861903980789274310655986342768891962512894194434666728746821307809316672396943206243195129680243859683162882330230215159487768830316634021979498065248674559555360428454323897757386263595465178628312957784904857676130855373397781355188670625939469518694022877623413694568190503662720522627664523286340270440907146510611288622655208333457885178919100446995193492450418265841109487379145239069298751903649479993555683127477913581041078320385195511199235423390625252294429211280902214312484888069470988399357111784387149547754755992748783358257157629492300646354233700509003383263392473162840611283120348924452206448272132132942599485592041658277942523459545060677295902727787370246634352467494226284214492867518269264730392622902140929878297432747289676970992863037484177340846958903354476297751623494636754671848572913573208459384161535218410932259973156613980781787452982901894793582318103782025250451662667562314139440690769145191542565104322368780926113780805124727649420651361796772975577268936679975172259787786682549144422240114409936324775790397421214296528959089269522897073303875330755754340898886731772323847861771483742732495811995142820612936261011627448450216763082201974805217599953553006055164006365274586052241374777726774998305907825551520063080803315956976736424731933644173741952276582663277035928033200264989610211685494213220081144522107104600918302306006784397811187064410947389862751732000526993698205484740577070066671756065991801102271874838581341024353466135754518859137181600436705018638641275938443793046368436661893093320129200146213395085233091832599749024821285811469274544899090540266658152473337189803737394106270374425629356832915294070682243398508421593296804934105813787718743902621565337337532516153307955961824391344263996538147863934265240736481204538979247995639524727662721854661851518883575037158921468456385026574128407705774423452765537717043759077153106470160351130037697927566368914697813605436421759218912276684446259154439174767718979037075175876415182786016239385234348976604265715064629586447287876676798702721838103790136611967111921829512297417004283007171325190370455373392025031001098831636105763290956441915719330980921542714416509539672808211127366443711500616434010018930525519793560423329551808721581020620359782374503096589129569163252508420148957822378622738552663330390192890573383095683935074637702515007727956867007005973077748472155915815489720125262320454509537118802304001423426754083723004968667239061443868118384060300272963375271980247319066736655873705687067974197790011481921132063097816941646005050322288108889203917669328543599530483760088415577795307455577214649383659057484101585659958425514747465849139746652554431583713098081904648485115965712531833333666684184097021734426058916521676344292575897531846750992222200361291595880159020391272633901691730571913619901324454442149874852966993888873665892999394260557899030516944424439674355678854809969589198476908024980364367997960516998859152842122787302126962876516424378952259487218382396313721897608993022209414700099152695932046962815834489545652285436641148339259566420481160917487309801920179312583386867116010940361005914572371875200132281893382909922828298352515150845215198164162041646959364023975831744536247993202282972995709231791697183988127652403043457007819464657675021722166093720193843463038378684516935425746792106882527173725442790818898747911894092651990564122082201559676974300867003018128318138543662758904321611593752043018467457146356362361496878483586421214950716365479803673379358409907778197213775195536663124914220103620144940741457146345333597503189922104460159594027968811451030728550297670513797941817239872539986688070495955813445304766271224663116439888242873988346349400486866810863301623125240603759589574995908938195408625961309630041321699366490774608364623535565285860737030192239623084186429276548105183929914031711781858594275069883682558881747182558832120177660892094188190021775029590691496109082449095917854210664235065177607770808675286333943527729198239992497907340168195820457500397822875724435128153112334120207880585174588457912353210030406414120122900149580901703497556651631684497802276983142898517804065643584188435809910027095048653602669133772856026357669769323019844935486964143337226278932620078023895927457403574496521851596846458590116621994683431240614483559940503224269491130878923837542659225346708665450129325408748431029146437028436375576687664686600692627584609613865014916257461664674664129910135571964398859034359603507354316188193051054678847487597368915283933197288850090736820650074393060520669846630303093860764150621626774474174814352553256683481408658344878807518119055336150485833350533314561344636531718664690353581277790913482422255902083205049378802451771867812124350104451182188452193773705424278201645261775277349106379115613684331287973080640673529732973411945023547911120747709327485451451152644030063000628429325943944206356682329226605368112127139836241297773066707486635638124597903342292371796586602266628989907447919170742791080999769729697257051830796753933806853242899290865027065932278279418551825264791186064133940140463110048171495864856308439154015971209583708232112904176053491244191113162690717962015351986848596900369342705988732803365998190567264945524576475000606842069291130457357136418182890565631266519201092300483211563966115989672795735115507336936962109299998958887297631950051961541156251362448944436270921689915360460472150865451951490328915432852286966510268379051001178497920381176896582475620005846194374373065388846588585662601140500824137761632253698314651776302735640967216118092758918070910785026163653369959523913783096488818912026563058101999867298974984844395505180494574078143652540925604682661926882628289912547205807837840624445698609688364771718988739682380069965435974035405806261749351928684603250065261975647167979403938307924546894539020546818830776856982293684358736195427902365400923303985723608136318941240121696613404744624169110958178065323181445022782528690045254914424379274389826616273218031093703889048258334270585798134959777362518406242220532761769824725501281180083400914084592590202732318289593064916657071449744984697649144686926101243815033698688969762580863920459106651927090619476995455535519690912018452868896284608077347072716431536245186577441969566643333158416069772005209092539782194891326586151109656324828339904678522043222962506810599376366644273390498588580114707895998816166625359675907038237652090119621135318388795048087717379428410728253976066323666240423132792762945539723345918922824566954912993757861667887620711341405718155847213989638695838270295463310957773975947072925983239201391803259641212801243630132846306128902933270162568717662588508096652775928292951850232925865061976928788274828493539114753601678204374796380430400019946507796933730739706217382031934319795278915533015377668973204687801614502512229041226889274836893594649059429765272443249045948459547634715416606547899151027788468022376432593465293804883619039474563807575410675879515472121939292932335991593591990630902846402880431225863697393744070561718922614315683981920520300940781760076344215667339802794898413214192899034637885710390875778751206880096054515037372067977762839163819116190110086552200053414501066615181549493404827580335718350148220809621768764240997298640491419028138398773771920976434696928605236110082764297407123779704830181659176398623524397031127558985869387824744793071309572643855049982086641664634574113937869001704063818443454863171605875960188024971966671732136746661897155606494865524098864947739638380098298808820575660386634880751660350388756515596879696769449355117076789352970650310053103319874231487108194322514424115407053722723858335638432186315542251967056541365654001151031800466138283794258159473907446309468185513562998967238093955843860267340420749300847947224335608156313578076001077666101378436407341264055590717056754974661233102931246051002185545803270799077830530489450887073139632312407695049426882066081067413822044189592822028818899258767316427571995842228093527444023633083996991662160644219966121293299548275473076022897262607675842133813904730205040273246603561714410397837584651730223017143304736809220532862902428844132285208145151874634163769090056896547123017620039017053418541866942176426476834666667587266945006336391941584153801991701294235986211049559519218631187397651614045395570832640912502467594608356958121954772414599894017687608648645508810074647247860340400842775113784962878139704956308940946419444868674643552217192143957986745734457657528267241316692981537913441290989915990715657277694476959262158544748713621037729235317976502650269153352290196422837510461531175608012411827212266608928500891291958238786947304215708056083733356169344575265526686948027331881303623904641387646314959264398102414817844609186844784977815359677094737721576621392146128114738274487280119521742751132161840185982473391979998883157903090246042145278534792836821797615865620483092728078811877313224144862088869053634447752260081870761392565140897075640148668701694857387670605313427576161945887331457107517660967172664816843122352428535982379656697574201652955290738693031283595197628259002772649839745095177366642357973124853649740087334683619782981296995707419315032593012729214601924777165372776576261026308298390625214161141274453026393688974140752663557061748037157013979891583704114691816169656755458882875220948124092353051290950683899279817706737554900363112684569641643570908751304384427798981653847082223576989262245754588173848941407287272010329144294994260128992119416239020435226261003426658938108976522335300168377521151327561753825204349924902055451843195482001141672149929552890099773580915460038363509185611813024106600134063292207471329536396629544311078561589025427437750213757165824729324406964030721631130189203936314897529851454037436336008281948855426158245427725861091923529033013562138829660976891210136927228738649037171232616387758258963959947782901877301315722096912056159860780130536889545822009884495842539000497399556355236140315484462316324878930645726279152654301608829407929663606922704448545672283461015163840559398107260029959547537566622918296308895320535066265116572883088657898568102203392672171954460539720057792982667443272929770579946999561052229988249375901522980303725227723626819478278782979340518615078114935839184512736335336517320129898232674270020421925737143836238226197075500756717069540287873360965881913670019771124577841604323316495308878020226252220864442194895394002678420669760677713408481387912314586030928223420205731483647280432086568761803125601196715396014720735638995687535320916372348196961630358171015062342834257516161924947018966600882844717028806317975080177945578805066276080156415141775041323681613767301939433351904935798451512899477153822166521860824299848364905812238052669502983472727118215425643911520908550294276114129514552179261232706807231350851854033498011913415613835201521186438986796416917622618939063118182590075744048053428859524360586006757648431936875882885192521730183686030446837478882412683361660291472508131076066346578951760097620445808394358306956655838103668281929282111137789681214842865221321281420216740393462733591462065364966755005956499720921731158070593859606778178398695006932617527958821379385364295860865510467009840223897947449761080665830512733793026713075042376714889550417839823979891233834773855609283203266703020927419739139592937959878835761886285251655742695396230068066181029512433766086976790403488533320976126194492545362131902093663212906751366588075765528470312086573222376438609227782329078361484915939061722018014469261294926141880896018625935399796649544168105100125112633905191280462011748538525290303981191144785997945825434533849010133830057069167496174671052274931524928453758616448477310572506206015552511370108771557776035860974310897207739734565638383626997734924019801179051491561898302265608436249825970592880396676727407357812064803282143697107096268287829327185645493924595678631993043574203356871694157677734070857454170708799924792647574462649683176200594342104597591128614380076124718720167594318036106737034143581490390263453716313912193788966169162862940983535939907188458277542727192646738934009588890553404998732876568924251115312253948085388675804647340118489173889792806754007178661838579237694942222915891774088534725075870532826558238356511225012719933029157523975125448555593234097275113157606071973490876852534638003834763019639161030044821508874034419094849119678630342024808029445346330680650307312354752092465448553179570649098266662454892571549001383652755358773430399241465881624617645079583439171879912495508332796680715074190239668994481623576829390693087536075772991912520240606498091706801526125436402828025208083656563253508201816736878563682895073789028015752726306253578476460320030498435214329872969509906480856632665007704287887386559420238062204751717074711617541858237338446327483300823065026252382149933535823304263390965561909600383650542643493755118321240598477771016284808814541898172660747878668561870694028958685476557269718618795643988029846646309186861357230064459775301967491417105578319117112029334974511714352212259581944983640358748976157269260920956145625124103540184701881016774067998929808894257047380031620104882080951015746091046787275682132645473349648416043912095670967073973067917133772640305953961567240905266512954163645984820548331324537144362319773043914130782769623970808747936369857849776260188588433570777257716971841893686525084867597083073275664725657676143544274673958130621707359099393905862546211502650544840912031433498790839708600894690839942217738520706459617675938044710104763864262965658008649427726157556307451557327167697371993036655618794959714444788162184298035094620628010079897640769096372240635339054346221573187395229504701134482408905876751864527551345252262567945093477566281422500953322491102467497254059291062403621660775366414712495255833933598211421660567117394842632753768583923136713168515990553012056734716973031099610982036361582927546318577859660098707089937687221471408723491866398380463179449740181826961429584354399739252086302472531307034269162993364443231079726886602679660918207700392671633625570368535041982131646181067097795735186007317110941822328070170434866177063148102173746236546208186826162025699312156898731277597785814985964307595669809207043413366641428179662564479918128871633036535214874299642069730255062790182961842637095923377406965246887728844941810108738633751754059311145670162522825274275309904630923441255955064751015054458020641041015422535054212183088135842121153503386668572811107695972173501781405643784985800054889874235459235389295485596242032334326350771760187441269361987049729960008116915881115734280807310278303438800844631047482614256432557953770888229513199936706819507376196433001037645577259335718931476693023543243050438719322849200312678535858136782009743844315157746662270427784346380835642462293810958381399776432404334314503905166931712917455953807974915026019753017960479588858370978992766196681393200853878453075824356064995245506692490123250698172438223298555397573004581692882664230760369025226321918655642451173651402989052368485380344216931683442919275979948716940186394222598783426221029139776062126425054692174139689374381332811801930267969586742446698036019747735956001650446787570627348733877944868336947769859995527342383022239833421724078558568315123647213099732537544895529288540907082490662975289735801336908203780355184029008602212900114847854614122117204546194687356719510460656230844596050220684601029529014535483651131522522845151449094204369030950462094887401674781251125081489521060990650050477292136871092936260792523726005369400545238468488895809158461376977341343096447975044261345126985085270124020378259213171231215376965013600931428040459174278843526633473919259294381338171610872478788738152482277135286780557309737763951471544322463302942342508785670773293384971218691222380598525578588275868049809476156893294121758421812798727946997934237042847743788757624760455389888768095426949662088160931273674359578447217256719915193166586044281737053850950991662567985624213101952318865965568518313654925932307849382916308060325617621751379719217702737743691528293157692113702575217316616771700828380015854735729496879542702319836081602616335089113489632926964908481499061728626627765378006578692279603593471681318649951990448945618378570888636958692565483588014656739156371531391163555069433792039305347213299205597689043376188505344041168358063639236359479059078357058399756365161579741768809831984787946997022483678790203889850881657243480767852228614436839207065813137393495823350164887499359699026972280791765397075141244347600501872888604807483690377869897270518931144301309021076401309320923178570131403231286189637321919241141764810634608533567271859934302340338344274525429463446520250532116023396267962628436096949583017731183576013269620414187384823495443573668569249423805107696084792364200131346582236735659784233978886281542753733923783506345167216121486990868069402801278169453523255991338187392181644694388497842249857643659514039476953128917571589608796659709795962042447437275869401151906297554435066439736466323930666701030794957398897387166237468037438185948092288956368133999629236418868457225101611406910866871696292629405156886384659561414624050530533679721485554332557595074710298352636800067301208831253872915985744636551892069449076476640912888208710596086650957162857175374533595759720106309225795843870460795188034186656255846961707958697463260610213522175207145506596354955802798867257760399254514663828771865698726260209801064041426427411101857830422128271624826447147408799052530168300584683063462764514888585075993682181742354154209835517819845504041679168376136432391414576432772321153235766119555427596093036380578883293201175658280172850778872754131763571382170995086237744715141052740759200816928204457087772735336790470976893190105835615668676151638277024678496971401210773966488930559170110380798108840900483328130996690425678654068993978368762254070247341848567738258981312773364102325418183024473704321857766395385803105864912954421093353267008695665218023595224609688568351006143961622477490068440255979399432043296001107431275290067750472430559425133791724590964000861446584965177842772249824837314774610668547389548631780105477616950280266306287202978773792857204863055801479965076421293863130931305002406902951871448294618076415145381839813854831654338973355220139390646744158656098992126659682444199988679920550472592533810669979944651406404031753013448308443875143779759703742808821253265789203883737382908024272287770949183350488343454024150492353147864605630833777433908402159873331153603315717457586382261842135330936728359395091940071800407868772284404005491019268328625714470661169319525283373637567084604268886698276643906323112280089300611268857257149385971576859275268172141960236445898828432031869203074081981849954812845538277783470747720497745734378583148877612298942511949239329018193979247522136786708555382274457357969954359697174589847483971453158738853128739254825112270486355847084715229728795532507129390151637667081413835422893323523678413001923923533027776212034528229323548775034941416994280315197269991406064065541554629522417576985446875305651910005650301395397064607693865211500515105574844732295999151129482724039287421899784785397357823453641029568829465035993182286867616153383241552463166975837923875671649458883980011625284779140342576683005996430311249787033364195448966435667084571933682031301212672600715510447504850454143801937822711778753209280508408035169766993906828362507984228323676158412446010052143814453113103323738525949700346796657435036809641504554551331128964491863788360465444111395878903696173283707401055093484358261025932982597820737362598490822313954132243159901681781082574875616579433911215337458738847157553307829631703120429646664549121357134384229394433198642207788427035172191966200294892550751058656219667430690045278482867968790779286976714467908727580494192767287664823709247536670435813033721465038480120067581092982100092291407603749279336106448095427482287115062179632105817677561221764111101628999793504954308648720599372275021095718909942235823522077592999193205474764342317300578900130888987050093635030333175169381615694917096799146344961554803201005316755204867351015009136955061566827070550090926348625775505167647873156578208906114199738247380166766452680010713473245507711277790166847602696594429672567774192974557089924724891185219451954258840297616987355116044095394098725612669961770480070197769329860498503749835201013231057442943136547892474201694938568232234412465499727780637022029146461757407774066610390668588126178987936338471977030745583307008386187380212779806182529253371940161449749664055891940383042241873642858248473358902678749988212711002678859826641086575851896358830533319349547534204781563030641108639258024533575807213942430683167902486903475788337386909000179260581868921189193542402994979658426052897359083871742275967466863463647312614475934427550056241899228866387080996357275158575129931150530131661819002181532983582430836399141563868249612154102029366347414685647779663863710469973238161636183935879168048901799224659198672295908070271500977128405653891885147567693893090818320481922068812593919451067747643085306568288991886222632298157542132743877842235205040645004584967569449097419167287631372874247622513762991706256800101964566120455386058708481728569220369905299773432026673598756739221428992067333632789507458265341747471395769332325425062315191291583469952322999568898596610403277156938181140026316406964273199015110825981637391263983949896545578073891501266415088885963767935014532797771059018930504284537183782054750133471180390305661267616042076662641295091825375685851851102849890375104234337966769804782073977569287561845083542122289350846165033142980717516989935612583031158160862512132574211275774107670041902404853450667966673009624257423776874003438916923911048684865985098925452900628832495208399083528210079710461279716071280818599292756895787116337015640546177899384092581314280173290694361178434789768030855584249428159302913199142346490755678000573434837475143290444030091520996721359945154763558228571863623932606580210550914546154698661101665000046784334630195036722083844328084130901005259681613611325770693123385210526604602598198507655572032721334469385783100091094545552580169497382655714516248230490449324049958052575136741878483683557141549416081566953317316110974693414690724365378152206944094805363873414859214558331318350325795492125962008614810638066973879869786410788934829360140777238129666431760321527259718741599777505022338588817991309527084631587590065607861087069682507229230224689474661365851128999915309943985031661812881115604354373775946389592322806537047868043043017603257447928096127119239503589643927780483474056499000272934945134025640593501671646954339871022813017200086317826009349662921344268656762114718889653303746292251605485153310233510430124135062123178267188582699429824997978710623270033311767926767083910671891796757906963909537588598407080176346147124002917176450793588187226018083327638955167603842649925876941210127104585061921515048428229024116302145397723182325060549439612262628917168865472648170267400310171807655866258515554974876639393473584650051960945904443504809007387022659743042809878051053997163716399010683537976088167445831568125007198599367518592854514585462233969991347164354788810152800301035676825990591254390953149816403097910318680826026029176616714751245644094661205507850010629877119840568194922158775102057481820542783848108662809443489263820364060762916470813054308861850300968840831269665954984907235486732949310859471717875343019369264350258548608548976300135079857191707811362964400876713425310735897159897850793895678585046132620494468996420801100979363800852063976624035300106921945859390169257034263260339475744385235702237890888287135037819933259776555239170914037766228637149764088011071061841895322123860964742237070893056592592379199222786975225626767042925853000385388651508741765252294303997147228430839674991843318668139328130799322642813793453604313511397661532214464920657387897449956788815962053140517619990158619152585516038774583786159261816680826085591512047128417153282471793033071845867680712685638077019749237082338342744269394514680280846792035033415548015393353982609718433175049203845948156167896892552966448211801353541253382136507193665936657267059144940945397726412120620692339872544634303915996456826862482587880581801736903044026739799262732024941352638291940237474659252368026362763675667095189317545452641546380095294007192124907205935259323317003658964743375114898929780868578856059167350670435457806989638767190113152843480262255222971267000791976420444913215310657221112665000649347265489183493762409644773963450569294809173898271708569177561401788821465716197776479846811831591748177898486614496805274712896709497214658567024833058940843549246059698726502292254389559577671532985404675977847491599680771812705361510995564772780158304338662828602347008442718344380066605670701011808012202663443867397014531096713366971840689340139282824662779267163292103139161022354118276521396490018673019178941992601313290669318814524109255702663527242200336919460606298517404621154163600831891488404066789359132712670470773221765569392208691203877290475297883090534778174314509169445512855148460312541409136750508723626802927815089304769512266650690027174267526964813027397123118564056950656091586174657147980592807679952597452999534935722834805304016943199184551918086945962106386966237023196069369461241361104174494925441918970577909966538070450726406484191661564838257222961490919034177138604886979189070358978414361471095913028460863470001881645619624435567458919335575121241267929710967770908985825907195883519617231908045653101871454012820787548640626117579674420047314830117798119512472435381003905499949402267414604369426170921878275012506519126640620361988753471048589482339642913702115024721628127076091302731263251421628105386386950435285053498359456183344989609892496827063940367056403616342835119299517044104049292076882085186419997539137471780405596420857773811065663288550514377600025659550477846360385262439378917404122986098750379018616719103727380457480458760965779344683731466335244926767496069795601309420883130659803954296196980484279262627328519969696241172362598856897719702212619397725685467750871830691521673345997245475837289885909691220174116726386084571394523111998780504806903603019414198033198884572243456724316126950936557756411445373657717912837556183310005211512796592281490858279045285935365403859765284566294345993595976031870427310576923298116517798056553291618859782651955212767165047057861287440885076904899600098173594801739795526344428948988755281305086198251048283534810955383441200982039382476175412208596995392848593260485782753166861465332595991429014821051269116076693888466438073450014252504804418667819795147052568737640279524401154447169562694331610509888266450744361943909960184352857155911221805566592483001999012290604642422685730464383116440780743531797471872156872976667834670276622553797413018198262667756141721071149090131363036471849823088021774559174199981405621931237176093562435871253325078831930057610997827999504828117418408630681682129690551244534255995194093327660691985564001904451260925314970412063767884707706937543248854772567331739582385184407944771620885920079036486885371074067083810481449024110921325928609250728382016378284971388964317698321583619731828078528814030264583856727590164505862134006989994739298350463162541516552765471007517147658261356100051185595364332934790548382185883935555550373439126027257901741178327696756065263184115750239334628628199252699028723666682503055781717930492691543338895429338083447646687788109994418449435175402419231731487305535366426903678280799468804411798134426416970077208996889972837284173181164708209334299777440353871748568407360687151175010998895075537416344859172280004768607148210430311738366302865175963618154683375382616383833460872365671747281823603526270858782350483324813922766288217480345453775128309352760387549317641771789034365777803576743715482189365193940275682069991354143674216612318409406620139128325830751585361708683088778894057326292767145094726662002750122023297657792543073520933901768309714635628030284368124586943713338761907402928523086915616674119553723208986443351021776912894340243084776121361663422016348250882106378811064143532408562693168942580531059797838224354495311563311432502827484422725025496949665209683831888209445137225730947384245468545506411274818474481242061374230267448777882329358116540096720622318974654839772902127995212972028748700895492740332315527223991670374974008802531997275772158862172105088434408563737884651352504225117727971494854751883079765396322456405782189371727454170390303694812171174037250527585141005937055025472488144180903390248636318825638337096773665466873380635206559704573836335883853673335184299109019799845175375919466357089749789443227667710606637717948902089884315894528373035165603029514941908598061565065825783840193877846756279458064111446655285726829109412456344035392412534555172663742448364154152358736405251748942909860453304637001980107434401613086403736578871962176877813610842486372983271388550059466607225643642449705395119453216005419166820332743552038813565318786920760184908062824602105959465962479410981487619905885172628416102179273840678629753375042726221074081572987357319724551785587905904673976408066233788610868965794219134296882236720103153825624552626802186290315172933326146243117954213766819322383773616885745204769779395304383641928488119601952694503139021226793166470811113514232155678614198503055999762658981744945063357628559115676157667211143933307434955989644073652866909854890143692282810915163975049256279445212410997720378461052338176925516341841596027319973044702942601604367953685859939785875365249392729794148978294516890443652668464558970064768650526172672772848765434363844470814304752968253024886343654970015207060152797903386629162838828124287299004378193600827051349420938942262459918534235077193902088809499346977897101540250266986424928180151207835397047866643035280998072990210916407720116286654375044250933261215355893306403310867862494663524792045010997209202586566878929860876226684002466054953666591016610444855345267066328106665501226260851892557780468997494427765982681360640494717870906862036598727945516524611213552508926127637240514593098339201306414003375943143242384277229508965004781921182632625414384173526111872864767227169723699986184531929607633824459716727702485582354911171477343939080342606251915201084618153590359079254157964144347477049298570982479265056974568686584710172779770896502445302120226360215965878181035339101939307962095775774990843570899068312344231934109110694062596689070674514665514877982115889789694562556132344603886706992034709738504436253902047425649797112732323578535239655503616706768238058447289405544337370051613052712032484767646312202741954619193435439818686831245878001898277016740909452118334611903318583644598258015374177325409657662348196223858487363415847761343822521893565384218107661016763312802276246699761308570015396343975876782012236955540964506153541807111014238598373726895768194721530053279511085906025716686147102116993403241206268655705499446194335342343041435787331052304733490140450878243905477298786340323724624019039321074570141410780788040148420796095195158727443652701401001090065818660825328706570934879185924264562169554049533559359262235347201656333758279207355551671733937810613579254506327696353359389311648276938761505764413725395809608493195348396472975589001167695585136295652637654264186910305428179442038531062324310114964230478161505696706044983287261565513604337880337484346851576096174090080359400085893996924167029962813353975348444266303754288661612890908716478643766920199204496538738618480289185610812319648462781636105302072411632800025807536268712436151843469942312908789607150111547605922590773707102723917752919034878109702448349479929689301688230599234797249658167137545361041919045323311512147459642392030172002023846509219978871906214896271918760007802814409594276541923781387501681830861272345489960828081831334525173221820243505245828475523608205146928243764509579481418331206151027624040876074607165167888224564639405997314100511633593048635013310249040843438638149525702934462031741908935335671095881174037430157966555734572685419968647391007631730770575747810215694759238551097940059740526833930559965144442168744256083854551395451663618475486760724495903735327753465816437137912244257486149659961610998868234650849906578987668001481469551342394651383644792618077800463111986585310507892720666935532567283390756132430500116871964526068455068569458278168322145708554048387215569196389907709502750764895077163719744803742486365877977380328227356331164211485476619495996186065906312681853217782877818575484245727900375165552490588669896347440949265391956608542090508080100842810116816119968210257581382306026126119859877827176441323435419474896252657483282238789372283535937293166061984918069382234463407134686334098084941583292476735083331289375247268924898380706595134278866734219217163962060042320563729488342620885305033030172758407322031403570774816492749376982856005724264982696623431480862139018410452745532467178642846337679411548965796699713190329926133809912151540513953132603344223190856874832191240059517063865632723047255791902861210051935504851154854988064945883856952255356047947116905011667350859060444670892750534170763717057519634007549954317292982756246115581482297041696766435773162247676532313423060740190370008507863030679506949007248277058477780932022724819597055160717650039787898780643894104586076472854448398907109252314193666876068776083608015578838687897009954992080013635484713603176326734648742462480478725017746900661715096479664507292946430046949765519810375540568144048103561877868636422197251330622079021737924994653245257214412786009004458346130758922597315830976217642905884261142976969349678711652493984186792576257685052213011452031826577596395226201632406116827090258497660107701936232036697504015309236461227749397581054930912654037542721583367473839754234126167669046410375275345307772396926514739716124197352639953081375345874350302852635982300664250202206225146717419749672447126923668184463354251044401633191196033081200786578643856134356295852455545316274774767822070402112548830252905650436761802678121395013273686898811769676843822832963394595234415257547207365303903073422616272898610592363003411184950355346129038221255414352274659005148116661002509146364725415437064014913460603602198137239333853393897206280399577252842832295832005733619505278661382521109405734558693534513722919722305233987836357668776852890732186717058117621026998748271708529142186138002543916238274107303186221609171647588689205426852973246674207028926359802146005072316237784689361236718376539287625863015325065158199779789903278982592195273792858364674439680582636062067667706608604102393557863769779068280707832494054295316110202010059386990851648644423127611910800979025258751144434471587620702791195331227033274008694115137404208193982993034831463515384941279205914089129440353606318659277928673074894198837633385153306171138973706680282945970068751567146522546882346814056675051410057101160068558426377189507889815963789968042695032443894347338527366786683383216848102354777655076244781595971559571952802734908701510896142806939028214758707663204606164456449417960570253792614088282446940693332750684129107054533655028493460266912271819815593509073347419894256136420956024001926621240366730326411466967137404087069081601931711691845964600224086495480959197998821722322737212268867791347870881353442581435315136301509236739131423145227560730232524230531056604070273775336135930229962816928378633926090830801851440322658020833954704483731854515771578575884755637376384414855236883538296789366192270058109601974995200394257092265018015610528245300258401505800801872103987058789143991191289403716093137506879483557772691103363938901083911999665912445276649761410853720066237464394297181724357871075436462122622293421154148532655320249505533797693812224353521160225983144931825529875782317198110175254938786682315233439239550192457901269369925443356816385707794345167461204232856530935285882329425422461253424063494090011001348732764842653920395662681198732722160596383166391720520129796067645421092322682808847083011112920799213286253284573895039334146926235201469221345713458872591197872374487613904004284867934926709411773382974032265938464257654985401504655978830588613585973123393571346344874601050770985146228393259437515619041262189593961949138486038342311345047600377539252319629398057381998179608960382303155211438274890547043963237310129671060133008063775894281404491674184127744791876234643821623498579295356530098712418207131421910932886582237642807136990543457098331770373592183407658443953899504601982865456179861813909219244553906390784768480644314739941105321848086047295273916410587835159736557143795837108885277969277322147977016969739540078131581108697306553889822882226504634363735922825860231163417891135029146384763986703189626153874378344761299368779093325710608698109203328133596598536440330681463891249092119307698089801431023248915367471850328172587654906730853444352280202091434995176461472118953666907215148172187455289643543293730377958266009904489379488681925629754335358043539223161279099077488191800230211062629428964089477233430613556966312772013511541200504589538582272980946754879001330052258508408075877377905611234836076762289439416031124502121938051647279295609938531603160772696093971465425887873432740954342974969823710266018709937870255878703227619005633556443745864133237440285290105343114251505659174480499747536012635777872797393575569435649015955619187655919101002328713154635766561908489832799932005245034974065136268052910964268222456374894305998961018643559288792384138924529839339064042728543036632205078320070626709201088468635495349584003387947832970271807727347985302038468194764855753704937368766128963631477968872933779797855654996517558461332909750028735625835157583171351679522247576260561802175963648990451690208401950781444089750123030312904084133812022084818441077338426104214427090768134632513990221694827133054843176973739171175678672603330145469279991685573431946095732212304959706706849617784272607403450449361585586816183107845657353264318951602441552766827210154353458104316925590809152135175159240887908751343049300429752500930401607973181931181657726541383944261010954309818219488443001416813117318365265883836464450669597154996230125437011855085523284317971209396427002871266512123511737625332579035510047863204103889040357752890871447396009132537617023699632870796808778019864215077116083639344668048391433042581752826359743020402177647483729023508766557684403367558011904160149238870646104800757672110349150337185744833544827703203303640111742138775636984022638226498788040065637633498805421051119945373690749227279229924790393231972914197860201669639620295763000163583800286252092789242842077598517186879342708650622983861494711584304622002527933427941209392484749033863489310892995517813887775581939175623841764597591264866910973822891364957927107387558740651928486074714686176617105013990151224242103485671262190996301521532800930278739922305832447784193030959016090772794554971742253174903114889312865135145237219139059443057672702034359993610453868970656262214865497496443385018951900582774643239904291860101769128637788000964975187575289547126598853115419189623194334306280111483677171336615761938209798085137844628449494389079891347117950409901996473702143611114750131893099150708845633283112680501000526141006741052917525731885872654578589459824190448206911282762962578182306881408228051496425063254568680157658016222376140686897204396501871744106127295538684019555374820396446979257340188576809270262421754092073159486181404849000439237412125109334998449779014387512627633747170717760291804059971687352477807839956755086874652414493928850964769571969980251905423550877720510719993433336246226192773704361895769189816786981462916251672347727658851629581753033433148776684281463239384741806789781037844192586128035205596222370919599848432539261078062611302010201789554575698388983663708345744579048966437905442729010984330906399157557450678905689280059958061217853213308566227364556766638141076895106209692051916992993472726283281080016055889746656398239607073519532763066237341326972695235428364611293958934044256021609579895374135463880128494285505552113962093541317893152493924515051263673712581285735134439766136953437820285450433567811868571825912052540017503623630706592653893025052589012957604841788441093752902981078190074342963433668967369123048706100625924132498461331611513140543765068646260557865555938310327102647961646189999944366716165791812619804124833853796619077297994708990771441577415369064233629988796099264619685862262986887742772719164195209970771322492880861578350634470053966920710452076028703675987207530555912482233719318670648108166984513109588445211808888598280045322684191745800218166546220514247062449492724509315843341919674644013986985379784960673153714026543082187005750870049252889662440357570141873525638368033331634065748728150489393676014694721256742194913911658637382067205224218189449371845705260707875871602899971669958198363170553856494830372024244275577677321721280486513304678894901353510551753419645398990436180025983340486778740992822332022086634276161889282309269422902125308837693112917445850195331543616482522624322738796490889782006900753467824572377275724445284943748964539992474688936427113764130298071528323882739361296079441943676750112130447512027828629158371074138007272875535050301103214685949604600305723338341859458260278827383509991670874767571097187108635973258596200387550925336286095357498873833620698204511324205827313831636004060532887206758418151149862648972766729053305547913181568989288732058949003552744462529676213141152851162538734091717628150075921840371304416289333517374158298062373597486723451897730575928317596305182993098219352372509434997896120111055786550027358152497791144782807925642585421567426126608793035310434703735942045657975129953241161586794394497273676829201290101871457260567609042093109856173890286212604638131533179590186552819906091506684109064576768260155831567534513235938601621608741468731847731276103426886121904095547515790748094846596804242341448171075245448961292716159626112561029691321660810384701226988306622310690387767361777700587108836214543533323202451230885386225808687884832558533953524007267832374647900515804368287828524300281995519644871302080638527261664040447093927747633452145250357062481486205639965330702257073811307761955233021264598023533407876024990974199588269400036193292271057115746925843869243408189589379863134012032209545217596252924887537012708877384983678764377933143165651977212013733290348181339077947860452265092718211258943341780540100510576518922878288113976934893244215223634170926276318063551651430538319488508232094524352629165040126831706568184571580331172321385520899520764715909739566526197567154315011893321397457042063503687318652547696739726888933076604822894410214228539456627435379736191602578573790954199091847021346168347922120508420412029759261684958780849319164736466987963120081439345228376335907868033871735545476006209667630615330973893866077075728750712205604327225972549761909289619085369724901267818575993006488817555715942724980259647317426772244222653926409204465271654539644618442648778537282055822687870809625307676044067717348842919541264025364700118441300157174918096476676649570680683966392149689038020727165439706290085787591629398657784172748228597715277239795177810145325138559317338311554316304898493598682610619336424989962037153590002836923075180448132566417481846973111048113751638138374445217579742316273292440620780940778484601269024752215214030753314661271531622373716114788114811125593117921987192444457880946947486380673029991163858165102410377467781895220720483718571087265808332578573810094108981149298687927318143628222417541702691792790554187468969819657295256124692236170929380131860903817671867054225125857223696871178256866951002897920577929059226193984425040776235211040331446670164845132203290392374646435714581944446610653201273897600344202630277971885523247237406240783865269557614633915701147017008217360754765090851643386723865162836524680791346526516092577298397379674323035362921791446974806481544541142239650630844166325208157096787793260184346987332201479846849955939121377380282217825927803465770379388532971929558017873754152382891736401973915034696843701151183566835013025483777069751637761349340500166943780533003413167103743225032990372911068165102068348328175737755237950934856703445044773257355174849243628449015744657672424513331417854961695777814447546829969922872230799509598512135327367414202677761372420035476726465240825581043570615166756641414217949223708250218569119758435846345462617423278766101579911555572502306093497428260193598706977151493888567843259265978158662072045667119872350383249899735667007261733403139162697869173746761938736852455564704901883032644528064808222696952464535467757293874766610952001388992872858077797850068358337479049312608689824028888853555436854123888213896678359013232999165968341730394446314941978077067779921106429005614962031086697355131425623344237562970987807154714423795469216481871869762904313118121083180552791721239478137466889850997195586495985337225878719649700765166222201380346006926965913141031283154715054567667634316631979344708409234264273530430501368129629702147699528609374073187219896410786528821497252764694435180729676321733322752051692251520408752797234593329147194570447494382118704661944623232677604019595277435123348283057089103776089155866502053295795604152974662797792384261714401633597410144919513618875897051762616894776481797223807398096605183612452662062496429888811629869100344311564975544892177065668642902268062757709849345641499143309149871460059305939711610642363313064707326962681758977759631989618392329014974897109248928943275785905004200500521334974882096483975263448118598433805702577142711789510497496432084841353454320440902639551201016485033506007071680901140808613404239386265454907253555801823025951792716491524042080387601829117296922468746226688357210290522814421112233233727491006823848657486189405309620064138725795657114879085785919555910041409011458932742632768577406138397986819873811239404053247501605917671583226215637484224228902414658489307620885335295377865786903498076292280192868084717045567900307356019592885445094049391453189084690808617368892036788288917385050472308965827708744100213722354022782344652358255465302583403024807805281533622745142110860782492016338661044632415143721097832621790287785616373155645633972874489711515497414979112707484846023131417857163295112912498526604712471727872750765418157751830007275059710307619926537309989428117947388810546342935614019575198648718835340727098187585644260917213932245788306210707746933076022612416218098716163712337400371091220491782238968364809116663458886064651669298761442695699238094830379926484148928611556664377263059375126497273411567615973996298559135253056703163435321336942244697147954091923294720764158564960697892667326554130641952352814553089393697629986500266297053947610817618263473032590052398396398744673231768599276686247712962223531274366424519498286869823607293955926449166849314678462423524093473030756784354388220933661838356941699106009651636733639287988538720593451358397205110606836854257486521707929800899531899458449849840811903928404499697052761432223569013208559936110007965781676313247536538790404808429235787857053526465317989217863843007525457486319930408872898223018713178082338466799706697341010329569163089010483606336693998272806954291433212293004157605325924826248464607994556288950434226206886705355888915719540702694693291581949280978015161508604049478112304410172087016211553972284788713242007799069819450080322075045911414731605166828797626724515869908230170031739811102136480615251055915772201973245407154410479077170897895037452020222295128281551118166494854812791730033097745732020592752446706204801919733329982979328125228154395204683752111100396110321424848530804140213567083182174713044001850678486563883856620769769431988220303964958594486355532966604352887035351642796129978321899373431175063081224090037441369196073746318271398329389906627213064444141176392959049939531269271436006205693867768724318205026104723417978140218162547905138001066664985581586292789990383959566690738894895999591841993377451800102644944310429496131545395120733312706853203465244537615866231051962663783634020432854547719567472641164164932720865514216855484203156749182080613656067447327220448556456323051188210066462790553814251066477736722599684319508638342602772425993185319604121866515745054548150647407447818386377540841801858848132496758886281462143290647331782183675296559224916716265598633547746433412722625705857565726576615663508621291358400652727503134712097931037831695475531880475473268991141174855621390885282964168295168470096704471370920233963659684582150022811638513193852599845724731084548587507392073207015666903943926602408304488545898221429359037369164845650318098229226471405797906394869995813274130929189937567147421081839849108675985757793130157027752838093957993652989084018176277775915378569853044603314659230502184956761600942319619237466601367262758734519273288394537101287437376637048031103628824191269706094994270983000480205000137290471374796924914564927708724744911219538058488075850489041427156277610571070571009572867459084785104295361279387231562577374438796034454817694456073999014934014752582821254320871063068988360819811950601586328302273650489798928780885965995295591756008947548978978799869130870647829165334196685780537271996404755389268816637438057287810519769228585374660229659935792017609138803400366232303718891057652609979360277442586405666587139228534617492752682413656181098671537969066489339682124661797492063559254436263881126354386184460839760713995739299044503618070484959450309590688481250008395566754684017326336334607197043370312450336625540172206759968421905004356721348273104226324979054302907835145827331968055409786834109646400071842507319048112382668404533064649211826997968347812860000970836781204536475237716369478702389487763109819128108024492268998170518342024170511860058317131873343879211369115458977916936673061211028963774801397790275207130559589869349501935509034857148524735258515375998360844033079845826840125578710801061113486699806027834189027444370326627490453842955928087199863372960830231908201182380965704600135796997266160875194148813676887640697367499523565785195893640053724884407286960791869544499111363759895902675032222004627948119613002271707247974011656997433873571507963235589643522349239980491630817740668992136335937360954188967215359841171449227894029355298469852534350675921224161114606879522484183596476084829606025123838989461310867643846136311222198811341351693182429059732301211902149612649499883278856265048791916399350406091171479856092736985757704809341242556967565030444438397872299306938020844495392582125499926027714489283065831969498634533577445344878183685239609004487384893740322770255455079625918511300978030508608764085709435934131425537808872027023189991162806427317356311800235491628531286226909678391845296813332425844548700335209946417957565834105339970047887774397078457696094361626615214129303376792654805148160513757937296598675855622405049944226348381091055476695303255207345312893403601120060895632326549214344006944118244369926496861362991628100477955728369280945194375335745547312120354909116828877153889479600254250738678189841577220348053004025208347287810175086933436496743909556140619473541524629339300472101784045493147643926950420055368060606286385893926446389665403334298328492773425320293531223003407535823485510959922910323881843104341442370748702325560893240385339553456704437758272196346777919527328376986758296640392669109884948549390258697361050912600350873999605004184658099424017644758143456719924587233599690226655386104859194783388926130981101395658820954694745507566291572333834171726344327407742882084075260586718381716903966646149964945627234395205931076154593198609696333838694775472241697801059489147707051405280358320390684699523858781497802799901801333747400644066000073988198217290558213023407412321120054610894386956063152665109465277848425706368968359115645421731905685653846153635847434072577807875068618331511231901672874535732925519229526287022155887107503982760823322080159062979036442309400963237272859905831031862068748560029414227995290786742974879368266978686238965666824231899544655169177075872532671022619699298664018255872761985834353749965122942336087361919810640063506746610145650040187402948154156669339419998858913550543405045212246178142284321052085527893864672620201597280936266515537392359842250170642236796756602465046350453257449969351582566654527497332886127735906850596066949890789378549977272808626616398693434820958344260825412629361430419440083942394309614365810813128667598465852020030109861732012055110971049392543423157788077194017706327122804135126447159646885173558584379643202055683429680335971239788737911937702946339020921520643164181063790889381223209009388405174369264654107755646198667802352770865317767717538512379638888900781895615576915206368761301138158779525406146593878609462331058888400947552774553977990233785840029510175328084755588125628747213478768028178122972453822729369304088654429047782234373777052339461934003958379292478792182658475823939019400121413517388641648380624541590804454461356241621746965199540498614194345531469843981504073440160723375390958906476655408394043683154077401582163360388048497902001502639102636551486263162880600152183982002583468293741730794457994445004908706441294763177563554819578377975673735762803947839853421824573224492486286135705790802356543375386634801549790508241878442919560822449347743440536937273891088569081320886240919320560377375100496353702966990336288859247385914223498470704346342308816060841792841023373440981752884507304960938857119943413284330833791771780293234541338369386492515077032619551996352340587263722163080262487562045930011067458030061720838599260658339701943034420359828339305039860187545362001498882269627594570209069210470966187487229952600598565982504792429869484358034769780200934579411134358250334008788682507761426049842266670417325932054314116194447108532378331429036901579062271198806553591299197427309154509856094510278440436245477237630171894306115458316427396691866170405619995154691046390496812078935424485279757463222813868550202605238029683490375003640942803482658596924089128495297968583961266319887229023345387429842086378883746572974292525240465905005043763928355262550254803343860794071039991919425763971918538939580025220525208307475032493782279802214840537082217421107149080559794417232028336595113337161222807741722679365434573700986922635292121957734545758849622297932455732072980109248189341827141703391509687446117445408845272239014183672227203984892612314089438137474567745701135230227163468589821128986728201628081080064587707123245282007656125739232667206025663349876082259493641210373710783255429867424352489308349741386881486225545620610582655128817326472700051865649281514235206938965810753856442350894140941663451637473568709955856228432557261034881697022145195209211357666833343625918923468050156671910179137228827095774459248532517314248383039958226327661765274412619248648175120506878476151001604666085620783430247844809454853465132939671576243016306081275094800302715317522397328099891415347824152563510939680202714829887603047053482404758284758439096352514819581387544495820487821678976354674860955340519871671846757832418400698540045162004767102299389098992710317852765277789431896411082341187593030820436402980725100801536306477481790371508553595969467463695700796270439490287264199337481081116688317823128052707820663018634790968724738422399259132350433292853997295331997144553274921843154576541161643620786709139466855213909900384914720023586393420154147539790154032254797799840230963536216886302786012175051284964970710182643382782137433964904091855274378346730200101368806997286814095769042760730305263200529463250054935598220169628977887676065838581215735796864108449552694024264845242225374357642652819860052780074773496077461698382893528372729495890645003652986418394264205703588356978258487118024522495630509589112641772651309297371853013691408000547981935647201677302608509066101272211042725450472193803230475791627295802105269025050172587356711509377629921758023085123548325872904512376435495391867466319295387902916732206161081021491920608844638357659769912748208888375708306931968978535160833002329441090446760753630613637508897049204245184796626815313558041486139616097732214880509042117976236286868544620948761727932122833931968947265509243536158944352859416464433085016377380891766967702851020780956576678799057598260880327913274765876883372626421285508590874392060178583950617704375849232513812257942614706167130842831442734098039596415463131183961662040512034278327295213147291381973731574759667742575941850423794066871476791439965667896939190186006909614937366135568087923764508904774679208249659373211248982771497637686967520958884690639568284140191222224420288815944557030223722029346564158689810975672998894987424699008760351666833841960123526067082539791257520601214446075336945237003426405667925284049624945601072510013676653077614421018060983941032813394989947825634367942248778082475292411057721927137355770851536161804202477298094773682266639426665134030861947399477267447543601473709009997299936358121849255615300042342071874520926305182354672892720633429822326675595144258059534810180713274581888074832759356231058738201445744849428850327555018178945356812445495685936284047432296223097158820131313431234307600117517646016681194125868293663682893691097915805276253268782592778286704098378087712340316344461765715556128447360556709104400764532747178590376323953873726231096075198691905719113101518014501110268192013368655708876730279349056302137877170458821377828783076103840571018588363939479554713237356609541634005298732725557240035752150527643660005450226464806691631345886305880034812991835486621836598498099919035856886786017304994516130238576621967992223942798298111725562963355945521809067785168347619191212534627365211130392337245155866558071563532626648351919389336153944941822095603605887442262955020590349914944765663136380035146232875249015009475289194281977855622192307394107489710633124978699618413735870393007653419875392128955907489728794313665885158917289840402210542401029616245470938548643116947121969540540255637515463653066663748362116467943200407678046781142118507330675845174456890367757727421528592333672288339098391585873489295820555818741585678305952257364742664591576624528668323695363934031505609901728451456215243941611830612552333084842402067781631105137569245031268488559421723541875261682031280708779374563681226357005046546376742544051344219074585275380190032790644254713275451811317991161620502126436399161963066466491421902956533389391799318316124517422679486716464328467918621204272322325661055365470865239392258486817826771451602502327217165448086038484322302960442506217275717328091179994915839460977963180468104949111383597138572501534268800009788174398524562024582292207801210145763018096637599353255860334875854378611348887256204139250315938811758123599015592555604825227889131970611397448828603952006276586261853628861889568555879290988509829977395182825963137648113536997637393561032561907830721443835774045065333559118569734897895567414320635896735680698559398092604432849752997287866178898820996866855512889828513040506987434895509158852300205771645117261367902555012289663212553165645526103635804490167956850333735119658247140779995529006998561230451537930779126651721043300565339902085530457380803652885692043238445205945549682167757916570045560799506561114297915654226742734017155539669867179569198951885125268011880295579773824996338821610479813769716098121529167340224580520148571125677765011245788326802522768467689320949131318623185870969108860196080491034911028306155819157247282026819971471840754758085296596303458514568571030806133398396644265400885376210048776524637332845110357780812717404961659836051863246216967950277940424982098791286203217872617298132809684520342047832966516967676514433342607079051905688336729378163572213782184195606214547805026628724219133242942813761498940945213541580964072836886861150531732840831374987397324815423743354350139502404129977222797693381480141097468627202464101998506936225385234766484121231379101538542689458147218095457771146027476663245511077243979476573803440077257187602207938220192854811515007125113104048937168962153841354885570423646959652702210502968539434741714514495805426529292957931342523413891494607281437805975863323227382263729645417737106606318642820702336743014958774115881709142036431107311840098116508645392852139937299348881251338253792074140923176600858677675690432661379955100497405210977674625136103465337812476020137436214750623818860212758000678291333590800960236164085071646036818555314648549488415016246464536614658590490969762375605596361761149182824776550687951989088210773557067747376764937242216152081340972959095506603958162643547089418797851363880682036703307840681725717479946084083339884017544160583527589278398109403013080136468351628557472138730471973986993607072215153539517517085111034157751672923442912242389938875384120127303843033985108762331513458535806569346675010599367222474944198578690357924802240711319201011700102417684130083343195129694178169081569143855552996196932518829333719747540740490252186999545643858986342231599893919902223888738194827702495256971354963106458850661255713050398965272458621193149934115380253037821672280488218216707298987178729316421663632468324603405731315308695051222345200565009621602277882301236965571551043415601800261054222177469565515072051627116539460621349216537390701296471066464778459538149166536314283369124833341563608706261909882933525026035737595092317176644021390791728977124158459574289680540536764864425447503554574435332034411684525512668697187518035503897379140437858862050116215198764548932453343305563755098952918157513858185628049222696357260087894772385507003938582584029759713733823703691295061391336318876204655048226309237794024234367049493226513640743918557650886946287071219473214808064437117069154230337668377704948439450558866370780346245321530568839323830198800317478386892539461995489828964983327284627236915629022241396077458005246246411636190550863067697298337729043824465217359210366872682617987718364267025915567004726378190338053263355592531282721542402544939657126295606868579598448457786378642082194269889402552036630364953056070611445401329124856190588324411404097242198604982457954954915916098682325760763103947404719705686387563294542747564772388914075931599684880940076930153617578272596070324265662911088167495225991443547717909174796274902832419628053305483325857831942639839682737302240286581088972193092274834393301039452815250179547635864753123433761546971599468964903833292800513255199164659172187800318416332204888853452389601930156519102644461437642736315733139850947118803922039513426185542921419770945759491964392399684366818582738209768142435136497893514400235424218814089653184486249896077091822953598735834854469284500887776637514344321318352650965714000943552900591788001762431455829614421112934793372549840446649876813048084570113451082884474954643436171953904378609505091791103048636050769929673637800177318585071289319327260916746437763112275803461059087031037832286600225087506621624627995949348050673300836390383041393928251311103660952694696399532260521619020069759943190927855670081433357864154089809490175683094229285663307946713170214482884547137121186496842852117018955148189259291824690281832212082636431029587095000266935690455945390566015876151158274571852262447093660737125294464467845954337920633963639232647298885925486582865902712664443768279726015900916496555435409779306198670783098117590400713959848708007820978696351259356603495385145839440195888052154821316718744265342935044221804681994776061494265644954872556616781655343886562992808161472864637869114107746051440113793541972211374490170784358670278373621169483345723822328762836977683332137567748783269845216799300567661235458662769526951439623751098485290563949575735291687568566758722861969229354218468412510242335432112709645328340279599648896018698568241044557264678737419080186993052292991435397670159426132432634401082791863067841160143698362818909670048270248758852910155137532996145269911862800885401419157034240955443691020699093771770860759452144710152036443412475829441926300658180492879937906068737201313476517329517784194630618660389865032874592303412559474685998182704315928808837205300012114357122076195727298498804260315820332229978728512184413180350734992671962605354188638805692705171018537851937157071442832561692777496981794003127925016984109900046091368493810900816624940741534248319659185537161578472179623826187646910978022870055635706594469616070939182806280927013611644376894541361742907749692439771201458978989020107948445916882772957983177314877000828301502847604831787457529005899306774637825690484862696144627935302959693248527538544976006999744220492949973834826438615895063639937763701786344446548438506880911415990701165557234105854308710699072235015360501260984674503974951497552887509844758533713383908567980953912618283409770868380884871754145051324775891884193282772759146743485244268545653548002723662684238734915451327688455207375722517145102779387572877256605644719053901443753957784270362386160770642152680137533503256200875970380875988007490324855206107730413636796538081348582833554109333560972465790551424739824095783369437152093280934427936486567065900170244392504025266988153525421882796268473449811465078709464587233505502035707982037853839360343208727992995329322199356722674699116073797264733953536664223485335606321754541281568003050521694898006822539709591404693378032472328494721480247848712934386578463770311809256727590504638532291479641493346923867389279194497756719836012983442466931957462520906559712933578417607758964456991907467397272275735532792020500230344353509957102195971295600778070041294274837618126179210684534464807159393278102223010299173618982159103312680686750828508403924541161196116849575561650079413470391552354866055992197778190830474253744079798726054969621139064637630685780360177059204573889393761492435010293697529906139470177960667875539584912117015235418923504037745961750370982183722780612123903846117919351845117579825013560330130571722322998714338651962795117350430425401654923061904260633112459471816746942389507337814245827031223388477988736125252938730270147232653434290627690632780636082240418573642489394301076134689969986204991506218045101487913524690368714529739050544841045876699307962505127517758842632366087916730202924467347503201114065737421095110609805299723000317761504369861852386652067439569403014586619777097111725309529648678370680658876629716801454970391965026760376948535042617734902758504774647271801141304640204239194636230264099528211570497474263359860925571340430866833294535773235066022022958975389328392072953096947112765023027770959311588684141098610178343407654515552253248997716132855879187665691825764827838626781511974900013070185992920848460327779367553317413070632117818913753884868468001273846415607853891499670670185848811615130100523652251482422600172748555340263610905148218402139648562912325515585839431678457068324094647541173803943528302825307088942763171438167374300417289413059625635606573384799997795826080977549443641054245834137458536175625956705992087008390736423006202354957340894980272737906477490986725647788384480009142493371967355753362681808825610812921277837702206202000186235470136018677567726809906993762929457446864520402939700276086555020577569108700201265907965194186256424603135646613420358791010633089987108274982172468067045014282399652425143443195574139096423772721339186576661815354580726169769747702122840829900924693334966528140683115539803408635627316511634147953247993237441692862010277995615858135281404049788869230958467866993862095629868870170967993590973150921403078918798855808103718535186928735857822429410431155900558594898419283666643747557151047689887944830282274395390782120729381167753285046595986033833685326822925217504862071894699562633279411112774667170267701085557960032275793259850222220038570990484738756758354075448117416121548038392747316363499444173886392334687289638273904405441651779505629844810777026355768012611233657786663345594174772049121409322081348952625944922058712909172694055040611303603710909201580008903128928369118667520178637552633522227193974933179868667066768466735217780401459714940127764898311850464474259702803179623729624280724819216837939231861938457939364893637661886101937558884128448353653393574565484333765205953621851749833627672735237061535731451388977998908806671112711293734477757569231953426234762107716986918087359291017230689979177671139750732336562964391708626318526924190552163774345207241348995705403538946223497763640517832997135595512073010797366320265829774703301531181638218785871280721166076069473395610286676132402556416289000352703152648391090090815057344069203112658189616601086647126164746911287770142507536184026118903900104269470050629464067455111471733432311930335934209464242892782654946231304077078538837892519611826093089201548213915474276831159355148217338290509189657298552711047565271719045926075704572760801276474957610852115526573856325643601572037457801044165115799968559238167742579620463004339498794078820412768667953018310339425021130516158135501521081293513963901774171725328752506983060268382034988470497447395002991821455523909346795780269525939747237001298513993782182257839035605038396854121277089104309460339871265710596385010951178574951239461017362344436482869282664503700443155213987197423237507145128776673636198085158519450784560961921707282503842162339882111812434063522364549966148063880174054307243342137136895743094851730261595922170889839122065687416526835256737177097129974205914763268360242617448189137792470550582180415880901740326845504191310343185813407932504054331444149501821964686626728975979310356519801271565279900967602905872746077984462558109478590533526815858438146247574423612530079469743091534807267418990307449899192485980091331770264765302903429245793553753993306613661683584225843492136112185626567663637857856334331952815747669949168488790639311060746756359786829304057363315914340746173778109130003545649154733410679242126156033956053575368932779418205089507752231955001582618001789260831031147428482363291268430444166811052257886505986334133708716211192521879434051722010615915442870186883543746753329985876741245389032537152265611277249631550013976628089241331876034346483525004676322360014050428713542619727372248897066577656549475835192028295117249351212020025944910557947694624520213904728560843604028812452362628280394841650220693449802007121999509816467625521545065999706380673604412565855679943535743816164454719794963114334991088572240041836135237983152039021754658645674036218299435333655049591255321175569541216875669480830369970561481265520024692494702029176363591917498575274072639009371958859703689485561226555189282412292971421574029044732527537646943723176307485077393538837153888054038447293145479434332030347290285232045156348021043343930548369332151421602816789208040954836887841848839773152644768578530484834490041833598078181191912326682278711744072492981218039882014581111839304559694957188741219964049938592803288982560140308499414484078449260164336524360574236653246619678085517378976514274536670199621042265771360464100224493557161337667609377324351751602444551039185589025278027256792994525274842966276952157346164029289940718147449292180949424758066470144443302496260030484760656738370442556275343022210073731532967342336599229874786260934396328576610674209579057565997782817317827512503662945570370954111627381402259224400652733072024663561366853302926620776660070427178742744202350102859729363250011274806277633409070778840504867320868376916042610398131836298263944340981122202645193090751833305417567107186243690293454614417966478648853915932640405304821843520094506626868670613985077726624286342574859015294882256536315793833693587627462350021423591165320451604098710634029741045970717245322907121607725779925579232668020119893058322332556636228547711018635536349722748706968095983346341143379499483742431462396890572333675150150985137716530622071093929963234531659126389504480886603183914029840157167228762296531581480618311782933807000066734587000683518247066208038914266312255586506743889926411321382090550135475896971519073311642455990744316762001777257847642997677460293298593759079567407155590045487938745920773416596554112273932423700877864057290104510574455235850673160548674876621838731046546759391973928130372801848457369070304318968765268183242531129693749731916453153743486190874531442876516102573065823577919150726418815174610613176318060684811175762579849336971797855428478610374062970136872385469244988322067062891283239816889387864772930248758588832328287097961729166138383005598459088763812150900483975029041788153704933679895067279870172475138644910813040835103093673104072090754659378555993391559620330766362175668732905170284619191913975931610126389597290361915420933968660540396430674544581398354781002524412709073720033773348796557050166072362342176484251063114761391864870031042207623949313478171718354275661869706696094941389427000078675473512127319493804417401392837271851369676245935620080676069777205861417018630332924533586574604980680369375596557097439782647420448140606278754944620232270819603085178262785026799047282328787736211006206576945822350424827127050497289720790259473831086148158491287919572502612538552618493339296917216225186284859921354946433078323253286435535936386628516173720439800308957181349251811968495950100745941525872912543306521284941499404238081404647365168501155559287065502617874070059869922011679639565436796665225882543695767072877373388491203823812686085429981946793412930872768925745775571988847701141009383891174927262119254053711601504352969028744483444234203874886262691582989526995612506939432060151278510693652645503538771071733752658095441977854768451677101674204874958202898270342295628863163994415201933275304106848660448967798094181307613524007142423701245544343161672152582914923004320358509720000838762286073788181347604256365399528598237714375286291346719668188633027801608663981510141444347383611511801401035468506190659526041122739235849137006322862356746440104404320648958861674882972678096443841081589512626763226334223936865232800715428477248445770370560978514712056941024209508339827521997766768909500731694267546693276957931423791922508000837262860514235632107137481780591919702623810414983860081825963079732349910035675801372253141775808208989681497257844533641147148531681920364927540994959396099174712537171776617944660846523932405335488437843876106771604522186559283208641284011582541620374016168514886884976809306628357688730768665557115723994781730050197507035262944419445459805063932385413428475929653743971636150741780241241691114114109731068477351306291288023156359199137389742070561899720384518087618670285814989301306466725975423392608708931786033607541396069017146478246472491825541173882257256560721077216019728401611860367832004030669790332040104317762794383310386452690858569276207097731973500359910771350601102615450775014733428400251951480402324819990803094801613945666282104622584943186045168745566251334979411819802220075323912577126039624947965050410024513898806371840783181278419793115920897796319077211703873328891441551166051424468681024263560948807504810943496916834230341395763546466574290766273006903860380851181595647560387203303663615628655505494936093724316469041283713021294688053194796710218862023210326040729701103832481711828565341616857895151279311428788449855836745882290431140766307663108454199870527564133634844304418487336933954037297602170647162304596200565719889774538154711491827737965937857297281420110478293236207940713992916436296368781730845159238262755530365808863767809729719874492157828011532010506317295349632836123486966377791209405169016953392939829838979470279559334115145176631814838431585817551245301917542893095938752961970041132915720076387458067406071867376000971750338556119870981821080228722125632596558927523042910661315670430322250822381041680827060758346224672821088871557240355397631148824734185774044707404945482755509190922303220412034733948432793691190254983932278818276410318545946490619348042486641642903060687701945824008870223942451014716532257695623977708309141990271994480426707182064340630688193767373778063918792381897980231467294249390254511660051134278391083087650840095102270713114456350256229562713324404232794592863639454800804607933405467207252492080095956355453386774008795887642876264360384593101141146817580579757324089959592248767665051353330379915255714992702099063195214927297145847672979791210426474363758897252630945608908116928010091082010149789122507137524607443127148249459190773475557556029714359583420186340564095159505817033658813507294140848971316049970913523072540662054972534913434473411606846394072985521590067371918902246358211740355868058529625756506329447009619595054205708431310007958253159120539201747885895703462699745501705530014185814011993770794653373490324730184882363545129511223811974781024227165727016596504003793796438273563717488460792197980542356348558246723207159452261465326141157913225147271143246811484353684580213077695939894491553881614304741586856422582460407525296399666901435014779567104764142199741858921176876407657733852369237500256618588454350412892063767950146763945830094867695813427816242993728511016013970310458452597358209734961048947383056189068525246210970568859606528789004063287511826731657414187611167323334970879331138121801646255674780617044991183792505965283096735975974120758848338144209717996754033027337401631677296489628562480786792771164728468192719713399645937946654892187383732210809775442020839654176937655707339291138484859548500525806318992910420961484888503790325440663690136779896030631352927379213737949766576424245429845814150937036099004727566904419698475412471123944703336440822338529578441539330561176071937605234455943392272737040280733861349899918276841698590943967996364229831980587739359152619197778663141163826257792290479735554104212776189913626267401022157632774819295751140862744999082599731732175814026353087151230688598825132517799416659154485375902315299184074055083910034094549795157509187591190992748225521418924201167890987132122364132180730734558670967845190060261691837683777902909557547750183906733259079101826569522811482984857059342109077489995680469294771615314687347853060399017084477033871771898825394885276702255308862946510606844398050640379214524230924212894490587315741753257418917744441854232503366765937606941420527579109473284252819334974369084620149905618810895141929206705233208196598950102726684220541474186135430724356131838476588352665897565589944895969611202681512719109930834847349301208923750324851580341470624679160194265365845462118741990744546889929065345828077221043555594123072317828767398468298806991185777873996414480239924971602528947058482704784146662060287491478019850533104141534698306194424319773518047038626591460663624262980654120950216324319188718549460141373789636026310245340633256657881956461968597679242644838353684610801533242740760228216706446256135285411186347705266181775183645435174237431085157126352301576390461537109793637876634877654341211559076504185507462904145075466637404741593186918597609835965378248898961307466933151323063744118835952125744416482056939259966257396727622092649387713600630688265068853141525141615511315410551024451162484985748792713490289453867287393777732198727065344845681636772970065872921888333789946237155523435008534699351036223372290763677228226439630878312473643959092389090637330020674122000413959074257357704091751383722387595614511715366900461615562255827278474228523337378090625366155392563168361182658942024113553830547516707576127591439397561091827976906887575969970700711218541442059884884001351554809685457579784135794668176306694261841610794480774970012288331496461504350466945186055436816608344611476135946747655300443238187859585081448782845174135983610904378263121707808117581226913861511831698998393376535328455680551322402055218078900038751794642032559804093848015394672466315941204295133493357514022977834178177377103411626878857571834270289809069027066225671100749081561759533464530158667312641628400020901972827803374553358530227636663446841472815201170615123445328714417024634186931376463264543665398882075309589584872485528160387500346397987101032691543509107651050889304470624376923817850763799249165820064615437120734405611661707852593082157258432848103225113444717909964468786109198294407523054257301493272649898925852726381971137386302263790728859113329276591204811818296197635963591151025821925232193585545847722100759963912344024293133887415277159294707532953383778246753687189818957402976805919692097842549960252474695423088081705426941240340610589549497724437412649686461456395681461258674933344558261713297199292302822159830852558681514801223733510794293287089609650033936505401032271227288925877378453142069049210123946002655868043378444778109370340387148209656298935181127608016457178531080716028564255915028348239912122382845648587296522145339374350971564525225964399489598535184071329674302718584632084778733333160850578983843490644439712917858196924661779692808902206130918989472958841668852657134026063487700615473159762597626305757949734615683344443739607504339237325768029267986184724124704101643489060633992973074887729739859445266737962708181297726752200176492222060003036350214603400369146808984127563177359519150928912473991120964586100850588114346133848522114679194409290053626864960317003647749127517594894365930336085896227864638758186329229536724856713984192433453704410877572785260874408369078718503035371948728454067730759427671489924869321816054239912335595604960533754731642341515008334078244894828770880192492839698398032753761956861866215870287690599554933796622499898847810104673839208004024531024429662768191076091541766634925762296655069733896005170260988439768968743436881983449285961277750486265038174688697267019986349491404255894884865476091521346295306562169605235725652893407062303692263356926751618238298426735120845072995981016239447408814410205677048926811666702337812348145088603654705209065993636240853407870608914482655129522205170811453177122391999341497776750670303649952039600436504017155314830737800259374826307934144380481530796271574142673249039504802153488207671435202305332005323198961589244556787125787335441846245106454290741835688900213616329715907890032575394846921021804674362218925510761836295386153457953813656295777909014939140399459844428618161237603952219041843019791710929520335156846112064258658396483147636295522315176389772064316355767141738673113588306237662386003207051792874982889142913796445693853213110515491250966719611086865126268728923798430994593202424241004931585885117849460939683939458650232981958823276937086290994791874016385658392013386582708416725543050041317831124783458198347155451753772866469934061530506674562754479030500059848336921297847782552801994818016165701784277243814274760250490241523022209099212050278336248140889999714165009642321631703618151836076146336081071393564138998789470114877169121351440357244951948945580107719444388493170380451056840012912467052074268960126696306913944918468234142421948748879874849792572081225221843552640353856864362110160621554592210939154708357097102117886640437465134386772374300989212633166602255713507597512868053674726951445005611810822937605144418410828094271122727651553038661869086372286600171445376946871723036743276844607804538581000604813576173209993477806262747559535567857989413534293775838461741833135859162169914165458401118306325623128289289338173259786596479628257710972680719445847708407311230472010690889290098957108715109484903595829955803960711538804374373459042229838232560092008467584316548131290385818490707414599854743497710935091179425641736121490540786935967049625862788878660966780736043434513801349713349149417214688020604960961139458674948252459362574898147406852899278192865201523480971427780662651249881442481605768175656051815436679371779938137358746954491878370604262868976093839421669639435947643518097429338557895808804718457800498241200626496455995034160600853655437528426638148901291704807466072393685851301663628645486304046358918985549960898608935356314390873846562799218866411605452532391248805832884989973323538686657663007754971263586754220896235102088303032004992422269837896266841428750135573448482798869523771903627043707109190071194327425444866850292329994287324590799123032939903132752673642272710255835652661607699898108208969658022223980212549336400623371445159708729217040568046363949624357210430667628985442140027287007095587769689102258129987953956034663877821703453440895765122565953617400706383587806406408640055934179336276460751551584020376188325523605165834911899028564402819486743063858701429093161351253307472669423594360486199199730125564573409352572353212386207229328672775476868485842179147374437583033227281509853416914311439282116384091891842406583952115535232021800061982545097340210555752497848434826022791940651082651236460542752893396117419741769803334400526873416314975475036421343708163577282927523308279011646586464533212558832656348189929568995975185095868312660730912624075116199941713732647833305997524232671590183587396463916642478091721230503905263148867234412445373854441063857707409831421003473626023450265158940615937560648103094130696070197688019939396779827599722576791508603695925496948853124770155327896629344478634852071932984345170132198813055945391120145219719086181051310898261389206888691860769129422377635990889680308063668983465756950106248502036405359325510611306890029456964912450586242623576832200101027198423833411759499593003308566844831233315039252322038939021475178720184905270823381102299249364341457181371262290655761310108803900797363147131617533811216766823616179290566243443932642186677216451264014219641423790823144181215417055436398315876835533412373318207570245997759230998491399079434879014995748991965644293592516757791593164145501488338156442054614659273346958806825178773243137205975537323276957178346611038786272544093591239098556106859747120664728428518999173574771877874130302083862061821681694332604998914545443541210472259010683537498982256058950087864839399522415580388682108195806122978408567046435136466305678876287844274675525360478005988021850962990129497887285815927112147417342476167131827499725194230118403047921215262739492247276506908106212140562242094461207205699607761472717022993284235659102361964411015048942446327431600579801611739051452716238554488070325120439497451436035122566073948310086454330976976221326678384720100490747371461621619956911753720364974095571912632381268480980908506507010895163483364498749948062295562821009708277605191201308541935613132726128763438931805943149971001399130284493709057873409029992541044508456684993761878589511565529585979418031172698583310617978319377586435547694343635079126879031387246651119387589695134329451619239069576253661989476481490150562667783221676319040928331788175644048457644886289489433297509462236836871593519620376047139958785149265565284183525311426909272283287105907635640295546029045526680513965602606585386491098893871508351214287384938277226978485456523265200852519518598545956220709328878610239184448116150370086647416461755376898197952694374071260457343766722274493817663926722107839322162657979130349097680150796034979238114145135807534199231374382212197993147995654186072033828340891874627529383384233241588378009365236891762693394945374153749560441920258918474331428858195046094050372292961660258498520357606450526592441340976879094816227090445162036283448595023443621812384629161608265462785735910948132045888063704736175000277803286962565740091415164086720086935926292743491780099450356263650659788969402397465500612985617831168358006384684261730682042603174629527055011483079627498891496582944339215738155195984637962649924828991156151793621748671539390410502759737362596505308043089469048536188301495696266079610159368412041967087916289440563698782304370561631445540478593177671439840276007850125582877938996011648975880884999488434935281008650948384913838969379995971226940757012214832051964986146493792494552103326213217278309055374575432815838384241229910966443990599194392801436328554545226705677282256621429460221698242169418067018971209007736413747659814874928738962567813368043121354318511325483936597090466179336716896899587829126519680985179724676009656856557876612982944661828098485841578222048881711340939764204559384330654644790182324133969267041551655118109321135183889731033515623691443370711598570887506980319966501456810222743776781221407097272152979425176015351955626443919965824004722488210381699402108055357023295937216172199924247496140166367082107838268404155978898858396249144373989300136394432335714746333290054207309822620073411304234615927539207556949348777903735401619254943454237644461443269598773959118220712279771341996926223126189463103424532898956212068472748881937022332578361770717502942601879039446323254296944150314308587610635958997335668077969695479675350852810767096113464269743676719988197365847511367667706207362843682342984959078022167029734842340418580966526316669515301054869282400182022298994757536817020686507940842349837186551259703603143368430913317315083789293425567014197615043542001595100789008711125186281276889919470250170926644616028749947827263034818028585755109809990329400801100182552040010599332826239906079275565479528586660575412530779781213390660548990079482580757098669023071089009250618368740453128884314624270604541044269054668798673324101280212354981843264157332493233098252858903447711579433554220684570419338118701106617985099110624533718399492845535546412587479122773732072478417208937928499250152828145785786873616921684696779055364213816800307792962475089317712578160626829806609417359370575384685938695862406798564621021420864938730775116301995946068316140308153329927960225012676423457331045016955578092040727056106475647337886776240261503428801507044912896939174269177606249022505294942799562344736012688421722300108156768437865745978946601871691501123796843277156954246140226834026211397048567101200588652704526475868614209778289970181042399416292813014907396622543797950641728847753328690785114981233593294777499281687818101925314126225588510969271129616145008440122288017441349786734093849800230477410160962379830785571242914578434878070421100919021583619269197652408719212881413431975438233008802171505852843114184544871588978854587889797569599164462314806570458983955947659413164076094696731803016072476859326853629042751663423081852812358657636589339632302629724247861385628589317479844447597538633907362301339073909778686692632059421477847452055011937192165537872980516995003662501899824257184410749534220410184683981618922817480399039395847432217023027759236708684518952505386998784372835416202299161191892645948718997948935439773962070581308179329739279012501845355311006955275896770090355337945867517259952650522663965417866397654990519145862810110240164795082368115667032370232516993419725470147960702973064810785470356105928619889461431290884676694418459575931577665101046402734062487262330597566925505853978424336892911633963019155009655333770621400611050346520476242275245380795714815185397505130926393407183437867244175177283467188877102868623599568905777703624195950679603099676742300616637061208882839672700582451444289981400262768861261556394613447535269796927192176139204793759861783801992317673128509074951315571527709860934355356502926962641872007141205551058321653775353641931182186528503699251977820188522843930553218996166430303656338808875753473297769296465276414601768067595493200693975047516145570152433865452568942782067712708375001492497100961545922651127700596682603475649847181254215416816647650233019195805839990708157163516538035375313765867668914394316701156049480502547475429125839758169696282462824008586023510681019303668408665568299778939662001433370269843944783948196410825247811558819897524570265983895498059436129459421540928315894389503003106150967948539107518469739592712177156942607354820329947228931717344726114123949304233259876615382049339544544061259341988848782781881425368844986749758329894757735894538415916633670014634689905220711700082331207863110030159561393315589194257556726052437405323385765734178681551645375436422839919887881519, 7373011981049370109389486034943654639731297185478930711517341042927079045331305583543975239230718431725944515431790149665235630360948913660394705201345017535438103066068940895057100530207300836773316175780456294466504301257485103703510758661763796653134710006181673527465580539660386763808874665530013247163425526490119524218910951751110235377982274166019950948609119417544149059349757958982988073470632675623712397193740864400794862271356535467894521574779138134574443348849149726378030084916507928976792698093553504492617486787685163642703552966866638490683748218930521610765133649961095881259880587765139286843629190118165532899825528226899824133386891977797347465272995763117325574084122208727058813990559297528510364491466394097387605066206152295914278886690560251586391755291211819967748495346311783860823069934253630905367134018925645546365924503401105548887242866885751430875572584111348694449884297207645765473423113794556548329614953916931823485023353994240698318920969901647335822693270556781899895012794632714726079954463927632998081350412157513589563781197067514913125114020162816326491548459298977223722016274903717956579495154155728559383057704189347438910837452182474030175954307313491970559901548587276851653269152611398443052762378366138031901063751433521352819106042650969097582390984062473097928641750573645598386171443940317481898893077807228245818313320666729616449665015746620096060612190812003692235697339336775987702526520516818148677347801375421520034193092143556419965260918077506324889699953559012812244515525650351839288844496935430402822136586751342049907241829075308271233490182108701415930958707360585919609587920411462804339571567912454597364786376401404426263145773386415631304433674542284073149676428709891479549958831109971523621702582032803210655362479046008747843633275243256565144956368018796715270268684392377072874682176321496854766469442391095791740309792226521174421623970832334478092238584218653103570048692186797883282044936016373613935379506945659256810212996884878795722433597057282605773547231557292225691821113539830458580035223562952291307884970001310060495783756944126897461998076066802444419240530936758586899111678792202385114036418300313278213939658708950949595815352040377525520747069754876102687718820677644885758167604819111590172879379423813785187028063537467858155017664716061794421985512684479138443621737317999116064002326125876858229312541708300084611326219829093485057838719760288176316387667648385043297787613718581024048618063898745697808478510858653596355998366283839967645474295078563784703880489125444357176153278059426995243148405220013905273402283062403421112547664813423614262760853025971440420143522859418789493315622071322750463265752171435385563870099216995125423007023108405023419109250599987031830693302577186084832156474925464936759269448643119295573083965410637259033838020253127594454696140027392316993774945501613598805012540935092420998238551532391204164770993989722619502992920391650203129127469275399683525343553956651199207298415398572623881010048917353403893090546604948672656229976874155281633086320078200210632511776971750342968960563561435124691548243159030251895123106686661379253906868011513634420506727853861317670280645139392972283584123941511752992160348276653723962890970884117243544765599542730664595398524148881889545981072748347875175303092391672568570876339098274849439616171732300029545688755576199812086088705655448403792422152932339456705313134696279433517701830466997815727781202716224565843112364451125562298870700372526266631204985297105090030854572453147636535616389708575165446037543357570016817227145366375893999540957721419296951083340260798924341648865968132766562582524122712914883655103068520118898974595131556700722485735849487100375111684304033899536014864895082277314245730799391600083317813172847877497761338718865281432081083545978963707166051605267662329877787923033989372616335181258088793216127662278243124479949823607403771162391493833904747044245245275910466051398032785012001216497686925671457149550519717049767997212074670901168492254230799288535093243082172161576287761857450191459539404949077546265035266287614509539374239822811440359065609645733293679144427149893793362035245011610836405498886453871974203113743194397638982757054928680654110263368432741746551682425853657251555290837567220265074634801639687152988480640448467593371489315474443798552409604706284927902134529014279429213826531601573561202953375553246470744507617090771988941475720557965594679856256215460288530208880390506287373173611791991753881278722823849963944575902101986210697386815096278096395113190807172215210523870481953696522622743003305313309907415969580483439978197138024593881349166241123039323196035786274648680639914272958739099629404243955437313340476840411341251288600632620582233055815799395560941214276588970977418766489926977106361107227578050210867354859257292617041094537887772930621074966993157815196846599362936150393910822556680860770158465733901581199790753180008604785164364475964282528287321639021811656050296464346035681743745396234476264523491030669824984741573141832933381465094658753915927961618932246544087871485181581944441848952864321385648427562639719452367598924348941430466943853587297798602111687020686274385931794435932153280637698902140494299761698086883449299672174682524385322062111326823661555594724119292567428346317172026168877116110295483041432532758831251114606471246669289638238533054475562001631254783955071455618123447985014347442383931853464461973545755298925357238676548930965848005222273305330711355294781373887166461038244856283078277340787917145928472648796964736572256402487072725098077161450434699913479163021811904385422452108565034066905427995032973132166153574357911315438611128128294116772300950722275143741196868569097382144578006154983514289597836069213662886471567830457476118116147262110533473660004909401895574000481576304437602574691498858112704474050469822670835385586329044310375798647468819249233050560707371019726197990919397228610243075173334126678453714677649314398016008784414898120732208968233286627227426332820546799428250413709266957062915939144058654685575284373892005703428682848426182535435005252416210147504512759504276747855468223690416458075137025691412716606190811593128396028163981110968221692101377887102893921011509217029067277588407045090764603816763984250491451116091312526104594355760022131075974377311864210380314520436954111568141986114701825412063486168290538101925359980361210267433064823518366633450499968448791659001486389086708072941430809258834008113879875128438708016895941910126053560130424188556395810950485631180272970197670391443142998427319299732684045851910437719306916199664747589343581724993679281255723587360750850443863247685979274065311036525221979268324330733985966298801033937874714791566773639731028197798071086519066716220806654897856290740649916705749153756941562763532870679035076437993121622152312159302604446449103687360932662059807892096843691878656533823048539548112708063907073023847667217182287634383786363357516416441809308097059233786117870288899047739656116564023484395886570305731082772849283610257194083893585790095100989623109118511715209420805309714311668825430316430106981719607397599940579844901818417050877999187283093468708629209454030561911471663449556228776059594512068896571966098763279653445464670143537973454900621712390619977578762137402737698068697486149792035003067433383990333504229940552882636758652049115807943437748282155715438886759956448844277062176814130699225834526344267605368261989952469523666328338619727108404222740848342954691312553156470884677683429175863326659295850965038299329909890098102579876847207155056035309294892937039030206446832299922028611854649375912476833560889267050772941059214807324571026713811983416171527908802334824722499347525859191908217832856407759085305136625926909890020189691597921869621725105185685258458806993262946647374379578545053987916681987511394114205900604791440557037885704000394961487495871647973864181051945010276303923213566332384361115828163071693594371177263518554162459383549686412717296788909212182889090438546098557198134929728745568421279960138964471544065472258292960059188360885941169639168106499489243787026230274565898115014765252455981200472714037697546280947663427879218674296335411052681185080758829758477560112162081303720864590652510830838245961832855973477342452625332546964737529343354530232305136360714290514772946368150016192660555426711061525170994476257358152430757666183662745149647456640655066541913340010173242148169597363993783088626874886720293578270519822506662885197630678066919348076459946388529651865678194562638830135599500370736989811143317263507030151678729832190782503954241589819405418043823827452858630514147764916074805374810894563826482805248842066406831755478719176826054458668318732835920855637099020375569095612945010074157645822232575787988814472521119687727145056558959174678189517344188238334713578140002244767319433971306569507751936986916029720641636173743530403976975770855113419167273726683950694107181210721576718783157215725864107827455339068864862674787648262432466561476662482383795368072194267282017122683096418914195529192018063135643315404798079004776374123460427465550403787526435816586586279888046865035736314148433797715084860038589122949058287416851955438129235869636389502673762810746714722483528238118220718895325152362283653080157555182090301456938553541964968149007563211966548902469528071196297882951528319880726912014761285360233069112673755568930692826145094064873581272052839074878007562191072300195326992115798281138293548294248969892779121055193542920049284988952324440151413700977062764803038509137051136168842481252319351208269794349532778814491752141981398617761038843302480021216505349259535693059258722294247906941241565128957356588181772875484177299031952701685718010530810816581872548941333178411544503569804373781227698415930705222398787309674730966231961765316902423817761909806353425147697405786024679765929775177316310853055326159736319443321817404012369909759129225216656652362840777592052491716695406380268837682179877825299471745228257855136924094635858001964252277099446681668111926248752001048891570211066954401759834323055978321880094871551535717056617201178967187412149476747816429732419411382719757022843224474571682578573955561500103880193528783804115198053716518831917497563036258523018510055235894870926450554121680723878485386429411966197794496648816772621055947707246257873529306049036165698245554176344285584438454816159238312299623317326712751198560386815995666887645650881355870990635525216307397968530863044579307871059339856508949867398181240057765141580216361533623408204543804835019929264791667302374887949392832527668021206579696074234484455633962886622432149270025502860672584048944477506515186615631019022402857803598958317024169974481285571118380891833917298717418003425638539759372270936673446482290963050157779125325482849742467314792522478912938103012648360563323051843644562384326594657729052710816356852987383103507709938336188945029577038547783495380683868979320365954385662959796883564826610104989831279944782602311060419379772531184823830357786037428717943109062602308144644182754479247078394280979896450902993118702334337649122274408948424604983514634889069852732748024937484997662133968581600987307046378901981870484175357363830936133817326125403898385223685848252881531491701586880612839252699435242322936948497963317938774590672251641179301202388492326822734976843414772752909303683988714117075985397481568887684114183197869425660143291913894800529432371883006725557222927089100667065901820881953606078639742984929790404840913505981810562754371801825525878761271778294817287396177174630137792820408934563723361422658150749075912667837348349543784268456477819712442880693183765048204546187666274865746014314200917345590713232713075165758625652827523006889283984083066613591403327925259636271063070998120839863088878242741557712809446703238962329218170012129363338823419266793418180061324709048848445028540645967583869264784074900704524564128765951955736632381609865190401784544003627906516186489515164424966044686811948628092196132548357657285100757428915382011461427212658699268382582129630508858422795507452003668252973111839684286789244614249950006935923644523102295228303373116416042360772914442249835539431456521642693223447873415329685810106675080518897627332160144566075384724955617214185320795549535738054693026487108188681243331735241722116347289313375093710081116862702599650372006291891767406072455944115639777312499779595118225080522804619606014316459738025786819931406203083861809064231646053058012862354974954827125203783825384556684623878268446131554717732660080257068904681964604713695372816194332809786159705636925289689183878205913637829099752165190359686122053742498773558634576423450378793705305924682144450883349371387053844545277574926223008819399681849210260151328951875465570858900140540830761303286701491268675621001450307785729468051341535517055076765668019954170362964084767967140979108613728544436034228967544850631434437389890295130589378411190698997451396800099436627908342411096290087564121347597581508113927875592505556485035520259285167169534557607297843769883786266425146937858540296733126205920417686825299340217260739288330755163906062217360234017397731365429523505630567704964313270313864268002298332682897009861040082386046603637449085985842556488681962456601304087071488010143981075220435585013866125027200706770417010878087279559040562370563387451315948478495719927109368774183566124719144171867369984129007209160847411150008942829592176612419585426612660942692410299074643478527283335042080883419736251461943985221238151606455516653204210932788262250123266251129823769784625015824687152886427209002131983276551087196393246745417074961070723836856191146671703150783565465926564629505750437286064638042156834927957305516261567426450786749931041843561260393779497242619071875036332354022134738744713054985688166500333108290072327678807711275151448462642161555077796280153101046624438569183172075996381600255616227226640212970785348299280668434785120168841970306286959161221527265120122721127576788521483463607043554024700771647351307195486352845566768624302095962498002283398155577802267492154680344178603527928558283000925273842873118331462339284204840539088352085278221909390419505024393642569965008207004121214395595493029511682256024030802327098691703586151390850924266108632943509661760271024380943952505195977221548250821507959247033551452425398129421976318939292957034309231659429963014551215431383995258219701337682653164039984006612021880618632258631921631540801094103252782438681322847719416708060567590188073467675575708716534629723440715817579701784722662176207946611286000683646187995661117071068249053756883314966636072944783611654379551648288856305347357430945879080324358081605625681800472819490963002186564695615703462403455155627173243603890611812224286096296052390644677812139270748958124668207125097211982222143695281747129020053335829273761008708737100578326216082438760371220847903184694261621337102154033032827144397786759917763696333815291075505668021295515790387568948870664721467075806624483556725837708353664473903530567583912198553425627869773669221571452826054405079818567258217545891614916635102215846746406365944519987472388518589924358294761051797084511540785189050396280158496859174307423966521415105274488372922186023972354394084429731866710013434827257011973566474753890908253079759687357233071417872789921793276389137344998544700930824125043263771890909714745846708630931359113058917008756911317107877054541360838816662715397136525671501840338075733642255307829172148635077445483790639503404637941723361990927650157688844907519763624142892887703679827365137477316651881607068263956236031253748542558616426691666369605249679035590669996079471176142233270717824226645029979709458937344675296352161388947657584610858493948563591619894999661286700335786001453196875485549762419545052402795759755772899435809405762219321844980058015548289148305537961305821277230176683748136754196555612196303986697985246570564489353768059518564419247016485416164685172442188401734095043955664297414646991558325487209709987081663956723420024354500580524300277136908619317663889205835525905990188271308653008623707283486103474412514240532909610081306118204645402117220903703006090625943931773011510886863130261369714430819024164178450902967026148304691669287186191330294548022968040216724197282236711891799355169994587240442502152518267690729137904974861737426700896359348812867828291692432114148613187535748137179797669576288252299024040358159679737915827858484439265755974611530316349985787747776321498914886576968273342210446405542556530486943482469224035658391212743469319253048128235470659702975791040995715620125260128679600951119288238627038619166201198928690480676203107456914849828319784985268833345503660928556560869053031266591818083878710740290435489092817783923558204645936726439004903676787500294681534061656771716294032898448134468127673378960726213217417203422299079095727646373549554657945488133451133572227108342634101821700043472296907254897767489289155331564136324172959650533739583584822429907848713355574453210976492017452563795770982152356290742041744678145810702689243740660912737579567265338995534109791910584589621488623530615779643734168085544418776389274018754644621869769263540922062113626688957759202503667620485751220673568534115810118163116172555459345634184241623598391404528042520110635508256105588558189281236602053912497303488579232708166247053243775114270626062489622836696077282730639358413984896154941609601259994997339038786639161335923041812021315533485941088968875768266315933393435418590859271685722818585272521194392494866502839849165807924314392367336116563960427368322886979717797327396309376393487395778299228357941930837548433308018559893894301020094598898148146734470788033540346893605975600314553435068310254666564005566152607826003793344468281023005812157875064976510455565581460438204065179580818955015869173780262870190224114626276515481027304034914090740191423535574941868331402018929526223589271064156469536714909756466865668484715177898711695339357590411156700606127449936101255857385520182865981050211347929757222192744082551723432045930714771513437159959643004345812297307607073452871328294636077297303854460378600160995377988044893878090355104870767175091245341596255290697008687272973366995871800681080683170783686464226623959340145531232022653056039541605427467159171960985727065985809506967988945881237686944747837309284608294427905043885458533010120986342552977259467579060204475862514519044362691659425967672449795647225104508755263781382858379859941783777589705982958356396595243871889640869106831676519436401648485541507924451435187427473158369748366252082752674005802001209643593759384046868662255218993385563987274250628049545698958379382630294311083489287834663417011435374714538997237685044350787988028370878571156477403759445278714161050748496974655597018040537255466317037717111208181516438473683289031073411806654016319798256296561073086777983211629011352159581375516720566916726646697268815429585524080830828494227104137763696678216107598247472168493274417481226164938816226981158795368962369857073227421063285586427690482523984130758062994177035195752633195999179716018030166962920975578847684158103444313955791559112298277280286209454552198689638823659097760023230083704383268284867959789614665257682575622511281010242120562240908531492456903134176691652152540029284736843555415524678369497410307783283602877214248446962433482487729405713866983076556980696790736972014357232586919530557702952887924734085674094524194640886114820095345062441070620421132970030877617283369434969206936265440936126537811390274210274855474085231878192227365424700746907802843803043782207413970689452241738231836380946536392180462261183565374793965500265974826880758854770882832599891971958838865807880511435566086072401109565147183636030022589947208832078063894556613895873070790930132643104331427970562925458679803925682553805797827437972842890748161540425620595062174967170919450988632837054410149691646951032072910407739743164764360492297572306942869525150637695788335396993680036634924121083828682294157846912768915900348146566906608891702681817596367076988597027711868141911124562816540909074131234193033138762124238037498104907346482157501953155374791496054290163997882125944361881223208112145871435295493344686215522288969567904669281018845885071120612596997586322940213342179762597950430730389990049722458181785808641473461239451535663131308364095550189649757543606371833531890085213353107765735628830372654065643750891269987379639142153121819548639504558866727959074262403685211564804550638839548480750528387555389927368222578158825986388533643919009220192347937117577993051611593658614213143667919620288814126257150982265609780728071997714835380649607758882615152381954760772022049619481853630543059908651366302196873788944245628790400133380078815634743099500133842435783997315307005594233764612176510179817034577846573094265217235847784856580873980992900383704074565253154682569091363549334425050301747560521448211598636755059361425679455636998461387134387942923739711672987545271806252778805335296503665774570948731029422432244471242055005530192422047043576370137906020603069234025884391725426493480441810880670265008401280651653479242885682804152994640855540957808699508052118855773987695771669096917055183474644781158022324254391085137664769779505244121596005166392859352483560704142126057963133312490478239125563263817367846949710399689718331905043788024142701954840661423190579137803398193630695359914169912436024257352848922092426443113184653044314413188172657507524960480196820256522416813857229580979634488148239901466859307461530038114000673462295847625641823228745202938660748787253279525756709528370545597688451134015318431301639847364703455770161404242564738056135794613892961629771359831916503188775238118097260903154573224551554702052974883026033306525749484369245879972012416074953714560099117065085118205238785107285898791720485914295140626314309852310286784840619990422153684857306310144568663822701756523886586263989932981575170807897732846591889550997804077076993760631346454507628989917613765365035556120606359344744473328698378019688253998090169475019535519436821110282992096086354741259927908848593587929154469354947989389652759259866990287747025821482310697216443932471409371789024529287307854971023802527925317908276068837541109292571837148860376805079747366939651972201564752014241725095231094534696123579962324742867755832473026705569974042358765753537363718331452917177324857467255339410182899343720052287218726510888709019155446198749476767555703998770518647435336512667602384235859949542846403179249403220808045134802252216641574505890634479736468591311584857372289478192254976498445827368585516085809164201385765769722256250522947089232032266791786380139977964310387709813995770548108178895441244719625769863799409310288543223008046937511061327078325103815908306406950233293439324310268910419466514590590153150251380256579242111487481111356754327684606502806214886623852891761205235510590582666333702115134231659729673986160929527031528709499920322130726518044244951315081117050144491102476889376296807419285239126355984148813596629130936186864303822390144797991196037169019887425036261614598203751927543657480387806661463528008100489799438170097199256333414958499638165827202265614718828742049564527623672619883250375189693522356844703984398956622297099942459623738862800738338226664945773808073566196385049605519087611100551400469845408982057889744789435199448781097302053277440676902272961255357550133422568229804238628152258027329787999773319432788968887729233029371893030357540009812815601284186431813966347589067146176206883870533112282596576550238776837236152926029365066745963221945210178102248516125652049166954181223244133732013078970071525394905494827676156457004204014856524434612069528420676517436256430731622398259624116773238785506478597401116370156986526709211060715376201907307191623332892412449823235592287465351762862808369359597374833184833117286696786980928583415898091849630076814370206455456605971335054024789003816855097798227698732837318412496072174698768772241630836608266617692641240088660164454353578927684148093571027082867864128537297554141375186846517280614937666591730976166523564456574889182579010678897695742180792911772210737476287619444807859646575982756857105049733584364857612153436515266385478187517730419682499030234231147800641896491028065813993083089570726435932863112546743904891566563763814596918446818738293508015625168902774740937155249518957221564080355477904797624624806978462599499008202506098092761681436946158723436503701423348143414440953925118299191689881178380857529972453798834481553289892442142425631432045682201141738416916472775232821744738920543707975048904165131578844584485417623306003637856488151645833702241240564279281060575885798025786879515546459131036453865996148128334930503058590448137729894273821113145452116888221292439585956152134644256266019070196066808651593017644150415304881612159317499957420788256493668158445889294170616882408622100607780921947134551749340007633701100031369929615666236500591256681036744004797537103618892178657018252757578684940112886936350361497168152375315297580846522310555973094560873410746439388247746441598881429393460013474387983156565671432543222760874686416742303614179282892365693480042836326162777987329881605446815915352846114725963898913776487060143992188057077252692580188731853192811749396626791516455777191385704401988471556279314257448693346136903061648869464914717706915815484369359823150289644728897165115952196384217653780735177835195717181563610834168606893514782756699662321476476375531114556180440197372139801646851463450880799800355964138934062484035663925291642635429028166522683459782130769279377673006591858832061142754320526346541363771143955976004343197683673756942268759390118123149939331904840042384271494216230318542759307787973451220329459712693965043885346073080886510459704293279397031227877095143880054383591885323586209505737681754503302108877647506991268944262397375232561146855055873654207657140607366788698779814127882753087902040776468806581916145375209831526941375619792962965044380094070190567682060029836924059469965389898904304540306823380783941437142823706967872894558306943892163676797800812359852464537387856625704928015552626470111034704972471852694513792390502895984772192813271901604915361215353803516642117553833373742535400707741546089120804341695992197375981940274721380962334064916938057399248884444110576929777641282463369418750105097938278240424025842170596044430081982570199869165737099775568252041179760702479304293078543109240511660093973837865673077911029894005641777886551019999467107013108388355346118873874034540123852210375181571813296175912223140057302530573108581920543155423676266246394330445900357512688101128837684345508551410071119371912010845325862094956761423843435903942143567690946567233735748209701070386387709137983255264583377250939421165642496872268616359118485423941939243075825886820306110261098085593063935392898928756141118703036362823366325304670341652350324662984586926137384176755738662679221587090650680972923910278621334456980445505667856985546015453019086038378059011258367681665449890221943550376702762686575388929405651723208535874257314774275271968014884456746136094912828943471203546734400356286580593892613395672211944890090496597679076381355884977558572345100113755944898494640948732956482887987662225251382398780616081863494629583376982583449384019223011293348300308838905757975809685658569832181957626012241445660379335136330421912332030353209062462958714119772740983755101549642035625870825744439877207770974872006248632572420120319842741919978796455512508145252959377645811504143662212843592259469047260085171656388548547817285390166473878582094128468326683774779566771478788044516834517660512722116662908020913270921297325098789319672044646628111068712051073141069669439905396606616086126730617330688810784047160892977973582374438713504387637279659870701770384310703430009903406304032025856375486623031706056980444103765797559276547974737955501338993617097852048139007787474066984607984797466844970377617062694376837682493797459917334093457490265164096170849362866974106007687133838144227384243860764302320334386631164338961032399019181005187626487316387625968798981398960201658013761154725821356167156687961875580155321933803146571949554867676062393779089266171639740824782695836114895805787389380879166402569481046359958064909383500847208565421352617855356896970373752951250874524314034957731424263023372003381248912553900436488076438113525238080741373656950437583862594329583207523699016675926058697268383516685040158432630553827766487820199947106341558487236767904517866910822056574586597072482404955840937405039018254227063930042126099567904357801296607030825121261508047521201447812103011688747938093889498996831718943866358269117085929774978165407293397845896457347668403767761945469035427322246215980113932304738907791266092959133561798212216456232461736122884873390152435311393292993489796099333677244966113924620615234713814809125787278726655804886306375331501400942337875976203692401257000847379767513911554209851338486885134937627388262374628437656402616608745335325090114261989850294838137974270005906058268968396357093065041969424319625307327600108081448136751955345795740307968732189355770054418865023746994558850965779335830009937593757191485766578040739613650859037285012339212480478679528477079201972798581211002462908689112558791650242408723955972069507001559163588841702310863806927806889023372763636605268265559754119203341067765212440247047306714558912715564577590549149796673755912793822833350954464498228891020367386598045761985244318401960180779334709075490299256001780057436805213603730951667825482663104920048495121533790454341667845929019370347480461702699517409087356000432377147294900322387138833569390342365609726777710007373206356063251312679787652721266822693678373700654283383156913922655753826305206484396677688105312000148147371093743425170103422917593950359413619911761484588693607201978708532390180424618811818073286184583033487614879980347545613833446966497906009968567719602988284718284181816725863081226062294832383996829327802152235695642202855501313733495186389220905185359108161781268433916275172713486302917781369372337494926535653352070867465621341011758330305449332426747672900412722103654932822073313674829162363745672114839982096474180938626023502055758071475152111138213543437912192198462771084572130577454995397606547990141019521997109699522648966657365632262638936631909548450349597708829657898500920625763420665605176255948040813148788125035687156714576903710264675415677875665963997796618723151317918342297321398809553100590945506533408988970153434127404419735080809488729038382823371698896295997965241373083510464371920357651648258273155755462230275688645827771730270924524686477119517604714303723107868543954438519522900051587494893385895445144345369959067066411121255969931011219071304194993240989569956827632036541792322138197061917709141476232465277142020362481100147939038302058098447356223104037029101217590467074471479513644059435749350874631572525562030522534021639364515157009565694735793638821387881868926644226030000698724746545230498370161699346472330316044962829464884580467559386353842070200704626781070953693750210333498386616743047050760808998049276583185439472656077285720424223407379040938839790376354159434805333462924062619309070476651852175054209392432477333174405227902851898720263227525443363061840377860990174828384896499487638478544669126607499515791866032921669824992197775686895895911965940426222300664726365480087855326409504355445354858175944142177735821320458353383687878809722251693237871097289105763463195303917906601120210534240614154773133556307023761086142723096495995349223736578054184811537983118397461978571654238624907076057796187433323481007221354960746584896570935234898950253482277357818166305182874259490112110270090959322730084892572257400146660508957402889029743404874586483424271870766701973445746825345633400729486853476769053901460346659276943975196687693986621710368738978056844558039283942930837324804364925674100317680325088134104815470671558035274442144909574885082017275687276098634710830148697352379262495661272463658166603262021232596328317544272817824416701588118807580355197469315361162431951908316478998060467364111515643677291696503431384672013998001087348516492838937389818357356735188406819341357275533829110454193171317378479677978181448578425071072797993241254619520744760925258161915838254704860677696496205842946760974789913504041801511792284310513738219159255529253524294495286307844141146995665292922934339991753973006292354572825023468712197069840557666443473434266123142884281274471383785940383535372694408952171608072454030432401586785266997176329241226297491450942214705134604042570677496171820250985105498352652372809785139210814997818575373751021868537157867708354102304860895760415733740398486092849864010368366201789724089289899630526896409797951830782528366183133347732922803688188897020697532764867585028524312942145166520299741344933502174797022388382588467501212914770985757028768563729892648678178489412620201843540340837342003956035297583116171826884627833222371039711351170222618881753412815028386831539649247236476587225220884458373155203042295417341149546551112029703463795831910217947813158037267388923509760055162348417318083508059209046346070037984915660547322265348821862469700166089629085076557421223273926848713412110001582883416828980744556748124760306563593470429397739721395506870065281759018814175704376484291862890499987568193367051738094431531279246830402845782656421946751170502297333703181528138132464702556812923219497655435704539764128266686571743882421798713648626211604383369879822389142661338615512570200325757928980516603141152129139397309483405689753045818381757539101316899612393327521481281317657014184410424029328113536051473988462293663943115525023052772894617456959101709633047870023365924317717399478387069620291130103382478125059719232379505095113405060800611960737375253579372504516575546933682226287383705304497301361084415546754585035763547476629114494571879297672016187847480626592664706305115236375992000333429108013385953393611120831018304671126213459167670639369322878489127924484914320616915954383381239802186805464387261404865306030611217457419045512176832562924082395626585802268781906067818489717501265291410427431206176137634437854815124184391418254013758062442388273069411096192666793016359261908760342454107036250934721708880104214062141045328768787125588921295692266887453711526984508708637206917101348868683494691577213760703745773547059041082332884195090879535536245315416350979433918943426000833063238420589820340587512329994908228821879820895000351886028536792792912896537547792251214166288859893778821127090457339619439672456793947453736689929882706573973537538196512111061712013051610854816420383792670865801783181718266931167254015890673499384397345943663169606758651989109634383895343914592885332590949062659596909613453636936866110436783344884525260049701669300714945623017277546446725032897704442668758548091937643891713131695683408878536718521298420800260145809551559463638069853598674867984535350735394223109239144897689019389634563758881950899474745322245132525059796341715928356882051659349294471856727902342087133768556658913348380937545294840006013109147818137194699828124450685811692963978272669526434811353753054703187597648692135770360882721847237991257874169187595058531765639264695178534418508255578718116176065522078425642805286683659723438180944685203037550981072541796082687746156996310437150955615914299773450047094378394024114504049703365471443647879572472514196766654883090978812505488047054814962623649683896274358430186380232238884903822992166394366932454355439814324499576266437751292388192679690280361841676409721718260445977238039957095012764863297519021813051922645720807566591257403123510627150539789262987047901122231897302634109335564531506774291082929095885737144848290105692488360747363669138212542192689919557048954784164151188437109216970826519521066347210086664587742158679743675124430690456273704528958898382597630144185544158165033454227948048741578894111119269735069622052687375873355081838409884893383301599395010131918783341132201309226422261701504212341525989355885732731957097074684253344378060116516268744463735125108614981021753607000269986215261919296637196950766016379461266804694788283664738790710351502170473523044219977502284049961431472564233461971169495237367541015433890248575978218570633537512070258900813999931394493046485774965809663309739662564734239330381662444677119439203298619550960567124617561184869155773843424260708694454074823419925372560598450452729823870061039271842980717630147232576564863793002907953217239001460313728965986109061779392160139234102538778939675751955782715474049341343654314022458844550819553621303476922268122014937879698090689806711115791665522979402131508475639266954804089203854766537756996329354340351692757877056425645865032152087930701881393069311456219821330332485637478584173120025382702636402326567383228105873145281182210853888783707842720073680649039903115808570451328071444543979764037612199111317926989969059140120151750412962889545819016337645688652084885158811459188605093675292945939844991826094234014988431103603211076000016307426957778094146103994837460510218854945145111241746004724835660414594588111294234728700027262055735139854266637215313106509978249725555697073300788045105571708571722463776118078291514629573779818119901218612309449234158034458006424712785870690022844832671409937990342868748844402395122231819267245164261093944068411039340019387274230094192912745788275537910113414010607849687198148079568095717074760246338856214207281310405944218812837284535538027058854997896685340255913199118003136951111768576401722435522221398161104700952929926425806570872640241557470466551244372406488471921655477776419996327295565247714333916788682323921030018552717132738097643356529405163727859264117232726730273110553303020128718690362287870171396428417282375599053058875433704214836791058145089688244904251398833376181637518160187426645066901886166816672717785776608536584480600993778799004453955056451900580177827666160557307810119159678029856988727448312569523464616131552654364761134461125559670997827121802461813188745926581877009146942091766762151980062201775836933794336721535915402941674667264660975232485508789163913199505763733716761366710221838159643119054302883845642705504083739776262439208331172946862321457940404674423825577440661420110931040681345130006385042197486016170176262464639021471066874507931696261471092940038521268633700714189416422257663870383588518157914572747398255586945455739713669947516315187796899005998444650589844259031118794010785764417122829424968124607873138721465898881091878846267672847546810747511855333444939558757439950293562655751931087053107771177663553440183597569330605566318541004174469170826099971904673752549469258951580248096118000723952416019169250392230682234827443541941959462884768104220869843278624864440726322839171302214618907078431036692366637045548555500919844709621355236651100018440982358518210741509764099214118971834105859059829157474391154307961254081937208920358008009962945639756348841209961873616733782176394115486695794063847104036517658742887704192973501421826904127794949188903356299547246383080776024501456544692416587948233239641247833289362734855309523934513815328915053325621840996615546576816274275812612182155741328350441294106651668726656877259653193117278459717886032639548636726307537766467212517391977086710268113999168818906826304855695467512793262436528698077672971610767144007153538626855745564009282314977769685653064644660255360631779338550261428455822104280191951524158797445845748270101713435034249561425678585006549915094018395615312351232621285952147656912591507387712259081356987080577692034354760660033922339957602446841471063626337226138588141111487288162093634496446179159370824816148355464543851981033553658124934848631481992690888000323012052326807242416958616628110992679769821113839629552382602502434030775575205794216045471659225736014810552885044701699983745179194302246074355673880848522924804982400520294715110955433654506903274262304920500056747054164236272167931839029739589274835025429264953235587272895128966564136638226258016844566933635485777947208513384899872405843691015864914754127246311929026727794032927981109274836066872422328430754650190839060988577581483754479043327463823336796072896922377786947400016786884799555632130902884812991663830890540604244959297058290079644252001604441051185434601202893900411876685999951426266499122276702551461205614807808491981356469483211846996462809199460359646487167328429164234354365820098187439698839513917497266204282428836305475553474401396830048246882759150155439966584844724476210213197167489646052268310260934774953382529433215778955193321770848026800734377121162268064572903198647384802167285940149808988326405894921874664571470040478243751550992132322391223641812792741694623804159891323047146725571099147591193424524288154639697844986939712121828609486742048372336704643499934765795868585724387441668573105725291759103603097702159876959814815835678666691826942963917817062500496136900631543317349817155506583124561717606206860428438422728369665362518559604574735842552830964722505169443017327433248032335430767060266475584192817149029846286871544881316373307731736646566105371461942404032018627459834472997540691169157709196453806828376221591161523021450290022588339820678721992281630956156667041418421527843064518150917748686851232954689285493135798562578368468791656232433924197576955239439219774142874312443218000489190281175000400671334206732250300421485937802747017732080963150225118492067785504589613596600372562773210680729098773325701186663672217034175297372390795908344008154092075906944226875270817981374382275354359073594167490594076066961629840856762629545938816551255387609405830762106265006025903282704165574673789060521771962677182638610720485731962899197788108247392161975399465946469567803752543834543222615111396876455081770222780138337022660558538978284094667805323660664356497774528860084178141865553218479943660247625007942418140825785065691686989150445866274790805051411563533283223022934114679240525446472335958211978638136441821825742848436580127888130684268145841673191412769418606606845522979517625072893052979884683216697496606209359110664185908262984088941379173277739585984263532280070327086336957993811086689472466802113434170945395651042737637952457570837074534581855731248615247543304230296034618070967921403265834685669953304773281268347519105694056739147078546503401789837758063817384179378000532557698894530359798096806266194956420962116747274167178302282020898454212779511306431882938470962276163517879444134365882982098313805765579655088888256139577737987804675486550408785687378508361330929374328467576118327037970020662640425045868427075286277612147309423875709103337210989607327617289593953020313559978251776977302205703829549546824602209432174809945797462740585353754452046935740789521755784244426094171449717416904498098547417706745875786536960755842512774330118908529202286992124797931405580064935866347111374807067390895619849747174253705914522707396397528536194279583835009346348456145970094575101581002804695589147050619006211789593717718354208678205327444364903553145880213421180868133579366151256283340060117603648155424261365309864773678413844386533898620234101393444567700085209359207704494543553690857764346473335807087835960236267676639165923687139184135455973398727037709520452107138486872307718490295545321126091087057566842917297051459284250140075185751841243472783142616988230351677851425798817845144026801950865755165690112721080422515087068669461854578943829886249446253564265760024591546889238382111478855251801398714631268381123170746733449231662184938258655519332457590452468270118700519579747067749411000937601616346018904892901027813418344188261412084419205542578647601969773941078705410744771822362289858157728376089853279745353599971515795269051495612572163879124135287660488026792908154259538172165870416976565934333841447707891092574751700646038569585747175780062750980071912676085484687157724916925152995939389927876361982152543373256118547692343817549366296571999035183306098320592575573617620706854321918565965501920334905520269970772664144464977398227338664093689373965998281743205232210724433800030116904758960879845241859385438392050170535412843873315976632632406135360198358542976865582612292679879498154847588281841570949023381304781976078123440533737901835618350541217962173001594557846008333914860010490704415130422103631936912458353214613798364895282187119356887505485241996648603122074951537698740011625887626449029438154032121962924687688533863058981627515672003163268641984941276914152926151782750395923577223780036306947288324830702329068686545513971962152189752545964251522789736536319060217232243078921251787271682991739173785092869515937828868181467434413168157675025883971820288290757717930533446785898941640520826339659949247889815886464529476998265888805729419796525088025387707728629135371299870564221752351144916491436431291129014995462285358254307515359527580899727883601137745673762706963424947665620548889869222904319400383834636278272443969892869332468426287059152439249222230903712541844780021793446483531076643020634306633487212627600769606476915358999971182342033772368977386621712279417280989204780209295444270235071466386151940838964843278916802506791599851817685814987186729360760012845747695524559100116960673578602083291527385515594390233084278868991391225534598065872199681861073900304421773501727746417222217099186135649584551294968655057218861496844666480782757287454632595454345613291202947517671726254423957623379858180823259074561371136096391327446189034731543644751964490255955085891641985482113287775051811446403317603577512083863092867129596865936678693490384192621888074379948248672614852265351337233190084459269565951943311137509499380731130721591613330879134792316501205130154922209729983440056967470486978312280557522820118236215175535964131683774113234493043769944350217853754549575230067299120879775487066964948353800613627149588569649813371592735436751490593594862520834238605148776623975671056029530596627054572410671521183812752805882164208515439302828963119766692416552089777889433685627944568479556497462980641877469246833809961837982669743326999276033570090010288056259775567248911388232472588858383175057010028994574470705075269961621607122767661309564875933478233536544607668550101675629630598773160559709650853763722530241735631271517313206631952010172893609559782525767186242179475593841374758250665179700447999736287926889542567712183231967876250092481996494128058735493227617010479353750558138901714252514252932206758266981978084118357290745055272106947754346782412887773248769761621248722089604132724767818227405860683352148449581122196421720234628234157030512250811599113530407861979608638451420850344264562547620843367486459026195395411216475607546682355316213155158958619915794745673005502592059730287418813274187005331711862610336267007714337769818054248292245642135038807677680309399913076466926946126450121834761578074627731929115447148348245285096545029463373751199404447593260933737855797639713622558662570966520927003843764274976498857275978547553682931254315949756650108964025368504348003429870394218898465272061181619884461642654020244844038918426009232251811452341933117671032151586594732581362111758619685037396050891335081313013429239334955487898008841534751870005664192679574867762008549715892374468780729970894820037520159749399706915297910846815221116875074260031248794602525175666067194086813110546085782297265725676674229479045011588098914490047105869761499959877954401153988751032631538082585099502592233879940943093798845959050797372283780761947564184761479216020034932143062867549911688638047524523876376896599467578055108380149452668427945653906032887644982264416361107772059822164624095788175774170530196591866530901456220339733329007559744653040384930237662202343113221903787238543693724802400739157125366118537884935349750216138080688064261386424329873313447029384794819114304227857129438324251795991556328069686895970342573450564435514494326474541811254280146817802307716522130631964519639879194849132941744178701481602211984458922280781265447819625111111865953528544169185144573365064698049172410736101525172761961614760046810066191478267993290167616535823075909064404083019340296477568307412891573700879304846849478834444789075259700493801462050575634935032555199199231054020461005521040834702026944427090980454563818103543080777475617879859033563215175708816824758102873732534447054030506610304337799644452179378444462387390501503047998348806640640326911114335638081331733640034085622945749281020477731827672540832598326494913012147705389568314435327351172085953583254725393287380539299164198518354942125418497419637837687393298171552619317960392953149125846837773311227929735155120092308077705830349695572020380272329347607524475702835776025824440209737147397171293156965524226768433894014952709679206600152210232542545179403140820306746080741264346517931665025385184269065525180557011148627300649487743424491072173881465343587102298024089812509374493726139190307727755454124143714605642393937820789186830704683089897280938032314875417616492918279686442575576394511109173509757495312004749183922171497002124509847109616461976260606084602366471905566762838460405028553315860018233158319906919297483499350423430007411483630176330501125626953670854049057126175696429649886240358569809177749046811240733528573691545049150827185045546609333217641484092716644316223178875176555030450892820516469319610534030364068436018687343084290756752092376924143697140616603814804186210944370283091912471848433303931358393444285798845662965607132612016550683226521120032187522060545939964785070720667810833289307629604309881230029867983000192272817071210010859625890481284829398104528649116115328285665932346634377621254868807484463438457662102272751788785149391133083611708222150017386383210219034069002993199432888074752824149108766229976224639729824010950750519385078152892305451384092325309212518309480350963555505987876107001434299843380260968250820199865102160553329854304451753411898852830005007352796480959105328200466574873844255479189606421756350653162848438458071612753320151538071135756141217151231004046204091946492796499010771019968546637498579967305398956595241404006403877841191871402188577183482796981774196159972024516890212420350779104013163847638130257183425092247913262683344721210278361614325244408318551485152015968051187280129772013033818554566224237941152535621547133306530368494410596212413926762407369827443984248610613881469169344422022239594560937550255509794854278626884559010585788389050900245638951661082746509291709535342927460590038113124965846682685127384535259210175422628291108032738040752676754260470631401514916743574405133742220130133937933350290624847141795439086715984512576722363131513446023072088822078095842363467344498212736947825563125453781039627363074657757881133854638557356090329535507509621090902018796097123814693290162465914981212916972035229196235924348946766099236172476307508928660285926461525652802364142243945166162192836759484160520774230161805134003578838144663957627403713629890855742350522886391342685394991413564537889212388179436861487046718930330427513364962910434417230892609773280364895903528952158111777763508526856227038878638717175310348456943890163419488533369961946400300187142488489541103604209336758689650221688137804566111726578840113732747586054859484631083122409385241628548903546564769015873748272312563292394465067823255548833205124563827902980269790615007773641754617777958655221004488510235922238896231821024491854343299862499350134683370171883837598145049951154028683502230056856732662353987951115691774970739328569662737621822947935374563416862056033384228565886384853618352490851947887381835240260362072892474140227684123022146165378837455562525172464677271628467347391022087221932502967831184695996291923866627352983391155253859694959875685989620729644493540593387138731978321532277495380234379340050773886564844952016045492825582318918160278191242398964370155116151537455893288267859403191455983958401081721758442707490967244660331808200946790765490681516267312276765774139941538881552917965724299949413636195508006546536070249678519775863110701975253479421386455905832673666910051994293188840471333326170187663696186960402073632045817798396720735752861725382177475259176718200996617137439426800408567030078147188000447755252847100370364760013799232252121199339856797872585922643253810624907006858955054351228718813861547962685534377120471851421121922631591479557111998249328514971557973246295603831254236499019374644845704798110701923391955555118890706496482788714525141853971507509549185355094705292466062567246249816006890157568007139792345599120827226192720400323557482921804483446279341482552468153851017694720688465488371777013981281631653805675790424465952115032361473955848712194131868299722075376619781176975855910117027172204351208688182743236785054089531467376381205898265094425541575039636537507667577410128486205468920289751650625738640625419035156845129165848986539442279850290237815486606942450891541419919747328017728081835720442349397447659354310327147050859501838131628208474651054760671124501300477489723962197736065523796264168045578888993978631169306508349578943170744456772414263661466776198813933449392849081919778215104541981328486428273449716165700295664880580873265900922913422734619282209550226791046360347470919799830702170042042889574979478115439378800140756810261177997818138191562405582665423574316293964497877979576565427341561777783828727333401777591481272530604057789843039111681163057846696934848835972791688266128607557948440533737737244367931808295812153497530896892796382212821279973388588334887391099376800398269286449096181021821770015181775228244894394052671437490823271108943987058176872319787721666927337421183888921159244372140019066012178835556735639121838858775680871600744086541585772872409255572347550867000915719385003253156724383211763113813623998163701338616121905688486836398125595592342130529627165734404851411683474125121462526110793613834401013884410666186647074266010651892594611693695857048101160631982891042674195075731821382385945317527546401063199070123675664519572899572794048133327105600438077122102277538615104436367957733405069797789667657066067566280430232234851258630105368848002311750738337524445527715519559115309200726607103727775599541045100371309792700275942724193924705271968471575773009727117802569752858259850996591859809163671061167973880194309009539195024231879389983317648130756479439976466348912065565681103230169726577482765752714790038972967086921592705012422566972475340315992940276992224782644140822727339516694008065510143997021477662596726153825142285019829588454449164778674600918336114844549199091102266253581896185179958549541941461972641759275270098837150290749810924849150686881026621397100998621103626790823858580236302109523317047425794495837807572050838912009802942373879672868024984606112035653764418774354336590638559389390070094620398741076605452537917629142486124078788017652786974650034261460710103872751623531292370874026199237816131566374794801220802027383498097881662712944817469262368431865238614126022564567249297644851533733558903053916991321625125800050254283669167696086457280211068255068440751021792220665787426643513923208554837646331239635979533374338938069299144022381976677459396231416262205687692751267636458812180677430636196329487683679923884592574747519993808724852416011145014706505312321068411268738364587254169858075057577136932149805278282169080786083972328944624922251004786016976290018150647059592182247366268331581579285365467071678845924925812766620940874616320314115706493691886323620551708479591383104567606174966837994111074900963935919969498289569452172886586149372141543577497886358535717356197900998271671480338827345424716967860380012917803078861633270727432265471713328715709524301459865814334852776524512616044622645829140279246871562043087437292252262463540209474375999240002614198520873959308420468014720508548669584554888128898399171614872660710440302791496022567519460563856690490144505392886074009602088836091959679804092136711554475581061804943537485892123839065880039508965364936840074433398589295675325911953854982899299766125122760966879598717444508478015998870805720955116831153400294052244921690095784977714585339996441739408863123803292782215601841324010602135374800257087934787726375050557119617459847853759979353976092577044153039740181887851813422377436112472085185101496772353727647859989764120580615653080010344329418064756400180601190305427490626892298964831272959572609208668193050142112801528367760954791801418225799778601474597302305804830300193099673223684709742677443630677322643638093630388836211001759027319404014758145755773110004412978432429095220662178649667042939738973765926049275246175269748178580673481212609173844587250568508073131030704315954654159224882885806630746395627876077162278750031776543711386789878129138603462635758453330037293339612183413544426848153445915721054645169276258467920531795210836805646068178613375570629558144143743592020145965213671927043457868664193773491365074600287595550751838695948162414469653248634059225875473368999673665865379117539941931199631517664821537122152737344583158594369724195848231101060908930368705270429747941215597867318700734962079192171739477974388080407434571684528711228533215052377092556061038586383142429372256433916586638051092014227910282106116045653707031747595964603810940867382207657618928969505471240899850936476214130022304258154182512455627307255734689084525277045925175490129936944822668212555772194313721987717134005253677111430681639552187679958134175823593852749730664036247656630276074399032878345896028599932609993208083707561092494125248502129860012912933350087299269050801868614332822924231545786447996852365911123259891808069494723314908221375015155919666734339986278272364245441235704608043451155205014093932704484406444296080204344044418367298376171612378125938692422692675468801883162851939864202037447573717706071369822113152000632601265597697907992361764290388039825992103883465272233052304836417397130702541059607225369788154406324194522246888178873081857740658096571928001458814875393011196399999481482068879364541206369137964480356258538690182355783696689026946683407439838522912990520144528468468911502391509534936893184759878063194340466442237707472854242576571663127921661557819104629354029160127568945838698537014347152417068770635683560523442333048468244722297821408835130352214496987837014245959856683018220422279964444122508079734333417541272323824412142432371440773010270299574476762805790988852493320166479940645036167605017740792664791208788466958395206469613482658565816697038789314342633837053162115012987141611545796722079558581549195397127359893050552666624906379648867694902485023791687727526234339901456674777258647405108487943243886292673735147782037194762628170675880829060221511979283501165698175251087384440206078520606403105295116796321738115827024950135624890208630068377922098717663270969840289557426360587731023005175980126682641536194132761261031510870759364261039285994798729354780148253328201465363952420560607304093755461103220606902106439081803668634954784708233812327938058440419840505149489825216401084307513047580377261346904302350583851511079299729083545587432463333746037008439019935820747052312804245175306080385306867766134902783285430498311340258862375224011645904476083175845376181456046044419183150055528407594417197273337420922651910789508148463798134245516542766737481576115947156942072766118851136325094771346779305840633577863149965426284364898711658817728062277560850433226565708750030666905507043855107915768912426662322703089255899003841348955006145436278877564350045742187392188518124746843967634732281180757603217364042199499918138751025102665955375862499653031968300376161663861299513558402747840403660459185558293631348729772674783278903390383468522910230595978765594327322430014209794700802783682380083609330086408605994980566146603501261751582066599165055373801907909404734876034276544622061506494527843916394358746339487697219937981816011313164509702083345065703615717386589590717487170522318701555085537316652757682701887259311346174041587362550134125181192753357203230119405025689025317602844788076076095804653632930448225469596144375902815497844173355398314575255382844011112655838705074864921101544709323190829653730385296282230937336753618679073482824555766893390729095765371703895316074079529556627096182545249185093962064099353640315791829145293502356750709172887774935135662190206163366052088686572398742523078920430663492034692055281531494351113510780135548296652064918315010242200752333253889176401771679577579042379269721089212016034021964725318644184125132855670919141954646443919143226631996023547867579490158998463610443397736864232217355733405541645780040065789482446441870843156924715058292969246429209148314030270869601705851344916202475318865890418972978734163725278713019511351863804905017606566104074264739217114058446046367870008456265174261876286404724370257886600512000536712977421287200104478577488889223397943248134831698495663936792356788659173597284085820159459856726714912887475070316518160965008148798709854198110470134845391870158358959297365634793960503507115884416724795532857481391073909178759820432839823052006479176759391175296485672067063273969338161028823550869247986375499636809255551047715774937469329601147140944552421289819617129677396098504606280617938919753360240825701467435808357460410926415947652786312605683482009599128320083129702299805009573785596569081629938304268043306065904805596337014189944702526059346793311776323393568855495095673321242493509573779936000685056880284911998877813637939444249015746016012451834260367536581649806513679843504254286492297094409227939467836749413097526643902983677293946346340214607689503582090001250272459135664638956413068821252749677538410393238371819413535409553171253039211311783439788359426226764785812791237239742108069569052834387175113734120181239933223926011611063324191043247661822818082034475963085930069440476497605492182567828219557610840309200416979210013119981783092768009728445163059596119933227104133311741793959606161398223973220379651356378742020969824740682925185892509241407072335531045482702924982042606643306742064276344910063449474059365577997886668934828243219166203877675339212407973422769835411984327955738054283719227079368939098337018268161447257552715022184954562289539338135640099119367565471692160130930576460472346924627268872028401823085209799422654335219278653660925883291869234047992907029351793239304189907652633490959019429962322790086968511316798606558235058549286838031239848086815900174294240153432235876141037811060456274418362933752951299045936322069872483172026891371438031098305828638378981774118443103187085292904362682240959528684325058011244711856378656986277713544543248391962326276914196838034369714268841251647558198582459808248860653851090435179476452129113983346241192855459164111928162153978056570156272666566607764118424168327519470025296787550124793069799189033676190480312358088642494404072283373909442277717969108721806700019154846788821799552196838335164888947442569755295984201543498593549690403229167800824818433579821949167832224586074914867188659974075513584261395839587875859596685231374175176005217435484246926746201473730804892453774068226990203660339063881404707072772243039950644308425743088693398200788588459235489157222599801153830986727004042270922101299653744072704687235470425412401388185833968716513064321992010521515660957060769761008188691647932800437412074737414048100469163098484002965806108713944514579692800585783773829663429390720557611132653009472573485534707358815187097674221948465918399849215862900198061413144371832546463230082431250075807810563138558444358515872241702407636413197220200512154473578535616270234871187894292662020831609844975658068258145109435432253963441579699065765303880495441357351517156024183179487023734045422293488764839948505135115218623898369403103345567398287699376689541128596751370230044521037321475337190503501329927109245378763429869902580863033321624002248481231891783869107314218753110732570118216806611136456912249378884627510411178504534956488079255227040403515354275048259568583259968130902699891228070830900124649654836874137416363903256948296842896331757141547357412489514859468227251329559457369901211934975138225864058984346033138067457214410947370952993415352789066169851650089918587653467058415975939332043859770589180823055197300406963988902832870235966203342241233531364677793229270532011547248870301295871275276398388253870630213194210501299784179238130629961932707946131812114677050303132735705309445324923319675183655145674291926405060232059659102244124612015227601522848608918905591201746989500094958196863864445407391474576066900615028560223540511073495027349827696154762005030714381268737176449751917317519796587154579961525506428641582438888987727567708000769820672335294326861384665957089175759803764248945658681494813587675507591547125793153942222668067370704896343510663619898723514421370364845548974305001132145033748332995520840094848728708997468834678549825541383280581148144838145720529084178169187193026232653737640771254127241210907499690822555099014648324161482172469229202775357790300950250970123386107041487771763243842380631307397675590202952423066350507019863574412618681984779796559673270703905602056603302770372951003120775905329017946562740140918751881635679377441038279994739342415124064965337043121117202951989471751572642414349138115162123831675504256763228668261483726547419329811718206923478710611746166659662221409570090252413297829191711875094152533183770925004104026883679392886738577737982444958978402343051557957107839412197245746107742233577908170955626033784311512188163425936392738187777241209031117793134191536713503331597649796516599089028801746360136362969442039825769305844491284837341458408151895647652981477036281110218053676521119483403554783588388788903946910066409867972270466956894163087272151031949744381927363534017883128282631922773762411271981478674137991099970078153823179795512206631068076287378995849048866676216998384350526071149390377415539601352998301185362840898264967930203603417172510935117298119749384895408637243918396549989740258685024975279781976650143922360645314452276480579241011450316627950982752545866418069007679169524727446994367808456649733407352976488326720442476819993495632982666336366223658643687153595165791116850629748928111010704945899351863563860333750419361481931487089611147018279788704489839408830056430681221481972944092520060081625882238035209179682966061217974249018219691290682678269149472494897680247679646521732009019510857707221161057605963822824600512104741573751127927626032915156794366144392977373028805502697774249323628461987287129998787937187575141734681205806692666131292978282260803957689013168664411637253573280249707183706571508565591556301554299787230762060433243509254873060692351833309003584444692695312923434875452239843146287128123400143317698922060961347413208801556879574163416050119661114304312802960934527266359400135050789677632721228099783403923862607029791630489047798773379615788447387810910832087010051195149447792574173022744987058019208355165299991880137094050089933283004349403176808551283288253276366855326481491706887228889658532372026404059120710553696538657696918972477971419957608982162744829792376195697751763050946701713891546034020708525538516038464783289842273159879285450909236643415434247940299153345923254513514226273461841712057540310421111435809972871604329814194819306579500930784961642856798224843411583622490975431566103347851556484325246547584454138224449526983136178929139191328752295772318706036058509900411286725820526264485159642509527349062019556920532604559322591271191026706614208057160957553873140642052952418638477877138041030622570607439856311062338469007241707823824187043552589641992207704063950094273019147396650988939540806398626405778334211690653216002312121242805269199347003708428317120512425878294627157227384149612236333963064962415453224904572993378474797681875112034340910080035932262371888345147923839027552954913669196150639961008372556211005868467171559893230743684738674920201030577421052930518693370701025921026209522981785579405044911094149896891108692315166216579964234709212492585077747329780442801399173400803785216304881794423855370176835215314227307276850665072662818156906878725506026565911561185044871761649105354945164711166941607580678277411127445669102834483548192007314391928451846414190074710910969140622258074925553360173918945991602601716072346170775969004610720719325591966152100571538013681346116205565771058985856156976982355630707655008433428945386079196682763840631343904169753262063504149517694792660990067737199647779641742590485296558720937969856267912805395105264977978548616312735493235837662025227328325107696799669891064976308114575886119031608065254896466926456017173975842229796161040129355354132606080219459057295112967291460121544732940024673596325849244361436758358105727906642049823575435112885243091115673936009447037736727441090005223405908588851792598497346650497224693581399496413552268201490974429601032638869275478204078635918557627199541795257323879934454169024341828717063272212585250364577348928529192316151660738526347696667881528319252069739577748799413245157154796016728925966726926269902842858935038633056785188180902296201619425707186025691468927898267295870144519896746990060543372827562406061509847225659465375336906944228969441215218053165797041628791804113429707167817108268615029308984507592872359990000088797551991211008386828571531485048376411816009327587733462424775246638735757379711337839129572685994380715740216359734474343968048687341388689677149964545359114592114753015807740391347811450679453841000415684365092331388451729072687051572714570075773351252363444785542085009182858063562361178809002738501044807778793210759435606708913605395293739449371058928187149931257717249438748771318261535318742391398043004456931744690823235998879213228979837626308006144989754009465979231857939696268069237946863782074870263147452167139595351233992002264727189729014653000548522998003666732172252339664184077704160635535172428488553082433665443200055272717207409177931308511321923264163240277143747304891889579325019908392994988990586195614133186737792228872120715949135858575266593190783788029542696792503513442338605595990611138639477774348641358889369367726122295676358739074345789000390499191741122948409650747159070082820223031552926909450486736094732206037341039492277822761605143006758615178703045264355279133167800726062466803265213513386014347254472274167059140208056297622370789945051767491704741351233719625865529217360930096276450516489525183718874860868693305208119311003280261209444825464448937053374974358943820806801595133588802338454745727397679554272975208731727379796891660104486868970885398022603048319075642685554958350960945766370454487850580127477221376190339831266496099463399202917125653693890777928428915357251810129550433725878332049354995783234143201303776150932522818271190077739288356327110482882564289463629300554116231200347929484819891186919496927499287227524056826164069883724083828641366104804706899396520798847622489120483006414667620916193484637956310895522469852400381385245900207609321326470155796250398293205680620730663007294267762230472279590869885767483100860448719931307862682045637215740207465925267045077962219569135965527485810403851723559579028412023619113105949440819773105387755398747722353281124739906121041404784552002290401403134938817605504459087630982192972170563891095236055068100744230727588087823522691212726388605311285112523476257819705432070147127119818768810792038189886780018982341949788808166996229545457925156783595282549731917683504493774561711158015654713350797067731724497613066046204079989167904619687246135436766968441860096290937566194906726335149844187390784602995314105511955493042434823023557025587721810601644029766410607384080527961326682888233757019740203929302561415377603672475217297246953440945624958034623811821035968431880063523825262633337843075327509118851881225663815618644028991710430806627671676923079906278655849940535999444255414436004481951984570875358859153211669052253946050367427978915839091629899320179313709478435915067505224780788928298066502804531636251669727033854335357184523952741761864249949896365372272268338242426303802863324699719132790860308108700307788795094690060084495716617862318248242703036286259311506640485318266087373858145603340339299893154466907513526498100790789941964769562376762755149134636809183040701624410189829234825050302435513137966871005147967979639332518909665161270740856277603675631206560145629518851546757252937147202903867414652698746856290216880896305344407351157037783284224894056766260701891302537020224600942949273280535741651556450735208948003772146957048882140117449435492431247469876706995366922059484426817101760116108174049599997498505340445657362152351801033972395816897276984093151145700981625946987331686205788514601239828744161160803259399968871585772967250871623762752503463371382385419942720166423904947313210267604439946502982762524694751604996679297735142717428219799962522807316567124405706212201772832662111507459846157774280741146589098101653401573843513478242542122721831412458930359356015857624291365662575890519819609885745480001680578744784566534537074255166105320167352002680291691950266819380343673610483803020217784863944040556352832335240642007945536118941914048414031544948511264583408671853130812883372489944117026581413919916339355885400536680489440338711046710781604734908604427938853275964987491123009720116706966675473970395677556408365976990008243264021976268007877301526571924882044646415561047834627627583742083924336926189414896421938212217650777753655250091140161829254665037836533731489451247781081845514164485192874529515102230924733171317064153303392969132508372933079429799755987393875716003961876783631966898148355595335031508509186747315880755950841886131224336784280114848211748892842815723620944706930423307702159440918732141804387267218413628990050420102610749301121902225735547961741405343973424919645595061582760580409220311913278735795143799464957953488580273803494568509055729512610370031119270859555501298957353161064738603444306362716613230036081481436198580676834480145531704420883813901655509374212549527357079088496113094768573927184697189574247034960204919969127197883785536175923110454290835778048090141723121434704864874127419993613800134031939899165280852617828199959087644372043329034773378214299199456175027107321766245847495582220288104739055752847509372891214934615947657017657346756185573216099588028578882088049383300988272727866767905096978415562688268559040955674696288380406049171521879186112285866539127322933335433871916726777981655653047908019047506400039591185906909530008100217334664743179703369651581699362710630704344174851340994865316043218013869715984205467720486953552092465347465636342067239684214034547949139937662703940324164096017580477862369469082795101546120392795008766049277994380635388288209339316224808250391379599103842981250829624742450063711113335587156037524984145616508475452973545007059347013162307516263269781210427999768510556824954999365462063409958617089062709312941463355476270017990768304769704355895807640597600008616257564701918199672578918855365870288395019931783387257957120212625273066267315602597179973282890181077857744555954009426702457375585799097886649722728459050362689583238142422343803103975557578739308881526514808997507597257698660006397573962765476877008830529831702371397431479551521499043877595063155704285511424716716125668817443884107218938477771134216347256583449264445160323499748983445918577948671256145242055975271447753766812481953053419014277104825534792677672839896682710475848573008711893967574526327491698370021980125441735569821958924128174921980713366995220140450955084767144720939650757730559908855612969478010633302989131742925418649422047840229129306553864118502387428908426962155528383378169327794669716747085115051353403111738799002406155791609735650640197869583519737259854864194548264958904511694703128946803373083969691830131278433540545923176408977759721112601123605220830750001165845309488480409477098299151092600562344168266703858441414559039484291239738170367324230497681940262642149351569015905815513840657947462054697206462132921249784039638158191968264206433768960737657417674868898664679604556869930622900985724159467482310619762781570187873162163917075568316066588313757983443436824996668671330180927226321906360650443388338560383078361247426714289983288380472133812556627229400011844152691290927287657784549726745090641853084107935815867393742401834496207135030434146350785871895474795273440050025726150573317523654523726391006389032351430151976236136210268661003550047323221961561845671905147563692929198797770987254763804715625607749333168916079567109424261589965978167827711439008187386924077119224248065712217790294827199485476546817453066612564834963656316466710199209532371320069628164066379724180459933499214627819774870925386088881549004780725374602741660954056118742096631072517309537334369242590292090840580492702726812260902116910062582411130937464995046067439146939607710219604391610817800089664543745430777005274830941482338983387994788360349107427576215335800533606621062145439249678425421363392703713048028108910070063137944510425373017662984309957847497918381400063714253111523286494303286385663217274078515435875371617002352515686447913856383744064858812044070296058487059574212309858837282334338965684952024827974113149843063952419646899235318040593911195541369607434723846701810847039373383347065177311696862667822159517704454636125198380938843805786599121321669278118830524231310320048168649654044789757239120499956144303705149979783224208708639671482949327567752956395320172736376089591967503824038497065249615378361125579523686756102806553519822825273368367151639521653707280161130802275823426637494330959993710113180380357902589193888946365147797351389663458040411216061724795878319060801766294275851443755293418488356979130125266335272001794341025600542817808729682801072415110728623486357390880828891313479788464972253684799285495005635401497171271531860113888109296862047465932319067743985755235124907137759894286361483922521996622674496785967833937191846564774329391875812710164759033767674834523759509893334429261483321276541018493562356505238633816725278503218865668855160964870681925884198560512828277416729841801817357531385098500690652751293638434009296467975645798082653565567414371543596543818917306766314585052780100347934728003367006981394896742886673163988438117702003765787184371917688535258950568953064121438001214237195649015454512674629051757283973627757664597923793210401515112335115453145527937659370657850082393176448385842682966058292971891276829061649495604843738924146594853844004789602942530017957337806805025144743285415125260181643572599631731622128103780014979650041613053110800269282626434010911450594193591263929190988512244252358528808286103816290264844065643066133304620168123966106263521685977506906078731670535247090448095569954164450473081213129765799471212164925331605783306148155591763896152992630726474919584925943359057325153507978635907983360712621840359023908178737878758667731828952592554290755372328022918744025440261715722327096618033000417683304002963557001538820093655731272062901853854620314272772181278152891990857600527201474462824845961764874068777823144989275620593893014478965570669440662185424133304729750927881003814500506184988386169846540318771011812155837439524756819958614728886876449599427705004352030983212641117082266883934852585801079462414815448301278547968101279061139249826334354403196341606861751293995580337434632553671482116754667837411301907121998763857924483903563071756096533936183911749896401082386451565468114528388306839301503696731510911126617197743973212095789486457427929158742411271179615663391170317731228383545841265827465865685213954573255403430231193948836727598448666905773895999567886255347041033253032787756368418122111289251125494258767827433930349495311784732407332008834264938381308799928952175293679492840411947377569232522401058175316578437480732761068375300644031658719201859915107482157817354101088862275958429218850432329158242073234180492405911965846491190973471086716954645110393833575875663140894050640876052277436470997064247540359525010153973685592296452418019549544938291839451426767602885439918878831338114384315378810211138968862742606571791232340028290836097968054974036006443705418730018517920657234444849165381667286837589297573193977546665149460020105996968272360255740809815091915542941425853061628602910302254561288008293426818853246454734952267879133466591518517650394127838030508508631755552500587183245327291815189600266563390561276275870858110037289424827245007632695336561256857497471326379783206179676234016210334760581271411191253180401658178975149913801735049113378042371041932810972348852768964682251330333139544673850600784836071195878816948955706900834735703076382186076840129933279554747655179548751455244552159327027225974603279169435206384776423230023638494382352496123786482231950279105868179597096402178671547192630725188195998929495324537271814677808848435100155772844492033175040386591834303622107087346523388985627425413650580377556840661174832873339944659022394799574401486303313905899155067200300673556371920765252377407903288807169208545027409524466814880402530993238166585696552697327677882097642434389171919290288468215728523402483206885939547593931304706908867401000135954543322826811450792049885285920709026655360361871936944286833297904708963457989985514979798231303246391000003830082072255004930853430649297573055706764642044677699147753284544251939764645514422554588839557080824929963453748474304195218179194219465445862887747806643374491417393244088458811093402815609901346773798338913255785855636493343189856986415926262864314864718663841094119479172061774876362475438091175381010466570441106208876682450695945858845114547154514226926989751429245328838264586431701676528905999395225885889072671952041856728639366438659390620901339014293849593337076726474896258866557597774061199443489041337389454506163136815910859634389867534964886063027710067714981656684043485717094117018772111672629157342193717754205994160744505665973138496703596319041639579351877437864192876033042735358008520333146217466224134430490541367087667508922097884015144376723288622492892554667584455190410638707267430631010815456211846060602351927975639814826289920466734336293275407743677744449028523134108554789012108526366508024914142782151006881882252298811597251288060130197879992533535319968669469287235942507960576384930461332878510983097547732746207395142218769169824214761091019544904242581060365278064816507462738796623630684884038032311561498739426483966608359495946972487729136856189822252442589358830874934453700491952546938372436233311199951799028232036441118555582327559732488183589759068632262299003885075863323845327766658575167647143514848880720594725298727691954641519082337597665597735701504934912145712843270187012401209942996949568196229413419514808870073328997889836670810262598126643958906555531798443592181453855255906233864265268060864391491693624859933341352202834505605442299964611314989318357109251293181361207727654243610021860317176337590926300431088100988292549605133430442431513107914533359839170204815566461609304782846046216426283914066953025948415135877013466810905970166763390597115178518589142452747706135118710235230386954341666461852657554613813170243985133591799615466219087549170719557511117493666221465067333821880777593567899027838404797729235007412337610575452229528374871719255624493695829651902842603834215704844288694822074280002138751179474020439056474042751855910196849124405586757638226042189490154418568127025397373931191283409118537703815310246569929906341570241312005140350331329803656935438730125072833802738787705394960477787516309696427473084978701471044360186560736828965708501375142427067560129025502666171923592181920843454047120751870297812465590812354956394765544846127064799373133930887841608877887108394655031682304237330155526982101317827785338737672252103408498871116954031656516579189325442576861219611924820682801782885840015964865810466645421003268569121774528184842518466029886140973138533693358420533168306475046731025958978897391360850654725555376184848464716499903349370716589310399099111564455373752892416870802560573863918547472326151002027258783272202759147999084087006067813895959180975878089724401829309697654397223331941537083220908564388644974689732649317047693752676074539119415524041178545835179408415552166703430884334355303811642340281746091125463835268909219079225471575213051777558835585751847616706793935178404361365402233005816237835394954240044963853897467592463343028772032107224203257435413005822794921487263941708806204342793176687908854520823035227634072954003895040053150349904023743107305409432097259251659334276817557691300610384334184263886535333592240731248379048421126361247325898370140541527164634337856008152122197484441942386659886766286597929687033155671516757215091161422697790239076508701756686329093580239662034100098743721409237227442262644686207078155056555496687961093340765548475873266709232282525366786121609485655412015570401136152639689664034304281115819050153443625532140893723149719632576870801192203722271792558443347807045581409056261181328441449601794702179003416186355422639933383767063303906028776998579955392213908726444467440410552533769829451957613822964164070368450543550800364671130898745947517286901445879014455607438029605200514992009531426500559478333742839747017681090561820043114150253493501395011828247247682424137069901498883386779219497830604841847949493918479708865493550876955650356663223683651310745293022800615810647538767570411620549191650287365946650829154249918360622293972446383937178836706186902239120792713410900159448634120140740009099786946720167386295591591845046165069930554850609099168672025438127316822814242599847976238246588408763482552830080282206998108299298533118600526924346609831014381842914086215161165826050392806764175182206993504579332038422783653392541520628622248544592154729511032546235409782250984510807074411299412608407043156463965786716496749411151549930132166353460442728576835046034703471868187720935611996061409839253956248786958373017239981904421494433217147189887783792637673067528815409260896019811566727688064830326688517534903241615833828764459731643878923303470764534715886885951407777082453688514696441827575643679794395918797478801201755831098671727557886364624662483171769316890474512208634757640119928560834206401076989069817269763997244801208695084425128041026542212479174308979237094368080124715763286157892622378836305548794508425235267172789589966954297524684143458934028290905686879644437840374122930840436013903066396583962616409814149346369766565356151404024026897283321080433560858084157804883998133345983936958042625105660697568520225519616358318468580974637693745630728527404213785232514187794910367361221106994009089278772242406894676205291267299136331119975170600421198188390855866871848393548000523689398835777137598399733481757827628391903910966083923788867352522053476150462615684199308625660858345777996684858086202249287397829856220748673511542561860761225624951104920846714142852785471100345888577459669937044302870765022563028130409507597358337720709707304274379749882151409418676160356149060941125665132132677371908620829634916012163634485387316817585504404755416404094363865657278583246380963471444664740399911851894304534715827751061346283181449766131241688242345667563165654670847757025260020204807839110257596464819306048344533097808909047364696547145196428439990211452207353335408602341837747422147290255767298969477722730156252891086803038289219178817406751694200648061475237374152182459816702613307913946386917489632927612085936907248892036381835900872029205628879671401493990288649909240232205784170722877385755127082944825016031502257837126672547449353216731264220460924398429955263805945951062060176592194928603272958246215529622082806618688208762938513041210401474636465685067560743633237250210873853351407498925734378737454517499045033153924584503828900748596564240760392938580136627570266417379895726342433303946595493840396046233899514010078265472266230423576443522526219305640112110984230383789139090630704172929880483958090033529364335741929512152296761299829285726970354807074378635175411390189777019498948295741251451710422451274813227012075008756264938515555568005941120340348105549482141884452922357856070293862308952867122602057484257321387898406613865061803343959895518883037010227025615357571962928054729179660113951196934063405653791687465080584403867407274420310337227105688937232939916609345967478959733292134136321502105483640711835632239057777603203790583506156180109453216159251795454717881117406920004216869115635795152882556932803947862536657248498725371566963269683459777150879129246000206374506644127124547714894121189922935395421610457970738289162571690849569507697585056529348159502461870108608893961796183742097161215576170495186932494196791096233123086741337686984794017796607276140327007297934672200742396413202809927347424723102381037802970630516501919107068359543227550419050326390052779808248405191049172029157430145237625509553501790855849469984889970527649633827962679876056178500580040313000138100859973161687584350493390143170492898332818813335498271632444757780677646809317699965785677862371111400372298220825460333883194687731331232229100927032599649538448056430616871417416700620174966705326824670899036235838454925972645022205646738419167014556267629407008850046995733944612470971126454439631915725390566301256712965686786387819908974899243926101544617498370239115251900426812125985070358491717330146530663114804774481910940330705429942735929995478094300429822023197644880905410541098629676475027397504889098758759522548838134932339663486585056862163043557843714983171401404993943998779518567110470099891053431251841004822127011470816611932389903571382745220044313829692985537208672294135869999906778572576456605892573723701096499601188534253164974375998792781971248320025060406160818723108382371592217244685071526843969096398111491548925844222129275972100464507985284791248955271721748704745751630129662641635695096888620011049337097179141252894367929148180226638189488675937232963016248409267967432192486478723225816443203862852469028927061942907685177531249125881142771604049542174193882127895341956299122088431019248498732483050612134092834579863573273942848339757216706463150249560501833741238890327452271246731166444849389430878374732650889305349604479211271049846873750734364771209823494695181226744424738772325403158784061117268353650202476202823651985510047858449379263382161214321701664966858968020933342384173555942495487758191079373852377701373234434558566422091392955068472641249499941440177517297914689413277668130249789431972798382369966440853877773761093793734095687244850447589145213021179843759828138348198913719849545098923174613779962544182109938435936669298491377730936734866404384499362131176735967178791669840125473089496180805454655319706097974355140483803439297488121304360093796535204637951364542073024423446608140117710035506737351139929289349357754870193118284117376014968421338498565890946502347524526746725937661980620693359581670047508924047775511213663944067797705439926648540389581967426485810714298542354308414965330936001293797041923157665708147725627081397023085237416106330912862095687084981502597413844293608636874820096822379664345721774992101925557171589846718444012426695280828486351384921581872435815190072380961831397815114473069955805299336297838949941862971470045527594128421336649651980038559193637501722472244314222612843391388975703267398714464855075952134089702284455481622190480514179259364558887329049148647984954059310002344277034756572614200990756347630637928774712187480304051242110300727527003581494472564640898887487896420024753603098317444707236449871190112092400326582891597124042965612956121819081946983633939685821504276010740700344094008659655134520096928737795927169612148883912745077998052080423847607960264179763509914312829776190560772907663654219400392455236134658159066791149198946004269906846556050192231500169020519839091065438497490001831003220519768475009585471879896176899927490587526987451147872593765900404234491422212511986970674659229223668685324930795767900122754564890769301877495094727134271020420265175766456913769306512359481878766556540699029154728936885089366122341581622579742939402439198201891907066908656691728335022703679429388493920779656688567816009772686113707257586542394210526181911763809543640971358257646047786935603369054107922777768867590994210324149622305485862407133248852943201777273700918034715878174914130191855461297618957914953228111523985854789732739547660767337847869394913920185298589590550564107944161302547178951902261429803534891020186709598230578443345116651002475836757573180021433842837052714857167686492748311572540823220753666637586226246257570982189708189242291648621868377149011272232800530935638894689525985655458323495807777458687209322974352810746396424108201695133037378313802369614399746803088612760559312856668714925585879710265908177128575310996054567688257103399896182214780731883553479206593682554669165533014427917977861658187266086555467257070161080997511100530091391013352057078984733552679564425647159806850587318958286868566270710635528856980974832806991577770829645203545252680751504762284423121763580082890008622614377469123170547481337903506852567442594616989894159124295877019445482037436082648132238756975226235070957255181023625686975538189992552965869094468083513902739574722525794317098068084241740825201694560689537579365068714112426788535726681920912021190869909147863071513957116408024594248170433436281260019552248950365140707214606873282793868537094592450971947060451299869400184195059942195829087240212063240773408895941951770550065766623178639602119088249543597972477250614088519196202564501869423387006010146548899920942814679450723087074809583268188911136202662214567570806753522923897929691767326692682284306120996963863460632895472061955753134366870471508291494216549801717514753522612605498557416351095302390407215918250350425539468147445352696004737694758828475776032362858130733917248445483310124554824388220146201160618825736838688023534809886172869771195863796405968922655945087723043621318400477836660592265079247229302168292487974879666604691244478337349393566390490626875340143480876641109955857201137832514371498798768520472247661762595852728796356168333723789911292267870933943580486457592335862125302177931057351548148924854075680508693219738429660716335083259124004676197348282465285016467811909725682396149849496544514567000302183519027026888006604080982617604365129977881086553220164378147711840186917653452835162287725404156825882144028978325749862636139610792643505966734940442519900199967711934064756275727233788740524658367343800763543254261583524736476378341955085627264632019177246622831394637932026598367363204562546299682166484029275832694783964573699573240552771460496394761656149350958092574172545376514649187950254068400071564704599807436663943288624044749463589738313337209427080022398830448558930694537543872640378814138588808539529265256986589652900946708081342738174570369458657689524049281535242426817569209471713684053577917737584456703289011753920904599988878081376295379799068119019123911561761394164932167410161783656478081109513169234815124857772354082734731542827770707034838272254944317317536306075847499772724057891737031101116097428088717594690301120705674950619889376098394365921525150126089672503241790634679106098699049456481340645240781304195998746701952339250903406505985919208433004640754569894866383609032668270184717603259192916209056498982827270645625349679563648265134389090993759145604241209029888661718813653611798977270456946820290395881578524795523385904775497610242597119902142225657760538097523206634399200568174153642897586984559322834037586625399340057444526462211235066740446993215220866310285163614003397145471743271927617295617000117003282643555965487363909942423805740190161523577759948708575153578601928532633828418341086883046733861932915105560066152122855388542807689048506956207961445831002166744021107260053162722460845113111117903922433735658674949491656451914564341526423081242078645042295121942904293109646746905609104084029381524789928963201598712432826266511621886253399247107373472867565684380929194081407571753648298137383591977178929403717224957635340977931170086492257418179320752702071994776059549949226148993715873179059290276258284071868088589373595905352866784606560191771848946265212334066354116577563762688904514696809471664108659068657462241628758689570648261163506999085491964392296034523807304091747554044480152733239460458683442712694683064608157275736622767237377894166563494367287969548449957043073095402158551653643071886913446899413401188943443438780497614631256950867892422717758441529471976395968225882155605550304300988603347980644915758208310530426065001246870968740702938918575203542461727339111837124550107071977398152151660513301735752179949065032451319387570979709734349188776048760488801481197035855056979817705738309462541918661890274498755329168559214543847412044232990246694366489592869922217573795717194938941765961392192036341103804078333207089102496912603956130291362689285801191199146613874755510449653232726046235807927455195805706370536161104139098659945116735576951118401835520222979292524061396312315933179867239807814118779842923849161592921254420464949709112244797484375897779135250870427662897852683634202127533545538723804908092303642869743160088881400963188021624835945239720216189059011074414502327481692567448655859406351775685168484745641237009578746844412193218018301844760719471602477108422513742238683996915832733350951054055006608098568552036002017147037571467789168890630436556614704989374172675955505866570154977933510903275886494304540633125904564277903351008981830180107014947763542324239826075295189671978756254299708457351188242270629683007310154664603198344543358414357874393550411025298758020778476154669940841089808576600968108189141333893868238023823557096813973750563385801388564995611886479722196510722261058953055725476535974667032543398146528247625822319095042197768448301027396636002585532664069108408374216845069186469912326077544719938582905476577275035514862305656904731498164102280263407893715054907888718585217824149251916926068039467916727976071465258028444803350941133471206465700107748808218449769338652522172000789552230146335339260823131366912754983439565227961025039390323009726931092535553494369153917642953716058953474423277219715504354712651953614193942982646603489022473343179883546767193777064965153460097419951345957255755822374842479664936847922936707757860264014233936484965642438346016068983178554199681371082716787365813777136786218746279636771705926640561575873397714648266692968672007674526040491152300694592593766405473635707543670556580849552536627184477955768380044716271415039034048344612136239680632226292203811372275263642696698296215223241135068304888999380201005322367301942018756655266086964131919933996146207591041074198435997914259475631512490346262231623463273318602185627206023888399219191942581802353532343106505412343567619066122142128491954532040030887280999642233047692397645637252900872020176532547919917518670853602216249232557927052346916852617589374271690515989086697937889682977560526219383995278701042207310056969127648321512425413674709473155647030539186965733437064359482953116919231718842858568039746614437859524544680037872305900188929757280057169009671348901105153283208894468888141100774797126252547571882739002321045606698424468477792037963632322311082773482189975271355172298440526531863193415871427073433474565278394100575920834930582023221393172852366265135711659347739153668300416031245888021914152544868043833954852404582284198093537843254865975088672115001629830665530600531593270693950481424194118772718859197655103642541982178138914449008818827537756586747049312145339840288312381080149309509379991481028557563463556566071738044247601732723166588116017906603501760736651928128096096477326280322666019448292620735603779500057000344262132397675881875035238913444007336105502446796480292352663888295805281559122872674447442272397228066255073515455503130980630498792826300331561775601301758210314404528037302955455189714443227433802754509221505799275716087932574753852310408378132562429033902919405310615899127087947789722375360846459876889197004007936054528885332856619280206873166978385989089123724928137618360521693159083223122214815439302223082193068346046172147278462611992491944315982405703815733529288686683671401962611986432822586685666744136360690247857094605185061119068471838129787002692784517139831162584957603569532084654402821523796921667474148582491244435243649478777309057258321335271710789516118097592538562331316322134589378543521717035312505131545224565123005899207546989609399905858288786042960061726656095185638240515318662804344163232413920683422974564455254832419334855205779297746634830757264942419824011231895131294360219392175284857668584541014492806784625434349482393669250674616572149591151776999528403328772048638676867891489064005282171051499978843791642871770675981786315895165188936629942768228710624825966758080988431520280112968143534663245790572396366488702986525481683158307037965900447131071437903606179375280850139698866902788090201795855197795768699068687170351987449868285474430035639496068399298194979515742103087214639824980638944903741548718711998835018161699303075342618424674999852590437323563316879474352276583473700493972237743602296441621597294685329901101902338516757493381548222771578312533268929396729486117434324088745709187021142888127138772646628775038868181335200835729931881106107572192298674296354919100409802790433320521480294415366969053506385688924932310104294233154251572824307104285453371518297037986403916351931592577628443488958562004172068153564298790165902958366877298692135931476686707325689207575457247328411068605443382787603461075879662816733125261140407691077868806501292061371956698233193208382666784307748571232412258282811535813479179657693800348612541258393957591071856355365292860493914197921983936878945492524078412687205231545113051291284463083743222080444535045090652801228939389085381101225025387123856515047699497028548247036949806052438039059660189244166440930383721709204975224757646939173823647308664452550849282210310092112126699889183371202495034150228914517396477397882056231966459693932266167098148518275325801470953772483860288233013746455038247442715819631713867339183235618646226376596640266651161555625064724844373679518800633063708162558729300313998980569237761323862817675687748645780576161750106227191735180128324390858694220743044897984444455794651460036840370977611968046922554322932206010975296637063598049298118954019503536331402030283914057187214179695558600504584638615321106500179303911521280435725772825226456442890894842735548856420627313844512685575186684238120869002535626815160037591601941479916858085684052677446953491365201548611243992326630501874556133166015338700519963966863782666547291103899344888693239369312678282616385541197213295274837684616001283710014983438838143623035519435209714649933379563171478037858560306555148789884608714848198484134958409002640788543097211733146957055535836171504714316840094632000287789405885436304631218844684963485609964609808939734490451280826044576863823714611287657229461575587186226878877247692923064659509781859111422957827046389978266288116582238732656118243261027035963083657109515220962062767816313155453005807096341669793150073365159185195193143215031342764193868700177995249086365711144306085424744257670256599604971047225238879755195336303393388888640186564741475258617680637157744192096717071496827757546068985409077858852254756079102828375170263813292379990809212086974925720280147148786402903577239591575685537131587189620836143975810988549701862387728135582626190877367812470330234404699192338858322906293493451583420938007741297398011266092504213707008008870583120268363037800545059527666434760915768816150593366905218808834687781875664666213843360425466168508589235125915224079159053893466647556412339114235419888877158826548461008564947178952337882603202190783844646448323985734004840913765598313879150700899662920616073170037552071014854024520345997934739041040776255281041391464815904948110558465363175929647708814854256251111786979741142929615063970013230723194185725887708714844334980537115442923697738773106128044822673648673655543602952673581241607508722057590996844875655757804323299714003845382843701408062235563592714041230980763097706022798643161150023572054219837143926399609055871857597910931888894405401076228945097184781820138253473385245770809660497384131583243311282681550522171160832457992263009802159570048734715431317435011439812033950432107180023220467646725013445198246985328873492698350887234561487527839687507064421897581890908818263409060083110568270076993089956072080949434023395803178841495471018950214876478627125717822343777134240869477178968509354666090916618623007933037725697218840474149448775982352679303285765811446071924236556922969734835609491459283172852432938133388661265400615461544379672237760344359618097784324044232230474628026623949753186704928010712980426768974449509980210915370584157857913316575032017188024559867683943809634286793055368571079943912792405652615642677863098840780407712933201029375806797416651732235938775590584688659211370960030421624631612638400494300902373066193151595950245401458027246573060770105172398774342469519646345402245574836131074924638324979583965790416687473593752478312803695570494767394653184546868278572098982666513876718199552252218471545218632803428770291584719635389491427945501561696255412906803179417905753686409589825314451687121788498264520999257521992566035616896204563443374235131533645001631452943966219670501776598792350142133079498651614917287731760101266553951584483492737747129300237109018282783997400339215507427961922827335556528896541011892337568596409986529042606982854782696371237604273534539694291272508775071268087523427922926343310383737815726160702556556032089405111613154426766195614062364690701762881482674544619741240385698646982601670070128507066411667484603759233007274889834182356113292256738622483164273820556941326646599898462833763467199380266875736140270760862634306506649428054517661583819825741973691183383729907856654359488672512262606185949465435073040570449369932306975367633590178376245401488798393083469512135162398365370900877599890315725918538082798079839961872051413577336552003932032163133614749199718522568504480976691727525075967849337776513305257753883926885593432400394313650919820486332089490994504996831543395814774692555838558270745751000782121233818225646369028858044274296264148422171704364157599385027943784097212185968596352116910799440795784273468410019244120092372390213530906053827399602653976476172034012322860706292593771730707382530498148109404848013048593404536333193770642236505716819879026420908607968250298043875171726634489134156650034662665391548257937546500226404684146258576519284667721558706790744506685016802043647829578805328890327735887021060578010803677451105554840764204666544300810063867070713274155521309796529178679655984056939447470303695758547265443289311504981025140825423249929433876873023451084522921458156981609455652610616032143233825372122971446089143918101681487182901504654432838826572692175092428405993629318533150611569846106504051941703193932711232815388761957527285963553560705458486909345561867414587370006618998320966988375545253121379012193570141189904293159786846131288406532871656530617610441995395602895762638949130424580357496882854207168557138767401026081056776319865649422514455352408510054821084786828329849581694962131052436367624434890903460282489543333971089785344132156178784562588554317634996085768946603844344647937883808369475595310078830238659092744683636915827463017766888255147117656354016529378055288172500908622745602323550109499562724764458632219165019629315364947027742072643132765593147124383732249988218869572236579543233667395005381918127494484743243380697433094610101182902488159790447691269411728052732567147496174199461660026866670601280944713329731452036111960466024243465251478291531183225219835932040495905492152887237864538511745819049526306023707360426536051758214706453254686136353474259679074624688553829965891433094906245870108317384606689093521491639432515541298091640771427542354916245824393826186824377008896881541308916273379298358515222262231998229565085777876607549014484449808905141643612813709102701059571676869736779271977346846633925075061913078667928308082751545860501976507947659645098104846275296483541443318267218191078165351202990441587784142693572069834320686954108918958789698355713748134432332199366911965019650704164576121512515024180101624253036888694529902522740402971434171520529753716669164983217633119461148242504221311429440636584329346708871805004533048055803742409760192544286553973248137874945185855398852974514400251091941990168120885362659900723029249344945798341752077760957412857579085598685467589115886775789184712538868229294776835926159353703355572729881000161905286980548387315933465941789309174392419949679951543773221378888335652785288437118762267522370897977530801155265737189406232065365650395168888405088449700158495091329696187794648288355272668771215994410442522003911534791944685673940746981000292861799414919797267860069753592696073795836832394219886503356842535926977452788610210273626763726668755602851918531217518134928240655368791368899050001879033890722140880297513335140088967721083959411454048501011439760825767721160618389716886802421220999774379523356737751176542599773872962607210350258546124603868486186888550126377638798019774020547947014203637271612414186494112716441560716951349034565531383695371076443644826821170448974299295654200232086879356669825880793386540485986836382532747313451192541835371016706622282678332982178127877688635408948498263960115249257559425809886813112081292800394829291171748580865402754639984689764858182561045678599383069678168928312150268492978578257720888149313531070798488571507378772692508972162657650906542029085067428585958693869311614905710146744694458799133006235700466777151352882275719715597307927999173012975398690093782999100967542450659990875287695968609827631912034828893659953579803653853207990763820860977700764524853301794484304189482241419575853365709486019214932517885914659721739634459812956990749373763648888658008992675958017974797279680102789332504461373800858921379772647693893678502170707942325278680151621179548376150835616135015411562545690745155275406834804881334053099981559029184580585966985368841895148986108968805753760742699706055191737149989900884758035039823631520729485106748520303380627994531607156530848747327292707291760435821752560380621831990462431458247787740977607063792048655336426617151775270106859640179234691686397496440863515235143530505730658059675359926991317828889301704358793423126565843888882459103957089671713178555958355628677881294346375034352666136837044647294682331758317908712022446856397444275866195529018223417137225730405245605014465672571447643279918254374947903110413509005573750544404492828761486526467238985173119001506361335561490222015074325362873538616550329813404164891202236360746258647366300098712641606036300670869497838385515275061834203994019583575100319466282109851254190638595371687615077387851785628648962281849389120474776190097871313180672328143638656019743379637314389796455357578786039536531487430935685702546436259766779903592625510908391850969367198531017886120786130274484341421367132787643531029474334087599530510415516589742382476727000424794842117810899925783326155426881556096204706767752295348435783011722847425735878379520928334341691259712270050962453536084332249540654212901134661261375341703102212351903660079926249790780380845605523158899821847414153941767784011966312132216293324276816286574488659069928984927050183457105726221171144461263230941831280676235164470648058262129518107124111808803760145586627290817535030924149615816523758160842010465860686043655114429966698484802127629352832854226246133581909215826991135506717454809377068928396245022060615121799752995710649984935912637945766002140893429317698488560832572159254644503464907119598291823383309588666246507159997906633783065052829557798755697785570585317290221622573026703015929134958366158455342218353841061264466662055993686274897862042297144203741246272817439397950682896808962517667442316960645782462626352898834249089199786678701541849926190157623848026900190654850606639979050368537658237638512501465960379329847753494811282359788368353408785169164958771403491680476876632079949644018657006529737185119636594697356241505711050372800555892275317273487503736317188611361201594485667108129691355090489711169130920238730226261295269995912641635074691738512465583744293506837840464583198558748678478200635180606659062560971969222856404272976801082460102634758620062731278769157612101155884384922004642121075803522244339888461814212659095660918751178145433168045340428933100962497307111501560970981713881356347444579724052344706079187528037339399789475821714732285721074764019435078318031230668967387583921163767591450004183411531938211273464377381123533287154725979820809808129270730149235889589798398926136886592539266560111370934542346148343673220031820046795062088814798986136894699400891292574273952859120674460727583797912213953471285687142165459997688903462696268328991446484438752242181496546235647192894952549073569029629919275697478074712442292169145136267538763264970303221056173630886299890655693785082446902820923908492629599059581212207655733788235416300785269642855807699744532474441650912270745277265117826814046026012357182628550734634927251986287271313061669052715216925234609056765248054498020973958747005569782331142111896356934340874592322724522820760829465732162962072640935964859151064119418449289770224474797942395710933253448405740698874408601746702605998078904458709360767350854362204352401395817866847902287247153865450009450148575308514089486870500311125574085462321863064067861251970232870108727027494231161876302603359986580751380471222738943382912922335958932461613390089610974189191311482226488471953995484323482303970320266710843456718424511047445399990391810269775133078427177547569632407815249280152444276539327793761205400374472356544298403522644827346364858441558486024147990518825794013701523864512266326638698760125297960421694281838882627087826400094547745873407468754370522067974468305000352746129300695103482330344213444038853755567243397335425139503857981196282483922783877873187297725747546750784762365387861070782218251066714573702873600500028958508351595194903646181007992579453883038444000188057415160139538639553709769860124762446615772863466916163745772920513867263965767258560262274322310330316423856527401803016896370439730104927203235233377850257360018914445066439840963985901441371984262748033427942721144025865547629766172640410587982024861921294501918597922274308536568192475366661298874660638158775487537503832815995076745212422369666339999521026732473620389725283747014959698887341044282792313205158631399572907660891635750665965285748475596301326126730570797612377647249883257767844914892699378433770164396044136048242910115769761357213320004902576293223076368903279789962026517083369030987695885790847519878929162235035015739184877934641346734370365873561156621646993089467637001494067651200917614074984035486876953947755296792350316991694871177297753284580267126700167434214709993521614343700693998431280692570520201131670592645841353307808899327263960906585019372317379462713190427018147558577470275787561693831131813203490019558321018483817022544503252742105000769165535417589227916281017921203312688752557271225376253450291759889072762810105591542793078331517552552648797992574296185566015575641147592145677944119836437464840090192352033808407822434523868496565763828825069064113991446989106668847953960153325076029796765046415995845753582610305876732672715552452900769486382471189393288881485800032538793143893419223153162093767856187743351201888002978751759583381640637219465462038087199797064726504721635160499365201084816233201231507120497179071704771654681200024648894049210797179633946762032517513485773997183606617681724341483200377122288550528590694709000157893852125336879688060328311256368690210442070994233022885138883172549525704536393014949096248196307789289103049120469267238047337859267096065684530162134970995115611964695367884944070228618564118202056429212925722266566263755193541232491061213464469242520837254760236834249750766790209008646344170297351739933087451301090033973058930496602681492205220137981685351650370072352988033922003940048797101844670082883419371233114929307812220133543634386168851306298436537401417290944663483539376766113240288774431966634819798325562525170236226481681016883221111143454023903850649245749780286573020927867274521575712339086548955636230001090856318480089915637161511278782043291094001048226999260206572201771068879268684266083673787085211558587106376220909025797700401242288103421827254238728046474532974115833827346033561723710509765623251835985971524384068222898871191876083655265030894601321262491992925533891777091259385261656392742275171530426646671212327818301402643129712285019091053473391096110087183138577544027203836161954471225441638545013785314835556508562366923315586838813239254860250571364479921208852091506779686897000701810066647747048303540687203493131815664119323827049677737053095941485725047263807635332139874132265419086373646389669125364920650434496145864958389348804734439835955101799920078295732546324966456290926319684148510246469879520605183062404848896970839413684996864739963865218695403498459381061376278968337703358263156567313932544133427408824798786213864411404264864283984218955259738432176680736656531526882162642611947607903838101641762477082647299033282411167473909246639284207789564970731686836401545991650698004335760049511868596251435666295610927032599413935798666828000482145106044904718768654244737682769153404160633303058122911513637042208246480967668711126448354722691991752883431565393025190785146329427552547247429394428976880717023645900035828887441697877564088547158882975985779204796347733336984909347093205139536070001350512745836521100198465507830982473620341113654505606134256078678344407573889023331735931102932904676516518538296409481736615957921597172779752491415649310204122446207803683105841761775057372944557176369018976948168268221148495133009437852918101964057407244234305436695334555034389150218841214595871802815745481037311743162077261318560899644110177427077808313142068862956798559876428551727089542329960206156067228124155688283492082616806882286294352980133110784961539357456578179841658427895761342122368636861841888770250201390440437413039518962329025689596889418654289810777589518463517346166773163632530376933075498818411271534684319531800605628322039732245346963545927098532529475455319292094623478325561972143366363143857337889760161107340480764403955706957932237318732303939508656158130609469142705272935711568523622630335761147282381434366441924314866471339498280941902936782180094175810914045713316870420859138510713844535889570241963130678903060722129698727149261997381578905260477651090639701397012468745350774603813419731008553991005000681847564677347181004231398905712199106337323015464217810038585345551934668163215798263789737953248770889993082338121659484908221362269156516068421790640635162798827880111986162231401339192443465537362396966534888405157380815180457613897809482339620651974285569463137260415000184871456065144116332908587025815733094861880027954278654091079235882853026679783659388698625299525376391770994849037192882808412702742722269372380132256795625326333992656361347644965569830355212286439530762747845262719114364726710601456203966551216270663627487924018770958693183282198070961745398205877825752342960798396007308171878036690499335217187302773790114144559581058404446435099533504819911502958680791918844644151395583113691903455140321133309578157358998887019857259826679063222252742458519684207588797819974550318770831310191347800483354773179911938371970743785702821772150029663459704151666888660041111831035974121755932177431112693884486279129029177354454703099592382949757749643102329698613000410402042335252921026298422169621814437368180850400781019892398204550008101360745300598838895330235373286625447940281029349700737074990601688882695587953526220268652832341961851434772450022666308311925264440436328506532887957616792459438969100270231123851878327370394478090655470938826653552919783989111107054152708259134417844878194036684501499425781267398543906942657647960401703996191145059069608019207726804108117059473365829079391451258827303761034600044168064218912504641118955960894970601117453731634618547255478593379398382490063381539126078249560670131524987043135543764396862463042597891270244475932876526465517884730276551768654323938259038305477519310844443750108320190056918722435564791227476007720754346879319914297369033813618208757804933718965824587123242229442201318659019369368391931334205178369684901269495508589850197540124714833617328710945236516296125763787644524843237843349627847028146804577192962930353567853418763673945474205512338372177882409936268197746363517010698404036533951177791001884187039877116816297234170938658663342018341601477396585912364363999070879575508132463828736161477745890919876650580513376930107933119137457949700031571223095527608428479419334456957126407478056209129653753051465603068999315838402914435605297750305194472477676571034121216355536076168159316512864467357239997865826458528793607495733016473702965021336028238774499350262621682340038275977764337966527487566786243501761072205707361914330773178675243555550331723736591003971405164010203283077967632965828555051287551741504650011586421526589761907845284176396580990813309610827875879445488998205284863216329741397302047587019037518737021886851294255499771207175765911024272302105065065516597234079119153992880673564257550585011663307758887599600754433937204404799458455759535322870415064725270748031660318506460789666295615160232817127362222277783613584542945086470244696980997915159464797164828712741854544871933619770884363336865836668646856172855648348274415666932808086854481639525112175118541335889358286705200212863705371603145816835237817911670283363746836773028302586225062181785377257594726792523685128454719115600867719386241222153405618643989827248279396764134686545484876164996268768531796723079423475460777176551249744710669289523965118568567733238191413945027650455657408707439864691714302485456863481413299844423744719408043985233324317094366732574323626130066466920934300675832617947279671262635986797529414626563898709006282025066622353608850300577337282407302170104714158415599637205197327210874749308983273868600186565918467016972681931415358486680902301251775483352958118304925017739015583428953689464996816783219408184243516093732630989995536260580536285566610453749755321780542288027437924580081439976705752098120576802473145759751529627888330569575029544295992418418455574423620047586990976055331250184822820516895198098023428076630703595881762485094473583172076094497694391501728382732471758529240201604943017223253590326128698453047569459110954628259143426612348659156901525937789703752295272364394467346740193620504313579203548290930734047322188489867619408389648885991308641521517133810083926360006685565292120830068823363489759485292805352297094657292856700676042004016315439934003749289832116300030596898471454873159904036025980422727932366399996309293759796885294152966723276645736213913678745692921140273742743173692397050043290629893919908275418339910636070695486439416250229040668727527372328612449487782483131747171660980844516177802961248927703008061562195520005755277009834817110740038892800426145298790127018257914184923876788778330839038179243755610869497891379123758438323460678049575484071351508812241326444930671184858857773737535891070510123677987073504512072024195457919645975645047583054898282769828808274889553719723515681343694997632452225110049091651310301474667920795506543453181244790572106108615331799462215739181040235386448464536964263774557269777292336117861115410449753633105303819425682693453965452290882302393146063425162640715126919200460538627028873761787326180612730835100336920950853293469855284775504672541958810980805614015466920380308751476453312738968588598017115754110525447925425466011343430471158640885843038565841723052695858856615732162916741467025389886933297207150401184937918085523995898122261981600142515744840822663351339836606322222500473773156330677283128908279511942360318529193101418524872033584438515064625607610515253558245292622751542804466121720746011437169849643558121404269045804485997772553012764121096684361328580011688556857167949351270688554117084215308318190728310150085618132506569841435487131156107667787466950136924984572905060609104894145833094215463163455479691901694249532060918334251636938737326790406573315047543620004157261381291682066727630996203603814043593825297488173442428573816334563078486638798992969400245444108719914674299280101044467816690806320333536400413333733447945109859035185235601525894916044991929676161013403259657599631203731589605017773972679334770957205572215122451427170974890667990818076115798065303228082620924861235111842424143257535679547104706749371490476989970512454120981404276393648726148342316421373678199412435455564961473801127141453291095133749302136656416536678093881928466421278237359052803744974346703252656503108304664346338052977145640197510631836678149982472426138428229658559934684484552574319115106846110257303936534557037081168548677200192084796556431442903201629240192678527612985073520608222528394566223311981715900542185828311269499238467649209025781162063420167530974817190829584460132387323803354045659245602051137239238514064500998608887631894646354367055534000629593592052536718963394063723673596475120254597646485394707279916426792551144752130409782337180888791773995570346686170285628025869193197586311598569689011963383625657549636014195827100839808210276640346366779914835169760234589903614929306503604834185317172684073327591215832511311108616346980153205639683757514724384680301638034252431832255321495463913597111168301920883084275754914890563212748477178320173395191669334715540589345835821678422125838993005705700124198059658347750595587445508242163647613939076479715868387838289880007066149148612782050545570218649024697080541413095298885744156492802476370005849103153367945892313896166887724029635505139251009028816567171206402019804211669191518895144458502921320149541374676828084403415663360273784492325313181691059854762962853453353168709800224321157621687281731314188086986302807838693145076638794173324868526025700013969011957224331593869256262094188560291487228767803477018108512204410103941229117877302180526535502850431129961321977116227709287686980388446437816403871508222593089819767288475928692456924365364414619521452089743804689825335011416099620570987424760883226333416328609175554959377569122865567570246572335508570069305429577257512867869576878106853507833514132115312135638274699505747743854730417667239688226657963980374132720996900292585765058379975173940722076676460156819427340051559389286231825837530333968298381672286563451367452954974742816969462716898791774248591392751284598914663537806699463303725800549445421012262010794174001067892495883788505440459084560409715360993203462946046456901938045574116855583869878144824852934008704800351548744933392538009740062716539073389259140772701478528829327842099913605208951962021220775008819853772312647498303246222616960767437932080845944573671597627941723718732611244147021654934261146586860313684319023788758431347114024416925728891221221421382278778895653344565885354358725437149492089592819532253280216627195452122272632548259817389586517936284849429965069465366167758816689413101232873623747127187903032194583974080990432367107127305623130618081470811488697392639097261770813511635424354916313121033082841537634697968655867642476473399616276634613243369789866904744973296360718537571365430394812015898492476831958907463734449923325601813211487215232717556882780270274203814101849215242088532682257472314508021671686432269393073434212393566415906340269461636160496872861964982822183147709127082096210072737796436398435883418170188182834650858237914245013348566641790358801702058571243635885082895281640362508389685903144272125855414987204136114993049527280129193712574074795874946554587793465861431219784641849642276396396040529043650568300225389305785969181456861312542910556862241798579046036382049656390132993829332231399063976693316793616737456401000100385174213698378880559457645356206743107101667938818238354193908174494702917307109990767994044511994658868424488993056959791483513713435715355227965646676789082194245931727178712709032324067695541590501012354399908036576525682342250277758752460395366214379916324174662201154443452922244050726785942457052327616194970665135720426483296531782104079296996176373453310230318517753353145159671810918455440932533571940227961215564045383962163899632567774595741883971031346343571393498037895557124772349795830165615291032258588768498181799768570372521880385546428925498478101568949563557400080260406490787921141840289533940034106472009002530948014889139838373786848330182086352625241831340584762343922812029300364208948552800789350433115512925683483996191213158279970467552061053366177439493345199081567862876223135782291854610825726636931329660368833678395179126322827332740528820164598190637265608489898763895712551805466366599026112299271537269461323176802552754693426600346877048188730038373422090826167605855126211332559329683720609649166546557873982180273533591095567650175856506978231895357908031011850265750678399712396195351114738464686536962924277001419680755811866095444111167984841468980592284093103035375005996855763397280169199818635720516202636125093402625823446553882708146729034071801725815061726043658524605941335313974071700569644049251388891639384855710520696848734515715630710090957026775937364237641222393734243645490473235933646928988893780083413738652421414439848126186806057234654592543196543583167131987491336687853836843061507862048718381831225441891340227302366284977015782139982130920702064057690112599726486965198724040617614349989718145180543669138387446853276061812712457011863227302033248839974125170641500787781200276692075950469256929343412589031087897937347174813122937836595611648423573531331395206534849007767966108328132931871698666735376881107172741324235972356019644529624350303588625810584097538180476295288267235214720401963746040666697484022627783183234349106571214759237334318024995498389482646589000289770405774305564669400265257072737310902060808149012076960427233849787874193239902587176460469186487372341087521045584072413063132206527486492169821871985250224840576125593639019887829557376216046575114766081113040498804931674551384449501143554032820090865129477892564387370623359243776356529774165826263888663103125154923194080674442111230573076410606510218091973884849496648782940319425692374187129840513498546087375098592349904416336960451609236255290959952482886858019444630207495702163067283310196595246577133512137141815118196562838560409354690309639263822009668862435384352494105680792408508334149052196038865038359055294195367899864748061553045634178275059729854209177511416652152568494101856542636923076593437355414145448737045712536030332618633806022271330631274191804157545450950916467714232288207675387674658811848444257993029722136463350298092594550422417627814023208310691852664331295394670303414303033263709075814210360824228579637312430282900573864062606788655225833342496978791718772443519133163945661921986022404480013847643794262009269587352160515886491211788270085063512230016554733305969120819541846649899053094777284846154782828744583271458565718856248416209345459265930613721330487937550754799545713602931795144012038413629875698522647879169791467286674859613829115700131654266668208995917116373488753353284487136472960483342654338159367094886854198292808071173955670364369367020260662441991324640343545164615628422447166678498294870577284692628157646804610120365078311485369725317475423608131077854914591757456567809057876649005712721657490575767756423498278558908341042787011378215632253894866568402153655855105350380929590041983319429468465998810048827085772599807569463915446459867804870423226909695036861342289985116191837074448757291031654719049676686384249008946421143947946723517348833370546181860255959163536680360372973594271124074061261047526859346678597908456765632195493935105440653519447495733976163144006539286622272626520758041379538863207177375552045481172530309416997313586810745515518608117881460892482987885523547495849031604615667321610498395328001484340021011203473556659495376402293833625787173148961228869958666605731633345284888882476144242155803475949076398927577353109399906227950427434139652570663599563872575560469123351083059307829810537700920744542453344897928353858093737441677816104810001357630996482618893852457083972813460979497829639456826646452448377841695814523710471355817569293510301743403284944190116900443389117084121213090184818709374301377264619491853614341433993191569091095625880801693903502935248467680782153474284598191407331205178130922314592853076458581902315918584816982121680614129003130041511220546095502957934705528812178831549430204107513618819985929447186311101302536130539321686094901057137236205087719298498469899340883728110580869953331678468472405500420710912223654810690174164605699371074130575078843525893854130531241272938318217698222914480341027700394806644522666707395827578048016608176924900371720778473359342781699029119796686008638578948082685441120335123907935210163948058368147809535623621416038293955815712536511595160379769872947638577624053416349743404578399071380751623728230369867200568596323246250837258294193870738518805100090225208432685189931260739268907802268568051803784238709743520356938950270936409473374623499821592415204347688123924991740983626115945215970789968555387625373995141847611778836551403018143468818483679507743498325435038763430747508592014771701720135924599208455043690282023202897622399865711372582548807574936954050491222470376244853055129521292324685185060562642166085768635532918009014346301817791769757330446852221987291787611148165783416546295030327128999632369109349416376765805554523423665314810023779088693439826214493614448434454443361705442835917126455411966713101521553076481525059518912440000634099984644591030565849618173820174249625309634343254634487898677749795143192301404161686195929441126229538390652051664761773621725297450286782119462720249402627676761893142556989741275949702611851506105850592797488665797058355950500193947837997728777996556334345975118607529080898665631891251541015504422758495791858642556113056738154397663479475551366616021801801099472966424353088281786315289327876796960539788733570287091999127086044330700897425929913017005832700979229718355250285967010675054360207195149751631151342468206882584604177420572869720659300892380492897251856588720263532832595733878908031461667305814787358240619514374235872261979319927677907741523342913565721770277763084141959447706960597394421835582772987052555789952422651017891478330417903421457101505771145727704465457570226627315839738467938170490246081039653305644709083885944956622198131852509939034865332405150380151289229606068184073335298581644519645158335777335863876511584802497799936474797267696336721292461043123779584233930925269872936954693170987008202986147306376406412279004724330478725079648238950812875713908833038969086518870421064040149915877388264600224662612006954684844510157624827498111515909779152921222846619232126799467408188524229700430937800877825551676781093716873266065345119570888560893885510068704213178216425415443575580292513613799331549219818746565300703627585221293298008356576726999189506072055679936538845117021125682887559898995484987960392943257635057043062424668058361536050201346986393432762069445641570703073860517747159571179117663141407923789739011818805877267136382722777920894531104869819981490070355849070236566728111043721203025426007776877884960169357218526097427360934552491131037108159801258025705316523449291389982149094153417248691712702971161059781372250484222020077660189815608296622707704631804844866916024919669217117443254466854550239624804964787323893758594010176111416651032322316165046285581589683778565473832800110933774265675887044337676692552903757966664466013436207088321098217065531994545647431167129719711541304402826711694528344995734743902676383282452182463422331883877779910982665411869874942198208736721371885133647045041426035072721638698953406032562445252460769556532697231781133938251758110720447795963146925644059875994187716372941708055695190930715885588687275569889841885612460458055107661103829531751371962244851149233069849624459090296979441004810787665138404209176305107143916756343159244350488932477733746026294952917234306587469239026516282495685473153729817282419150471685289009956510200229738174876824362913749535558646230535640704333593862210329021619593984336388039259144703281001773489044186633671370696988049367543750576243545816197113383415538310407943459070499146815276963709201203986282030411801473054321709155863539763164123515809957044845666293518501941232445760802956633266431352354389059917431531736411513962200171961215142579390512297609522650263709645700497821196752446441221611045976116660675541105534387957933624186211174734239766619909758859786472273954294249812647066746094641532144422969030442837444649530515893494986362998769876695634541875438460144317651823276073179948941877547574404963161447450572484021323251948231499084857004393493411991040472167264789670481473393434736348218211785268511097688934361226765996381270423418446628950811001892868116870267892035235735473747372492653351807118520158585476832928605799842057951203834024869202830611688251247738915124920384188327468457114824014146859709750980397951896272667134441428394887524973315861769979734077917979657427586775944948033504459234904260914068756817047891337711711531895998141918671251483927995136496791056687363072136623207314848548268878671512586928992214241906108000373992569915676578329252808612238408649727776754031876435468857120359024246655173097271994281130395787487882663555038432783977123862239399957650589658424352979995497110116185199533107014839188493662966894951295997412214398115643241270444517011548591839387280464455993987363336768611843099069660567973482262350269551064145484704393186062494843538489540074421713172022993649228816050529671198261572098147430263500169995537552374972710224806375550049754545362729869444747497663153893073671746753127477994062247520894462264206009401329753552453729780699515743355366026300704420064966680878590142572448906744447355048629220854221326233522587604654708401219183319089289959282002164770541999076752951851888883882506297382982549550351666179512914295655673079930576035558393210478741478098654609390800282220234666492158063639483221606940742540726241925657604090911510006799527905913987327132790342807685749556979223112891949385550247857259458849065351225648933684880947727279982558957007009756764886899459341340822791569654490591015724373679903537253643518694722795118956984410272618421173324464006965410837047166614288976258597523227220901722887604323420401556492915440599648529779918049964303265533641160779470339724071934346707291001949525520106240240272103784290725897964231222750229681475433420295144722739724594194660118522309448010561173050159080639215102415021412701995607619269582844514408051517894821170373002415286097117341433267351490678089020745786094709402802719268604463155625087181798658188716322858439038647070896052430399835969116073343179726754914002149884100315100123536771242355468938649809923094919482092547469332859269531603107408232171643548363815001718901356098905233008428525584595713717364562625287319702106082248461369395113024874843448351682752141883028170865038418815087615614182869422369018645564866394460073794436741063184821549233115424159980469554703281442266138833325694024552892173935340855178449462355412015209576062283622499031486129095073303851438095369036686390204834389061866340924027211591957271273878824332974689950144464735646706317575152694647044373054177195255339848903836333641983903416947023236892351887386402390410886292880540972759498305046730705757173146746491174386936575222076981267619379280096401054128487463019279906343523518269340307907045279841590432373911276186771615537297236590995752433822709127859342743905583195052966728344797058153021979219807733454548988502050499391845967014497503509193827138290619171379441301982808930804339325322406300728888655441271676806575314188707882599526998186931678534244302419973243821517024980714847105236626121576252651338172166851288531498624515040361683469229470238892600497403705408382319238755156971077194817754441859967250225239537927110271216634697881272385994171241399536580835728297079422215102365528303492095586415779456220340868396149530561218540891445329622060793666835425745427726094512496988606810523643910093099583533905982623663712875367001235612055636793415465763530362408840882636572792356150077757152287550694443783330806759208268274261512869712769734857058106865009389990072235756087236514554036948721461331836949123823656236203281449729429254609298829234272964864098756977136843536598546488845510893071192994593183135721483652091267700022577027846829253170997589890726374500862335306855131638301784834852999736426481209923862368326367335862420542924661851940451219993731268872056661741499017044014242803761843034385902510854028169688728725937030497681343570623206741750347959847662455859103586238813509179722320253273920957791482331215142436206414723222919765701315804161039485526940289742971841799106097005878433550242150652457712067262558077849269232273911541149154188510730794819193601448855479321985878026492433211324265247097223824627470815090825771569921215328413725331030087318057800776887198833175807035586442425968307714880015269080627360912131915046210428128038865713121009305963316896439417729972849227208838449930962397708820502948850098279954553853827716581309039763036670469253104664262435040287282471340157999421332779044121116248560352345103496212907295546540268644551814228212563655418770983361095573580150375397676558512943924993402936374371966223532077926991685996719314384717354911423417702529537639383536569879931431217944409287309204395611033520954450166673949257959617643975790725344613399882825722287384731959032726883496915297681508439162312780059364506253665352722177186568105747191130598160062620785590847731059851957574999892245453552566663859056754568094873201195228951255621718135030576648402830774841981596615954898796730145197030534411155582685815392365489587437195212213588480751034708540521692263632965573118088056766934910120237355629623758196134919262340426077398522915864713981000215141405457574158277619248997586133433869750326976556173885708753345771636133296774629255286106833038901609965872358499050017839368019443014092479986017778931774344938537229353911235641644357938472051304856346101195313895574849329776996318206251124086272604490432979126549577784418449372157198633639868802084729869730506084504308118018104686375177964139204423578683099618133970836215333440624676462414162780548128305860877192472650002268007736279825587850955349773093993244512516727936049141585881768497071637171841126384558063324284584773384982868530582566077268107337257630265571632418965853878382894402078089069699359811143568383975360977676470130337731068342178187113596973993327231100853527846929396850455982586761246315266308805838712061222577099916196378188433523620508199800305598047666809940378995545503334746409734362101326366376635881290876101211671131073123650396457961056682433891542160053002410773956713019482629411046017718403604504282736374125393398361230318487485496462414607752217077270622873017949656277928249384839796147114805123353669201443194190741181870111467485634864571628552006144620374177760835970170625074440222809531055598807939558604824960272975838496809300579632912936177436445565571377584166968880444699918083513836336738821850736555361346146602785904247562138465239798761399604026464341753498802741018825085266686063233945578575953587082157248162840871204764036526619795869955483967183996723474002579008232756582440836300412194405083888129944332327857164987908275718563088380651877382710639449774858395871502783092709492935834429209361351823363500495052531755953926151420620552635370820523143071733286560561728653210309227420812446343525956260638583231239411722749225047328167937318776151602735151229795812960499460970473762295721679750368697846177609828334882338678186915712080051169979099990921493259108841435948912474471930249749250182874169886857054805633476973522061879408682116453728732279190594211004347041562594736767447648643748884997946435740716035562339182716303651677645240668696503876953357220673340404471391178811769343477463775596324482460318670045406676623351739003932663616418740567735282354334828874498739449568586316081166853841594296567869166713886090082250429245727601949514585729151153644596566213049588637907290497426436075279726398547303214041937346636164128849915688962903817046078739047275116994158951955673361802317736689515300495196798682745992149929714696081973636796845310342446348774673998672525877571413616384043233461043185904885522639793237322166568116143897920966949112602907066090883308353641770917510096065468054229914214534369917684043836688737377371487755865279721325155944230555035270705695663059880618023101085418450347288400250204557424874930026515044523570448315128237174002281849566638026361927193988735950782163256247190417479437817570033110750086929157683939092970107623239075993094276811923109203427589422197054664115999644533906593568948645737291924666119782688941164259234174271312368937209574867309217621618669518048052462689410293850337954761454953724954972532816419511647500308956598763867119902463153913414848661005807602608093033370406910632200102091106685114412733375684152678103287282608390195900741487643695184077272591100618161347978187046138759029941621054072793803427620839422005943218575556288331421728381394707174274737219118828496929478335653029906020968733827976944469028943136335452830880451950272440371610459470260123125911701699042437466838757133805081440677904452083671513916171929597279703079646667176586806605424781185074239683640492250823624660876873805909633082499895156733011283983722499668509672314117033025416418686865681037566105391615611635841319734319256053332422995663331316249619347133042771445601932236797433239389832171496432551818262449938036656471091161973774866715862914146002631186029676964018042448010796389550645265308696853067525881102138346787850346180478055997804197427128869731006014609785246477877719331658125961331960585593784929587910544341362103716280081263137301827959587190548787257489372712520543809491166319041878472545118213876768282793089420338032227855759737474742694993608757485093010691574643571005582005997165020038435935659670186518522174035398686497366699756200212236189293210719892077711110613599241335553465029337797812728608679745272310375007805393035824751122299500034628471516750870278436396880502226069982324176027579598805785851728291894201719473414662028851160885661583407893943672089237198960414280457636160387615171720364730216140024729540922721934168947734215951978439325926889619325743717957169651293142507526684369680223433328917461244418502110714542504397783993253750363601948830026171943406483349279635921212614219200353601878708449130258188643143047263875991656068281599769171085883897271706926100217446362015565268248372712787346863023924565081465943888688309656734964618246987470895591058834772518733829276629382195210285893371901306434702725751870202048481136822732260254267162670001049726389498926275925312773327491825745311729609201605834976031168685311360912715745354913279600127566505364429289760227315874532492497112746827270868050958740133842787755579566025357110804834720059142306473305248626336566034065386817021180597113099563515406674382371747360438402121195699162329574970278107677853365005353847290207886081630141970865851319258872670533020758666819754998420762748204194340523387160090694648730363739172249246822399811947827260176725386704390004608875193953429810030909153768587438413051876904027083312399719480984936004833168633695500186121741324071210695533002017427444526600863880779984440467047393637540012811913271977803814671155327193305784921149045116728225732160052172016822681879489804336105477894580517755408386386832056811663184314226564056689761239593870808652780977741708626914083583039702597749888910108311913953844750549206770356091517745010546427939273162666258328614894911701262631202275548955228230573474110948762664829874511656558570122019246560315400975971750382074749737339293224355326445070116596839135804108761948621566867419806160554834102961339947839016905818642567429862874379489193358445791656654245335276169486524877195654395293135278080651552654700476649292482442600586035011978708826728525442324796754501832155509800711064077465772943588185949273992747232807869046251412536358441985991179794661708588307916275651774252236478571698401042578365538030282412914367831639951211699219141090022475290570947387903646536061599167307831161519379830459930654567596903099868659713650044476014587711740332756831469642321789292384972331096235652154408745137020336298411566323337282401964083523446718801197507707135910390000357527575177838495198752524869347522722128755534532980916687149523941837792272188352707235895997683514783608571511572908003601890430993246240440826654202509826367063655444201271032380136763274407423564020065109831222383437964029215903577917463641776206497737894632856506566404678022523152311819167114861868104485577495775469610367869536333652657771672867004244651543649916444764563085947405592609140209120050133926504886014150738391564878112722053431687883564146025037886334328486667829743130526310786002072900343641353107551689282278543752035378392744463894461656042399210483387011025055754717616956493715469399258236954926380229072043844382677199518951998571021552327021184323656734300121202990817172813044251972171490841803675220591022653103093782355075842817802811904401318786007337417839196755919238598950073008752113355061055171236421098459598101928676706812254288472496986972918463081008185172589227047553102744720182329798562652839839317195706882665706189555236064889578327172544521672995478872088464064479572135598465407497006753768553543691976558604571468184728934751496000303129550721235569169604118171856066036011242400936999269056880325816715442188084149318154533359876321741255735321951949906570985710393625567566489909018004016275697080429890322448208106077612264525187884111256415509375143435539697546928824607301040731499614378219830390489010187091970727540208247775662572344758474281198550029626812360787595570995702911592708334122720560755018407636956701063765917149887791913805648301274983504047219315503246001820430609422610142375282035230346325862788293072718998723020044282751655150653502742393164406700879641027731161179912711608556720959855282325581702299343267667053706213950427733054610324186582123692992383385331348219664934883604303675990153045773867567327731992350567853688392855783225638945908927491913898781443244453803315465551506118006736047958241122416656877322893837020609611716049407710168266705396991146774298756156217686592940743803371450601230910819244719042571345946556032211574571965094007649603720301972107407617345253352191883303759093743993514296698441380573764885046769200156401102589463413749166138105310293650065874926767538682154679105602600217697087798118588083963775484223270763147669070796702189591844709331266551890736063564685980318661999749501937251088854219024640313901599122855616760279389782152965696479313879739712508834241351274052238112392670758141773957199848565861867116800310709869841030996879370075047925757100152839248998298593808127883742449489465246015278574008794304027948764910678155612158283045588176201552656964228595932235739951366449324931641409387682280263364135960327095017813210634586879023543308636494650611055857428733245975453232138064712243335301239118071729963847453748845455930361022184108671081862262037368809864812432499220869049539166257613135488626930697821522172561340595734661418910464298483369969315082383077193492301810781165551786614181928329762042274761928122431163320261276468802792735648045029602875279664214139100569414676836556215347172007364478813654089816507604001357626516153692338341670609426406374683876587620713715831316867711630462144776093917664779026576571014078988115530108696935228321637230671877404319037277260137474815274328486647764596730096789421650732880312381668408069949662028996135424551127124421763797975298826360514783254143063940400318313016763277298074444935192764400830804304640258383038620396076149664450471823740478784505570507185009585197889384736819162883504537654978678998145371384727508042675500323372968793427252938444165628679476235289992809621796997181255071935310240080103618903353047462003622240858301963476714274050057125432653949357014246461034076770197098579397079591819344986353439018884863505881304723804808485361841121483564592722738356237375682481977389571443228488622474725786535903522675187999031658607352238286918456743246334293438550108460007281223514863827720450285789366750746568272707774217310392731742511008793452325284722639468602093142207384586749969178037121924544722103701523195078779719323409774397788876060720379873122543378564425377449773920984932353034524572019450172737733773309412993075823719117413928629968893711011582135601274305864755074293171473646005710395744350734307981014027868068066087564185816121672205536146335779850379612374795542577504369160933731416369186021743400939470365726717794751056586904399116512326617643819133464303564308700920946627140121514575717554026809154511058327194691707860614204835290202702716888315427173505220753032674300886029277421763271645624458943035461976570014787343304395492126889117727212618513665370679599738413746719156707281024442274255281787530995038391887559225413321141509197094327809772437575341075572396849390685142642422226499020793632218455532504622648819491577768450511373087650750338488123863015943705385479181989153184051717993416756261838598753890526983657894611055716968803320670257036942735527477593247622555956766232343277292043125063227090162148119684765502886348795424983120604985968668999025952451417002669010599561383797995318037414654802204421011480439607889870818813507763902737539253638998280970647474963020721907378031660792057347441818640275476870107906524355525499685551444833325390801141793823482848873205526288285025154765695231813178933528506170199039114053942852846423391535368991795660294861161589102586768368876494105372084540084465669196200026580899577820461208345663688312795908830430270388074009657419662478572713384298049499382081643054130117071508600248888568564547352188620212976424104033086726170052583636979392039110109262194732010437020767832906714657659942462272441944117846792091224658033340629294493118976682521681506613790420099252759327297029654100744843242641309342573107458764918315020600921295949674516939872289656861455553432846182423960011540839471381367210752743856266537814345326233388049568709531265683455340825826875175314950624013693095539874723944379646797511179109161929124394930712891273037200570372144666197781136606061262967262552785867589562468236833787837392575890005663083487442723391106163837974666948776756814692977185234832362478705013404566369962233243507619277335017708809095375066233734350016323689985943793601846963282241577612351886631827564341441893787602992179990891687170890469748116594951559949472281631989146739334508353852034872771924715316341374764391029282620743054045682219306786710467425982788434845356527436635299810614788509263817454147516015643157913192286019380660841516762833368030083374896500223142762051551261356593959129368879980733342066023352844839377506776474857637122787452950536874374916615632721755149602604258207213867317524941105150697852679011783463763557880262938591967974921929285319526229052245693931454689257601522870082250459615106762995953472960043163680486053242237243968618227801329947832701747376374005685256819569016743812017352465387436033529671203393499493689886595657149889711017542838444321995559849098659407339366166360110943952219395458374241862777258458830408023703633221306196655694043605453839104132414974174608565508288317552262860868456790058111010058864398632567503386061395433934629249010580185151837287306020267967234294031197599778994494584969848075246778928920999767467914686323583012919114336637916542520663665452034976654713197984948215159509428487045326341165884426178203938741129135964467423967203019473719007581247071398882158277986709040165407273002877463881383621563419688014901302499234638014309282440925410746972097907317942267411511396258805774854500973406844762826454836263295823216674929514366062422211334463788269983756330785706598063388772986006994416271929722129571247159353816598161563779423357672225911408486060943770916981553668400820069928908147280682368113453787774783159523551188071413498057815174842536370820974420174432235102374641916732985553639567413119241365542946331940229387444798931205925560550658467970732141365943769624034927444561346010111007238836104836550603875419904247158837113208690095406542120896176436821011717866602005227997259375347204939781969450472532019855371703864737143511618598426851395325640166920566117504160778443910397485226800556776110258661911650009305603515017803780882447287925342729643951576975393247443767934148818901739717444452277214113593590797210335338087691162691373454313350465516908892453085408660038075466016502116128787624780918193115490739790957059262752688264016529631976184246732924191639108661303140964961395648509376630337436427417139286654812025668544565016362277854027730761105772252102224693744500324327934263091894914611166949873032954450194044835368901803209483851403268305502802137982647914357372446223771824939265272548859622299749291781371276518444811761370712420538763436459314330146699656123105989894488517251599280640859313263676891448442836125250817253046464314584122934397987927321509301887602581950313846235774561024302165506060549607200309106328279343584546643623962322598393377054494648346384232711601699684604517427017421957365538793481523574627583549943059542922208836785109829999738106017085924258429947884317684446652800512625018742339453798450743631172644083111175399440198361154018159156696112463475496468438286852812234809816471112063404216193536317877029862847109697318418597523544235239915340920466029662879831885150855176418568174745422302708206566277575594468098717817704843431159437325799893921605131198321181222613827949504655169605426498396689180309669925589777087546257949573648741455648200122944830950548760064688530526680698430051874959853470681523582897964372728545488428400297546119221500240130822807058542993197499944949351866175944019586233933207786452292739440016797985911304715822575863877091245677365262698735590510478479806010806305457289678706842695573946833604324443214822368187074251050213105300083190777093643557330092428383484545877917285625421783407963063899650221576227086723850791110670774510388678623606976857051115384198828029957674893635982619946817025625405568993352049761077403472672512029493723692098685658572574900129489597850498211468772109421250075331267082918421444503652258268475940516588829238485573093729872848175904666250225284965014232772153401751320442419903733596575150930681766491465561531187589927998682938594400866327850487668240731453184923813892597068587230819374426797375394291817119224495916675305937208669774521791429452359873671744345658739226663258098698892816707715482919619357974378763456168484654305531450499035725499872837487866697902699215375745994047956567344155946867124867253317759558021239334868296574507766733878779208744476146206693140981627394714592021574480814652892370269373150050179601860320498404920775404475691995436070231582317330362427789570100489556760451231786005897474958199332497326589423750184543094452580130329760850084740501653250738876871466596724423795749856483805396268309623575602223144841457879312758322983304690405227700960871007846624943624522678812583709594542127791005573897526476218747454817339278260910074537589765065763757709876817670043820873197363242818549188701682351446370014489303062664789786133894729936540001928856852398001020320173276686190805020460897987663239205300943164299003675427874322580375291443692614437118572584010766979749792720721632055099052417681910354711252709559368260867427268259889275365311579777215322001763740700374303255735583085742010955808693454149417329950901151544202343732938931548847191430205372778649387423869887993178572136242528298777271799298479215348553911254954721364581059104623358171519665535386222493614252890230351213679163104888349217141168948511149932715716602169274164212333080820703325250438306647494262923838387643052242852811664148219927464667906435449989904947002673828123972845340332862652566487913595199353906651084133090022472487083171289224879788876015762217556279017374386052498164249778088649967826981024714999128448652616605128340721785175802738836138017855716966609512149618011834807812441700741856349362090060354251034745007902766912393314335875849711162868566708602609171075086202979507522594862053584007276660263086267082533581472135912020507064098870026375770512115145355051710976597925329297737348451681798649461727027705370054853412907072788009953123925205505934032841668308924395175167070421675930134512696613176596271042887096418860990016936028481995226518872933510689437973001531372145184279720995081069816837024416476601332949701011720337388104674489646452568131819409468762699140113255484967353494059073948355207232846028030690077582546187168516018721778246990748689271470698023846375126027565874802610152223016169820200588593046084166836458851829304087761308442973898489202253402485090238728206380747651160423710335621908294981831717258933215265076409417036898448534893911944466077775787840359303387811639102970477925400843685829612354124898518359079032219950559678675891220859222036827354038044456162719594425851374248335375456910204311036068807713295684941699485229915506075370371445041280524929274451553340808622434088510717646321572608505842058564751143911944830565902784429883506907080664910521826559716631653851030382342701769430078297992743256123720048255015173625071489676047253832645502799119956521531988037614391823234370014738804872449592986045274119434329366234459371768542840210722611340887987383073794104390854964746287936860950051306032084819045645362051656581646832310998689500420523923715935068838091358996939736622478445584469296590935275516846890288160839182016721112296653145106587991834464643689397651101318484416589988388457171720946780310931819185859094879936087301348710406028193132996105102629307094327522039735499758724375675768251330224620920235449044238218833093549637164248326367586646454477246775268000019354276900252095537110800931872133367442339626292641571287765205814266114400345535107819943402281497782942247626838208768676303155482603864831160989835660465104278111965326714277466592064456364062111508871882105810641053053237377277291367779532898062348900045043343706565093036621153603248962680129957351683184191869586725549570094037523347728585937616171715703387819154107408311297924477054207597475302626211011614338398985865923039594441359542676358038038874346318843868546557590443741047941927285567291058467373358958077921718653419983359321027514792455751660600075308360061078683554630919249871529312153881605074102285359375541265689807757779685777232336977044355657541927271538579960448489491046775762183045572282071365023590975778561891727121780667206046412473446256542910921358688558216484602315599447955596679885592500649024414732492960105835018634589101235876464287276369583477074623798136265123547037069903717220401615047554748784762190197681818566718186840493141730465597487371524384373703913856182904424802117731692915080266955226522607366660823178305630483907850632191367330294633841252396651655355440847785093631612013096100597797459487327354317729665332126705794770323872020089914990841349481858384863846887274098756662549196900051904569591284154516613883253105479445629218534122102974047960874112547400630670956171982817734713406931730168552484202896848182604266191772317943831198260554849832615128668873746494165898476799191132516660147725048448564455576667680971443156342897121584160898769116670996084505048699666150858341638466555363287503348915755313729229033227747564888403717146616142057343278887257182091753345155221322447705952749016837336316054677654100499105018489675272343937121569356528695508801410926979590953270119402908501315553916965723601682951563265068166600597993335541903128382637338066212725058201703349089605180306173497585528140052366909796388838446798938937174754907637862059162591595389305623014768341832503501263648819624386514533970673626458147053254851699236226599152539819861845941836214037892520810157935458919309666842606586851516684678441548262606738071728316529385498838344563772054239226467092021204401335699315385518719903298542331290231283690868109791998739563287113537307879760737658682067041648245206061352038949326826561984173722398972184390932377710884743265591925171404703904490990433393324978164056549015905800106387170066671393170053048412824725336024264513650221395279522021288095251542692986594598646036027898470388105320105495323061398172243699629515615442563394427757456181910224503429171283328122513757098437106511430153162157572435330817706937732554259757101961036595770569319038407380661439058144951373130641694782126416239783025940748931101601378493110162476702906364515262150946553784166010797844148688315751097776465219555538581991664915565487231359368658346965972308972699527200085635773802994774171385367220831232410481023523175190726648340023663723103963299220233590830660148020981840932950410553396246094022437957072275275272973212238570900391696389275072123465347096620193171456613968546591464199571378684078485203393110070589120914065441865544405421889980858418276796567991642750270264634677767581756788256193221131696563243014516674811810786870517198820975700613884522861315862899225256856086712224512520258914486360415226442290906598172247147888267628909086117589737802533822031435896893394333149970643669027598965045692025260339928359840118460574079161332121668652896212269448319601342227246082726265956532811199310876267540143471195552982221536794172490381704720085428425822650413905083058759809401418029322246620233669502337612294998880763481288714641181848791325515490651430252881838300919151007722893078443182958352057609045442158891248805409665273740817748668462566651724193686584033050993264305391735906233171843773585238457765591938299794111530262202873498692299141890071245906497006587099979970600616250184941672645752393389566237937119027223276220120582659746225441640299839172733032452640521837728510965827461040435913461079173831619858048661707453905642497838946276401909058916147831619978646311456419636439098955656940053239663239810255084883867207149475387980793146592700574264702490505060661005908433971269455739074919004121692675103371418778755379284110358801634555454723619268816855090297094167004252782150409864938005246287938152592697435053915339163272990018081139896228869838232064665406503549782211354075113236846663101670431084305831121257020518682298632572743376175861422360876189184594742660429811304720946898346354353188626072942385838112414023478544272743340312476510907182692603043312178639786986189744216723957923051469113570690002566291912475699715112126879223718114839589022125318697682110403088697201019566039267102396141621753418912959811335836384775038799135712570759172097522930255713951044876478176336908159350169134047576756027993517300447837867547902248013905917441462114094155795112481033231696530466399465729486207830695110679210980075713889753028616643617785656115449270303287185018947710993716900436619426831307428674082087709202071570002982383396883589275254088541761969837349934648112636113757139043444632895344266268248775004700377139311922566667158771931995920540385157732703828613436874962492367495735300830107737188785160387901298429454426487227474092553043248095848931542715480825270564491975517221987614467399939606815463082693082045762794996694125163503700215324019580709830237741028146247305683604546905642452934634485102029042789168963261514159769199939338052817761121603403510364307001247724508109487496111100864422979664451410378574234352265073227390166509351305881396669983377812175892497899265052654456428277095753602456270106046669959161608220614740480533583420206335852393283452279284379215015621544521448106044345780444857101269901894954914097794204655623432590687514684362992352381740584214319167028311991602485096581681551438260389013565092613829335340676455903099431792292598747069713174653831446229788243111242374773024851606688530838968391068334960827491086107736588031686155926897069962853075964419068207651287003732885178860300815150772460649804978193712167976753021788108990727230247428045448984563166050388573272094678213878430373603329711954776271060720834280076735135257264007465904912057027674045852979933600802740143770122274368378056629173979861630467094015686331178122442845557274030073978570510752136301612661722960099636119008800762308835560813473278645723235074863557855334910139651946000848285126672878420911518439323996469003651766690511604099612055307540861237917012152007852524310278774519353338823633345166126746903002780848320801831164805715309584388630095408970011426764287056039900743897047761251377515646122696515912218014446255412474726395662746736753744275411638448199485052952615335753795415785607096875086854616621172819565043136979458850669734604056132819962715673793801196276324738278969440023056477335109078676136798729390828101435383912017613600358612011418749421984721529507063737929033170835785018669664230770588407307076462840467273390733717973427295146430214738928536784757919387754065764680085553070499683854971748252946199490298220395163300831840702372563283097744910353881310209025105806150598014070576147673160710215703307005877234611422731636696141467909939669175686273141592415606539821828784606828761538020993057920921519585669189505216580777601273302939875568297486567030905578843924078677791016529204276966912260484882746725184650934370766878913882464347987544100054827483783967803871689579530116183905965015858767304026399158696388848921966560675190401236991038073051233457620730623022601633745495362265214767405839000678597531414191939500245648755394483679355306700102604534193974950507621659917201206553705854853678723026024351927468673948907190596484188758199793035040028671196173067126147745212417355152852986277742895097639233434428061614532306596178353622101584596452259990164980497915481725856743740856824252625014178583587597906106388969805286518846920941312064613929364488090601495042131712926897769404210037429341951520228747648385064711964643709499509220139553828965693567660684507278352767825193863452457474213491188284336756387671685436945183910254316998341372253639873883987142862301892231477653535550243797938503164193818531626751110543079647276543855842942164034079811845853860797509511616526844339785725992865492256328639779262503479439991900034439100268422672673967662541449105520095816681471851577155610283407404676114486565685126558424083338165601410711950536676381670914678564096183698750932501011451941333784240411619418199091699924433220710783657460701798783398630074187005328142110638582219715685717824829989625533713129946884335528113145435760220006034227308051774409094996094528062142587927928113597924466509978646547483076161498103744559245796777425525932369060867119491626591510066106280397024042083833906165005273664448216069351146022557511829746041338763517913549496790226403873251968115333039851999171979107337933730402642222620244649282929568885501915362482202317610333670858827848799708646635878021389396687893669457007389822474682812751570948224362812933819869031879016236192771651133579654359956390799628530233939186091733704725028530340833470504878212431959072883754595795497109261568868042656863971705391100465544148046567990334998660124066269054506799804363735621307373692209817900642907657605024784062882547770123031248978021744534503520166216885003944873182561463624662323934742311684269138050042478854419459569034237917535421228030460100119248657755924318917165371737387386235313407550207507474962083398730218599418309787396888122202946889440764662621969239828146617085467998259907094270061132119005391041287541070869818210077169038058305284409438568052806472842510326597215703783605385172399041429721676874204079871080920088206297932796569248798631151583823153519200226150706848972405176082438134732562652122869160382119194992439887810218588116884796552492298482681569067100397660108088250725273698087399376681539997547087650369269686424392640836304012861693197622731028016774584382687397060138886016769131210170600023048159661654664335255683911017447320022827100346741825756274001884037417549106734128122109557523538984099127986841193921458964613310446342824415621790959165756953972724994813523366009985940032313493683969915942395023782511888690855027189252933331400659273390552013049997382604997532843795020940225614066878863385394759986342205572549405769464109041289785986368326578597139966624568534915168332637439879409913589643225689634058122853510983176307175799225259228520644713723493271170478811311435155781785995092902101651371280166924798586479941813110661627794147771772792186241799790653835903076280068085721289067265098740007688770657468554938655691828136262187576552386556014000812189104959420768762695248434498203267653821272107089905314391572251308353226152929481111255656140848674745382316372139879247325317268837639935204277481339806374508437545452167063123921411416389857329686279772092785528907640188969354347500040323860565240569659910439822976916384548294666124074624210106299499217529884363540958103549565207207625556239673603338469964266983733584251126658966661128388682868382290248816448844477256847987551211887317878130359377131231541126430278603627444632851548561802300873373225656957105141038974505898263262510979116988308925810916677608812162923930225117172900202773620343424419630946207187086436578739667406982410072490332874507256498997356019462294811510910266196578913235784428065602337635981951091670220052031737577060826308491496800993343192789192165618636674022803931680478043005046162214406601335187785045550380658906788645705534252753191431802212119518905955779334057977217992119772485304162622864206969186173877858805639955830343022781850467022157268014340043407863001318998380049225128983731539416834066273875023798298218104549277003221723103288741922201412626529362525095409888971089286634265023305062479817407801558454476047316695371731894073662623727624224806464470938851580487213209901812256274143295798246268531817172123591560278828715132951498371726434735838172284045859649877048171686443023274737043759344583909043984170867909816536017954669632496082510354049599395708103996046597171811904314817251904735282267134836617345928371160427899851810581750659352337522437941117905216528486601364690632825113444492244027630390773378400137614097951917314715985084717362517608253427138210841809768329076186193515705427053098642253267692811497003024315511571104690563877618230985825199100291501638194685018297678245416011170688529343868763691450817159272594377257433825560880745115897838508834917120066461010058290765886977803868147089892645685322454549049001687077701482142282117139965167804221831864925456935757056017370393151239219126769688491991007201552461129802758542182365132217463198343466305926256860008367256092950632204821870907689507525536599540364093664580846722071664528949913966616611728515824892060003455290435434731705543150706502855282862993610109425159821681455416996233092588706927052774701318988524470921547526209646092406510730218938208614261975552685257208179325231162046322868336083426345427736516535766897163440076593050951291533008048844415962039445972921622867247657118381139543892262726516921074566917162893203794830296761094771312317234431794038217059545749023959310617931365055481707154954545722900635029933711186753479419009286876693939495564910896090800519332065980442094512098610777654777266674684895220965889542048116943117198649540305131389409580430884831854616399972900983934548915300197503896659425363303970924226354684447381054221860989514366839150262444683247578745740806599973499636474803283845927104946109424203176744455006321440811945284899042872646179988849766460460540660254887537210880728011511625839820418760221779121961379264915856845479359222210149985286454363966809662064425207671027533936604341731922349008426548354097804439554149861287853075747435671901093270655026348452138138483873744539285229556705250154443180372086801874607759846877577566969832208341829347373789378977113450070746199840286809239862130648863669215463174774540173293698250835326263302873067610589986717591425147813971368684371908998066832494248031031222303774354461739516411618390305593857096640819511233579613453594788791068538030197046502199967083604116897817130882698209450033582639224424660103425672392497699393849730248837328734649287537118390454111465733594544383963037734974195903367222354804943724259652552459833208798491604201224546098661169219458291519152940651974812179527310147921527221727895766712161185405927019027089068877805887403604065304648678056992151142093609358611566753046299040120288623404341290387084851817952259924145601160253285237680344161084541374572675908883008293235509961682512231486095473789470246476830523289383350362735911983186716478828686236081328429142390806633639066821915501883122882383714871588174360406195640782547049260417392128435305196177948396701310755949506121305100513556952513927568993130689594066143449740678266515416294002093324574180820253293287374300917622704995624914636996487418397037781878232817117934432499144764250767950274246698577254504500620246663445636403256174229689259318956025359688760705464507354673334482679350082026201170382449554188449789654032026987255349040651294970705989739357529520647450330764699758856175450907645383584049578641330002948723283947434823640822891381854077057694266603883744601046490821696060951417892533235267548052064263420256449153077420525823421205128137575936912353883024352978495837691453673881042606998894607850689570507870163732178597123883539871505818252908237548217714459837838204293291030706110264449300331788219339627591824981980908171430334505073000599054525794069644039505253048079247120811146692013487032152710448714552022989357382669747865618094258822211192240588761403834951979649663281565032309985681303200667769081768225513389031263587709319700211884381436281816554918220103834478210768614748818772808025343752442929507086096038808568275500515851958771020044832326540281220882259342263034757064767850827951858481422951956604171053746997139494877736085137731937726889042838793440938805973032308393242924257788492841504902487177075758298055495009434687437344734543967736095672774412591908925133202676396736127129058882988556439945879047016439091873675524338441427925714109824632723702243124020483265709286830873178276724522318994357547829453446986395295053968480451383179342689500884166176477180122773100498057471753547291090951191533252333609461520194951149631084394909418594930191985829657102341228700642272914239875248018556240402486986681530311305791483720101831568299269502191310112019864793379203074169840763100612751927806302012636838053268180975886101840052118415700228027420755708626275510505833916574732693649542332146893844135916220879260754522718238032135795166370049735525131016484204739197478485883124963291185185473515426040483953313193170274284234076074807409868982207500923214371574287638837865871680540017867385785113921172598170018622611662542708100676652247910231533604298039699754787318929093412781619930172163087293254153600476561523607188191093001913268067243092750567694802537727902392999242858709321366606401194578083842202350003301383697707076842252358648218514534741664256184796898980688242894221269610945021820022235233098441638372612958116425202200316108853620838359068301527526537171841172031843706669965700862273685519707116564501739875148200426880565939968024729014123286023733332048916210307861661425579286841584521431670919736463006915155133228000194991291032691005021193937261702918140577367454514560467869237956222918387734950595620761356937832162624884135357318334627112374699695236963635383578272324851408299729572113970191554371793940573208958367731552135671798720020964708153641141783673713585047679162736148129313500827297427220280774560865572923728827362080071555060634473257187137982743834177568334404799068846126890566378041487728091305677321837238200231160154503909968293940736058512336468244475955110790531847575737932200552140615671820192520981434939788230547514053324781324569297065488505300865745834121424320099106733414040964048627947111299913349269099017893379081821883997398548927122105387282452407054970799406366191383507404383803600242207408289388011377346263752679754900173083458543666513751854037954379653617642887664529025885733930451047740860932729140848063052905234425898376592605557439681600190267678187980118824914971084625735225982929398075592103071589971082678599132569729676789378073916300945962405683616985223372343495102555143730240294894867987329905919446949885928722199548890439578643649892418892407411127553783760630452576163174592359512739195655242534177249873196459336987096595591772900566985940985959591336409682284309803748553748139974722410299561669993865183754184588056753747720658367955159840471634008188609962992754197268475054178991782278928830727969345160396075315145200153276146858271915355608151593268649291702676967016041495743066003287837626277988949801846216761252488639027262398756319910737007494987958380612752133105254027342286785033304170170273695435410220864310593371152028952465008163548721018991642405375604097836302221945973505996569270449809607402923856773228766917846749054706034495395736103445451487858711637066336520621217635681288379933306250605144155067461848690033639900766546560239125797650533058851736179900147665573749450755166090315397229787942244913288942078980466462125226072249912900958435885485468463227420724183746568943912678513679061559197293776649511374915100334488999295160162773954544591013074256267476894975112350720640895736077109057806913138990551178573418587928931204990614803027075772535957270495446190761506456684995130202468392278308179345518494099067674534373479507111393673395267881810906319922354502338724515976237300931528957200046449108815757630984741311351616302741705534369201448262699924827404059172082421808799069548245056108771032622213059926445535533271493801421236375357514719751145906282956362002435971697899823525526009789015794329355011342788611712329613713391728601853107339521774668291304542440870334304922528664192403005844688005103771672202935603615978031614135365160970078091215309596346257135365771664150780096313381344130912838648308960864828816181154613328701701453504036355136437372235209282912410147897131329119983629558407808248650597576318216136955308374833859659919843199169951852286464419732254480154932452914902106433739307331122241788307404693293392422063449345870087858575129297875882011927970653757523620694484265784255736472428161692170436975564144638705270767657025442736367948776818427491688894529151480956429827540534369070469302387980797579818737972712640815774999437110581721412752229568147238829604525961637631436778627330507825531242426326712390444966910504015696196356258262498192340395511588021249840013448900785650977172188275109256799522070507165668671880942845018362552869204819117430634608263787889734999079511213597054508418067215192956083505091948527178923584172771828973439329657742398642205070562557528225559596288951225874696110059227290880503238109063027463789937254315594200648497597065128835187402967558643029312754800090463446123661467253458878559260282276890801863100192345700332305912513109391506789460340746929495317393229007615067285291931392411818018126716500105253967567533954726311718904705689649806772562897257130403496773386050731896378178665538670014550425208363682751806283383323748393331024868854890845998527814474429619037768889082185691948898232058086616888966402688094057484452757476802290733714696921072630541399942546145564068407859259714394134880199967163680302793985391326359502960407999608271319865943192534043828953637897068835812502136603117033955088932318802176171923576401177976059086868052745040770223632322799335649824932479679287432774225794980621507859475697208952911990541292891620694832351415535888541315387918078624368597546203062730877246362758075514771462281303041974113578290793312503361112026481170851477770012812884445851593864606960837856168177450325824975535148732283829473232183462706545237350344640293530382529957707353223631370269444238165193613354939657988056738685652380042251790328559001277048540287863114559717535433008882304731624284494070472344846497102277476939047449974826267252016095383602145623382303970117741584756725762060108803159688471633839120210815373415535086350000850321475428663214568452258969072104279475116435467882775897329749693269129745791165826921451500046741867785901283295016073611610625110587651840448464628667022151863364512502591690187160584616921126257671316576782780194279889981965783357959906336643389508630937651164332016054153217607787162360571087714397310550153229404323298685342875084324593805394489216829138076885816292678037089731600114979281686033768322664790478646911414717609417297531800156939697158418517105291350889803803164969508037032347958654897578447057519197069647390039167210690322455148915341521854358425917193603374265351757754804192948371615842242736563221408322380620452827416510994816577725624374296250894140620846948816901559903835126483058441203452366672700190688713515576949637292711594796834724965589574660287528670764387068720285089848457634887854005587733637292729136848326651123187570723476491531395742163207416418808365305548431608647004645001182454876578250438742735055179956845178390834770265958882974998387823512725869975755500521397364205064441816458341721897596438764561240732818645380919368046039366749305670616793342275336213776402239460739089537403797562836317868750160584301483820138987132861027610188189209935573807505786573077232950986339424039833266865746666498577673678802863059993235312994547059195743417831437129984120680868102499027165489950713369073923756190740434625613322894622581962252667757998075208522362024967626533730475724018580696462926701845416790974520356212314516078023518728450496068086099547395903447589912828631166829618832733434968829228508921947983196946416909926907174618077426404233466748723833240464231698525497067170659050155025713642133408456002314007234393503924180934365145725160614355294394802696001689216997528085215366646362013141932360324215742676779064270854869303681997183821982771982928336711071110739595161456970522461697617021710146030557405762466617501284268679885409555287252402204455402116867972158428813297650511199311501473554996754364831601414320104932985223585844993784036079018548294843142835861912703867363798705457066848685171582720474466189020235377850787167166357559412637623341692806470056779241766347692458704478750369982561161230467519103098623030119684785065443175660963681915514515459343050882511442311384009631471089991431832614129585666528632935679773660528229900483562375567111095849683411727036602138714416758332743722308169620446161952286261713025812937405484865342957698401258816936729788097243482402848734268660806233100446292437104182127252979595290134810801810199760281732418804998005435931759463210112102183428264781324922988700109626783067313459085042858564541623252169149484017907169495291890766954993833336753719558217306455285285721736431448034023164837778335457761149903569773941584244934028799229314342913360896504461746182773819996333318136097608518945897785108677597862111892603474549662141013337628523783934766249480767258645188947649329413818342693384814778010464752581634639183924392232009408546176571439896445094988437005514537968049445007859116662450366332931915477710390185078481775400137638917409333059015372001964942279722965533620409981616766018822401429213415859485594362681263943695873294809793503967567756667744002705222194206337406693742438476182601824437537450733447369216659116156638705778640477684480078345371650642767418073481421931722065078173886768550817483249798162822474705812740121803984535058415694999028633742054496103483923611364560995303925332547215955858522087228096490930959156444032593539958617012330840351023789284260294123099031386770822059474791657178478209461742374598907773643645050101843508764631243043446320593805354565366239134341726410477390730033154883346565689261170105783130401186616807834514386480980281404762910484873132253427280810695711479483672346683567708476908564049994042542859672470686753929988122027787454679652813067837953421376422246043506300720225839422680445994768776970889083811096024147530179947247479135851099397595923096181864893169786426092441085988899853740578709667596844571880394253220274658056478048737174652949521532659169241764401230724545047088012457345608681317743777988090181979224871279410218197429821973276197942855696555408960277854450162899718498747270290030073775224085402758997343806510953040335243906593502693331880019901077383033634162841448838185194196307218442432011178523093674448511376666548036158221970854865948683869328746428634481436122981516634583211109978999985266121622570576297328014748784281373189584676072875577391957044304787174503237228832003694074292609861025762574403466326416809696962193868331981281502313316494790303933451975187295987197810991943779880902103363658898377262910553365015878386421188811060880113597450723513095894495153211465847227522541405353880793369129874051437472378997837223461162635022877074960108966624353146423390826059378768917616845392174959110395186152237141847748553393855741089528938959663361948488353557606900428592825689802084675951883716584318473391574528565481352609612030673757254544529047119742972670748449583470802322946071984644902647393127783440640618584975375577744038560714280914899971114251462014313898712513590949456468332325099372143366252249834599513420833928222709472700351365155157711126386918708618372896797395316939482791353552444811267502278556970980984988829577672814556238596804277939973297241109573246075571407589705168001474728373309853844707059605933637550158000450240354574286029360215558886110112921379108660172403104648450784733713064522858471762156212437547670304016745293372327385983879934713455461673127936483296776475185584190372969278930619564261200609565196533527368324380128741160198525561596994610048281591790855347117643735798165802811200378191247425506682626498426748519744215735340522061390600236077758984786351118348549897544066136997411580441710194140501066100814952908989808970392610320018757637185003856637702865435640515385315995160313667516125237576668693049590710048302274978068183968172300368956530913310549218435084067967230976498699120496040630144455450269610261812584082997152421563276029324038336134966139912831581400199900521444241669820734834755057953062921596141869205011234810534850216917447370261932711385954681463828155833406254104122929870278774670956124529545970209409538935705512680620694617864354296792426158039955583249839923711438848818753285112220835827853495041762188620047136452298566886100947955405322560903543184447374068658563210435201643223900509877307485313201636393148630027031796195922691711193176400857238464145737824700319128627791836238105020796163601043654681002777603443091092266844838443121440723885476902016595439363090181913155164870882380318929111794150253360980327890196438498933408986325313010415217135102549170364952409880222549476476421340248725723276866392545877084230036781092381577737375946709949756462180945870552020216533765823376266826577961909064487811923240590684954289193202639621140036718368613436629127029079173451432355793115676855624627864686998005971471519013480517136082633162127979599381285860055330271185804839365742928023109988961525935923181011933028929069344147449228557597917260505010958481271788768258045206831443184403685089231030316019336253911032806434736312742777007386593822530112512077473326940460033035992212660579416253839293411420990603989606500998145501008195939578792440254829018864417389487187361177557231513657227950502406368146143959237398601058367071622928797587306084818413217470568505374999795345532886784118146855782372237396689438414191127569703312672644668724680582391802713369882610355380572220849410739093454685103296011244069966344354023481173505301435237726348054828059237059459632102959420323598435878799081657153763577907224137444464533659591812612180136796344595022811918870195743495056917219623981443520534943249708207360139704239920322161477540068198735816235542207735541614630863505346220064594496495918724924270658117738115193811379383801669627030398300076596389983837711765650249361433334556945609804243770895463313577693643736476416796928893964085123654714814984782628346117068702439997137332145864405254103549626851776568938498987591371838929641066675384034327843227465485045109518823227785633563139580773895782205907410591214680766309020702443015485942403893459264326998711347827185622386997588884815606773204346635821987876141186694011476842494071882746232872742733765365785486942028547696508251090442439490640454080426437492005239973428570006524368850720176242659207140032852037390020122224404519644539865175379272697821249255765526811419888254030848042435971066060143600941190975300172656543999026921818736862027006064633204301892844858700161108595758952987752531048566846525963941609094750552854933079637676961648577628997792591801328411793597072131907895813072518993487375863974020371199146692348089843997334920417760770926716318560456351454472781133131030623577900839953686763457408490113354215343170391267730814757821987666678257335713450771520397354527701445489955789317626597735364126554776967647065128867745861596535617242231856422289136625932773059937257447623343949710421354278070696927673112349068807546493428638142062879258376769023832295805447427738328305329013823837405645180694194999611051113563617049161142228640176271978441942626651562797000661561838725812568326543714309592178087244034550065626347428653810417659229951058048317805899483977244502723039112626789005265988827818729803601115841057509823062684411226596635766287174008850402808924278095688246156692451099128612953809039501213170920443224998146785718401852633128358714402967759280345142578063457780553547554785524110017583081712378648677912613162252993679642285188478690868414056407006302408398327716582917700816145482019964480592616100624543607138035565505637243918121393463399211120128646048536942210081857750331797655245061032083134276439499675855004606875553602768870460660250146044810804987626259176765408260977025789333305312992004436915324999279811157357886627441608722517207705182008588966881360324786532413736929165105561297473038026110775583419434782047664346500263059045444241228585394298216134912207974285277294042301926380953925057140043333323375814181836985046038452484797420690256810655190419351200607286975986460459453260101943083679430616014129986387398499794481685961200870966670732114448540664658239953187351210667331704993046568989859330965825470356248089272334534507348511964413787341836221711435291301154750701001012964034970061624708290722219115498530904240072855362013521907984911090538778739865766363787940422358968511058483884606191477588971688286871349638888119424943432662466355882968242785623874439172837362110145669799743261510011656247630822654664828879986456455005805577624671212501454531911721344286731926632430097645039911600724903839899168976869494865604631226227705556068221789397574629013345347646125918589918506814888600079005244927575341070888897802812411636403119406420883065863468408418587065204791880147853412893773555388964945678776288517638834168327943647809661158159170935104146618023296434067442176426411180514942164356662066366830034415846548638367786988059962505320321452518608542682038069754841742617753777249553115074759934772545750411515696488013578404030007737232430768648872384901676404567346549609728543242595451722126503402333880460091094889805670432201749087385004409207015525264840625047966695611166450752032094466264273565387343097559304382233210817356488560195297453877235701011666660631012687811187434675608164226276298246483515337868950742442404980440967585607319044215317727881164821627962034634852542196519590806793063590771078723957802973746058046812031503566499426469116219233549565457705608445522989024140550010180043179065587047931411935475272499118160644145149504692485530461581748188968372471918876409616770465225620150089548216818188361332898363054165913485243238342635059642576974464770702210799119399615461545358242865683870543713664093159340730478256407602891780073979988530601583677184797477895039682731858558530787324592702845646309559915947544238252820669397740456109899113586138812164276714115647839355006468476238016662755422378634252159737651545663668691928314129226969222436181661764253069761020018895794017175738213048290689948114609407239591598388598901806923155912727157904252121155993939489059415258871014647377743602627647371499036259711486371033584861602745093528006223014589414458433522524967212708878848931699538040602183317914224141936659729102143239965704802033821805239447684301315886686406518751224878857138688458480377762561917921178529846594849016146522146252813883139262708868972032918886084835944640103981463023832621510061145538089824526252617719726296722644698163825289778013814134234857563682483203754269268559216762369894098473616463714120943738418280250354684827493131191908894872070717956983276675222165950570753020798101501348918022684362571697858615332504576845588019783813259252356619594714093917012924690867044785406289739680972537995877433478073064209165869533444623624974233512770244003646060770240872226681983833023059965120678941000885017612584306004619922146320533510284603619115491402850718343094326227615039328971058006084127561716214830754093094902228008845483524000742631338921106304272622256687135458126359982417787364522952410911718798916466889352537936149860941094042893167842276784141497312996840394989277569344897081030896499693683619540732253012902781746908768305398996628810953710257198753762994363343278866989852397476853870069493532995239135841126086245837553548171218000058621438070016406378253243043693609673148920770335552288311149788611776015115719788215903662535296062080077716850588973167949352540920166716450928839062030540210308948578097908729579691183354669080457661423587516970970708388699576473640783671060577781319877382953924125710399482482859492722416910120965911194878877562902598882800828184068725987045598124097964978514541930442646267476532843716616956688258810452851375477197784396847426579526753886268514248439620211477995205981375010153104499517472139636456409178273446028812242076223510978160090785556610483983667107935968117418341315776738403187873514783196877060421666906907166456773900229265814077756839492159546938788263256533590306529897438317429049879084919108094276349070355294926392845320968452722223138259745133223018810265663382205882051492781620148426620315204265341632946192262610974790061509891998599639660152838599353796807971685912215419169551320059214567194901740032985099636946509142335331145592204811424336697166008739050610849903894926815238057864762344190750623874268323431118794493964138339445935459166258875910996008097905346924834123862759970965726345859973452115798904566634738041362189787335143025632340127952841515568564346852519586809312597390405700588498273428255371632480382025171141017525168169563857907950833292573890244377119612145996460093278248325714587529598362767328835341209940940348879480389732967132524657865896548936146590107408598733430539743027507937693225306508456773012089286636185312084615279058274547174060942741128676212144908389639968548018701425052496181783210857764450206042488106680326247821774824357122956335565581633391624455835929919621643142062968529892860283769622439849655849636532328261763764090237845308021886845102141790256921483118709113457356682621895500976690184439720564842190043150218317827684577030726952025579693724243703814532461025563041435237778776722196515751593507833197047009933775783334372076969844415239598653452352794234150593948867567097762207408811152009143429556250626238939242198558203398319715148131014460601220714425065846870534529109806288173578435903542014008772100260775969580375336749523587802900963745634038459290159342854157340073139427929278807609083635573715661744961590009401634433976084996306960103322392727217367520892091798126700564950065011567194495138921204028660779472695946776040915692094614891279239453206965750893492470458337056796060096992810452803188159716593614801670492803761940327822453518731408301400424845947284979790501657258757462816918994983549435312561299455848941975937988111934133677230207767552063396916008366686916135249239117699834046953734237099403256468566273403826999133570605239118361451324289925639157342799271924377751879982382720391994978809075179984493881478875572657871928095485086167921728483799724839531316235289993095154095096810726065795079895669421344425247445341112377411413680731864847245540101020420589828466481202957609096135595919688663915518314623369884402823420200805869781619054426531330776915736454870243629431234505180768474272575382335611208996933571172225926967528423765214230437326604034877788919806581750319623375571543803377369147858821579266194700316524793665316083589520392523252854967541267060940404419087787077620628206256021418703767116771660661481467764939927019064703922539785558925565869246932545255421893966177175664619212171259737955195707296045645111682982316442896055036441548670886726762967773481383704775829552746074402600790827838994187278547519678984383810466486087694101691353142538123910091961844712135682015396355460050444372121194882318995359398832369784108259900498943707024697761977199167583027569201757475879392111929753253582231754922317597214691556287661895141446406143042164345786546208923206077396284386121172824582305329603884754268471068010941666193440650707554036835369019921712109756927424855862511301172518728173990524433585931468288524024292750883229980174911128683265955734575314808779140679879309202746356014713532559309975041388870166584928160945601480596741970619841489800560488207552719785192480017169917587708999278933253858919539519725033134408390962977815850610937377549089117594114478204964335767259944466502432167945507925613295921947620797246545679358248911516746438839614256308018641739197535780016918417272842553974188209642965187670331439844960618458135016566078765376445522559729136253488791099594828162418793528577819292894513993836687273193469599823871688728862907215288512731080068709201715478774059208930881018807529281291853467826853429027864005968429327414471362787206518764482608937274814441688217792934652421119644966708678991819115467999192766759194110971552731875178456073470017548927533063186304402190138490952864281388478399678330804409751007864190929805175360283903185482119439443837664394453462358834499581689096327476865925826501729488899165655492383008696190328725670520912129861104647722099646771079620043094427534137071009880813636552193896702402793404846342752892039048455931078810767720497817643344938006369058001048164884817012514616558699686856628384932365382857360488495348929182672159013899954007719949886202814800449645550398728831332462092321186685694787373088195378978819048748605647976964946235889409997537842441011590611567310053797656787048383631903911274671484323697496372876627368782549533027456812371721249287674014750720890594637018137754826841152306439858778013498105032733615545003521791590915394150641630961176172449311854767343437849528161660785973855629985598417968226193224720538764535277055139758916960213299096583096612683857003389276257688341979209073407427789400864884032062392438277917617014343116975723689496673024267157784931070638233285213379773754253817404292683184176152506691935270392801648815006829228222282989927549468974326426294952769054164911551184680422979331666642675066996052660707352006169064289093609391302721733059799126415240176183881057668748565943961549622587059094297466798118803938581145423901235846962668323485274176015098529424178186857545361732292596168717089205189373853591037449066344719608863931474994728462544439460400116616967819362892811252143142658227619968081414064689373907092589955776835580962796049498200511492063889510065107691186595819040193381242095062965342119485480595075509762798536645493905118393817715642682426059012779102114847295376716950486978908867327883403832986553033308679727010054163901133232464205638288851243308134060250831978319945156044000220455852559870400501996825353791115086748979988003865717637388481556171690912417242561756470710008684666372115953792827558310136355630517775279176473773284939996343562514353246906140279697276098395103609895029983410200132510145827006675079003881959116954427440608543291381518590322904322208860992098184331482822813823732146035588355610266616266572263362581905395922275643843943139350163561956472941933887537203283258864394424768684678429023274092441660482614726073215762564556793831176692836118776928041579023862438616754022172812119421596928448551274156782121050035360061782098733737601081471181432462617746820455056405491121809551631488059250931910179958646100089481389563313871695058395884861371886298416655023327179449172700514032736486508583046726295289461849643994396205961546031694721521091423676121624080691854923515753370993901677835545198203903906134130038363341239249657134038501229088321576519183346911604961523070635691033061999255092175199882588519763618310657390917975301881588106415822569098362522528651433308259145702677602996751835699655640470750344210107765678541868668569940325811020456093614523637109940518428581043089336203336963853249393799695814050905797525790087484974177145530994645277790762014373927610787385501398228259730380950430664578442760212887446385042964102486810097156654546496662704117371959947832868709327757107057386371827701120844334253797904233111440945486216786538159847091683495219816005404749654094046994043311869699645565339830074056394441903858403199112478140737377894999922385304467921150543269206367271103041979864588355214322288011869617616640969120801306941541140476876292666284370075959970567015743114834706790419743168255252875829947320838962550534507896210599328506777781467611714388886498997038083223619089570492889908634882358493908743044407856349720218968802672736697074306813203597747469230590931852393326050228228790939384517609544014688458851055044099486398159859335699506019671915138156485870771726040702898772211332976641774848283769660469623732796308188358324798338490664947558186382218422688064704239105568994563211018471903586126301008278682051610116149696760718883179865566237671884315204578793236658161620491049936416837833872809533639169418467101320288264104729688243069642451195449035747374237000857389088015312796542580507930494225395124440005260686465464535657254895738802004245186179409106531465537558676951274784563971896602152687779465135048486406943137289600659273337873133981300340791500649049174507699803838944994890230413627660555350135781760945373699210710746094489248322664870315175653400184557617016089387566390177908491696957333276310944857146122203960962493208494314498731379459264891805783491525810446740712093037245927025231597876051745328460405551582445163192523815646998198574957052805382414110191072689433799348122486044808087861608540181083960573056774515047348792235158742710112449684195782833093263322055307067372185278469589215563664457387644855766966060375035245611485613897341917315353311216957985627224948115096496167685505444444108480044380310262626000422809890417530053741553088004843094860633949442886290369314670678429017064883869017011068718509082069784094273956019940877897088171888261763558088244276033551353789891379805671577088789593058426593147554323432245263247190745029076915557263084078686524428252653385703556584798364640533275503408407013964613749884987399527056639046535253734654634174290859189338155525751825832709544171157818923701524841274734150064582759157814031552055121812349542441886272976248102812988073138956927538217244556559647420930318473080810223744167071139100469520129525001548374437869974312645932454795653995557803649957993700045761195713151751186482734573942398652799984481594605128659949189263765284245120394899566894032922238116999101213296287445956085049270333227364626276848237031947764391768889875049976455929787755466688438602448413908880194013642737672378360966089569046527461896317252794435961375320933919058080906261801677131059168686428353319230349519516097732885544603453375514256762130072542284551103297836758338690656835496395907066710609398567622580528299275609273787849560196444252006387991463214790551706417905295680032968495443401369170980422231796536463733353584282354500517927900517423249254073310018611534662357544983125016197241182123906286720867495768878595410456759304371026831013643945004820595175480592535962470080458254169112280065556814192514860220469216528285591634325217010075529997290844917541119275949133382697916898227708996118198921640144680225923433747750851931856300908859809789874366771746767056404164522607624577703362174838152761506042644568392522021048688563835625586443796923142947459734015697902854252194741060631350281860745070478909160227894019861881539905413329793943455164441423229212276055612911262645875534415402737134112844069754843792731186822033639877488877994849342276394412704288747061884460847393585675816579224626618499663055699816385323844121153203478849294267512767035729967313834946416436645466587382802622011913359308599020462162069021241382565928744499231999007190813863220012637071774071852703137017992965705290746259927117510031947725005035096951691854111620828084930551948753962984477250460691072488854751712644095047158983269375022736070871250394659654570073208223016376112621248461690210670380658489948423748257928848880928800298707175885301371179419860844247220161597594598246186392179957558836807667888889663382467286244560090790686110240970511830915046883639117379835165766799297080011599218835442623493729649546791049218990009233933588162023249394454208147600316785297245937743630553832093335459408180731931910738507354196533503367466089473565480257708028044894257485828298754905470233072241558676725388266833950894132457955202275197443802392897748135014589381256418235639321247483552321398482547559144729495440293707839230514494126546710428134734579771054039531230747223457859674028437562933551351566282159376777157654804937718666424061855807614129358115145594536338104526871004532750518862984995127620108169211720137077860353070799883634345401377193275391115181709151091700195917623397583974602104437307425186287111803374468551222873288235311243867536812639406011048021294553555251223524093729385790415016070255626302714091645508507793897866346118791725443166092985949011897502926191084115919448019060368495125534595476513552679975244026763006552474340982899268106577506243160107859288853543617209867574423486309100156280827294552020241120824925724667333097042231521646858395606638788444583717826579291793027507316951834791420351733770567251878417684036095142093557435105415981544385307679765524966580546070089749311504848316659888613342599280408946504565177058850971154207207384033201178598711541305436432510351724040229361737836348163284385320584652642775553520663281535497164827853622118489480876691462401123568325937859490158894097473344474445218101691925650000109616434451044978174091110899608881693322686428019373349964420937017579730070628712015415661907797546947005541065006651480421523084656259858823703438212128216859689242995695706043012432333092876792288086669403183659263336898904133771144787638526611991053998822927004479999963097937566743327365517558354241566603311375763733901417298300338903114863431758742730772536221092455879987256182681542854850766212159426002164092181592141084673884132063019443106905540035794039744977765318833421352506220550893915448085719999042896990685301555789429693984584209748019979060047709357904835410949320610051453904876245437519197185418953415128630828047990333019300498081750196668497182177332799068157192718786196701889876303079621855949381051308043020766267329214488852700217673420276733246136513153636558951852758751298213263663058317916636996832435421146066682259124929974700416389820454372538454014879946659378766642078861837993050535005772138958074074442154343138736116952926582547824180185179462366365726942268710431899262698600222215843337922973800813289835448446479746973129186264346671797491728915410577568321867648849138016245818159487207852295852465338665533539013449527425405956219518849865486093712569043282395908468023021057854124863721765433644313754262123733387524777544118667014606372719552649775907750680139899669562892298692343278789290318716302537810486225705163819906609615668906239337817776847260535036330163081332419942819490229326440819845848610411279119392712285721467191265213833159256216944179415284409312617485748657403800470791232215937240246650785112436639371360695082707446063272942165627609327154532597401324490373584377610330757355105071763482846323494919285861860834670943962532612994629325292782793571738150241693880382983389017218496856373827729007220790383854359232972768799275479934926869429469625538843057075984304320407156876339678541722414689857923281742964469635135813182015695883741992107218877004730452362776045754090628988232546383378274367394685138076833594483571905351631566782127111774292174749594761691036549876242122835815655429355961910151800932563156320605851651736376647385129993191901248722326130448763301190532465201330793545780999527263462552934228089619108269025660667877065377247233663647229788269595530860614478434543993072809398243976076977176233980522651841727005301405753561648866993696626391792979574369097834478619398636610196034342783738530321432111377084095998976366207687076035668030026915257252060856995546377304704415013611565675511949245963296774379381725692755408667711863227395273064148937621092967708271660633186338051386212076219928055581836069412765854625329040463825293150519134091490668806873894356781222037404310783134447660370156903744986404424658504146435665607680109443485984104160345218949196823094891571233985566790737545517730952438769466355984532216955855837722444276532920784162799019927467348275771281714141891005248895981993492542549954154148060900616268204873213699356391343379059832585903157616529082994868515229007234883825093241583961969478105404528729092890536138250561959770618531376598224054331304206594650358921622427171603117992912506483459979336567398558953952366746825704116985036849354475609002933003418048832140088611168210895428608805182214232547726418247462343374081095194967494197811756821931492309790137230374860366138175057172249038464331760610829864475691199538376664993147448062269820094269546809706713386104785526235896253621386346236215210804112223737312676925581936320820871675018561307664468799498460289592325825846498752576648418774171689528775126778048973853116116941536418408025260021592704786612007564833425965437448116627562398878392774928577819642104796971385003850730978210274251753005436925047364841286778685600831213577638063942014153952847942654501488524006385863374599485920272452098066593165823644986547003666868425517230102475005397335356614894419523887583305629675762708242469437201470971290271730686807251971043990451311889435333235058926878292068181403609122744151153615872642353039536260740996720084750484222258679835278748099492861177806140386981977552170293071987676260260305263955145128150305484920397130497153771024824518898334000678856072954128331040709525018345326234950053121264321462703301908727735382161587784492309072792878929623283808999175973736255467001791909423860410800297862446122772854843706233331833878846868729130731211653387939044650449527405423981804500483584342145585583789939471881170676592694298720075729267886863001691255139845139121772522278492772008162258073626429003954135832318670309905082740209234000557727517882713873432064891720142830461332838161164048905705472816924319478805344842563687814052078709626461042854170707828776708577075609541105570985804849064376375686377435033340182479146935021325791671119199754457927341023712805999785589188920546402191955285782770469783489248394619276721220455473239154109119621197655925514205424525967652159390834070652496342949842669789819004007764102030927809543326335997406145739093016874597911730176709618054958799564308426523364748402367021742142948581138792267425202703043886874645871808179717431974641754348844463030870351375458901111476925956914767794719503012407477844849392421967673804209947039417046330044696123392409998543945513342814081660972076412147876817878932107613650246307143696183042129764639487963645835152741159358301608270431674803690364881430339929776788185831608658728226539425975161295471913393882382630462588453225898556805695695240692982000486577275040597721680333684910127940019392872173909562630098726117868446090658152090639270816290423216157965766567592225220770955874770277619008245330387300871440893675079959108317645014327602710098987222188804614014204570457123496198175542522700438550247290715721118111333418196840504496275553399319289855578511123822027101023351932490668588788285366415102565832998624405550923963516272494162180617940763991152772058674062896668360890683630303896007306659906581813442749780003570892763119593563347959157355347856794478809120827018548218769656636931532147555447629129927426213995126243089959487637831617477477603852940191187701559987149381869599045221781926622510577105871991113003867725494485020527128952551976630936932027740259483433639172205185957956552041857856982022925308282735107679797626615701285550056489065773818299148089687884646457592704828559597850112305333045081984122618320132663607151333088586023298603455949855532200789250232816878397635969479403793446371194524947640620088701285156063255591477006087808000213844966426912813276255433478106657858365941808370696395296680523979825832656510752173609082420369097618923875214317341506953003959607974381432803638114699209651054599375426802088396960548059053184478308402619945966567348651247740922900255789175942236534634128068403394086851011626409200997457810012464045431805199521296803585728451993954402700171518626232746095312382944702695637725019870885701031392586673662550257495435842390606769553108955702829578924001705734727377351081127530288830864078678397334284299332220810191801345472137282054632319416392535609282831853196682639205668518205379000434680706653345311453809749999266780814770471293395582042584344595293671062063467229944151852280205255758005051056960822712327544346163888496317710506737039196365654307663362569055904680858091104528523220037741140332280411771327025453648599615294925371236482946709113638794146441393793157170215112983172928747129241978766491035422317120192042339394799313357392645850222351017054734048760637630787802538171276947397083523452570059754109725287462231699141965568924722124765427372825472313681813075318185928341960995425884747806355857586556693345371221396938410122707748666208301359079045744511979130938376662159089327844792083238758886851247617343311397433686675090978974687372622124443900761654650802639209457145197484573462102759383199654498648838738549728474577448990764828776611440756265243589529185283852837181061299370094228690928965233562402148081816632507384271118974218183507205839084630724638701173469241247407996085041493649077909001807957189296790224332452307482705963606496747354381360123259425197438288000726359507711537140719722736151592678444983815614088881321335015838725160643063909152791451182482380169897371427784830183497422317151380579949225787786424378870351650027711161743969896126571340573525905576679979279172692589380764887159584037362258817638270717908424896183240978261523849796822812439987155545670853767043389002779308872682396232049486849722803399429282804076335602891836479186575123616145773810154942588484363882874368120786572901808881486737950218508047882598320832042627817085493385553586583534055627855304121106837869562861698866511992636403042063603080002777102403131182279819565967901307330030426094028209742328524546498492059032176219661234393069621372231785564795854924761922818388467743996836149562534518111009210028168957244483549691515605424142994622631735102816771955967536845904368085379044361297469130302579137968618095641979390828385799971658887591552992071141812397761868791926589160345490491766626861114420418933699119125368769372831777791844869654988912928109614112329453326993796489683694532722274602053892636009688904313686558092521058223797249069076263050857816341510812260888313025765483292196273796467689104844177957141458012140297706267147432856439477722803666814902815723831190220278508479852557634058272690432783706047361891648281531838672576028774526666630304460547406054562419310035907195981269216734835321960843258835387800896290488743507432291283566474974797542343887410911190841130594524974713120103002552286679557516728448803617052072690311230414776954704359010766566625881714122652005133787575557763298794580639150204800304029378193744236640795258669911183943362155219746928904682361676240456611391185756588361710215880845805918797758801811272770505727200277318740697665177718574781328217117657580794663738180391027350946797382190569427178900533852032206219193522375644238309398248434468114729648020667087354756191144802428215969488959763086636606446091452131783651240041338648304982072020045398988501550235415021236989145181493160275356570974558939277768736576665300250899676080062622551440517581245089837950054800249793441212753888807892581916930171145171430662577349567569341224425334891162304256346919856835403454836962028143961570526278191952130809858208054620652291950249413932162040521411672303598153859633054347211443849250819756738551856288779943084674641984439675403735050932085566621437652921128356291983634099276513541784363327032557995102259931552566648696268774969538187660714666376194260134341535994329423233926694877764556791325903023773022689834862606228870603328046418684644108073904371448225272770625168954663389533832167022905769176281824560340892750800495836892055430878889564520729786834094503361069414817560797789339144163852244825292319371761520363831522860854272388227541021425887907464353712065103652168330464352314770921587325620702021554884928104604423630127232483331433226188953311835962997383885023823391498913312503429283238605558396307098051054533477256869915535198782545848939627215846377006704782883331500470100380714809454102437006393456357107150860691602506093776173923551361303917837156965380428135124414787427343420094825687948474829402961018317108159336393023409674174044647506268383116853936744198517817736635613716415085011253294427572647621958906036431591703693942250997258956193944146113046527767472076346793674082787020739656421938485127898233936123064283706637733059419765736590312102719576010168789044022698832194412884282085306761787651979137393444041132535507769322294925893343203052446977832516704397121021284251751912508549639087960095523760196602959919953493677846468534968323848769721188984068317558544956292084577419360282296669422458081957866266125833816479047820007302500169256155091587955841701303932682536222953832738175690454669462616208037374385445414621803594407041447677496454688196403772972187758302482831077923167812537303845250484513741348696429847253296070292578508997691927797625669034921599512044585440760333419429017607667773427701903853451864935173696174432095177845772388559301361133677111641509475311816787049912811232655081365477298083610146999887930547614817284107860632582336318981498472910458217640970947980458186104255234170576880597717618087033084212740862331954642556895653538103430104761679196436356848134054274554430310346840493913059837571110366132918114035279920086280412988280676836646395551357746230903053491787467232696173459595905180484701677644381175012578584984690522361221245055281329582285896980368582577683228854606994707415991403124900587388837045462302356683976049520490467369475157769040074079356228631097644324258670198458668368256651752942935507287874833221997740726226033582403459366395893373091623036181065048246876669213837078181762503415992681494314495920871542828957994883289698298707513276018306277846089267527533744672064970955100215455747589362543257878635692522503618217513238323893083931616434377470471382599333624186058432950154463665179326429841881588435671479001662853771949553956298358402763675128048013586154519564918083475388689268420030930616302328708460032037953921168233189383959227756310115048862150004937800669922631156230542253839533567463564861257301120185720428734557253051145465825029405993090051372014934585936744749194596622372841766257408078495385993327727815271982771078824304419695472471165346450332607327990455642743067718095805180408681920046053805084959618540235310130490090198425797983539652020506976131757978165989575734360742226205566144782299553816173074059578108824450384979837182415150261505346022526827922218766990426483701689492013827128134076677223963923487334385782443434865807117211797730362990843842321666714643950064551284985987641240938725400421288044307291592953176857833752400773553653072833132292890291341127854598389012013124847296063186557525004056281741305625342533376953358070857582787720899870942634561050493197922614653966276578942549318989571651718994257430370945352189568098461758985256962205809418059069204561897526840427001047270635297446556764366641591120739531532611358236804404551390606963023199644778672416192948746324964833257209351191289358337992324267947835418305295695048381849701891699163859147105020223516377445581884389985869935621419778939825143311245321166438693275352538693878464024086069703832535885183630886505186080633715846432503250824739589804985034453830053394395497970951832568845399765666270425218838796817129725480273336923684526822862971166270039751365080624808362579609946598824779777928952392214450744611571102938285898544033632610677828948395486942213006496182158323794683595973241019664769737335688884101775140143703556413020982564411738051882614056179662797258609352477377698818624344135875495786387029944364955408113220645394758349389323818561681880932178125529033762958362706191944533641327365610090101433487812322557803097470368172345770693630344153117515663446197253861631533971404205459307728056264681091969614828093507303743913119316270054326116628944642410476162084166961878147460874216850515698755717540873161056103357442707571592801262990786080211190736549787196625774239633446556596857171643808240229045978328405243801871093880254708798219709719299726568606019778859875888042058798401154304715151229067123757249720993855196322546555965998423554626812111066880221056476185902747693386724787912223740149052921438366623759506782152776540140799814424011791012878397153163354265229832751136294958133614930667586266766137880160493841469168874394741835043691332657796622674673362693344599108726481344441940757962248229408066965585547633390567614359763569809183568529039793197760189707089158417264272223298895782744438140835887477908568812056052946954555664682010606384175601160606071601994333114382563508505911265476631291845701297911144631068297201627863044453992932611366231212703334859559429410669243635087774349207980112393817987511801710044659336984386575913275006007498714973080038322511734279842588566528581716835300641397268694117787467842301534117688190676263214471997126587483787232131999615397123143066891514806970136856734657409482056351204573971490890346315764188672610101964086875085354841647409348514568846399511287051753956273711733602504582933435814731936938836021534105524346581493420956441986475393638522028987383684098261399144608581256509427768399566137054082380284102578722891404328938658952974049642521195142084454559010361510514935356280910697936061815505906897865595322826169469912538762773324095588124193682335994595514188750558975407546217440080997851523449366296686023329614400235401573023204907751459504619511684603475983933450749634976205939439404069229765373706750546646401269120218904841608502369483149824920631052757336703866165238097957353666993460350406371950866775588004811691858657344714143012983478971264055573881530874631847103647819428407815277057801305939380510300967934961617006329461006156016767207006510446214588992807450418859504828643853740051380339591160202593295674880462742250456308480168571927010379339098103771157783993911563665115072054318564960316910918842205242917465635790602847025368749059468558880591644883185476103473503339701944135730037006483908195047765828926074967760398633938480225257995988456591573391769755119672625910713112437619887195583667340306131298662449382801671109449080877210625097800735410785060255847101216593399756289427648072546842731480489420760288420875120311001913259149115171148197352719813033852721217824725913135756380014196745950342110527839472145076232147173352098311250032948224043137722617813770960984044989165648258213989626269823440286935916152849441452527354305638202530014759420754221935576012396237431081630391467415337069367614420306547116381795891133521536119931579175466012799481534725390821111055651862993916911166962124320670387569566813703034774221999406373421847879522415747391130345602412257758043804700809896443427678811726783628456339104466926933605623249626888677405430454336039524943082256833341201346043726280580849986789252775041057799524508666527825308781647845587344474759743806253071580968109738253379044050185370020424753146120266222345664013782635435791048826078085719436557728315020278094919409338885776462448924443968574364378292526256813205350860974330958548751226608100326649767313945652361578101205037965893485841683147004344814805797672994097220804542849676733638258446345198016256088061022687517628442631077303767538852355673514635655152241033148773552505340481664937790797530586806819013592423684983831381209001801048175579964113147744912937810455077950082889044369187908087924924063953894232633921933820755497195285075008030993400533971686689434211774759898672241241354745346474792924586068081595825016111291989712107124837950381714326039039588411011918425212691220863923281209142104446634119907512385794080370379538967170676852579347102033085743472188262980373972390247158785960473696704450791257820235857578518798993575290768452120236318936886273621018139116356984801739669006908140836414139235711928360269482857652631404721895918132988199130469050385219061379358410286068912909325211765873699666582449795082874074205059355564311034359089527946508418975475846692596010831363688106607980552576244956406567986377145217357297122878301037912619615818653016386032018408619280849262950660924113999876409320338020598807084260081317593150163701990234600273724859566339707109528652768467862649698437259039633724801488826019249794604521232830177638944428349024170465887022077267179167803951551113150129126795031882740099251016650627325553991191666340043363448481358960779614178731394367413666719170419015995393726784264751578533524929819232607414741921303792035778145783897513051599329032324864660737035597764911671291596020032561776998315823222167976946408066354878430996965414654158357395866874428761985822975235027910526635529489497452253128252623266725496210527133254647242104237191831437746707627770332502646801484670919255986285022102629117066719224059347805560333970412458399885467522002663928410446080972191660229491611962724221625766566215727162890899697332384530102746217609304545789495726039902736340029047230944193085516868613621437189890184800327720455778788538961973450436763722146122819779220574722394754425062387211256883757998620627280432026479740046056203781808168757057028015345157403863217477798470370134115220091211443287699672595967944914697462451532559546417714257896313127879191517228616778866513026676088462300337830482822489344547546938673900245069712805689246892209405801893462089737330163220176115143500174518501040941850962840725919431951378127273600003297671486339723680608874530604490540586945346894037691608482472373277830158028786526449853105769982147274790352011191641879106065725721271406252058998470504423180471008935227380132893634422133505542102461223372599744630136882174911633804285920256670856423713123508738469522800767500513946647798098335186806875418305202038768400485439692986594313155862568372175106129893479739490766098373567934078631004995107756165362521347841637956620593369370962383011031982303961927866256120302778253037195321957603259911810828607650631058989059651076736048365989202507078332645499614584641361452943422042652789659829402999486349286219643630012214577554563833928854393475601785262015145664910349900897657377067268091008246823230117922261621730686796616462074101036744961552516018883496498093567259446490084808451927915910009224697725561986283250111703189740380055286773742727821524180420219031383337610168769981269585959372532011096580413447227505818097942775677122859551499722299445069880389775130197340510147289693383211697625978491754662460468919446689642200751441910783049528942643211157513093800411686606930865860694813078336070976246773187775317390711225736350946298433560843566441184719702125469086834611330420922078567183537779398978647133721421197840629133093393795807644883272118958630272642729740933618063349786374990292492435479693776810091087711717799160765548948394923816304893657588251356663595294994554155974612141011410224859010270387671404863138056129117950938577861167920100359166365187723018089405687921799796413705431616736564400038912140402796877825198563406694742490101979595274058232706640171415591934825014567841916684880976784199388118991495461542761762781452371162847406161241790455521939473080258206839810670714419311029598097064272251563077643625539697114035964618160667738473799944923574174697025289751689378866693904986257769843676928906060261483590160861583967003834899166129917277447073350714958816154333970426352327891897694663033505153068852018861949547818603294567818324965821303513188800610451703580533699765599567852518547391892635417911000816852733698106659834941372006121828648796135368722883647195583112933980688404471174944214624265819200602679512890490694432376615481669913794313218353592404828619202407639209130137116403564939733355733906369781545794493861667568137827070001611955971206301286599080897216814925798565611248901341623055786612580138362718938059532720541846187618782212955747413225465571317499257407046151881492809623028080142699204154036286497662029213287715360241805399355202395173017712815588879207509787572440721021932999307965747529479707035887653554193470157054871459955234630641504054339871693239347724775733360480393350592208111426792551233185392745575623327871382802832736353491535670947595703717577555184330567002307607392777433908523991206826218952178927470049307146676202066290247667482194682609248730208519455180547048210840800558388074990782621148074185429691489935928568261256259862871561252267857753171793212746354539237393215081059233333922767790697266961606174763571103318051271195491510285486110975977639451935202174819280156853015753076102178826963317131246444449083116850291412246692406382427114319529262892890248763874449154113623005356135489914290145949639769837905536156494708626313788223656246193659875155942682618291183280342278470170367730591840181175104392182124949403000518972999521787168356989679978028482093398997073752440293027397354509368050715071537853475289037029892831896582522545596796958078618728217903129803407409254306987080358867486418534504946569062001541287972839778353198382757939868589588169268896684117715188857746748826147116805908786168954214360807546887848379584385609217730336195429945335025915279796095887532167358046464135251000247562841594431047628875683876901248610935497351583415561480986130171774805326105695009744035439013508839549778961384774664002557627205130711463720195567325832168676440075144052363464632337238232772088981215843098823705243549916643471125098044180121291655826817311313918380001924052889807901027583129481049776109094101264708416068499980134955538212664630755333248903018818607199834970316433199071408609286109395971115230743732376119958382330062558578110152910803484710967235241537124214284707691491613912868079785645494867614230378537558355536348348283950864769593913128370484512050869121785698537841812830404830560571868856137800323631799427316934596002532698338302064903796620043241417294995197214984934175613368816422367921112950471978437520692702130167862318630257479606383491810810494125058574761535270457070780512347477740927084958026695934905445824660495388917219374142420335485648693039046329736178922019960235583330844612261193782358265618199600538038603046983906806429326929552136338491710642594599128475348131148016311822176405113673299947601703026879701405498268771025802633482972796024298259214711909817753936448402841185548573228208471746011855353861595336373078955761733363344979359806160316053067277352790451840500779359763715857572814281230345255060260151305660262075694395483481248192055577376499685833790345987195936572100876774927645279362339302385195449470705002866270521906989225575453135225897202615622772400152726086296457317231894789661600186244383475721890337220379340248587476632647915632632957701846123777699954486404666733620915212186673640502799997425080899076612934377247783693246412642402484147255885912829263165960330752496387130994773760314140372082743650518531495638580317893954080187010327405877299376711497112675996377982982667615842203415341084859497789349268074453989619095215075476553679474158523657447165179684123498046279306942951085265949477244108562960523879051096529970849523093347518939227837162378818855680094577661850151005556242087876680605252569675976669598710774644042123799185391499944939621876826631069104171510080604612831004954732074910521101050326574161243936411051666218591184232074937496526889366956310379008504234446219914774887475507701328557001362279356526878623669543439865061185982239876124344860755265172201640922145251839754537308072752091497477868103868248371005225212072854355154786448895377577904358435991685623544015064049810230443305024166686721736029288221848864053980948639743238525654417191711502582491435432018583947677327441195932904981668950861981873341577376437806430239160481241499414696618113457522408541135506347868386183288787796209152780322390191940276014626986438865459766686006016280073034135156363425612535101191364775077269454162195504105544066511127822236900513507670885085253009104551514949734301870353793475240086738304137181634414956169443701140002215123925737222476981584783571418694709259444341207076241275567171655328305179248692157731307455007014539464271833997664418256130614608663297143716637404303427504447948844801392766454043474685086593836099964128119389247273914661446165616426634671824042697436404582476076342914243698906489578193817088781723225434690783732400879478262667647495020212030212530435936452063806001487659036286238083325183339132812855599396082051945118160999965225499788740121486983370742599896246994746191865452791916773798584581423663570495200430763183239873380674780282691499723115883576612014476607426645629748468367173700745644135770492148895172814618093084679540872005008629419732092556768043665547022946088373204995257373224563034661341915946313603089463179952702664757092927564029016724761440322276003096963684637967834791202113958982505439472868988305346629176064371464444836510312548735972241096083082053989561062231251698306966635990371654217804136486705564635162752904237648752336113912973897774843412748051063241244488580715328652522804613310511886404201507218440012671974968809101775248146625397639395288669055069875114584441092558046409270128186268458721253857291217475734547868282875327482316472986182545725073746538384779261749988183824916946117647925675043568406275985390957026919773544608582168487651855974025924944066792581059504527742312112207988090307118055194391046659053307774502453739944532101839772262655106501013221399258876989134389599858612068803754280463023233591850522273991935856447004563827437896764203749962621955021711051112142655016392906620030059202205535873257463242381166525074206999362829932390529767549124067408015291533867979526151203458695560526536434800202620156899063199376468508439582337405251893668801972048211098320234772388151601496324941310882728401330384196543759510985216044476825976735657904260025257122774212034794419728992229488874375456035204364321355659213887128674740086922688073301333587857049309562329607435465221020674796809697492866675272223204450053109825205370617066265397851302022027886249705375725545432827296906114015914684448969820964401739468937255913004267075337044809237294084263649334397886676895923192503330219647649432708427375685421066787086941063863666097470506987338430636461386238767015913882019991975067586569916010123889215048848343065241806447442611006997001593334292993121479980329246380130465541316956221097804298111330600162920043978639948007099548791448927421549698201840712117816326829284842287330422294396207300104085054951059399123847687571521650394184539668626727304071195266671200732840291723790882338918248865115912934082670291606720188102565649059140236594235870667586240802741244852340701885527677110295809087172509786020535070873158685947623009536556061768550969611821613358717899135812673309140405414061793315274645192821509283918296204738501692135923298347117132963320482402558245620740519771446410327296971631102611541245380323583657815040069683398077021454990976465489721708125655471381546247285188318109566797642946511365088511995173322349815665377999191615811440041251495422123888888432659612616213133433077729293456624537165940700177778580945741893038485474760761612117846667597666779188322679785941908263037265909884362216297764347616001636345494216060991856263361681511234171739215742214329475897035961805305854393195481055188067706022361868885511115316035557990348858652020971538774022976317657576244831735234427206294156487679734082597972029518079383212433974652363398288178910177568875641244063251799377576754850633570803704956213012961697079199847162315093451147057374470948272712594434359799933227438190334884076077672959265197834336089929605394449347192118044774686895782109045762469821076915893281923198756504327590428993567884594092750308542274314045478648432030038945576304487411300729272522506755888630349852556382677933562705001997491058981900368860982749782195411758433884960709721277927281484801696387070676966103473300186519095053762435490043308990287769822154967969165721110643254895199525773251898100866571153467718518958798890167936949121136146302850992147020089627534546519049796622672395281371115780747212800840251421583679630366120313546837697294271269089736575807059662728374366787960843961243158951112686122249470472791439983296310358696298856978075015577549985344088629989193597706095341945764856486212502836674440902453224385417312636952909864506039800308962057485481704799286298278004982389327543355282932004568188797976649126330515499566496906460919165167376607396402955768825962318000670991069537992815034337910674699604016257826156314343524088022823110733922504951933116286752072055300918810813062820260091476335313413954700534501186290111644143643599945574028709608920812982245842378814473190139032218912785009181276107032024568330485720110314944284115130251658861298381609564158171809637600056240577365601218404603492306180590749112632775966775236406035453484979669578175827450197151973630241015687975631096827480266653397555803568612110331900127773738238513394333203878827646698217151618176262053605122078463410382729119431557945139102045667578104173857566816583202656876762982026259667433814764378624316265430890166997077578589892820627046069517112681310583733531892217880097154605185801760405168293586886490765120543779364346956185997198039785980463541392250791953402619205855153718212423631500827494219575300924450450286768169848851624661312983912861815022089722038267598104406988146633637368856059635764512555550438906045253457327362230267817253442671157894687770927128408788427981669871187708544532534300748601510396312098137841584064559992468508641666098457370581502351457457567199437134583004897628464040664562865449732780074062935862372678768506553020688427397173602223839209514253730799072973253211449091273796457090678666954754221839083422572812676527105314588774830293954794177077257520600434257474820188186436659473803984563978910481591945782228928317012559585749283599528088087973124523898879284164307915892651130745662753761738192612264913284777179789432253755796292707640486027700109155427522864234005935171945951367843086607587084962854631133861648241337131610506430890195560762370858338613230113884251282990279025133127229683428006122680717406708579081615820558325923005385022898436359177608815707168449130651734193221396015841983780273416911544478214841763654050399479574241176706876065980323621724202586986638672221799540720662357503242692489433546794297410742142568589154525324017834589585685490143159320499084418192819453747127066012273068611958024768699733379060211039964232721356120061413772842565900292276732562286388826055963320211018189245208031823486383162340261066596311126166813185422887585252578856649425583258231160648872650169715617700692508145682704374554037990949824627936752507141536089664977585884939179023877418881407857281850026105386536398078395579306379654977737539955342169365068937183703591312746768083048523240891573475653726747357643348229009144957388846498697139968968900464172757554256029269338686001614810349593248996183307062026945478274017043848024160078040157166620616859482235675300260840483354325668733249322242936625416241876246499821175687167043295896102301461678701398378119798159453086025212093329179576108818322236299943892776794805654348337773876554197838696866627439497602189577375022972890829771576549702408802022531391563186662932276834714430490924613462476397014222310301133670724096744133250430085070372693766806475490549918996358613390743626688044779666815277583198152777035547694746858050120964794001257321387425380471279735713911560325588079825895986189946391337483635407785506091456932415999277796548753902399691827827462921875186294495596102410515018139353065030643352342093249022789750983388315559519375618006920203308343801033587099617200043789455934815516167942150123058471976470619297818350727408638606937773912365726210823404853739453583099291346586429977201234509248082319307188231186450240657792688490901862830861247373643788780665482018491607950860339085546840506946831671081588988174201153759466576244871521468522026130599259507286497214348237149865081145750722012629377426080045157400065066783478458731827326107590641191038697781378441283963717219345115058695128124385565338717112206159998737429879859235401256596338107249768033070745862006964263611673620616485923901471155700211916170306825078742102058023916775597767413492920414489014673784193921296705180740466531982457138797906199160035492293236964470699755804633238392947017478185370344148043832751053900645647055741386451445119549735498344659286194937001214395271066859238256983388446918867661891787468403989127846466555309908554413203426420900072790429008660817011317775409535328269739210369427497144540535031108329429524735941088782894648142013123759583771371703850808064165763352775282054098290308786269009252348026366521185510847314186738294852935538786921861804733993173199653563685185918650080006025647542989335415439531669644237633051993023876885622288373682501350378899697948072651803836529332588190683569865018884151692338605861808601400976663008798798779238350395294335976406737959730696585062338333822443846716311795226176843146121984895577479198000490393296272573554654377436939099475810083785997437540741458400394354917311500031292875680422784494264535682873564186177652474860858730550152079032467118374851772860372778288529019154637712038127454497459512096016789422857042529459635465875210225654957573667395033172016773414111654931512065505140906972509769765850313498457545151396537170748808721425348433055702420304008412920062822682871375416356045802364372043269312429725139243221889823335983883066459961512792735215534307152105095819478383976398048422700274389009744551110895510697172450151155323021773118814070182297299384365814437962537867247130797332487410772209087133586875313266645321131566769448206200947296705992538142318391148955637371382862335084491130671718242161763289005772819890799955171334432812471775039285086986537311664163512978602717860875465692010682930167187224831595810438292003088314234467707558588621139567775257519765790067102071789675703425321138950196387900348374501336619541415068246979694324431641869132736423636601301612401986903020708152067476205843422393341618882725962582926315195893705811090499513005199391627778213278081726413219771628854507465353486653461572920533281363243960626601950646735683510355557836893492985861314462945488059892328096492142156944484128781271735384590241931568466024382080462970398161728778211447634811976780121687774695385793722771018006009793652948362278894642225875881675713865916011034359736025624506045672046183720515449002116276610949180798595938885902379984952680915357992564145312715788173725194135754211849149692641008489802895999151357884401533224060437858245381256138919851232415598154009515218496432356760156233066304211913567328360977681529820544736147995307384720609307595150924310439584245801757855440084157092066548944683504569444336416045643773003719962637682088743510235414968977216937967084300561806115804890509695309948725416694519262939066751879904989347836581884049706560524157548807355083769759116753359935243636317056435686823632710681165137527385125416625927824205668108803958991496875971471299267631289576382710158878738782647355098893989254332913219347883325537508964795607502987198365357652611837877439227514202771084117935023883584958355223687168143670532108001576207404728859483727823518449906255024071696564412873097693170451551930109057607272158883945440042071756162173607801760063459525051515905727765543885781258416035787787246590863323845224961621385433810251134337166321025516071911644014037987832524588479225089487474227250113601391802344296721348535918975194379282031318436404966605453291141364756471434456918719717195243376588368761880428526363358708281188502806710646098027197544825410402063077710611969774394452272244151003224074599931846231777606969979979177924687908285544861576530618403161473075023683462033028981715910676357028883416026197655938716144924537884084189893815010699781199596236808730763455173157616839747038683806802808107719304187464018231130927576537146978453764076414435024671998795659318119483578979764052527352350530828053765941003474462331278692858776838333278932183588269535476369965123331230892818235325272711239342483825920747747982822703722303353674728744975100763936627758632503699454610379804225299951847926232341203055896524561220732710937577080711258790927565701251151072663641160383548719170842621838021504768441329084848395416269630762174377398188387066063207092167231142955067152062093578598519802398868890265972480637550117727543360229514361196776788982014776780261015328896570530470649884529507235903336133276815510756033373728268073490059739327674360721551424499779088989205211330746281545703897596946617866078870891362799143092073646294364360838542404004626819337855522408009137479770826186795373877549999829630657323613952413215643273176187073885889665222754087060988210163272243538566388482784132844282640291396320834694149638028383792753000417194868826664194693500908255340326185763067388216324405670848806474183957653569280503640944490785689162402389811761367100379372139371942240966977087503141811681743484399203159259078988709695628599436550831789938269977624649140411812373739825863457145452432889185557772551409170444578791098752244629419341776457077181224992250836824288032579686104246746734700086062728118325575480166053591855041790021746179687965201513905562009258564689687118497511807694593103739121409861595765355402884898434548191642167930012481830229393411749557921121849379199373687160028781420977784512088729175457112560649109376837694959053344680766644340849395658905806161973789455249608295369719903352293431706321120352587961241786742511690493396509091118785953174842748744087399612154876524968427791853432805308910544139176269641040293966084390937909045863023432648927335870576091862344110387554932188046554940122961830402168269388328352334315953648867476224658368465289560478575938939494803911160259865578682600016840448874801488212127880073571203538239084128755566574213233888346525883926390536149491270805923234218749032689071647194403813857266177968349057872739022267798556605906546462718688632695007493648225957419928016108901206836363845265737955175633676119457663821190809323630999534053261921013688153993879169602252248934269811923256648941285298118140630837382841716240361461408672215260480593833556892653125077631888351084021537942150859036743458891010403963607183962735097507680936197439026189174335131017633164200571310476662526967195028464369444347381295373462254463612358613339507992792263449705010407991593754783010685535591123550893420993610483094194347743191609596118039355901460301229748989655433964781946344838703424573984461474788465694694306227876209348239516568317057287681545537151725341399537822456956955618354203214839322432617788612882013518672197686379255511458273708868491556692183675086199162135896815575222784964238769896397458187333893791819389981832506067600456078571034969007971067398757109268846153438765110643419190662028090179092618081854245373764194630525317359073355717164799194782888849707638861368132238393918295812566125434860381421197152583567380421608317388651995577290094548348235415874548987416228123263623659748890504446557608610942487797227160890087724162965725749839713839444254927154465978819300097600218081367513476324393324735345317749780802136877285488277273422533384917659884668849166632558214581406620144489620213562176664528383317267029208207861243817964454507390136524188794841611067710115822400696830593288549082017209398568317004687570401815802200055492346849376996555077478053202984871054891409861890205991252525784288007144507242287825300390716118850090957798276318795037954536976396892776651786200445285048134370355466732281742571538520795490111515026308787397909142962385296682951439508814769055836689473647468552099194087272752062105705181202124827928173114936369404347683847433577724536267783448502405840943439955663864199833610014899796569983650598582327289078897938914696705016308801967514412256891159975422672221031741360057728269059346871447956579069938332618365509726480613344479069501933278136252932032094726531527757600412765800471703716410107712468769601675750519754390739773719061229039368099868806981233750621018879296025000339085289661272679282836701257108055760832567420231960094331207012289289370098632782382241031191207717818894999212157452126599480796248534662430235299690211956041388369687454135336186183915842953538577169718258230907924641017635543089760590829182413383242327555688514043844692586164842244657301067377268648604429034787601721985637013726666750360412729314850345918391339156206232601315363341822597990115379033991135957803175805468468167770581175155100824757858289535896310765129610066329427093665499396125287755600375985177611061280422484698892752914614378262869674076432108412049062243520892157416918592466886252350684153918982389690517958270160359350648339488725909953625817042609002906337121990903333801616878755756262855969311897332305787197952847487650896134772797345077290407305342982127193475429283110003578077847105581521809059963652789133821570424899119622890070211205817161083239886684065005016566646934125082047071388061109337080268070451576367308535493722362700720328860360390553462244221633358587458821707537020850215946395321622538048196381345556827331324712132493444322783297925601766244929921352022326434211705469006515150662198210282810810038605481203489018293860939024630600468258892643591685414181649649243630189927846360438570222913228110495544347540488781682633627446122389540840209838332270737778040757875092678514326534847117056193314289731775108355799432223460503092381185235872004672877776806565546098033767379929627890204536109876362552212710391749752422508460184268448933771427254406024164553902652101273670563043132186700854736570120623816678550882425131061297559254932187510069462232333803425887997878388493415508367653088313388913123664918694210166734049755395194776130640210835845894358437401831677337171020444876659754849048579177269064925130579640246104993174002103174014577313646019645442543608607777930053242584792745394075325691032592080826227321681559831029479209441027014723848235582786319174218491718454692369412197134526774896729284366240721173249724567267979245153320214603962733874090038267893906752180954633947949825544894941087311476810406732721556697522586897960063798031590324269362955599543531233257627312613332252059528218189125227148927288956299886924167410928645743726757538408334522587420325412724054370224432220936830569274244433926926973310458523545503115006176864364213158966770452723253962849414760099425582439970402019956476357048618094765809894865373684306848923902980389063044671982387446379688111352023967237518185802542610365567378313026531335370979940350424727994662240841238927147298588144802113853760702951347743431472190543550800120877882164902700501959625015141292206629843380452942194193032847754181750250212770327028387031593101089446356752274755543722732230235377532318246528908321021013692589637330755805554132103793707895162486502424163805598885040198201484763574866558211280325755506196830923726796923822650111814389908596047035469101346184592734814424780630000199723215167539743485202265247745077763197497717426981810647486910894229031890933861778847208946939416097464191407352845703249312814750862842327996058943886680494977720297974653059788002947720521969873456358975253127636390609293216322928265340429430693556359737437376751603270659897325133505269773523979838302537641051539121784787709746987129390687988955919950014268294628543775411198188711905013650787884459385360510697816900688454647395327134052756531665756096589985659746829981219604155700613631981499837428649587770384946760004907621907139363278705852891584556562195482181811514588504523705471644460500891277387362021246740119060504372336553527727572464036937193827817675234736794997898010012590370566724472074082866505939369747484319016424400303474733973663709416884576024904279645168103465274502456471442124742110445622878179795427636095703998599949876680670127979589584661151911210230099165745605721960527579900107982908077828799116701536537238685353821361991284243604980440148038011477041863454940732131109478766800018817679955560394928035759497590858052806176883157396633299191486216359907622522300512148318528691560143815270611520240010029411922220498590014457526577674215963293322400291480574407190693218456710368657691161689450199500313153946243819450446340915261384738474522559791174349267385291394712947165841880881019585937602704236486117665887773724991935653098452779428171620244635016148927037500923541412262751221827287944251636431349041644368204808789733287989972692373749494119667354049689478091439826508718089348996528595552628217008226957365967870592148537451350263992979486465413154977941337653618202564038630209882558053417615599325223129367870145726660491708252014937872424234597529254272840340646196805426810940089752028363205215066123450538163133281810011836127662246864848791986545763504924450437377139635682313857270296139832479678501543116945076518066185474259268570529987874487182255525931133246425338430977708212875601721989202497382156447837271388179148879588076730175819857078312173287841347663434046897400666773906449437970262987816317880628060529741716595058675004473077100782650918043121447245561486488786939585994649075696016314195008941800431008730103180907884733685210741129103013307439318521356692671759451663635437416310422870091787257930922265149735817943901270737507472450587849422685592630547964567093660440123608069066870091030075243526539958526113908122672112110878229699010627171043939718817179724113406514770213486939868848126140955333477497613361830743382979627407392932379685637675444569281316562876141100186553274963945141843634246318352124388152069166515253888249852250567776983696368604766294353780343053372596276319977079792680422674527287060665244115257273121610198506467857595473083536035252976649665445270080909559310323905338932149062432022656885820284624819706864676503347034233183054058113146633406065065049541116906256255316275817425266303482672532217701598741496779920097544209160111282192357510681903666507499151587370453122229906321409202170277339733750293713442721317484539764305778955410496628258851527164747030949290896649544041440582114425325924683665948350727082979450516402138985885227915874036998115432727293608948106551387909427354595541255023269494820501905286193227164536362735384804230607448765125161554946243042669099623470424682723209990181528219605827531571474668252263264312274041452752556798002552358866148936772142364184482306443772758284717639608193127996342028207068435898179981693026632604971907422263857233709676261420204463592642867409255154905278376553884220056957526091504047621252865332948734183885376954506198301518701774276235575082752337340761181007213461715350701538455442229181004381851295590675622288870800921813976594484446828163156187919090338242233453782999299016560624335665591348416464356652444253111742464736942814345928882396435885222513458963346994591267220147321804781560351678574459820531269372569186160375834642739986233536758252337591311374482797603665498564440030489318178018129287568890386942937185468614147677226664512919678965308643716135800786952060020261095550474914093596754346129960582329818599462711869210490526400547535767460612838582320183358177162482309920128302915788397981186790911061170183687180972714365977953799918690429174848583993074817787993990429638138851531692157729846061159993337982174015594953045816936982160459493726492660705783551458430863165634570909399810552891378571744129026441800785417627649975880921980451832572635353718783953069074982375394973576562956867178417918379294978043532962588838653746220125462380886018614704005048987792420476569942942169260538264187236128425584185998043900278455784696071142030210944424509727345005738058187071178290837440940650291158707726269127898216519795428254076389555482005799746487597402557610491412694159778402907010303422070006585713955632135942371688200384627614763465008781104822748806693070470927939722218359558199909681890871730317513763705295921263684170398527133750080318667586943923946386759728450632645117162866839580321163227824110335280658772822441620192784624312136879542601871308670190576805647722070035881148156687888367368927470743476967001304894266044923142072205590670118204849299882349171194493831440631684607274446866555318545789336795946856177452588376250763310338203695540278980567836994838735261002938103195014187254001959990534776875267342171350581177117301855758123185602190821649479831667212010108775505082841612397167434765254884804963344886870463857444742363478335403434617966566670426926649863954327574144355939975096511924919353170122941928271203173619063988328752366672445552627438437269922746547771233111421823560739715929334266544239487873393146078467241875415422985845107969149307681536096240649254473867134107760431868556486349355021486060947246192177548214825776598011917242579100354746237892343699906852101623671288548608533025131592149855290450544902997162289739245294005763361927056695786499304350539463143280206671463625850202457722233738273512097229208530109507105405774473009128517165773790032366820164067045262047975125703607048159738724746112402962336829374560225048346542558339798731037730047767748935630873644320513158088995555633047767842013006306282547701371802445347855060694794682541789542649153082808310738585899418038064467357038723704675482203587381708726673695531895393023060963211639643847850139095449726414471003420123249520535301979607798768835567357026775647711323156879002287502949068851200634924477366727348515873442539222203253340560012491982888990157013110327909595278906573654296485849896893843745525310403084768720131891288649917974167216738030427065460381867737315691116191556345436518892886360915437292958453371084219833228873826332061028971534005190670008780785536053532443639278591027408651008710303656598639055455208907467525291303118806849579383776383309575516791008019106174684115543109155249301670747212379243724863306544939737450484298871620929617832365506948479461056144449089247023090518093151473600475114294687915555601842157618439705281806775631085927030419546625358335536269265427652110343957705527212720285486446095164255305349997226586291680809818115543030553552981162913677372238649287019395357057443179683632138811188544393436743753731001635130923624124064663677978848354601621472381875740480639243758580935927758642497960236012222501061236167254603018439844075644647046907069659546529426571165887015122285857569428003095586039007457533679250015566584383225581066623869280868109584665061234235921183854510144686328769453069187345838942902091059304996080395918118843781376924012895817231104197371416438333914482218614037365193642468272703614903219698397140303359117085671460589035900081081350037418780230581696230800942512270738679654834846488137955847928016892044579834771471930095362706042027079933006883924518469556054088738523827832314046435773710068886333339241343450472158593727107473715808538339439433134997855456220127122403477905856387534153103413167229107937921191433186560580955908616096977928141987272715209819279708238941856985061251281238461738536279430946285819130406492045707468530121949012531623927319804286239727505243666040442189637542317821699952010041120981633806018043872650876030891188420902989316201348394019243142499946774469545387345961400930750166729691464824454926478279529374543590530755778151931469425129432808998659898510225337247105300619288679624746378782504344748393335005201955296098350957419844854694026991011739461126038698208096444931569527454543066715300157512376918516327049063123479875706813968699717289263043470595066071937410496590827579356920656981360622184153369234634251538908800723635359853975603879402863710178292249062880724464885889529742584556257197160957955046226104622103978929348726272477159844543896614444075860450830306863799815114514687665350968943747634652658502803722922299174532050051382141972223168579137805339634977851501562182437771913611884632518595002003582756346484330810540914588611406322774331236528264465996580359125749788502223714304354206349901060138508483964017399571496645399334300759725534749212792681811732339412610720537401308422811345056431899331886994859934110137711205815415479658951288273851127963418759200824016604663533261746200673415687884181058968656990065808823855738226977620583913200734083599168189801105138686132064861860711096066654651847323839089702374360343142017337036555461698508218627061584915978028196312249913535968179771275853889507267145110033254881141491689138070200037865569337094907121468595487231406544615013683375960626964116668917566701158889657876593780791444167342394897025490433716777165544027211057914422040065118174921223576461515156296899271974633136158984254140401363593827217423925279266637667600728746594702757421169024128113394744984753844559389358158920977940478681654052163883515525115895753158246379427434086365894849788943341889804891417184378652114689343650383011037570824603210272540127210058454524056478484662270901376153250006252096081587320176462323376153723421899056204586242358189941097904889720240794275485880595669959410667873029476083856837074015912266627984436574182288998119901564490604750420632792979460696706974028433114804102524311328984014761008328061333995268694559570441432931400343151111438757430266131715056993705744734381050669797477352989571610616952429235649369477616754158971843846218810253132720471862412630092625293005783818412501847411343523636340134904259490300801518497518302946849384614982111127310326920400303255525997684348040429459991758607155921352367038454283963396545212772313549144824154058287363879879447086224277055468254266135822234457700386588577422306380174218, 192735538294109520900508002465812780702247900225485438985817945312047607438102430160935608944240283281559146165554045769929687446149444581552501382655789837738993125215594241502085680346529167080549070072292246759108101080634924602201035783073399242642838175203266887381047734071360733100572133223780724625503389591018934073068089860797255259861911906593563082286927167843690833440454114427775919996295603883760231629304307515625804445891878792054963716245036208783387359163695273355190626549882033101796258314498026826020903668753776551237516525731754329046808155451214294008348393818457119278433808883519927104305694445964025420992559016331846044474239972563660061814271664712405141382651935837325297722754771159750582408063633269762147563826700080769667349499732910383206709001383587086179625723261247964338187192039427141875772547028886910382409511847779823101723130067572962526518023691749260649412304730948628340814799569882273085339992757502085940717577896755336096360836410446970641791181652227477103443398850564887599636904703874324018113473309794090687138217797383875350068630399142889291608837054756086504771032968917979224587028275042053832442628065468157754021556171523187935916838882461743374398461126461571059932502969263212435054977454883194019563403524502444413098628286779356881693092973250045486648241635175934742452032156285219041010856307133156091378468722575634974106272913141681206947428125464689089460175792735281852088401940817642481970340098666412597353423578612497909829649812854389670121097035861773549151127958987404751470343398270882144335278140542977869850245845270966000476874618426227163225901528118419774337344875560655135500131587870534973299713506184929752743603470177245321287083470958403008758579277932458299027594829527524185406339382245266863196558741667659415593700126557988456969722530474498154620412385032591483765498640773940656200159221925164022844074317353378625437829605944477643588299364522679391027623893957742843473773395679980255072708609534494837950598604180125594821094002313608045428703158949078652188073224173538881945424143037295529577735625608189272788749860614365471021274376104501773696636038737937638407849692105329828314245082606936805510417674165268647159223060955282393338558672536409633673833247320731892499746428783415296353470328838376817998779647719436665418485531597740103330733364099401187655615635987080543943003404274867730749988310533569153742981020140720541943671353571975785932494148399561973745869158203037259255418500304520590459433304774152825606610661685008243722643779127674465227360153518363571924779945647182068229222387704856782731549113427133951301066331356065181795257550939293562490927293636034378782934319921997256448212861882311076180390327985975686380514808593360824576582395026044713494727153346369110782104281867185284460890421552481058710565715388170486451313562578381650477164819483383009849518773071259107031484110075579733436761406061100138644469942105654417594591055561014781831895084465508715586107635450436619963964982968410977267224020247577107631431660009730411708797358592527700171170509501316659113624056564850945768272545744854771478198271338418689752028777681289370536856609401453275622888310807433123880638173782549226164313353232278714719073474519985497688033277750010623238954583679044508996121193070321048694660843327002861042476067619215867346562990247304750563074515400703498763389474086529014049557352709756812025310838908825669095191660132485219406800459584629046769574970399391815645454778499319361487030502055546678332146336179070292982794849789318445497760022284060321750323813342506037598708508002847885754080370749970537519283522508088076892382070201781479731822010058989409031221986755236819881437751208461695587717998216891868208873111264366252607704427311465556925458318007056992815188922315724629741324567325858875201944484964144084782211811679226736357563694170739914594551177576189212389354044395616747617116933187212319318009837047238547010098083754429701607671507195173685709716667231841750664251838318675207204387750051941453999780992607590390314678802406430713760860257255534744537413560328890449355920582051476015396244361156635216524154595556878103529301517755040100880970043105305291896854696841896172741327389227704719339597603019332331013661780571468839902542233690917081381707440317598540736299925564135956595045163209631999434066746798300691619196994109221203473117736683171883269738043674832032551990962755966365389023565394718366552337474193949165814187669687223807484962948849529878817404283435779575449922256162715123569683850290740604043927657937993134481803771821935324167713983108714700532178306300190669627758951302863221071596484978146395255053469506838633215002416752791818538673018179480863378674114688612888204719137620757769313279768361585173717734730673900338005786146647206150377521586216159548764155355607104907715223400340804446390116594858135147516176133003136082955902515806003443624227220479274838482667297021512664569957601125048441993737424806633526609361636716963005990834840526810800899398101518659495166373841185337004885850259797470744908894083878821183840818078169963682480718250872946192222893631981804616333445184863066488895286235849069423761034965626360289477493368539769494981815144004547154437925272805002416345295400647398339744656288577538301691735656847760638409491676605632080293682115724815330978682891940411951044076031458983142286279484134513440198689518209543740676568577149350930080884483482406771342789645498014706777119403593964342405600985103275836363958253918975084113024313754646343559914372041589341439687423375906307171427378007886161388672791962141900150832085925720577918746421477076000378746902342080986232020293918625834948441211551507291448502736073295581971912671341026817459685006285716855649858583247336952647938458269573137686173351307762290806776881211046038769690483484509290565493947966027445581946140691711472439202913491250080864851243565523756857498044534320425354933581383830950227485372514981052515507958759020343435877131368882936982358627648144293227150326909094206997345658190076648009787301539725809771460874153409093608900842155113546432795758688866689138957423378640402723729596377361203533411120932198265238268096277908402265649923402336563805776602899079101463979146784103850441906547066617371683904282993187199098412662369088956497742291289635359248258643837030027734824299945369558462870051662881874606230256449453299139291065468936262501473551733544728423291684454815015713845629341937269376748546532514797048097037945965096999015469391564950192614095144778896968604800378338513390178619968905340846613142991243986590435247250505327053234598158142566487597094537738477649459945325234617970094840636632500238214092395293521916722143903008469235291141985490842813045107361105181163787110746883646432076824022536420100822391752737698064359060646337235469609937772372083516508663389932801007806986822183791753763415949614224677081252654884989260680850832033351560329498894120329051345602458390234524759397213686146585046744311181210581901846153619297388631031501458883872860449262685607854439277971905360360278586255264515022548298212198466627843964506875648195044079374904867937942756868245224762436147114046860064963154500967582367477577611535853498008438785172710586144727731817332398075218023023614295619834176285109904609562869881988634278499040073946354384481812948361090746716317334862776229841781512692768680496643977104957733501965422779812576664431794400954284195303818957249778997016749790034371764059274109897610145574086378895851961430102613965823954334149370107755886920384156411227059045943314913928212935169997964938085104881533058556503235214890604897319833252525392413858455781243324603224252334659364484374786164800414304388735130563353826547116579725575204268011739926793957487114418417955041823931710152637751481333766176703902439239760341332072696646205723270016593523391621447740553588203817489450628656019993084742153503289404845277918120558420281422170648832589523888814345388569083585874782575743191972837413801024377712301698068619473824902143838176383526801550213319490396697050992851391207073956929012824351066642028434698249374377592234051745761561934446415752721974993912164011968158030223761766674458729769818197516112558204235869304353145569725496178900692754529601047121356702401965980256074761562963241067392077623637707549962700116941609894165136690892062989422327754245811736419363268430026720160010706219047542696491554459578065234370746761497604792779288458339522587386697363753867217341999718692991876051034366672704329119572498213444272506286226205795530056922023565592422275678154910489907975158956802972881363614951420882924262842531157608179606401414991397897085972539716343384857567372175679501390355070449107543632703498155271071822293839248529614428987827142895709248826112692873948596950653704834833009859924863081661366129729997641391164120539109413781765278452284814119919433894826899777365536101792167952601496073911314029183484194551982897412438300986799129546651266767868741343353272731135551223321872597743165261299811937281890282686195776273632317487874455314281664682111914221147547872054092289159418354680338995716971561917727941360880584287323224998787355589077592405457811529421894160195771443072175618858206352422405995256970054410454309711340095623841508243441826161878134719171485094019416563947569883937684335129467790424229378930018430713967703162432216280506630537142987527247368616614025810299226487743350390404366292346324410697370039386231115220389305865622008337012466398133769775181053825282088132965261124373707687725739373934778214968305855869813973338490405252763243163198383104916210226934561273669944083382442829540203157778273807557335739735824843417624304892203427029702836384255479943482034644542602259658242685504758899355508515291640456894408491551778658443415224125675212672347486161919597589712599987523726850182340316228821817567969750895002477974072842584025965521524316176124002399144217648653477627420881646795724644138728590710889707734731608521392606396775890618829434794999279685444782093989549687352658843794376828250278674934014936036258125718727243285192551838226632924980206402223885563749182863354248505606677192818193364564709178411714042660642464438095332881936961188001068766970348299049342034571565576418133845937399443415861417029068229133005189991064118130900610009937868369892466375171598048244835508160572766840628798559481270656811337805019340811953811134765129298179986439506807474107628995800872969865852511471868710143871539771497413373790095516171679764854249126391109270138314340054328136069320308750616374279102992996686484859521376368832556188617320369506046490805023017571714594976187341377301446954272888251876943398694940954954955085493619937898574472726316245951618730606207506174345027909041591617024812526174672972127419926465503823090395352785722612193789852423294294246230936617274907300996336654223626958366404762960345936397271180655961537300189337697147407409996157884246378825340027099009823083575191107134879911442768175245122017386316282155872766086403323007512346620637044650130034016637591866099437274154260752293974748826334989535562859190149620065549997413426345087156266287894572644625591599271076598139123222679880813876717929985520851099744033546455508230726915171936738065289465544227752522744124962518913677860249105896208016860260048357494482218595940073407468617736589846219113234803759228459701446608000511832342390639939452851588284623695241027255661998188888102551842437561312221883339657787909143083048735169206487993035372474699445369927162338658449192845802493742706576145879522754412143492046171463053126315165446058346715511684510799046995343794803417973607767713531567137192930745744785008351990727980453941730178928062861432678716053874754190520036874768158646952071543277016998822688949325030945788207396867049491892590008269036365274678879665518565119490149796829191378951460093425717939134700973549918322790684352506110771597757631034376589350429763396500681112254602389795462620881882820508376539477689108345297679457099432887953364848045128726527525903375219178627652887304910489628067912093288198539908009997616553990112299679952038954844367574395229107234956619337423264840248280147591522013797567630587795940136319732509474337763322017255398778796407379036553968863229401206672657130719057507772261978083314545323732393193243973056150201281780743197008723024543900121664420120435144082894896010897267666765457927557383937695260496252622132782411064864362034069175370937975214566045951690315810315494979897814783330974890975765774089162185985548911466731931349479033478398342803587963731858143872732409659246331312073917097116878764903484016936255388091660531320309418875594320669505866799706405000757584825181010096501149539336675334674071716696919674625898385785000833811588991195977240369019076446875806747524569260928211221498187196628968242403046955971474966627945270810112373126056211443038877959299877745820553279115843833106051685876248377444966194176009582670825058655412518591530878432990180972617093756519117092109276883343106659392062816119809474720194206865278245789963228615457337342540457214751895483149181511193039284405928880406788729273949583012772173043079296924173118484089612852808892913422811319741297601115562989378453665392882910517512037849701167756859800129697536197043861662769396311130789675781592100868736649826833582998901203963871090004458002296350301645133673849164393706150044671484232755868516950846451498718883962207044912985142240230701136329900458432171813373102218904875632985233348417930353592534849560117841043266431230426175815075139117896561339413571285729616330768579290485864346356465168905347853218233219604032036828375667590896106264270036292911994920541386945566603081777600553898336242654036007472738232916463125210223217019914130965027235817559708346273157869147380568210867577327149992870047482880373655799794815546818316232156256497596381989759445665402990901556273624024413705464983261406839383453777534029458242557943999913798689221838403423000373239467989081191910405721715123979412037111696523004404718946874266622594296662247837026074214511067966397808832202565364453674913844830875314234501230978852129019954310520008318477005796686309413180902703794706818106101218620414707353976687668005245646429006782742889683330822210596521223320519658284888826059740668276906201668972931405041202985846750423779904734579530813171693792219258382188860558069645164584430061974133852036455411466376923214425537852226989422000474512298447758981574061931246736676944202553161688867541387090862408931969928779360685641088634030437316635219637362086478314250169879615847577866805599914756941145222167217783464163783331459872679302689242903972480904611431423337720557796770043365211053024490803751025234294284612303636975034564754556223943957900761168267066937624219142704007432636561710620333415116852028145775004515191827653234713535286223736451536287648925545187607212120914870628774992503078826271570347658285528670260239603801414749783262502106976668763941066691093379972057447748405173098135532333118158498767692410383485161459863461303961209312834156529971358960012860802838540864871649021359446093945394870471990216701145539307872598821387505932311740109456570083002175146417967717583083690984832499135468493883999875308465354304619850953579578873817033561467704653528073865318269396051649977299241931719212416991964120807269628704355913652891462323716236165050512190731227218925211117925061526038530076508645929536347276439500633164300294888712735713345841781888109546377229752110651685391138814511865359643489925300538269558474225186154089551185098875642024621266372616186372692718936038389330024854267246004680906727022085612624866159529150039542291198801603941666800002933771624405050116637200818469332535695054125345757799992875085292526158349044917114242350677215440155332216335317511348997414293005993135136255273213613703415393730788111361777751841897019237124954452478740278813056482650351130013885763338331245602436838992249996142244003763721559959763084481639915293746425853635396922359186223797811820532733723377478862588347300885280502235551418400192601365211912677091389989244211021194471749891161871530543117470196169236264353870479614040651262198937634121037556584919713509473344672917938546788778425959385026526812909873656482352805141025465046918487579117258551772487978210301350274499119842791424346487545562759758534842123614896317804827480205271207168414989314715931474297314500068850432319438041076874008106233183401017344191720795935742127953533800040299636096256972270459276048849059452952294330470113350010066446854240652213956195843934225929926454980172336652299685223685123169637139649191794755265729336184237655840132944702480462059507389829143520594940311098646331029585728594944450149692895189325440979397853546274306764748000323229169879432112281905701530715419168805443560010541033351877553837639558733413893237495323844488887119869443452733293448926066930285546972659629394784601270534938649926809743703736249766565163114434359363480265703224541930424720631179191299930866212637442277335483538917155694481054203498056775797554086885928399793621403233500474591039750061268887268925223686155558048744300731065021836530427472124932269131535868655911053776207949899401487814281767714176553848090957120074168739304389485437263800065820015395876584146137252004051905471365289238672220475358821956328620967466066482485317243861794153310237395292591960678356396702063565134368681688278443330541226377618486903086609848754544008975321598806382420758692575809475126582878562924387385972833599902156865254946148617324750670361933719154047436918997436500777760811605960095564795332316868301498627322888690742407599935242507043449636049548617332645550355874055279068284043693300275074226524091137136016502482425652877512025855286685077839580909223472325002225130893028177200599080082944705329828098104486945997709710162576774637459025762747153950918491154596722886717578820346614309447249239439303224511812813712941378202147998634000520539543534691970682120038039525516030999666384710549679630305612596933862325715079013227755427895882799019975099968074258317184169336260120819842544974507187700393294370326300615769401364958259373989222426495888127342841194393939908267015815541375796783827856954499249699232760840206499663964136225397905597271265821450594610969737486935402069388418253954185476904199970271717513950665712641632748309055469460190594728071571158366259686869276552468549243159419964466227170057386422064804071894808603399341750063535631431976468245329036377184620164836222221692224799738262978078432071232405187021832980212385141966222043851176876497539395648634524732689561816756648885600466103954397183994258906921261888650700763137577528731289951566237080051901233225299373988898905497355077323740342899715770469452858971687027864722901759674777449278967618189653241972104520169470051766562149458130762243468893668648678349319241185660796840746924467126044737118060430498233901722884276837102130519729661318564804791016993333671700372860635164568346552082956468923376979483132373913895680525746567444141300066778016788680970891054243015756017467238873200287392161495995205626304709909482058291948532124497468019941897806315943722788572498897024593524323647522141982792588336906355622192929669742098907299930354105331222720970043451410406776298551573249831340106381203381336574994835875915468333179572190662555295636455930635423717603554291181123278505377675240246374989205064910857444152841077124352481379554064577773198107738307009167705291248629366331624963606400061157926559445193590064009996223756105207375443721998690477622361626873480612725621071452888557860328046144728398452548402437470815624320061162789277078723787313731917193783571012578557675259310040810220848104194024810352923708509765303198581368820861030172039598381415690950922394832473728236350609772385562131941249738962488340580459796867434102303124443504782948246191644562546248623593774067632294154010273500492565298363729223589139269313628693316229924520973533207474663657045478216050834437473032152114035355548006833151345743370788830795026887453424747082094666511346565261761778132578766393692719998271246662665520572125986731523804232801484883553250285292193496648369401996037703345947399870727437814515041842167002311602765569240690989575094875029335836400632044184508792445720217433601836180256028855984187708633272372126982197210421622702236002211814884720586839138254408927936306160703286159572772743319826839044728022501201330513895221849467920438364219021314558599431230238541380870538345894768186001249865037020646497833997170449602752138179093582528417997748448199422816336034237375888891837437029288801753251759024177002175387921214505031663189248190096877582745492625143413241210851753268400680632282646342011845217086793415305888614507275128855416463028396891075180849227444029843261805347591127039975073410343459202306753567273584977769936820012042307238675296551019340099813868927837085098437604826407964603509070693971229536766655854811705365269000896400382559023004597300400854303693405543252802206243414883563281959353214109907199239216940809886282206096097021708281235149431524119959129834799067112354421225426170227783377277498450071443301165246376370521006140975962617831805670599497231328897459743093159124812149912526401157300065280022407483037113404078739262020519324270613760554780470834343155569057803747899754153679272679558550915951933599928026498702302304873792889413488126214781724230278754007020189665087764614440044335011677154774732112047948310318224834774189806612739190268595565736508538257046330782755561751427343777759995307735562929393571413456210908162629217117095716670670796938143055155410262468705315581075646773369145530421557770555364114763439060591633640798520293306796055036399908294476887467730523744792979421875096971935645095525968489507736347723881661849242073595290946708819689743212750451121961122108536136818729693322525039410598376741181019848111630666020546973411314895574973512106599074270491343705957126269583037327026352996506005256869772645453899483453557999864618743072011704550706036310123997047035042315102196655248271183173286784338481851498654949981735480061986070314023164046097635206786091633827994530962898896066651641337699654963659333180493424315048241482619745671368578016920144401396317460162309758598691461525618068428735298072949487229691125268512243390703361005983321683306921703192758499085530939149806288609403187383747047386581236738476754555350682955422003976298484664386311824397443957713385236260162980881669167715619603398818125620294475555502531746837934187959693018492966143534109225764877074834647903718668334003055312408945542484390159403981099395845244530164835676617515729195483468354711630959855430523275000250151491733047224405221573903517841971856709458044796181750980229782521167577241545593164026639538307427208420168309137801414025501103079160294442966749827381636221655776115952636229710344122919529653995030865900784899422113903940326527079122883422190544567555111536185663143864221835468003276367476786471869718113028742641175834875781972653194290714250971986697393086084744570227425506160120020959458570603993094044981442129697025820412828862479069739896129860707580568812203910531582248276324460648950397165903190618886139936951080208732338064144423454195576166128004968482211873872869315861611836238011087722804199780878622334313948195800839965820607868901767487326485927073914506997088891508376727443452955105863628633696106598253672635991272582363328648905701194725656541873058838590624439998050446264761372482221269529440586641039204208411628905607330708222312706621074168819575847420925142472623293660664475793905517335048076282881990661721226678335888500687561280150278092812257232222191272565994479579087256984194684088768854376659420310037297979461417787076922539330254141341376044988565572744831320635645233495974370982611646635788088333840521176701215559250990076594847790301570668500606832665627371876196753455320951010677899434475022607586634431597625555569012746143910609842941642309680282555106839484567619403421915497607717970955870353670666058693788846125310021621938415414097651992652049314276845409990960221075527556740014373589881480396353612328768515584952303746200583070625134926228336367747291687288821448506970492025254669911643140998552868277620298162593380491179758841233457231645993344442473630249919725633828336178543024848131783667042080629527223994316160432530515013427980082697013340730335858336004981664353360616780276215293568529620000406057060290987523951984186772469797438626847766140642033356012876641834616049596200592848178169149132558658953465841146688667025739681343844352241968753727345516642417775420675230812842133606468105919784262714403566659235122541148368749548878385285783143695300608019097186445719920958646415043735960205950831985619870356098774105527322155939012183986938563453326196145981208204397045054714068776495269598381863883503425064225063286898594644711472103097927783055376232098145938563844792098872420757732711481674385865182571808014641579814289982175372684392811097637482131892518019105519386668787153186596030368454829198367436186105573473061663264351292952566654505389810211621288407686107867623359083235379847359648759192538409776335232313076142061567149701832396218144468834321288075440131885783471195152103459497087622735649870602527603301060030650651107490455232774459557379801298209101227665745919028050250055045861293014443403119867862598127926822826795085721493201273175483080507138869864078877114637423217641020840061973135262543706989405931467130147807316686523171200973483465715860881879560191758825687163998866458429540163399860191041766955112235839385081512539784240396335302712600524403964677178168761496062023361446717864289278345865125544579224525812705698117256425980414522471084263735342192773735193484067893381956322807003098117775095122125642988441627367316428551061599078092379678453512025638484507419191817962834728264864327195579855109889383563074363921421979400301858228642811582557846475891665562688113753368012515178811947564265250380375982848969203147062306004609553871234886622244463113849067923709460773958857471031831989617394260697964470450505307073143541724039862418851545625592443983758955137798702507689293054844436509423752173261965814447510219167747381474141111500804344868074041844767556603929501113610133136724957475704256048505978425383465732023442347471860288867529596736421112117347674865514037870035738537850247838912173868545615753803789349657684972185282464066921237521480795735586497212232217794692947929360481266186023284096980517982495095985300006917400737537168714640774002364908946458910704852934675202613912712433398655431290944704249637370825221164276282164529494621183913628774148811006814577484074388859075955387298767172536625170953270924359090550138597337107076629533332032789702831975123834145853090273523169861336092246834518130361944423188097271655950145171046092611002539909805973559099047103880110917741154808815487475191426644941565704035519308295605016949397446841440340045111730473339057408063483398909259770218761720901152580516059834199964727932358793827023731527560331285078956036690783403334364367761204488485404904087425687759502505069831922432010315125673129350167626681355842535442590247589195995413484058802052895708678331876236988968951983636895176319211849370615801157868806714164327448609650100243572658019857999280590997602180950322145618170226019526020040844345346148564034658375887367268789002757222089481003348155548830888891529666680246577020074149768817611130396378309578329274200250831572719232043622271985391295816399225666858534758544711873868710091327089594971494915946314566582592805028651287701158537784830767034258043998984739322322229178767624656859188932786578828221144602724311274267787557410749354367675084477343068085756696693739205644722884873952071845188714101584691499126567643852295133377656799431858213142797944122635478940057193799655576619232839024303155692218430950483401118669379303300250940274879308410806078324549014968743031443464322305820924158016898035983216882323544618859077829131228202069585674353241447198243481090316792607515734427952039502075428388083530204447564585058853573209501192371852665636672015831712939595300016808227980537814900686098792593133042921395190008146753268131316296491624671988346713770896943422553609418122007419462608519183327221405368737984156134494526077136000559966625724481480854152826212970770950997208095493482936137166523756413572747521784776206598010199121340271227518020034439674485734534849914645761877056952221940707507760390335941052589145638908640072447614648827640213577441196211104156379406000251572649052761359518629377394825423710802463462884458413737791938985809945871222113614905916927336323346592039862763114275522552629122875254106257981369298137666404194741426457564597348105880577637110353010470541365674200722560302396153545037879757569299572866917300369417146057938121227464344612029645865718883510962026109921104814343102478963695936847017192260659185119600492793506850124138183305371172743939501438135344549088118436520444144127058417506847043429468783200899601481864870318900062341649322553929081137845324294820785621988118639872598885459530043110312539737702454218376537000027404219017591207884875356511128196991970215950886341047962444592645823517928263522601762591654363024024151284798649392577812559743576246283179860663716250619985594012575468081232451851526468174094369856439744814921614045656276155848159431034415725904732969104655090216004514950174322653001120473071538372369238942194607159185136808531560276276489720424383492237172380248171739929006387825556233097910675906556560687302440175947013226497272354525309695004151351448819672256077897782369116207544994948837644835015914074037578970023848366634644992438310109767690229713747569298662499986673818300944215517346991437037288354804108415444926324586965916109424603460358205010092382020135179036860710126914416723293203258762844869179264885896681198555908097757235426611519107850462337403095680841121421673679668483500949212944127871500063139906320130329819925218863554136435117514385570727922067729072922826121776530301715725219174210102756361748026520566106359267974975636118587322431599177741188726845605809030051847201575890114832788388836284407585532874437374519991690265086389115235920592578616424114422424460979246823967507204410404375250648183646945138274404570213396749222597461076464114550045878738869693907236828817020784967303348906902480700261564655280155179170617382051531652573077063443856294422035908211960475845118222728587029073134890690407517091278575340501554642555485359216116458660198786741337507280734068656411367614767463026866071407464284328322604797597405973101261103025342041339915681133080935756859790566240023325804823890063866064917281974513896803335341002554348311274564553524293216097741402647014206788822803069584259376456034043299724329229353428380496961758134410873077275359092893074393340417044099611461180698114123096950656380912603813516747243712143441647965046988045827262948835619577117866917924580652930713856481275543807468072273013409954774490466268369714367316187898195529898591299562082353615713090685187147737630141071781271527865821053075914437519612691438235515589006589922224301645430004059648707044737605445015131305643452660768223826022089816284315565369937766261806003169506168655432488501368750932647346145630504561743643117274931993957290423598819443007317837679754928996281471036450175930901785863552693303900162387936563133240402437263406160937773511884470099716626554067997938045295825353702097682233203905713656148181335609824304159741835702529767131864209089207437187919897237338462884349038365634408203021376936658007606104300611723555362144247905048575673596021078887667773601435718293515335407484006961762198399025754308987397318771109900614488400719121408043087231279515681067231509858480499473324097696738168733007417137200630797181439344962154935833653929257684104005136874645341949234076569098757266917880124522234414570209694845779064648013296328772866732261681587666572420809787375105396829541970760036927045280536661793826869000382062786136824087686335663515469924329987191263518964098059575806725183694050747607197048336884826423284520969668187704340929630363951509245080575461337293586861103188330604141800774211119313421931883089356308535975265329899524263646799477477366310614833678807913625303971334035660156401736854813116543521780169957146188882904331535083345188803124573709308933787150494922962353593276996883451684888284798197466830038704525441451098156732879913434699419197601202921535458166067907612714475203944104853510888335442400067778041753992642370405708175783475832042226007021216315116467194617450478022055122647573296715222277017712744269668249483832250431145534625452219133806691672795461366032037310847031989369397884673847318952241361717290291292290897614972035172767926298455224023693536098254954843822467655529432794194393597901592006067857217688503051016744314119548989872636735832755230085651165622726860000632115987999980416147451214778303743865968901160063682129984869680759990687333077281880097692309846861231515506281130391333119943332947341137715319254902458982707354035909766184189848040856889908459753530643748996695479268317431104017724129489770575263407800806508778797399515124803860640064872695454818296079965003647566608552586665687160682868838714453877727842101943653622620206493499881068726466696411850760853614296036523466333054932728331549359628448566656038030840832865134365703779344461823119367549667175534401225177084969245802685921438154705016160146093420976120198855986265471813980738435552878859746524389987303236695840744828955808453867105242925658683588311799054749168669563658239939066259479978170078646469025647383613126629799524454797880744399624006372603877661589437516058132775224540185433291492891606924198195566981126455050619053710102443473000048676400476089953445013185399690449452071569209630825697223382573861686539072603500713129580915832327998057698405000842020126886252953312909125670927085736418603440343998472473022784534391514182691624871366742661471667234076399933355853225565885974542204723725564160105607298415409591334018095471802693745071557191907614362363068691156474546133778694662096977566485682448543093091778289579318298463964053012962235398998350251120393627406026498015883086324501145186429675618916040763167184867828398857581639303858875649668367470812727239232648261711448024693480681058922816672889463055055655186189302358590327911551152128768682325167222374507254947993888996200525242249442411867774488414076734845151510003646595312754897945595773435936266108354541864122685542486889643944138831916711889838073944627191063633875562587187088937176617976393414205613273976749794700497811964866031461325704768282447250362636183909236651347387736717289939016731290118178157240413610490260125141843460274212576740959348144181888027950962166866224835190608358668928088402143614290203580646503738900019365854792603659399460797715296586574744723490971804183629276365189120609438387446392626230716262772584491890174189470614124610483740780486031684649496971463794241680101815748760295275828586031310284083150192453736718089116071154513592496742229823039171698045604423702676164264723760459816914922127262940907476952748319356402992519404275219527553528839152327105524179696507485550479636964431980976753252851899942897654279823122565504402516898515642977470152711118335366524990025949573387713696945012602358047050737601578502778107824949693245023257545229846467985935287657345804783518445432329902633046520865987704566167245166101793680257809447610119496208680676543137288711775623437893691188574530622801006350697069173284362712207939835521623124266316727784696835198793217650064023088682806409999920185626273310965258369599929966610429507174601807967279391340411453808488151271829682442066187697489017182460366183423265061164373035381258223988579301768046971730246941470180644086140759380724876895285851268721563502156912744945274769332217445432960840460146682674277656834625694107424581902992686987547387279905912877523147284825055822675927175048627358574991526639170400083346278036617510276436971838281365759100889199952027674470707523583782962232557034898809944309364405315380116149350510979040108866584632768832834642760502091614016140431382359137268150833531155095068400499769856401230797861148762535959147026929877123367106453496226088555268956742689841962921809135369645646158793807651490580280638342436961667693178338745422434161722027298735015276854586299992550030059745038765381473929520538959254076030519810764343035473406250360521205917628660477378366398610288035848678555033682668526214260754654171098643889451547868713517840683808499112268255960962096642664495080382840786102738623171542758840669055036677614157192949174659919433228073764880218353826953465746043367597545615544449892307500691411556956872009188176082594352724126441278626657218383382423554068884078001044946255731400509327600789848247828049090251845110669294845098998325868408343833639270864018268830563882291881610559886344869073266679883416149012598428956251749087354310232170646588156648513735209213451246028722095143418037512825445821824433890637461862677359964013316182441692286291073089988519728208796189358292635106634426213839076970931285216166076738074636821465973073967324976909929104486140210553294280108950120634847405699732054687666935474495018376458572092046609066800234862576259461148637661395792380828606425884246356260379805411861803956864377911606598209634123000028223548650287545064441635236204267793561673674172021594149435332016610412542672638205128508939146999104692653724242315762838884776126680562750408219945990388866233826961145487433129523602000359873118774870510864004336124585565330718152832727361970398787763591891006889896229961120221347266839182281496005311468108165731477595729423893758382347619666605076611771622284791293242679541392984863237056858681683990677341777367838976296594908815393757690942639535663081767562500746684129843236804410754837295592446318174611198409005814537811159039056516006559391536170115898751757113823713101617476594896018873869041373347652833779456185761537787172616321163257264033980903837671048674079021261006718157751328759443239865272904866570596168070774676926078327067103752344506986295591360736360409957180287628762672770406547959837687291908848392475382139897078963675768545299308622882292085635214142101721499961042438963166511080144008848192672840739742178017036227411103134092313013385342506198365695260045673332789339046466846946170748771073621336749202544883736030779469602335010798014111408220314816201117502992182622835732863100442523401462687301556928704092581451928287075515808653547213061029453525439775941674379207727374851293592756945685296329439207732684469471014090193485612811507568337428987205607209540882367497270400406286127921274809539648382143837002993698317824085907586344032751993536943916400694431949027445360421498742861970988161667810495228491415243742444433298692180266898710508639650799771853226173587116797478310287170147435521000680284119429808280807574426062154431768859036381708566607147163016566385259275365595383133999989629572352549946245002461799710800740021255283679161513781945859379200070101095478838309662818902995767556706887213468395443270239501836322565449388055450903397663013725363651306880381573955506013538712871835869862668698311727722184212086662306039668954269125814353026485206316091518112962938825205667068622925355090435527577912077902336545037936975007869108747798254938241767679911660455470700880742204404232382305792163451173262023551978878535550906383253223634900898220975639404995908282427307083538819693052281219773932485581436876806370823218144049767589770578539157323408357038612578644856412897211360227875466019661778856563594091407316897768678602197315885201452225073905226953132407359130039825424542517807166745209789387281407348801899237325757396178998222031832098519671359222610391979463398711012428654031495918809036716585940741289224526209389363288514744854150503996275035674784211200643581500998002093473817595494014909612058570471986514400255907884457598790002769436426006617455039475966452840020210664885569248764875586564594946326123174325238540028452059700276568129547210155542763633248601326587359987636952697065200171920297411255906269052322187874832887832183456959679492856943193892904234560987665027299719943768703125927939624582829763035599708398396010278821306791068495849958119183053333649953985385136170189415752839029648822406687874478344745784896679163477122625742776213429109647446864667453019302218094886898542675359083714170315462044812066795056548288942196614831045986669751539478740816463992163020597814918364957074601924106324098508806732091597335099193498726697857620616469958837999448924700924555280128937722917592554752095598351621537088308508543374036652701186389783787823577832584018462241695836825853993236563580341382429271013876904687994344649760268788869035370737240642495575370263735010765925697063804132031777502560112891661073917569374493010961724603975138643896258956875106032669519706730782369028690286451423567398589495780807952491469815750086241725952330758269032646489044509615691267822973241772776854664422640102335122310028897128290284460632945271110397603888633446895454079744742200933883852917919184415640954034745719923357176131483041810927913414342062938093574360683435225955451842612759457941605323774107988246906879167344888159448504900444038077036706377179862886294588305066235928704163130779627170629185836780985182381776734472341710668561899315854800000090953050198525775802184520664653101039074637102948117409841560012216564813589643098253250841213030230750360099149283285340727566341426011037380563986622900484251380547353085711530539554786835462070597879178357369137408492672235407715518152048570017050336183868479361894995799317572931385320658242283223324706629161143186301367560531912894589527734275909949504528598175480022671311737845939338866123981370522485171148373404927683118652080992850098045800203462007231185429931810375875604817251066466621175121221384694390136599741171958164457571145212322115458607910649130546441084360680621868609702873619558353221476665741204905451642039047022928049611386565057595786176679592011297850626040964268154272252832545484318989108039120214306196639194517170644020696296313207347901364242324388079311499743897982144967471886239784580542157202828079166885621455777747387609401449404472279068293742619780599973839888484198823980289959767897056303846614758639689357144873019900908316462406477396928254829876586705529319353126969760219294380113190712658683267912910016806743490550079390372422506239441384747523169390035615114006162511825172738675592451292002211284733491694641798295689740250686969081029143658896231324811445494992402255715395964044972794001293166925514494180854211909313101240518551945798617905063994192824873811618203150436898826166436001739494712269342074242572890461687849436001208809384774619499544445290001686438437178166117253726186718979999207820214904912933504059334066484229011755568915931801606261754696711629684371238638722316966651433047409917835872875841653021378113814888261649167575442816325519741038025812287589818158028643556040009659305004215028246607908638467801183986880391042194101654720393014605982772961445503418356275866495595278948043672680779121299421882445564516463846602477844187007163388311995419643308410375368277958119447113509352620740606790391708569508632234783783397027396397649306405734672691492034461595222795570105342543080780525178383945930369502798551739291327710562662709235081096638104290567853676081963628103012119702296828038328311072762203065885783940548398783428870459692427361671605177799838179275788328239981543191244782110300280336388179664274566568010940916750024052813630347862695123157131124070259733124421731921224478260544135264634118766177942903978084802623881351564116019341339724535773867214102581869172435958637867780028225678916493121480993634336864107117930774614460641496675801461437874881875213984224308848723440087733081669961650499218696618255984472692138119668320110262287783798758155326272693656205906794735598863856976312927198550542877076830974392862402623834503283721652497213135439941242294997753027945477044333882555316601967262841625820814065757980270306163167821742905575434180030549325329447281791374533757649160428285014378989689823612121199913064954191526298923652668637802875930775764426240354985530549673394289416352948375923273044738589471179837982149440863805308727612713305198744997362592259979470915044320894737209480629090408704239594883931144002459061119234823240336301094548260398096863069190023318454681094025505868771470692373980563893564624677483416954348935192041967762298467422813911444310485656687348191772914396649146431748222064799829742958124584553180152756463582612097253102127960860096746437574299489582986992471752086574997339550414190859957667717456435708946451673224304424790661873027297544892044457025442593001874790824445152760816348308420944665092638384635807964879933431201743547496355909201447299305367506704305242117532445014600153522973664316783701707043302451183580200729969168720848297565905376102593089046782494656567555183604476681708612449999776425481299675265269315820350215553549144252981027594529879459778383947560146194990967365402574657896378625490563368292822879258377742309511082849460580967413095808728682117947867114898532922353839869189082594388306186111418102615956535225850772193336598105657404597410531920867761695643121111360190161142097215947209837482277442131387014940357829212336165306540935552445173646335299963274992553579529013379638040611440287143062444705296428637674753808775376446299029967049490834746691837005815107131227364230607269989792420830587807538456612420293272728251803120417408965147741752375457232569493308598483063896830917866554370284460921061791855808032077117847612057594851482113565896589566287407106847373957531316595919449241338728561382275951655167731894638346223608899763155464193028200888056202587630621206780378598298867103506244752075652944007451253288174333008659879227534237897703761367834484153874552227917333105793378728330905962256512655496626723204258170376922605972478583119172858644050549889141190198487626492449308246009973122628959981837141452533387937221670572867536473751943902264427013522510604048503539783618111236187414249842587527044487688161732155598533894330882782446543941410073655039338344256780852984681994924159128436481538421099728390051075791410289258847733579869443064509109234206771027756047436189308562360294348298935189048915064382049585475117447181472207541304726216118683895264275337739776903258920524000667739385880954857456416079038933773525588419031023952865087169441402941100933697621654287236006983577035954354305410895866347071456039879052961623298396985493208892941188964953975713620440555568457796341739966967976688389956227178074701190669133674297403890059762516207469468509224700342464861456856856872389130576984717853843920628471874628119825876775720591784605217684587048096578767296904852103274966599905791652916178975553272757685226207913710021640607717623726682422990232179148658581220122437709917027515394523345488722614304121518980852054527879631899523921677379647657465698630903377414985131404204184173954507456807065990721395353532788318129658998007264399520595358203151502437360176927036959835418469082766360569145342807557753442674392450157398958210571370821082987075493399398039051189592876013232009975835739367241780027373887348739493923259123987329441589978846303681149952737495628011824848554325483021584491621074652996610997151138372038325812365896261100353938947369434402625054322285320298942605462426577605767356875161527838119542856379363158447340018569229631620519770181749249286536690831133044011875362867588408229807083051545696056483359303717685534298409321182304940559997838547255422174373239221490606769666182387646869513390191142454164107270541280995722783095311572635522395167956540012009871122212940724001763573070681988461242899227390840822793205366577887779086166002876525582824079972477687854831464687449691959912225476407134950334686944600870533807791909671248953117847494177197856007845054443006655345245974533518517496146326691988303709247926820093110719028427978547922734973257272489378949315114703782410234252611826215264444935934315766885604499674212713261545605472378067494309231529755151879715656061752734782707578433047358390041892700308035968196437551470100714234626989162080318969169667015908814244084853169660774549556023631257337859230299802250749138536137904753955552009478175764329166159678625679945722594303001956504888851301123429903412591626609262996573954625477167192605128717943840733640625449197012797757057554094102846043723389649027703330497291109016549861532502501793107575890582572451140423059360388797054302399876789433241847245069082068252574048999061296009441598933852058579082223783769385162630763055612684192048277043722254349778332541057319465217358695677461438337758489214529205064452149369164140690690632514171749556249396569156751484539619296828253191258978714822942010605261715298527475561026734234324466040809040622800473050035756096400662554714075691866624568986906014682001846959060999284635004071936974080810442388430198645457914616928754935683163995242854692825423347945545532294881285560038727523089053788192433505751497551264525078968260995673341703832266956603164184922925668402233912159260917755624324683311124876164488697799219030805575757614797793897950426069645215631286590194219900105596173180992231017660451498987572236797912131804435141707632231484360315239091174371429357256778674871674741578940433338410160442909606526234534562852707096183157984000018347317550231429012161643131789200098774352779086582166696445389402972088041773570427023330427619404756040878995229017932445740646254006870740127240146030330390440190518393417468914051401172198229231523851259360126943228258001368312783318790744692740219320377455529343239193448426035530743583274768759101527917317888974981141388366417903480686603388978689525699022912367237969250254549359740237768118812711479824403534827878836523424174016480588962713005382425431551088051803723126914622716720213321532160900206123487404896378828819225303630610951083706819039348472055929519214503639844659035877240699726925299712542290806381712612439507060458986373639838042942885627335510597478812979596773832753598893813574343277903093616964547985454760207590364223364444769520868825917644080129732498856147859829848726471724924630961426408692439410615683650784984857232489683338034360381949231616551928725086594530823031903362099056077341263318396918950579711827469147486107797183320077834913352315869288796451197843698227814215872368225782844171297045607792547520556182576326576263597096058739924944364122985651839177797353403501619991185958667387197607325301496384155994755342789200766747949917870410534253262050506691994290593870694201005822536895661734972428689063403664745944677358968558549607116245907409372230564772095152000689369988708953024824112963116338222350083786762406773509416019786417657140613506753556704713031655563083391271602453476590959402376495556383189619117268348616205564031174455651880649954635874232499400560829805686705494310287275661398904360181264559010048173390121816705196031305010339338853768426094713505331396896514970560167583575008252737461983389227412690174394572800110135800174396936718156292711783880329398155367843953144623608414234824201148586382477572097822429584131843382706634246431585833870432305716052466339788159883610647253011220040950049774460607271644228608181157256000840938792492496609136911472560038729749593411384757550919483583539655185861572718409458273520925309275153830932194445276845035260870503536225967759393547991819146780395156263910910670457599300273741782799043955324772571731813618088431872609978631793353637169642721910379326871326300758847658234128411870988485180654804153506424895278064921872896605778849312830202863147387406353502988303474479312286208956476050045537947755014405390968654586186558992571382846811870144421276801767950991845519165777567428357421878278108912081738853442675694794419691101496029403456742944507270015855872425237551959654644556770389138385968701749997996107165109502350069015128104597290547030087365079836070321483973432545677620682634523170771258731256813887924628323525133825697019522918256795869260178771955007275845832349318585266178578953429575508889915880132413596869062866615439573421020334332317909853158447471896780506751674184412293485776516399553995588792947033383910027575974276135669115721658418566622639758217092774709957473338102067829058413153393335468747465346087931347236206584628800468117324144237691808031086876606729595448289951911984378489016649488154471683836105295664472495027266510257315056217641646685819333294429241321974934838113687966056808755200140835901619838503511727992757704100076438609411242123135196688021391313904349603094026141154273665338532581651180802996004162268441455760811169730122231995919718587062975061283314934931985559311728546258600167982995292006476005659386483493959456365193170669635005185730618737656826521915990097349429426977013876920587921979495236572823950171580266969103599886515000499282498645168962760745621385491593407292590678579990632536205572203238165382575423140096171521723575098448260705875637521636579615926711605366316024466286668071742317173740926949739828962388752177442551265339730773801068377758416747186473402659995453200425953061388950921587293307412075856884131956289933969309285339375598050089742766102826528314034649425509837500871271789721296929741029589722914373319401753384126375650461738273187520423336030682428111221655996589362200802774618793655260777579887596238314553823455088215343133555423106284575869275951975167575196005175482672448019119998298650296135263524210935927762289966283211596305570044080262167523314426474812259761896453884764127062025960180658440677081147407497437893834567828458142326318573759582161304242360161494946439895639593062951582729949010629388576164683384619482031448295844430080245950312217339290868976998996605061482032844993474155505513192527335515321850795141973119994219720676472595689603907726963602166747444126838603201261309941916018910513804166741356834019674477835839394527362564876593145857628364098582375952216507188189407026857842338716162763150300438035862143289830929513869572287359965780138082127839577615643804385676960336206493243423165007438149362752304126411085058971525930851531535907581731248136593032609818110967835697885271965227464750836386755002448292764548074431343448975125898912570204977244201142504892905927077502744493600407052378943050843625949885864974945426895263866498562378806215991575234260621087858655826394843813483828941863438322218093401425802939718226037457169090947602951888343848732772540667786156684394556288500654443355781817060197088696023950839197874887652202686014088794573785322893037695976319226461371648956927142749098777277373685818974201337759130012826173289460460264769615021025150409996426198287102792637693011625096756074849569173042770443791300987674479963586027436368203348581967358250316778205643539421298012462406035931894135132544908438042557905997940361623521389311989716228027950698543295702270629301025906273264933619924223817919761229701923199130825846493785051580854362361141782160377411754111056969078959843432215021918148172293399589403947593886000828173604214513917844566417203764692614969866353647934569613776977075193766894313764827516088855355523260135621503280402239230511519697725628767314660021170368062711109033135355478779790607255728219262914563399567057931933084390409032273376465517381962108152419879265234044322043864323151776805007197162598886838878928608442732747340082635775813689476390883323195609685833978213076341368648930523786247866945110035253001300186740200709213391661705531459956334373940463478668287936265949311868201059859892284759211323188943594025895044805374917583243846982597599613421340939073586565073042601645413809907945312147974221327316193209743073125680720864667305421785647773517093864036021129281214045135778609704436201264131238684969662660910970305224082374944257774881289498764039159860311407755418149063577950340220192157853740003641919071877902407840442134774637717070713615515847183693870291924780075920038839250816443960720499276768494333544916108886910111874443275177899212368785339108200070805442346466855439127263240521873628989896514214748710677285593361938423771589503631750649912984215368204869947774431427691288387079932438848035223358407996293091807949897703963608730252994071376730109881559916016789761291313643168890007767319594051982082276821462942699466091892448175997782975097954581301188916405211210570878309318546735711416918822226301333353179021407426906669755111407816108795918638460982255239081806608760031776346870491627482560002942159378263203046699434340756571409128719027026092458078379199395191174298405837430774125196024702788787413135617179881533246206304903418347452414752422504573546480948962866180423162003249442452489412693872327628472424944021293551382073108909687201855987570908081439050652692773477738647436568101284084527169202592487844547568273906650439495774167334551821845429121524335500245395585068680798943309804088995111268831108715342790042127973672212291309062693237621055461649694660383660375127638979996400221334053804323718321824240740510581288381571389384643015060900795905426670489061392760298180739051489266399183032658478611240668913180773741644944051436257478187618748072490780545958791649629416566423189222843337243631523030838318772238133129403388758013970112032063335169617614289682722425919506749259696007278757523419537325951620911414783358860773016827315908305985954923421603019168358811125446875299474507471804716633620195656541405546251993741726295576448180747557181291829798183259621425743832481357171689779246054380836116473364213929687452639217333313950052498529423229857088892526624537765775749490443743079616253404360050999522402219938962671741726878064029842508918630576075595340641720583935516766953175331823586996592329306848179707864101158660187719438658977318174982024741518125100601519610681306061073125255028314899026934888131025427251843615611583130253399073370183301716813962077614582439361328420206461015191328733685650564239501256744681955361353001000460925127388948308125695500176599168924100420425734554378471330542168882101208844967686571977685932096742438531922949777910631709963440189060971130253956677904610669249720583640249274700128021671743474062767858799410212646793340275980775745836307038161279986163484951078607269707700153902811815501199079387573317593677601367222519238092514290228225105714205195039458449022031288978303768106237309814245054683114010646163009329064188072973061455486614368412714925201817655043349687646407809856608270115215152249463862456589261650706394824831453913803724198677061737924585692187350984992627721834424873003627358953170992084112871790154279382440369724956463300471714300616456743343942741204899532114158594285345492654867396808339885295976324262685070383769454939321768201911732891407228435644949029627208247517466592264346106275230397527446472473270024875483347522345395307387469720747391947969381036084826227592349096188340312257046837503283477107394665499642743880519298339438098118557159888747189804911519727317843893556473020210999974425114219805277607828209920260407877877998432170678666232830065585361776786022604863601322537595430065817970663034132906193805818546073220631127576734915606055246588557154177974975669007078941236354675291179640332070780403470808160838509904874190708235406379702193256606318079418355527827261610107096337831227861095959715042364111126870801163782799712275610737842039917511809808519433282393523406052590038515898940198907249440918729765797422800715801238564965646945972604293610789011903679074516451756283768623445283474083181919181964511506414973429502016007144671049123170181555327644264384802105932026249257199279379611091291342672870001364583538439809008004437580317886189155582140005884734358823816111084060780650982120461514023722147738354612644143458798299103935998913078108297025015341057487619756717166252493179589522963788703818108206341368238363929597996535640179303801990087830941015298810454886435254392664813550351993203756632030097293068420327714097093261472523358941874805706287070375378107457725673363003153380505006112478532743766592750635553792936216231287119879269510607689802423266725106679015987604999520686546068967200459777966060635954310437956205387883642329295827981907479090825093620350614190248624242651551040505881640506255913088210172480000869305886342628585472025418365597342491499976477959248859765456813844673255905460817541844135217992882564806773669771198304452846811634954066562592883991582971186479644607067481307467651429794113089501852744388997665020160778376116433256092031770659416795768895319423613429179501973686773442799735670202052003338658932271832585353150579057543011245359133291998484925968121210924615925748603162357613990888406539337355295031105611152412101025196529607737481427168263497920733798996278387766353038507462047559513543509072451045644484545670292754102617272299620592358525066198404967259927325943896221816274510792040396098490807575254715900200458687414798973914144347589056509960684846974262514308409181465208890985841688976084620103247607512508790300952728087044854599042013352673832067154770826359561759543022817959253511932601312489636636151415214182664934856551435689426856743784316954099339497558245754901988590317664535294357292141515154878012603318928331845584985601874815187182953159718054177090514590114838958755536337618936661341902917633158452236864830722066824567332932727838235843219647389587779012755789283041728906961935908663316478777630675399074335061056722614825833152782134837161649008254173303007868849641854263556812084303921511488482946998590015952178486130967164430209914728902105226863355710361267380457967615129249490993804866254328987217355633691116945111110092777045595997498932727483800803368039524741756749289950601915757205256408162548071371355037533758741664659771707515511422772927225671288184914523909281305309289667004502320380656429763045194929318629983261393662644542905379847621240183952984029920302807609626521398494700619971937204577864396776922872389630079301215505092024528001070642677325880789788960309291561650476436353141678691772349008709661052604531629305235219502722681014950129566418913272093739446745067809846465987590891527985990011308708614120781091014725081489943158634293672403725266074338118681509064000882255275819612987163750733634321104911743219854307310321476282195102414435875222699648318673459720323234253048575230196226507953771293846673580876390927289637699007329939514707313892792502496547653384529742121211971189484249316230364701288576597766468223259686058275922178479667762193280491656451517517257834693002919861703936161237666064596768179662365138425981068993966100415423511834718049822543787288667589134886950586598946827060155332570151573843011296417145570534491488638441768142321284370316880267495446693528615092398935613905679101592115232765589611169509528924745983468569934880858288268813907808199375540291857310691758097772646762893448572431301320796022837308784558743184411845763596481135967456557498275891148121482721551666875707346582789551242487893850460226818216714967193014712538825212261155878085478229242633845833356996082830578913979614646952023947166738066524332064212478586180631747229743672989354363934564360719486469129972849402306344486834615354439388994542833704552611182009496599070247902724191647439499177942800399894173903472295476565790947459417300457130514587951446580742401307848620156171041417119708974470681755311118113105084437711631623983602526811388805474454506210517642628435637259706312366618887406450619722159405958071828435884061217001021970485626901178695812871969261160942907175532688499029079365744162784117957919396731437865640466445706334387271443788706990430175299995632436242180099413163117378072895031600324551919013086952762076911072876192625319893581230043333352489992672588853738399934208765828874150753552112615530887463720498262356088026228619534276301514952274311418810236994340248509576649543610351382721805025297563902650991160843140815277762455065061138722317138217213540370388844085961563634826404453221937572715152949080352151521102164648307916165318970525380371171136428185950805546721120307932276788562377361894310127299157248962296872114554818397619559434970530273167521079299792899070082456961239435257654150423399245138536152914385299660688206045036670170790231660092074825426624885152752726204155287012179655478399266155291296740487703777007883567358254054387178866497761310617816618154171967660898757749191260074571685543489782533307405232850379671268031971728955565199620998684787433022253951300197366790420215656993221004893235887455721512508334145613423815460681428125762912026186437650953058866355779213848728141697586016186520894217345856984972235898884919176719315512834009798382581594081199752485329097477059315322964754791356258947302695823283731323553197058109644413423063335261165896901895332608574921895898237416117654867952850531501138212746015763574688341451967914104853872729524486415060807251279628518133487507848894476571346485817860257724996945422805796436742613678939658529361115932283116810202636591667161664304994923765957346566149795448489863262495326536501306527539168988479105446674670899460476044333768633275714079543552897266373743153428146905557173378756713156566350962344957298178668632191254821363784678981352660765116399319789688107431204022185116304423065237034788900514984094643876249754124897287964780525864226551720462185095914814809645600765842326209769705311116446223696404634087560299755025576392899553195579376464337286283883796421048022168948612749579836787048360241040452921308598399041211369629280383072167446971795831441554209227489013462302600114435868584645266034807829198142337172062515595530896745068548269698572243506342297241437671605443810551567576373924443765751476668294522775384206552226798547781716956959554175624976892984824610733416895353201167815734614258683458651077726469374379551149291559743577430176062053282288860299862185896253153315792320444600209018878151474061008278069573498636730412214538435308181554336245468695644667091238603386310201964706526917954726861914392430729936809837489700811165899136405641886539793098964417324894995416098771571719067343354036353097848381503751588795959130114407965832440971670508673587234714498508501755574603425525845438593380609943785184359218359025783233842631140523712796715861473343886479169033442144562677890152561649849263316726186884800938884687381130056652853082546677536309314316420243666055515948150671009458497390719019864770503796673041710151724258360347022657118376307491093005866585421838544430194966489223489695953536829000839599121842080345724630928929013503007399250716060722202811170825275090619579728282091340424273909295424032769220858086675190447497895968164050771836797800723049988047401480955328482797203756354865819879893462782253529539694650919506423925818614276791591442320342807930598774624945640581071462066077869722409370732186052518255447427620803096476158679838900095292102958680397040394166968086910176420631673448778927566885909436710624180620255777242911827273523724755027827998105801723003270735041242336112709913867623171052767470013840924527743532502470923651908422756284686045449907561017489191853366931578284604968227882144638362836586942506040076757398763522918019603072456149513479176873313169181977325588672792849264608576995127434938286780394280124734926115075074600979045403917280346529453904924920850230419037150117970991455301987843965175115517583223182830340350113140040454196019330536391956664992414012465221832970136553627416862280720972529060940555935848992258110739696105367704784376631299140174398681351975058517669423511251639053615544187692241313213570640453114491867086760411779663693799524792530898832206366516815570450852231580387342529886633680210230882006790205048147845783552985995952239119822472077194253859760524525136478935124655143079902844438596289789930011360135275191413416431387707481268717170002617789246895296758831261699718861551722011948016357449793537980198919578311041077457195631564163125945619094743042366830482985699926864461033015290313239440663808407794933219848320676587583002467806017957730025396797283618521464348045505619477090120456971660017103372866450880406408266502313860748442972583286057328534744286633517305487285350602524002332058250312218001835460046968432971972052106545791504849728679602572667624120636242537036117541200200073441605384878992056182129166587462714019519666389862968140101366074342032397386971864906409907254601102230887293650894071379720059339238801179129485639218200367863367998650991816867196853399720260494048180678398328074819809532400424982361038736229657955535387154994350760212931676086779439143285978670133864525972794928397600273377935746438599948600495550107220118971395404188443958015332089808656766090710638577361006126768908054131095266481286783630545130674847525025785143892947610580691242953659596431185118446453070938080669726928332975822170188881501675293235410571497463366759801099717056798622131106920594973308050332358529670941222133203326844899248185704539933095865130289160182292101964416051278489936374689179118419216589681459929825315053341124495238101760748601106573827743296922195068332867271633342209135645942895964277163401394434253234696924552266006614361827778194227414077532016174563827631578129764690853847807438701616706969013890415657625850832180408040061174921625013700503212100210570822091436547609493385998248510120499518936747247234744827639261462266807739350434036709311950030522591262832958720809261320438049026375704377965267656839740597999965853608700677019153480693636735517269084364505254504276545025013713259169141908353792752949638159208423964712048883427152519181637634513614638638279349150548646186062429153058773900567467639254334766185991541116268632838519365758327809624993910092229564538326937203834302429975385581108242991223873449320747913408597789005905171517521479058708451316453364241891380740200424895456333915735539981432453472482732165177200626497782706888806771546620887315327722074907884821467213106228397137325269216391317058753731164180697577290180279387017762681783941448541371962175737093874614231017993675091455869209831877009346212732136734571784761855364728399654021983519759696201348762612133283897364389814165148733886829019505521345469051671351067490897947948974433730972543983167596508033201214676410273001179228021186977826038671151204288595623918028991764698327720388782641143275683502060669819464783817728431182490554460088404743141338767519860394649512567961690824749210320163287899637539823150845035379286826207454086244896225639013751902245229316595350998228818453053023260074948551880304890616146064507654928899048849045242980674435798333496296472198544032772252982860261347976678421834568436274063765737256094845840160050999342426007615283277619115120628425415318677825734887834919579862154361915390766629948504843319620708563343026428959501332241930104970498248157285469655887989694209207136580256303406021236562623362808165868752644874064063714476268750203013024514695085767842584628899127440435662267857349276778185288441482254696323561311593773525395814410405044529676970856047970438028981634842013461494803888037249342397734469805688416555907102878909964010581906660488807563050494449026628754127988942303725830137411393672079378639101431131519554919621272757694945356745101198281905095450483832053570602275341323501886933421261773079983794668355876324924208291760884983123535761559500228188595891301457247838581884382071030802091472882745135213486181721219506265102139730339584218475490573724713937762405868382990042942437153912216271394088605140897832961170540237290649969888346564038264020063737822426869984873966187609594851101360554808326456572174040910376762159931292421615997119732726079583998613227265351443779939396655088862127084208278729344520357739414989174962367366799918798177130462383815224193500007453896793747936649145296350883445713473251688690083392534950655089059162066874305248841209991592084010879219451912821536748290334343493590398074390368417243489565683599339321248313588026874055585031562496988917711228510100916500572775744371979204998474477841867236445911809143785013039225483799463372387654704765774117734090084704422374886942390369105973984036174732071212878179077169853457272881909210404028500417640552698932971067607499290770944824237170589859978778354107897238341862085994591114959424039979353302484281319036003833828906050844024423289761795482562693382078372459043463503080529558593689814786859523870814282446939884988507066560204570400934170173226805112968866022260962724582167460413519244441612586044861691569046061043205860916824574453977316734009334319815557793070399677384644817439585300375093620092900749916524756584601411203040099396488602832018181762269909815497482954210074316439302760073684584191621318825372524838832268644991805176371696204633402835261744420144208954789616921374539276905722894843915396313584187967058511345031151205902429282652483788267132770832969804973155347133327864238724312445973427057416816515395245788814377907730388667961797319867682336206281271092925040181287413217114370803001940685579803175874358434118236307643877472594878633081122959679092765713506345196838346214161827715905176837050299406043429449443053846139547920861922790925690833971298733531870248878017389312713901228158408930462927947850132542594887049174173277399349066838753052900389153902399457162634852778079786030041971627908599364654989838847807019651007276117138095802395852197497489056236430466620693994656479846315666902073676590094841794309438346134253645254177618185669515856086685038142143529475596867945545809833320847376013847859832606256491044746566130164827934726230554841093486085966574707895083821800665481230682220806698625388478572101655939844684267459285368751795990141871020942921149684117784542543231956975372289384647282122779709151842045389588923078316382310962304758515106022981464653498833917909319817440287153486753437248334420967060784602783684646895160015615861759902962993152973093767667948562553014104622696780337602584656047543866026123116559700606749407843490014795535128028494498227843286559313208225462280244317972330984952849349308452700739053077255548894251689537942095421136454413737500294411205484120495727224290233297836122175349716386607726950125844323749232559186542029415523782833917112198112682763128911646064826712067766211442956133250420883789805489762473560882793621039940953617696854958222270657709444692606069808566349187545494661462787418036376930344467485868905465005154584784044055531490607794357435171835881392285709134147752905847774356118760091966458863794825617293620336737553057352577339717286929554243516721257867330277846380046853279894911632547618412625365811852289168040092486990741151169194135461610191132699461168624609262807934351381084391164359098473094490290642605677612619107147819513899936755416184429283744743295790069357663208777088252110071300189730082710237554557325466753129685201614516495910933300686415537249620418959861510163868305608144120425166279252003157773371391174518761851017273163450411605634321734568774197495122126614173467742340842880260796439151885690677749235005637882929204031348498673457446114134223285989593665614304406831550032507187208023661802309271159492089441831200754032479286889459079099645148659881222519861300868901087402540238297656988333401017766288584094270655255489436379550929533593555022991728557109247711225409919967038608585448913414996867943587701328602714787545572170082837592519290073340552764056768824574517164351095728977689875792226762794034195514989949461927511727138648628055052539716332080578090214859764499982900961021635105616690422605279907633528714145357957902065209534801124858891209844104664745369073600323163277075614525515431842407875498348402331151305456318741284454776695417495373801413369052217592912823032675986435486491247710511927317048705052813309579438371389269070918222516745143125656901715113436162167675821713937263936646067841239511243623265058495487018513201657026535351267469399433229945636352005595614022281667258143225224709447640430650697905639848456377040931668036000794703603273845289845952905247689196382645080883352349854283600213959029207556777439596138152819835443917346149626125131453705315787334008526381916205074853060160802141151425434412526334502624320757936716035417441098775251442759477762132523782790491039426734947755468847744906467328633563698849130843923172246446791541503662362417804804133185372509923780541864216458732585565762713470960245452010983965455691794463616414002410196512118821380582191445743939457996162342757126216590848288264567368310786826196535920936949558405940962995275333188844737840244179759869877617529788964213979792066037272111270658985727013977972904496737375863295369129307561907809004027779929268623530730429672103123476161007326951740541314220867249458823807253388877289027877387338363918488900454458270441437121276200565828940111655404426527767869832434646478477023353686174812664607243426601032218576854618840234073307158277286323331419306531763886592819591036899969770376450055638857894472626674263754816039666159476677909633506174137522636715075886511582379840123353101247041497667072851057623980528083930953008487111324035954989692760437755351868653880769760058070217400587835477086786562209414956297137953394106952424427528755726157390380688337545972676694974500977153177141425661419984470726507950382342532620483270172739032821237541934715596788694089044205923634294603794551596762329459928817521359847394238806862494632537580950680468400078407561347759578862353004001369210327388140786892123727821506612566592029453852735596132748167966157603063601436057801858488794359047019695450986503234609216930435771936170263964257314019998754073147918364070044989132784299651400941024913825158951259263666221360195124920131435705288729504435723777973116927785694285383292881963263454203246384006331881512830285666762042971398714057552923880743508844248184655787350068938038941780603871992589238991230345579897259680939519589982395556055406335437163914112814843705890943206834258781123602118000088733798136105235730256130675987428921603659980495634601670393845898333422801620742879177746309939218585460097926246184191794990398684911296727716909018600780695692429269025348958626405287009795026453446063014254530702740357219556698483187504887660509696593456990393350701204937625211751760608333825952549322134066545885334255167858814548142853581321947579093767631377708088128610808349896692967791075888334423443235008004928626041828723248549278043485391807390163843175212429427338857857811802177621879044403516482213508895683739290931222434159002374354630676343622878564357599339423237578613612400900692236740308107197184088721933550660269755923451508624407264688661037380974615261954044619156878258602043142083447684140267251047397345451285384746622109801787223819339429959036500718565496798680237474521860771547438522949500460865761654958834363076430533898667803515418085010804303497790822998465883279439324160936393155558442397212836340677547376465634454051571349356736492209286155418215215577098421403017820067640808826281178482685849301191387270768797676441160716287685691952653874140851242523498617897612335697484775170370094394688872825110858510309500407984705664998560408669424468819010706959774953061687950331946281239962158967536209999529362450097114139445374111987984006241241104703119624464639157978611023573107786936721809740057989591380956218965449984936896425461672587464161454145716461146724007518161354402356516184209407488279132439955794537716019481273490891024005770801642823442756205992590343587871428428243923031426540551301642212172616811585349243724329865430883757628476819656450488360705129626035943679508482018144390316058867266387499411839472766380019607335624988766450758887516980052212338487046846785974809487429510955273095666043546894261461193691171128056488215055975042316198985154971472334104393504321221300474412583313233852928819474732291305817464323555773871440769170394157570553088016524751650716433091006606101000316600987064099091949662328465713503257019242302057291688821674354978781305582131448523239478169481277227086682808906353421442342122528517131531753224198499053762924998585328965144468071776658786193913042773240940264449208616191682359063681062664922944390923068981780942836761273260886602318903369472718485291159992080301350981209793166770643146622230548169934896255526609008684646192375133026560041789923745526972432871825059384519060484505483756990315482306659628316763972422700383662192524873141835664915652866057798268503194561028645387217335904390012156415028602554040889022805807306588302746952844704459447968701786817033331740651734309646715470763609672010175485851845022111470790466041077643114647624041801873018182741175047073929254756099713748507080188626421753382644578403809347294886289649175864548989131004021001475066286000229112590711147417427884871439565628455908961621265571572987559826460116952472327486938282148821346750156829777631296494255963908620998810460805198823525395909508561835866208382771975547958601870513020691183120437484657436220103165544604310457261365439223771291574267005559081219032939842825265367966311238020645322406514521137395747060307592456235969440201616333192737653294635468918988832052277924004802084393736609888365618402224141980657050405945527746355249487232771151954008580683314064145312018867495171017223058804438399712253196975003396448368780381273126524096577227324023290858936317654846747714061106490821291948533740071327686878312650972616054828657654864114739581693582532622137765295959559320739719881050361582289524193258481525991911704648023877233392919643797739752143347002879205333831790666130721285745085922880821037044905405870872692448418880099261661357261477281836547442581035960558594363481425585237336379324246899369852165273105154440364040447224032492465586949253538236802914600702151652730940393354405487704697234835220034358382065508699491702518672288432081228968493339258839249616178438178195279993112507986833070623386364111757045036759294469155322947916311602322090102477403113671076993121635852850892289306107105171752951686186295865380298008824201480785929496158510727439812287704894836863019680581309693647780200079384884889145325263807443499735260294865761345420699503460988364108420946282485374185732303731875759801832976825435505367549645309062369250491303985158101452966763505444411501012504539450233131012490563089937133144135469536118543800155618797100251162819770231494460454525841353261789734899380207264171550645975019442240821583189420836891985084535474844715531710531914820767019403712586103437513878360281478316474516591010989055054073472449145107916439862715306771550716204958421033824747848412482111500328674017793067533516872021350020572733672590980469597956795512124314072742190198556695116903777903088016656967274036396133245858873777680859865419027782716035512168695628542043446260766357107306772180957721584290504039717274380111148216386437837544080963913953133061258268092212326222058424175249336026982605314832980158243907264774882852478807280048138639053755962378838670067460660696334278904930653352042405183951873364753162523232491545334256037226734756429196425916140332483994839683612092835482883525464885239588268585604565776901418447196007368381230312162452667277050090047814327120741594267322425931673494447900971867857741828624220178698828780848893865039812415336408369241015453662771261373374457433934047245852543787528644369334907224797206504243074565476709367253978368549064949603613302182276745464611721199479636294069195892859318873637911469277096666434513444790033305415732158202073241019910598380562137457657220450291288027847969803698988385601161469948592447135039738986431384025188459704858038973646329921987749512917937010407185698983393163831793021185632043951823494158382570221687165037676059467117832193298737644809803162840359753659346459791259919625314653273827065228432537184762657648971379728338441970776434112988809085084229111575371490809565147635137557037155528338528015003764655582208096357274264394965605881469541749291897793806815110555827645914524816617977050686657217873622924500408410262864891908848484404372522848831997007903295627781505500992298216053393277269301312294568119905481102107876452395498030563043180625195130793940111994011177807729882107088458603470970539443989791856991797694542321975320094252054893714611585241154912617698994674775402287292986206796791759404477997802648247876566368465599370383075523797934890640400780436213222193744697164806388568402507672691736094442884854986717479701631542859258166882911696322282020812382712932495599020659089455389443858064073922431096400700016566817049139020106925455050739169629158972699435086288400158037187063982849730345677153750451675233216551187622515697869405377253766084827841293865782389960148361120991290976350354788861585897154695315566775448141164714850364161762182620537824954159899663515924785112891661889014760166521320466154150876641947461934958456293308224846654838163511636780205837015233172086065112161900427558869928055419452940073270484657510714194756939480928032440935544941796315353024418190991594732879148634596633610489742585534709100916946302238747601862265639620910772746412703156015682055425897049987574875402338492449003050115843281078229058344719231709626274310768000415244794036257110327675886381158302835234540838203910508979741059364471026063003869721725208977524614300592604687061850532615059420878828202420284041465487317232120371438457994780267720283439256920603158033288325659240194439669149931251244090015348281750974578918100539627356848400558828945072556377158350625973133381478556080118605748651150272584101609762289053243566726488192710120106578225420707347067555124837047701696129458294074561064368575944532910480265387234361472355688535201308414921012677170528810507917709365706242491160800537566442099106563672650332206100418661524270753539549743253845604502827778666502584278027573834977163571710046883096947914617734326878524858892149208667319652159679620085438350226705731926186110920607257507444941917370618710488622902593167825807352246422569006778662447410037485726054952990650038110262105635045421651276825796835988386811523760230755929490143215726172813804951421527514785733927944595280849121941423906599294721400483682902617617074227519058922281668248723170829255326407037774035114710251967556409571793993425584323016393041823143859168438236050193340804751822185375101527852052517879046442572054693723650343531627776514548260459525496867324545679963694675676518091658660863777002557814030462901450206965389906834936963328055636688774651855716012117057676721908037461670480491288326358742990614361069619647778857730882823891160204292189561999340862472925938372401763862927909621791660142461821647334356084488390130076228563333445381390677123945762410355839127089410564195131124516838145668923740715430753170945718025053331394975749359024784978900491845781627299106539095660365849906813530856612119991894080313700839706110563280465790580692166273515306685925298734582228045153843128220511270583183717730053504683281065012317292634250880137302157271416869839269742759760009761802156685836151343559140238850910715429108901265080179548756995594227372196386180868296033729636570291343326118010812656874139752564765738376512296924057686774009930470150160495707843210099224289928274431665649829412218982803387590721662962189648021630099127408272160514835782773464909289336309989354322265442365596392297123251894646914466153067701731048868836336245404367973678278386817078532936567334166160830684455099718308836589302619177981528238525478101898029003566621253805749365697046800372114574055874734799255332386392466847586031917555581477357437071145162914053674455033979718255289342719822203360482561117603068094348024004241499177046363264355333069328517480972396643355645513497352374916248181123837164278813758870941865388853415585320827966731939167513873577268849568652831983648795771349818988373919322773227256816122601869961101831354286200191148381498525337028126688698306137135618804287610240612702269532953935910290377693522547830016472799206902731809808572542508909496415347014165855786519557078709313644320135532939330718286868159853328749037729051713810280131294707826748530162662371646117246075376736874826218097969641937718520788527331188448581758006627364920873113715742768506782966619003216714905917765525802997845306145480906025598204696700438519313720132366924191021283014821910458269058423187529420960439103824291625012560257452315923138971530759074037159185311366170213514124078573252714820651404168846515710617887085102580407232051646178840569490561062471813059680443661831045210403470561187497418183858194563397039148736290130679741116137646088525534001788250089999373788460100883701275627744161669394084541542165858964278118842969073643689337815097657566955088944813251764321024653375357553691041347285688551208100106924010221753832991652661750446578999390434080667601955862620701032719522295628848818773520772224904958668746416244250640913659981165659688104631301978532994520389853738984490508120545041293133496045514116470936952079298229987676085644817632178385634670612698115127475873205302818913275878364091062153255962738908407497343008590041135282776234916347577381077838408095700842790656161965555896782565641367434961474382756841749433706323688135439754530976824934823104892103618858043318170982224388641500623339985508254852109473437722258752057262449298849928368168974564099786933784541043753324154947075256849249517662722228654884660191851080796124945419291017349042799630284187318352577952034519778097999823935235262562460087030262431350039175151795915554473510529957391963571820979100133018508168325924524254186365940778656027649517214797915843747022283609667431454010694589464654799904378470612322345213478266548365512498160571456745040503844101982608915380747519586368210624365567719362856581236026261286195280038678847775672519191376413320645797876535716683916012811160518950237903183312930278702059532370352040606404785520120323209871632857073445502418595041630051339109347641578369098461253672432454303030207202049370248935706520982400000730407365939131382230159154312470536573077071487212035145555241966436022593060980108974286515792439472541081460325828289351913685583044235685646836164474715169823821578328980485649439854463663390177962724581118878121777855509195015467964602848699791863455300013232413700125387162930144463395015831662537916583092624589414928427825314889130870834385659795585198194330141772214150170685117627650826622722398592547026978535298397896570095464360701746379424973404693168787451730961724557249765131652714001131546178906352982663824671385641754851597764511287480244276084474572807121575410447791747665025236357587051323934918855413553648786491766855838142566929549875351831187373952567040218885504441756475182019769884017128492861751671481101807775243218851518502050860577926891280003678641660382967143174448739360634833637634294811383840098369015850659751731423748364371264093805657724241039206536148484142575104613389434539737760176475831882952148144252391122152912741572881004182740747083536164190743476296146268679713405262449813288699946076698904478629944021025003792416351153702881572488227719563513545681709162350815723188430067158185742177398148296070651252302713033525451798383490634058888822734799434819629728799005336091648644634552052034294785682487364960728347168161126523537271456719408796870803403129543487670827589033684229602420973543051784159558168654918085211390483685913335429054747429363039306301031145599469373603280897590878928405563667387009355214341530685161288894900037194014383569043691210065384463632863848010635438896384545461857896913010736645426332929563528180414901021991693334052380406178088940628045598904185632104288152480089219015516643429862096136647175908906555819919449698390076386925150867801785184273271714582133325769405880610515812864699990295118195974954803072403264914358930114115017577016751356793494341549957007517403378694973517237000467813961613882331494883084124186956581706824221265748826126677206715704369280963295316727996645512843731201704789101147070257340949679923586880851484446413660991589267805600434531913735144861488858461307618459819010265357172583606707589329825982353778128196317146664499239947515869479199294842074360094691305477031357515345772757396271150521143221556623995844707429338931702769213048626101314467242326961175772462668464183580673911735714183338191345807751756420696599326491689185966437983810539165479324588926341213749576231523184656416623654537152526044133693222025212408605089040188515841256357160680897762850427917008087111450221538582978474076694449570887514786680313507998906234660948374948766208743571207650845624387862421753728779992729359733041796862887552267162401798538455904924469618322764278619434150163266216381700288968106112631440571122693244015018639815227487372393641223789072157280013466828294030579708655220491443171614205183950610573075829285690843183898918423020339243554114442188099605684320872437378531699091561812245780469537152526427155499782220485433695032444657976953680950313828935258419913032982293562412670252062857711405116049360691587952003184205122412389333488270982375289276441665764570143636196247041811567068900007727018142730698121537133662955415847611256102032041260958668042999180084706579536580814978345216192530987603439412809962404347813276011691790430416585066987545918391428173917182167504297406134777625688590602027553484754334165552192323039079295080228264917774950110974344427920181986427216530255031753112075147223197407252646452714291035744762084561600656086438587635622699544022399195727690558475638622865269503155157989761662488858268884838371670524411169899144832740758364498915985426935694912779013198374922503122055518482417229037347113642731034109107725778224687637073210583709777200596635152429685961343999552324227119826898930100041027518557829594169996016502362994153010657195811332347661155023819127162566380825903416111658630384137779304676208969765371555414668513472323227475972440886864556118546703753122763861005696769669486475039786369282713128379396463165882236350350930206851695562265890943604208001384663057627513631431506414902592135522504508368345444760122307285342118911977451009785086217828937986736457602673580849378137609600842212692713921247899856508315919647448505202102141122134246143006197901831651892956483542460209809709046833043375484079703109508113525151053949393779853920498903271760439361725347727902811263103797852527745190949065242298425694257928920672181986071804484917478972497171306881908877501733949974540862218007217618439143658555781343462384460128527456627254439823978628699894462910182818853258021009654379258308038549978132228557050352862484507916855263760699288364013937837805298656012136538352348591184057471152088547604626773775437227685772454532991645543065196255688255076432378970029183320069456469825578361412975614398149463055114717102675037713176987400681624399071227201117360506545263440370948833448009749472724429935655993421982379999272857430261518040709028693640034958674455165398035978676030065324875267367834520502897739733536883759726533543917123205445866823747680450553929985685544440191686510673695984189412056686728640057360161641754980055820012856162641062815642517711016653730475482017969594817295346847425741944914352016831699109122064751114082860180329496861905714491135165930655952482536296935334186127076384961943908258522121860622393338274620214236954267996670586161864854479233325526599385512848109769007735862407661343271937913098660802359120232875329755769692163060119453546216201027423392305311071254994729556070422975592345805401913488447863890821363154193185730579940580929883239813937490505166266491105435511057345615977718750221991921970402919801398026009860292471842092528100947573276853995312335484810572360363777074940020089222065316973321057287342068642128266517048281135316248621036670153892791541658483406932751952386721851308293986207848042850105306121486757576649433238138579505501176151596154053722737047234141789426530787511405705121183614697218813008569943533574114664362228791336168459162350689561958759115473338388997712589405713810293173530433401320905844990056094172924711690577004605678734099442937242787457614504478296930639347821918611037976434613535394117186980277830136111024542000478115648077625222792460370111149039068057497333364310501690566102969103670523064379182632385852253885671090997772717003797630473987610836547639397947549910768851492835917209642792724305840450050269042056279657142507976418073701683469645280739175164159482824290062332400633995492190391059442164968975503011393432575206301111589077276061400191875256708959538335833556984095122392017036234062709198735006068678660110294402082196860857695117530675256605872101604946485557590175706072169635100552453123950618475795294237607830074562881805748476737587808327527611993993566067134992264383945149720572579101091930590562374211488275049213362489181237345172380453667935188356867726762657073098365508534085065314252459202666759924531050107005045558299892666293642940542743538260440253889767793041131806995692947697348444217702303080224517831985744300279454421423912736950431197563714587530077029294670240718792064536088884150477343834593660087402838773114624979479118894921303323980597182506134641414227485147309280465037915777778736620715587041068091138466031554766771496209224057527261892965505033483650362510053942299228918603625770985752666071169113752287935304992657247903682602207240458524653363777623632677010645387418309393218283079618338233093409239983658716217536554890333225675908061319756158712203174694667149344120515979629181797951604802779047098071505009337655925558170779523037656486474364070776717666255923535197110604028152650916173013935832498654348911183980956634960916189944684774519481351617192891322717708523190285832314255478212441240764253702287276875379820830767271117347322529032370397766733259193807372787822611593519444964283294622096705920026889075251879366651544282346431973555473364110462181671388349373383768038617775837744387619381096995051645092568852583837149000966340128017168138850288806829423760080861027703801484977571686035715067473699884417195713905126137835917110889980967889045761249843073299807991609523670676155874102532796163943363980648641821132245572987302710324514752317327881320394040664208703087475867042181566376170523369241293608537322416382277446019192616132071311078684569050696053082784651749403872358640155974682152232282615836738262657278055701386230050041481627009183312915420140096676957084046957866268283295729674054654596061484871544140981756670975765317410948948628400741818152047081260733979829607231510735376179786618725996213151843847179657151138517728102929831576814112825565244095833374736323564199265616605251202301684590738815786716993775716358552826393608625002439297739836469340828882858820452012086838624634207780189654963238579877061094305634916229413011531898931561728347249907040646072720741594250288108377286506074529181451352668407050148986764342860820392966855261738327693931437799876810925233387420883853656209637374223330294486865450944290338893668769658283169323591008041604066198171730969757795196983802134096878111103525460972881809340844992775540447333464675447924110829863192685884861152802415568652072492289009531675439061202246328436484559355600996163886951032149772785514092888986242597856947000155061091681582348278574103303478057807708509532591897830859442864741643206713999576038113747738299558785984556514979453294835058321622124599246675123120133577436819121849673488552990882468817893707051358486127935260352156625465516133784778464324555328655084572647872553849996964746864347452136096450047148288967035375970802814070467466150535660789308320639132957389540611263310806515317849506524660379808743326133662434280492987328080196404102511589835154209431543251454585034026045517654923141445607959054528797084915891053696163192587308557835136478803213134650506847026373360393309273416453413739970735177088542803272839629944953226205017572644531257226885317077741960171753546802736402267723645812082314330460627191052240071758055800727154650736523086261860652597527515627704303167040080562752875945935399537957640587923130478098914592037882325774107384208780209628815912301515873823911029254900030575257519788904669876144740003938915437592558521304826783400332569795355922154893122370066848014095227510143067525220984959551789067486968730847557556493015905114905635769576433409794994166231428322685787170096870738222608179236558587892573880813033837600981696310879744765605477887187331765211823582485303373440105570465772014631124008062212147520270185902246496255145150468366953252932463050242922992373501728768296701203799352878634080129067939286352639982870049877226562729206595854278304130217041317428779902239137769703409674278213947682494407865139353627266524100002030344073318137941736642749148252243879946180139763828381357103401010638244910068083133259919033554549589155082491266464036235882223213177019151818415940916096750504201005475859608651751029242297370572460223206435338562393701703889225057263362014839607117858262729775947777478009967755141241969369890570023732450843276217823619795461441346462374026956977730680375012192644576616406684493532326619515666540780150100035265151469318632985010861359230302421825769517106380411820401696510819547933102803858885404463542739342876065096506785207662393805190626590592014639869563774450504628452186426972112602006068196566854906409402451825689813527281144757994233864617312922930516213509421314163151248866144916708204099356459101269976893668249166311612276249194836909513662626246380836169255738817272482511600105640084105842866623399589952188307583583739895374283027439774571913103246410448714595008839260874492904332764210782747356188765799396692882660979812465616700111819721258027153313066637795030858454053050785350642107482062385388081970560080393120332005182885195431946085404507207001276945376268196748366046224998322155696007784432486426057737917481222405280839643706281355355719122017489136857313215899951627217183389022862583878447627887468672179870519570805015690969577206397276784727546021084873024762442706940495932637508995021879383266085031631646021647428547644620194338169173680693751972556103062646546232844564552661662999962791087702084976243774868129784278735568099681746681885171782863942755159225856157810453828064305011396834284931978484954687031530809752899311633282021241758832506566036476206440865655243441676458110403990289479170298055883995974333796212612712647715344027285981893549814996158333935669192433647115099473019912559662018044963743239574353273507875089661319857234932894684699001533338493040311208766959933872791709312965006998987503534620367516868771259436824700997174053549837555179364813339141282534369059295995877429506521520411492193312324171152453428055920342050645300401079501613707234778395667485188027470900519646627657944552327016255486152099899025265417447531425089037960314953953952865247232415288377493695037211778600687662539390688588371683296916264336057539652953708166286138703899944489281591825064458594859356510626780153033544804185676545692838844455404253843919522782339889823823746288710242807983031516856181103340325509034996562818925121933644932831235444777083812625614347752994474458244407988896566074832642729630411151478760408603060169830839954399366843273428677671666501895048765282398628486938728512910170921026356965651915339488152841602845389563027620356470556485074147786809378382086620971892680264155044402124774803013927793355012489980083428755344661051315579449186813899706928679856181564736855813679817924539205708445523822831010402528238337016551773527883426578061489018107986375046717729668005423149622309021291006195697596180507564478556767556849909432706322389121128537277158617088113261653879396045746658312820278177037333151921256079272737590351540224083697558270638863481399843668325443768753168819963947263583032005524081042803443574613681061662280730277930537374619892365581723843966558051410735242064794391410792599045124759914979318540034420948852027540293211940579575833940164192636552141857770376047725259968996301760695806785446220477437862341689642441038294964484846501489562300947853004534757930443015640683128638295447055208032727040006045272472113921267414911220707632615026381098620901597174828041604353862495628773939777172337995394718993699167211165236291884105240389554645752404566725125168015212566095421838701070617527774978520460642799214510180111412182280291997500092743674249582455563338050108359402007215899700420185532931556741944915811178730945465197200159402867464264647432330327593338657980375332681196294683643468424426162142494555340333237302913909935933488879754161498612394170246463407094275229495071824694779669262833275191700480083632927239463340404537532531037101028314498576602254583128227427494759673446659258887639612059803614947982099906115515125022084433398048591790583746660401364417977342289789375129365873014812757975176718645638593377447675259501852343345637170105801893823616490862533548113433239024868103638378694325957344776182868572836301085689689386855007983490889294681311527931629254560228119983981622639787756370377860288798884563286218540456252548404701705966810550640448561186048988017242893735456666035208118513829666393918155490252584580857640429650154224861541997772528947046768462202563062782861337340234814964523053336834057114824098341819582522203433204071429160799852370232697393355193145831642828447730269216341102737219029442459827328136564766954306632787915340524980670283616070278700034800289766214629244290497070926717824541826942949392002153303879493734352840272102949904456136532791221371170068901081762925085665789582523966844066193293882144576808667038596856100091703284675921801091373064838217587924218019482535925397299720710783627165023150063358243498886730386638281168764277690731738458671857303924549901335063080263954596561198182764342974171716125187569295561496095474337357432704733861829935039684144081328059855996663811705095039681045285932643034855041410105451325530487108240124197465813877802297244805462735193619178840808042449467480253890578260976822928490782383040474359870538677407884429437244833561724050118440751073525794968544179293833950416288005687787005267810404630481285981205946688163667611138351951570071539426137878846161744349309973708084677784482191057083987635550978980356212616666695549113228664149036439791365280467163537507116821288515953144954571462271187716414350868875728562212429295046463457537957455030271506223272111655082508983943364672121759407194504526497410790181154676229121079094974698368980714169792521646229040737780191494150390862616569418724616159238376861537652579849319435999650604678025666712096469512670882572553710152098701769866452737747407915006049612020940795479568083866276261772040391010132346459334021419401593669089490682411836287531135859470651744963397447312218745109606464850530906249084649670768734481510111841647563712732909002663742285153502875646287645443642105647181664377771812523161460981584263445514744571331294191209031690446449370639889884514085848405119621231183760569307983260834234848542668649981026711165158771828834252147705526977662077088169343887413889006554446431163183902900201498716085049237634116168557230797769623336419174487755804810926065373038783391176041341943461216984736000066516184955031230125512346611399250052608046164020587478490733462655185159459456966828193619857899019979410430751488401318205206939413660468446126119553754532941379792753245079824535908470217303221259531029180778002662555028754943691900513487211235147202225846047345334960579193726850275116113259665696288495198431615231387118678461361877674306920016032071406252994631105033636320340575814982746164536989112315932912333957346350346935697086115384904988196656309324923270124100433106236205774108506116406947102550380017494337876002475988209674119869513404719692746483395978073601822708953548210782902845406026434524451420662657178312451747782364758925811801531213459525182339031982840541454687023584656690190082180772772390087518192636142021093197899258362720993150873813170812698585304847348310065476364552884851520124046061865224043798870456997641935569627150138133779758692702931937164414649856553804238500826382998370777340484079106644147517949016793440605738038215638826982131901505894441916730595577635570071766879659243219180095026771116194535681430211252396910930225454058617064660928087162359058964088360875924853071903206580724976705814114254967449244486019250323577359958367809715772312586163620010642192843001313049810382809867985742028251976244160861534352606398659626763591917788304817618900664702029769791742358749610909432614704086328203428659679194069327700166227274340726220825702882765591353028932191731233673911909484866302769344590031071654151643720317867984389487149800775590306693881604541822878906438050877525367651023998481494085870187701968834421827953486857697553100799777602960541635363355392429749044387745159374508514371705288651074345147614150926445048601659927639661770388834541140970687850031595085689974348567135776551408698743890036150011017216764439617993042713696060103131163263738239357603371177740128551676659129909334089732588913743459364581241741260559201858023823374642913375334385299937667470413878997973637231891174987566546018833391619236025055406078010990422507935867720314367536669480995341381324877742632620190726593706606775994233289783627417166946362940663366102575478717281013261723927047368865280072518883569686294738570667092200028509686482812724903234100866575841325583741913373951480692322366719201014309389259037496223897032677388648310458719962148686983398746300488510426661031822183854267777587777235425331753843036541318463075914856187980226140307511062138525332975112488205759949893330386229838653431322068906100379683893612578988096150025886110872744812351523138181086055978204627455632004659531741991452970479590159066288305781773862270018973038831495496610665295332922251343189235582051442134658335462948546164692692411372047763412995527772777656946801487051302488452335104734627373443139531899245579903398718432169277561686358121941732012197902956058117718989218780799286123082897879223002880181710300095624747681193052247149618508413746049126742394537176429137012946012454816297593074979122282113711484120323697088866385441904657512270612433100701600336224072752516244447586926754904990218087265139295174475304026094846496993791444953360565948481750534917166881524502400347965211467716128927937871581231781484534599323819046928210912309289495260293354517320043759009738357796561982369872945156976227418378888235432148243293759495053378138602997101833981968265510550417984851658664505567400977957772829590800771883746398337184532156132729099614424408772715140044464516311791804607227761600161271357066299110413296917703623510886094611292776549800356339253874363778112565378973536953555627934711376065916881808158147658620724109506767432855265365299508074906575894047124504166456589303979114474420684882159674493144219168020667825832106628160471665866171326846293559789115749340127364849736568477654923403876833544525724191809717065177381143602408416540167919739870327827608133161144148397495867188682148624756374869161660688429405142985415316929432630305747474853658247238716977001472671482228795293256248955343454103801338031129889889184307706905787691013919926454079371514306106743261251337115781712407046426037689425810288493315127421841298665284985882935161198383275034874500976206404610703017227404307116475735422984391329511351074103883803862685787305068681705533758810164083505041547690675879022614031413849820919855943999987804565462548501615086677901723909924488108440517971496900180870457613164753955019185134448532041119960605740526855870652336810897365846845886020753445438227208869058651993843575068766948368450843213287437596311840065429051346827580004219985079228533488994230781537221904793426619655388195658246101803267172876374593999666937120021419739551106183117298103522237581440003880253511515882154483316176661707912042179035081899236152875650430288445991435400580503381412814853266740577694090063600510681122286936651654146515744816881928445979482810392460704990901685880838135268021231244536002293586053085200519261676197633337353918310137678312342959651698235661464172260815646685843892426980769987023367582078826220749210406552819424698179005436178021468686412057420075831587900991559327501825547585109851233046355220772745868960768947034546972881786045686775907514187797196904707235945005603115722358925866233742517814014600013466085764327579602870245715379688760171752303181580597349490315817399456077389826206963665646402303897258149766456589936297881440604907343951500929471156962155745524392264307320503754272060485500968828459241921423187673642795101086081149592483751939385229932251480708581344318304043798617318452494191011597490771589151378428797654583741871545977011213646320209518866907765840516764070130577171713290331243921238794039879991216785208523049580446977161437932003109336928791233817089277096860456300806230533771933911823457538159519844615725755288143650074289388116766258049369823948302679518975595899933670574614713885203736132542233439099183439672903184591043306861981131260788657941002172911897368759810519328486462651763469014748220892267585250370292925184118851444527895666208128579400008684717610805078821298457696385696743212798059686690275499038590665225678547015789940387607405389678727511783147441947363148223436586785125086891251477821224645286270762075040255446242825893344509667240648699384697101173661325764722482132548895745307249947329350688962560608508430590490498350520419298178183258722759796116765508525842146374635619574643214106467903316485309440162086587055517062354199284911350350891973586821356538294189897308993354602228094012025556386699021292791080436433163056148089058729290285288781583527467313435362116904739289531815382965021533877450247412189938322155334419326937131653443372728895311825703039829053589352698441582168816200055275920189513396527384990571597611140025263040647052520613243841661297000933673685121609786059589062049553031711546346748045436711736312460323339294440579393659488749180235200176988835294057883362444881300230727804721224329398677612111728722968527849693079803102042276554404804830991552696648930726090186732487269544183596861534525399261043864070114482868385915087293135238886258658450415620410406177674450273312059131143923541506179425996506795065546681708198759719022668834000089995001685725279806844999704410974980807705288204040969251909538291665757857219198141393096208767549462977403744163581585540329340847640559264594068708447709042988482371424522921169604427677883361163878657911474304549528849188467796122010396395891518316590385630514075382644573889815036328046798003425333293414849940571597221711214291059926291780600922125641570406655315175069174945897518686443233417059003473107454861402437472598164850087476533330029148698035308156191443966578572490268186085683705043030362233674925875900958500096301618803243587572333317685761458562812514488338353432353522164237821178859519132048216024366693007101773947654692398096102039219632299026090168219729975179857588840374583968866755379434031787809247183194882856983178264444037833885473277080417424381585835125343852400239813320761066860414972709227973152297426348620893627060209399105972063180701351308894898442965097178207454481178208869828097404255438805784596096804712369063306202665132644892445498512336091261565536784534375562919714608265418400745142954896432086411045336493093308189798756411255682059745655742774717403947210506275580859682366444869300100426846245293156853891163768998734942350232875928859448240971042727021797857559212561738606640591579416104722201105325208021686486513347867694024551347610247848064195421619254384661741906102081789665959687129531769908454423645146892058326259482923393859174699749859471095514817511550544106907350748095315557988693431270024751477103505752732107391821212780135497115643099920580477416836732361221352776081490797783096241746580768748273865537781228617851645416911958060732357151120970115656049869215328673482935545107155541704294200707373814461781089034009686390485215760144407042931444640237981995469659531028687417932375447245680500852561264014689554078264935688250542911727839606872696572642059683807714265606428088033874799945648935800627505378520241400729499639391411208272718137348299513951499441767563874113146281681173417954488724324567817794866553304246548296669622912624804069599804898561891455742682449427866202597872712225179510946617717966419469676779235730620782492597239054144907227537429826007480885829239175060921381869093727541698655276441971755133321330108705517073834543623893421736860456541395656888477628229821132025667185684358548967951623556434124295643734024577326069838977763085979443365645087719407212054921770484516672959422526274184614697554670117521548988470489188354614404348348739265079657146922464210850313733470088881192955819719366062472022869847238008934236225780035138258371347164736299771733733138305816570649870240867765820972693963116714862345674121999662591800769152034911333889830995815045827973124838027838352515546412550526793056478733517325353074658305829585102410942993391760349969829493803287872131132912028945705527240457073369301298832368121608548217881085309893384698158274649288150938107594026121719320740435576559107957529960076418418829384270467920114472233434381243833147274640654394360652752965604904768718697112138489535910507531263003005776164563626372170768955044168668726658630106578902782787645589099367200541058221169390610130672098705191190281476228582026295653096832412758394169543156348030212585476683452450761904171003474349159258055862269503344293308535458810629811419512898381482735930930545775230548139316067406974221953404706645621149210249712622572541701721894129788020191680755755433158715990193966798759994675789401405395321324603103436700847084979079945350704149479763431090321306209791051665109841496404191316121351550233074540779212194266664730871124042543817318336681669641322378914503964576062330253341931815398640561298906153920842915126516315240807024084920466559040648263679960408575755215966548601222923086215114665543471237113210310430068783597146355861562202177165165661216929632247838611607013811731602429258056544612370317353205562556096946140462822234571640460810004600352853081629459271743404991444143864725680511933662303806609161142961094429428210069148982255739348472526007366052723740425462656695581408985907086056176851428305998335822706652314312890308127182864181258681200832375304811474584316396971366900980358230190462763644453168694712297731067190729611732476736473737246004202912540618445602069429700338701559167058191243972726077501351049813562774248629939742105763954755933926587055525358828809804696976670867287795613583568905247843362992798041190744205468579189598664159284967105362381253165479194873155665867200886093225987489644403606121419977528582506966586721992527795188376958550035329149987441859395979998149654048796222573974193665853305006805515388301283125669516087070455152842330904991744235151569278482186402977150263293487075529327216928032578281190863567069298352345791051154654289302559061500285501795722418136847231139989140197925760194021760861122717874337227499030671069559186298908272156238403390201996177782855491363565940813046633814119469031829819270940052492468372115921266269666691065657828417566734426911353276301574910775899281618877498036851941684611473925680230928691645642967375726225435981334550093346207205729164091129652099676489849100847837351980459516796598135544111266737186511484501933922070955979980321661587958700051549712379204702252581205068222291429195804334845718732196925294040869186050387226368272090135341672957581532703506657275260985127712168480507314641786412937582831104716797204167475242177726140908152034194871263190200937970938364032531626156963087871074774338446233835511241550209148406299247084653988649196862350353826767861454708565498083323904185921394782086479976042734378961820932929786352161914828862907333551446314559391253544426456938837472635430224882645195104677289919210789451723230235967233001377589162654322769713473819102802622931330691954137886524524225117226684447095263775153584933747187495494334948521526857730644938076837125378811700614233101613547733627909286896839735985550751563069653332402883451713746026803478384168914931367136682879825989416298048254848464278543546066127068404945683559220391402686154551142059802253941650130236427625731111450491122119140357140956489264219036230737202601707662841890981016598678019722530783974835120230770409672378761613503013485723963556665564989131134352990499402560987067094919162111598440360059560923947541019604772169019354462171150726615771811647612471637850048742492020032925933290909229214938757570585859416168402129461853172548539003839693747642913470988674220847686755599840022537723870163800887369074577981081911678919058625684788064805054689405883823042607097828492873348681943205723491510540198925921361391348371324043860343861187497116228672716833259983117592580945046213573607814314149891505869872385642433500797004060666948942197603060354925884307577574710839235122250667747867431440981978589564052320592534929556401105640853335288057013257269358323233186086310030286288678437362683284860870990266937230342935459382945875985389932729771179193162566221595223415403710002702317569198198788578768080569188058179422428592444062297835323481334167592164009712268328180830638374418175191833910960723451284159138031945910964694940176577272406136823818761768261003326587936005040763766410072854211969190637853374582631274408991765187257143428359456819091080204994367466435917151127426128241732987182093515949577034786658389268422920667716427004845272226041649160398430531309410024387866547228734989515003497051736597548534638456250995309183657121283827696671583102321066543088678038485668566932242867480145003170656894064022188811325852960287565077666570277285481613553029499715232075350150273690627969002701748288625820890297414471293786056500276588712365007932960393229943112098021835317649376694482095574459850347708635229096852611092093759914304455227128831670434185985039110027232457945627613866537748707876117334682408903779521735759204988561874373344457356377884356963299895201858191747189133481675052083406064470494118743418627852251874784865078424721964914488970589494951529491278325905868402718181530579723788005878624508291610157559142936697910042296807169725495616849485080525521496591210636617880166653956469847906480810270925989191224574599304133832843940750848910326663028947977334019194168428605620342623979539755309937089010923441110839179709294202153731743620878838148110609847732955923357553970026177461933904766105846414207978602729824592826232991260051639807729020710814315683916455142315671960532580300344993361496561385393585786728529502636522418425757310425211256262808993728920563492982107913995081572562125830633511775725916573584428757228112574921807840046164969685595874581455484786243830814727551640573875063829574017138522202298895262850419362022549948364789942530686421431163800781001653033985505042051767007791680137487060169945242963494364536145923379733352040722760771873660527495446950686764838425411015097036980635557508292844168870836536520209348858906878472628075977358263415777110724581999913078990814299776434669978587993956935224154710174530664880937572058848225752903551609299884546584648692550043645246847961589010118656730145422739997981919972492376903689737880833187155141406367470739802701911062893551515848459656349833996078104198295037055386207669147853073581687751013792042113825898692175797372915139022946151090259146794549197020944668443802925413995940650822047689775494043227832916269456335334386362616451662001790343774929363756123680145285210318693581888398659183656571334742005137759716402824763464153546485351642649782910056919806996869293571192838439759472712806572045364733555279773846993404014594167112704039460503351869655135007151305241261369841354164496471650711395845987477549731472194111673640779285562333341038250667818799945859057409553651370941128295133839624143821945196759763744812758314475293968124065859029277703341835557898864772000834542718696687228403232245193101527640786316704212142400600925509451429111628608494362552176883741313197821331160041805634852803704630615862609841031298582985245819551793482247232107758617362724080389108923311667174034010717651950317946310786853820490396819491601509407156020919857741613258845444522401890893679240549307704981400088197130880903603519314863171994902642412841886552934152759277886178592120893236503263364424561820952047768019348905866375531129784966474883245346766775084174600777964230556044348124610322052528147519772531972687212556911454803876827614827289421849236958972555258598406733832091838359210654947828679673454002683176694599110870086006494287441133263807011623854438134200165586595473877080021383795040291924984188749203032884829247472700250439420101824521753159146218259196747502109034061080628286827894770611909456708506626189348454673499453214295869728904797805428285124466754866585748961243587447208621031978942460572289923622792483547259395008533929137592163232593719614379489017383587172231537599292218079230829624039394010778454636729781840629941637648276389382620663099698128367495866404340352767914918423924142825820809072494889470975857816273028015424562600778039367944419757314932056641905005771637595841145157527658342145350191556260166636079002535577662333740700837913183746650182009699154715764288999356302916611568088799086118844516396968230183800141404506085132198949327753694484299836855418307211835652617045695451997559679453097029827635016182184092110880925041388535538538357213339010666458642195535474163079280122632213612743509352618930879942798351065022940080400249210135799731122190079508181969926376255617129636702821900250570231442620451451552492043152702863853529525670595443173878401115388734567864181575717721844103369442077806838698661960677946078161720162686399449304606639942517709463738123433442337414501252885717367036174877954802296694691564518802660346752385585909196447463693346305376472243490655425564989199084189183118842469363864641895149316974891256980259060164295151264921946122825169665312870354355720717005552023836186343751363760477741564443340227551478617586227083702947170226094169042012034133708194564868588742142460632961537141270491909685706684028995487114323894124155208796085007126089314701411501837102922761321179081349905854358627137875081253210515981567523228358808046191133648017624276991950737065268042442068439425097151299352512267606756023972472372501490527340623785179858835344151793278241028923121996335140407024765753080171689114676698439322223107957623476217005069733731901673736600866902759540341838082581652673904447505189082660362536149709209851809438566264476109255833144772630536864462904479895821225449872026082789750492644518710807743637824743645399733351222712658098578498290920692203803497403602807756279298672210688311436335461880347114119073579931394278963320153965688499649557493993099672139799650596115763024654018223100738138026501886554557415126906992473254207197775976087866721532479128183740364633883638263691434882201018774752428065314868355537778369277170545177392570128617668351345055427100077993109981689622697645809179511893491446564416048938063219970326049799606229907095815187895092919688577308443692381711968089063721123357617583470790305356914295885554148142899698843292702860142445119499268715925847599200061010034983144377493714206033606943238294711810115471873757346640974801201407473408146283411550749072082853965639433698078619065727169018637538113312296824761088159300939087927643841716955657317867842891701919201329601390388430153204939751038480883668007566840276767769561756572067208170363305414058183626696160466883336470561145216192474136622337507210301784809017975410019625446224428285575774329682373272963976266703314760244242345659575112340149109135407537538212780530996437773201679188601463520450001808340485814888217701215333882839179917128393035427263846035731310419056003731376999610855001215618592289470698093981502254074541215746138156746373822859094719345032057325289003049610448235419737788844798857155797730180217906784177574202139214369411652823964534399414388787339939341708895235256690680445771292859988287110469861703789229561009901379067708538129817938678884239609032544329272229129724978873683116740988257868503691769851132567953373054930926837596138268525733218480101750756777820044698281694350422105036976116580871163164789347823118032088465963638037714024433069007976373161614931255312742888871073170768600589238740529186574987801095154113911417305114991374360972570670626439216931880791560096524115216330300314219695199828784547754716162103756169183148905165542577192807561000268588433581751323237760506878533997610974892519404336448746002509033197851688477339023346414569223731597004477682868120919577100313200900326113041531917174501085168035457740258300957626142640136819307597317416600548604489623299420960469002239245961783860692320120782480898619415348854172629576382768614306655799290212107745495595266689504006122892345676932522941818529086486278489572194753273161636667605818024533409923612043142683563242130855653829419881135661830363317609053093052860823735956622049428034958489210043768988066977730709247604134295052696223440032045175811393661982581834496422815946351064536545665278032371575239844662974808519654809962598511667813354927819193838392715160947623728737330914622689161820602010529182075181904505366690383707987083881392695447907207954012264471294549959700472618625098261370341672888830935496010443151312543209761204944339752161206376728152730789468649565018495109662657371260157211386577794343845774370990505822557728924224317596574328420929307963807985168808498060424107376807270742870347934376331135317354800316876073501591697824977698106279315258187606451725044047688536918692968179801492257752922472581155965342476977587660486114675376536506708956211922220074631885349171863276838659579915991165939829340097013415881959719405490739739361699016310550475882224741924711407563950246378628021135425251935443109659869253610150021965332387978382115021564328397217208703725788759977870819611642384133128662282273580628623772207081169093993845146153127069701685610442583259509742657879286813352976747350363908167974960153019133290978837229367301921339800083937646885319908543907485773997133227407525467692148918280176892813462886802305479982327280174925368176619224028193069507522939304991111781389358266667488929021888320854452713164806743968863641410880964677035696330976624847450692180801501158033322259626229099191582880592298283523824573598842090304686656338124997091211043166303741689984655098292262119081768949722312398533605270640322538633050747672166905767292941385665710835490287615003217458484715342779398773286325554246510744849592043280088331647505136806413194386982409543861725400423006236990669319924979207078124334558802148364814957321416968400091937389335325701611448164502159044940144185820390357579928987660313250881994365364203470557862160336209074465411113126806404017282789722272098199581296735203691297609444538337322270836018370014129464595465359492643144799010835804818584440538052826732615536670094663270190488933926723057088740664671555548562171580067194812176268380155009801164081076866375777230985966860617477021208263164630315787905824692888340027608172021761411027503382259209418118840799063967979113029423966311125050747022551003105983740674527934102874262270252304090073757031068305590289775580925318779773651966044858530705833362363759137277539216403968058274453877837767178836502299282976155164855078680626445728987068068136339288431472518184428141626000381443148404906130825768074446493392468692785373965423599246681009568603106146976782200162724787787270098534793300389100925070375156229861594574154047324258719866386090294665805614472278542413458008186158621644670850522548274372710917927158882518764272320576098268489991825893884742214256820277645646806448247549097210908626635795286711725786664721511685893670899623011394787114968506895201233373968834978858566336086660045008743720631499301256762996208662783865680474499290181056005342913421958051404112476536110339938108844433648643280829912871445751582545187237411564391223076059584883454374169082617871478517262836554630531920677705146374665981069872257917507027920651247852935166528586336663599453982120962544269556343060646942801862115016726778936882009495173735522191077253100652011067664806189428860750409959621399157955020642758961712895409427714352309296992254194996368457275216658412198325690319241797681720480945304848265718379967745344128710243457024850447422769008515337222361226303857782066559827072909958794103597202756593392456008087412858958116123210385259221707847468574564847754757460550708892945197575395261468903113655685255110853390643254511148660805148468669117738565848987034452056790588511645803468153898962287106871577939909184052289176217434102113343665189547127479468046075115301883545875277824071877422534345553487775811296623048153591774796846903258941211926259253472823460906867060226180442974656781576175977692676804787330897374997152343509788715304050738806656099893406153287924091304766567940262862578436301259842272519972050718723795016120668061827106293822913080818700630139340449294048706090422245137019953734665830251677185424945713746468906027389973031803960463479561052773636715699980983651027117055444027391262452516790160678946638033149239146265316696196075752624977068831553001391056325618209546431030577774680714342105400131305900667845426970588198985218295449011600935387755389752533563936575970665656423593747557935721373052090353877478152022159713304839068976903711996549543564427600237183270195209273183526802475527344850568858510593996220797715760220776548056651586230122333144474443298914120831822963041216384442665856416452454778018251050203397251142205055443939406577221383147362158957253656495978594181319323133846801073958235362834158847149984569894852797687257902078979317032853973256991234752315814748287976556063373518035083020805143053398588376406347894197410066735222761059924342541737239413994152112775445729284410970956443713364791496495291097003920053793212295006219475974656437576495755358329679149846378239460906638926130218594738488306862145043971192758524773673803602086923775495529466962271118748800705932320001990170187224453142185077373527846640038185119772060878872806654834413993871689263596600631943302408145986589161287078621391010913535948514897334778986575066680187339373626857764159917789393266681603173968499075806719933504923514987832973996284286206798569744314098839138013070202844141380674689661084257006033151885601634828678593222095344182341816548000543659895748443796689849047584105498988943315194683055153620425326792475995468544050509202301210500151380074177704100539760026204246218574246038249004589086299217355344071841904781859223210480635535093001013050778315403105977834203368593647864756274215499510744182920614467441532909947078403633075824036505787026920846716507559626409851827225236454399400751351460899992672336228823869436160485436072435208279488381947176649547747172342136354058235624489433115789520022796476916094395741041793644146341243992096313313754787473614385628654321164302480344284160606855181326956646702565720946527638836159392891761456350808751983547541999561768857243443274097476380653635178350114652703960293426274515632209299626175858056396871909721813212909857348222255427720029095952995071809011029916553760483677213152405691905713026647501861918469677089045123940376859891241531414610506088011529795746152404544239351255936036868235274735988807110494062324324932632351498805635376776551476075858855804958081027560080122806140330776632980543835848501425451997518502985158639679941340906666694595719280799982837939163778401622176327555541812057615167170268276556745200945470345274987448411467263258254807559604077062933498239832924239395805248068785268207632637563800787595886911578381217451454265275021737639029566732325664469026551172906965142547437169648146295126047002864570426677987382902255194726927345572314390028076540202625522539796916124570432736443633469099019580802112174451300504584372278380294957024007618960035078021717170356061219855561833105361819983341352481840407789562541621226900491156468636048902998255891591407671061731622132140443577934917983066262898727955077074790760627804374279867349377887164491515084728886449877429446238635762842247184023372372051224803956301647241126062997019393554917789669647517867508243858097019423576492164890309739353145939282509453111747165778534515170114402817327641525865210640135066284699209178860613702132179782775301733972523706226310984914647817573113821858709181392380117311109811057567667511128337591814855666372441813292627500962496637318467135467206961340006663048073804189404176073075501899675761261984157058149493968872864290329357943044612378556417939015201342766357431351464675410009910971249428535564974114314202102551327595708510431375747384808297985075683324514207542451896947449413194293008590523403157129725392304536998510193309283535222665854826862119124840457684564029060301907962273419916281987854430337031484769449284016227512239455447474212616987421586078995719361661457637400999774836954612600439085620737572704843868790982487669943076909155085701955774971122023889987605762606005226107653551507253156323108901622994741995292973753491901733118752278521291125149760176740082944232545817598640244380317264099277891527917018639321205249016949374598706705828380524700361566705599323692851085728900325849156287844961695484391445706256891460925050541356516944169999859710511117335940848859473711772286509578879625562576920129830189281947381014485978535711495855938846156333071551390767696575818695471481879528470247668132421291375724453006266586125109372374048997631931650383855033966503297162666352937481380139190208928283161603046655694334291735798141354489109282204531214779788123616836654003191087569775049124523991955247106021539888178549104317206200060490298012484345975510600477157961329564942240440620480234403012237230385263143442047013777720362828029642869736387204023226401189960273965189723018933124802348643813757515943972450750520833832445391784262615788252335902790597784694211745092504478113170450948310937059140596680820579000162733712799171005574198828684328140268887131158413618988182335959442805607166590713768308355923389833680205521178615311797360644690899576241290369489443656480705542168768397326424740823534062897788330183143720266262578658692214848603015340124335475543173483769181318544829750052044387678172331463598825940779042166729389106977570432778629909459305673173795107605328669538381911978671531445280976893910839893920755527298921308345391874752571737186289198554231051859137753350759595402616902180073298811969302307770400973279715787707698590027811012495476289577864655546636020143020458930080689129121750386440964332331944672655045976896333666606046218259383027072165263814344382973425168194894583145873177622883978560506728916196619684687499889003423374505056462775954650399307270718764243488534864769112443544329350513597792995689392232164121229002500004745752487683181343810391553470331752555863197268359512160312844286148069929658876820469736238610219019500929830390043454702656015440209304542458410402400402950149859222982957073424121924784977388666758396542263586011449291178854477355653069351442951037328482165409848423174790271603771261834545289208802128141723726798229614584900544729795012870697069134333321781941021818911497808378626392967673183844196416465442147214878409885110142885923419136484749810388395893573047709555009867562583342219757913941539931326423068004501982257806633121272045614860901800834849698180209986775543868457670342821652167360107045065294018380682352639691603920803757130263396592648098088983441872317177399795067627386043169254569222786123501570748499441987606547086845367542416502751208393334955303207943210937101133787210903078108662308259421084683376974492795059976287599811461393067495434988933307623239034542757347625714319880944214151631801248429348860621574254250309732630056985576636820293956821902374682455689635683795609379799844903658469931179641393620164341835016216108148327230852859354332378490856772180673111782174973509451336874288972605666732112166218326012867098404495375623860369651567517829581035909524470490621595832692975361096812927129154926486195329573509825119842589916138195832940056419564998120631369598715493505661715187962952466272532670803408632866767113621433531021389743119749878633580813290501924392952273700382650888248775209584746670956410358144256709319183095521161756537189804712076753740757483173756965086132177627793312949488866499125295158832529053488396454430173928566108145892651713734886423312383618447718023335075444885434104465996544117757806258584475296148654907944208591353164677976593059861841491714850856191209361748714842129153304187703603724588972859954086694932787344913392744209447429636523086743649881953493797043238120955076560080876035563886250226207465095318377036473884180859017420709448430933389579516776067913456566046461292350410286347627312299876891851883341487734840603418818712226443901720034264849427463889011879496914237268565906692573992705012675262273957275277942876874403658137995908318465432064331010873803701178622928572267475376723173601020113919513901660259104366694804262614102115671254446540033918126053233835421411818829481102072135097386771450755952239471546249394075480283082030957840408947770763847262509009891775962070979216681122230881088431290796553310986407742772662175266918001367250212406543290841077852811971240541536946073322412082120539881758468894639260372987904717734926717424386110591954765595696528100202638518454978210680771515796408670260400955893537172837879759144535162048654396020451753769579290996673706618129407636080017368021514823845999189581325138463627108956967068052426552957877290589176972991490644049132237153069332348151279283495842016770694520120204845469652187563876429461956883777657525070950079372814932239836175311082954663962850748493998706558484983496775214148199531981180279081204144265069728451517862514660905532482691771963711697064993204703148472505673642862018309827805063270202370776881600340753745966326303457398041603073789029268180153743137316550762508332359337374635362979009932702855531610724044540229889907750990651055795501330287338168597147414274022713686827774174535639543311074628196310483230766994641518506610774864903381543986336208841789566174996335037872787807898584449822138722400292595442444442641688009882759621169094310728118941226449650798184490283840221717239721263732041382171305362518363772537818361479675744620078594738758780616427762956899555544629991882679533658639828060629434118966989637302796056271541192038055081985680349710463489188625116747201522970695609057432634334051359558622445346365498010401863939898868353976759625087619153177172381868345437066435914857464078130648351280004396262625021786236866035229394834641356913367286049485310072028339368240484958987424221947998392724808340236628758944560569399569474033277976537725965990322998257183566154184065326070795137654163685874229216262673517297856627936907974639185235755089527302097713721445254579461768931128956616554765255288258163876010853437288965813918442675551411036444338331135295772749096029485740111424336817032669474909697066727438096892543975278517970882285528403407968193050726846454566553224604734353634710060229687564616349285791907314881209402616825527755840727349140597765052774872557332461611589312699906912574467936705084427227971587766715786512569730681366696521562171449445030230254303923198181380843494294693231186980187675932783683433785885397214849700311820481491640964486066426136896299710280682702370536043433623873263809012918644014601698347324222134611046555702624853001550314573015313489428187411931864565320323532943679585095048556636815929922903544169658629946525276365713021818875259738189290663825668872784867253335179003698951875217636377795836380241776273261539300625758233112332312517631148431637150419007530236472750302995918307745705762223594325577753968052229212223036046558485980807113384849562974514393040613637996940871403119429787222455763583519555236706278278930212220898924460207189195841393994073194397900384651814605429786757816357958973697779869108672538263556683136039654365653648149226269163214557952644050737281636196336793163304398301271404340200703243598056216462915661589057067838530106286935084764178875851841804682493754558585391929446736805185493879649443240295253973830217377491305516677185791689967505010087638748382940134577802406212126624630642055552286238215984741224907266653935846476825979695922570854726312671215936298501201707651763702306910581740297511426698262102730544813812843180356022765655810922455827831847846497365446665149309163842034921588524811971579215449236849867997413812337804200439075652945338756347400848688950206284903151287827286913825895431617904603338218911289977782505103571596167569573376923930902398522389733121394391543422278201167855967251211760760747591412257857873819705130787237173246464835249330980596062384470503528164597669394752712118948312880474705557142291588416352644045009512934110042033039967902726388568741182357629750561343019026661106585839702975671669233812445338054332557622570431825943757358185938767642705311339291803809151408952745156011389885373460585942440132976052656940916011314992449308875189355001652024183162161074230784844525225409514027985568850535649049142525444466560256384525492543612597408059485040773967143700044773284163235300939063024921386648113471867332981977501201430473983142842048927399651074449490757187706593236548922842376216104333050105489344966420952651250426896455329074989798815192413545392589119474189698075499231604175697573720794858771209998635837834047521241497485457311256407394916072050988605629319335539891628922980950826808000338923208569049175049746127912958109809527896262510347096931370151839179277539382464095774708071623449148305731561018285677536245882548980651016001267317461978396012033374134514198990239043038576737224370952394960882158910809040203577421992134222734864798159891424497264862982314829895343261119623085506439254183250802512530775679253563041440438517143586356828475774269998447123242137054376036501290569367873644710778137706900854663538675256647220482262408474452056519430485413029460192070200480209689092664034793680306050312484345070458816348836653876833394912192281057693778349708525278919889283544793048734513858492140214493229350275563586409790820209875722567937411215068304970068315840021419917024039980780359222754454721475271661499515490938647609719536369113513458727680878868538473859991733959968246010201779977843963496254232251259433337563911725653381045485624329877130522904100204141682180282139281412644824606595191978043736436119337199755412263993955345121241307421618918105839059496424560200460002037713421618659922593277448152501166629159766126112937270872851600023400043269390037681030063177764067541370282291154451169058787324667345497118668271494123102797936940195717651712174717761155918933311154847905246414718906513315452493228218918251477867752500563327863799864297896958765210633705922745290546726192379534206934556696224080318678356347213906754846161814876083407311424990933043863155432001830520515405191365314023302696121384687004514232182096849069780678011286301263079429677244199843088913779385871219191513762523460617518436591413454371119289109222582079592712526718520916113475263150245550390724920115568194639840486603848452730473022938094929903560969388732578006118427864738920831371443412397758268844797846672061212156399028383609172791318247275303146762583263985188689508266875727716351486515681434752483149990681311070425672837027494748332873113838537202902419108569671068675623953361722507910269382697788095004336891240134928223889925541597314033805462567107009758123229424059420694503163851585570978337540254513667913102362997358843748303888977515284866637797514247369625110619046754426728592082501561352071539673095623369744887006641288023213532833734730838277167253837569683052210843786758409642266094227150722956350539230937984098387847580847565908671175611560919617239611491146217739560686352056438764963300753348768892394538850263645509449724380421737583390432595378589936039191598307698706231883553090942464325685871016444038570137460382315049797816719281832079242523377482682912834441191008023199476351421365507637926253028395628895957393678194193883565589319752006368982524973089864039119138774255869944358167069996102841279928468203992878591553921863696204628940126175457348803170208926058151128993281675410737321383005133861967572520150071086636394443731285047098509852943608071396464564132731158950037599277467687779086328909103562557229818627705338734792118896802217398669400269060985316897209974676732038784122426753513450265452577322898643043812885987887042280374276501685866204578971130758998875611052826788529084486221688258143331730182582418329070600408094358735597544649293250626689516606851490953232100698643917373287545532305973829261203163188052885575736254848617752420033108736173922983118070610407238411543900998763727742380533001941605185784731679301281054669932151116904335058874265462190474370417924709670571774173872592439476093569836382248928599653140706475537451990043616024058789236018753877635217047814850337799156851724348876831836433426497125724788730753160353332475300176511811940543399628579938043859832856579649684075769664914747049778745772981725831914032799034373472184570968583360615766136763758325432714237462757491844884552412866075714773193780440312560134525087670004735721092406829395605340208696196426678809462168386425037781976026894381367355864185289034713851213631398326708843879963046255360978570874634298290833102094637738779799851858848649308534717035927523902044289847991067556674010663412492372474737195239035828834985871334443159095076198994756505698435535299374836536345848604089781843845185166456217242768120982232550827773591470251903797098942560686904322658077519427522242409420424790914610186097826172075701920485600794844616266938566673188245960300164741980502351794256722432073298966847529188957621063295950170607824204765521169851112742551790706416796490775595707073913767166970093919371386389083018803601803663882123477798021437192515761181176074426729391409253972174953836354133312913739005165714872668333871202218912508577732614594556727997587716740357429592021461037741682104354342095295126944869980805202124365565202629960443298504831893632017995299019160501835833587222599113837508931830521211679485081565159988609749102633542760508631085753379019167062329408648414155541440988152563352734550705128975862410981971632396040014130172909514489283001627435843850814983577537321053779165077917951655184299654684459961096851133882990370767007254288123521290273984286213830398223550868014719833708660853684506766227309583012469600109393395396355142689640739476764380109197286530678839271390848266618110841816069448492860690790463233886147138916871438675438866803261426884194503860570448933655384189392715759755725855267223580131962999023662043514752003056604871903736175177858858373115072037538604854815632683814329269627917939985380353285225000162289070252500217436299206057085346892413717390003317589987905036110183275080808020052482949318067414712906034044508963846941503797805161992645241210034682046459581298258502067407537316574252974927547210158528248050025889309387804815657665816562661442987532425509825258728027935562142599997521851390201798289678431794208279808961648137627795455957669393709255232238730446047722760167030148482207927882450987874531050654579540942837631323065707917146423613571773668324998051912903721772067859580107366741841806670247193911392969080327926814140825617095835733433422120218494612753986822612697376364154889958319680429520836413401141577312869771284808729683766027248757896196592259511594153075045063999596229414349472355310256090258215090330914052933573426804478116319339117240875428649344764885040884994028861124703464709723629132388191244584772519588000321311011812187783906523338952214184494626905921513365039314453883923013111482431798787460395207738534411757643316169499892501826704990920377016237148863156407203093957611303833710231671219913107538321217131052650787352658250606901323756467333624841327420971688373775087845537374214115122201743766559637344300672527848020551063445341837523935910927565627556401154279401639911156755955700887642511281473603803080120301443407106010354060328773433818550189502101716274695198138093926194228233755088998279356163298801203384612412828653665043612614795017019729306965782593746908701665053638321213765801963972855007596678510753962883573656768353693340582800773067915318251341449750114063219248779912858998078502200417244902276290111089835938077615323963187238922464650395978619220448968135415255882088570297651192545911620941442497901289864727010430397264777366669160157375310526515330280960311308629106065073729583972053428926980540129568200185538175853642697494580442816619713439555428451990787907938961230619456390406227627978289538050571720509849796351211948201762444529431713804436671184140022243665905568803417609053089902578192811904429598667027818547966013914851801297301501718191426111517832367598772973301197672583095142786572819287826873116372084796353143457246737855531344569174101047762229959870923233670099908719123234029879974595167644205705817069043192989406361212881029581360732168712441626860349365700098147410365898033086111717101885041649225839217847963250089770250303741963521198000454873064232264185173456759951804864712580486083754283397884692510093716669903216644450984199153368146294704351589229267315871486267586218645894731052328843677519755522638795483676260364178008207611675972752660697014191940644193275171997883137022327546155067641273563903005574362301989701228179093345791089042655385667806679309636881333035042796904815122196345975622285366549561710535191119847979936920460011222484338191657956015700956077162449930676223905188509206628732165838233829849792735580522043181105564523295270614788445326633424041726739020156589286831648541983267618439213719241141327788990424469715110936742000693390741579211037396773543756818863275161720955922823960773285836109937957240366973326460866649772119510505727206427154748633102704123835897957008476102305791315637493165499460675146111062203812462610420585469474260424430884888784054455701314437318967725147003877753476161792340876173449660361009343823611333845595371518079273625992643851658875044466051570838320059227372455894875955392544766332202776303438085684554947867522773300560663920053407771526595257393592841012596287720838968268432645715570475240684221641956416595094967052469455326362983388876665360289350077463756761072364996298510769912920033109746001289311153624486334572121989674002327343087679274008099379369898301357204153326581249477912703822670437170805845536292445774924210969635643589567802045776134977887393675895728103416150138024885096747898152982330187453280806013352010538932716070861317799976699192690582633902403081204015138116760683693789469267878603501964484606514878291246604158383090897577456306586485191617922503238218131311463287053083364573578297504279424546346000193313228735390641535472066473386712058509758933376528267825568406254785354388179343248578956889392317427574373098819054620617890444824424764655712913760167883410972859731016450743191849078707637131105801338266339090669844080670310194819152846142825549027912316612154259408936865291534236733527239046560504159346249952308450132526199086370967331365629561447019996616629268677362762404613166543246597492379558660702961718367921354851894461837634891329956966581944085464725456617592724655063716923281941954435031225914718700471183448538727151666533658889195083972735202821472588337240848378687751477467784660265531717789431991097516293084030978539406351505306738107796034849782760693378700415210209821181138089855032999222168808794172223272796576861531360661768551248354160351983092837628250200486038601166302511057257501704183347062587086547209228231718678868943175277484581324308550794773610229847070456760604940716261510853543882044072267231330444425472745153605678935980810781007264518940199672047588964883227003472835692278766474114864270678437740867254754468556801316577620928320066490331608810378545298735945118761142898544608089282849876361091723579369572894212188274307966092042406898899031990411610428503024686736634158671994620030985649594992588418216819980089607836550450106184439619450414197388471809772550067659599176012522061341598441440824207956370191632485080160932648998603186102955440307574685258198519663403502115677039441645432413779482345373772065424069718527603531476455768924483743281176373196228687532957920425091463008873983496409031441873673601475034607736851163469463528213930996510305495137603121313800163223423730739945715030425378681817923250876159235727059576791411855889942783919486419435331318927123319423435388995564382408024440512610474556297091391360291873867920966191440508091278381905885788634165276692369419325323587134419047345841444864305838500978682932188114577220749941290955426683019333543451729440727191271746515443234279264222423942188317317381674995846331152977235770031668001341418991640264268249502991271644052126862604431648861859328826898363260047161640903066627615487175949547424744399329138325810621617246858196900754752669955152281028000444958897000918505968330686306249064347372241050712954494684982524089632718221891713723489566440114654898202793251158563494993090386875794023339780692143622867219738663730309405655895608831558694453107514941520672792632013319416676840397711433157878600622320001330280750336178798868266072456418737674227700852135906131400812678843479959348183602071652198608965777261758959168225316075533131317460164512411095833715795391854889489209227353114549448457631447588167137405742270196536710435292878092899724277856775891050737781228144979857658492546009298722712860742546554772018628824835070370366092607105264858273259378426617819137337040168665612011392289037845242312919248924544015648000023151668175869175126412326041303657507651249953785557373602347042578529391791867109747799467702374681512965482664872937312221500802177985113219793381882399230697799427097874802597417069259775098651743264941398153335832471351669398167600013381433083891370513484708119351250965027456967353739287407779738506546477269903170452156183986345450464819984176850415572159335184489373955056858544298737095707237350854497204181250160601717754251324678155141115967367038690888884062672296120827947714912539073692225073692760454569698250224817617301666531182660176977314460269971598843223895719846007440086405771094211585864444453601025843805558834764472311535476775192204415329629116541970233654204517801673405185219500465771098353134527726326880427104525849045617333796227364146778059887053124159971905650308470411510913347848286158982062514849374989490526984551767162098422974780865867729572951836101479329120279132498694215521362204672189670082382151287691873487300219477813270622856978168903486208076688483945914375242826974044381285348895085421459137787777780916028924849910604010759370942875092599655433858062856735239820413749812170896280339509148963093361044607890900385214078910678706487169886306506415043082606038792215404226312900397600988870292753933475810058223446885670686505225184404779567639274533005213846951624613048648839020907066538728825213497397959364138701315332962356209920769315245214793980735462605827003207233300305381951301591052270216697233687957516350947981584685028159314612958594838419499479724971324005003111611410417660445764081286478163007607222186985238437482326814700226945307758554492899875962805222701726223033964142404284754730116155962792682115711930901624848012649581869076065240519513112650804790024727822623188469938538788606483204914943032756502526501295352596058956960651350077366179376602849543906580915528190976808082943020997524801386787655492469976141851168910532445911035939753159644397888621207949184612855270844137964359125847173611296399777120297956134315622076113270461454435778021093143568220502207694019815822463094434459324889699138424720547366245610303496488552061635191629426815399787928187399037267331477099421347756068276569547524330682655018733080055395313943082378202525200940988891023580242490264060104488777063446727882431555027115159107415220419737240669824255951721744483195598021618436157298206392464372636631429770772362905149820677387493977247780822960052316864958047719723699565962593266614057695543856735143318283857184581077099782525055372701299937027973843759533651583667165447323425516779401180887486559864483228417759278497937855801256870960224205856683445833313966376408432833428337525532291310229970379297186949874208115860744684721250569577156618382830884604846300216611225736986801484324927079556530891444940124636185884511172732131978492026934182691089833810819695769234135908103381602822497711399418660898593418036777032758026255427168419748591003669566108482443510668524982688349827851150293654472286742449172693097107690035775574008577187549658715770045599210428927010881561302424328848444575557410757027206424135421677161156009506266399978647610572631772475611772549629966908478740147238382546824970983608255875338213266575070896318700575664059849222059748104642885924221979408670808531390922133358950545951822014248799399467705178947478619665616710630437352523171778055359247627313613884700125325433313319770743183421354296811619620319638879227959084768171139280028848216144636501517229902798540976431482776371895358419121031660590092330052017421442703014297830383820357613670090625569963121769004160106434122081757976651707892583442949856088613173973805206583538097169393735969939822838148165591749742580335315610485807851537322575644192394009387851791324383039518291162749140699576848075990649597246860688574440607429997947134512580345726430576010289160169928394987157924323164541625870935274712239394686150383240674481538542606218010885615516916045461862039002423289388303454978667810208606476203859126300200347617391894555536470397443719523256905152524086323427261372074849856440012401764054913756855873259334384314498487619577125295161189306571205998828862111916683783230577076351678375480914904886989265509548428529612958862515992397900792097968153196947757720181189140537722894825217989019936561078143046237138761213518408306011727105261900412543860590447703901993145498741553733077527025005831243939670063921133807048907549140415637526343222159788353256493416129890881484985072515314058228528409330709537232646249749126720659448233474876538168678517014597048952541157874172018964424435103085720856840660304424406844265747379685477948845069310886610743074052039612781900043804310878529138689176805998051154763945462626536435682569762925313400080599665369748733948203449653609894686926906310714349699583631790709970554257413662854170523263461278331540375086617258344232199748714092764081174700405860532631506127965027979426921745744374482800516450070877479105223523176751967714468978428139300318861356588701224805009631346204667695065602040902255053479147952993397266560517403851779530975065422997744327975713524150623125409726982370909011178289389177407464686563611594424297226015735090678940635358339382807394636458692814137748911049766185253293041811459853940844128031387564197273743161525472511232305238985462780845789086443122096156021117923135390860764446134036899994765976953701589355053202489689714850887928143104175287322635619814587339219685289252638996684421043913907398497093634882844585240683411275623622537607675091720029681114187505771034771068227496730759939032854696845915715861140927064147479404505226879980819774954647348746119771590394956066546937741854120795004030240231138322616093258544367486010299052324003938104370375803900683941040431430716090459412103988489751445710682618976130833784757350803353309473762959502047458558805521721043803898197283120142142414916185287097772537885564453109679437574984369417753103261413022290493937419885430785852735656955922025505652648752334513182594067645942266066992768728589543123596363155330472246872042859055906616738413463489737655240536816775193217665725347442902077800893764158324599793560032169851432207177082731224683444333443944950037470206055938045352565137786903402152519085950972950367758880049327885961998762061725061606683875577401110285031477215796358561006964111252439097251052708451176846055030606672978039078761659512391447611214857872725068029831225242721838731308190830365053765086865923313313282883175503616694475856777572084606025966167113614124193488319913713473047424383288378259491465016595612961178409343809589311375234961832581948730645944106824262192613265993010988989039812202874251665272501448749679902727009037100206424345122557383599784403224315965236652229558127725895044528385548054909284860678040132281058524114628887019174703061395327046561115122218282237052236965037935391793283086882400190829913806576538813532995555720077673199828186396122556492820830781575646828939176863899592567739034800530265663524034445141356312629996018038007906236045615197700036015809531636043831803807517589449884266027038794525997510697606670024357830460578587950584703379343291536654282284163449713745269939256554717143964405896918842987044688906575673966275438891404256450533127653766991301388583507686092736640286720815831096839519637388710479004163284515738747619538149324298429111415752058571831787130568044530037752528821440821787435870002153524665763812920606126692344194029193894739433600086362405006530630582242870771162614518728477058142066946347669149778449547675268195385356460166342390165002220226205214416969456463174672031591292146392461343223709769071841107904542803469116853531616990307710484645385422833287476687506622690410074837338063045171469818784670246745682091287678934154038163066786444932305041672512374396061520736629643589954799486403966177825136210555827831453112355744301728032442157199238096016132214956332060589461034155246461696341713755402155166733588361499910763156976426078154905669075530514148064014294414696079311275164768263441631593160586717905292929931161505612077658820436427240567546821328820782732855223883770190361681473442630843574378891117816278995300805686351188168856820380626559176392056026979679083773648460523294638757954323727447008988495869604445593448642853046423942670443282032968815045295417049510260900548876780080215835185551855622264225856252082464305441721480445816649771236892447775311554828529286303093201462221610714719725006206805071335255442802454993176358722867601283106499801317189818669191237680836001513075440465251222007813338403029750690518227598226359264640829127114254276160597041461813745450824755689157016060494904210388659990651665308228026871710491561324795873501016528317599795724452264340373884295318446973458729627378801250314305838655694944176476777971204714523834020534795722115125318984874148477932364013343199289377572476540344113488457940602172097736177865915054851778083970879039824885458218879942828480181878745168491225534344406348537135105962953499829073637614484464131153527198759946479887208500135715580615131029972510675570006239698391624874522839804372472709885168065178457378873376376302255502250332920883036691733360608157787008456309139391965607639920381850738185468105197583473894779510086118791993732508085494217947227007901896675854919874555711684980506966698745984516917124966450471698145524143458309366994643031511865499910839673326889606396419555656018470672777747374619726080023657209812230309184912212301980592644668816187551641234080524540507527030833915336230167645039196432062587782609786950038801955393971137139675706845556226956146953048540720612429171320729564777378822797354112321078123055475791901723697603984580872736591039152342832679665222332244868073145836562229985981036241112652269441757952162815897671113409701958881888026226168135621606264606889472075638626880115509840792432568782182694872053990258886927941358221077560328285754558624830446553713418819552520902732272443369969414405550458056008201742704332342783005989849389812212753595010013115896718666146230595831328498554345127238280510821759409669799475932308001113588556339005343193345899546799798506015177526906791643144023280122131205455686186202701733511223767744794816275964030974563720202640685776900504566636308882499193977559679142053804716088711799245022452819947429800328879021638606172686648881017489188614854258839207807024962587527652521898171918615598151618542336028925932141189646618830832801349145441962758741972899578310228467848965834397321203260491687096713654933646390249651642015664742363884767295658857432927889145047579612345308884548543213606977980340897113919298609411440794627825257049324341437082674031739300624528078892169986598878691581759300738692679337467986043202101462218754996409357632548904247273176214514489920567921761948026090513748971082930468928870157440426328794356441209925660176978141216344664591893719277938763925507250537049343253547333178007712112237438821576870668791330159514919205754710256356984185530574626348585201373457589685710551882481783725527620411874188334859830586639289149641399636800112046057025476660394213579212858123918229188334280141189594246626817494318886689045289806243632841585955871142551310819155757092523014723178344791507060848559009280735061135823553979261437926261372270195457000415619764307830716664771555634551952337012537081595012019296327618454744186702835928960093047866995045754461509857814916687143756354531925624198855833290313617931476591239394027804571882829772766791071118107754285004437403839060793095318406070286327255749989787219742537193364589229068810017729586461328852726252109241883610589245426194448172141561837888498829935585320058970633732501001478417591678328443924251453674801195791625194874954235104322710013637340352964574810357018378766372231108942279146883395259010381777831133105390980776526941485148537693521244879849949768445291199929800543574240591552038287669372077848090550376776102624890466803025431173782799602680170396674383144538083260048539158918052522426199408928436340004805716820961591149495048474663800568184681529390627822452753884982699677766786920877136985233644435620973299792677415165179414359429744120293622588484106287543563449695019477815235798610053215321712917246510621682165689970684560677559095584881449230290184712021621237826990947448608174003170850600989059895520022292612491896819906263504302121694082719478954958509559173435430545278589404053774047284305164084679856928557353522474442493137287037457870030474905951366819450368669023734067051295366641962665230355362056850484802423047888237823181508535344550728795601090047837914239275811432780890127743921825956672322662953529057925437784038884316003510266390308819335227400438801085193009070638600206258087327626348117766805085174869162670551014000701886416743133813085480778028257394224061348887537392394895578655879581918461511153278684633568081244823796376109345252663611827947932878865957984858622221384356102275405193909022040360314398299675239669085917787829596591058780538876031037791233510725219365159967869273865170154265100697148130819576256565290281895224468865006842200651185450541730474138647059470284953513389130494472236129629515874579657751445538178766483052176902615202064455299828809518204315627805329198359204113682171851761444616635883848866640388988272765860531606449806230917471500167335536541591072581179624048244836231790278920992870032202464777332366576740143454974019298537744003167355136478778524045908269520648847523691390239769861125277785820036909385363364390695924699632720122641978679226427314631943965737455824705488648742311545434979475953949085896590432781062563306787678701171742459742352274845519646394989448912075941122086901334908467279769043822886024212640269188252784067166892254806580847159268680430120353207996824304122856510344410325158085082405027201814552716003108458783645295496965136615955092911095050019585674625266035884441014899097305728552036921464344840762923238360444868197143340344063625866912372297157398706775284287556056240319834277175008711935594367550083447740173678297301438471684099387022329936527859209488226987725660836229869730228287109988333634428187322147661844812303134749904079299604072455673191951262123281154604624659053179376926722872643864590026275374354024521508711136176784773717750612640254933536587394259451214137957173077572493096150191470549325997223307968614604117425474381983035184346338511274906459135781078173493777237206213983103513629700087505287716938521468633295633368400338174427606860464312592391134702890552002776743054767543291152700825462011291091769768770905650911932492848973490558997007600068694673631717036786894876307976462264028569745472362707406886262531333085300763035192225670392052303229840088705596557273922135482730912244730735161057155585939370237491376715971736034909045276454257951463345924777326474911698088634183191084447680643779037568417655498448291584077595878220586908315825318938323108756006537785029991328631548383574536582453406134761384581449274653487860408344575530622351025576604520229513440211991304660164432507371045385904082228338591586440890528017721002209761164153474605270817442743437936357788791153697310769716092845543450797999727503696029331570111244910988298375734758274863688738898449121627141110636213586588755994881642231726807690642497330742852849432649448875263937290664589572677585863055917341166933789969248635431479490044241558116261173589068525614929482667175287625802533814024313851170569868397892375083105541741695901702656823842502679441788336926320841281908658154796004025866744751154304764357276216836317995097844983085892453638214055844567023619302177905322123221171648130342471325161164677785587879340355511627833849724217201110356837068467386295246221843486592538071162214278585545631925098850713259382247222065346300149304971984795885355684138360383855029916811134445553278838421298632574142070753063900779213207163884531566867184420009665316913827172802284817331722322159101009919077570022545865764136873501410109554550128534805558886135995696958634965886203017986625603622568606226539773102901281862691932880603381513129472953049043698605613127964431373193464196798057918552061902616773869520098644531093188721961106617192482895290439872783702719520216970998323463669088841265480662876472598825285959732852200856491239516799062677521396241605338584763678906830969249006476101198930921373571371797930015245886691923429200867006683404742042282368496486717305311432703239132253767766715451314572234713815379081496342010174822179068538624379693086896929079197209596908309546805353095891274282275871681987004045921214496238876148828289596218641354739780548272975957315426420232305177757187303904850677630594288927382100692768677158551910511448616166740131587795224444065593122524690845728517046035334176600671423506119685810113832848225025274456359994349325006465985603832921968314259700092804339635776956010603788991229928858646184500242152819838197376290172552646458384416746119023583219140354532894235730830895927544490425625023749017713644609213953294453086586160984296709422830122039172139618375546080076170136975397738115874645754808220913869768376982345613258350565820528625168580050399192074118421636796991369902904038809147047312976307376992815259524039902636441717875743177201190725895545901691302725794553575994098688652521569449436851445415252211775332208723610360784713459462372757765772584071787391720049021067892710618741837017501461126606975258852183216390705422196389190042741357478930564732727169763634537561114200717452617483686813678074539244528984211109501109464230395010880398000675897753484212520275645962385271305368977844263221426045487273190678821207622124619115512286077483453320171291018658848762365741312328595737865365827771986324480632753233854634713068782084746251565265721237328958991941928432722230748258668249156696462355740501480044392963149527425246140090996444758551135338214016231989517137907424131488296721150933149472364136511137439184456329495935387592130761065947064047574022349621913295093853881812831602823967336144935058415757531627786144347438568266478518136141267592897092046389508802581917121810633724917619708447026862272551724266131325980823931789455051126228149858933443328531329549888656430642547780658120344176788628581314774717508754993610851904693812349578299082141135364266744689427921627923475569691361301712334773809379523369711916018833270235445851074495630638915721764322238442002267359122026936332216464824122771051118504306298881974409383912130128315372500322761663904638640502524872382920191836881724479560608554256185918822251542976222671101235971226681719765550744920541494450742709232625810465987487843425268072767005016292138307129450319176989694353807965901829656035148109069072569695459994431465009500102047893583022019404970782577675973437123994188987494362363243308666557021270768494316404768106867636475169698397655265273293251090549092531425714330922923686718235031705657395695945402368647143300918544668730680564112155859688515365364650998750384314679336245591271019943556403039636224036153793065602745136857828309924939715550920831247350839225277075798107262009125391973838964652912856558053695633978755735537527156441098022086866263177023953661597526683089026044524898962659424705534137225404453812992229026726141333143885502222872561367033936706994194664460244533783246925295341317789421320245106754203002526562136973698289392481738218059226040639821196663825464248975070127894120625296052219378820926484539160973016236060817135264456855825588829564438701124603887632727312290351533597843680791860752575248293327823153971516322739303604053464529386297988229680242302093129548921776583084575421095393588151069450205303959998725465534706819087434416651823795692891565821431446940342632069116141078059051284365322743132566301313826481075807298795075633594451630880197659710959038014553790391516562409134304909212770990433027752528055688367426098003287572281742124678631830470067006027303292069546017972140330263109264056269305864963644955185911416303805941680166474698854081982445624888791928135382631881782077922965512718893947620841452911149198580353486304442227891963796195551252528672507973250548805829004970039410085939695362691847822141305597663548362808893928802635023032222451895043549266853183304816381382277350761904116115736469606071327773456396396026916692082442784102873420110231242393236021539670289816781413619922820354096303217309112854088078821056538363343314459385419270082887811345009745451018671811648349072137442798117124065657946306272107527344711446726103026630870439211992158882338494643590136076622165814652063664232029501639576396522449324015504565539444925978283194107749803777614925059402670007376567383694564920459738475958710786193137936082067424092004369139546493690943054415006440839366940403021879193611046928405114557710706886504974388401335541270704753465224386010196275041467253398700081960852287197106664082701251929076137394537052623964204259571378536891479989728363488517657578342241450379893892586734457086939239714448187006684972256894352768887510702081477002426037895195623738883085655887155177014038530379988801228309390083995661091165547555162772563045975289803271114985820718495097414914788830277849688617409915558318663686931368247471759013232376602043747993468417112124749239301660116901506134705334625021852081836377010022591211600196839121129831014068070500826962669076921217052385422671464260028564905240545275960501540682607938587920841657986659848230730788610103662061446504039011615748356501541310842310016559721609477885406663603701831161993460493855278952146403158436260120152462448835074892241286482141232544759693343652310817420445999853298243965372797024753992262781972529760573197088492618411837070276463856625383807650272591153944705740599966229411853103771916393151790576902118391939373772103691945957322267184190524243860029099811444502428066756709621855337558799539665735702644115835592616951406500736633152298983058471438025246298147832456984021812661351405346652933282521253803055064600994391941202440403283483784886380969251140430203424556646360072491538415061474661790549305030984346504277416536030148600653559175250035569721374593481063915304235188268294980258212719089374382740735555719145247810118874979239182621250407868168531581262354517673492392945936009238789466681148155568370703320722419452796959253883994265307521775789992719082899209330921000155411712174943373053414402497963741029044083706071830190250877283479839895151377181009938803357095475181987474865386765581520738429133495393992682954038824969515416043477962975430534923315730825220314680988967330068897825375592947534508210060198115805478100825004391627483438777837064495790975705414146227862006721796147124481403181681923024282127635932695447131702803666038373320661498159304399913187464205378268614442856361449314530273297292670957905737219231361578523280291933834996707587186414344764956018919249025260141744273196447750533956714591459566275085707331540751671192420480582830697087178197210118790109884177731009048897475763935277681866449192178146257181332191420453987246137672796895348860760733148709156419041286678576513514191354597538700022257204286747788229430388480185675084125485940182595750897981461967183918717304550769799233618748491285865782322519067757142864917899230048152104858044757438146228892266421840329625386508757320262648048988665542397537372173863441512569027422094171400169152451776299842205260582478191259157353284484737686777187303278137679931286525064747229267069817066148096286543293621704967844479626851588289898136768673558286890892714669272019309364277578470507876154088331750281262270638753532331360928144376811072612474063356237620876297208763442782589918540980708279861793854297971157596284626453052765227179153735430093255983124005665747086874042446705045517267328186263404195413561452462271402610672262526444387598223771687630718137217264825862754186025713134003142812318554585160730187515808066559331223212318665936836596545821789184567436374716625952072668561222374504686129016774177818268651390245155401809733174256244081271549583491471991527415142768638469877247959011137853373819688072127911724817108499699399589946042138539766960138029293048114592303200212642624964028822057163669095674927536415965450657034803525303171734705083404116141664691832522701923416430154279126926121293180692663461920835396987109129691481752927138523790555659447691138177139651997707217205581039577630693722096696894821278808388218340678661539968304455672704156395046203804210421444022768167959645147571066683808848288759710967947202501100565225929715725241480838732458420946926229351209780113668234455598796776203362983817305361022058881341229745409835977269538449391162393647403641786214434340374845954218515002634843732685482641537187589335696899639650167571386673729941593434205521057418297260718165916505856942504206923316838487889188905664150837338372427194634630024879536045477319448028625520504016546074014341099207060164433984325557761774507162184566858547369244288056981763207649252415943496448828937422686763241714648283577219870464314656304811458495638996007373301910635973412399889558700030471814772117872552324982665812772971599061967588673569852137520691347156688339817690354819297118937269716265741349581902457873161054267499742678953932733799904706849944574599919851898859136200172016554637660224703122684303183406571671741422483157840697336533259489389560005241996553328619669617333762242405185442078507413127039628033384556858280735238339890669445709986106374541881277601421991361184745847715328642198231755287726543586288591588629534424239916292052781836280047120148637377264055164983658774152298957637126402334045892471084383950938568652436696155795496533774361285356811169702983405955601120821643387586766727010334154904139966745387202102476825344345252408957059504703094016956487787806273825451591868197641169076841856717318469703595410138011832956099868964494743293076811134392347020820186555312866789435630592206184503028252202652207283479540727222379681234625734467388492517359037029892138592554619793351398585248079270935726917945781169922870810502217001034998175791247417308120014620256837585836336580739248515784727379719494798426791528067236217843916409558933575005550248724609036293445531485397941364109845871936051511628841249207228623183807662881467779255717120847994280616414119471776799107399232983779667233422058521283505374051971329400714567268268684438459550540060086177917594179379839762242295715236162067445665817980380262171002251445148125959493572419249474984655625110245690482476101549220012390316316919894920889652632952518672579440359575513621747757023248574526483030221697415372324916365898063844081576485737513832287616588239273273541876191545221958051284840660238573537406480531871897463655334427654613034589661919675493697687121602619191466911720273504758827022507045169519752346051898427147039504470650515247408943506015775144763834825189372949950566446357342237020124209560372130888689236793632571780572801305448459940835616620645758593231899738843287695245491679509096562802616404150062979316716698819430711672203559134302874691362061479860549223952781108822021349399031405414342985207112311669088380961191362545404431427561741857991435430911635345701132564383337891338761017804561636740565867817058288560083976334565390190865373668368062770103133950702021420663096250171434458412892948618350549558021599612020716180337924840676058477585483452827638964821141953770766018308138260299503680937823882135379873484483273794131913518288913979926074745908138733045322998350704220577593193352119995926663092317649214155919470639998978695499888721366651681935820473958133337065669796219237109873404797334418590336702722885412563416453353847877457017139537893045621227350331387907620202540947898198450048060326745879977156458479527325222965054353690875896568427018875994637797435989187289743630527650444097245293476697579339144823433126247375543390641347329082194676381643588705455570404062044208889808279714831882730367508228205610057838170398182161109392699355355896173549568486872781002536346166046873176280284465629840755906775566834555591739794512364657359694859887511219696539480052286999692551285556814960775579463786478085365813759774366388982548124406861443808361110693087772817416742865363497600458798542611512068265792852432873864737336021120246578040928846026329349327997860156227453968850607264377721459580916053151784852716748448284253274302729531051658891741805678431406705798858388057121970171331347817269296051774152766770041840601483143963425341240538515364274426720803370700343960896081373577000690504405802056439734133495627590241814577964547569858937426593756774797664636601716906720675937387358790642694586552925419497726779715431891203851610778592018405855214300417080549364882857009157458827799992781626507938958765565382223685717312423359401520817884445165598649526761212642370228892337565131503148722563525464854510973396123565922731000136067802426208049162335082562873922216244770666897226911160948471335983831933690799851651079517316802767562222920081656307120724064868424209708982745774857327233198830139105473524664625998653033332597061987162797593751028908088706615981605020112855224781462362083185663613258731664675671414940712782947206072522921296426278530563239850167908071886809063203366752501865947999013865521070127442932490215026565089303065546951646993177427573247841124582311362462294947098906373092589041984496706151070173316965144937929939171458763332926309021307979416025802686682693584988221923043499870079369056448473628832057301338004777232813890152007658074551426840076137543713343696639783040701671804815582142821143659113962793231869551055713604584106499229718493803421841175637027938019835071080637743901603061936634012093506881883677288837957776288349387414440148749603170890962670532162639399168221688318987729053695506708386504728637851412215178025486340176473329985291340581168165505936271915397204827764514355910857522935541354674860566769392790398054352147068327547438430533658586369684210043891487090821509761904091251150220321124352580580204789371442017994772523216708003004040198934263967597633454786233279898296799724178948947726107769788937233535531711691634516277625261771115017038115477782680546608838457162295816400183071338949670532874528941655738829057070374773941184837924122426518464202025232139107497398452077810669668493116407205233692254550629687213739687906482026215175634415470120588794843206169858010111541629334370674583435257085794903047607917389322523791199387225962256938966044947896885507964210133283425232193199430476536411376749413982221593176018641659482628287032894663320775403570082176392686681833762908031070318806619561856481253778068521276688552424541646117204674332919880358417843664354456590976313342851683814019111095745803420210657242867407530128810687315308904194967094247620005819987085713975574181046571386157317663538546854199195476407706443052713978185347380216561583476425109787471318724977216340927136831919814906346288578684258804554221779896665144288488295866248577318729522786753749773949880310034684585410351792193020264163031180378893681824958559954209070709575111443936483050195106810289571862761291672162698653716321173802300489594551147111714308720542652709917342422756917168994886382051035717762913936441108740483981794917283609384906157994447835258834177131251715396190740424361757877380139246509163055679643755042784017397454213220531572363410572059625361788239376542893242427782468010397312330158411943873640438182902806486132797614354966227131475787496589843241779745957534039325291815967622598028296561507335115972702365499310006107044958498945610355855796097875940283046057372120116761814156699979864020061205362795175258800240450736740252841609770693486285400750839197514249898384813831077856338236636445526130852414131707686543254833682956203648268007902789311786145580224423376662785432219399336424370223068085046427396212547238377823567692413130976679616954230580411322967526659253269925530362284659974210797826374748097279161887101928954010404844861494432273027952063312703643948261357661512778302902165035157772095021090132313244249438539851022389306886057022072264351430840228901792272927850107016081237925624039548917997697727895034744873423261421702782252326659975926717637141555383290554271952598997359578920675109442432453724655288702851369589475738415031011552529085525236445327530007681840937549278402181195824648774755042891760293665357152361964612960391227027132970715715936641377780227515159984098700040054942217139192891880115391573714791129080761154200359132261286512339535705192191627015075438212178086105835792245308156601769306185582957886909923804460229440260408549772637139654298663401384734133807428492795713557262566191847967030391275051241483299296105917607902591592959684257587135214559560568532425022597436410535065028277974444486925901478527184863077126475219852412346150513739298734570195498860862997257719230981915123182371622766597299405467391386812579295154246331475231112839750822372832306171548975383884520811118329843198464184596743281057033105494015523403628919297002333726748581123801747079521708916698397620187038250156105678694444416677648585813345454632204761689112880144164848586933693162264533256857649081534437116731619573586080049066947343620077974254948993458775745335577505028368692394482939482097858996535696647897512574751726932508279695090626654729711545223465795220956417812630200522029720474918632763281028095594163752827649735929496291359600600404247937834161257554677699890657883246962353857386715943420790206788722023259086829010104141908188423521063558959945683832860596711192871795420070771182340548578458978540458963320831928317745094431263243689738534897247718497192927914623645368103230541482285315439820050523911659831759439550346519695189411701130149871432520810634425814677176199870847399693827771612897780203994867117033089270497537379676749918933106343451997175088480371487002986452284642634037088310318550716038145236678567261272544345571468666396737364135077647174077666979254385718727379254717014963163636338823232640156486142131688040193435523760907741463113962414085318865128689469111268666512756305167291698177022755601795568361181825715670799628755856813929504158956670824126682385505586880563547044207299127300294014114030452786793428771062730404813327542723669952854394092619204625651861070416984323461070466859957032436305829015275301502394139826142440861785589193652803728650343889946950603316687873678024470285173995781356485334040311827995068721296939847374971395061917214980192076722943411219672762186838693413327032968499097968526751541732398705023341013805805726578093995482804874286893306517736304097440791752600913781888352456996607267677791166148525868522147971743090797039124560755705889243048950272459586427989826802223938864086382211717908039425069536316497094416459587059872930570945857459745691100748418464340257324805330340358748872593903652175699506371966288756037552880194289781068466416592093240353115379203881743964904924328496328394715847380116374879775244051535731471653154593971967094958346177369988454730246631235530966757701081305812645250565381729725819052170205457238127605875036428849695680103965249123891935635790184005928412457711703341655534053065876765439339412879112166705936297951531921691524144826681954494168139198934881007351446636086453656524832783655862305171745684586855574931658314900137532364571378974499867012964754734509545898321605178570831937493025153666125353920807385321964666552961263083613760084940419519278575745169841679415502713849293404938458496533234063766744371350420303608442319283978032067156399884678337029047862103558569687685038156049841430850341279307725348397849485595923252297852143167392844653737503666696136422593983553214517066693577263583678711628645051579463508302711392852167401226139889834778851669039192154934607496589203872039165855598510391655381849619172871585874647865084429576429487643335025306433685914459275406498292017298674209495594213606532750432424402900036040410875557842214379972318563054413705420275332630207057629699681015957421876414108144041517488896136675101080194485250451738466376546173388294973030405122406480375586297725509155890982916679453197435247220616785608752003381290462016310319409994818593891506193475893561058362832484259118521073020655164521216356011129405529146775302881821089278147076494482403360667339598613721362347122783669428190578022121302590866415888560693126958511449430365105885152273968757705528241813773191118382279326394363912969505914447753310763230070327392161828697466856587082618786165594226985792795089413142117276797031678873975179518067570840650319395123887735220361330681653266237746644945474293160347017111887252107120227489765260172559603673869169949480125788526801805005309651746644137261425193529718912548491455761730312040656610827407556727911017770884208916079070037021032234252627934650067622456179106733890851299229912036967933644754262332290170076099600694444813599397844751507984859778618652203799798090965145985915951742786454343734681842079481589909910479453204475348602361027667367230055292191303981843479656570000919645945710658617363062311463391231927802830067759280178981400674898807762347758145741343876723434222612511753780320197553143116840704252962445528079584792372410004967428984056118315081342011459342132429824232046751407271033678801078751922327187423892529801309210492129306409154135839870287575490875242704551619582855573614237530097446115910226079133468852670360559267289281672668924270304743628717879149889014728608066648049924375905590632747709661182117123077396770530536197247502279813454323841403082589534322753342968954689253596314998452342134468899540406669596583877709394528783055344025345415210786866754615194626584284086950303618093431190517247763692468957622191812173851860808749256861720494437972127344512147263886823592591274508902380038920488570055918327930954187577970778631167170827525029952720283134028224210547421938788865017967738183821221276725049720883634964066453744672243304120346566558278564042085035090052484596599329375819938479343246787287449052898303315654555065046088184817529963582995050305991380618119182650040778057339068545690615389897935496373709677661063428552811134648750281506636104417046987554174963221992843536318757248801565487187671859068827882545195639254798058975008967960747043765790170712081216876508172044846175445676750617491899359574439693958698966227956312427435540144749353340918271257313719489383518786051962492871166821033980149321406237949222382733735733374212111916184394801991647267091566530305343640282520490131283523430973480897225929441172768421755668700253260694927311607538769831857556399216099810572453509351986162936068525551370809761365008311110730202205893348753133892914345310364795705509072572962120043010176944408582215705943792394274072010869660808166678755381264630945671510200427132648910534866825761887775334932086366364665644858126882032647878235082885431325377662759546718709835639868777214495841470306740637534429164399523295305211568779573365058766412461524594533405447535255506745827194853718026428547167663735182208811062846270271989733657614394531511315785466118034661806414815624889833557246881728769005269960384583866134005140105973193611122398285095336875230472988925153920524822004823083279769220766612203461408074922296153203431451939147303114443460620242764347191595860835823782627887871134445778392391549873802228304369217254928182889444841536324689409902684417674485999492960117513784954926179591404679096123002188886826452692263975117026404238392076123011143763192993057761047796561794676738871540735737263256898135882830275913026066219147011321175580763617549218802709746783311173167697240012992687040896087153502003293211128542610987469237274465791020712106775884020596983378344809222562606991101148452169601948801577775170954308235537341064948357146152450561472469357374516788724924348889719372068132703547146422784300549808369971603210592513648320467814541538389927645436626345304808967434829529616770585071875122848014973900094698150018390551088578777535177433604855279185846979412360570355472138747765708695642771424723674758284662468356647256117522484202241622083668480672192181788026768406182919981473776394415550968863651787302195771269416048467518578125352820443929818063112454994300369550421746136495595455382655756456582877101771860491145053706971743259863856224368819924214388588195597155567870878662475338412728230271040789652276304251069190896082130000021129302424377588506437339669168174374735158196538192696614762764404045505189321844078589634810302945859354749328511295562675702021266739138696045547669488611199583926788408087444609894252816033613964168295652674486435766629219098098257834330710940915811950868521969067753246735768475071551776760772451115305851790124347978130984179627412157786942697305348452394546303904362202473773573435341836167061584893409437034005014087180973909378004958391877808082687039528409499825769582484395188288504547301876583215399960070383392480242251431880414387863919637064649238227255579828094909124196058577751568690834774647014187587364954946494023861323266017308628879845455461826225223058559242938772118468778502189870271864013414062989612261403636425400325536039147190002415418496061945621791880590236861223060857157785565532591518332339137169518873116090131031726817126922788902008561735238147915318535399937627117661382501354679741485769173406835664468581019580674871055474923237652627588353199186567199976085570364776907133425190374195721804565797948618082995737091385383185614749094858660953365961437957839118827373772852657286006264563711885197281249602288667314130897844325826328142076586729548625896864685050564874067163003139199835887210253066297681512613521892240697296126331607046166329742616979953125563856561368216028124682493543710406982256737281270536126700196337248975263744695333702916660442681453729195345302203231178428937867917922690581005373574432102854058862911463939345093307952893706915886039572282218905059230591349744853825401586272363818358722486593207127339055187751392258243664847120607324483307069358165139913721905609215373285829402028087981555091037531861305875310060482732693407684351368884453418792615703265084304701763987901432168125027864606482995600801848640114693284831487772023222512569348718989406167147759041499713838344233217836812863558002885855360658211945804969661351932794877172898722820963076224575335443776443204031631354974043645558235368182295976126703457035869473136455429203625440246193876749100351207737305771712774092613072475205417033297099772757484641450354256839758734609912692520029822884601860139104068657868629439250838409721929695727640910350351493709563603467825194097417788066363131345362023516986900383578672005739498244401875546741572198383837944041986350639924577449650408314989784438076691877670916644585499202917441439403765736557922189595772672999338209934410323347611526168580610318157058066144292820062975288497620636721541130423190900271536929481193209111213399044598250943276397686034277091293930260406832540402204596582018197216739710446371857485333242636095766314141301547655687908736716564950358972996742337240297138463336535914780500369856929387283203122176084070765234578700048033716792694935531505242175438904365531782186560943331052641609377652479115310703308809537432654279877190385014888998136835133293039316942979339779333898731282087759208527319240081037543074722100764139686850941949228933990289545965435558993558092178290726988434324878665879505135273732397382694100709195652211953411398837598261513201644485782720398304697795148924358774132489085146511042684939285983837722247039072305242372530154042115781612017992637695237517357525901276317069461844070732574056371163708464965422351678295311131210275843546989958097553349243036944470350334434673385258545373170764588961459674360481024065898173166295593154740896541209322800261628296171163263116053001813521704455167889157279740246649567362267971704151429655700732872923137078509939127765268520359758029489879189429988753678325308418961578073463442496620482723913969808940334546478843602584381765152359498743938265533390507877685569157777368179175890397988950620246516506631274179714389439240511091852040753421989732075409289526806591122907645583749707338552782192448737591943840049427794603166703380660963970943601779439568152688073820308122358680705690217575663460242094666373308006025823089946391804616015511810480786426022339981410201512432613908578793350481935804560550301292082591867752517689137184677617166852194898578630148799412345774709323945497432124074763698789787272323633642907544654456069767579545078666985187450228949231101253311851332319100166765244429275947989152395932901335219147075309797782049395939653678881124150130355880302206548762002023689544336418705525333084537196739495419793914519711303251679052324858207685995903456071666148128193858907222210285183199162570901213245071120828761539067183894111848657153372937581487465364583685145513412895857807083968058507480519790848236002247456645908810717830720503492864029000227598048573491845271200844923530122569265983081307064796035152883786641234835634901514924303988727515313647026548949391837586739420723674766634620935633859411706927492467909599203266822849055057963286200375106100424653482309727511330664837200209531854729597556464760672503207514617765395381964325663844534614684190910966281052845639143305321834702564435603641733981059635411631815827630683957252647925205064074451803621242615826529838332427909623760825643607005118975924773804639617017239512194098880313096344660791520993101875155734216070131350261859688778137144015027825171153352615625037547578761183316600982065720168785139332459385077022249712058040160313632155337254769799221876728260070454021796773100028081049475370362719396629755439288751483615131931532809735257012628332431124215357973571303756970975194763810540101498921691317869873397610095867975534047253216823443101775273249407682747430602269903274853990600616875518915987529049733937275848806153746671421138345473606920105776709964351870850241714913071014613582056715739121143152414201032273364805816431881243470012218466592564813719140567229280936900234346414628134028963345755790533270180323459928268321635989132524730942716992866699756064630342019777258050321527272074521747029133724456909686510598603235530423928905471399411426869527704306219238876297638836196293926570599435581892112967141967222790667560845401671617483828370387525679116032034561355169095323776990779839162407441396557494364935646868419418752213924313231263132998542586261396188221213476673836055429718904451221126335728609432252682664373925482945783202125696286509969732335603949413913389641730717226542477902262442182866624078958965218755874440866729849753867457766902867647137370950682762298839690963988840233153518346529865657491523333485241842599360556191147365580311629291509954134584427571169447363003918789977752961100721357657518971380067183248206539894156680457773093440828582072236923304647105143880341159524659148714632361178358909833982851900124689106660806432431078917292602740890681346984024541679354881102390236105430550528868396511113175905567581481689717898830325358073254592533471735179919189859128337816632605277867509587524664146463002441777585437202073902473757222386418579160031099274850013947599186719833570672939600299779765932659976140791847023045209217542945249626439002391701737890730305892619907656531859527746704739721388102026123912724442971722101112060198117136039082390131252591009242121670375408210579483941102852710257125840990571350371782010987984127550103306982764498388265557475586459902814621094376427023244686787429072016293766130605378166908351119513797288471467603463646292045686742220225933853734089278372643571251121409414288607491632729656225156586904682376395636926296684379148210610179683771115438861499999365722926248045384501624478173715343030230465051089480027410527206380436558042299841394418381970231193333421063206217771845595907552087301127140704639890243799596544071086817936448881644258887070144998597962780920885968499629140098044573331836726826536496761466928123510333402874976588434134063493363990607520454591841218068668316457562164302580016095199095252313653242591412104380315318829142157891322022591337230245069678797868164414301013133310972228649408307436728199228630012190223069906482896909511196667190259224397994115214805102316781668931769087471095043274474685694418872948472347711310636509141115954928288555658847717528117040434149843613782184584429159644943498497795223299143900444377299749337700520412228067420695784019408725605904037164347532023244930484228753954811299628682385723607863006557147215227782014811792955302879412374473872983938728375384681390722118310259503557370991577513742095327554419732668352505298573680396355613727087337701592170552536731591195966783475703691879260545862796275525904692470444250661785284629441850423640584311183306833041191891158715657993004589007151898151897473178880916591849222828704429764498857964910119853583775602528365008837635457054397187276501458420687147939149747156743782909205222699648441407871402016178857828746588926777877455365019188381217357525887732396178051938168002314871785309015723385449008977309242140085121212550412704425842851049914577734214599526045186374381130480859774596333795292989067022950812782046950750537865354880473498051772633888110994551004533801720671755047219970707053969669625884446291536513522441468103982982639039775865871410297556103208696209346449409323105770597007626314651857682813166078891393674454072275133236284832290170265378825162891141410839186124533635991558563680028977257595893958871510841372825646949657813138883809009738816142837662635543443694177541358486221519903178925925829649262311216798646872682367075917443049791569937500244785791670843585100675802488302188228610747769731475170897435791677458649388920460047084780914249466066818388748827013812841748804269787506362551135079133267140017949485660883446174131216900500529574259215791691960403070457116522463262394632529428855300021919478026590289214080015337847884770520672128985555848904903183933007102640505821782842941686229103628828698356266908146024395648525053483717314269378895331199128265694555775893646934010299031198302064865505609513519526382132587690305407869565402126246482724530936512407540499098884787690047359956247072253230622301591893540442673581969381415592104624488664860569559661407741178911554491513083600654713312309310579379704166857884628507037726736231573548106681190599659846275581857562298778791214882549970431947527476066796623774048024416962229820357213150385931645251490168610569307998706869201652263188532135232835911868247146104772910481905848021808805588179408693484307249225912243419726138949062924462052426066994091027304827554336787193735250282700833344892358803189179493134587102909146191090098989185065522171915606424747439111718521816513782907557574868822627069239582438868541572501316975081023096422398773160254372745646716677909342954618891515361704099867865608125492239165134227694180318443755513137565782506334992109629740946995662534722546014533804473582513785709358325414342563994102041195128610153073897275740241254665151812400629474974622884563728061577940918748777290152714310688529301893099826224334785463112445143987044666134400324256435771827549347796900902451421750805871236293729150409947732658434700429318621297893525584418559672309075849907376790919130353831485769104713893305099554534870915971116202340518383307075601602224351968445000812526535509200374224352708064367628749474714237570186417599851730151916198030651336253451442319212715082986973847373287609165797153453501083163704807956103941841857960487411521506308152484253668154063762564290388121635094299451736574149926298807320530832817111519811307483635372947408218985333312660607873615446806393194982095133795523270300967750070911297123134904846475743760717199062642941899359773319897176925837124848280447081827101561615194503483753650990658230905039330360657245292242327312431774671773126392293561998757980611309283597093121437344123112458651714142231998727167915991760570105706190120183715851391651179374610212112750085444530869461484397644337010783376093572318739918226059091275192922674348737452885181963373347697778687486582676846804561231074507656453092234912918514186131038293530201913509040009387173041000684416117844402577472619419121578283947685581323057957088784515503152345939839753972469661257401462662967400491613669835458576359938655331245647610307168759702380101467669764505242836842299538973754371923022850988132542003831627621791405633521660141085714182288441398037002098645057153655565488030035499368120620398460732885810353906497851701149328556942838263311177225527663777611030125008490025985026049519577379525954709070917173137953247763347094500739510215574805054843917247927086268039670682870900877366045541434498953463632493891784737386366396895955224744189716169944517789123862611935860174123187572639353701182017751471732173572941415120943407735880947186178532991524411486811010325837151872737980867738230005364562942604551991470410593260266511263053811368926230106032300702468609270162777530979816851801087604399358854489241565067613268188293403404779416096312264155057837734114503609798529343834302319734860705514199441512227696495677566630696561436404369738188266483294279861264464866595038069898537513695744470393347173522397303575305652957573552119420248287438813672789126909717006946919877077209951508476052314128942378102083407830172094801265125335605028386053768512683815535066160203325550140933567846008804914425655442052061141285439776676877088665954419716321601108326265970113571929537165950780716458990325193572617854753210970943110053272353853735712714306037748572283252106073324319447177926647816754897196552042273215045498645544574829570953119286158433033833543864445651364940516840615804418658962753894537358234716619480222783942179105508155569468438512352620275675024732870949009341389040063786066051694117869774213711873251163026567085601639635282919041498591219234361900891847325470798134402457168319944368444317555441480755409657521770025701308092815518456866827637027134328250257198472702103988009890600781525512866688834236085244169773484132353706606813762940185601293723651211121764275571136359238789478399173627299633615979627414518350299115116278764882025058321526138978578609292935714240614824161175314394670030155660810522739651568427638803624848960196379283300316268601739473534179234813042497238145594614997530110022160940381129182174304346406445463818929578249292350035326322226492492949961546176602194512989721973601185746041651775780864774150828081415479234777866603004598783439815987108789383051853561639951080389655590374073010765934071034992276035421079927423059437295667709259399068685119141754387056659359562099889531983566930478967844837289051568468231481576745565752203010218181099315053689150100825129340991554496899993870949455423225717609759902806533118307651444830745647001070674962249776969955580552416013894198369614299035195525480302867449845259891007449561549353605128350001653047394408332983452703757598604818062323370781418809216595776372611320494558689687192391843346286830226963748575601673770653439924543720312146420383726510728449707520855316745404599752936681430656350207480048243961503445885366888705868707682097419587823171269881137076715864977051399619278905500212242214719295449106071306066995759829829132558229745169849778165435450012236717145745357903838605379856152774675232238724642985833250212769810537476827729868417212247948844107417354891773218671027806154938139557303159491222597216771684404539276715935734436813643218143803179140178998180041314125717661353346222114149811777263329753833182597837967222195441958927442941784964975971656918299086082172718096579469269733757955693543917858611856086723583394043121064801294155150509147024948252901462115369313440842696442594856253700757932428617988328284919916894669964151871939095082266088025765473301162732048199898451743757818689159067362915891985760252587263595040153369719090947727299152845198013584673185453646835640497725420821683847218646010764922402445044134123753975107780446570063239026527961382784351349020427924115223057400133871834745351488003172213801839576571821611016041880788484315303040033591711667016185060930567356352722078132565010020789647733329411325595500493203736014648278773152047292081744426723748989507863037248022162183814688101120908431757973197981649557651557908296625268496879985402070440101516370880974243825288930451516820105347469345847664351313093522222796806192901394435962109206330662491906703617335549750636040216086820725409529320748073006184005054179537193107601849670904315689710003860048000935403604549401262446222074516958533499637890864205742050665841595202640307745174821147780206894956936678703685426354184971517462034380727897564092306254390930524506790445614349207496082671090357715401049520173638432612660686325787572665275542860413437917749120276327404623986898063700765681656512020596547311189598273719471638565043612220432230778787961819390879315933456470432101061434223613411838854462003296263081010099789736258405892853985022162889333605111768984122930873758148842787877814785593441575013513349886202092020695017777096571463862138114470188310954518802365595789928592530060860564321145249367677612498756342484654085228073035888030117327704727866774585179943772486638542617618021443465802738106681343229435895329672799006852718599251956666801060698768813342829379877795804958448659343293632038970440310747792961365799292819889988995957398483016351538070115198958151943393322924597085870373962179207954530259910949062689021085474229154352141239033365462684129507923798417688180937129526498714483839273419060408765082579050022165228704509993161948903707188976274879078584118714581871470554132664299753597334968459230861278227190737372396305993263780836932001025153800980688008398962153341901543135225622954720909808271735337033889167292200775936051591216277078692776388884629796721286403831050790979535637584080165146571238813766450927417319209535540331789419943142778481659478261447255314369399209011761202869512008239212000443913831648448614166395446353893477724357356545967741948195704080344275559500519542092620343603628724052975594799168546016777506951475314877586171967803574784278829014286437042451210116159681438611844550850215157878933322386210899309240076491820326295144658695200602387526660910962991026180098891610099333243223609381067426396709285829628128473731583436356451259114643349742296308933451398925243945433934772965836738898856105807289604016655511845665342075613154770890170832536085093539616420201221797690003023430053635638071564191320374499905182830450310022777121231653557464641440339848553019546468875851799953584895769298365207160111753897895279817440739776472769925960397765529002464345253675497983088148827280026318024122344486997329605914700169070229524841119233245645485378009582314599797776787117505929870603639042773543262784901229580107080644601163025357560144958392693813577308834915516022302980139867530189366973373474665131573151315253838219780433680673865101258796142813262270340753519294581047940714797869594517546687852277201687969560250874964077719375779457966178282525695267571347931333895255238218030619959607327535388018017212934685943723040853865724294476722371332121916317089662531860981256293991900115324459686950068442561693593913399186484624013769681499471870231098743381301244292212251475867693906832525906091420826176957415256427952354568344926008655418042747407117104137497605614718610515576326478828376357870096523417235396781457871929947767570113776939716771599880984932755799838665368707487640610107049575321063559810231256879441080503333704779856025798105118489583415634596338597365337732477315192625867384796065309733171318717363456029194513726459186846849849219301379388717590100201783371774701668828604427385784189001499568764005376485607208391748670705654726962794951787751851735597097805615473533926127463830118944735893592392720949930778660736105524676564360263946611121950956989052463234606028203809546685299006649032281073651429053053399750064051728818359653841106311392764391393093518851288577171950078286582975801542229329106264391262507840124628490136719572236213143957591516261415948753561027089772801909838605484506190687019983296817513750471371763208026380273927594622301177406826857942547666056956037229031917945946672583967287108085108091564719446167015002354243993393899208983508205998029964743676883262675918265633205823767917801168275897517327476302094439608337123965724654659673628472577072692901697409416943409361684860579554807740977768687842995847201392966595695092063473470225291388702358211394809854094274096063182373883381310472777786359401758882713506968250660637051234602853159052489810344825599118919029198899319381154135188134938894068836123825292136278335068978768576096275743085268480762356395755490770680706121416060013798738067427612983569512881785441100682535417215895786681099018378821804519168638769982265395187404467856266351660312995154406563564498683381075440473145487550452500880538341765623034838555461679144318149255646051988467850029113166808809412617231710086400225523459523287724603727797466279893477488651090469536253773097695111476681880801189633869339136404695874974975668392180257526894097192911529949904337813785786128550526136194578358829650320858328678992537996389937935544371583202780561474122912504206030868855277375708221468382939574353095994250263087431309902415817582152332701021995991996039552388610029440945000014367310236148040545066577698924548024342651094840755947947127866976827203493213101309600272140439907562354130492101870297962155146743246483517256704575869115781851609224342390178813061875735018968695882516817201035980767862879950927526140140282820407756193564459375836418203816135820479309177390458056674233262668446323254799623253428527901042840065162546931944495906688374061866285316724381857888789879224973236456612718558629604282549100075877853221384684952772801916432022001885993450194281095289795765503107961875795954140111045736424279568114973803089138705352374300121648864952236166051836748049363178647593995406948110079429542930906084963735139299664527869674238519368510630748207965363212782445837425278833266977704186266952209940481245327867207724276865582754390709493101495044863740156397115076105530409882158409786270574671958082687752893037006066063622962730053080035128812599998446857531569687985992466797296477525849491201472781200071761232653473573802803554869646753612411056228084892541870563513950810659114509967233307001802109219723475172852569572748250653010299419556894155758649119668675335312099144486911334814926983046785287728624068904366295131821244479132053762309700951684249240775876748331085888467822507032904224034737432470242627466938945086939468715337438343302848526560363433449394190572648111791724808741811233818833805900258848228479222794211687999527769663310028328800905949621939577613338854603940425036792453794185862663023159449323646554252363139191698782496199705218549864006083516236424692826002124571923357500505452434467367922337390249212369382485801506258240427487167171166144623176248276631556482116770718096211343346636405436989297587967529630556398671024883392211135579749306598382618008722616134708189495885930106332007555048204926277245656146299133516549759722598626503418125881414801952726921093120405925333598435285303539039987650320233677713410134186512058987285043600148891754202487037095143426290894734500138230905186436870968256058139292825086037907177649845077758457948535410905255135704980096169932716053564620849429622699622075125872512080853544951776525691077221628614841966704117652963118472445623483171872603304015743165607752176413525703332156024938405840359636126434018215777808717388589873669465665623469395659722521993392576264686803455144320583043858915173381429135664519631815307751614608139737683561203604280681333408151099235871409025215688837041880560385242080137191141957750816762838428869888164497803732598960568031993405230392554506880084751434628398898091113397811892206341715179899502948244770425911506966319463038691278157184967981193738039309617777359246026213270452233714720570725648954615373307018734661164098060341409214089924379821973361346570145493147867655026406766102876638311313902997652377927680662452081150157191616387075606574226229301095974751842689288304115924087124178447338921971788187329639541521320296543072994808003550824873206637511094206574750428317310403134174350886792963051636749476676770175361074287066063792800421994655660477523551176547983935522223865079684171266984656678482031100215726071562903953918346212145707965404901765463239804327991286355467738479367876879534655250500881183306545690070688054344267115172042227742093393233175801889571093281837427779554262333124075336884895394767016044512727010238583442850680181582044202748828122729847769757643357508051995697589009252913851382408961837129073894901606558311215054170740875085880971149449958500566395127323786870386941297825226772248876592894486915817102792763439463957944107012352675168344813409436284432446670939058686137827430653327797828733252625952806717171916662438671560655053568116458351335049157765898542445470382332189922882139617006254227723415248045275230832465079236169752442678492391135726734399924397200758388912136471100395664610462494766739487241365102373985494529991395279618439831002011585247523722910640810669884921261462617598499306515488900826562619577734505811570603630043164998610753761501915948039494783919430011858905194752969813597056159970842972415378819561596592751131081510353555376990303612918458591025652325140055293434879286776524867818739153314092426517567623871062146368058869320308362947696874553610024479219173565534840228303699269740440331302374121840244571635952468152790569010883589087658682451595424866542981621812531660721009213904686542650616654055511941255275624199300472929519186439151028086458431950127610365734555647270298606687723588678426626692094677454177047709657837556708852473130708573980503500744199243855675069759870240199118423259493928187923207792474735922380478473434848428624095768918726759903927593393360267730190758949670265116562999805607139644859697827320186232355221458103362181533889245243657879046911576094062585296104899632629663647697967022559059661360237809707622938147013343045003479819714016075685714019854980956250644425172603541548128113851089092456101617292438462195810683623839625033895115240796726710580962073539981345517080401020247842864498222732329713602913802559442663896705532721268004090812469905117832249781630657603781839514918703884343355237116979609619033236113986186167251341822653662894944658843364209210272604068262056948720750896317055394204192423107851956808836366104474293015669342195345279936016861181955988183054507375767136969652739638829357758024664985258131590919545653930391698315394136346981789253773224394700252174797920577316232149512516495471885834247547653666939975608699314423884926731770265576648621476735883391143127348987964071496696290060596498612376132702414491863424480027630207776788688006035900696377625974363289498546838750230908122083425557003997563840018044874919320559534860346074895021446520810477867052280443964816982308940237405782610164259951850149218444477031607873563323389199044555277329368027490726107807968213386346854916763473598517670675325848784390153956142647349016824617877442404743472064582585500357178666354872935131209128782567609439783474060798435372065074333978267001309316898085048258838742312661043182875681796781457407825649736690998596700899033950768291492188137158506526402452611219282092121157785588787433900159503288901393189543371927872020126488752916998293750024981028799807283446541025062977548104607772994059338379353165670868474870004008767645917438776360978766664830063062010623141403397767213587370862564855715509023898948552325595596834332149735382175801270325102695939074230583369362054840241243124855622648477276985463363217540852813352827779677856353212520222221159489120373756940111832115440347001011315205273092422651569285865529927878409365979372591961727859247535826648796665587975972766199869874522261857177736490811013252881370898833899026071135995290913284294400913850921483615618021274100519980588807571353802255028624199747344436206945067677731762904857975575827743620386603207377926688885491598333800411816024730574818537950325131423073955406879883474298594951892979826537078033247249325357995591169558420649690122272460638636764816818730819411756324837013773282291009961964924180447238641065795174080950753528945342512139665469211962317315838356764445337193649659367713092751180059529492230772680109857885152630096267294838029768501323484300314861723434662586961581631546717427158152444622254012873143897154377402368074670518844359076648588138020201109492181955494132084450393068910045056001579158935431882397817541735245395816708656454825411018223907644194887490951575701903452633363348850674406182745236017783525864306814021421757923997668454856499322954658115350522354170939724152694250819874728483446490106355492487288558049907189580034039727093275257059297408343439622032815609378198279905517310114759607529440320166123309622269676152441380599256164251337367513517272571316688710416959694537885095687409867844668523874172239291287404380620563388399807794239651586834734426725310717952304604326592925967932159441769344842016272427084852939175921147551217304539408184597621865763810340325230508002926297896131407973024811406425899933587987735889398408994756892687750999208024732343607586297477032598056104750108029249365545542907831908450991625435110478061356257531640624379015258662493854981080870829872994382037970478128559862240162660586628088850130681703280079860064395157867037869227647125589983761719512433602466446763132171618543252372011838835360407655694442617551455356095346917335087720446307997560263759703244244192299974348676422976501001521414429560206298471001025559830018121467091503462553409797351863258663983139771539221695667534488700895782923190157418193478902028442302997700090641262076994772668950025373024028760678827974718151474438921422097220073500234665045373611267022475568048811529564551423655157768195465563982777617017346737157626265284337965040398247456834189721919316292393560425848483804648790937882311291150731067597170542800665961575049303140066635907113116089465735727952625982996691264559948146424798123766127576165982957898891343163875953203321243087226098530013951427963268341153739489249701716689495121906812046515796624694093908452351570164204204565239619748404586125784309716244906780318977743286118133791990586332686454733806970508930440802581300609559224032325397628483793242186166968939389317124574892789452012731817491082103930433786758374265427268397329416511365112414083196180311951173764303001160757305230505322719991136954249082423625601557989016812666059638748353232323622419508552337214747777942745551910694608403764101131160054078799432855170495707393784752474256437693754578174481480813652163492688074587133293773876000318355885401745602064137671462079577211598353407552272355970068422885164640189993389753791836957464222068875090784768999940018664592540540729209653672766101739344593433525614605306971922598611801731177957546569624965503542686977211304127307022898642906191431891232044533316266456752380389259054970721977210056804457972652168050669655215751837499006052799751510858969575397469414545967219264740039251568806975745381559411750431575492473338723339659631548118493411812826925364742822884231180095487116916743043816816870244509438773235293645793352727761169846737023724252588407051604869306626950194094762866938474507875367505656724137230493658851010905255369574184206031279764978977443227473597232568328878109309452248922854767199898436920221525207809102969146379227093913717812447899593358747323854961669251216558162503935646067796270650588949364023862090739101448883641683655549376346460033240361242018812169778759969059482523638779106082147891298660264176866789770947890326297721155975720580367687648041819678659783164570905073736701489966741217299920833035055695589896117922254442130963895919730853470794358245811372310130983977806227979434305207306192382234226795988357545608278795419869596251898010236882620330417301628914893257901512040365149753269499313076450276516507088985212819036102520873666773197885266565129124424146822281728458924950747603109741135576281818222715019816456167870434395131598104019287304812449560406378478748154894094686383224429553482006544011490989693658337301500810188230284439731576371699218906990132258615397293602245627567507543827959651889703465093945670904133805761088663755340557437732753575681711024743671077712229233224737300771975872889742952952393559137315855671360213523553597742671134059584652823500109240745361410979453482157171836390529298904965486999234536993695668867797020582164506096320909763320500221882457224672089230284193588957398355531022101512465828720956757126460591961588725575673653278257674358660359688071749155915037560349277121162174397294156970539296290152606300983368463779327976595108016765372233285272841166197656970821903348690442174506665063485126096871853511495449611324050321190930947282234743044718374322809764189505025039472275661101667007109834973407726328119116415276056443681499669393433689163971574981991995007726330561653101736436858374564190853801857559914410961583041390732266734820187309942128858247918767691022367071185596210019541966143157892839834648940574691965128202908823945761060091242720025742193228402110439525912285891661734506809128634173653783615709297365604263943012982938710533699811059804677839704397550326529841496199737435598024427733790094655210562205686044135193068732721768288537920793489093088833766804083191570685037563941069279997101973660495901176930906826125251371390347127016617380879818344867596899406150799299146821205358068549761401946985337703085235257318891990097863510928089896024836795568915324926669958940020585229992186450529547879699581296908511839686032097927632333085520989580212108761018476449774575826716881282881037910105155898274309784291734842983497129161571216986902995747989370241428376339433629658964240722720746441132724713615128434271414947298820585289697061476402925195192259665857968835110334028526498975395433726447686157813918875471328118804291440683677963879662264091556736685927237562854167513109936679205216891429207930438053323479050589636046387696674316909466539290223157536177010825402547560325522040109765716092164904809488850138952838576275188270012199728679206459851981519708912189661091082208099590061063507988717068906609612687507613762114697118430172988742266995458693978160658335487727972112647974804645711227358682391797501067585743778629421125994518182701185857524623971929839053201056528618395024066726236907729779587963399710855781450657846314538729884118509187063457459402820401164248821455240086814142266367756023637213915253220638886206492736051923991517003092981415912939970734168580825459115609790208915609861070815025206345166976736529541765976934304275798512413373478639301539788625791981602729515222761053574870030086256714913158219796764364641893795598770247637020020565627626465304826452798500949852660656808621739608662226487608336248400780210742002016330569277853536596798272174071795932821564479088418550231955464575793052050939258864051227777208324111980412859043691325986826036102380241044861766857243312725422920769112526007010059556112254463949781969805057285218482007559029181519288299183781988688913064701109865317320509636293146834577093293106773327131231783621400609664497289066425916440492508600057159054771003058792517614433918138364682234121981802897650611551684603002956363550599375944178213957084292979900337452237779651277970110815922565821430955412507337836707668743789586021899621151426800976135434703009307752364671495109091758846197785202911774687891873725116210135274399451208315512966637716284753586122103109031332352829191423404140324386203167486149809182908740765854733098470029195979175250112518763871665858619606746325418245585456419585023073393929910506993692659626572534226743792444903855878148106561860966280827124852117127355932865938127808219984399017634799285105716340959352330413897685137883569278031941551377915652142789113105475177102639998173908113905780865821472704311858193368371512560217115347940445166124882345096251274828229733197178530473971705371980659436035823310413908603416259198419659292900796307204340547310452616660286223058486903700980446166128154749172649161499653492449887420727601777767638875517485576061246581322975491396933659260001002771103870909449541917694499162403343381713587215133958890834071501367810404166281976759399536215822773868428027633075607391949207649212367882506738047736899217491119713468445237278983097446016343792514942598494397425991151237428193085185911241590155009273085173522842795408259398230124608450997835169453622118906242469218105115692485125737841226507299190089383398866716191659932898172205142326232240247641863028343872739383143273504186044845551541214034904740988666509830351630553523934340759461545671135218355798839948281346412264915257216340628284168105753100954037215153780943343346835342038565528602907811634860977463246511253907877288054271981895765949120355002187966652938694628181262506395054537405633529628495168281935980614870947986936396865140606730297219657928326385242743609966467652263108048736931590139440719508078965414591891999448512818261876949209191565199833527776465248958410063656153483901885960482128348136891808249346425790176237024804714725477119374807155292756666739553540193154682119274443411545756607498192366889198031254463848069468245171674065182171140610594731509953685806806589624533245573287996274780074352115161993595099584316800921488183527647779073674024188571425372328264697749484156784392385777681023861245054725211136310448519378090934068637194441644980525917408715751110506511476914646183564855325855871865805397055263560584646886918455374930723699515627315108814995334264128581869950449289583813511381127634823600687158520223825075639759158745327658308144758360210234184581359071012699654661800299740712328901874777975441503012479257198282084045263178049997013914903825146359891851725789599971169673746575701786231838496494867851412983603711458162174563910459267337047406808644997310308572542638572441264250517023396845978161350632310856091274002127056948063243950685257241373127427023906519159283119058582278688379298128873813666221953347159121047084735411538233771389667858078027799278908874408001837275209840271168935872832778608234881799732657860633718401383698352663546028610164538122594994334424074635865462818772213784911097513607137344557627765980383988565615433290855099163387524272093523283656577576126432618700695126519077770307067738308536911522259736905692212549715066360886112424246677671048609728836045625652565348564232111063849744421325893973257096623418340515444117020998234977478870517439959775776619548346456276499977048285329468697012999619739427777721082318503864989484896609246209845457074892138359556018916595855426903720881092773513966289070635332658524161880529338003568028270867880548560134716495739331894998652513049021784738814228435405137894533726594983009933070044932192551731396186245970764731590993145651285468697604634741194496531174011437940721191446068298357113583812070024474294323635229218029600715980647682932791702658290601178127294877462742097822857597399327917187750861479863648830908966042725528089843251177429768940262103813850555076896720918482319518779097623960113394426700026969294087066184694931499782101478883584947880562495799588626324681601080800920062804287126360963767922621069329987618002316269964337124097181221140389676817831990071327552403957440137142847324570427607005192303219286599628536291991329011067059581709029630527675314481385960422213344242782671062326545212546253746768997598297615461685181918995007284252524600484888313696537789857152785789938578765559645501576359481484786105294005943751215952182817701837524926389330913926113392916164792891124937232721565380416209553447983764625978185244826155134661147432725060484270643880924400137356282899085075564330667400817727293654710313235417930701586175205272823549404099743289016887986333238650057598986329763104882738839760220863456137416430573205062360090358164053935030932500357185384204312483260951451869508953548385104049429480566748510093479244243519301981593066546179702330197944593887945455782752140335860766320754057090043310990161179183291194313384567621614758777092013956975117993037639689780381303941842328280185116866422899817262634260688473500272521748030217640215366706884338219864186407925518107055354196033680752509816914989585658772860689029035189671664683888840689015491004762714937122020891658117757715023000739839389231415827069359825962807032669753473051134151326467840790805352245450930507155765956049202547392739636959059921694532457210609833601784392765530164655942262250781751491416666916177213473472162133465970737936512163423831688166645149351583173050016516245218665332860391369786721127611994284446092741002003219066071965403199388208732125375251829003082665218096462856472199844396833683601497910278680695861216217258586215275863404364617423720352219977244128345162589858091705022195470414903112837403301924188369021923947466963133098655655999017745846304822973451017051942105758766135512219119645956470604830359623771695950547040585914417576591486708905159657537169349436826160746563464069475332830103730781729148089255075166783322209138846734253289539139290048604161230271306376691976367411084293957508894112865800895028814555900989958083347853961040447912808371714554761805944689512441640081158799810993900739437637106375553579519001609825322185187904910473156163691408130660131330722605812886664005406078971030584263136567995544323197687946298232545375580401879856069358156010796439868151195264468332266176739817105417852518689089091900106138416602921756410326702897934849471341045920098054631411680395075707085617384502196178023933170652587196002488880015009933942100978992367555138664486779332676003601743518541123576888288591369234598350457128796444651873703916422737180586734092879070035940413908511369070843052395554196501875587986336939210635860832233446453713786425337495214188021975263859704646422744018098542807032946699318781139875301567167660666097647885496868772515587510116357688716153718010740586774475950963266786186334378673565672799469760153803660057879140584544053986010815066267568843195929730476039940202400498559964525628856423966891997359022313414976349175039393695597854113871153820623030073058094366152995805866284883668157755857687400659006361752252986235562283429160010220671873797054959815275586902876694277667954790186310617468083471962908863514243263331811089845715337308826944361252720670390817092626562654534762866255435857404565839636022027756325276735115580819473356143394808184784442373573760737438697649382919906749075441369925135497355113282403603237893875101670095420734751251627560713156717510549118605876263254306521849932806493351589138157166949431404897581428172165607324113517272797087752828920285225405997341385194221685445503866613896312382381459930711312967980861569131441322667693191919902623965551153430915379558008951357794196434361196701699950714767403733565808413512579088283185584667012523104538979288408003621837491328195889909429248316465835076309416554015261043977747052203036676632347839794056728559439978639778648462930601585354160070647605452942460832677886156222526158350938879537420257418783131514875553397199740394088839937503107549185194778146141622860115635336562365692706433063571236179497979507167676749404387254845675200177861553342703655773473908096363121453295339184314953453551815026361031997636974579736274463312416459596864026949683036015695553413163819208038133132438678760294202860897007844513947818794148473573252542754828892946061359963288527529677875667355915545344647508633711790182051578322366344288043895730725827680502505762030168446667987017712415064921335537285433647475644901440125699298093123677603572674714682782972708201236155515642109843284740270961595503139179047923324682047951655743714525642228208832886709962188582663353343810494190043609567423912735712839853852047193641998738819268594672395900135064261457360189030720498890568943393665970190699007743179007257453600411164264886367828395333868207148130372919751651424519167460130698629325027274562630559589035744175370876776715064252489358617610501176775614522515423465921039218531504766189646897442987161013869222276686844115541497953346826242223851397292314384212085848443179462925633329689100127917565144531812403119340068522597018283090019905871871184469649563082691350447022745970964948331166534516300104774563776342642584304850332037175892844862180969350006471816847721871861636349469565963595363305802443085776815849957381379267185698196849389136470985774356277936223533210684997157569306033415125997835741690141624122456897221692745103597527281886211840422587975613939867856932935111266098767518638461536523221850344371690634900751094231185138410830900052236823427343808021799370417395362223114072514762686451970847858755881272556240514847291210355286591879288067311996608626304669038285423478805565403514114057955281905684950487993242205905226325324053963379947278393202467075905145439831682564199248408575764410251847675773831582563558231049487442672257176529742187976570349670619601690006487374661415841634137615285348001542544499852485750913348548848797862465417198532895076139651988889568693053071788374161207793093815574911033690285681893723694191190564508393704851106904336843429399786853037613224089224108437800338762836325970936135484725303796491501551053121769989621870039650665696515270033673815654096331282942569898770292550409528648652585754858429058978541960639771608842077686581236216491312601077107349057374068446815479207694944037607082308085066050047406591597067582935568832892734578920809029938184250618495800241899595832512539401088007962107224054875792389673859611322257729150238930249975919225702618189354172679106586116335976425796575550974998248806621702848222857404548436340330282824441970835305247068690309465029869475601810320746886770648657289407814975016152036372612047525954698475984483779783307154193286649643712487279979613563745152715429546662889028307313502938027717468443780696211932371737530628566222778692918360866574106735683653682397285423177804265945123450079172289461601837878206218782910047823816355390386387874778588034090415236348723598398203493157038793436483487349730178500223535014087920620072960152724474735188609935742317137590199109531489993058785546487781154910383976109787091951946681752875111870142519734299300735404188884214231968468273955559947608625863096424534772290191834219435453527002879346286183065794968003229108411973029434148643015691944232821076882586564045377122005960195095938352672833586467273231986959405147688002490623609172086545950366795630689992437628405165188702810495859104681179251904716753721408260507567249145257195513846185993934913323269413796807911732253572129150267527197739860765224138334628126438689512931146429095452328322976910621746642645102736040636587328036058859723724084045189270955638075103494340065677394090470659741112635655400218438949838133128725184270998212525703093463249240134470217289303585582086098970326157897945957535920515030066255795906679315577560186938584036717478440923366857240451414697020874183113207091567222503941190349453207156392467609367036342756831009610296550540830115795381368344516159203790689639030209658374165650131648652023613011231410358405306897275593536590045311578708670197882169626515252638554234984579463640795437665579853243365016352972213418950612009956522568981852030831919709606151602428970303599433203885829600932889390192583831804679698307978270159328105604907488712403140696575132054264811346292649933435036906000008012668909942107115307156400316809997330780600745921642876762946359218671744796886189519907274891240171305946169855107606655767287630123779079096052986519809508839028650871216988147318754679933640619419324005210477480252729628477301787087800527982575102488557697977273089046267344408034256084833397363438937839402774227455742606064013802672765411458865645047281484915143128133152777426894362878903796781574641876895610130870384610348919254914185676310234271427845144016643370263371256900563756625856010174824938664343484309063583555219827368497389272866483633490105911340566598456569775972136363782219441923618658977457331616633252186480772923892295174568290294272905040469876888570315373473792020906323084732450715832461440865438340721078734372359190311620107634423939256478597178673045672551637794782652518229782490860339702002916996200026876248561263701624093106221678268155429585266523195856907196384039721953077289969441753624965711230264203923000230032722564400207591658268894890831931919762401868452352433416309470515638294198950010709458627607768668910791595141835202046625651283547567349393374763420199981966005360685476054552317749498019360894452496281763945976122380855864309165549835274157799866460670370176264082784253818506665950885369839812762265959970847613834187718194500886606122604455031054254386681579957784466094743821836072770682539958917880367017684909363585603277323729170251309061643407557228690605048214587312354344578218712811151788747166589381564201641489000340014923349891549904109135971512512326088656147334029871639263064703517570763151415742362673789741968197631782556613058425887303637238007570560674331238083912165480203187370590755241085827576307105349004960415222085575399616144979253152992822996273128177156084832270897056581014017866256515397229621875011532368988384331461666673628872521438505804751989684331807344989661382741782598772575898254559233725592721717744802858766689369263151905646508577414901574146487960963832369876268568548914001158245877904508902532379881175984230050950789568227530646914998606156263536493190445431908940031907015201132682985317672388880372929108131572729124257805771975339922084702503414853328536467257375623045803792934890894851846043678768898876535576665246230331147140652595637593110784557198410547818747708147010030314294368355692932556580194142319430932884668902012490257954814046223522373603379245583178022696248358637536292620671726084855380828743941251310405615622548297619515175169130178708231740451427083588043072597456363066105593102509089180648310724808585166848083005010266427905039074063249649396908864912498135208580422370364294999339071050864816289059181332040222315298644325385906767704900758902673656211258029192099594120748431841663818488273517439788577209556391736128407492398631399895654429141196797750191299901781945952043179939304315030065866387820712584392929448548745098733274215457345142908258566761051843549331991003846157659422908338706369538509245680021251898358812018001364636974464864523935479161592531317146913654482107492307678286216893347269120555103143523478506444606941308585257466395826637535009651924872282881722262669614321134541396485739955383667287752873217732923696359552203530143167886853288748883948144161067759659750071408273010540862932518773652708705154116306797529290044353235785762839856484946141550262849215079941078670044479685225909308350887705909308828640920206805335240960526297593232011277067032306246652055502308598862503204554300257952527392042924596290569276049598608251016798223609591656563398791166885915774145384741495183681720720115806009985901242653267994579836694108474598291313699919314390550686250213860772490408072267843183393214569907289374112742088420494714774928408118096631549826254429131649891185841115093563270960522397345124630103956358438836193317463487109562399386160420550640065909459348322586552055661697994917400960393478187869898706048355355049281676917087846501202629156626177899287982218611796587816128736821458034250612293479700230176876020037976054619272223477274470448356084528031809189146959977278663402932246908949127170809723700107231963918958419473827037626478007729460257912284652684354254969865932235127254684065551693922266917115100251514856841853629018253098800841424251564182105139847391554160896004539764939335965964223483434223365185116734765115624209008536572947773237969572662455440542157387153347472516763023683074728139887285518171182298431958712726226059473318813660496369945781895688078688767659366129126528481771455171083653793993563799743485399398321019722699982654715640348817631194009225039245299844501625016957396139574670508429414061396985299923000063065490182150547132566442137635421159873719817241132565016402377447810987141829176313911012456043690221833200045517327570477207352314943901388305010094246690128522988434750045205636767389231103904713152915211229622068858857399466390864756595303244167358304019898105081521122137084842604251192089605409873599777838969639259781379008807491458592539858282771394656576068384272972583141175461922164213697604654960331669514399036553608336668762142144968410018054334334668485330926495872821799665954028982548918373609143871455655657586946365382161397093787529627731308969328503302022602017303906309313745113272143581443332758626350136676302131398639940104600880236640996729726343788543170711733167122410974667616062658653988988357075347726385519499119424185608010426728697217840123407712759758541538575610076530753042075775417767822576223753756892986721841087302578292961634861495660675270008057705860479729913790716842472401999812971550670438190206880832876294640862356074569483440101204554764976647982914945723503971638334784728069381704781288486734861479561047116803756827721050602177646832567656113426132839812363735995453669577734148508949382781870655142540978441928580341236863004813102175621043429300221487937036962243859303713898091346636503687536959050379660705462645555577084027816011674479720134401648512813280040878194259120677122664467228089807762126313428323862738004544032397227706407517015354021092222502606471964290185907804472171511042946699489129230622592444149523736941401073255487942613418787724627070626162540277923631284954016583539459323750767630843644610579313409011877281261523832758835289626598349775686644589378182525571850786423568135129855949559111631141703108455900953522025683506627971604252138193226871262807032018795148816491913942245757498756967113759054237760448290095801988040291813784793670636082887568266511592922730890065125143638353491761193191238505209502639579323386808004902266274517000501567389325387541729582803857845668925430574949728458057953431516142912805207627453709587140276456038054925511465765623045592590358788515743517288735547029869958636648658939855252581584301997175655745845052887702345414799704075692062103019989884805523421116293144294257881143977663514810126548700123069645556733397867592382028064006255526964066300275653278482536027912990553701535401576667328015790160865327913915269094458549103060465463781821433321118531628508034525883353278850650477915566281378008613740155419407250395043699404053507441249896369022366146294383249921977124816700792207935661978309447644485084120588829936990856366033189629267439409387440858905514456399498574520210071350609601709530396147085918960017560219286648139123694814212947724631738212187918781366682125389210224947360246816374166363628080555241433865153902497630667932436690792360320088007533861996702879624334281356503697621998642773507552792885696894219946304723444366225179577852522223798831247888702417448477972191942563447843225220052421279641080363916517901287700039402563606872485730532110224093227668191192127049269352601050146555147456669138180403281690105155077964572907820339628620767106228938262246811007152550289146143398526229607212487469011700077869817003561797077355917383096069033762611249692193219823820402429364312542530617073037162602295196371862497855712519410922247964755990162089603900787895173948000680835620299515137714094421191590764783991328863308677420453826364401693397514579395732938996308564486862909955924612356318063117849662144977144574531624635439693612843730302436378998623321139863078892381548761892603451015202378997798977306720707288111689502564381152609056789252652197323706943566659995049225671161272085886837271043880363851259212990311646526949728237627807812270162417011959656060331262567338108561504180142923716569934496418589159855587277090241800496280127078217379752178153879204728912343874188121261655862453371422090104211826692455394017388525623807591374685562465140618125434552832583104195046724533196378525287602112723480448377534506168180336429030561543124890612003785315021968895360151571673297822723200965783283162520009416309090579435570555524857248382128366054084713405415150396192854293669767975868372268430766342419033341078035210477091091538228585274987034638066876210405559288588337876877000596476075922249627914277956573730383323615165315637683076582767568937186111173876027980295208067458179197808717709714232780908025271273818632718850962096062977016455727950153714491534367124903135646165804372586054539350902209684284065304948154227057651611314662853924751267375558611015912602052855282943622644802643170390518398291876750327471341607782715775234746395963106742203508285497556160141850731940714062417317848972735020446048864383530592470169016496000312598651923386945934744605354729901435732906932347602213410312437701967872099086989654420072070109697448815512313512089190439798292362941883986559140580642151633538866229884166523252314486342365513567599397719325692527618596860487515979526348781606409770392243633924858643975868132488451841329349697908941761673867969356725162978614824945849902482321863841257982975698182084023355682992743354662401867813513366836147206638287104387328594622736127534095638164438155572635224986065883149812293002385004715182049059876337112079015755381202176572083935546613306302347153971521028662602084251757051822514276934051604356946744898732197591309671056035592313154974754455774525440870378395376291570543462836425127628305337593842340691733751130366653178822478582901271970635465922297606084575120071570336666917718651116994831609418075878690828977938988303764818314516974740042370439158317410643632664984723014548331373424396167601473058572424818827093200873287335882520971047181769924555353327882838614073563095290602355821581772882281643632268526454708401224064016388961906797634816614828838611346877489003753202652059348445596773483513441379008789733265429700126104206084803501969218233347981408109356245346935933212662482722426989806275126251272308904764596283891912191717702908973377414895384446552575544647512843326482548228540069846592881014473901739789369955503000002707293576364431805439241790802896615454449596969301208212801182052035022259778216319605655110229831282956275472426755517317238768308774639846556893136945763873115007279480624936387333479187429044978702945702291508163651162785976067053483428861944992118089929858779366552460094166761736023222235649336320044453177383026415357339289431384510504499556082942451360783378120969940602341619459207141481772055911480518253308330676865179364334785239093366226411163637684477603503490130083514756319270991877464311856238664711446833654773816186717135218270426721496889852248623218542698721435041429690336123401530109976791267469078697053473431354345448315038856247165928813205983535615326250198411780997853951988161030749353412070805031193380918876477770242749833036117813935974568046692203668559967658959932239884235575183312240334728770752896673457946489552330342986590166614274706284188606668479239605741644449825306245673659067252240722694802309758621239923858649556275609122811832547440212149475657166157457581286021996376316116605875577904481281652883103036087355193955276178475393493471392427789202261988700276291574863482949052809483754320406346669942476361715167687608467702395518247026506356903278623533127778393379000616556803033901024408849987071066928189940331656340637856969601951722856537187607467798571462274382796338529388060498991153183692470949351881874368496467308015862124915440568733899558394983409002449415228440946869484732942421250633860913761211356998189055065613305154177249918775411906274484761556920772926942017845228354716040831552963534559089051056218687396536388619575177015429595074924437767324758406741006500253496712204739998311792821823861477757549717304986060084716242334983871238835115486376660108433776248819378338086779230492475217319169584106270898751512309375709708032674599541416784799698542512918157277685649095392860875948269667021133801275821322091598204448024799002125881087615607208605963227124989204067716401865584003226778401493527180806947591554459407713516289204638259692026364855467796699212107002405925130118673610086217737909780822271249886620794186999526782565870133703988481325580862864319131508625327024635058006982127144291351908606021284334465784330599557030792386713395932360537028758104134995254664010281975109233057485366271066356980328022336790598506424769533638090486916386079175691384945556701131225250773701412719861655687992476168607242213023720986976569078683262500108637443536270097012639833350313072666308178856189781847976979068074144704979039538554958717713941759321609986268038055523852248700661466781352218440591289562769242856374480544671241788820840918885545043060277660285005396843513081874840142173583377626313216254885938959054727082588273552190779764091344413583901337193393031120338308673164900864515231371695771984687187291805842897661808222699621173164982784516980852993072218058684750931328230884581402491770249242907517566145859470032795897367336198689820653029433546429915771597258116038550095959698397999452349364534816724581016633477114612057100100923339622870596131596176317942792190117114877302576829887479074831836686023620957399436812606053246618139518381762260205348726470037623826494756374524899624547063654958135821639659406472136888174015276773820601933392487559354454605935511624168174251439022729463719596632360486660349635859097853188297866751596108012842593772288728598225754519127320455876190832748241358398990476502538786367724156177808000426989477018097409312264475255981816364574045690061044747402508258416664697087260826119258498832595794976437479633063380979227459326491590588186966371304199717126630456163043015240208391704143001342509464356505933722170923955111447710937807474743536675410993692755654419191990175716488449167119539832762798600292520661755232624166373924637043407246298598817932250469501745581780180549975770109492558022270659428955314850544333563635895234510078831414726303682310999732663430409962380389714084062950876561488148290443720194220731817183484368925353974932896645051257696292995218477103208410371071642567700601339129584499130260077545962020144555856972441677303721177318714912425741205659581628743831057868197362270325758808625625973118703076623189388522670737184011728395462913468941086634511926991036193311107358893321562782125929224204685895308864634087703944511776789870205861331767046479275107554139930901588771211141810098094053965367183547922268736928693965783355040746010174878888637696714480876642844373209232421497887759970968338744860188608427938289699421244528432233441180371774691304217939429133136683780910456121473451719448767029324413916521882141370684409777898343098513304006134623177177291660498161040057586965977513260173278324607936450988812629743831987849781003332892658799753271910390333825162567518048831969061068247238779688014875975512103993038739732305923921581046252503426714155578194144476910341693874417823041857410036518603516230087341630011700735466963034147981795073878087445484735028022319867361445923714108631565633653924243297374544978218230477549747310684936031298816135096130167507808697714022640167129941146701434662476668720669700429803665122244111352783093502143468005219112019717443909516089623052094065964185021354470108813020259400456944972713295605918928702716118110696796966443646340434906312552458747798437759386395524182161273506852589755922652681846344317168264438158234214062306873300808301769859927882543697573250653333867830886823837068282290676025127252800473174656005732746758177505655524380449671620279944636862752679889433688418619724927371694945071921800224339246959028346356190242797744384506301187451976918551094218451391762232979072272297722963409619460005889532397230392403342465288973612230806011872556935213195089929472074101013963530335772590076772382468232246476935567352006036284436233109891384002965788523958008040676547367107231075637815394204510404232580873616179231329679505010888046281478123176396238691789588378062304385516636424947457685068462087908337522503666870310213217721415035727123245672522829795216167778019447696490206196180304217581088679745037126259677337783942838685445609697877288327530287906172436686574219553177387742284941005832564675034065840336053831489311446749653861043126220934840822345837403588132988674737137187712891062951099617709279079992148137183220107877158854011020000350039322527924460477169634043231195081095635974047570979815167938985191291532186221334211998356061078168931067022159475825428359192138683361155839227038286540844395497090808628131716058956230756169633313096102248127582973357290583724060282700373556967646853794579834340659941244194571010722632217415700416604955094686112643087044821149643152481862790748660916115104805319103294129878200991604751453974216664454754993593252319840037082084206015876262306999379237713928312047705987381443593076052707388868358145617375201937033495572593236723793190549301158800683859977404611413172384533201094082725219153097481545632149355743694876001691425187155880952665175096274538526707391986099672522871947351169663074547547307653658790172566798913833545972028265176073992992936517906616955051777456827008791828536114106873623241105535512567250377446647297028350934970308390019939039171226024941323899677355932231505450686921554936760181942719839159122570374467993062180449962749420075813261602362426157147685695720250261784708150465516067596553830319321664976553014664069610959221333856576041691778537865644641284380405828038139600560468711336404655081906731048978175831870210648798826721815950750652587308102939466400357139531721699030759678686551439443540372401868897709955976288888815637386989730911258719993096063888290154043007670508883712520490241166469470240978651537867648301865680706797824893486860484052711046926912124935950842522315880876958638215423823757211672424338476682082128061552039207104007610422563859388625248021873547175209944399506113472675627989242666747086221689638044137135359459884155784087855904704938334891671063436786984892002717680518346102552034579141162943732465648439164497080466100877366088243249918987398144474849568931557191393933881096906973757401010306384509314988800478425156629239328217867677713048439356622134314165853562764197809766590177786343935867180021209002984099745510140102992177340145372710398919610886207170309340752927239293476806982802680570089309251830172691301309722221560935230913967791961382234559278253752948027309446258353230595212044729117003463304744681633194654374347452992587950236075476903587941280545789756757723226836865376264725544180507761311221338126073708085646576728797667786298504800988240159488509113775578575691705968569453958462286703591425105963751583039994450573657515802673016537691231673973816849569592040384719633846975067135873681831292735219091875798530793493155639681057744996874907325033044173442950049557714724037287050767598323279263047937847305101112087145982750018950022124626006297549542517718114865552945711584127817231962253826866968121655556701463681806887466496307304360441690326098126604817004792125558378723979387815457806527418734894813663206309209886352601694268613672496009591074346407279930416066327009990020219364900759720700361536587697016555783640620654462530733869997976882683902486205021221663186966211896198908381384075733150960235948941938954409010734348677420249183366953492571488973922817434992472866664681817543448581454661753246453451046528062289808304181215494227397133756848118097102617979050553644341622358180222623078912621715725848029269574982668108749187405449605381321827686435164356401798647101012371190859048674044812399215181432184229630021218132133180420464395283249708245970396147928993397126976527610861902174794320803051668149252267824853231508619983328876240185160129607860499914253340021527162466154326404375083827306708429750449636696321100187596296568120382298014725321503059695360901450708313344669783675183249939170298099681528806325609944320565569164611282857253487046782730233971099747081694362817911658111583955486285145230767306477203301219264702502084357086313400093264478554627504231785372795529219590388637790213279545725614033544993992810766044327740375692868547146199786098606629215630151278041118037160040258884250698821522935148972445499161714962091739112045438582610300537298539728013886009519945850241506112508287398256572536139564329153727982674581568867474690014736366921256765847888531733768093675248880114066650197327561139788666755017558930640959807329167293114347987555988909190210985682320514321269906984911082665813556469036031927728263246535519615757204374029515957255216861492055454399716043022790984890851484759414142104338437184424982479711717464669318048183501264586232357918912541189194546842182772515857384724847216571363403239996014863586689696954895894629671845941536031078015747350270619084289858492090321835559435006079771632508986369963081710410668625337829714295141946904787912810987801519740641939186643916074877987766104897600248247892092857440074806589879591305056574216005485994151218785490770785883802093058220835574811777760570633656616497975627207311091041342243624842188199887065403418191707396141386411111281983682825756250492202563280397663497501683968873082377190942583654496728005119085232526672468281450623063184013460697718339065033734721270637021493578889967986797342290078112960293513832145124547087855648424268180700314218647349610087996123285582873025338154210260823885729300253685907090289234847514648560666374176979574556070352448748812594712725714691261630141140159723351402613569395637704202210657095014511941176552401702051482267751516528876713906382371739577246071107399808699416329798669227964305620658311356612936033432394712172005736355395280344815204287299936966444300432704678927988786027755166413417907621674281883116975721427523529270906978909685466155976607670820764871524238228908479070391062637550319475568255934739207631747413193365377948484517656162721181969638290633658996129070508477798328376985670358216015537475788918469338932554818355836996240510316624999765460582885278081305149596653128181666915099374142689239891825326082577907588788210893885670713647481173612605452824126813012111340490115757555770804065279781623027060583531174544397315936111729147982199212609280322764528811057143118716259616360183940088317927059476018384414776878295566589963284779275763311854427746779547229332002346188417487621529959482218835892798924249683698879405397957141996067981437853529819452941669800200056676557688925724296776658356705994135468227535101154403791886694991100542840668464655072520184663262403445847058301644683337812550794021216049244480196359065325652621772708158266932374525439876882282710535081218727442859297006098894871842441920322151889252688759134654006825492491017160289709335957534296862416875209963526633046724329297885383363770672425088561136562551992244378914818349226062132805544356793677820954674649799546117600275205795683213660735390690014268658121116133240467638812604631331431574755774600688935046121595512243396986159715804488120083776694401511460764481790087266844905319964631291549510846792102085179117277417891108549817741931755728002933222296703206724036290635458509991599276451339520266051775721189995680164239462458061265037960193661922447832760873521215835217957631213663319827650777614972372869222705280641453965018870647781499278128746300469559653102742227463506702875279302727505660441134114730640072811814374803335943893396086897600415933304989552349150049871544419734914904509387128031396999992962141053352527963302200142176721825800526633602997418426813582189955540046375158799996321181151455895132140861755873674588698029252648480803571619425649253690522901825804232419583080124397131155383407972350534527636303682457212479135048824759057305290271690405276822023523840919551042480408743618788066502620449439008307524205891855404282412804386556118099845846657620752099231593608498682035631665435608808217477732771491967350954776725108724033026496494148530000113610404090584287085283754950810717206891654041078196850074300853568312253492080814235189224121518297418642189762794293620815280587138548931967816829344821052862401741297756588516717335367979233918109375262483444102934622322351146516977610277154169060571122707355866703098421101278141099480168128624275988059434062536821164847677628719334438390104710263337458328855637515334063840846078698605317880439986359650614463741356748102781366049046842465330325022296998558360589960391017206538598418230555004479737589652059381634131392715073868576723455450658526466787842653096737252601549782246359106724558437040826572548317172102119113647388529677786048365138837055709166194047749050621229147598926776176639054891250392688024806978233736334589920441681403648656731778110728348641702952595693470680307752161090421907821364533397158200607277333685104915949339420349664970435482048981552461442591329463320863923490486254870934440778478168078136514151746576202914613095233838325075565749212744203863442887442796311275574493456765420199885890697674385176351825908194234558460007448557544778089114696271629339241943025225470941210316450905455269616986578120211567933674186077124810654660454503017765912922671516193014810016644485142319953404918119999239595858530014781968114287907476489871898028684406851200547055672644542035393664411462101549202294327215213096928494336887376224849329509115799565229547265134151053285467945549079138367643806157020410426293604177136293189812782660513576802862171160087825593736691734168957985385654631157490011138245674633280532286104195587227442964754119714444302156735458866061954839454754337085936928502291450763125933750082112856557777654756818268669759956221067244385445395231621785876703702743817100144107101276220075151308832800740562401209422513983569482549995388337283643561950311761823468041845869004617386792354303391650914371817427612085432835604724820525598546305605333653680081030476771340099733950129494232424584037712492249698470392305215217778121932409241359564524325059844973621315951799777234308311587822344562100553570127071360165580382358663184807997035386814494162119437695872538071168995372413849027997942750061598039754355306918307647711973290674864705133888715492423552935538730456821545692381976645374750026693812008295038093363938757927204368072042674419551251551105783628466599801039844354117842665323125206612588466219706382845903370875373611532738998770714627965122620295824614316315345205242992079684923244239075168848506917031774403146938177460728888248019842720803166438729661103454156461472550351654305806190514345182118125690766910586663576638835588041585365688886510419463012183509519051322948485360516872495351322764332932045671730014252888674629989098233063707038072754906136306743221707067459250176032565758142528879702420990733111562133991134675135813591418188120181534040239134490015221874483544798967624341251752611054329178918770923314138257169388390040575333625556935189112541656312140805529579420366203329481254444368738346582584129172433766374775634045826082893125541385834909512982715497560841882447020613596115818633904397584712366604727159882410491503916216353672382905523796708424291717034519453808312522424621731038927896827973563522421897430733563996592558369961029728335950665846988313273239714947906267817886755232111935940400323697174481101992171022695438363586095767470948183958916531478589648228293996929623174423857743170713771647344848190129347869863814908924667530841175042303540583343546137755395016636019599556136014227588903377516427536193658312722398183625215581677571611662627343772363857060165499399083223041812429475399189551574662075450567176589423119899664007890884055874840047086257511918297953190294025461134209716867848683560136021968449586043732180424095617904007284549435749673549276657752863518727571152851182197874797058939277759526424160454130023461124248938248545207158774215225300391286158711308423050747287469580467529441058106708366946855105738812142141741830718707186885616681467032198248170279243740680898972962699485510966413159512428022788457615111695767941607406762090327708172531339689942587370401740440854545682971997520661683937219989470933985123287187290250094092675556217830659030004290641922894797332696127874376227566636941562384184079637669757995776660192780440770360252494761278893706396533968545672700144051535456019149220847107469730953718331468947508088491249283767598164611994537987560489022446364768876030699790845628747896977357047255674333623786165964267534893404860751722783833820292794743872019159113694362660924146111866635113174978851457126340617299944150011012251638434363427039314057861307838567379827735776661124897926512300852046092366222892258488483643373935104064266191347141870099029280462774685816496137450431789111244320130898984507025931112653249534769394772191641898783340414003449300125349614167300098157161126667584741370079301928152967812936549511256171879470554978179653317093407960047111185055501072467499359064510655344318565916646517807229963368577653171547284942466085626704065359771751642831852167239570279796552395803226601696457782354614069257611113470953546117276385229654368930384372814654025319815922937345317752987224940811372112459059598564533028062222144536376667262642910840671805069046938266466625515096282564494567046327780776114834225109672119719688055125937221806868432407674452758880359201536491436552636473581919345099146547345031573341533554076816315472265766078837219505444382072914418857981995338511147105800466170143763697048608619412192280375257287723006740232710091352983261266120064630469737464369186870497515108151618868536212133295747964727238531770393226073285053709640039846421225210103807063483415734669829102758981831637202190524177996956143128350559991000186508409574657198206375648347547134101258467048426282631247074049092902916939055268856447617860238330380713722998241133186579542121881222783930252928562683989270414648269087868931245358426052496730342497172929445663050110553986195983883514131667952839498599747429174663192368387078260772206582817064280687788718573376875436935283995654768498268578046728748688317818502828124288644263209574747862099573465692678455258024546592586536563442435455853704294787547401087135358938519435095056554457259209284396572383999386213751381587599689517933192041334517026896542662900101541761335267594832548615887477467563991833311486493694043350469872281188220061786879748977957694864832294806285245456756320818281950288967886106883660496983961749264953843806848887006281466275316816978130777442295123706914611144800454454111040746871520335132416015864393984110620938580358809557384045849414816044474375903063637015292567043404968037934141519066455072607051391362874229902807204930160038726260268020154346664014642831117914541876487226402112289497785451650720959369065318114890157083251530241662776995524783148817949769766710736399356056549346283528949426287552333917364597824265710179145007267661440536073160225434345596024335612111480277362521353869585976608384395253918005699578970926295797962472750596634350826923009920318801399538510506366328009917146840004014165617165319980775515681638878274382848170064857624965794673064896102525586594380447372979593849620533299804748887892858557925797241960904552955808054585423628132292107891306824531559706177610798657816566819136233600991656556809011381218438756772709397432785367026760405090576730919291779932238587994513308165341230085779760732487487324780379563672533062018431906095741104610289177285724320941819336652856806289205677677954051199047592942217544260394017572241832714717289515949503520045146271018917174741445911419937666016177810926683794648902016790492390085362741055592071590186405866595712767989145452027203745985755278290876881350457429559632455285828078620965975140874443878162823653938926693161688756124328995520729208184984153245963871916107095695102884244186795160538194253074288637636551027859613891040626310596520745122673244667820279246454182200328706270708385200024888414044170841616926475251678317023451478466341508890356268836767187417688405195333135771586103484227854189236292077113704524576289906465338440235283558352496755620715750068300108853934278938045986809862960714657234926704479160659577951525151897442309459295657121065327030316616219127997452882999914835099129498674852770755690612073269952176398125690469104964611075878351489440308544701936226829426862872892489433217782393827810040906953602780642411864472591840040693207857849217204148133177901099123085953687721292741880791189258560838837321950107302085642559735567132722880741507088289324807643090428946218527262722734878652235738188494797643045448857792707882068728837680084253175014724874340715957579074121346299776954247553672989800596881768853057886744901728686867323857159226015039620383907705323551653939007079153432242489137061660697541123214486845418856567613923952917629140043333969184535622961372788358190037790056797938263904379718787394011809744643804509867740747360995370527446709833655917509902861446401643197867531197826455364625889704853861002257184316938994400364226482878923796874373596952150712528695987758622874870360665610607474538770492048202877792380038574420080475999709737336241824123431480762530435636833973805512374370960458702966612120882840254016899614396682992643058341044299294787737569466250920189345221699815943272182332187510984287623706157574157417278479050636711191192720182705381542678522236304640406898912368468218681923540237196357345370043360942354088219489407837107957028134682791117530956634487520187541646281374256989497070653700287714382226602140568567101309473643881585163908265189020114844437097959470806599114568262016566880103955838344291575101375070369073173143872217344800277349565544597942346086877297068425739210228994512101114700519580524143662021177201247208250350113141994902977976155926268136471515471401174934168826906498004355589263512408920598460634743363277818225536623738192329000792456869270725442203403958034984443113139088472397338707240391934525487115225132581914975411500452662096041859290259921630246161442383306350623474888564798092081748869431941216789516329811372440798433624703869082880095795508036462463832571110269335002614023272807849851778332673468713042788757655256729178841836184711685990076782881363652297004937987463466565900111795947842318751242533341458655377479062899701120073755624926931269459001071248941506302560746059239626052739240172514485101165477774236842475488042857867314491367727273440163748529606247701986739194110355188117743392530051081966459541057036745178303975122425172649800869512508883021255795788896266363364008169351481093934279792422767844173192841706904177542531714345133685313327189843096986919935953267380927877234446101816485213378870968846960274828936510851212136940344924272450207903949690396794258310689883857445449739349356023838891706444741139114027957109970392386595598653809465077864335680835150275343173247528323444709253799027189606630344805443589467031818550177593672128802518766887549991426762792117341695218684253336229606777173808275763885345513004160575813878392502609565701290380506006089508942601639017341635729429267363811584691366231159699481962799194362005317262088594740800677669207412603657499324347410824639384581446146862319291606220465692307694059654985730708387615210683794964631297222705196124606712129629335683927956309392319801691828136364693746774961087243067299877131422739021211753257341418709223179306232096565250436460307491059823507426724647011524694816486457414440151940747784602763621103274052099777260897707175795418595195067808852505874026810653273873255261701905008271217166042882745389704178336051885222888770029638840724292684304192538237580887563808832625534936225281655187017722796142736597946996706802746188049985095639409639939719266053431659603408361410448949990622875781172311744976538729914172754980337995563276559461516700086876080724038903916810895592261309956665490817281779218828240153173599173124771108976951189557392489455961536920477472977996663030503372938965566687021022451706700737649519523845481526255431878241032035369738582118443971708686600199725512490624022903676533027168739498936876893443310656604977237669141171696715314244940475132797797032206070431920270848110505555652455855718086015147809352585889348457871199126793412214682357924632810411158259444501503729376621234664038437474995830291743300439917302997653963536044535006512308535565295132210960480788514193205049544049407617366510479835838016644356088994988660780651782910968095694941595724482228497868541092320240940589402141095470973173488809589790172707475383743422658085194808111887942272732682084318185814214910241058901032925047746238429006580584888426860327307357599248356999981704278025685590032968728795659599528732520940142324524594606582441820529948570140057113714616401703922451117108665629251052991861325323512140076062283705746083453141068822646934320236891444523193551716608908838017133035278606380173332453974530945614116133756800394642536537650428963527751361255034219557465590411555791827635636987333137680503927482775173766902596827913282488155329114928821081734947196451564463271634372737566580655441629145021377047326611584525902052155998163461343046901012385901909383769588166849538418013555773152547989303674768463032466755310308358937589668854793488525980862689309043220442975767247377365354800950430239164253906175650067388296697840664016162737752282724301121481807932816997219629144093780825397217653548669243474551298726347739264679323268520379224794778373632301061606915422864476254507700042099480587734299638329312669277234976320619007655565627172358859559489665733771207033532419259807451447381602670089780299799563353477216943237071390276442988324591216213087797535401964033601343125231012913959491649849041524023941205570137337138376589886058288901839576249071043575468963658323094580988143856981508877149641262065878334467556109236496623785978180835693450094086032893170365605509378726212577171227626926670491654877296883842697062883841921737721522864152032849864095878817761590892687363348228502238034931755928206641617103877190930662530066849846343934986792526386183939599370630124544767696717804461774701625405495277458275655854976310681693996597820295433329678244176202699844659899910359992858766627772853723353236866788088875322752997429720753278702774728127746277296707616656254024942099936157914988594475902480319696434871097153890734055463679130482876501224178761733963347751892715470099464018948467654172112454686028235923818126277613750305555173504395915360580342928071766447085345501993864291498653907746105549566903780306671492856052786979331483217859507210673844269528723710590453000394435706847695796203528697055853695615527995733720303335772920212782366731773630007274931323226837832623226666870442414970314809726754188742683239739880373028093283485347181703937740165681729969297287371368909575409687922080684139363901762222940217461057274652192006864143546808973659981120625176172676779807274527212445544027836822405041918261680084905691938697248694800464332035417491691227223379360423576956403797450477049647255157991393802142564997091621486424232108269869369952832758778510929015361951095965132674164848050082869100815704075530342625100451671269429439644920578996387163764841160132146302377538918525196357420358651940905219938238338554266803497246070316541124911191072979578926347540608674175992968518834362761653192444447527187375975170855073078868675017491128025664977933025914655177518719552746947178278931722246146490805459013747037538330238444765600657761094732009237315374012548847165289175543814390487056315962939626791067178997226732355828769272649144493101833071428820442290739676807703637946823395351466055713346195443695695763922689399668484492513191695702153897645888699729216722823079086690435698655438564634310280870032674211409606165439367737580853881871795289112757230343201995173897571090132414457030648206196411852397666200862146178889971678569160852737260285717784532052247405556306622946564542694802444160590965126016018485023730334926095103129242039438899757638874415174860122266554077357790984827751846455634439208371339330657009902927539172665013403594666720683084429520455815512329891407491684860431120291032853189757345839237733109776889068282158882073067468052482029452008240999485020904721979446384635677861361288530870921082163073889127421046512094501003413904544433960228773716370470010480230452730018629027870844951324469163136291908200861462037227041683564967788826552197763416914222549470384446921353830662482423096051015937739167818780460480728315838883464957229901264091136977974028433684148434095409239423481822753023861388788704366307680672055835268315768983266988719937708439247169799973547109652609127565877556846209572813348799762229913199980543631242543198637753094189464345394772616745656764659771187951014150350209699325761935490238189393717887214325221147593074868317763063649117471368391717875306058674560962038722866783114181257617415196467090345087807239103916580783582319174146471335414052405389339390828285005063516527742604764128790328452312884992421897777661814851307530336334314430172951716681875355230112300303158793938599014341383829980631724482309359440393825687532055417490880049442692028719289631833292582051842517531282135243384284549471053210958153960967739295634138906468970796862271663830042954768470530489959257271448682989912553726877497221806542813484751820471172158049080667160127231203403202412817769501470850474969956175102422647565135707756642021747768105020822720331079619049206001720731956721392660915929680317352797597911133710597811406385537236118538702746866433010530472271242565438511413358597808284514156313933078186252490544058355814668485282514503574627222180408611934666743204769555302773276709123173925935127388434571226176049122777620242173323683261552677811209760014574981321533939144258139356200434209590487513327380928246673005367656446136562191952927173624398491837843658709819311250843943719448312004298560656155794272072075143212558700322676602878449125960914990649591599298903515356049017472162908334401521621078475653390585484666444473171802269602498133427078095738064054510098213848288429738029722498031686857780275902948630293519085784177032690128783169310501279975810644688322438027604570791918519985820407846408138046898570098764072366372460415141517611572091028777828895289106976498595508866199865650560042283800814276064369464887769416822552827065444798741189135234835316196095250509090542466207237395167611316086388661378810261616927004530191508756003626975968568858830477703079037023525029768191618672446873510757906094393885717851208933104794500582574969467023921546213186995278183829681654328859416248830375149414695637231149603143991603955204522585344698343084836631137399573380079852475308194076347545280800153085219060494732263944396333931305500700634970844869688056650543511417664111532268119903925588720652878937258363651788168182366673478545568749090911708883362948181553729613671392034484772385728522355872115332019638566070260768594886921000579507835513944260615898064334996498825728046029991894070414811883277833034464169494396034548130943605974903967319656662793358022768417314369243466862103943676699280317395875101897656998730713128191042489722316526135823311764252218680852877522625992834473000790732373984964228733275221971669719135059201752943033928365521443013546445800208371835948204449712421030189925103837717399210296736150358506427323896343186373955663221243765897756153009016968101859093059520513234550750769990647590098800553490607075401743437988608785839869275444042015195347320478959984692365559142348837480198834758833561317020297022592854327969286878658003408350619110425604688232666002422830989150052749163272437496577781281165668301976772844891745427314211697960509154640727205593026958292455270984368456110107531340749105559563567740994552026508241796635948922245260257390759946898357149392527378619091652644125219008129327832744984526035512819744323811600487493567144400936385851283525366178168958613907805129072423298767842220242824351559966856701263977097006095575431164151717202337035141605468268190013366889948460377548876932062675659714811273773841489040110226038219791124563623328761361316968108703334419724455042099186446412283325863754657194712606556772509712988983528466447994170020383444349126334025179040767397330617401054941901844411764245648775732328139232060570179122525774421978842387315058467535141504759529163016789470689430253203718358003608088627291715079037992152844479441165088176066922167568600901940191554218707491212848060790504698894897437726249937132059102179305178961927305461319137241592766187021437181870418944180327047144948070003865882160100872847733745155560085520452034136357095015605658603001587478746551541248929941118895872239191971560708766555152379300373703358412833260369464357185017202439460167778615269358080535734959920310027154996501584234477910763614125041469469181555390900389558951313519583670410169201879154665712425864430304073013411559911143561787879829897139646265492161397734184213540980893564023157800080251341309499139419754504538674417271693917808855053889796659888597253110595006698879577991601567675772681015288300272573101070122447406260376726122276494475666571215560152731898756571202307966109356578589882109938876093194521444065905199841015741736858022343932100723949713702362146950248395372125616974968804553963951234513278222553909025922943972087967420620241591078010096898468283725762502838102651097309621842306608545850270915933078426745430802572913074046946404010741466365547067070587909786503587790900008654148467878055639893659369578766398442675367410108480133693664374910254369143879136425839298733826348955741330720691149672577904311771332865103280021210448446976102637742341794301095808422595071400257872013524832104344822764657219468082714146212108370546146051873056423432695127715662487466654999031232855728796540495408819384848695050179124926378320616767077978695672153722312963348762059240138929360127599820642320186857291476243956766811296562261575985125480177707222547367178984428065794850334934998034657347137626675971920514518732303828404195740837726623447952487698363798734838508779218695275318889856163515670191853807185581793115365713953795627833717211800973437528489197917162719122751515277048791766112177836913918492172182074253091919311394481368392913016067186518100127397454342077673818660771940779238362865005348193898938186988853035936795381531102534819367345357752412760660224444007050812780224056063035400918594587328433614859720730898219201311909808154691336966141516279832428845695351578363076149274053894290406896166104148226586865508193358430337179353027757193684894119733798950259484260204649006589252426340951338427753125071646544262563903643236472537469738815908013010910513720304269262574844488537785141741547007583348354847972257034217590144893887991238187439043642758613775270001757730052051744328677282864916532676677235207130521561120246055425890553001342677373326360208128196738816594237812178060690353457107689191531067541243477515635116904060158686295319079999742587555814062136980043923566902098244281918775895182187729901604086175839146509780195289871488703460827510066934820587750651469086055803141922293020692719587912103194397628250173169339090727180832101596114565656505175362450211342573018766533313098441141540793089116286706762876464216710670810845741999698121689979830463090636465168466186026656252593806708254681222284438065437941384379587752890437897130108587439096816224030944846916133679556436492460704860382022966445047278680189295121096245583420874051601540361416229007391872447949508703589170346746632115084914139558407192292663684587451878554750313237524305129592460008031536107718624402317094920931264716533868803562849442240702000170418905029492398184659643729742378050963439563313308044928465063607559659769673037276133759258769398549347071025276625079634454849236486517810535432836639929577118303304684761884434065708203833580978239005882990499205516302903088235176173467311886504617511960778426887750463835535643170178820150999902412092560086139705210824647086320197734615307495243564098370430141626915621267897093866013309192084663489900103487019226756872188821763870274836678156891048279625531132963556898750105027659062877911077791952109951137131999272070502903191416544342599654289446878558575218460546820453051313954813479373761639252822793309399676811860232655138090336742144704410929232773274213695540294943553148612960734802268136533311062492751232397539240556353515462763382277719436696290496854199376599686766388935895559986460861763485666373441947301023084440575396710163682069178425323544781263871689586744829372413460440985173258595256658727107816155104249313392752985323345623548325528713495846654414748240387570654497178675572033385362317512531719069053313044035793192677200387793152525834743251116238911819156795351978406404694975805721086354442187435066513878619753438309772681277782308077995823190983146292531635390488042557109177894208926655421060940573389932985135442568988838790472909470116818745262943793705939549676485835363804007087213615930864854332687134025633000418716747086446476123619439392996652544591283600531817584979796569121492308127437602096811497909561837726334876448197202195421461810763686980314465828241978380148699629510765536127570610504537640804371794414446208590042991296508446660261947664050357753676964390759561175433989764892809605508279230823942232615447859513363103899772056400634315826941878697002335174972266562616520349235910125904244650950616555590215631393389117419533969639756284993805842827303224891096556317900297364687743582705469964586029664724907924849942015417036231849400057860764587311160616328465600664012954270574198908066764949068881373391110853550448239909160993699186936819616779964270729418051285043387695362015370481878401031582286858254162304277467610533188379687109072244930789894133353356040772293589849868267152777204792647061704743423501016204349714943406729331097811890670553997728587077924237436952905995819445777432832734109017077080933711998488406764565372192212920817951096860234340157883250473814694842337793501712036039434908792143882764694698574402029585316735948487241740160008802404453133279796487349678410045921447807931699694629042815209875382145640529255605103578701230903163117486058355726189273366703665041109583631034163526833389494309297860348593022407854959542450207221609346866589497622162863368682810737891140088229137987657033346729359440526047721467718459861663199804341462540974706152493269667007292596904285921111596517442851181204749169461046420716678564725721730447877433101133623874521147990798781515144780395531735819907535125369684708679828822134550421616658438630330976524105165651066838772917509991283521071938766076622025305626864653171572630818527619763262375811565916429030682970368752845726956453146329563815246097156605972943625494510203202322659468004247290099389551307749479614038079243173342752501404825037627374492593838536694077273343552986361204825204746693374160094489058466188183408464064503646249470408892220131659465680806093355621132699745397038390608575673020690599391507276795569266843741603379179158081601894402335829776308378958696473680330956231416041660779699069636736403529620691217231627589651191046070158481544378426618399635049004910123754072919492853035983662669991739936917848895123602360165153032073828261352500697574210468469826033443505596939854982573468869162502319848593055022504290164993529882347517503762667960098392717539954492872705963339825855974787645482449940653538651723852524907766697223197105131567124788002337313568831376382201727430166128053780313302480304422215742312920444726981755866061484657577292802520710706416783230731489481599553123954845596916002110036785430472220533509132111738791109932101887352921706175900317793376577694267849670633095840614790126015492485820773474899969284056954068653451841232714582203230558473896961189643586624428894012607454532943590754060528239557674782735473266109209843622300392747153036844029856793641645837249268440446112384414756646420608056258899193268332630877658401423621522529598993888799788837502251994233889887615409523704001784965104348116735445945854970481681955472962585423978135121844356904921282825120984153274957834466942428730726960445236406366431424531856996463807287512307260527767082009717013507537224103542372422568253876944657947371201715433736426270631932111848666854310273181347884453244100616683160734072755199930202875246517021217526001756624007422037915363195689517938240219020049529665184369932004861400349044503405575624069484361156098192947572223834325458032452549130186421896589722869610500968499443049935755065022481505585806178157951331023372829225182807150706510360669963941402309200032005228741621001693804556911382066840955267848390810180664656899391646168006027114903208082405531586367635256079676417465017255350604041800469206240065499659847967105394849538370891049017552793710740830851761448706785904918092056896776499816192127157157917924935087225334763442409856497606491724661802322191879761941316003239716116484184430099491646371030875487718983396315868455864805841128051036848691878986457569438240493408275784295752490140552657258508574728733471922608952818659626945701150389679033837908547877331768889134255205690309459130599963235118619785305072587562436386373729470668963009134466059170879957953381208320549337797854059342024086410383809769575334203791359778441509290183899432456224991775764683815270410951167108902268673873246070785362403293003756573492792258146768809208881336826648876458203156268497396012405866317644072929231486092702141432436082958512728960983028703743134906275764960880346491788752905871773937247338112708891180181987594777278950539213228605929478024813795970367637841218491771812051393321434118148321673653044459493431793697553729605691707427478831707174129435706044892762903843274255405704473244180804039281538202631088853285087125294927755983737844538719320050354287316800731237637488862098805384079620469647241728521190400173255879026910215204815400019078034730459634439964207299189722721214943560091908036226469075440498758305991795966746160533051036707211955595619878941562743234689912690321707123933104824853499465007204219546728321059301004919908346569112878418341787592365158276183462685506642941141944613394329169075149098833588913384015499966083173122311894053964003926381381771787114572877571668112016099340625455461068485816796529429235083657160513464585704693800900211171627718862230314393740787308916071804105235590774091078406113391283138724687947173714599861089115781790729248489241528464258661096568655186827877364077324174058935835493862583379124812636758089475067938522325352197090039993189721147158095586053316771587339424473108053351786233989580699222641394241845220391564027462094741617839623498761760168197597993405772206921729926654585301798847438847406019164986658321005269909740039115958833561307508203540411723435026096420345395428970887864195524426089716070455954147193355620977893227574341562265875386562640630924074512060009748566220091667865171358374348926578614277676319073286092431985631300875325036891550413699488851328797446922136887243918619731162944856056196640508323219932935309121372613188037858905497938985395243364158734668847622651111373655932693205759902420813956441642650668881189184060043257044030582064404444636509122071505034445561955040540247209091890244553099065625975283602316754043121876500426059348882270002271723882126917632107273412585387577065812779143609722400868258315950756240527256073324528896009946543643557929290637354179870843562674214562913918916050063608582235073498129375501746155578711084684647489123973690118870297290221124037302233844637683840761256783449090871045273352862822275829844947377670242366581066540478400727221426779445839098969743349093477707528654511121474306062761464472301343248446932728670336489387981099095501912183115510424224091935114910737343007934480534318488470212446881441469491854503691300265107270170713967986993218140261005810056332112244250875538983319202177734129601857032090814951815711700867899787972157180634742990470847908870283193441368663075586398319006709682914994249155027312422342617756475744288857933373341344241797417292432995689596745685497348604002647442873562927501077919561370306764903367610153189925901441612733472811336803209290212459454489424064982063509909837362602488259871353275549958545316969913344679835887965831008641969559419730378920989815876395929578099203584194879160374820699750880581618013082307423675388685430844025585141554083066643983393094422445479683983282832773722102975086733965231654512394298098030652407038197711346911632772423040545658447272820314501709301101751825954268345642528694406476609258650620513018962266720892937678251716796011242267193969685215660876630780887897618961316895107860049531677270983838269652760490596122212777024985755354187150577016833964165965106733151332919432249553522152016074228552861875302365363003744375105850077293652877429004083045633052629812510793860454696454236664455130444307323193403546049613482786281462913919242356378864980367168526654945347303092620180475246474733144663036969901302533674803775768418512964219879094331393997470788796193670738477220080607895524480229711428751951713483427663307938844113600916521579397867355695476411888978850818146930759522600355569750141542407525703810432054267408188233605619009205567401058578782767617648679347899744046528756585072217025540635038753880512600192236939814623044931587274795383547162617476080334126743784078196424757735506241341148945941672220745719693660668597949238461127612163157963177564787883167238750820244080045659375512817910384019973966864055859175708672768752302364178116006732499969877371454812379511623965360408524513277797760270946784866192094065341721781230314881763902373612139869914766272768128088718235452548786613118457153427487125993267679812430881467049305029907556944042591641974758330219649348035539263915992899430813050494553582894826927503190635368242516689802026588464395489322909162927539582009577030164196368613489568807703296509645802768459940732190671893717604576498308642949323087874363792881721196459812852527274726243553774954167737000639906919514543579730014449648290602494434334312861656599177677749353644619106711560269891551306030240384838850938892747960522469007212518067709727792103682149734984469910568685958087471652511005964680354375586348561419797570224503975825710435285953555102905678240642477098988580762717423456397022088931591051089498792440209719636111495290368217506769310033081569100365889326336008345013429105410166084616250392117086146970137936845531152009207666012374969684523916714579867264672271785413214312401442759017558741643475025983216255049538474506265573064432313630512691229962543475256887507030727128804911692139181004263355273744038218329672926698074893858123660878183286250240915178503780866539748058394165466093321570299236732590752620749581664289960609182978472573745195046352883806222022826804142716819770002170845952734315627386297969004252109772746499167653208264180240581634094416275151574247719542364650095539314829886692379282231236727738958780969631765635728670499278653162127767075671174818835044708572624098068857726645051185723033740520931191522688574465055069482423068323435973647542055569990951359167851023092804268279655878530384768664010951752633149383495451114535201179128110182647891057207529229022462051358321230807171398796845266203454802205139161291144523949854744915577855457336553164033555897134763466003168469839448287651752350785133523564571380057397043233999844824466711798666277650762430655077295007358104930475908022472750686101772425500114417621424465204635858333447250256505810621954792402275710572087528542036422030104337799902544470991526019734438109481981769719327778946957448140724481028851752450042092969082088971652207143701431030627122539181558586062922235277857468229246463353426738825527805351715700883963581694639452067668839406493990531487751962649041519682447014594179753872369222765455239273279195538662548549994488537810053616437930698367305769697183195472631312543107594231199237393962064056972602414255781603489819441529111634939961626368102915847991012243749851983377737698815222539561260607121488869329588094953131819791748036391933308415152479786594597898705751918757788236801857301402534640875099016984018614814903619649042997483542745767624984454743345314680876828324473035068297735234793593633950290436933570884877198035192423067852595404847122537594282951764026619006031465469321442562544670099662388971447108719667203104950703990232075318540978106612454029147613968917198469890634797697475627396700271545097306114710278670142468127298943465398358968220863314281454350809029832869217440165704104781908043257435784323760038829259520281499781608201406275811381086972898432199825815272167257723550053519998271247928743174792337882235601112039662761969399061959395792869404330738085970817896991483540809847481854866545702065157993984351589119925760126585258779943539510494433214328449944260647128162413862382232826365517689669354018772233143068777197911274123916103096188944564722119647952129529552082844249548911548978805273864393380037489375309368485755113374413597963075608218783347091982418238817254503770249533850176161074667877682489497093676281552503929067498047168059903709608885845951069900756174392768832943008745190937370689825595213990208479034307666050304597801187134041826877775915792387602361311071587229924252382556929163333777508850888057582444421579751993992820233684932454244741851212581000733300719300603107940502223332417489709730887626576057735653467781031312090916513224214364185220097389612626334760011743583575438847568502871396905028171733145348780321798659172630990723214952485914253212256903919197356008470741230241603050966929833064090995804803532125143532867302993156913944337887013414062862760566123353176116550481452635279184379584948282935808882479382799539808887496326558381828763523385704867414487792246642639511090882606355136246093195823462793909999931307252916728583543846227325289577037420400150003871274839190748841438541892597604904819919585637749972364056203126654514952595214718948307094950110036104403629570398158276723976656599694875422231157217773916180601972390137649668751614275627059723686921770821138108131619362572803315651847262485390180779782466195823105180054811610266993560025611019596405486180736715003852149051743199015131782221376009728340114315504672028755209204524263181943723059260216673625423862300616658104045009638840257614628307487029038642245742198339176756028390251765992673191316941707136690329402529221204480466616539599204654895121439592807909920396170174787328450505400477106940673196326636641830053298204615300676733890636601476715846908071319395518556298691647338885158027259489647647235876271399607606744238829690536588531361987053676277909655202094516877131671923901495390232355845341839360593331698909093747211032380349363304684524712889492874199840207138627032031460126598196937858282809760853843910856407818396987112191337200798263620430951113264279265439256218895102470835269115523507775395372534803239339779444765002143788139671105438950988172805583966937727642523356341061238086477522581205526488067050356729181653642555377939292960880190288524683086219106374968411513095171448159766692864570362540809080551495738376980027623395321871538487669435098434659909269931669442980108325676282753443449182874210146539847904219652728627599833350033200652524195823132288051099047677446077621471057662562598336267460064630415152510733710288412400447414149657503152190087679800375225365472873487589048604835746386629059334279662374385585963628932780092792382149167271734745889413550197078458410319419263917492016983339011368389809609029671281203678092837244385428598715909923200525846874155148826703808442363292761864457097332448578099927590145115272176361474964241144613258505839178598548406398490299984184454284567408226870361465696793810397946162619045283658985438922145445895201607021664195086338097090851707362725153739018535258026684833294582407854533002618320962304790802558365393202993237956521010293217017167783010788418733113112830721184388093172511688883749546764069793575491818669057254401821376018323138005309274254064903977926748642011814881051189795396867320775805686184634977493028971609006459590331824201870319444092894602646194074323101961684573532229214791914367250984901289683840031961197023511218652888145505319329556775004922920384696039882781745269517817367565446398103515366982058041631192616085210500153264494914243029242126411968273354205368746529662463676708970635714080454565773574003724820655138596597781212213296861762158053178633781890499965740132412964188189491719857099283325118519903633473061676349510248358281861216444671379440195564872527543626417554590751319023184767906784477470349620081270597741322209954419052731269136072814719312449668825512602099078972823841820258119390902564664613233424974823602773035105229700488469548195466842483321072140038637838132890142817351124498179804973815348548742704679051936037202309781356758696096492743220323732163985133277588464228750367156126063487077530099195123893473871215516513147051966954045896038860530139287366170364671328669011559426657169388012196561270148236535456959525357433530544649220082251377443341000807712658783165284803754198342766883253660171259294606511564148882761146083616854635492632428328860375790330835556614282240290775736740536519649789372153769544604858125195125144419142557413240750451223104323923460626847386062953932977157390199453451407569668734039605849562068968620541712067042932794736672022079239583267065858825426963829570323812955846346298560030484192424726620946958214014982870954247148695432856327822485274266854929719040219605285892505082632557310978430920576496889048816875369288096117749817252076737350018153031272437720038497281271293049742675325823496882296134313361263614928609950671461548277006637507425087457722826009422796610756331037033783511447140264804732575940060454993166709249990789575430503881642355030857333278313142509384137901372941797709139047564534538373991727778342985985685952147586120800329473642760449721014716334765252458235689286001201184933444778560286843645904992832017204291769623195998750504391786889622969782234628968700568246705136660654310215474101321201813729599443730304546159356416157561400668995260356034247166298068342690677741100442700400445274472971704341757541827065426211199198813849579783576693017664625873411972192629326276924165339397525951359057523568481944594098533991623722388837341972959202354767045030467552016175590901700372267710887887219085106644097074090346618802843581544458311589341211163174219632273492437517493609488184241383547047390987147678337863988456142264785840275222352188384584531266324173331794487594624202989577106560565737918643326389314594140751466335419780952944938173448964138455110102582022107186571264513903290509399985748733118688931156904723128650665913687096012023607397946666569261579163345334944793506329691575622978415339160587301483043409436445229814736205050299948763684627363212109950709066691283999547695852089886497163464610725474700922188963870255749413210739007324485268985933902603064281474930271598126828524164542740734126226394088586826770361270032715706255609437026000045617451465968287710291689001099660103889794582460350256464837508084211281694311982954941450965610677470561428800278282438059830985634080226882595477721534916881311075046638217753723116652493882342493781770302697120566975420343158577472935734650848598204830883613762220081584821358855404559336020775526571487583130850505471113508738301779008810632333696764656014029205430570591028858561479379623539114407388677756535177545142744410774448554940977882378342969180537209330289963721827575195321145188878233754502851649085298483765327145775657740592557317865535833855723494076088722192819252545566311893725715354547813037040296212263942827005825321334850225620119121909445304980977751522784651178484293997607926122584541675435037124259383352623214659325128519531621520012321322700773409952840288466492765996685355422609149404450842428916009654348140158882845753791331389136767376319493064439874696309520350227736168076870988335111973936257843571365282794873889360138785565277070070259179084073046334254159292853273466108926631678676606867865271121657411861826733677156522301520412626732256239706511948297505042191799262204850236821173816821617272585252754821390540779946463935311264882059215763265934066660835355656264006829261780198026789034682135649753053100836464607443219208258133259728945328825078495368599243167968491984234105794246188940308385830417801941067258775767201201907201656394441408245911694911159472020949242839517095694952257673995014381517220031165523416382883470478101109571192843808977404970546699535131281028600924338200131289654385284647329292759059074031472382389186127233039084110502859913016946800124774740548574035867434695380581975260067796192656233791989642761707210639512721188486651496019204303035508329299852579339418328880592273448057196871312219785770432925888596516398066804337123270177305389219029696889935599453939082111156951983351228429196631460140839114101384080334428405850918575082473824511821407845643705781037098161461284439485190119466638262858664893150839618411299589552425903557056376544284202966459178079645105156859716945004795474085861885738087600254839814442277104433636645201158236733816807580075555863588168692682461077032025318380849099269887124117101170374589653616565261177963923166246326443998990485670868727563035299973243958881131171836382827641078976878931581430499123627961899117540491375921128367114084340740101284307256490168098485954781871746524238947564418859764883293088195246495078328718898190998840229374962822459782706999177313533843274896385972612262700201406371015649349664298633258906826477504954879630088776277361519300386567561586510807128554357445064553550411727094616631953958314754738183581119054535111633159728995168685549046431424943639404139416450316459442508390199223035955493709220713532184660539828872919241565690813557006196034740255092615808903050932663614490276604944780777126333728102958537584600037464180663384238997768777637655526903077122403799209200193431696952097606430789371034277616850347717368309170470651280637223228007977191296086661973003534805921052435685463149239246253329557009091233263470476513434820349333595443494690900722673709941370372638058496456914533489746249279208584106285743964035957627968324664280293024958321448346042123839994328549716666533206815958892087357408720040823466485047086794263590616967811787660711742668754461318015227041034357342934676351970302624755730111223171423942646434524853049116928466003092996819505478102591065519745662391555008024174304273525801914209552814906225026799466458637835997537382721545917357957359435685727258430182936873997037603834753896691832961336859526263291433803264594150216422828784352075240018130097485084216438847063308409305414671015487450737257992386793946371632955310378151781075093786275877511648843004813620372619080607859686699579559491366070928715742959260547044440061861679853842000882365655252598106388312898338253930322664315381429928786225120378937991026285898862227409887852383325393466484424938401654200133074407776111480962343286027850046625221224790464920418392352973391700720100029821648940565787353568067319567870936020511677706424811200786112520695493332587803003936660658857605237059679314313317611482854727758303421727243363763794018767516989085724130942918772146508634263154212701171297908733248402566771931430961494658346003380363421809503853564216670286002576683534050142911150004742205594936917101040194577182326995693648882723351703825015571367241573197373777973212683598284381730511077649254006700134202974064824839791638222473502278307452625539166174272804013201894215943776553142587492369457465529218316834430864775699813908841278463180994674021759275116350126037392030092650632397390630748682571814672198606848408831551246972835011089031914456522744710608537600918464372787270329344181790828849757236858788010889355603559265856943257665597965313111099104603700773260848100143037847347154496889306997665474114045599071048358787413609748755189056147652918140028003679764031247647491718160745522404590258126211464339243420928135564791914483770197664689896666879452486838456724446026454361376703073305734101897835342451821381863486441367528189251122221177079659939394126944433321853740012656930693633159307047655755726804040620954241549787229364365156500045493414892832560027037389537733860554559136947684144581674711374176633054712852519671866154669931968791817294380908298006131088889665606896159234429709129155723932050218777269506873667066015967153671199459316124596596653336935682848028984029426727726202300467182423277490711609474845636930215002305002689065592425054838084947241958124562858405841566633451122301499238894325862126566755769610509546385960338416628216412959663452183232260344894962784007157642309401214132760132926805291577181184991106246192459549659196322441562712241949324998264351620041634957928894854525157105054230069105205819599487510465556255421524526739445806209120913727489195567420727816349791995605427973523309456776276415272215272451448374969630490650333237094426472171898271512053226708923009380997112993109973638828058354560580814561269749191110037431552227720709543873386010723592829054661230782075456554436299874823229554976268741855808717589664837490083455349789729810708809082873033888461473489382574950934279924243409656956575580347842345529739216221632108360982192987534945947747662464315690693222693623546965096117875206471708033893604396969737190544808680727207633839875972855584233761082813158610959496613393665439369617630346405994235219580150169085626772736032381712443871396166058283724962921303448023322945435164714185290013317952568522145802056385290678316973406088059353583862940970287527162246920612570614831334254712213072879914465719155839256618050577796762038373144521226015914664398494953269103964532419464775350522987544233431397758291473708643112095947563405471416390303674671677072913913597641876555557575881129727641963514593137260398587926004338451029975256560303512045980765337829913555408611271455218248690191328974524041362551273320377586382170062287801474592269070208056444244821736831178201870479021529176105587693058292989728413140469290572709148172457407854154312985347375642596879680949985206905279779662216874908875190039535880144023976445115822091442763708611168088254208039531987398811601450693175807744202647896024018911711181349127651688964827776734768096996149791759932114760490994875481404496342880841796122228185826984684050314579188095593363877600368159004088760761509604635798782487038446034606571337500939308586898572584665231734704633550260897588567868994531192255374316790780531814072401125691297160813760559092457659971000717638431404667008922960517709812633037671528164655590659397900465270220104504460931346892743237267193195101159609487429051634660664320186769245856954181372463631488052157971479677031481561165021460828829401710885159276197767222522331054178001151603921411260639881712298249710158761777160971425093210345551897559911746338229188189323885866898107459344016437599675157624253151501945880238573450383838538500509874802707916074274388825898558228348212110563560076823992481653333960612197552975494391838253490297615353753010777147071319418345333267628824487769976163171166761319385602144647193621979407439337334322201508000010100035339646290124498291264422854435727542953436358317695012776965997111512894904182115437889370241284811046165642514068622667242018145460569912314481006582858988278377621428684742206584737618489229839783558004440183657505241060671311044226112831909814194048450259384800542582040013253952812992557527875765061611069174116721039174315594377874719928834680085399821699420479760012409983233606885973594106322212431433243545433700021357242947680160200508235615848323215444450668594707116159948582960910597876861826122831564946222625729234003814508633842312637431051333426937268800328707752003814744025313755699005050621208550259425718772761358910585724511725571238303254156883987741692980162358014057827142242632694764473967027358505589758436582371483935494551122581766598138915596081648346968163380103677520164746256320248564820986439256355699234219265544739268579534001268658378952957348891465765954394958433471069203857156572208813815007372089067372856621700397795385265005435092217524871733165788892620253723541132430853964316194439256140533306375559308148089626230836317367957344276703881895078760216484116589633981133191174276979752525130618056421288373659679893404503517798279661916838426076189720965867535285467484677570162469197075824127702801428606612548666065791260541013820486663523301244251331999303643193742048663059538038675291740018168310095838931978556090546192566332224401002540463016649665825028234335684708545311472199165673614472656588586740804868624776491048075945570967382181931962962365875981809541989898196288566686196988759721114265364436844421716761525836300892848035561237741084058228478296691636879747996142568459869915716863918307287551314922788842602624972178971287524810775796810137773634668766242978751844974326793952374519660439397823402525757548281018116262604535807478324311123876129483784740166784133410069085602279306344607994120189969860273070180691202466952549743336413233219579324158717611865389335976009742425568901072860721014037455303135797234440268634356584104482574344862854073381947876707414257353662331640143174141818692492614054942615832009581850751107545898680226998906473466579707910463849624310322639681620494883651351952902352070583151789251820200803235235005084031361127702764611612467036502200571531553885031291655522682036217553316421103464696783598379705984481478905955149723051802808327164590195488676613397811180953179353832153156645735267070278614472049465181516324168492725802001633177154266592374526383251459776313744729233167164180743343552740200141987732523838156310869840148771804314914648627024583007741151546299004569266272688193459704275230362930839182141264992703328756139884449840161228210971729177611013206115537742417675330133453282153840195652367495106805770992555081227351517832864168452307640993662652777306689905078843733500068179246741403941565608672853540556092541888299138198507651703754163231465063801591283831639526985180068171539585065025495367440241052759808150306871032876217164957714561041061540085828660073128993380007231588028050391090526817440799734575474244475862638457041387545023025086800287128853190374202322436416975780226499395279970463488930402637254945137094936965990580681969262343636005444266090759520867973056109036630670074611811808025327395632183138916326799150297792030204702444101101871624665469006817531824857863744315024195864096133977454151190481675696931131708424938842801986912018033928801025548272021221594175718340603754586841960006579220656873887851934987928432412326974247859006908514764368014238995903924899046515876281857150547121328881407194289648426028457419185337981909592570298933232968847181998250076825513289014778614300240616772677542915799536127352543227242398339837386406411553783578824836954086703260943500141167564904465726330106241569275957686182807434787677359652296339234815978707666828658474098978404833795776155529693250803220016021023459578927279933345053873600531157124382243590873617033168165294307032946526588220522240042240176240913837931041714140942699589606050457136231240920635413782207407492235975726008793239323405311331225144761173970674252495473301562164021710903415693729490460797623054694743317054934152048740543938740675061060717884341176005344721395655552964849623048099787541745698445508981357362045515455817722365270424045244938545046060053183459542919279124604003981324450274673712626431346505991426334898326200609325474957854692127712683273379079459458857254181210450113425013612892600693345928500598746429535300894396703568075687458634306209816601912515059151520011427612374237648860953074498602334309975430073540494970541935726815222167192809936783635390711491053446981917389368916973347546625017779498220298368454400444905173079205342186549478861762080076208444648072691070817010646507049582074183758447016655846014589519792090861959596408755128200700296363584847789791979535905258018062329102665575587954532428890100636711509678604544071607058860467770488350537874082504741121839524563507467384776025754572341295434283119198074032549217781272155648710009747064937260823580886299158794600755574986950391966000269324817918384929343440919760598358007407124978720981282808625992389407918573921351966205142120490572928795501342417229457914897547977342551714764105029940163477757719307547423958663892947062194128361116247214116287141805485005209371986805482496230965181561986337369432079515780359378042929564563978031561686246891423460227745135501541552011934066574947208830146822879828301800239933196230301188780624359799212131231663948526372008931831016477744513511307997069112640444743621589748592273141394981708574169751676785250738828448730626731107160932061101334261145842977451892419444704496807630047789072558460342467087843128711150798253673526572095959002831777844933666784412952394850499255169339997651269602609109603480486031403805545981542984790483208621899722313925886147454697189501195799676251427150856397439120176850765518747808336655450199297920487511691831876673188682322132707291953536888513169977231898571468347816810525187461465938729979149439302294897378620832092637249397590423586312983580004584987021582211621869119453973626207341186955242219854419395519715141031426201173238860642895185285384697618344397269893511007945346468208160951432529844845788984466414985049233719523946063434694981874481084485061764116513311517818832922492329037674611512442836812291306254806173154276038967994408818411305427209923633484531106731271975951401501903623269049118438615530240568204761704794545077866378469281636216799961485287182416790275826837173336777289658911392133746539601449731028854861661659893302188427574285656781175492101046819940878513745674504595861829497863658252640035880272003870774489148807443907561440730970710599961347624946155169816614672117938627537599770717503962866567338243667728682042870922898311831603721116996433126545109306570408474078619926915525517067295536417931225083735448861303953815139093597359472282374534366792243079003953591547330789938389038031526480702114734808395090674494566875057131504366336317196346057095381640531272544442776466569018773489523072456630767587488846850403239386699691183449274611597796904470791377736517834089367330905219517812890795345184903502945600099368562617967173152101600582111418612447244035327326814710744509815658440729253250011518277700548737792990553496532642669945275568184320037546811567113105183078284515069419704602414374482183709762357025304822651289781201427895943460821408225324266606816159488318025761204959077215833306959123077051242712066509343945691462474190020103568216324630537223985058496712607441330959642701945225979666104247459503713155473323787287972314572158688120164993317251186207974868405462103917532725944249103245601548564201937642688597715988119661177321162762875734713696838436088714950328360486935989062467392458116270116195547009703489700911976543280723977921779577263153941021341150290576614653703035144549529289303927925298043764648513358599845679901930511950280966400738093988193116386565965940386456741251561781302466102365366186050358250750504765485621574842815024790253481555548067462276146785392274577551326142848125866149369601812857574544518402318802991910782252883922948362203157567320086078907823533342634004974064207905407768161846909881227552821868436674835472334575073904398885400396422869837156015291535415892961558134278269640042385788405695538944350113710606215302128240816257328574136012935389652485984560094942001033362700958551611806318797812713561761101060225612657789848282796213438322287400978276544356927914994455700192887529672385777197576098880287515133717467236119431444283842846343134684576724106413476615604179114001805311810392269482311279485368615516082044550890550287316863696538607579053299630981078922434412456598186639353034804702774393211654078650487670832930978446552105452043550302939346652231270201165149267309794051612607420533671695202466886973857191495488737940043997876664479858331936320942839206202965716322477466349196258493446610611401684087038978251349395279891839362626730590884209911202278430217954473670217171567560314242894118628668978117842247322580472784205322229646052552418200048990136158605955156516873822484629821745858681463955172053266769134556868383509237345364099577579308211029671269550837341917118822288637002251579469842304304318370449887052751488737556729156792096325537548001478653084249479654418929159829966875447519046592825346513155748134116054235491448944075341699805174027042156008331057855865133666066343544593316454519552611745122993502899150771844762141047134528544673299594879343423434079631306940009830862897063016831898983116160720057377344591949876872000204835457867358930431963898727392200864379731524057330708113104885471167932579613551746934327284361557882230349376321432212424134416824974757326921071431677685364071873757490213883976255580735402704666936995535143395059358500607675866918554521131477080683363527604205011147758373315378437947971060841364657412350274355009333585831216732535086887995239749160128501443948610405291643380250264742555446856020099261180045649284334787177737834476952166772562915702736827891627237099835876497232301210185838436013680577625676380688664693141007365928084699473448225138340393385852002027412054638222969851285095220636868486073070550979141840153694080693477320705128805698071960931363849095491462452827644402775712038009285042161287082487590665516379050708743945440059700453424922065636363455185271741447094328092021660451726943353981196885250992889196388166902376240182352478005472471655674180940100872437062636359951645278918291735584660881855121574682960255416197253649826426850420494134714848094118201491606238965310900489972248871833030324767523398549231263285036097485479093166334037474032631089004996089951723350599422346703699423400897544162573670002202414201626905662758501432502711224572134246049769917682525411147782603364644063592274033323552694386282038088964202962957980513760625545008911450655045402590535269642504421317945586589615552193054071979542129320245687923241443364702637337530297199099923333597922934794631638380749959281816055648097212551760294388842565337836032581002741364692995785775159736335252559774618460978430088402166441465861288067198754658764095479035432925816294790810415498786514860030218535352868473323634382552550002931330560155937791678141753358820125732217195630499482327673492863621195016698711320139366542127398009042168749055109561928914196841153409497692735917226246206600677270986984047939042368611977016123686380188438812040648189690246289058963687735775501891063059943765837713956496760677482130817565562087156001780080373743604776229245320176734224765477688287012940189805084336665256675333208464492161279184418769834116992991218820851052820565601692929553384629669851004409467614290492416252926892048125549345869664772641691608426413827060741709016114954295527484631080626089509897321181198793743152784364657828602501654544768224835768639460977598597017329796610954463440005445092345800971844328999828833629558100173052030101862480204679924718982212494116557010394783825710035262034891280962314537028270823636800709688285553246795231752907800800495755220872814442651858607562560484964318564176220361881169737597141107742164553913496690002087633633430519632311083902275538576127038609053424782381287459847312716247278377941252959522151944541210299097126079181923856258288412492370328608836246740400139565283962805430005258645421201216617171992032841732301772987359975359112966275330756711014576568152881858044458535372079678024990716252153774339490707681573154622145038427393717088161584826062704562185809067937875504891266628754186706541422941134220628761697298911190761112667361897170017965683736515357330720442272373804093552755271634897913627352361952884046023172860437140515080983644581183236272821608415017495527159637263734845462288783075158512090644939949023558770104398707841892928982987025699690675688824971957011232262499438083863232858727846563110742765007532492537643901060501536639485361469874524254774636878532158323575098089950478213526375534199393988679314377626851651743560304194002580987574786088865532005380720825247005788613717547784712634914420786816221172737313855994199558144552791238236758533081462342754516831219116578949309408236168031676561887328688681154904253951112095944359241540838612313322371540427884397668927956950461299455265679201138452376603238452450123720091535204369634172631344744494053574472798963393535326757702760544490876097122761455795430428425545326697859043990556358122599987871221488526602297997868587132899922564310614416362649317963690063425705516254301909589098975036058267926939662105475043122964400942190521549606703571766909536530044974252527464016981722176760884381483595679940151405278635078765835831319828641411729158214698717686048888100827663769962551094677769447232870636646182840545053516958653238984064998906895511848637296598502662895841917799809735501905631703333174060328640442820471539633585697659274071416598819231648469266029421417646862262756923326072742147780564908530795526910687880565415954772300079151755765926462526648598618603223756993854789116797981576183311273466879236541457623643767094824397017031236209093187750406982632390499024573237552991276272128835915858943664312980651285953411163725425157465295275680271794322818288206257267905110096055096097491158150926120676580618698214750692300872329911196520596724562400828087858117405370983123088450241193775244944229026922481066392856729398069171349311441737130870667043630833692294871857493872741168124283587557554925607377417967089782670623554005424795615933433169501592751141220768589758446596378391345629429142524361755798373581140970702426989714297791499043143702455331831137086796426836210975786933135663777869723767674911592439841464347183867676733535752721091423372765169118927187614783109657868957273955719713439074728255786606175387502412537502767097902258643716690375579032277219027749150080957794624189717932807451908646710519064469187200300578057029421425684315622494139713703609596429150828360072453276692837804405056696698709252552805884041546968695062081635914180017551872008804947659873099346806278425262034091354594235210322022280161513017628783793204715957073770522256994375455726128342717980901416953331285791272900518084063925551278377334332616230118635733240502937230860945907378458460000897986690271098917254780790217464105717057468790391295567459266975791728258765362987596841424874890236934443611772042758529788898037848660099046946164200241141143234114889386277821878087004260787454128089175768859492630501497776175613287676376994341170365540099477106712717652729005041036916701465297803076851489441242728437147192477215775799689811527369047111556090075046456785737630946160421538639735469473325616309414962909912849483465315202393934445456225478144076036379732099306653967582774459848435198161312392620789290477431316626207152707552731098785155838599445451603053108100590165400987567803784302313798689661041190265388934927428189382193089337243522064698931558060419413055592460618246318894595551646369694040659465438987480940678470965875803587036179371036303102278787522187218707324390556361189720646510018926594316216699285371225664242686565087713568816966265894189019723343156261188594085176956848052216601794386432091220179013094731745071959676791941150571972508056435580506757510237006268677274303761736537752455432905119737237620400940922582233883240609315172376259989090658171712715323437602615700392275427424870338980684907184304487609501253298402103117111570177533902746004939656708510101301540930079020542800321740944687828637815176172410589276993338199485767601619305372301551631674647067770676404194028889851146991190651543253385124372274137512635604372429612174187036094850938136919552051728096024082603164840483370640793947181964022656424355987332202523797356042255769247045387108665634745355810672524987721776222575281100103213531791135244152849135857595620225078071557435789881424430083480248664638231980982901818523818066525846116365458857392356321728230632834247787980572525906131922686773676766304713933165766569244467873464587426211947438592952479468512909446170981755050493822417620408911292746272195388068288781607449507062863529984821894742649507959838436707142575985000843835166426673741637434288960725175820991095369443561134487797610746036258632029135695439343402581128818249314310007075175703210254671108752693476788785676595696206429638147002345724981058282493119951221273598512125646665107986811137889983831340416706286083750281361182799422600842444023404030497834942149514473260063846482896874220960022444335578862920722781157486809919942908552728017618659034141687655424758696906760068946864905667396195668903224339237723099687684957598376624029832240198545770069750312693857704960809936750473385601519532437740461819566989734949822332970722058635292509864974100075029846698864970760129645974662364821066066521179248490239274586514147436561535938585481693780660776915373899758813461795848443094937941630184872264892611164218052481908061891087680335483482494682008231873809701704029376019246265683668377412246156026586705928847066145286172932724953792615705302919438877340166202152355262718853097476805084805110855509303801178946504966074903470699063018981503557208087918158273121466164629278265736198672834073029162886862938071478877753064495919446992664695402275526954284094482555813987432111152168045355718540616630271981342909360401361183755577741668544375851969232036996529173279846272786843088141899910770677140882030370973982747032407058227268958310187806312431034354163505904130018999041448799648444743444319587367837918046015885325214300123860700616907814464437625128482062389812800732752225838213445347246821513567752178108219956768227244320841772563308961849522612878917273091410300971005689428201542051594507731945904338193606313721589241954975966638474710917780342224794656162839256480635520328669784165961750907807388707288850812211161785983783469863142934974326593094793122945520115975722100416180398053442374149327462474281210063484591398107930891591200499017625208341052716045714795872879592682097254508707335610950319157700428760637127208492857227758940784299636279208069849716955725314498123205904388364008128216771452295648502387870276966287459068356850591751374310765940376532092363005888660221655765170295373603336941864349837037564697596015027137710498820296247448916785560711176485880628429643080282970102096729487518771275885313200441340061733536766685061158278527968796505985185408997981778452622136983090916552208225324221680736610945932930082837163294599445639106846739181315444332842422104934025362191728937280559310645770652634690185298432578676719592366500041533452451122997412663294187034027669796969264468426796792620248865633867854433663433834598742497257837113253683884359368411240595237946612779095236638357896197400276607326471963919695029729448938753710532721791219167132954712222682021125951880335394002152463476318145711123231222835345557594252805567706488361041103361736374207618858787763458911585584332448107014507739677485584317963540834209435244477617206188315480900381733392846809153099361601539957106497516003709357932571109444821343458111817124241972674755524812773782873381044967181053787664531177713112047950418485313582517952805401286219286093928235994546850469291649784467851777134938950173855583691194417465587010894365412470185046527374496555071460481561454654794307500806440842921398255248015986766131731208052906249178271148383335642067577415555836229979719890653494445721688397112834695925876487656517391463363217922466254750177662293861511176579517691591715535500821331644900612685197253116325591406393838422032919737366064876880664593005959291415815749391279771884218765284068220523188286372224210051525852315827394648592090472417265724072563230608468418917640267973297310905427245506792886575602582701375186372566748938650781846173006908171670765005171462010163196274956901652891755648936820634958834575554736356795869950428002599100869649027210917506286388767025081826635590188326723821760018032344858081038616387417735389212444509055956798753757184374926233925708323704386419703390000876500272125729477762941453759422840406384425333299892290241447686729967731624506152908114992240963166012579875997047007487790941758260641522721091325043616187472377778323111385639681069964836376536125661923695709578023392533805296011180845749487225655451864945478799614646491785460721468860688832372031194387251589058366677839632418006605765191487314597293498225228475768615563264053146341536261171406496837291305874946945032386784747288709838427287492389011360931654529921763729250535428819831286737536622316378209762663714531694269347404668022802039142455398376464465729451068636581475938902125619040906234040672366773899287656779037270149454726464634862281471088801381594235328271854886151998321387088112035193635915036332146789045296640079972654738769094733122419064472352147241543721451657226881011266943616125989996238255554927313556183685616054813645267107921971554667967516371892232908891204053812208717656028200256775343824908096871648724007310773226645226159700305862199380459714802402911367767892434943323980118698745040768563969680116179583231817182709148009927684591969082824016513746351840795146577976553529417461498198414805922701052965361783475478473289135638615899360374333417406979396701763190458834461040883523050005784960477089400644650183770570652868256946940598833308935372374714075399141254598935174441421100900153271237668330905437532940489156402268850205281802389662087097660776579824275463654273302630037271465586716785117252020347140742312314261159460193741733133194342091511848189603897822952183350264588441454363969007686622203869952455851885103139297521549855769983335177516268966350464919968969610721655719685978647937969082371306299539541222643791678870120949269816081732223031546802183176499910236247007335607434101790553479684427958447629847048275012592588318619411637643273006713335499417138047194283853114062713356099483479804083007021275679173297320395238670789885645513457019067478890111008613114584506855891259988307309610167494842446025849861323009216275420423400439759271799429249471120264802887514234887295521709472126960754852389130674251805900474979343538616725385711241548364029980267479572224629872473719060356304305121472926492045417052545840589035196058408916800307005902524680530015495818803210399769426407166112764441109179649614946131209250958277135185382838334069962459192292224497052810087747566748936106936561383131545329220432500450454715290667858009688363687833824446208381857740198601487702984381013933596717751786363433390038373394397562636696485701419181562669670905376930207206557317150125638155648406696152035308867441993288235311049068709793197255690101036585145303408754037425386778724782251996520773812663370952146223094271938128932049197197917461620696250530609681775816852441543063510367442309060305018115479119339026549268707668721170953249461695070404809465347711524395871253401540075590070692338216461640216561005226476233918869712067199612716154711548073826635989684191217742604857558203632932888478983502648108655522259897296500222295040262005591125023060200777209480627418666041879899142702432005068138900165183179284238112959867306318408090655811691799298575659932870805522546893537436437544896410686800784489568247974169004683371294684011857783180518698940334968733405883212333913555009027881281813986936177845679320509918028000331914642231734086719046692494557780032852707035700131441622270059801988773606621916719941537861525110170922376234098319880388530350704743083928190583026790667169174150552360816868208800334901248818765283545172925046237116604716169926183879831342681520229737814636440407677773115939599079221793084757830143373182028702416784135110025821486862612848682817167459686876371819402949909712235074032692826733608814595827917135226268938035727079601040710405418599380482212241930453828430179053407753387151408866023499892459965668112424875759186971488247218862077560135796410714369534252564517067740992264212144549145854559371416326806117296079494429531519836869793260671009919483137596910943690034823559060558160158974828108123949582250599038845633082680662264484155583224407296242642215532766033225071755671376031843198634180803076477132524048923898104821305440958908846504051575349227909306433376026928285037442550485182344105553658780542510987077917119889854396654828724145776405919595663986231778883805199048239815922071556165886965219851261728840817191121662428818030331366719854580678882379325656655323836305561569530768387907826508864196047651987710843195617828965091853201696309146808544579082496528053699158076242232975870502274868410971463785087339441766474880946183504572337673102171869731043875701162195583962000922600078646752718090670569487513550341060052795739050983518946326971847993112396958525367177623732710498638857000623775925147039596933902675471489380210557886853504310730760099199719443308795933817918650310119677168575062213076763109246751359596970563334417199707901164261376630706466443290036927339899862631757472136407173184527969961317927074796362710005373329020063543252858387870456993871950981958848536430299321718848292640840652770716181383584373658175265721941924243269869756021481075421194740958859111831988919156337130872000139967238917376386650091898674974949522592282688947910964645151880198510453285976727820531543258032128721383908802866360955919414975331804800751030479164729292452539017299206718795006057143137628750561955127321654059944535618999952968634928079916370848790756796070432853909382335558993214739081052248287114766770831119467474615516416704197982885738263917555736288461139878438786173366243607852997214927026583515292106273894146266105729621243262380657625213360449612853029600532627779544701924887327323703365331342432088404697135125051485936271076047611664001342296199288615979215155621324994919383048527019147330012550585715248556580630550814762969081413272467871406580762762913561214766468877836087115214755155876904601884572644524769833790687564901257335652601796194751546389547173693380007351040358963686034592409539415865110688639322089790528355174675087175418390022577244573639894672283376131484366383310627062289461953305688590035614785784815102414720523608140086509942923546034373401133628444862133368328085965939619027604041206143369935303845262450762406850535294688239013872647518404964450841837218240837291550629964898287425704464424968125410984510738819347962142956907549991954229077235783400887006087652190539477858444917695750749427750398625108841858447160818069886913287789487778146221569307516175080362881177129657034051250370670381504211629345482842073492770239508918791242204191573138994211789006433630479142889819627752502876208878897290055883521468208675055198286541743156555983163606101642676806670191622187528966243795137782309513789607138124814863132642581618197590883908282922274697982941843796152894874092921034896546305619612235309053701904790202644892481352792721108048776579470704839756192019819951667079821086437076774156757221416667381555997175707668992430593564958140206895709781650898180402753292146976300967768918372970541768494753580479581258484601468255797925661359033969903746520047050188283662713957526604404918236693194278871415745652813477479930356323859516491991544086720959372949408324030354447320652140390223055990084161173573244792754347750898705750795560694499839733214665763648671830205349190061981603677496190440263393450482950318899951259907329166076198578380355549878600082239406323545076770982025844153112342439563232552124792064192072776950593110314738129313015795904265067288783048266136360549663026276255095107306497884341077383372076922740745790585009222489664842175692232543927744781312203490596933879418956831424623128840616022369766953598780196861914634706669639653888863313333560683367558180073051725500771845041593430282636398902767480324261269506542503134663609625844830655088707379487253462619336261889206466136580585019997280137016756387706221214643756024856289554521196950538897789929821358551400455265179744869230028535480374887427641581957573558605064118671178466053993723021948652699935347147848765826662930442743312516494611880441749231322137033038242714525399234393744298048527824698526475883706950322626522256040676201426789974784087705943667399528701709932351275978864615021468983365621583431626170195584634909229402164719504241443419895088081532930068115676732591495843347138617469060544613009921979664524247263296562698073117117076735456466360762939663399951195666316268627073658161540846400750516248978393535933517518977275919499162313836159383028972290639850034615928555021745348364316001537544089527568328857372738262022158664597284028692644664959765210153329528677345961629532325247750475478095026434123324580765049922409885915484415162753102712165443836168460041427604040493292353673880641802885076208271110536599565356412398060426429238135813342225531286604191214764642595562563240326944390917049388926859838190024422137875594279497324505721740632020942785706607668490251789689880712026108314057777859309344426799594634841875206610954306273022972065687796309999895454547986831918362211329922933696622601313854329163221906630166909453228681140218784315402622253751155208530916702196985973039983604012268725627211881326487323415168915429592323960025491667092261069822997308509412898444597358462472861435551874244287181426200161178849913788091773244061344933013789411086964629128666838932373805681337007817871864083441189353315560401556276594397122939954281547427276063120398337007680250290119221694478025973064859999917668691956681497250188413065977710013879360202600104577718492904106957687816145155672069079156673049110814166597634193452203035118864850030473627026901290870117503912106813688191532947927651217419865232300359066081902708956744254442721002469421028078647507496105625106749219680235168254752849620876177170571703496852267664298028424371957582986781758499079512464007271806322390343621405835974422705148781069061553102349966017327928476558008685229982763770338504133098977154646963315702601597394545297559019366677627350590650025788909083351885203988571712248659757042728896761717086306965150163183505443951564887909326239707499234812182566758852753039093292661615389705384318250611225078699323707722988595814748689134469105314331719978276391606567148617743265153241220379785991854733984919532163314658064646490974218292982928569710796384302169552980785000495100338512948726959554157837688595788601520069356100983327957054181155052044656683713116713618939332472496386886542118000302594139665317619271615228025887859951292325411159159027481068920674071723464585244191270400582883119735088514378590365708654348650253363523136356539770553904428230437674469780836360101223382298478638361440794765329977928114773188276677104131891445960894896414623141637590835977902615734861264442809137734746763887540188906848080379687663816212805081489318720239345391246128206044629083457936680194393188277779610434621991584839017445853797655493236665831126537634064222116920370860793977313299617296185405205411640396747333800397593690822895866996902617896318914332069624868290576193479156397095144038898333431168673286867048735786975135060549098794347228953599293256652043886669446388576900525351223544051557370016887859581775924143857620245481759529827930967645025755148940346012228333266128802263433375615820946526400656715678952526624244817053089028594307250285557931930945337975128848299817298840541174411154429808378009712059873143436592841643447630690127185361183557760392250292860139077445001299102073835106831612923350145810563218653263200193205571619177849804320062217702211395190957205511956113233820319489429774653455456563678528755080328460501924213742788628552121443825971909949435057866004033677941256351018297759761138761285546842760564442607100973306959200754233932421280611150062138104043706037691481324797235226034900392060686902332483195814926320889118736833236383939434523038356316757712880118075794249171307821135022656167444211660574170475297331885102324275649632102247092250943834593506868264115818186955740889916327014291781137413295892214779055832435596029956811121700303998121753196930510539656346751699141287229821325097313500973985876841827212550712843625833507083893487818536369903473567588296919672330188938879508257317278776647411397750090961052199327893510468784012783412210299983102258699117915809817927862404167111161709758045506793964342899753508783820823061514309894234753799791465286164055142873963669133743450019559869137177499429962517988299766554388334830770003018684287976461164376629261204908119366052451964771746083866390680096545210241085991704751490385925539200693887612332647102630070288917892355949416516523189914697833208803171800823948142169626593877334340216841070006360072163082257064533885540248480614134144442346743841322786672519551609366055213661821635872215720708872628412625853917378298358169357762462965500337974717559010426533696715167074118362186271941587853397875997268815439472632308722798043289825327352395109098626527084702063297806817656177343147965270725099633023511627815377183250744071410630253200752187802008028638934079428734933820239886663801717527354792633912266372773012471621310204346241411365325263389248806801060318436014087456018027969617913743082090681517621926808190212758191059513389394176793947895841991510357454278792222151075179774502389087051079443965974633082474110327964985381690465600581235430369400215431112116207821204784510540029974815562339113553746985832855384763127778941634037061366862566596288171577020835836789346954409880686743804498659130983392531554425412096114758291308981403012043202112562900121204648744624465921452795793056577019375947888977211261307415709036099405121990044510308876894524019101971328713378869634650481337318849899824102044771139028404749942053173269709091939038788211033176245628025316682031843754392774865362736189816931116010708888976570682073967339017595861276109242829329041519594352449506817901449262580862580678128755547251311585054041423477612418947969520149484187848600515083897320674625686717422964686744434481668860128779274132354130006075725192654257029530330022278079451438278918404799851647639950411867988559106749087204726224454893877679173204009251945901271680393801291777276681591020316897275374283723301635740933336934298116778446618133736326056880119921531143591604616508697437015396638849571234471438985016842624478562219982002954485797160964905944876139023111465181044317042645376637462841697453405501999480581674809761443882405326576822770008141484909315234691734349266112511790668835902433562492973273208125972840268640220418342182709815455804757529990137683632065527030636168164126005573012044416114594226896168885579797324479372442202338902529474357112316248619887304178121985582358452782676822344354750579746009927496757837862760257022698126412189073136707293244405231628589984721088932303076106907349342720366741539217602226139370689291214807225850943958827537278041706603851622661315280825926078997591568193452652598543803504102345761263658640967133226524111739056492104393984169093070294324291338525514819610728047628832386501421937415407941711957107970113400169889695099874601046062702056891660991143296584856864980801369301152187805845294192688859011859892518505709721238098314195608549351452731915741719979846366747979837706776471324335537030715586546035105933842374307766412016448335289811529512233620695608782806624787408862373882032160817964904630542731443357420928497745939629865184365270256821084591408242641040052142977231859170892840245904951566994243822380921741657083326481997394192233937991280037447005296787898784721195968041364606744538571710842913078888827833162331029660319271586233500754856168025779227149435652485865778743430246082339755985385273731470380690937255906359739607733388089903962168020146196139849538124949185929336169967986141186143976654241311946557238388765483142858221271051018528172278166226752733076634592997442660419607724485736761361125725481163836503982342229239334758796169954195622009370218594538091414510844606129654039825919337223772570645409387772392409456178797269753149103638734195114697883353935569698079252371375635960614843229388656724683174272865111956589376576685437977115540290996861046909182533853323684182418603797883974654439371107753969458811632434628387359748999887712241140180786849749857702034340839427725345207109565056305049737378085962369144946688088571081421285384085898772563586644976692124615637770170853560105780237066837745912691446715771621514956136588515615027602194828126425570464855513497724084601597108169599801242913271586435462757370383983262064551104986445905475937403337269160476102150679468151783257347332468994049676564166874380409850199910718506418655006483594426224661067065719810813943050823995354176364046393026167660432144501031762386478543220470361580985889827633139807761099772245580251794144342422441306943405396402937970313440380120217654106897408269660077864630624777005336318464833992640620915058536218310145567581248112359349112427774319607062696505875128537845970297909288100799171671853841940113972373911054133556424295212444446499967096360886996205573531217321578624333485622500462835026128816990538794007703114729362430419860777566110288827047879464316980397226149923603291493394053482599844022471293484031166085518819343317059858545338976761854021260465686679222136503490953533442610799672032585270815744028071190283431084654121054229250759702905292854647127337166541965295993989193686576598525778160010213829076732113413423915870812718562588188161754127880965585332465063807948976571155948313864378160278550542564089318883091160653737272545225427543695394634970393316390946627520571388418151943847443968996106906573857198719827590531125274420406760388014266594632452517890418033598013550315223493833350723134840324740550171269872521177526806149586749436705426563473243835185480035221843419361073381769183240014600459899310535901622565927141241729675246681561513393983071576981520695015423907553258859644413211451161321602179630372333318203648701143617579810754215931145917306953165931838396788511396143951697138586331005897977177974962602063603690105962671820803870438271502258680551195073636399065540190597353774406004597941037327221674087337488247117009717091951714927299937139260303523328879743089591504431466927377457291333712196969999926648827810475367142643791644438826543603883767675528761157795686498405062497257792436786240712143624950344126401435779196619614136207302006770670851264228803389666056286837455137360194749503567515040008764263995952310749685990860659527745424103931135989181912864970295881171942491489569385771103317042585643851865813395763498319700602505566993460781839497169035906452135553235570200418701716798216611513246176444938346135072076737118706467367950580044289323056086657723139925031828404590657322296498710182892370854550950232463878749834544611133645893688815340159255796605712558862326294149919504350531641858056677707978010919222754995028636555670081322836686632227020663364784658631280943006127983178735134391823730550302395870219444977685302575905604787320257884037697189961748104921919712798835600610911772593758412379132869803752663523919452135188973597896102340536338025082012207168850445740103223420878943530221499415093280201511001647169604403540526909947819113823480716623015658413584540679671063352681394767867313754818821517684375072379694544762200939499868376513683282809980535597580717569944333420358655265105584331094884371849077722727387601980189030593650988271953097409611026856545106163388753603527724249084585118213352873457751428518868184415693625067398532339677982350335515231924217564098361824195635157080657973681927727253118979638414515508090711010517156865826065631396733806263389112108613304354658402917483344256817261246426264020669819969751064589603916525347722198207274553783928107325749907345061400072566632258682417172014601106515868631837082401622371851687811491668596132643150656334381067543112994890211173055373633700850467154304080145854338880524630786502296434499968269059205326653117591593075715566631687410174294801037379612731383407567304427922567417635698852670929750184086239869971100588995536895521646100191992787855253528508883988058055779914755067732225952618728621606575047050065018782148742527629367337590352231263057176073173852936306127670681870272365591684043548837153345666527334718793931449636032794956287711891985952776397258356717024130871673090374554395354427082517520894143701536698300030784743324476345415769378810237299066409099136791716216441902190032490109594618611794306553172962333683872783358710376118647605192364385896586221559548863266642473561650146649070792872504646199688788843110524562124176835795675177083696452690412640414630863885834622303710023613747457877453681533714215743995740431888114828964202215905039989939012000043370906088280776617978505413905468140930096499750973838863866140093935245164833305696833207625113130392631720157762911098835129102387201279090997099767329815617362231996564489982564261100992202724214845033233478215301706867599294870323197806289743480304708204697763048887577373176586530442938516316013486711099213422717043163604633575964901278639083034022645860827872109732488344119935726364600905578057005609199078220249711531934846234031513661162830284250761819659530212834273983493852264055312400943014873997937606770468877745865029208976970631174040522115982404043558832374435079320185349304584397781996076229097768770395494677685577040367916376597653688601371077588968401365417169212928814699438102736370782414815900407631149877243667051332140200897999202992344903791407137356459111982086588414924907448915315464766327338517933805419382190147902040689125438455597259148948865286010783550965126842872466609329852832705754422668866491810108773989936896757195762635540337701722903329638070135670074166178299526182054099920584889795025433777622374702006918798365794152577170646523491211505462181618711245215468986598216289908867087937137646431865846392663792902852826864305301104817779061522637588074725312423331717556562554057142738135336860371246044318544538997389567425218144269994322176520211357671912961900341752135045122069583620561872247674061226483090394990017630433710856707653873494020918381710830887872409488428366504344409118176313600143326131109669189392534991143974110951463004535594413391664604072718041012940816240182895559725199597179983038870838962476496587218992812531552302035111733308110492299638422706842027990844662501141342330631706524895178512060713606538773500104187427073753961343161928269236927678582327271033012673622271180254533531187350474074076606481734341569899452809731814649115236430066492634310149383499947497778944691974931105951072772503479865475400025840951966588607622917358615348815880360520639709773479740682559776680597981124667108818826898152505622255151487928346917794129711403737828866767841205589032408017292543784081170105270768090421801624510532781464612728869431588591971533320613540276933182658288577963553374847916333803474813603960548855524998042851939246344974658050731674678631521571612482051241790448211019749676019307939067817123222302434710385717624292666292043274050489749306643583694486819522889316298960753209485137396795968113975407510551996942438863326715114026832825599238412073158381518696016919435867384665400000339177880502945156400511564883759511228528785224846486231075144640610869764494601922752729076261991478847800008080503637495761576156943842411464127034678511871079462562938471316162306876986173683665286592775797845673407098510715017423566312132967528341990842740450878331622922173876733378590528255375888486258988661661733633639423543494810251268503672664392781552202547475260623674900122816907884584207094958901662634773784174838486081692992938130631901682952757783130878513678202876375475658033869586922951888205568300443418749893795062910248401917232498213112662409249265512611955716554061224579091549472576606856506030638042067201933816065211561911638310983517910177497118728869231501776759594202569842645249194721928590073410548089035658133374798745836789630202162634077811520729525421928292555111244249066379331315432030984980637102486542762335253152642871158998935679663141018054287486370286091722267033213587821548623775456530050933235758921422555409085465839181451811714698165328927787004909362618989753202444237842748439284092865303765983251026361753334984718428756324454970981099956924692106896928131627105267713073171959090997523211757626938737636056036084918703279739997863200817707843024189999401746856392798645302049314432716402838140519138373291830354485773226884087742464061053160945232969425940528903262981647222194089132651002075448631299846177780248514986203159550053942536076778068995451039968616539084103757932797583661292568111606315380342815994881694300020828461627432386514219809037461886873235685106210975010154873020052537081085722003437194937834106212753374778286705136572838898009635446467870027180358573889372208404708984363161505479739583924555350170658161615855456435768525022525423258925513682149832304200047690651928254259879063366035275296509258297137849091490064869181215702131172658403279176802350875624294371845560472558123890687071380873765986254711001335681308921254130923394030563736960470997960534812172930104543869002561336203219187248647808718015189783827962781769981962319101666020454387313877591387239792919741260146581025753185035793664995770221015143961893846637279640177921700565678970588236132194139564541844646529732699966639505489737090784893587521998000853479630204297474500828933552005876126816433104929588006455699493390567980158844307595181215327895223629277699981289068065224466189525870921581631074513273183123851010678703371652226663584625156006520961979187827880435790504315309998466014828176539900637947865468723348038913305227620126518618623970883077490242578836048100765597776807066177385359357108172008997397581362019312663807025147826835945758186147425945345459055287690135758870511631302989841337742806608970500278156636376754060330578897442941030689788723813810748020379207707920179517903840632255662705952455843027692795193344478739824522246019527383659394784477173116355079919540555552444368843600700661059608478425203164809077052750174958796422837287169100647311444552714176901017852238139232518551019398527573534389777031035357503356163531282691793716561910300949253795187993030436180712156157612955678950774455811185087982203760690392585784993106290631069264765835146835950919188290376142133334542784863847883958467860177070908977282217571517107380462372617705284361084844183478914011173667161451910363876652121576316662121326483984403192309550738654002084814739044211144026004034342265705953160909837947289978312248384152124475623577156841051262337292859795574940588416312117361235499305917705345472891094648754848634969680716877605965701349186296781921222316496337667084577154886084014176369084483827829576763170468481127114417645254301708878941001344728998196985314313663188949655292887448741573675944298191854450594002405221882401133100931752493024625160137581683426314749856661205318268352799597740536290593852002626026123041731051108484254030444146773354842679201449278876609449113038817496518908084129285894055754519243886239791610402350101810479336357587324447187150528650094395715815632810935493957995841206460390638514540450818585872751193525578708179929867721251534829794493628345696333869888408546930572463156457854797217548736521691721678847654994899871908849261060513142129912738626903534048800579526661778344798507898434963547183674109102907851873582542096412450031183186959429988236608443053105140152117030140693158065873126573145880386546833002400748165577751854571051127289433210952563503201649961347944528937790547960120382968790250019589970345413337257889458886368082770796527029517249060407253576885323572542997921968531105490386551680645113084862769605173086843484206484901813352749736348835894416779820098067044216927376308470841934746256765623883815968767387345870148202879926614316222210423669159594948937963247401311649630215746510467780968572047385283045850387938680649164182966091824106818486398996723762541827986876180835101181952161656397045053168216611722367817833337326439712482422170007388868244479120092122743976480115835409654541419487493824282148948661473993868429422731352327043508233381434345409191265968957994869979878749731974260698446731305323457350204875264315220289039823491821911645008698872863850620497022714466842348179288433883906955720453339553160696422642502246328558645836126399357713949129926445534380306046365517793317967442347875819494790518024963181726175861929010524978989832941710078115519996117390484278131534648456864716927022449683654692742241028117638359394290223037126866996361349764961399710196859926873621177062654693273579935836953761309117249697433359434853126950617121082867376590478526320910740211010604962590378702834669309078853427756071063030240487991274999917066073634252527251051634082993452761768676862270685569305132366077659372848226162685492884107760123965490241033138261858433313145297166655843080549342079579259808738327124879644561573086713906244507333160211674732754109407169820589032786805653989444947596792886014553730879054959864868360806856325000664546902484698169122210732554714071477924126979089886844093872965305616374171586614889026988584144876896857508942246919109652275780238142146436117904479045905418227699434523275486002759730612168543877128931750623284527180207622555322200097785781104617471312314942210155608728007027139621667754919955889334063649867846865871657743363272058879741688938497907571486479748826167952979451063188052279228436508508708868651913044804726128095729665625161274584303652404320760651248277216663928426486520168573343356741561330712662102709223087272830206036383161469355673493637210565985121572003309724980077320854562374566004581415614178850222725841620649681598127426093239969899929755107600336513438144168296755724627168787076693635530900673439157741382049128246172404994282516042322377294863033452714008270222431262822895201438264401852376027159362893643847211564668505157406700984683699555084718664262401827756659084385778606311913944271582786362263001862225132377742941714917208427162847264651371958184512024582500369349151995986474612782759822038413421613622624038499905666167095035334440856781774774169212025505325930240673315113175525673748864037262150293379259216666746935201452961771120939856367466357173094781539035844499505704354525307489103657865592834342461979200619064719963058610059729502649889406834157497662362182922505968989239247051796850908300063036959898006434795591653511585988989548778301191113658930404311639938927917252775930588878391802418041355653989242390470905078892862960006743423104316275641159451292330959350974421106534535260750707897039512847756054168153605964662657722178472235131408123276144531702550305484896862717543624277800423290220503887832172840042997545059943564642888165088485493202983865046266917968482992673296299458400892208806132711614991063104257888131798402724842360937429411348152845323132257459052682313043252056362809618962920830233330544882422521416731844419623937056158397076169350251066923117352212413140354661246337347861626101100143782065367781589096938915438611615607547955915526318363940919801903681705283274238718180689415976827458090602079731828200521010195258674645328538045979630754148968963128104925341259592420683996429147082608906774848773769104294066266602988403993036312815275460891943994405792609277714330704253476859856722469594152470695411277733256969929355187857808995676676530284457278450714078735852786622682930455564187293081965455102829302908190659908881917033643528411211009215482327209705563246791277387800806170919641309529990559641872519542499426834701534327084558653330473819872751363730179747251355437681482417916818362850287644881685235998349033815634654674458035231160515983716971801464769535898786655223499640164467266947064047690949604239712885521656377890112832840866380118356382569374533228248105860057792323269494709200419659377413703491632440463291305984431224951484943157358125202629739751135920755367566426951839643229498322272730826981325507097293582522137567237984234495302669253703192859947668822888079259199692394332713145246606457764667640185412132331680924238039107683375713186095353140893747734266766554037421118668488067257578109364537259197733902914604624167262811272462276991475111429188429686347817628200276244907485605688974731667496684112303306590659083469191701018767835181911321444526656792029206765686796607987049516058950900631868467582344159235059417579214487360776990998127843969231094834673175396012446302510369130268900223180804505073236979544914654851372190447642878871642039072033144116129086588316070914941696514885373302924858516986741240078606628208636637180918302712079727295442943380667797810692505528598452471050200444379439099644019362193797556466041551014220247010330724028235709744906677270924234154421550375893206312391792770723495957608376450496250266263176873229658855550327596264545738358940079473233802549620834493392056699319185039662004541416879503730396882091358956024523760680883098926059478712647938114690009947769118612766084008808794837008916866141423956548957901361140688099008822299388200724542938661680339209201306675880232777930635311262017241156140736747321816990468563757541723952753944974110671011543708343904381225646661023528046703902143542023992910686945640746879601536437679681086640121346587294015707777634934558775683671652185165981916642189416750870459791640382683033267098524691024745131509213767933151456781468077067805054329809994574583459864923016748150266208145829696218454792333176597793339049594037824558555674692566060568107043993588059611194673744453437918776189373135224232968426623305497790694676733055118641379268081860755225535952279299507204649187191949053784748532154814764518929620066814178484605460754799409796352411136903194880765814855922212460072365645186366996523409492294814440291173092621586506540705050953768548436434457045302225494850887252265821460612386181422306727152149794097972106347095264445368128706469691377902302212148430608401871168100325641749556847042251027293649331604518230682553878684771065268793234768307377605327167354289600092379791413829167397224222061528544162253486318654280218624372783474093570590362209320415775191496636416730708866103790829476970848076906805478790795251634340928016621114363092956265813755826573158355309483718054102644213407587310993821640282186120079411400673795332875229763676507625249604501797635152410829088943810637130268941843087522983578252473989046779387404474166690424780940810372481869635284002482310920852053191060309937278219652888507740775476529785880707039222962946358263720455957187833126353481672541402976077976294249020772744030767516061624216031511562607152109383917705592734074734708284642060702776346598011169421222310008066308117095299094401117143455315337342565127829739630574190953630715751230721590171289766846468144737448621155320667992451615309492761841293755858605171569976268402393962355596687406852008875714825357352712567515536653359132040852435910353095131775007459581783749477002862310098883610282190421066679462713014152288208357238613885325215880503340009229944292704199427062582386515215056325250496971303774827660743273765854327898836572505362416762515234586296053158960201638139104152507147728096197718441605607575123882309475518974627949945383544505244446988651618088481537446696243484559932766644632306228605337493609818786222049188294907795739256617500152793157424137679116778224352074776841956949898984592007425634095812701600437043811711078975995813678330865686891441291530657083408670013552912573117615168122478126286173221296548494623573064517515324055076393126402484502871927655626341085665780458580451087358947599178213745812113122610474167459483782307645503864723264821388552649108112076693279322530985046996471826525790937000673480613395855687463719159206865607728892255671746302531416760687392288778729582337408036001380648432754503248845427652450581721395609018685560512070140837743368101171728824863414516229760754854680314882099448189909008592350998081245157606848625054181735701502459669642755133540649157713218670307465232729072247899955435008292594587710242482057013415704149280856928757390833538397667943393529209424877493542761749074724779954155093231486309472304898279209825198694705860322677828628833304856196395613019362056358295995290256714017201883994588790810845985663532145550076282926190900058770216516025051688402561162498673803439567494628480967610133612736575354704930303196901609193276564740164066298968934476820843967558848231675948495222025196401414684636114669585595371168873490605536312142381738995459254619810326525818736399611868109717825381366921692213867961313436247878408389772595539886653884097752272441245196855725579575279838474392563475706337648045650059406373442730095054997186585452122639769712549266649590695581625043861749660486349237603193532913879672185196327185588259415114168990314506205931577142519013809175485565207270101581424941540439518109951366247559521509329226462096025565823214292167646451662187796030927557952847010443511459731244895485254152042067686973709693969322000856552487727920107654032138139725049614981537696352643944857565680093105050832893752277370705353216423215228176299644439802733505619958219307420370989990400277096477967772453940524603571730562298057214571089477975632742698538479325954650303360167169746298855296361321827553619773938865341222351883750347510329449926796629784912926389619168217095269012763548221107171209519729833325931703819321689081709436026871107466384245158978084069007476012615812375683587743494644279548522777198997758688138223277320667904386757248946673521352755764177991238898059641263617882171027697480633898504368527838678623538874774027120742861051836502921880320168262077496351608773215715486800019128454501878566740760391522532666482976064925831609679147440854669246393142310920224132903907510282710939430796863700832882613432776517817718226149836152806771376107121908212463151811671160982190446742544323854125455111300966528212844860566147731325910868236932532736428706482323634686736982758534880685028131283764100350045980853664374587358225698753880232923658906070480424381256623889108836096710005353594710223483041705873129015470137610125307197957447516422737552645910460011714119626619805353396679709160329910248157877954759130514138145555489566551111925946756570332378259907158755406721683773277807768207432180342219511707584163222452313227680694537964150848483078665330188262542259399571936524246283638436890140079588688191100592630788530703995926791674867454774552269323621954830482570707792929214983852024792872224682782492421587662288222354270375280217839289147870934095224082810839187202734256783501215575884543081279314969429863439271180711738307968244788660209909803114840623982417058402462404077301896634435323351444072731054518359523010453351347295714749611668444929815758281934942076303186469385042465920357252227855614310488623543517628767848703557594638796300105240553717125562500991275246719798133438255031553733860220655952133100733003212072173906916750059707213397844211530586096566423093653749259127627686235009141822568760130451758582727694852679453073177490986575341331400761322992564624254891234703833917771837136783217105281536341831606689093656052133973113813464452982470325319726576812826878836942003428456417029528650048886874934476759761831758710962408120735948263719531698168176809518550409236274418059151452802386545211301765629552527872160187281341012034411907954778724960466639030967663425934736525910888086392714960207630120969921450525405937522380184874880859643123992648179356619700330619780918468264227569931833384706957888584946798340547360184291418688059497283144052108883756289299463321688971924264515666435757676540823281423749805852011450690791915392300678566978022765866476425745452790240127486881309209348257426174640853394749203254628683586804070108503317192389453484494192177804976879161584423842881944364148549331891395445624652885574203963517549704381650590136503919984900356950389866023709713068383841923237130131948993196171027266104549774741757726625836864499953303567683808306728621027974259841404639979779682813946704402834823264079623841384969582715017511855204611660539533474263103661410966465814478087855890938449899953422719965233008727627162766163456416848490217973490933369165351632903730817105198366936636916636039135911254252426716083532716454943211128114571957417583564714101554731890979698726499570805932747778715325754159761245507397091315182732215532853257733979636738318475546725751231397707564890193100711275845453358458458483590862113674087986549244522196156162542439485012564617818526506714912108346286488102522281410585031671545500218830160097796225782794183553239440909910949456327082808725737670993079585166812331721855227760064821231431908378103961733418547236834606018776988356504289022117603251937922834718022890221734887982536704064433419416112562950045670407778150602517166190950239505335426301615725411745487552507524818733725179981621393433247766339690385804040301127877657573872610791257248252850516021749285172581438833941188049569461036429302273773779702662266744238584383246880313909311534443637341475765989622474488852424671221126124749917031013170900186399618183152114808795591062600315231765871134772296011934879919119864271539964787899038431529627412028617678644816983906244265831483972708153534377899413605333941030105975301479001647140854419886127782826027732316432190596914406718702202802767206536054359597589595201287793255301637377470613842773353001577508666087157475287075154898911463909138419215924935107136520357666342419442349724008115848797931895563446323005521622234092382676596598843572290121109592119927610107690946184272717131552230037386566053648175356439599840490861031984698252607789556852353159718026372921096658408691380423830314157861962505864223531353700819917017282271175164034407801180403334525920663176478870266532116340453293870051274368267799947887598742704263445745847937133606644850572354245614253523253232768809085368107844416080546810943389176137313698291043539712883348180034533988246328196831649590701385433111717575057263097925493358963970276403441049524074006347715531650338228690577803281797815932204490777796316122609792813831939128153275991221373773560916865099009903298275511326041512381245605785958279669767940615487410926081620145929935812584277482695720339633862556810958240088149917065608382560143816593646569042875029285164134454892312666974459515182037070852801486893283867030636921549947330494580964848005307044547424650674285567170904729573518191747822860921805421219702176323567942010090851174085523392002045782660832958159058010981443282062748325288642547637375282834667399116960358485537914708934082861963698197396327270043567677906792125850230963374474084847511491912572123237180872715828880247036320720422022225846223176228238342885851313391924418280669779560619124345895926504017233488236041864442400918216836475810488777693680368189879108542822573844787312881261409659294906740518031737887770577184460302156343133708273826131478952366134074029515943362376059325560131527680567667390331055964634362300211239118785467533890951802046780174650582868863080977576174621792522215964227109871939280823502856344321797960322070971990591613593187642686271704306640200386086696486625389971630102544257779843037766357873905815763587406311057041867027366990169060940140228278767903900531578191148324187317412342367079688053243644459286988581878662447365573635443778639895082010704555049557954662065979410518902203788508751987045947687366847999056580942241644649746910842364298297478012787803498913157542407273021105989409789675966313739668282998810863448719061909863872926456640401398199395195244966280697415980570247239198012273890641560206154890874700686684150419082559164787441186025356979949529530243314392184485179270254841127772380808582898686089229546563900861490165433221737920013667563708156406416930232900084543323366249492907551763635639625988562461541688789086323390233925545068366690787375977587531979896479127185058429472438470808846301164233149523553389474051667770436264136716887327990038760239045549990129596970149577327498327559709984848740828134935733899168346250854664668274716242739903500690474200213206383057930405088350778562273128089842651339497555314860580980708341297794065190169073515526098372894455669735599800561055212897953003755756496601473721148580178777416505393102211397456135259633083105261204898282633771813398740556219162900262847723665205772358900497296131278214063816271527885421600461698077708515823585781196724794102273969053607453449334005297416210581838094417507893235004059319017976122365635165580782843100335361103310079124452470256382261153306511838423606666972629734339428030221448294256853247055303695027119561044433163657394452551080385539116463396469310169283941712717638717155683612989097006518752234035647245481388458443884002039664029002203292030621994417220542191892185940698247404740924455188917383901765262503140685072735807594419051637815146278997762021738630391777755204496688813079580097210484723431822432581650238248344692007805215864292460532830297742698308847111360681609672367420121170380793802142610695463628459782950254237126529474010160363838247688303248935103842468321057083343411088539756602614126755169584228096214499410769624905557875641554779195580276630645066285970211509842898266543074556617233587673019762668255677183796419759252774966514320084144534363725137593796602923261724064588620623184361833996137792439387252656823604735435802179104060813450281558334275653883025915252860508207726131539903509322751163083686669691419253718973338565885345157234403395610399707617786209819363851887273114118750096655325474116454323842037563697375304794268881077750529266303208763902538773983557044284211384679576961228933686965084255999046380383153681562109879340302882399284326064277973049873774808098741732711667079472710766522840129954852790313724112827244728173825904306145063209478096095309083306799452811923777121498325144068282270716293311273299204120015932723027393371667234950187628670636324259499774160927556130957324973858559719150324749108419383009858709685706407191400699563430066912404880204191536739490975626022494048921528256043382485844076351446445527532823881287747922077062598497492416233390282164195160378726376503989188251673974646206149969922274133633405848011278376961002779571057681874414944420277313418149132897786251397693972028024952031187468449647379229691640430251349197748545160711697803604754384935837681052973130483147717239747613486074626434414165811113155125782025082027051316804585653246919633693046010344755075092228625694215672148686177277659092403434575932459059979265096944956882948305429562498551713903704060522787178933596930594852632441695869814528770242140376715684998541551280099977787268878047376922859727772792629782192121485179231411621781606915252272354317320690954868598918097272358491488531135364930237308874376224755750954951639630388984580241723575631812204462903965354820660342267275220593142019837770381600547172559196332497700034681708053061948288408088886415191571378193584492297989887521658246061567978443957533150023014564368179522685984794190908866177654230366882288802218977280107340280251831546292812786881229772922085874031285528320039747618135386429606865447110535656900346284906041575676967129782918817465391837883976573971340226888253315642248845016992301361684158583412760577865004392708768755607035021961806780123632102749314732081602020330035444399284782498749919912444984303466854140519686508475435809992038466492972912694108661248163399701414332996989203357276444778429168660961093876050718555003686238348587718057959286857727482848801686368949475867839265377909082706000534154974815215861837876186044582399065712045765575294555946477935738975523797966447638401499893269983452852559822737563646572720456358647540653860228616074403388744446142372599504240340771240958198259930920380210164975808930486263718611173412299637117710229157876438541988561087979854120089979600009285909503214355090768691140657260796479308857078102676885369864637878600650734950514929114664566711002318112012451621227602796891525026145924179163063101542150545369140894449354707512272085474553765726312226430472715669429854708697600059464654937506651279830373069269450707166792154817867690005738449741169692961559950417869440500020252763911310970205037440497912575744831844951482716354975370780673322360259223338601783701387688850563254056918627978193433908492294065291908872534442686465074384730264916548162197179744254282553465146938575366399617571887951040902548380150223829213673390717668247879352938088959678159191367771321942604664816001826327005409224166312527085102303465361214878233401641874620885568140590161626616898446036558267283661132587105123247232787233653566023877628221465239814628913023181391327992197218458718450730252869553834175076314594105636212771000065481105456331217828775630612258877096883862711013970547732406214626330386662896398593560877836555328074779875588467692713927019344763813623263892349898866380231903313387972334713347735961590152087210092472701531390061198340315522597914851342217114722362317770604401996578403493203378489836558220740691930682567072961935279027429518064050664353119325461789159344737959001024543114251421798854372711773651426197145372620480212907048520900632534937640460731926569177607636250615042814923501999944168296605553356496920120939090552148051471697354821064951948275367645175887052951940663890624894093584194950803074519069952661955958044843187923147586588696506223340002759091941801563002088653936406374109166560162573822563962595519430135917215846929306440332231667713638385748154714553732119213627558408016060641493501130695784273547378964069090070362663356503632660746121966008180124934760859510999924997215372219169590510599025377016256298727981614131539739389955366526654454946329960873864552888039043033283873281023072911521089952435743195452253990054057785274210873896594428731540339821227454962656188691196317135974339760265357031887512394090847154006475850473871780108714887253426372626564376471073847547578285818132405436513324526389596230476619823118259732149198491587148518633729798089284862724458474125605481197422811645580160653484787417513139973428643048615432321299611879801164472480779090353704614631409781806315286569753251549465637964197821280611747147195136406887486885122935007804221133518986792017369081367456048792917479006594851931180619486530941595559518037760961066608632730305337233875031547175334580714737366480632273064481991525952862212684861457987954884688460732398844849898135834432846253498158677058616241823664551634039473591164432507691065894671730855681146051720891623389228423111449586920971688181402531108311677831050805810200227371787027685216331739941519993164564012453855067192029160078547196054401825837653486695544525887975527162174362172778966109540241715224062239378321724229324831962319716648142992812824812841512777409274223854017900252037546002973486206035397469710262747320656848785208978667118419358164534487148355873565390812128911156590194978678789300186009824248193457609033832893021351918642755198850078827817600703181092835883143832552177266212187900264417739119803047666310544349764257627112926943319424986198875551143798895138165391781854430821680587735479563324501963275900121214426764467524556625078455514180711612068666287304640646314815266217908275484304812808583518016258104273849945606277905744345086021420586258465715760154822365441739061461776594394961421278368067834983070211544369449920785793090136777265871113102639413286253110356169040828969906365447404248483916793566793861895545854788934865865063210191522471938113378137969243876588343514530980946527214036870060080718625430202464982511093038232429797676625020991146023074632929527213235441299124484073127825213634074861654961666070799943162577989908677678101473017076037402971911559877410748949537234213426492798916140680788743162110206452520378473446274211364628456424995377112810040379687615883597364274708395839420839619371325033555738722212663000676727442070483536166710873819731525244418910307534939862890262965473732043332028171470975833473381203858790580115275118446609471686883554102835224198941628097088660360777744726729212358845575340980138107267084601574170352456155546162321807406458180020405187212031137487372639809542508223785408632582646111788124721747650207463312794591429612064641820078850091968659237956195400669518451749729185487434659298438928946468533587721045200517736486700156819807234110293321494198812817561925962528488231244145871707222516561903080895448228300536297450814693067496406194292620016524564340786928425659225064470199005951523913580498027115031839213064767609068571188824992639065451788232232354538327105913854289427492850432728334858005540098888931379164921628038800241781370515246808372341671682396536391736229848850992570519564345356732213684260946705065759739493433486223169070198047183049510148064862987029394672027706773919405624340529968251596782391828192768905946531339953996875747879058935521642412681783900109034233386134061440664214082270365603776001967720954550755919827367886610272998754192155353872331145497766474275109423143175718597737934681229276413305984853733288320034014035894024395185580919556391004302421387765655078073771213327500703009003522966581470185246921809490125589887521068702727921866960281815905845910363999539636249376037862906142289069892465248887460157119297776044978379008194108668750872607808111049928950566574999863806200553831839829705132580562451873351472801165185874488744966806335057924477770848221572293697375244104432434934136726544277376670058918041948587788482929665485188800601914990665493220495054641294642011466552464420387213246337229086866996874435713553688063622818961573016803324432380493175310080203078289212293443397472542944240437885406099512729310083802912317460574139251257775944096623589851547496030495898055477782721365614511970044716527905462112213909610921844699354995838131640386606367709845232751071511526968577757512128835923965209334858056117419948861209190948894233422040820141728230489687823344117748441171395890654303598804056407594648180536398980191361579691684400751124252365896927378801891842137498063682106518953046012996301153512591071819043403509269005303403036114575801347002350910689691875464585744765169041862458428270636572993626873099379544981287738730863171247959598599624561901857472164576054220308855387823908597544697990256084599232432126856376220979109149231241750506746833575828986550245057982969527215969126867600725646267836442371970582455414177533334714824756498394033131285580501225244577857402515691027176057265074921167004882749161975708139803748825875968965335021254444756216049649727604229885055471110882147041310785562345495530143430057405400460508340784905077329146186094401052401637523911540773837879098764089399216723601603748526802841156133938862993844363001378365551076818408594496236837972452664147599014418859820399192336638676483864006586534224717765757089820142069394427316350095221435212136037735758605352857044651049632011187040639258789004702272159195849942131519872535191056918140383822327895689410530530677074439634470787764321054798218487442835281201050124615134526172149413208045556572733900096885599271243780893106512712134833686735510083701694651302768444653258364244658116365597326132356172034477644246396172772902137100281759560563294158634301619126427856014692408039062901097537157999619014459914224979686528562016101491223259782972870253253838342339367155527917913134066392315033653862686875901021120949803527735143868304562828402829162119597986329655696505052443198926243695239673359038323593990746862243308062276893467601176458215434408954883441615437412986627896900922834739533213655608579312702075925095474821154413857774038354922057791930384184292375716736606091172281053037448013727267432274462858582651097680830889080552796508972719955777321094338231081185831452539553584775680501566515566301112190748584747599120836069190348847003678885929021182129937878690774906819241109906693257150642186752598302403647745991671939776547323049862347588111236685272825117170550145747536712744607094119295141846466349228177262080436695871373288790447708067858104902641741987165409425320776526795506184809025707388641437060298803448217190365243968244480127303018754535705746266914245596223763079703135889421277781092005405194922277854890725300129281458049084531517852752495985671886731641851250485381690123222419666253906288395979114405084597335968297576990562754863811292526267650646229875508716707041991183193245414075582068540663993763226186509285078197427610635021260749393016068177686423491267130007263618321483990812929175278262846231751492867026140085816129459430443411724860085767652237066334883207043024025197809552545731332965397774414231850984808005753781266768582506877946853163770391347867605704661384629036901709758454414201303797690165800281155212474470579852088502403399815126993924530345851729831958026615243139195828560662672914095251891080828182625693617900458964599095859058656179478003062848545081051883209998838763524457328398639887272489787956803569798318353093040138777050945019012324857939211267798724881626468830884212759477066362218081083417155751725852509524945434217311240122653412038276115926551882156271167769277581325462732288051413869437093292565650372563188955508152215565379152804842725059917449358078707831001026698345505882195903776419129409706773237822976988493301233699080493672350016136327838932999123674087700409785222293234399166991785804596420648722179775281954953419903306064936386976472026171478843218742532699663932822900184974446616056160719915338516336411877784592048486024971091272913416997306948471514400487590106005476466911032740584303452964756088090906882709763477091768538894620325199289255117478311963005732404599182388579400037961254955117168139867995661594692950168295681747410496956459238192291343017724100906506614672027132107085349299395730103298822149553224168939376425564009603162715548392439835714915907383600909730693309872295505103885422101623719346096889842365030639730787272868150980106500569409482144798795878835314590053112361952997711261347085967072742172483642676844067627515701893472973249441598133560685542879896009400298371641411775193987438196441315112150168087032117372154847343009479598456669194528628529927041150900303874011536424876876560744028979338681139147815567544002092933703780366533179185190616183629492368792871118375822241011180507483006734024702852946359950170630228382835724051554903763384276670716544232720544536362188084086719093291514620778816013073269612550937593458464224243236200731663539135897710931059408716493951158570818275352951304153802004202419598339207458428173215112598893968575816145830729160437656077812507933981307870794259474841074396263611468495679391649121717214980384374552927973608031663903530771156366346527744342510094094178921624657100532827591064825884983444829227674953074696752103340450345352504754419836152109993258602482303528661835953111826990563011323790532575010004120726037719310728109568798262963074838809242228190825652456139029700204725135783425605924832325474520589166237361458613321132837690937357620194373042191973878919068082750749448827905038317056297293796739614517099769386981606839477800022526139388956938637225018025782731144103343102939452092204488067630021833889402873850503357687632013915932885511529906487588083416041746639165097158135332222744665991322630753184836934753351864805137973839411782397192760015994121175382491057907261637767643649243950761538003619785587590923915629769337395262689270760633130456584389472163829660259131548628432457150157726168119477207506876127708362739822808921512231737068036896441542855148657029093360346625503787259458077574834259171329073286464582096130426419424303965256338252448292011600853382733038794303526968243066455251983363762513024966180998630903798555754069983209268866607515013937635279581129545573316620086747069400953276657806799918954953836896429731418668829669857767948167333749809926510284902148955145816650815218764886935318782734827941185581072203895058940287070003614096770786133402713694847615854756694062069561211316893437884161971321257979114887089530898306656884890116168453560874931636921360846010859875261271985693328225980301768545432274887656987689189296657651357015404417233861376759929117575298243300899785661222706281387622449102586206553604430280878946213135649556913203872787276336662701829260861791581253158019672290066000420110238390850885454985298252492689809008549125546565080869411070450169284198777882696871346731029041081209553791605107576945126506459453051710416653041287041013003990125639197317852212650330695730010311396323819862349979615590017091159362977281492455667599326951739725446558055009396321123690084892685590652006024599041599267664817196780217422238933297434301321473747447696722374436921493914987350966514947409269578647751240726390654417419188044647689822346427005232650645489283732397188020669384763393969668203558106036310352348131045937550161611399909657814490939009759933202918123636578921302180176669713452274641653825456781413666016389526784853668626265404134966051625845423713060283413883390460845889674506292622785692533180440687000627011451854183333018890031372088825176772620255609662165737756796659429430400458061410414445473059630924694647557207692835986425666013967780802937681190025454991596206678925187436278852798343658247728239373717452100125011467595645731348986089960011248299748532507818539727175676041307724788427459128581481937652039209619785161787249788522160310931803456016786370475906837097702644964904886529927190522747819926027366930286171464438226446625364871637239277227772747555895910420303666035689540092708054297541652861368922479378192862403392568579548994248981363690856731125763345090732767986661524482699357390485991220566090968447424739066461155174347920231761957668653879735274411143463393530470920449941590891387093647380601388910991905992731563343099866468845542433070835188300996842096829612636428266598422244955724269799975611491821840267476023159146380206426216350317973165217706400967008762900541876318120104098929488618203598889267123626217127829564749699479283141876750148719970573099123788320497716540010029157515665284314301981696423675528400411065784181550554881291906710128610105322417164231079502770868123572294393418984285151182941061688058524421713153918242548333075049948470566956834275655751129534907851202767124904022573883543269771551767412408949654205160483231126902109732466131467119860302580401024147687490039527810230529576014897666542456945368596841633905230671798596291681208788630212784687573937032083032803836519968462966543441629360131649910545671902782035612757722425029346765215576954587324307500053236342539537543954462745672572344759978208071733125815815888380640213096231368618564693658375185539123860879627696867299885020604614928495935625972928136933619443717888549695621877820434353263058146664594104955097897047843160216751389365920969745433745377571012499091001712854812942495731525629850442138699956960549334553409337297408667379702301622976484499095364491299009939495806361504725391555168910669335166816249104300937633504763591505639298192525537048984757339740063096057715054762259131400717473757294279392162493745510498396659634812485052977393857040374058807701363305310679525138860440749887160416007609300935669305309796014631830105185290311596503410944860791110367573684716045720245036707537177099743397449055068303045518382191236723526752676924289192865862307587454756859938284045702788760716881395079233759349801297774819658941530472905347635330025797713533621072499619360914350256970696316533279591714306923129253181776573813550182179752811392772158980641457445033702311527408310555318989476053131330986824778077183408666364973802384862257907896536655477179569574408759238032668317399384389253885984080158852232311695211194009608215283130796773859932530052901060748411648192613144743057603482011839046972119352303156280387487285072491581192492551849332407892490325140811110033175805804941556188037494148990824980254940961778840035630571526775098309769409198204041621242779764319894916736704133619244253212003521325988811005267346203430631645807816163215754267622493086263038750908790710550735447781356813395010933729887130024093258023753982508476610912415735414964934609080418099642207560156017117882194897233358257757563230557555874334753111997054092885209105253867951886886560146299265198541277597283138554907281317936288898987525872744581229761339485908938021611917959036303149053238990866030689965614964792334085319030257654874284915716195550959528260632815972242325778717567042166412200244831886087608715540053712163111906097304838527081674027418830192279381412165415162764097220632787431263617998256202857811540505162372245452470925056077736905422910708187852774857183036083814567731251821210108128418117610514478986698351167357842394823661824026604110727129421256485271169672047458294793871911602111607849477450046264519312747478071355465188019999458566816157775757398730543405619879427580099281688322067481065561174538058214086727024676015398452767013797944444046064351774391913843327957299151369819976980990632285402376683455228888993658121221685630993125318838350874646324896653154262631430534509120485779838855620312957358207336977444498256848043110016838079976396583298176770225184128860041527173033642540503829258612957478666304844711872843913075377023629792154282521919788430377369020036129236797909981200351340217974410055973273213981328732489100774632330989776460208796745178545484521522772051192920276277216520965196146321941615792121082555417861574404375438611943662313225939613087582713682118233997290534491443654877066429792548898002502004218603465268464065856316835715495733097696082293989869384972833012118659092567730126233389134164091118237390291088678172438667824408788688002146864388998621920379337529706728907381078609033343514990333809092319605425249109328059320853031567667964315538026574738524577276668314871312822411799707177453961361930439343533249876337356158184337843492896157322803461027910732073342865877546254278463519256281147417132017052373869296666792517534765927247224153668987576491510993522643271414824078754941412601441956361081647491117107525300805738218299672488775457063152764661492694664640052564769954650627875884567252806307646093409574178455561705204577919892717464886826068391647295544725627331355135177560372492016737269073310659982872226518834354828399604061255930248115305471913228551673650620442311777709899661136296252161314895978394287925765078725993849141585443335396293227991914220877737042109301020956509662430857582169044390543653046717724693636669628164341141942116562626476025369424426905709611870190740420187760426853764554204395201893153401717635319244309080905509880184259289933995187663609858576936802654452574250332484709272350371006473527781928798561037697256701814974086153681084843938464797471587151344433548291807146514909755762020367041675212817035385247944290418815628121617157947235478952811376702145405251121839059026385287748917210208331226394190899286778404735607749625857875355178126791638671649458975287876760691954960652314373794720829383376451636380002049698107290005114379211997314312820057839641230666395068783475947663009709278875680757642221509470975733253715990770823117699652706958041798225882095173832220616936535293967996528163615909127141949092715138705613093078758661520627996931252619992571933987218360093766768061372747645667101655798468332646416378003403647482820388145835765971765941944660388539742017456066013586735034805139475526868518538634374613650696265212572485335488042546716596332076735664732073515961230926712462557698941674112719088369602849730561601760132989018263454461043083495507008021660018452957597150676494899356023456850259727244257829170440453688734962452321531736189355517568055535634099343540243503352390372558640585109350225124568667111299382627672817580389494682030566976126459086357665230267027961584786291652807926094862671392284276068663047459418355143745363635362358971032828520475499464359141377035290460929176723301080620472344287217671622176466335360298941547003998012390816365068029760473655111735087225874625509303203806948307696968304355773488888494891354978933436928958804486856520557818320042428749537605230203524962684228624973909998556994462472701417843185720100305966210325158806470051219985716997891973945759010547952943184078103428040705178376030872588896943898054942055300086193627099808728161133410530944087221838563107988986550522252970528326677421348812798854878003020780168356355752260902303759911128094102161346755790530933689111505286227610644438001804653290878861421629191384615442787166327164639291354827583474325565815450688694247653686884997942229315392781917924996016374559452405949939530169958630785579121363490582880398306224016765996174965706053016211212417573499966207995290464629435343131744941333792252181678574784534371126589580970997036766094071660886469363899718387809202255575313876844121991286670052295886537205407037646961612765349155777680864985256777723435922361681574863980628293905148396147130952581240039358179227583258870512119758828233889686406831256176603601273040976242785155440085783494503469099261150123654994906464547765890669167185362482544402157059954183283340120774729838009747685031213448807697660875563893640456049006167635376942951757657127072686537244145140608935419433457049833204308678020717908776917914998291662681783101910708775295302487836503671730320893979333021956474352751528086393389040780475450592269391737757756628879923939526812156166183645050963161616032639057740911522310384101670671613235418190551416339052419807860536329898464832568291938966093581372857369722718960560852101437646620031850072568981837789523784936097984523597433001359618578690287591257819520099465114102102070793181566953372769897025288025111083164265948587377910544043419905091487998723873047835030680409320520527621541483462350511842813627155676151708252306257315764835310578543120659535976458323634796283297026590323055820763061963693502931371924673172922677452119725006809204171091163525339442213468139235057833932360093828513809986969203599262126658138727420987026215592019982576285706829553807834699773595202259235404527419257736876959113043746261202396553959150773652544580030853129873293058754974189487294246688497663204058445233516757749089499912782586699692501126098506319825482078592861658027380961855685083082981447242669358753060002767626675699922031959920482475267765171529955555277080908674859897320569812851246161466447479319466128131897538631854699364983875821015547169399193747957689518117001101629235668235292278554760619559651767468166928464449099134905607031786432980373039280752408194695105920797934503976077690712371132792660917604662675868629024749859781623067614428262048387783257428723467544521667866504714036406383495875240640038254622239061735424405800335625447519049255346836818312463190255859444913025407691425813249055927772051523796539543510174965032369578706663206335083788007749339198199321187456987307490351711590846071025655357829396048570943153521032809172572984210898552847470041035631004780574464302564388734856403544458095366580095801181060514804553291399245358189435819732325480774332218899584435635613737086232252230501468912430495201941078335390371286535093235399515209081397696796401075579803592628312820709220144706726418716838685445476929769827286411079126355184157751949546818626328712103811172266056115834699093900052158730113659434269840739767821618279193223088381156161865597812424341928633011011433112703267454019137498917991924416724088682049694865748975766865635519954025117704891283365921200157021944449055243056092363726329519714516566452835913843474840337194952212291737227419150032168140194465763716340449446215013210743104966410085476995638184274378393393029998623966405569164876336226253088716835782103328617422671540742805921845100283493381994976972834202631927888829011446657154193753001764941703070083400564783307345011545014816786367724353747442932546865713304474022155494061344411009855244333498728081061764118067372175772313393199207138392279220942127284988366490244862458613199812887289499468041811775479787152868860130956384622652362033842804588531278715799185924477102521510607091040600824151734643165437695565332180859775481892565588860558882405336392947484486105900680989961075289877199891483580393087856797181659901557765367376871860959834803874451407066207381189503097775862335387334205422685277343226818985540738745605463579951092497832470359761771183308148768197793198092819791362186352931623953193913955266147162946263030628348375150316430824735650365927337906669219603944898789857298264180109873610301473850801653766396891331964719442491301080141434478108666886040805397806349188302221068878914762454751791944143830084319070200092948970823566587038581571206988792120047348302515928717745901648535168969713183616444625514115521352707836803475642923930225547484420570451790615199440719445895152250307979357208547281709567173127813203950117444359177463922500621350682034707650149022300180089225147549962206222767081620003142799417978438504995262279405267253490316399930025766509097346062234306056297798967426527966395925405844636401473638893353389182296792219797169067649141201127734301092982689819808430148694642364358080071077506353464998143883089369716880584963035288676963371120684451684353060599722264411802132646041693672330176922293051869345527413508577338096814090357630687178383776117052385593066714960699175511796311846322129015896211761704242162702925737423096503990378761037085424962035390123865192722443911191647869632454623598684873163945070403910409689046810933658458914864369984618766993902345823508393642134357513617389169906595362630724936364497383719354818085068564560825701247878795233280217033197966840103944286388734722203078813294624932641092248280750479037577156689793203937027231519232537497366491430698339085349917307941948956456408745038870363086129841599148750231937426507499746967584088213984398691448586055336939871764689251620712180965700436664640660174550577238575364188878524674377223726502415454440890442587192038168309571363713339167208449855771542874918993711542602897507248310353950837339341046902583909993648364275388041219894484088719296691872464284764109417098331182609333341059417184638290518222393849210315410813275554233307338630153178914918522702821004797385412231349136692855476202651931152773788401427503979514072035941843705725605984667357362043700303936552262679163108668658780124695475847444890035499863018641027823120353088726174499153554975670877505834602228257749040301807298571088798969125380428269921366013673946799165158154049096766043164048379703254972776590392857476582220123956348576055730673084021874207705379658418447710359860579890398922381635647071763466746965579512088221954558093265308512079185531148302554134467659019789758476391743210376687461829222896223690910209705646931950525930500052000859536413540682152244838549170320207435744532146742402321028024909114444882764459419360341912254517056306531080290465406294259162466221807804058518466971421030411183263615797748338279053791323154894822883864149489020482705350496314644168147332186850951330031957048438320717766589973019582674808561032524448001932498376523827870114029731615464469963184293389301226040620764820527710788426117438873029862944737850676208377595043440136376724356845416754790074144206823503731511649557592206613921966134227219464221817856579227453414964747971063480871762349703610938800316994332398388840581434253266117548729278909765981369977206971655165005169027728543172830768344203393381721944200256397057282335086546467887136506348535386152516393491123827617186593904184599545002705915158942860863115851147638609152517874374768856588877007478704699377146896719200703117862570934018728842153817624069088167500600774688339406335052656288514075347041168029402831607992698949704176279332200535465529219493018639790872641874784854323742045199161160096895054640200390705023441778310383648541713677451647722972203484272781757570290271224108820210037266933904503621337708627321725707241920837168655939387191694251289249016225703668813103496792779287276039756076856840132758829371290078314621304320612128092131230108680530826622539868936593664488504342326633420373239112101388369652528541589272143559297127561765799633061577041908227707229404800370970080341495154194609190790792742978577805961999567033863858977049596873231077619566219017656520015129657029733188283117913551779511710244961862499525687213515845926167864997604226592605507844351502802057682442317541341463208398515299502257287301046655965990752712064655852365835321743565543679868534990713641204933943515820482054522464744756544449860971694810321457786772828636794394254667068707774422460291893905986714684764865536268410591415745891113521019084184029314684132671405499360419569184882627031918660673534249466703987605986546475946251427790660530244522436704539464492332675716749940847915570495557732102356684850273448237806896953826818695133043660051395507759600355633613284944352168022561012134568759983189034778920894254556601723597826384402210933449605906352295765091549535358074551149741186280636811485137427601119094191194077976896636799983422255555933803417866970099476875816594244726621091862630840092649900894123322022861783027861106443223910895179762286362171227193750248256689482779542940968730997833150283953148966083648404606061010224420056090699069339143374857109047632562315809666934431613697477948425812981399961992627096851267083039756500928996149189772545747319015992782365579130464563072260346364515788893252966096109396028851107422679825076286815923515070233978041372976808997164285170694744564594644420397790939832772389882972964776566131473802371395582050202373489452626574239703649184862178173175028411976963516297732484533989497889111531811395760792566660364808596272128703722870737911879402024392931810557379102035867588854768080986982477825500126268591200274669068071523210926292265026758829053710602473678134997154770036483281258288138918366677266314994467297251268676800021664225902371675329778326128306276358204121159259342607133349552151438771086942532791514347027829456008624930798522116545784447111674435701590169756507277740541023681826008650399005177204827992661334785710259175994265002748033358535119654133804879873741803723808341277526904419750430603360036204717796871345031624150669923522666348515612565912158089356441525026535577975644795282879550804992617119749623050587228113008305756904591647807018698962903390670295336462132958097240236286806804190193244766626816586767094617195236703195804433946689990044448527917841445499175411451366028840510222860998991304407603969589523272205145576337040589107645330255358271075356269198777546818356645904807867816689689328577182615997549817723185245679023490874187022549544065589691992027530003168000763240788116254367761451836105819427409256785941857065262339628463920340109947541849152837852975666915080720683485152176130310647500905528465556099687954479860975847316378652627688131440032276537390220833393752659950584006272855348659493913068161078741654379468077468711723746601025952520109548221480313689500328934828566357894137279416089264334396718688361112361271904845279170402728743226490776203879039229632430692781566154188349700448172918648199518801709899301256749065122591764636571512222023670423034232508082517928517020810810277578355875763528234253281790031014832264981166603011074223867130040980172522345075213516780292158757564806815706106564878558647004990264092856563781880640664174994511531743851705553442110189738611417929583931259143172452225005628473203004518582042597028536655684495433420728582377028869324302643144635750424408293888236669031786571794173139640139984792872772215761641949538464309946166046236121786973087839649060992293853333515819143657861961655833235619868522072545991795034727260702170043654752459329103664251631291436176101431194032979024434031508671670895582001112165704977875362029086991347621532582127665537160181164984968928942607449556624800837374802069275968235921075686385184665229202142375049675446566676822573174696341054469260756226982334201320696189625028378617432590152711157798175859235362842837482669165014690516238104156322331215162016027670881985076374337451683001429683861950123765868169682486086405039122584025138619816123896638986477570153936806927208843386103524182180984741320201244896330473365784700966192707549044442373333787485235020514485743808567146804742555061316721533075453240976376733630041007940768181192056520493766050724525947563318532859331266521001061337324943127692575647462913892312318777018926149592109405304320394733743652126661479287191495609588449956076520674136549535529235062919630731085177229887649232806186444607398685305692528048265594000109918735027518813943043262702001927400482856215691128549746431851261970897935750989622106647466519514417305615791600677436662099850207868337055409731545125735163014506500071822441484406887358497310789282672773902333663453226919916642224917943846556787673535364290729800928838238107338267071776630053474642643161919280239554710756528522603154330573197379491781901594592833307093891240758117157388924771611257558143864356360858446261818130279351260907469171694740797332631985691537986893694480784815822036613655008081854867668253065677740185223725618904871730743102378760446269707253621412697472769957261460469694561465827001197932773181144235626151338618555244781473750185635465448946070968265176395028941521435995298004610606493005294875682310495245422579385688953197503049850135110620162746537289577126519786416078202880942191491915344373618575773313318987183003665330007819225641978948782576403437350859595949459951639347657050704450878588188509140069640990882193661389496957175460494246126233453369293655068390284510025143240609713782423067040838781690254684116957831312450051854700026250782966530106439318127046009143276222799766565367735659164556211545573362078703763149034862093430742086556473411644739799207047971539029904468168937441926664961156585153520932876020865573734985182699585192583583692733891384393034732679069496540507695427644840937916146233292036351254499986058295777372059069994985491098592838519175160311457323328355495635821435285957398387581862464782970789463997943618430711689275912971903812813755181653044043167933591506450453149654039613722129624517412605119094484873959054811754208180074821136324113768794495243916493622364183748907080078677673399741413273106771713719391687996903858071385172441156234896514539970921010012496707367720656882460907476276681712466307865542518022265244624550753425654536412389232281716367653055232142931685414747484572566616749900562711203200118947509397002211747598023960546548394543333224519633470093834445861897796856052901426145056693163400517690262910255842736049364772635508530826561510713972126140667095311766219458334936167965662205811483550678771724734890814045906401746997605320677046296093682603541544856370668975610344110948214867508693737330050653651058612561861327953870205324655455487484736485044743820392050878320698425197850807966960073348343475718939710307819737680203409801509832324267861299498606716380900507865317326721250597336401607725630288184337132265503373077308735270693187426138191495930433373190360652438600124494720692879451099835375768060591057612400077434982947572290323899864944428073930611734623125489321579711939974130686619657970924946045618570268262571668566835388492677944216205880135846847863666246388662857538176206262471001412175795523728504529729138502417036461426191062427582617012949072347837055612203343242926270028984156665410982149573481773656572875012499743287355040551393071937578680556393148288259470771859972273301838796506198009403840106601265883873962675263133882843441265386407891463765771064774980231135539313926158452902222360202375659524042767522053990934432793192143314966128089005585312551014197331680020987908779972438079062732912205338484366899440985719352265322896597967900371467939776260167810678439665400043736820380615083919686252071937443985209573341729744479817578794713853663987588794336541753157814073580869523724065441650461521285755524422685233232377578880619280704058364285088393748847983561060195909180112239705219844347590411741129999060124279293531343303526453183356404149646104634872501662239355595100632416282786483649520974352433782548358412894348190039946416401527933910707965994135959038212347703463927096360798469771020989210822130277728898105037561694301539237103446684155985839956898257243118690706953040583988103140758717895327997739270910595501770668473326023694872607347245309592809954318985730757534213368704725974683267114803969935463946431871427608936433656783698352473242308150591352017417091475946243186300348710277568337887235313324659780646179015287214571590704602266505227211258951960499351484419043434537170921705516855864636596206321134606778635956905395021354780914772611256647570856345066905908334474179865953313209866435912951994884395712581563199630159573236725748539956431705257745639287812131953742228111553881960143250046133316876257626723312770098430662294495595999615631532867636589539441688971394710175035611847409911472965437616308994991443911829860885447019922833208865438105178978108958516368631929324292397340300111783636175466814855798954912291466545350896441327767916007998169683678939360388274846471363523220142540391257940359225304351235435654164801156617199281212760078731404289236703426344372784514147099237733068839098521929465613832167247947355676800891598824275361283404357664010217555207017738595006420353204044939350542196206649074819480848401999893339228765544436089029019817056454199735325177076361674512657348971453069545582741109671006600971380239336351463484298369312233036350753293833825330017194990969542704580247872110373638776019498285471840716840634303357546542362583386836178120229587512907102832824089356673568929983060903473606706372260679922262130875656211582341755506223037604242746857650660131627295843380039002797473091906905313632013235107154135102576281882454565668482028369968739796515690174606075649209742131220634220092299899983685100526952001079052301137621043597590792235025348631938312640251252941761162979438736179329963059481536533969852961026901764182609271904639007182970952796400967057046932191358051453129944106203591296113156503411166064316296458152006038409695342974698245868961058990235030374063685964995071068832050888054648258487805633148279930923814687139373817168998071358593378973212158022187540687398263746773390943758804291686049342005674843959779836365516727990907112125494441462674251178408234465712252450014942255155994267270220686654677061006049015087747595106615214856324583646835000497604674176633043735135881339465673975178248201695778027177909639071463438129892898906711953202457592865892952572604769493310908021811683043645484415344632635675585115458040014357824998106346614972672242220456405181314380925879341079037183935555204686550950278735233462068976942474531041374941773542283920708944756027933009453820889458018276438416394378329745586089182911996888300654875873576134892114721866163082638894686329154388170692771508124836282906787862908360953567899944938313520674286483562593355953991810423762345487150925488487118557666803958257078505912207907149748734073036510831839163618471773817984681272574186366312051378756341534203930515999620291759856741581254329714279895156291928393713704458368475500115163578952766332445935627290394765195188304911787282407388281255438404560550362604835044441679690369140562369559876553544948577267909629895880849340559133548945378235044400084835559380628384428209420703345834984165312534091039882638226931940080903133906395891797333766319067610410308061826636414562759650492423588837519598786571724419214439440351707667268102674101045402070341025610859571648408936726524743473160987054706018740466400541991908995071338548441276560411246911914124634720834635088719742617403504401419307473177242729914270631713617783727231441583726342650809690660590397957090988965131432749380012404323081504491741188404702141440197634064507928984126993155301884288415984116183392947706961396335385335468792031715497952844429616187438522658790895844258188944470116286792002498702650026755342238400568028597118409937212783675184830456151168299688298857291945826217781027226167137803542994582437177683028489890228292720615843387880061919540280847177307860073093936414589191209360629187854431373129747469574632436222578919333904834830300598526256238313589204673026338980574435775016996581387436503797643079449467194655989068610180765742714216699280832117300459539041258108826603742014214916260393950839285441052686849679997737010032008604173520813746824815096762223362414766899061247192077961404250908028284810641305296527098901072049795109459168212425351798096628034798589232861282434204057587520835813011247273754206791236833635714565310304259935430131671602959015546359117290143015973992748340053405222656009374922469987206281812433931749769648631817050668105966824959590409612139042527219265961747983281860730903535800840118183533138621767154182840766626397033252524668064619708624815531178136742462245537039766536024978795744343202027718220688046032999614072620962167731089948126927230450785211080781311737779473139708554187461652487043124801098923306415810613459874235568689471696099122794776796399859459081218164481461629529097488167234358147892788059351424229319628078303179051327962228947477189824771505138795449230843168829828428094295838528424267118052622320541199213184518425676184254597738663509914300867618945487578055604479309299756633008525267211551495336773550540031164017996293368112947388053464180838499412851374556431057754291431948736068663149779670916400122161236242177272715238935157304091659567097700565660602464839639096715162175446396355028438319560027734465331165748140842502898302209652192656105348846016065901744667515393959610270281366837346142308488974085863530954632144222194929386214085202281962575707288916227639428201397327066450908877317130335071589301021233377564734228693518871381980395872227301063265340512560930518133732124527926671608263404429098731248036537030848332448686900249005288763129200770111862642407259973891900054183490724841704448375455268632588886519527957993228831018271502219782353968676588712443359372902105735585269714611686385643906125254569090425680294504280000157143023171310175950977810351316054441428499073156641733556032776099427465148958953839350355979536716968626365047445794506709936444134778897776678969419502919893302835829315299582338500584748942554324252891710806794368855709164523356718186566999499474952268903017114890351390131647959705586834068696226895899291623357534593700327069136197277405602958753645863684610381558925111440559310838302707872572265395467177411591359314043167653356630227661046558960529496275762357980471642908409985945028139656163526141523324970929878310039641719631246397920539055116761564118621877429155338458049390444394606457045369258002646637243880279911533380401431423671411614792733387428387932397228193088784181178061953353285070426658970714584705917152931483654155699924018646758049577571970772019458623304890491264350344530254203546775774141616562375400112482920083292742238287467055519301183131038144557481994232053722605283219572872282038090918451587021802872992928915709453727932372176068620761652427134851199360769580049057360260386601958121950838102244578717079745666354003320346597115477254958927172914709497065714120588544541815325590095282749555462950084877765247562603546060753469046900684787821415361722793898636869725479471899472691082509549492656730319361819812477966435409033422740264798483182143709304078270069157275081729204389540375152888203907314543246768824648748903368923834598847584719560417246662085761878089596420580586313228718561998095639583623739999364909810443191393955978821468023774563973889680721911757105117389191347091878659687198483085878270797046609126590477220969606493986591482550429626483274257804171035733148232951871122758394458328299333546020689227959807835122809548549141701927279575530102286834030781891806450121275859647952031685404148712160117984113433079243010197591736777106668151913969639521542600983188014296471337943452392960426400944470120008429291093307103264666907114006042742830729302219368310825721621885358721568605216600191814654148470469029326203959531172475544667308381213742684936331756891066859514197370586715497360437245513120569761555931060900042632977423166243828767859440359178226307909890155454532390047379089355959547399891399399612225994619132788193535352363292363738648756832608659031376523163547278668151934323707647287375457480869477980921810242097922140437096976987265341380838394528265682295365347595961070073694291097865700242540585609716955975911433087651133852347533607776596813405628409794469853884847172142895384908604508400031200887842189816836788908947640038973649026611357342149429667677055472623277172598535223356911859812836509995767895643823894973964722893334372793008677130713448552086078640901934073475674258169680556827858771198002570653162283166891594657908349320834833092496667861645682234037784740906612782032691475363181514324641128735897537521723800762493958245194508240263730824979011707249710805868967139405997323225204552263321931557288767580761099553306386568236832719259057788440563139630025407250887994334615955055441001137940528568383938370659396261183055628595674040236226381567524122046778999076450395624167357820538748263341310833531438716737899731248197818455768854406828484095792791811897862449547119350355225745770237107746054503506775986089815568848754346209778081675325266874021786731921070476491990919169999904672678796930339813392247878481819026582292065727548467018468709522508527672377841770644881348440949586946710919398405769601971737725235069207072950737163114080267007051475574625275264767055773925244769228889110789623594787712688843325751062645774952178501189867487091993369535836092267594650347533584173755111115709061842686281808189914720985491149341280122963917764741969186903440945739641547136561232389023935815834122091932786333442465760774838839594534436369575484126147617468024385735749758145899326480009524954024889220271731900220203395355847673380503067774874850240365144702722263739053342031914952964306353491963045793039214196390204039967208475538912986529833262569760759213496139147755756422789009148813776607314281887670775827555402220186714984976547627904863671716207466097465924179576589803199741142540325635426042311374712011018659770500415507742179246093442411111517478838570537947603014492758998871273442216263464828337572765376519312113504343883369090339076385121843732730679699215018259431821450919982688322266738399745731436079785639133822855252829267013121368249061259456051124736386237073420871543315120495587833389137678156749030570880671949965240054600680227470750862099368302690702321167666803809528069984624067700543278777971439444505159844411583946714285425473548233048840005112695763400737544370768864459707365782109160476308060789156303252882745842513013290477214511452035037125857882681508169385477049487657326410544042948947529945367302456359726130188878070552823138372219440571439125252481567044579643555291095225919580414375456985655417215978692864339211107069176458094078589308615646945261263211559704139892768369015500896415706869500347892534533716594244081341011730884569686709347953685655512669017077959229547896320069301888862763213418456990037144335347603119385543164008035562420815345063711952141277187567486036155144666952299235939590193059137386886709169998303645436231678613967152670999711069856769284614543059374243172001216029023856888742900660394787282312295292588827531128976167107852513016100412995803817441869891812808934222995871687979597025732631626401855894346456722965105317902243043241469009346860561424258849582959231742472461166022816531145134830993274177465853889188990838841410231648184477476080645636215914213025279855605624719752964279692881127050023417858176426568582771691626273734738856993722205937437980052761502750549125577734337506499356641267758699301212477818426485367659695281541241750000212757453453842358017448246567487657105032371090983989673992535771072528518550844721402575893414789887254158668949259100929016557086096770105149996690941400675203660077570103186586892640213237064573208889726634854513195218897718819576719337159806438213194880983335071225918293379970844844167336025835629662976780398841260720586934569746691633359456913638454109130474463783771805314757556853741998304143994332851564415517023370975427151439624674092961137693342531227442990565204683879252426358896922191932102215759277027107921826787982568034024870530879486928598841149293576131092165012613570102910319948106936134398610971667724041849086678762770464692233404371978045802397456511598489551299207691559021346316405020626941162755758915412529451112340574874571910955513389735275825602427160406729172034635290020572350108792597708283883646467502817667385168854473065538464350061001311094981875923928491437779532593242653564257667561212895340638794480005146125141995408422771772140461068334483155223222045593790295711165102134951306297610612689471766763242475979536171359054182975113415424445029133134060755349452132110623436239353537641789209682075174587446611683412686815724564479543746485094971142123519162922947237710183791669010994155830423819389042562367757205195124440237201368484737721064889518187290091354749064810143843421562483017083211562144360378313776974168641433673859060552737765179214552074595240437481334888136504061783383242904467912762181632889310004667908462932405854632510146991146921618200721561875734195385340243800248316906323623796054174460020622329824396347494060651936069631819275350576822682525021533468995264259524477271081833822445758296538889004638455830949840677251941794025081022069192457317303408905176079838627619097234628957656050078606214226498317884103221388297218365419091537162797772092380571010749761581277818728886041172569557390185045070517891581545139409613268367306130996673091027517728392748642843219190430486665297004111467525192067709371959895441229972663823876183933623099964946414675479538287449299167650501247030811412770043116589417567627728847552661370140209531487477544649439560119146025972453996933591317441560941209217711841424980626585186687179152833422554045446047438925902188133819630966615818447596619747569354138536416817015059149726624245667516880199064475318673749397315582883200616065506334947360823937126682992815533871451929639982758703627720122322707946578171504667616792568315409675398972635650338443610755313628718891971936667416333670960311516516677350052214353362972395129527519649962077352934397755201183629609846618523204243865461009939595587387428697601194211006666235728852093597376248979209886588994060108490941444189494512240464715451400175235637395465287695061361859127997457367076979312233242838642688766959741223170552433305593882213796180747436157273046616349713250702675694989756059593982041894508542880047887237101694777908937111956591932192809319260973560949861658066732209799906934688700982611988125307527928704340964407161712338826806604179806330801876141422150542305962602281182805001796500374391591215456324439597025452790256915495866656733870581000971568948345489245565294147468193592285853611603471141597782386151683186329878377264457157527912549675529514055052907850248603697670311897797853450285468372152131166266321378335423131685584114168096215718260248406839852801373647874869347587170621029533350967475649749529219206143010928794441336601786599229869835293537965790071440358139658845398080545935250539447847102738458330470103661327787400952910930544425630957845002136434671314284195853948814445229302327676994287205247067692763539732650362042963577513724374527815215123220054994128094283052403366595523940492907844561930204125253793864419709866485939046183472672614997300258678997491584207853216372186702067689459424527274924914066700257547122880460060130746659317744084951875617814827060783743048147029313805986385867759839002714910699145478890251575087150395857978959448020983700425032849630330972415915541497320312882089616775890474006244811288803669339791653919500829921718419661299959452560021926309198829125983421944901510602833320341699960139187151963295647068041492990224062230998779242114745591949463111629952229394383633187656720748301171173494694672620401589685302245167548585262329316845548812334692392939716774872879549961018487864130111514321519228569931154191052858106030773174715282076245770482005804710164159757976862111118378491257277192327428898748034528497800909729827259848039520282617727388802044105080834464188459277398696001673344358675130506745258378214890183647213256552151044149595625047781250259798147356270643048692444816496895824656954221285335405500165235367564417379222639906467525491230834542930783852649538979210776530092023239807303717682883432387448047475052292221233576496506065396927030431906244184190440322637048233571257690158398070804476406010410127979902263170572017634684031090875827375645974317668691367852803525715389573165044183437386628079120615078270624432950746055643088391018211279845433329924992363362362341526686616103524718960024958701019954596840140920780307200374924589785595350539205291028781509286903379661258015613064189926166455400459913264694681140649888409015645242916248434023934475719140420519930289697082621162978180926001502645549673837540264803954193706686504612658048553355000237657895822934158185255050339224860103607202441731282408877324702449582264947927254847442007190024915889502312079452953297666230679619715320291365326412811629043985703219344240430774836254272438690418775337154208568586705581610278190030875844559578789840448463987741714708507245515181178123724358739216150362664277846572211581448658034370747449398703971175561547058803916147081749324963954348021590123736079679578381514113373449276916185665188668803287322519748801427260129054745115788977698394131650917274814413950971858011855791343622632205661445807783140178178903569866603897966361908743436158543574933884775375533470888598366256596040539685938060525833995576448903250074603929315293521168412473902019255336882277923528031622188210052438386480913539013623603620502337159528395690480382120714531793459124893245708974207376320642068110525464340597160897666445680898694686627919069698311359905845449134627604923744656472312867223515583645101067725321304817468262546453299742582149047037874288074168737068367235477083347212916337050575045990844666918080531636061791480425201447810916635878826215313319020759223636045794328308894132478712598739906627392597284458739787605786732096322003234903559590046008407721103102722469598790637130195006539857866559395819480483130125061042986715492264874661479362006465739167902354961191099414537465088824290291478932730496623323369784047014273758177718312036876109483210075819362025503382161003006655663125197610070472204815679300468132325217356421623769411230810659299172808822182124689313763805089029963002411899949868162163204714219073402777384617796519074809703109285681890228261217974615919697873515394294038170459641770353682229651695282357220173627417271829617254754019810188886626094310622010947609462083049700297110300980576151717606573793328798896480046012635577685394170252520225043760495258232428150704537182416638658655634832989726562191055079677841116965834826028975735923024811381936860619189517821778679905791631499308734688897447749544035132481797679944544499950635085702213542023200082367428588197868651501248824854915783278813732080209010288906930315365080993044839252442265635310727696289965007508271988503378937176424226978644934570143397504832942475528272046101866602484502155165363629817254030871479264875032558488377771592941834243284202860742235026256004208679484167157293629306908670063447068997042120751816372708929476585683119894650713898237414929305826282893063700108287898755311677750987906715918105850579089588193948820920153677711044902355396825272669638841211332242046588830289870670027152517534233612244625889882164402366607766960318069737561399696465031771022372518673831525086419554709483816862372388934764180758292091950714171848496102244860221152320312072597862901461938066823439307233574513030787128576180617528718625998727251436224948287083087725895281217996585422675210960892299414506763654502390551657391713610311443852867361896220754993770193143521744005362854651802670816048371474569649177152898268916423394815091113294215581128762261139041887029136828464694381062864785271671170421529636827410365260617206032528619921146442998298431545655010205390543373262558888025591535383251645081648142260458070627349393369839632562489871034063639647857624741766151513831910234673986403365657428803007064594570935010595152594904928930314549822380698661590605948284358226893024386783135887626956261348470438225692307178386875711299576461918899283521564798534433590534850947081445995529364812298999283454374701567465050840400320665454605449905079520762961924463341887803029143149523327866104373770771705129311149951087830237586382060023407266346413813164741846886852472352061900434697616698053937296537742882984454189041267846306487167711956708225448220413810977868082589598748899155653560219429177333937028856141115856987123644248358367390000173791234611023073133640945731271388130245469735966119838362952497850850333473855251207174849734896876040295302864616630950364165588399277733677257952071381337635428295100283546257309885090618612755417415497311321671551798834850583345443443287125888711227482845070222515832662797891773574442823671023628653472549764102505346843387343134026415167764795627839902228820134461015391555658507736811216448129060200367996873954343037362641630468242998581870808451834406244579663810684625798210495801116827510912467266618960694180775510799138862978065381996732157653887042111114083820426953584359333144829832706792221722602774766865049194866842255652718796215118993125949935871516910550518122928811687412554912663446005158340960869612012045515885733722837857273111349414456815764924662207882707238981575869889797131425522700998911943642667780112167678380766393290035108232969475904947460939333663582859574320011721564364642044358382129060943653479074088763263310457130432203929205853122947223754049423324552852109454461056106595147199828786088906280728944591904586861179359882339524122773950900572089052673499526143629521866103100065920607910769575393348144867999222617607065817122354664300071767873921589587602932699169432887570845605255737476317565366906328902129925889999855075040781691816034772663755627945087581020477908599513208510390233551816680850392289805912302499261029331998731847545789297629472605143577316893448160113094006595376803621479330133335844979763868062581279593826953781106697063974704615940392304428500837198498993934759472002277526296763216579316551965782705812526382679919867797945805584884494558031968762610315600535704038081274306823995749610631312887357227094938715040486332399357760020720574064068074397252953002909196932519446063149306940630185381078996024249745221268588977010984525539003143571924613443894026609801028057453077484652707010327065670267534753377404852834981655255880037065459152859981627080194560443402038659064681901410394808983260928575572406671576449676237759273772605312009671760064642471996991550584509755572501816123793179113603371269034254771294379631098209504004463586697825699832527962874943406993659561425334574765523788227348038650470405792932857467566667783674327455513751135498781312297820943322556570943375059854747350260327586146343420689263398400127331826020320898110301973640032469088610243158009171005597271646000257686828705249361629406049849182991247905133687927270719240333017998444712078856738008351371651910720100524860931398801167375817483186167380177618874271833487325012473754873802864033836674989926221233294317471347263762067537241955332091626819035128918018713699641929474923059182036143695838366054275321939488867751702139223756563172793457293011319709139945487906717766440562412684970652450157915037247352990785975556901740887968194501382879439583568828098822396394644607087586951910406670575956235960821654300097143601647624078118024936884319417679079125395855057584932491233429088284049254343907547720070643407963085588598495470130152624033437477893839115024410127667068385533679959038695457969057232675177452302242715641035312934259715344225356099716720708007043453526639453004422643999412981280175450282260311431864827149879954011517104926579500801170898496942809182795731119360733665449723085040337364355187816043619055012368871774028356758630985117033065376862734014531717474214186709390656373971446439060581223706458968940747266416787818845474428038292169466750576474678678614100759390519545413234119693931076289441204630899572954515091914422371219017904317233317648354507747237301290522425522511530893692070590301434099042167292560738278195666569510849417708574982387776476799798372110827477543655019785356316584740327419130273186862409861457044988147036654240554475603236057218040902074813625751867886032325222444765970131827249258454673792565439830206671735587088331319748736128531899276755157141101909602878091812650553898116873990362918611913413655385411457147529217724065724178493351339240437880189905593057445808443949907631419373254743933673584158369545037990645358379419349250460956286190492851945487602208096597088661148844098229506965184966722342682526625496188177872321025370402433582293932423652434360877472064706681182819406110341359645960120658401920397899287107034989070290140226670913405327764527595249225298018491340674248163698239049837849066843390267692830057623834109073165407243379054272543318327720918892527669738779187516989316351189372411151183235989243913393190905665560780672659917198450380383648822442808709416346953463948225123577101862423937258248997768827583879655733592691704971497921974087484837560432741460442691537502289270880484709239959522852347166023850426302590115617977747095602319284300292377272900391192001783556906384532276328447536318447041886327974024690010945160959307359090880173747807464801407268085462056262469560667048261375843181017459114774291000895018846674396749200104615513888850380944140551901581689026412431090110294647277900374325914228502080137368527652434544688027050135603713011396129663692517842737139973428353373161162541943784638778340723123453849697819903967024426247133575868572422282599166558073306393883060041947149184087390718213323163962551811318158066975753101066237018936854507845976533285717162378592191409109265960657280042548846808154086371196683716320157176890261234829060347755305983408350008998493203881201362297117014951234825755929894419785162545401847648121566147990878270593135942196337527976723055219348842663629754184039211963839043448076008378883131574662953222625288105837248252832290359041529453835740442626067966002213822839777923687562651703627696200132828032573631989598887305237394576235621511875577294006003018003353132533159759807084861668091141349999128191636208023430628307602128111013207105780920530621588860917196577763991255377732474695703071470917569226158314958944316451153307400419130258946346411555423775041306595332374493976149966642020132835098148089689296763840129516207325225766952981750237668414153135535522147846370093569833971747583414210549753548213685662254800527705331597856191852337513310407229869321032961126721591627740655484599752712755509595464977972747724565730280486593089399747871650306660247332257246989687792690916895960955234380206319098159204802252856264137131687672867823079945756704080729468897190549636264893072051130143353424712101248220733012163385049496106868797708297680951584479525686547213253726199302517989289859887953244510036140128090441589355988719706721182496387070922406474733180020322637945299128156640976655638713013919058700912766506176298605528786247452175565811875133237718193115356788455742214071509100246968897922317232433050196819523516998315899705866613282446403009590116698597296880767931457525922682801677071052899827969784873070720772322092622304253114937507637703487665856407967238041072742052475967929462237392762329988440940217976008927951571943064268156870008440645492495528226676914323422139425854798254517802200485225545054345918151522886865641048583762860218104869615565021694144974976626470789891685120928134849384373727081877822095533234743149063169552636759338263174267944761577391460420965892036639243823633443767377065571603476998173008978796432139992584998114450005964936818599162621087557021559818288879643107515959075533380909139652715596086727113446445871154860288626854759475723219977325115875663641973539829237004124323405949803164060239136087829296098607725529616836601786543588453730085017381681086268097878982017367282669162334245363861962701082983143754792584399542933822957161191571121837986964179387532607709955249266921412199218527246272226174323571417511802971091988877376950985533189718086281665828069614822005001834319813172502367473483268466864744618260694174655054664992346871476585211962376124202849068470422890943338332915079359202702321741881006166716296421272698122772952220753672335110349132110176821368658084124402964957840059554825628611558676274397068473599462994418790787408398519382797201549970553498083742725766829841505291241432333920529114415201922745776701660402134129552672497637974900230458965792956472963152287291554094780621866955584153313477203330764798909924528605842707842370959942298115180263495932165227005004274993000997777446025459831609354287045226554229292169839548353833873002737943763232657132717482501022181478874164666215405789322453131173992403399219330414572780353077045472031584471276017672264144377043530559610922392164820378533310455271133630918216422556954272093701168169204659288801758927867451899504975945157947387280331548534107219962804504911814134466592148062496489063126214288083253100450661805618905844093970748525171696078236562697745637354644891980351355930592955044056007250472993601266992039170420040052781557274942944445431073428386171325272464123485773268611448397929912407630596304901422623818963084806762239270173344996882488371017740924439706103165028587915352284396760804789970040025924156836231220180098887902999121726234733436793214864497592514384106190743109524389189901326944248694483896477211151614129044876185680990684391671312416243127969502126054850724975528992182146281195740432283972589969753751041841666607841648536480085705234861284670643561164813934484982943231918554842609635096680203978770911218905670697397714940893366818798204391771059352835828279026443071539326236210963544721033219738007736014851605954854856566645005175591184312968057516129579816211595331898509148414262253333323354185359565450937600256599320472675379493582055745840901048268700496897231914837574863866339979023401530901263553160424038631413816240434024262007137133642125204233557084577740746999911508146123570567968519530948311558628705752364464845890704043743068896101741450180466920455935418726058174211566570134395730097197945452326260722084894672913685888421303458315707259844095921938442483287318980384638774161766577856278653205330573602757107721680627898924962289768951242118391189366757527066397690872823633069858749257554398778941426745364661985118492822408030670440319279702028038502064499655401273215433045208619023795628061318882003543069300851021089966143510691609486815934695550140953939028036428215266199566058278380693564817602836381050551504632618942907430606026121903735432919872162005075810919561488940272276108237821967275079467774854955326778647080019617668446552242046241158294615621837287355131283024670038888137938211242865785977781498498470774195361214960385111415404226891898649961222872753466266771126022354971191459211200903915877263723927359180153036284999166412030383618330962178595336313471454344728803062921793224652194185201599918381547157625696010513470544072765705980824367407699342590242985953160000790934267956605632829046588254746319658697382584317513234872251035721354944075905596336915529137074813562017014485793579041919934537566213390221976975803358853823457515977378806265485349593534993284107046137452110663625698483684421014955438879111585473212181880757119551921008267623021105083346390389146763112462134667439741925354383576604836882826635893254694732103701893069287809350423706245354141222532612963409859799646076334544323841535436181094304940820808589525439559024070454735080648598298417863178634955994927309276697064355436645194821396651946236850099821666440186623555013880836123138429506329272445459236727771268437437675525631144785047229029284583280057888934154333341124589920238306642329044823661319276413407292778575087776055002221138334823572474353515561378429825130396913334148817930633761263436392060014759538920028412468040710267580968162380851650664661005155590688909525825474171364165909296244590842173465120506166505774218392654167110158092486066026708208635848634060090447512869513170846974635583904287052355175432350819712168611430694134644063569533051596133615784742704030810423879550564713056057798048999398738319032924811880226442931055519290817376840018558669267187196131554154237100029553965160966358726125163487768196918554724086650408841709936767253532214340294046097963555104764682344833467848260383061267569098037161421062904942570415746743882615507304125435030234882565948670246392303550871360419823411361693167758199516205596605026793822039956997701021363928259038607197233676184853306663463166892415740293673647430545354764706180705679218919134738502315010596557002563125777283007250501585433053106575521359082476295662839354559338335127361724114976531021904615497700950092104668726920172250594649036756172680323519972472966480878025118994345766260960151131412099811370444069243043735232526129710807238531671444412892466141500540413519946502180163610013986230594112686643161410450761263401133229172288374627410514847366724854693552487031411981083202529752729386029316260168166167296318949109544799228682804204122762503538168507691291457937618337796686743655269237827989164461605455766071951670496297745099567203165480077553019068302510046433415034186355511387345062504978102114856421726205635656800419846396317461730281687419659883803912474315867987020497950658601877190750911767780520322989623894050695446584873275806233132033206411530420208687426654297969776766816988910636857845990493102116293109013810304664480147757845773548603609109762214325631845011299643759605633732749591903239850880675663093689009060345692564047699343612791405714689227415890301472738837960431749994153959972473601676102170846943283464398086208073870119701480125123357043094202641227122157101616159502789298352372765267291509477604058461284473878112491207249683728050364965891086291286380775377542944171849580437466242488103667969639656701309273491731016152764540208147077631861530979740729724325337110252284011617018253100873479638795353150825877518229577714332799965229381538747419662872322325952248950823685145239266118167271685471822719217082631834053262856599668264853711722453964989639691376145418718178572395119027813881521478333292334364119921102892607761284855298614534678077150684181885000639921255987420860553152474408854066217023383167879535088969280652108022082275614344822635896101794277699611633029329001961867483164983620595977404118541759330418201573856597651286217643010400374831478942447804871896053097758823725059293174404632357729105827921695311444148526742736095843673973386083913136340371115643739794023888269136266332871245473061661930318903301444993950692738445939357723690602688600783880727640380234235159917609406491562966212522130274553694561652909544971653302586859969104886627476244408381305398835741762930187459081293345607015563111446014775276390266956885853032761732158942407513241095839801368124976486238489569360279171110875493967325384080190320311357375041916827977241667033566587844710657438783445062784900778701867339490236239175973375167669067142169049149471946069268725210890122640615371521988667746321560865224279798615873860462475040519304255822552765638432337787553750527289815721373196083912927404495744847655411347759283221386546298993335915601043462870857075596553447939115411726733987045139498394792553198600217832856093598053376142458552704717068097645849497636177240293328528400068942254737012329623985680405543159442326558233756820005054460785110526716701782209968411204747704737205477213493607430831903711056357905562786972205302077499257591781970181464768717891241213587806891761559862504011234206386399414718751702204976136570283085468683791843996247427283843529326480857546683172107588234841320424754601332138643284916217880830332487942219018477544149706452675911349669941095737420416626171973825406062683984394737011855994365873022346593171718590437990581342140145799631668104166481844144963124280859400883067032780870319376595010981490368412199070727568749174106104781943367674650222482891021749648725102948203749845775239365668273048470938555067319555879373384429753055963632216819102874938337395696477393232597619938083326998473706137645699068318900857565045229066127294568746261409974197134502872462215607656310852151138335870202139121694867939194954703749444991064639637394296477485790054855856400568530575841535275854300870472513793263493366106405911093396569201650042147826278395499011750471219072707864390219317833283710880957077333164670617442219497182161233949334619909026510348854098934414525421420579779376781034234676362131797686809247906207180529632282150959572233573779252660418213487127665657265689998013361142946487648215421092819486324940807142023686806295973233333385171994980879129353516606995482385574255872428241879094311189447612453619643961357279958171721692568279930343756069749446974140702372160099190876505937019649304342000722770908366408628403383021758821978063143734677040977744622812551938935710994553868863700379119399200989873224421246932674164482388536840832857910816580349303768075945143800694697155285406424628195595934137004752712388742889962787394294302271413046080314456425426871143590152393887835724620875390697307531527741247965652198338083558284458584615147891574331617620546672708671343468185336709392464981617935360909865551553575214797515641377592171066506281776855528605400063120783282442908645262258826569475335424237638223656703232979108889661648951930923049080480562990839250826256821290672227520282403686785784831821297791844756865249752855048687676029288638048397347289706194971066253451855586058560957433378620586085522822044054252065683513234058313312201779157762707321220259344270411940423109834970331495503506026507539774947014354800625957438318443346656453668669819569597512005924721304716658082465101095812360967642281128754099544622018630527746619373932925054532373337880406063226937949507437376833191906932582601750015074413416945128961037926249989716955054549056540983306972401171414474620077250575366417496750262011287632069508691027443045395119217988354127104816790814791672310629033401911362962232160410222237893216870846855027090081842682566876473386998296453133873783467805523190408945047850714167544521590121257708555745339102400458298343178617802635458250994307628353798569713008207034153904593820845832499243945374839315277784953667661904007901242250593013523536098201550507264166869640197245375842621782869010878449815595380151961140384325679744046443967475475130121977294850163040351543871389146516330091248572863779272054049367339186869066107490963874836587701118374087170770946229821607170483232176603061789253600361285285886235903204278255536130294258309115968362429201585134794943141482355143550481243687184126825966383155069027418401140424859391969870117171640633783933617389247895546799741069838977112064768628473176348548069821019446308861585883652407900837273866281814411164626392241091230987885867570859293937075378251551050028515449754291755403401557431335476710867100229957063216369085424918860539226374222790016228992857952009822842057267096210397657842623298877874638729272186212358537418410465366256013718715756434593544599966382415207322021779475316156680859974731752661788757223301900347123972532989287941351711695834838309710718282624458921877695358097275952547964935813928425002496481622944531828940380365908933455197323249524326271504767819810648973635606618287760156029261435791636350854092584473536657231109766263927018156495702768702831270135024008363285299518456185654591196111113325949011090078405394802406595600990265878341664384367526907226673146721049154128611996884660247051837844835485051154862872791600317785514551673358930923021559312188403684473531288240409222913022202008955393911679998927018926119654581551592146442218213348235274299219783817465468412691175443702641446907241743101743512678384387322920688943328702229884043193543044712158049524921623835818416872382891933949995917241210563643880227561155309445739774832915230606168131586599791363651573359943802082053190099646735991088269949491539291501465991480876779096509506341668245866302830422795350409615778546362659088818922266754676236646302934931811995701524723012687589424070810627015176589693750785369028408981276993028591763183258894192780307740138513965547087217054477678716355073210267015791013830829115729870217131357581549316250438508213535425884974000379537429839326613362816946207846342845823775554912451699149566199039304497265179598161398466864762641169168695825359232914500118899464830617617890817012845415796035145017847782957527226015285247477917317227134681798289597123973133700062250229903194229567081294019960810509182611199739525590651981232590798039166050970121980830947668580069793551108605857568628506204731244681316157742161171889738258398365708421875640406806906424287676577297904902403575291425789317184889156478624510678485881035114412158926189882082429313858796965300352736877579663814050996509604186510096265289210168464065830576423701516944297474839003137503219304479089532398681930157950274627428527460154818625704229810454488462828912406523056360686953040859270344417610198382389335184149527787108816908310234023487408822062119831175617101525053223900961376228354385788379998174760166770665538956879098333620107281016959628971615274766986874468632148413370236170206618445800798238056612077612722011539351601288590150575641397837229926727946185593534488549404199098984308050372712070986641262787132981943448113681604781824295570340224883728694398308839232002450216237340344210549145034261607226051928243679311106798813948505830358689292259202763549182507967347953381548453682952775372738440894838710341505862537207913448397099912237675735621455014266135120001249186652616124337183148995591731108137491407570880361892697105272967188546836187389527765633911695634982481425171269980260597769132843819776774742630133414166451840821971149129936427496859265542249053265304766570899988955410918350753983224693892683108902015802925697602842013525946515370685689668032530354492906431746746954283525352938542755747986284133135768077902899087062943213396993317522779744692074728153591691077512839223297908258004091522013141554474758102666606072835356675773766314112156076189716857166139025730929405112832806196297184604214014006922219537583159573390147742041439473298453581268364686956055495651320520206499722577417814229401597347676357595620671961347362609269114465944513892868031327039533063250402966997202424997393784058649838936200264902815409083642763693172208155509279612184964932053366224083063667372583774675713173201662616131389285820128385892433765431678617399069183596218576301856816109765300609471450194685405779746352145276234279033064792193866056508052670845929187194113764484664095303886644605177212456694937034618434777203403640484306145683437616367097618566602201563878739705590402055304969255054287083290841190177885180961917882761533002405877290956322794888218047214575971327134173840843290218165869022496092524974778577443324417708618033147289255150802869438005568493822237691245073636333089795842449068848632146256335476782275890995157852223206935070813154776820226451707079081407631674881612732626319312576223828842567321561707818804559082615423202181910687391280992871565795792809511422172079254860379896132426431642489625691906892283834675553295606643464853115618317224255370417041867576587237284437243974480079119617607650130718377978859028890010714725351670458235143735743434981432890814530662590657580681223074741969327809341791982118505849555187360897488937764907948621110456843435886870721206847561036804283556676344817902368389707645662413170774156902480519284885256470540596062350527974590515531452030261595929618994682821040596755719651685325565041624620759547135812282827791981817094019497276458416207600283821873043632533754899342947487979601519206543616192061877707653857454211986391637137432985942630733854109275096800403751796069475574554420612624276773534865952987099905828764400698369189563140339564213327211162913445327108404954328377318982779095465599033282398196394553721638241209620528918591001631960146500054335931999398778886463698341894804532577328629527619149576450033349637447001917894247245265283125234405436733474732345124817281380575384678689703534797257284423433556172860715310071337990509479033061135891965400519661385196111727411114744174061599940579345236024845399624500180729931957065427632998078458527020914491349688314946763733472731065203585575641671405984257934618487981455303170845030940632504239303038224976766250973627671849664693842342026024364340193415367555815820869158783363600159609186493406091680655211903326779269817989704600449071878550429089960404238297456321421663079223583251532123318744196505958358063959677266082304156235264954188845422742407313150009062630731343752423696439324578830889359183742169635112756421962566981473029196114902270246025529066676312143956434331609217520470482900723600096313651912574145691049521310071264977767060023146517594018930317168324108151952145760159362150705150624481060180342469060548330701073207044527290881906805075191150571392206400202595651512239209760613839240575192178155656923373798262147408619347107117116470575756768034603036729740805171640808982153183726316721726650051422741159707310401536000052287611995551155268067328224906156778179975826264172597122975709402369780759987339971793918379808873420109386700108785243208252980017746510389191508927023091005581358614891902583444237490249175689911176260219166231236313736217936068739200912113153701447579545359592673913534792714587206534737480941711158885389072918305414655277148143044729741083332023990098738679272600662144221561598423228135142539432280376591700275592569747150945830930556748323909448188624280509961553416053979106334458088846732742683060127211151043389643418924056992855438850075936884866912464761852732375212720438803025677705127125211399588952550979636673078690199823969141240995581763842113878898551651675098518761637906811881498882103452406510302120504251918189883604798041033301425846700927176211327708076333512597052339217053013405352772472479229659013945477230426625597899821615611332571569260549156082293596084708552443839488114887982981523169049860933657490830563860878709607022474268394640709837680896097704506306843507533118012590062953701678528639172508802547576355993262847689215247367695195773805507151109869935269799912604727584740170080556558625200244676980133335164292869708254856527496616586933812461077227123196435447036271420485752616327610557628029508073668061712444070981909011509294923363983432099557008519535044232168135702660481385650813448855567475226946290655674539257208679836823971683043942952205754698878754710328961464704428323893347829611401343404469492661474161129845299485541915910031550561792551839431784024668293932200138399374478532470618538006495527190514766656787150079356885277244031373326933794869762516749706648834313349117356247503379191299987845647445954858527310422353957973605964983292852915759032732606132737348395616911411291696141382424785622945339484145745994436341367280588652893791805761988207270997291307395140004818049608449918607014463636552313312921805959654714895699994056321821259195918170360351294050417797119788644597418935886080856591277086368730001049885239535458736204725916378680681010500508559593653312682119699664516314426586906347972063314307784251396543989861962920541060212832895074497058400018526555728528642305069053571981812677801464918804698522005748949772075282941030600258473566773148792288711958652729218893054052980428985246381798991838049622095076521437787376160460809482535454517381418818833275041395731714801059627922721612392058858178333069968823765844124319213750191672543280743565766909609378847000774369015955602186681443033346037916306139399971771650870978284104097884878292673262056811891931209181802316934176825113759467742864258184173831174235503205617457432963536344942543309231298713620609798110557093498164900070225952967540160628209531279301180228078668145135766502654667739882121920973567452302925705156401922834393240526854876227000427798594857920556853676547238748502581511663542241832603894066492108703150822993776764094126322876318029142222352142672404503210779897709160083241195099102068348968793947699186159379764392720958764942807508919654313521050569016329606787218989316885903556479306575654437843303065546967733778502798891483527315576876677222302044195334226205652492548954034254549847862992862745944528109120636312309986055080088415106059874890507034897666154432568892493803737892190420500739726283931492370621312533353126132198457049392923766117819904209387200653975206457932529516049940179638791326079001583432157616295211464937536900127405345651600715364907956972425801231430417219345164677208090052721729893608111274573302987187100976667470925900065439724339604547992855275228877770515384107853472727818332260568411682001754231181413977562058629971543976575308724830261130625861483625808658655624395077660537178019755500229294738174943125460413675287602662457751658582390899487306108651389830320984381987005738281006677353649465380633514012320720434381672998959236734644510272446932936239548279838968918936588488232130513774765361616391312981846925792569636648406743102724734675383032110065895287434173680269475652670807108008407153454821798809383352705752354745612786019147101752990266364129517919805648396208305575321458610562668322420728926868462716529834341353021118623368189273498541679765269633218245339045827888835849706678037116695476749649915432015186502770900910346337326507407490225191135904572017308540575935012463248417902582192390985159046357663838826505687829475546966059778040035312314153410625540515563120752420597198740471254143618563291322121711816135398879574351020840483503306442306836124422568588037321579658261243793669231976829691711583120417090872533874602084956612299385638512771263405693283312043920391026697878761165365742570834065664737334481068168788899343147129318622009793432594266848441532445342860245336043971155659185381021366322578484213851950648031791421660168341044990056744068563118590885666283159399242780360131412723473598762721651908199512567936673526308528130581787878737747043862558811752091348368536705645592859533641865094248858318088219810033386946114347847354698460430368779782499553794726993862766910806897361635955792506809479688003039433316199506599028978714167478992535623855400038019872374277861325493914674498459474170642160414890093973231662650679259708821044902502077171969373369014651951922072368573848393209147467135448654097578400556672823128577810709680985185347579327423824732425999696693263441277170916558367380861156712963340751986108732738113439671755202339503677992640108821622355126180979430155694607189801403272223278888267558291419740639925103893756115697774530333177775799625887021942797339137631590566890747894561722943341594484694869129804431729116057059685969317340926144219319951361011167727453823275651965015354077197609446412948040333943218995517086024516044927044246936314489861280220935119745900386329360743893862602644263734488536886880551996586625168932509166936943534713376662415769010660464937422256742450281564808824144699341153238532640422731169555990233381308979028846034810516910832121441902905846654253585334384858625522720377499609422493317487671737449191466415738234415073299840408268195770078391966639965831152075382488113217999427152777247033531071822992460826204145714220742117980539889841310235010499781121149170860285088960363124072056256588740369513130164271913817112387094144451540839681525513281643308142363342954128886325580349170191337310749076838494766410585038470066494437098913179391963359746845251394285928254221545824231004345872019657046806970700624305036696930099848522812012417785043010506235353276072725465953268358613399445225870829166578909083324920712618373842100597244353944840031249434415416129639713971060076172585291483002696240470826688088811251971009999221892537464927490115667413985176165223745394546409336978322875992258221740757322316913984865192419404262557937914853334287521369125622210054148227230794148080157207455384288950587679047018423623530616488614428206275678659718444996882933510415695172703774926129611825634371881390429244854546527107422945189387234629602144472048479252532085675229184337065619319262424193975170904861383958753859755900064428339014588127578654023138539950438406493423441247167935207237512421531398752992504497417696228317072439016608142629664368070596480692884091543539363188531960054345185575532276069117816971743557163547461179880651816819133878300514679423870415266477651635023672588023616032600010643470969701735751596272980583304921178053392691187108267035902139501816003455436805451537510793373600920800002566793791892928744931711050666224748801552301642981836838242713274646743835110682524841309902497338051812188445248567819037213640904994401964115171511597602773800854208349742687712148900765866579703432748239943246647392603825921793993307112359124583252890516927646443455812598841690508774595355425516975610263934936742823856384088997723483652044802621246151528496654648991256796030751747378962852990039613421302600981088076909090901478587264742905070023423940542238790966540199351664204064915190971963909256406871805346112733448253147498594164982903071416684108182704656838756897693432094456771065344068529089964787601636924335913801835269253787928005737492167475962425782537546480793550656615781462729390999806066648700481606771083656199518084045797392339368216311264685010656993188751880984321954886044652042805852115172226342029048107198412502437573240339232319678159029394280211441380067224017223080448153143317192367054273078154968273158479806799113841495928390193865407067383343936593767137754911123021492594798205475645982924705993605878672356856191427240846495787109316021950993178833601899807076120981814447949532980377965490874051851153416770592039187453139825211103149718566817122791360834080454967058249373096508712537802238748837472550582963076615868848886136195579690986875073609695566922929903003463738684957537047191883771099088291406218323826224913223089423132353597791222978417551352667372016537367530273964104610681271405422733936648937542151807832607231986777399441723527845181771535527629599718105170952306383039341670919091638153657900607628439266720356962231669269948478840769606881811249631549678905762289797760643861561676089751913428972657379273400911704778026675740880429623133243519968116418088568804866874119837297895742866554087509752346414380481762749436319511500609584619814760846872195491537492282634287338298554799919314511108463975617557408228285911541875650087079144553104371051466394743205188736038577971244807455137315444933049979707758677314589000885421974483335103933795692572294175571398220175283626786302147816474371572284026991439658663735089837941515321852289363779596713843624954698184801193031322503372096901820494937659437238715622769373771633022077264411244827649701584630539943489122330774687883283303271390705478348071050679600276016157089968351021045379862673539264624240315260055294049762607078832426075647484754963278442456156627647064175647197221393586548663746817534875865981809692759016909301400736199142238047941543160957124230844284109949132836450754949537721076814197482601909849480024129886009314193811000839519699637058029215686209620661989198409975274266543783659556896552683676750548405949550204160747169649931435442928398765148258720593629081613552321245326216200035533302786601770092871172331986695530215796537629568077600094005180401737806402709787478130699831497132408128848356918236155112878042462968454651282188978696323543154577925483236251224067000271414429913537707243489371031608332412106210601669572451762455769945807178179079368810453231832952274219384028138616243329607840571237664215330381348189378811817697973103088047008611162508548572682165604469306258110343722999259760407365269329051912088926396562928110088125364843754903411219202670599761591269871360836533459371415311379393742539300458724677069253586475012718942511657056252247113763494316118614772200969009706738192092207604586192077866254890068251559436895039407485782593446359603250049093599484526797349149648679455453910962784167897266679211080139257225162800265491488656858079480815156096026112460791187172941702657822658204468349932554244208697377425559360435604156636520946836981438623824860582428037791332228279728630937894822904331292195708417343050213698747128494737683704879486587980904001975805321652965731569257804505603595922131237518821445506687045643648128347779012009184602882868913270946254206376751095814790151663024901184300934744981808777886153770885389272079895657401690617037136912679821914970437564766789473270810233012706734333273101162382572672406130787278587719184025584761411150124320735303248318357319424641690812235506074351382949353856899070943382257599423588113384519955375347686422009406498085163708494355140785610891757229552493645520324429253145231770117697524533448656341528038743910646069259505325527463259609202541862843069216808346468817101660107034032281527390228168677323925338643127837596969262219276029378775436499851895657038040874841302853829590346063454481651294022604308189470513415466032726164481662536426750269849523480831748889791627777969362325173448212779664014183711314073016515135624609444779105615315505463079998152615212994971391953543668182241289580743022150471327175776371046948918877762003894646900656179687186179035204315695211996440028165210039288584988816884311661973618386037410120062501509727896318188950802810247737530629681239647107131871531534982428770307581023200806031227122971328348142113751141905571282136372441346491449871177526528986683906317010282324021635458969046171519204059103538682935733463246056165669637229013801154012682275758566577109163057796415197905220171792152589773343694287835560826150864671852601238463441388272037751858825562200825514937129894985323458887724589796052419038210548222299845468559378993180494948309897794241688424775885313330749283706244208238148272488199632039928803320269795486796779334246251295798313788275355614842668229563214714186524715583048313541305233266476906823331216822261394372395253280251465242510130407531202554157010927869970898413008857668937611903330351576959908811213764715739626602510640159736267677174857006821233203731838436267965034056348871574366929897057686781349242268717987754985300697011476076458652927741917727194596804815160618771647840078085148198182322484001697773567798275827380752703961694539861095664856486745642368908302614847578437344790021804340811886480502978386666402682478018635383552010306912507168455724237261320852372921176270175301828283041606445027519451508827014876045973441472608198420350782272608596520802716268607078729894555561074440029392741198739853492010813592475344128018045714610382403968646757271582657232548006450780054101085575461473390825912375521306085867980973554682857398693378602367827906697193370003364131679518081926654522043190053355176865382211161602015674575491994696968870557520568345486270997113057923391736713531924728442977658472382204568938123689214324323341175063627411448713347887366998863331676513370030837132782794702402180315318593687487095911789452693158501716344333068516746380151391122300497696399224601776230780183712795991095706734319031908275371744212837644647705357885290412584641397771262810306013138134277839237938174417639062485696340056075645383686300032504337939508140554832732915697053340018611443110711080430323227093976095675193778340276381698892235798427212102275818176333199881969402788823758884371341371952690652966056133203631918383315326795407768427777405958567033925642329677693759383421122854671064253788403130943128784510488876412750593259765743088176006062304845575577684152813023744750726665274435151379674495670591408611420062472363546845399057945594543962035593218740393491389889555986295961247632478861210415847513303184117233842733991409815565249291031167501617761737280690396159351422351798675405894187900760296838202635977192496164996378180997741239058969515329564169905524213459042691547037851299189245069548378133565823068272894064762164108517103502836567142533492691874287419110494536597774362734139665186221129950536050933951093555325316215404002404923402557801051763048603773506857980474178076031275985608898194814841366828902349236297304233076089288090295266761797166349957597763200634678440956964290090126163503429626440353317389503285921421806619312142445420235919262611149258961376216654014676925880026154895038006804275575750900631048935642266448211254456202244840421638385811525486953147891541205793213523149477778663780589888242782162498681374870768112145122799077295609723491501002868130448278956442858820899669948749865659006040886037757147153602841129839731527320231536948265759021662793935669644147686392391381199386684845015355669525399713168786467276700368050143959879300192185822384326574916226517363184412479535536008059012879725291454422373951924511534957597272170432987501850299252582191144382407955596301040240194997635704305715026937061316695168305486468099856317561484370284335913812319224419418557416780854939235392836241047228807722124418763098251274590398591287260875504572273689622113590142639974029458202479341727938393672658327368511545890390932134022630455024727492731803944108011773409575242476746775618684827549213752197523477583638780502701175706522573489134346035409879639240504674159063449392948913363325105585857258421700079368628156844223645477058623432263718326928666031311607744691951999439157259667132407198848828769236367601682854440490082384029325284695081516853409423848151415045829498650216159143645028862357450198282730438251272413491257299101560491080204088226655398467420491520340151006495708481433581856264955722288109679661067139670303283282318940921937434142305614620190086885413527764403948403078725891650216682354210968288884273051752881081900592893176100143900414997550255526005343984904716774089490128451887202231221795508972495649994356812219050992770145861146581354540066516352068495801163221801821712982097962066837306331950223888740102960997436027448331822799975311433101658991884188448685942929332978869981386228211577693169862053580415019291401254156761483018400033084986916922793246543653783821747229927320276260752854849605984681615257847136916362092552702378707048600398778868559997050900518540599440071856091328876169028935321869993855048584433693918673318295505385571721029487121515828699282612271726185760063726094276522534792114012764394004307723223755140716347719361901037227737934193117427499490941863473910943601937600300910521518230096624984169578160711314700914290152624893104336632651985007342311797237131096477813947264060273975437384170251812520170079522984049117122248440916186025896742427410258669325061072581636573804007694873555955522665200221294631412015930422163427449054043278496156868957561414531917910101942107460607557846829631975807953692138241872062773150225760112653671181654929380661097571441357150966021213035954592505873962308637747170501939389549824668785222191044182148440163634574031952149851184802954974147456551978644576833686616838679148536234962638724756404907026292372141067834532623713869167490874952450057229653022982378117720183603877309158119351733457307285161718333427684892253840123212564781312582172221004208680001775297845070312094363296089141779730970095327543388265834394633890608635788800477511085813157258686012721168568105316538899711013591413434102742796489581946730908508469509346597551550875804956345559858722837722906773561123372223632002063418818154841055818831882438563184039356644001140297483712124249812354037640603056964255623818700995966296234432585397032223939808980837963862782155563817507128448859461342614795291816457845176287765777148424073850485127761744272673681319044652449322625725801395946150452358342823235554985237404403209355964771289376784308532624909006874303227199239533883292279487201723696139163873597418714679406596732197130129174978324272516792597811587362333828561446405055056000627662293141498347764241924004669814456602885702291081317459253000063624172241723721267508282951294756955654692430274736774800478804794143255397203684030242919095756080841831252948595518637748952061471658182880683566255607172805914568322771464175174449072838851336960645424382659877120805414784696935589950643207306242021172764161044943660861536514948219703426502184239308927098305923664881710631896606984025817828445136880957721318844752384211178406349218139465377874774121377555388688625860973145577988706574683504488920074236137716115926163496147276500770930451105090021830046021197610909189461226683006016290647093747728633043331794325550590849402714630496827989151275199509419953380168237707763551172259852413353698776913998471723893260968961581363008482179552062812529740881118779125357691471765162950087905861781865317277696345539485229702092599988867261620884725451227599381228447994387399213081948755841838015964719872436045194052096853508894923564323458395529479027027191241798855477087907548199975343526579622464720247641748233394496513197915187977106465618473612145789823590951314562526268444433552067408719110195533434355698797063785037224919976196485207855530675484667688529298955425715078728369347918055266250665104079049826435687744068163374836326593964183610609099181159281234997990105430401157374689147907614182464800508517859512113736906930944465978321446357155733455861384792063460520365406433254546060020467437909052764986402045580256640539485234919031649540271257274592641988268206613336957244983467316775740216719487141198404697894842436243325948738776549894530896417228540761380042661809546705903928796493100112299621852210632425993982699263969967570306147236091658827650261587546909889020417954868140150303510989196316414526807191588813500771272400532285635738530039340098335203339504337681410233712478580617300005037427466077885657193870433604435235217201826910400262113759780568574141904837366782449202224801702260255800097931884436105431033418783402566185510931068358564475266564425325248498897245344632397664449353691470447902756420920116870559061477370665830915029942399735897808072309126157810235481046643251137681447708550060563152605460709164030655340421834084087182701581028707215720784726643879257366197335274409088929330987569444934360498851390881956877134765856936469496875658328993384341369709080188467301587981872131159001888280199741846693563478056578049514896730851124018889659673718120766032302496284538544314684377679064491411210994891016511034051779716921997535550909504744836316731841220521411658929066302138748416800877022174856166775557084655171265506759256653287908459740653216040626573606613226532488937308066946703281929316924663820744708087024709809703695051337071648431571919600724187828309892967609199299877314417377460117220285929908276944086862024832384106041706689592115584432355323069697174015152814702627479425227985822972489429373747778571329179871072371733879734375600064596522404814627881357264155036043370523291919076572097710960808423626170737650409604584849204291942272157104955525624739603164318849853820630543660825053782150218284001082403023035966702995093532745499261761724845097355233673158647013345752132008126978846684443240560649021940835572149490371490573898418787239312512997927598363419219533932048909078380224265919719955300245795771475446652994164926857942479503023855802378511355153371881213877416295317585783990321757722302622319434028684499303393346029389640199381242231317074140372418531089187974109733028762241482912664306165401103052805418265798834341108521457242276418022540996915827756001046156890772038719643353731155897578509169849743586748546379876725246631124300589030635494285872669722725267521904300673829260570905175425797587897495085913590347564987650916664154638936028639324806873358242982020458547899447058821381437743020767779197197041779796132990677909776688772057482011495841549315025406062537446984974807010516897029183793211173712965605295514913213287955174543765491957023164136997564555231702792671526021840622481219940752806386018607958976071477913480201475384946379833269432811229782740556523258406031435268901525179862036515524012472256548919676901314244971308352436629142522736621492240144147851414791070991702749513347908780587329203563508659057006190092435681524425178697132407693992840555236547273241302025387018938035831728786918483076355840339886460781886035084650530830169733887013562269655602304286776052770050153304304461984068919493280460312896998855020546431877271692788217420189570711623735914518985513585184618692839079944143873734102563931275673012021148275626286428264750077546960343642391354576701293644336672427983955368635740879610707551282369234435739646640573913171998644569720956313260916822016700485890126177254422063745025240899530498278973098286729009695228419836300154065026895288355117676880605649648967752156648979966901721454860728582723746814018469548416685090881531798158122300520909604969507503726796566506292716695916225787401347169216830664815941569511618773069768264986194716998196310951734661691528866155429392460849587968967769522886494190939703242462972398133273212772828325907921082912074212557393041895069528069366524822118658387507524829774420638060377038924111980430668799304647209138407085823795400824061199561320016055160102423238172234969980770735755554776377667576137973836984492406746436038978401703904012452871234873717431473857644170931249775611028171674875777661750374309822758541099119073263251569460110833810306875147071532160855750139228941092287513249243911743955732187083448463247154052482068457863331497292284115863027937197566895264012946508032259704352238355711760790881588645091936704136599668616113007718945853500371586247343662784795906231073940027594529256513425696643957946779388180769556799275301340810399867295090141497930950112937823296185820255619318248416042811687624219630757039378151270906130704942572769821952961543691801220684746580671351229369295352189104882392627226680887949962442174522451339777665656239736635746702597185363020237159081379788539255270326701490800277504269780593035630478898785460127265069141039219165885789938485114552773778718566390252086645651814391808006227144866897994064804711432366250340455120681720214781365611101057662070843061968337387201408942291132080472357192613149263576999979653251958143139688320528978442143395483084132357953968757530188552559675819478722580736207587959976751327768023825846080361910536876029471979881554707836555913963189668554654070779684203819207467649756279452156455622359831155589364633032105426139393172299807911661705583660850357327704484304678230367085540781500641934085894624832007766630277193727707372781814075556977619541984033057084739137539266541123692763519411667397566014087702019504455636580049490260937037084030054920933087114964974285648738422953561647419912368545147377927400718600861447217354660486359060778448879086168660653827173014996989934197668326534573039840869024465971231583002838509697735406534450405024070968622295103484716822888754984343888453152938493081581471461838177880570742383364126865615239401579498327714764310272588834252602709013001123229309129655490825374611752971336965557764900579156082433523761009866401733739232969421384422250908398398874475016992168959524712865730190176234997075258288622661689440927695520411075493141665160367657701657413398747705230584187887179055714005957115829525994257196472399410336781090330134094859807800568943208000441087874716604383466537382398269496310437819095925590260714726501942243758981560668489859985142525870352503099213642838116104413309971693868792008658160953769320301737174367889045506094301118901936817015608434259667673718632241644105619165770045297571098322278645230865713870726089936422659806556192279503159400833793553075115127168506253417423685646855333482584742149612466688315264165980359672604403796617533652977441535082278767523851855347221902030150828234520654801985328507503252404066466111398013236146146178481816945793047256511387041109414900367203190558148672515005661228178551171139838893130509318967644155077311584836748354574099437600971457949270188136715175254239225510591333462036566003102019975506102839954854257888965087122666136046654961401068148235329258038885210687932083310441581259714897337839129991340922512280571788175811345321330423171985791543470546863179843489599141810208219051565170722681000519934955655253595276833956561488522000239678973708431787804787328185373850549314171599595765959975368599506139451908090675394307252283759332840363987851059950516822872045780367474325689264798970800379679000008391894735918554241359617846680180813069818898601100586454047852183628951958050540352650955814575836069197683188896170771810905681906437047900582865094597605793155526131991063511682135733155868400055954904917479217753911547291235188698058303539012886368905022860878762263964622023916743869696801198727254453236661727412688485928687336828802161024396031746171066402862071826568148582700074759746501782388237545682314655246574317449853422528780949047413088311442944414737959828059366730160147998319391700670452850163890357520326902821584409604536112272194667090934165447580631549571789688869573435459254568324330194058139234975988027945186710442705453369863964242492945779786734495604640632774281101769795256752064054704888138285232906195000757288798598855388710372380937695498285064292042633711470969375709585748085718870199744533931500750875341248755450962422560334814425650152967684912586501242156499335880757785644757140917100839150001406707751563469660982041992703385498207734386234057065558064056388110726943356663507451259258045339621775691331520855184579823025976473161884205241324208971644012527109934905748695799227413082323017962106189415007324886164432321205507602318248216195756107726514891582085114825277911998615022221225309511257700404590248504393658873870108478119922138645452348295641448111725496654474436024518747252783682658784494533038290949518172749500498659447722961094353061675787687491097396243416892093498847535105942603654834498141055793653529319517777860740595742288728613170451180588525671283285685052737687816328730735502785298046527614978100189740806449723156552356503674504769333411846256415058514827351838552651181922974846412506719212673947326603253746481653418275387372600231639018768697371535317792417138300478985103890114351237594587607666651708087612628880940864261057676019367976486347853628524262970478992365122077067836141317244312872999549718298690626239473308268727247546416729998467229312529592823009717766277580006414447912295819589750228145969325654892350325382331999385070151239605736963567195864673981598793334893420799781528001049690869817232206442817876950588621299701830966099849433802411861272400768119039495730422333780617776019596772897625727020476721853125119969232437954298490251140929494122710532182087833777213866108577008687178909418996623139605261390378297413918671248655566834379352951232961426086924861661149706087756627751588103461385559432886735125555648474968729521979628436446321953691754193780667402688942820563320819871452694905616899632588565677805427461500024005492478065193960621666481179413009706230070124389902006096323943355991113340711928371699510761376609956007789306456501524061022114344735607956291157684530919805057687284097837683130566018663225601839637945028483387820915917409363028522523447478343198310263075945770718106630560791676503520874738947229357895267509197756913483511842455003683980021265510802914672615128813012159607056082183980249239007163032947442057864647498293053215006536794235812707147595703994028543551759141725660283977983724782828994589742494307722124304223575900221574121490467134187943919906805742915030357332381086133858485321939805747556356056136504677000791340887655290549706234993100098740624749929190014263964151337122884962591998050390022128727550662260534034344777055733539333768207056774208580245605989679621977032609129029798749884350957242747512792546295062279606531308032116211018385451332032617192304552252517401458409420697536187931170779158942169364106514156038262886522302505946605167606422655542398423156308886465604136108701928994445621732585048200263434981229766502013094256702530299144827609456148295885413360728487762094430619243723159590193308446934016292790675004095233119221824926035984894401719842404943771426297668076421185387294069621645524285442264423082289469954100639507221941407014028378330625375183975314918672980117706303697285738507452691713225686981569100131148963758094144254434560649002550556178946630239863052509226937785229654758753280197824757272588035523269418777939563165894467772661005048802239426539523505107079826274522641297566274546593372025509676240567440006484536863061072032368840042241059041864695285120177366570553910722017984317732374629898185945364153659943766348306560495855940386872678543567284721889604527682743015449809475927511374912260538328987633024849396988259054104373154753638436453442075175875123175874101538861530580605701053261026861628448408682511349399704382251845029987463308667342315131626417030968767848275042962577246861886359956389898231756531891359555910937380981308628424599850252757758489401550964374925859423089807473947352701442477453789586593651407475653842275010815651676977704164214793535731945243954686585685758141117135496760912510396143332087383264395354132048107469441273147784588224078453099131585808312309880137918559445280280131215463908980249189136977382962446654450918242826748740886020634990921633108136607937912717916784940450722502253703897530487637180237029880448205612532002644778991609779020150955136878481400212288909157551752065487199502513694447173835098868551305175869958575864249772160138555595001349371726137224600539427201969286878555624136916557726662914464869815711799067243199433137864991251813574082194364212410985040086680166601459840278256332570815681930211465857600083826515421728745763466817658928452571284545367012311859675772773801090334396484924292203332256962203092679763702486125506367383683882312218277415654192906742222266034953882542398553195815014142331465279246465969685210627296056818470053000725459671125769778820943449170114294610748778458779291510796505447079933957787767572915985801542960811540272037194480488858861925205492248899700736559028903337074050391659630918064397351656087823005525528057325816496943030754550220002645130777603787987971923243180327288372454696561293513503137184164969874543352175045301205747840371113190410194599582888037201074010193847409823446963784939694525057505581526687860672313896138763199298964280120915509777903923764942222305588490815101710024448907740613058886895284482422669770683029895587357208072821489374419360200658253018052718892315423268296943969110152392329246520125281039952379998109524818255136843893243877787478390580106007369732019266449560778313180241504154428198567396204145445603364580201638739844854324733224736316327194969446581839067653355694427082725549553704378485814078850062721234169173847212538798634821697016420908691253558635639382202576985351479751178778068074970049186113723158970787049963156653328165244766722312378033125804767596135534613982023263663547769814441917219816437560773761772888756416326479770316850334297073822499511714752139598021291042438178904860285383726683668286965677998620839664499152150171275774368850828187229407516923710161008396053988428365600762830533930052319400987795506319304491477846385953584875807020393757204394041259135720850594174985557421167043005724112704987399148582855312955985571895765886165084596054560663395145191723937469200566873639733476757656568266844670891536595355197652415187868681200844165338530154024790925921567028509579219925847912456307624720103631914219537318979570416874310967519068049100333923753773060230367044255474909731785986788876596915939955341199113950093531859511119995196487237809729094448474787967505319504006932676559425687470107431509026118000934438553863959784866308191130755482414655132723158970253796877926241138191533270778638195718803507706328838069388571570594020612446907086134518986689568191843552782869338611785340635077145798873381415120090694349527089279997968692085177362352727732767579309703987146061377326536972189194839796060681319043695400933030801101562382688120040255276971929446853988708065874315787004788573157562609741010813549758771628377871086807419193284442681802099861858203843286154453263951046090838594242399000551217814249593923969453881606399476297886899381382654181515338119727317935558982556171558293276914182104429105443952248123352413936630056175192085415077316583070421453599985907990498842041979234314173416889633441313474095887712664693469905256588817810288201203582378072360930934702794207435068339368325935865646875179349251955143684119034047527120852522042432762226315205202905021864958666145965329435326681715082932072226717597842505339459696320666720473438053272944563430894191459708392821573402847806085302651453051226660468123389865096717124241164613219396299805905702576122532340502712505399059949649627843496975158372538856055241078974338289747412400930841460490178408624852657605449036147646444335714355096556353282060377522247234218652737636935998628934220477830454136531234543903308925406009335938472410814758841823678900044766002374342154787600230504323572607283585152421758351345340195289727865255981954544852381804482590560053706543972892362167058699263594409692714422617528848953862433035174035582440463707902841069706557505341838684606052224261756846863113490092323416668769475936154047386140949062302081656745498388124932714131300253231261125118832505542587541311781673563279846234662942833064685553167974516476599161690063200365504696214716943577996213456143735062274829615824969965906636136017283440444991953293583276700599594374226561996706461280679458175098643712387895559267450835720219878042041129014672878250745789432956492827705554986026738770348833685274813423949329890201355778465415867533331326214165349487384683247521906503611926064612810799776605337199496475860425669680297362406965953570606145432783030584104784767553251324511029128621370385327034327202899010983270734261703304317907902479712343732368256409311982099543487339819659356847398208008025035594355191321861290997404205431833886051298141149763640675001252623450709216897224254681869326194312963509535911540097812632850779514537642732433826974284213972575288325083206451620818717445757344636642151454654346034717056530353162625313264585561446552066842298065640183524510390833035162998159423526752186736572827085138160443160571147768110117191804796792671651892744051294618352489109777939643033534978647245048155622706830767191122260099892240486206653142632893646823616353977939969775572346879556434036784778031458449956557444746320572913251466002072537786958452226610893232415409648828106908378478237834059677243535430415153377990486531920135652111636383421159800365996451445152011522878495116724127355627833460366840136980547760423780389234287377227459704366099385265529924860034774222314934562379820975571124131693655682195403103691596240273118612572939868242434547520302199618509941147493600406641626519540410657213225425904192499750893102631204039977261828737777100288967000931819552438823849659241183535016301838020831109702217472744753212126128735847952076878150277656522553865346731528857857803914447395922046639455087883789739234371192676651669945885707793443436654928466424821659838465801499245158902123497577387793531889082810249406045325502380567688335421732119790010996494350901078974051083426038555263193396253758556669665714894272693266069599710029917473513800930477133020453594938017487975716813542424264030885320789159012701063268140946136652687835140058822094051072675743441660038566228886281648452597141921627325224347413530418282453297494362962760276859518465240779374353535598080464578485727404754716288189708257626887135194674152806974330725377659994093040149483098567092375839612158230274298111793759006794854812675486599369228077809507999533999866192780152378292526561485240902308427848125185424729822093142411073079732123641541715417415374811095714810415939289841993343894760531949797185916504777485234691978564605784434038979232158413268207055231449940721661731285193569097920197245785743179641928884831728028376384230300053418279204072095954339986694430927803515958737892014349714236089359341926038764802110449198876691730571282404020580485627554276437134879980064279734505826752287575748181049521367450128255243339091926697329230079072711439653915401429683128274157417705321278049974047513521011690685054653047965458864271645105590517956325274191948120369621352796190717011856649339213091298939695587200890089915174832257229718587663986563167552776017942079572613717496173630856414684251262406860457870803615963081237915708405705564428426858075093691521590935719407958474618467807296733519969201827226679834107710286983058403332958627198658480506024267876520009157990755866887816834875664989126873451584398768933454638417698579911329631213609977180080575150059210131980517470690330225445294272935825572691851208215660262114839382533153992605475387829506690784051719804262554220293232646327467498484983585012439389176604998329957488906032483222274153235320216372796517598111647724421163259607618214892358740499455496092540659089740944600158838485475927668889682281116014946473171793478383971838348150330302724414604118091281087540862211805467171638931283097889423533077068766707766267157931857248873395712997263092651564044500930348322405934694691290207582087742151413885678307460359487258544517595959368451996012856568949257156837373502745509836864190221427063857018687368493415278005627156516745436308891244992177993420018735697466596806925579922712627345976871614264145284512993527163166469598803438446065625384749902361865666700844693855760361568304508850719892672568428239768879683436825903050596295262348680857376213426641444081980830247005869436436859592595761611577227740324151129619498817259176937768171674235829368563295732951110681087149411285366828811237044843127417755499794507128323973970657290397569185678216179175160489610704095669660712891528012599395286796738880871364782620184705322085350578001134895109529615130802504639314683116230845407807077254984601477388749769303308059915361108235444829333271647943452915642445317832959450488878557497788653374591856081139740857797683210383912140404178780612033770675012813455341748280347545215425997040510910671562990535509963406751044493940212045869993782749880775271162901087815957919061496387754773972285960290740224083882208649691736807862723344047318815182877749042235699367333267996865608035935030579637450981926210609547469398437014761810394702764212527459167045865666104231141376986567316507137304953027338815766206206700907931419077341783137734567537057927683340153336685239803647633836948578572569630672720949648715461068779307661724885879624554308516421469322212868790287174109211801578354808409539819215626240494680991327017952066008803974597552259355414793912547671242583057882273187027473496846563513640082767023157860163291646650263042358304315220951215610289153240589115985875412555918918813319158868471051883322179898852464991123111357944489379650289945986768490450037378616821768271749339624963586450423536361126120927099356938288197386549596004629328503939158000670379985512936917307989455825215033398244537392370178433683346442830452534013747477296494365458634638716309502811854218315131736326566189861826298981295087413841854414356899955435720083746687711306661007637761292033346115504064566107299036274388722596867978494415262751359029106467942145272336406239281609570222051115914106818778642528670074447061621940170251824239808110397547480395341194069844628574395090600515199044011641519934064519558485524528363158317619297838722260148405758534659447832785841125204078520033116789154380076418642219839582854534840911982149689174682387773185856506253484498878448054673184866875108770695777029209712311666374307228180821882266531339309442491351764692011294491523958576184902823249361092775783167619695175874406755863840036994732030948647948506543940153219034263458042431924220884196798683963281578646649816641891306224459879005317173248625752069418422380489330518328644921270937109844941309752776491263346002939540214506344657788297224932990589561953907098486742014272941629036878286224195446289183884103587318665855163215562643083259676101707569720663431688371708321661046541245661839916245004854635036198646847091665301370823865689502492815510131400853556804160326699186982668448648143792013523062224608747522796359401086989601694055307363480941377229114939065593794842558215674667509814319259160271558862622120319137041229450206417734805012366657381832158658581788776390658186780858511844211014025231581162716078845828912921552316968519398199248039577656181429918296625242442732428555263902627229539363865718439270486917916567003022734728147941258490177428713342368456270371173389091184013969613313205959203998503321365492122444004432826260695486945511364583837206181636013795321993800465674920461170004206492256648730676206173229807872979911142849299166665619541893438193733314115205677094837307478807896514368374330166897226732699538704471293900048166231294236367442765788667825447550151809823920142068709129632645152088020244431411808444669129017610606804995764171119249331622275327991562861821315093774782983140957781555753110754886746655685884871997393129608996738159516373627122552156540557485048070956818304453093202197109329775037457368175279082027305783299711799419073677474439775331204227045129279580682447725676231752383026593778360448910330099956059626603251577810869527709362026376069409174719363080376680333785531127526602375919463647479199171901280436019630356346164669104173233968535596141352068133342949800462361754241014427852280323182972422816765868850237741811812314509100588339228772733864983404377490904737440251220212517990592339701735311165639252862703774683628492780332048676675998682530704618423812734389915764496802034634301005214792625389388713401627118735679777732387937089482759260104870989711357934783278211208470997313101436730513737957955574195578462770874006842419386243194511501260098278261751545047502366280293539198725572487142231134080225581577951117497821976013099894729569512833724083210829726811491582259298956256841344862881997955893056940586000350178127317701048076226395864494113498295697387950287104094919640800100674957947154434195513389726984897236276730285124434371649542845121159679648350762976289147355602723299370308025001626899669173203115175215734368315646304216546476025028841937421842898180617203804103452428594229194150966688349510555259930912796140331857749790563644786865812740540189532893175059653741977310661160425927679909271179550418899853565431901951574809770959789635194619850528390478598424828224064557810294898150462499598650783112910872620951972616284919780618670021327479062424510269931478871764491508345957676554735818870122155175354950788070188924562358508503995290582452428346743659622228063574945896771562160982992667146487842971388450630862534456556534626086714388401064653498452431548744155292199728173873368007015798734720107339204462202673837927154099450705681968001223759130655069703463821763321135928140156857630194283720399887715493598660122424829397540475966999985147877519448966777809318276736812337916150857495988120282267642240236084770662723795553809574019286732918486223148486186692263305604707572392000344093565645830862797713788512495301352702620134715991356626197843742678027801283791023243255745845427165125901743617575656152263879919499316584010000784524156782839186070790070692294210179643638445596125473258045359195522779052137600243298580872447876236551872954667164393255598593422434149092751887241527877729267436081420245109342101222947627842961290832213402981520546111874565918612566009608163956346934196665343929064087052771785699454627826967901191027807557349832175214340064121593458154966077195038843331217292544456068815833399686030816386271232324380028156770703584668670253303926526267549214461337030200754018171916129592954823943595626676470466184226162385267454921216090859870607961556959807401352762909933193159178227020202263078051006190315171287546993251683835865472110704489447422514018633198509127928345231865509639434651397426417804461628648455578181231086061421868439056333077371902226496555684832409498526030185193405764038093917283241021802076670008223982564827295785101670508634815203550915883242897531377989465560019537289077294295851632823419718231540910444114982676010031197377213408775224497588320057669837426930784330831368838657137203713579961388838631451474983145599709219212566229109925767888374383634646724637247236351645307696276310594849073560998300777610445313314745261933108497467185059044110983029725134564836876761770604568468917499402508245327162596518969815468262006301358516082203664131485359063582296993878746829657574140493459284488379315360155806573861957332273060329203966175207903282356187093518370914059527313735158673691148153648085683084852822104350544167682833294299465943346803313749596827558696287895704552472902934381838952693726940542103586612565799379060677834519964709218403690436410281446552585358137706038096354011768709458562561040808419953212089272182082773894959469692972768125185550325781380563164495473722419945825477860279870836682941992935555538434958854252663195964494547420676663807869744796095240102938734201698748271243095883429246762945774171233740453775177368781195977216185995354884330613073901329900091211951099612558243547261748322969484714221640624171395365271374937325056611410951175156400659275288347635365818680013128331276073809314555508167857618030160901455345885089654751874361424501408995030412600386513451590225720476316282677294805785291555658791560173887758328242238226295355685509578744986722037148290146681917504142320696581813068896329859812998571660179201895071993260524713888933023572470392207034335849099942849319292771506745317163624024255174293547577056202961160740220110047026216396851413259486251486197796161326395279600929144387451238353810834938944213291248175220852508855388667151076384265356810399618208096636873958582878013688001918009270140698407632002357479868204049199759458820196083035817376015139046605775713867766556894217146524775758363183666386331533449686804009520529369499601217332611512221824975163289229660428557558285868233227995925324724337115045902558843623199632325025511589351335612111325947220135482562603950738003496842814731306108689022406940432925562990277364806922154446576438706484276088475059309673532993326099897575993207545215765842383070602861624728625515895377312023691948463472940046117428241400196380658331760035479929692441186349824182156430785640263240627080741418308582662264656242972873129595965703299502573400344766042728708440919567807758489984852921717562515019534259022401885379918441255038970374334526146504634430753083243050419618298898092843131734013804885979874064027049222931353379977385076637382246005591252107012758811158228506166958602567060223658577604062593149225656287962599968621112121222071157282307500843716374726125292092879131593681723550236889334202412913001764517613910770427404921259035009733940092465643225412184661459912206894630652359773462083076039536270042863233426877356558050336702109873586364925953453472963976212271789493057333316465547178822558860501750645038584619090455329534215836189330316511995506106251933122469724926287004951361092474351942161695288690204069981574451768842331128166163070996055731606474589131323493009178092465451634576978218928758557002614168336993004403055100364946058247411488385465978016890970486184143900636350319675361900923086807194830251664283589386599909059049405285500843312290119063615059761965620047242181223789634532191554319141934388934679757728151344815444736219214624294270028790562212424506858731794316525654751761991014258929522075444164878502601120159890963549432488337067695396022391133668111169164740133966441359902131477709126660203230983890040362897130655457793499260528767232411800791686229841315768977899862410748109311097709893875451732865283997967528826107208136383263778953790778958419117254808199937531646300521140304074946755341272722909035231797894636590735965188236016792746231538765017223831555898698419621012149043301571251428674323991325734337421566370988086514955451845665172122817984062606661673049282163726077191216479445413815291705307467963439691993905505482388573221336312402128032203845426034652546286617183859319157488000581477828492463298569293511081228946407124311289730442936304585569649849830690778488560217545909474289559811129494988466455874762455331884261798696058031203390699806067573438084893305612755261659321848065781030726343323239184709866159565341826237713505902017362507644281560883350545257177657436100130843809244957981381582358401726797829191007598843745674706558018701711523018377147931307509644684996049787011855703762957093692306075061252955771686891519708363460078544526348836372858520365416504245072230319910755936478772918315820781343065842005594074638459057791615574069029437681339149677504611114934882159582336613515233466147883013847183782713431529044234322501871896694969636167542196585841961950824293345327851345786923702879036644265870192289943613001924711829452189000596099818946939883222748059771153184967855333501014414061717290787363567652826249085481076434689903237987228449305427767368398932267649157736099714069010866276574815075389303040439692767159721261046429343586990322538818267170717314593890999907545182075153664837898836196700396115200161352917317170198115944401724699490810232120787467138506270541862110072939391330523415043917317545503085708795856371339864062124352550450192620179643797324226459923771305102856607233672436435652070178935399640995240359176314241027619283026694379317887600718097889727568645706638038085977111961821257885369092658012240300860060357475945186299849815901524303203404482715303762761874488085987770658305379418857704134435537375240884892435374453872070940879411649168480949568159893089054920365283461276339454165359260091261168676933112391782890946215291432026826501718887977578493175650034010595080205884877719821237688971267663265647657020498471273850698252794720764085732681793779102748321699400510890741466423931061462079455968803336048788086511390020707998044081598215507463729753888683163803365834859558058578312417889149649312085411376921378140797858629358888071545158867068344880672980365318340641563679675553405075740333870061633865628680192567187030583423970053811721512209582502684518897446229719523620704362890345512399983113489309087164233505826738743138722205750239962830447410392208143060070105542051318007410455427262944077869088140223149312452707994130269484058553605107400146896950133455721736663615715101519869443419429774537397273150113528095343260677557903941675638157924415353948457712903526354880991860437507592819299337964052467514924684560009777756807464481225383592319599053530053709677308894313028167739424005262857920387180475934759557740281698495972862899568302314249353209216169696114761976898107575978713855227454485935944357549567427347157070993604622734833285986587622469784102613582783780962339829941384657510168374046897621323063110692143219109997660312708433858033306471459492656684831066018282835148604688228400460817039180404218062699614038975495837981083588331104129896687225426829819667078249680823132588860506655847617448652143113255636817556559588579043740046023297793587035893414736463306148670112421812534109150509547038338826913361372404002197862165667061208006234365348001954919536549556805670340225563176401695166108711046006570197743807672699330169529864263785389437354842207860519533174854275015610968995294987505550582122691833392861165441702396937194654173289174562104126082250778680805835707215228743594670038821419734671960669262859708590269378979906488953858699536316215072647832114810954681057969199912633400859090325786741750661841675535212783480662002342972509010355257787534293111164429878064965962037884604265824736112485996805194736793004352161902734502489464307564405234819888705197048540771652373594398363767234363869684558800999570183392431016845851690752499913741962190480908773262395648333028860215605620222525606048652302408461821581779102357498314437362073003179640230119004021066546525128141266775806561797860809430412356731092996174734533748189437995774790929856913422472442639622640328568258550503086577850653995987574013756938468817640432476257079055230630853201604488879227970064963658840942888589856954665887812731943983531053601797136328084292363184936727431211970254940235973254065124707876363408919286687267186729412985778319049261682186580020632327299635262366320932312965030375967276887295003515110025130638377543388687842421582085023732222384553718552286737056840754982646449637092868971939519229656005510822808466125829904491844040606308794801878000468821063180235990218967778693605963547399227988696673487886670500830680193827264810767332615189167386588785653523797197160192123668715039554157434073869013609612545865723415083214865082281831753501774063508326636250500456056916261252300151346724055330211482014575953372857580945155408611817542130603313207547310716661494564564124499739596418052627267866065509708282779145808445974586630459090724555511598901482414476253672726293329409248489442628264738984856368879434160502970624693740812193307627908597747662163907268499400742391716141014763291073790779447659370944548244569566513285343917151709989831644858520185324430339311717319243376259815954846917150840098720832855523159838350240240467776446351469221107873501485728885617975613646572994882474695574344079964345833867876588450221192526769141319613948414403672896836484629899746816418209798129477561640332851337602626190333678822372516936860904830191654769849827804985600522183950752760443292838313011593106748518760728980749068268145933190719057432285888704068765821785116111353620000338950993186711116142855443526733568551587373749577909577818132447400223529637003261780956676490983122112229827330806711506981467082463345592411611447695443502942735723084229869490690118692094298276594366932872314787538335054916507332152440133197956486951052867236656102642946398029522319190025735352292381764921906144153617602067370250350615838157475774936687943239301637834055714683496263029250373451010811786722417732877086961163370257627928947398083953846615706938247094601583383995337872733773627922856750953182510513512260600823702026729907905055937135914036568313427340864472911666385571717969131305643941356828964989484827095195565593082043258066480813593962174274642407820385351501028640535223535054253092519713392107074097599803250216749430481359024873023501154982585632762843472584666340988001995762082240908821742357461257300169687903960972521231897022740423409950782996841820322255832197394697283499847396492024276239651993376852513155682424561857158866764785966929957942988608854820480201143154973807508814203056003267483046528163827011646491051741210829487023281250755180273035484137585366729973783201796142140176986830432728595921539373880571541387312571196091483009321297530047916473276898158217037885687345865461721864095102642728951511760550520180523822695484909932402541976060281583366125313260077583612462571056444733926637594312029906541607027137654794313069434968453278669491577638993919206545944772738250999339568458003073971671662837819352049586114623740817841989451804714274684612352889363352273009432075068684817526437043936923477634528573754928888001047281956445630748613531524875169029425202212311588235371664742294562257332000716565669654398507389331976281523151748080628664035479133231882336959164978827636288613409478378737866254641520015646125073566498233190732542024663526773292472568019469102652966955979114440080861655934327284061701209673280433515486575680716031452120858970034103286154053466258005178614062995776011770006997827356748870472333519258358492195885943223820959438326042714694548025653782975569187945997512316572628272282956212531558688448228842261563826491267671676385953915738015995031884603224656121787215534920192505089303248821625751101422646766843686665017076697827622810771221780107133027221772521547685141094826144322969578155372213705590247963542097247843909348276492266435899932499696531889957828715966687965555617553506255865489982751882881431362014907270959527673682139726602080570465274476021807719100487675280634555141242022415440008942445587940817133419698650602578130595249714635182499496033278492280217979547419672777165786661413577182924358428925197676486865183801321999969989265981667551690207314303410603373685960987181278144026129329708748717577871391119809229907273072085742629126470956734019372240207267370117680067012128448590780593322695988372335207206779254258742663244874211784567863428686333668725918770358212740108523933199189797889220168152594737025144509075912186430067930272780844058227002583934698095591313012639644104677824787335660165114242628501108917410006250603096800236035195317155078152937012133575346525264987646136794928459039504361731931522512214649092683895983817045349477347493106401890499534154726738352002862540212877291850761510422701454344189702675269978114925557531415571858148171965017485938376869432070298019105852990627229845086724635160277310380976042277435046534062212946382940159437324915751341667774546631341123209235660230202751496618829920792195767760482943272098651834547534291148975395162440372067219419901184818061444422810848101868965819413181569807989595822586847500773679506390332862191935728229963740142905105762156406846557838110324967712261390966612623743716783670567519753993916675936465517548123726522874709826411719310253292140680585488810183735581503289480187933807913433731884502825615670936785840432173579346135157601328360044546072098216268001381245064451296626143856092055096074236967894838137644883433863285920325691877923970476886079447065253857789123932429607618424652827870963772542013799016799870770367267322930588580289026373054731669838789500270536554719165376246729306309314889566990511199285607039494171648045266611989163767180860268318335264097086681438099369372449370325407821793133160202862077780873475303087718523379379513351074280216925767838694598277057357483383345727529545943363855096811926311083057022928038218924868923175422812296343260346478408958568283660216641746385180888799157189051429523626741202541802818160227104823398382428486081092361887976854236919861633282296917815862708148768331200422604473572380917778259017441648439124236054119560164270147270905783628164859424699468342210909728063177663982323608368930734201912684569387659610984920737494539494110328786874858561045377820872180403664767923502388370546195228625214286127944713934608995860715698545481194311219997076039295543073019911016368826956916969622274029922098441724071384318555278986554165022829669148823556843193795114334407633153692766851685436232096599912343203246728361726331655017065595295083461225542329698308647481913507595179436680349078330578065562245309512959175679022336729191896366496745610304033777771398406492433295296381029701123104014420881909981059506639660332195883188616975603045779046509844220707132829817148465800703819413554687538213112701613385946576907642291376640309799355423208817268866480247490766157438136719111724150891111301425987629239893188007419574171831498315326736310491156215924044057561760266924970464352691674595959490811044180638052420722846096824852607276541862687514964612298022458321264537418434300171723843250184949912079910185338833726195610943149133159120374624451309398320577841125381253106992142902723477023721942580547474024827440873796736246592628382654523993147982848762473455390161762180744399362769018523127612118239841439730469561239879430883219765700963344456606452630344682732868937467347012540981407010419359590604563827640711008531757822307011368655698301428383672604238988590349525193318198184024028546938919374179019849663642186624518909516875242816593403486085829221724976304654031056653744861778923585204764037391053302827618657673618590711052760556103576712627738294703672248453495631497263416923853794026677562253438753430329030782988394249218806492878821569016931886037302407618771350717065560823689124599780959496528443463105361145537184425179271192248507975327677914130686090735213902628928622889915894904414768588932914042255881236220774528947803753099068714817163870845486063690133750056738321009397300117461612459501991472584206078129595793063527559297865955776018782268532929267534179001732649555099559545696333910764866735048650564299450220004356534843889028492307760209168340678073026160110651244836021320032606592763536218087687282679694722340288557342975124015090850915858643169456790908088985895853201366929812851374289352720327481408542506826566126791853982012821155157516266464899884428994298979161287991662220977656697617064226442294539707123865297505370205152857190840552917666383062959184692649130977339271747967406746272673227749795583306059562099403656064249424719653364233916609036223744017867396499931596371115406605630278757826954488637285545622285153840614557068464833915779362079663230796410323409358976747291390222893683930441937860979321497618043815368726215216825785458954270550695788649041987161780008534235302174275513538642832851181165272851942606741421606747183355830083519667503098252127371678488037024724430351592848977261235376891527158163100653075928888150089124134929432409846937521829302720554750636740188544017135162744121215441193666969811183422383024939042135341677962852144784315642134316384098863245575420953859180592028384670658418080277027746465648071831180565746337204868309233711874831835142046421487745504865248777916996308582750636087360703405408528514305312158614090734295465736249638421849043112015027416431271804152959654851462002025869364150607860559579950710730929005473899872756882131746045344301441546937465762028177780664658443912946506762853997320420712638216022646773891906501467478422669711306765643515712228187804167821621664881126530862088092002643487475675353861146177871911639645608935188112223327461283831143337240172062885744627376136888151813007555886273579920635036394049279154173944876925774648066127130441920758701714294190328675433583853842827657441602670479128659359190361996632535130769041782144540185125370314749918826202336673272269045049118882556435245529703722284552395869768666274358754655499261365318361634587362731727875675939457702156121127168620860162021819599812641791043376109634046740077303984854698158083606339684895638061455367383759321817641461265574658261238677531723586793838417142605140756818238941660358930178865106568304777927145600552422559325527684578774436834302232542534535123255915040143315565871873160118667651913821900417958871124216836271173875391249940490223853511077644136123572672187907150404527965948710627484500847100031, 59141415910716148824877415794257325523105028359448356630311121264339215763197402364829380688325570716737623979724767270237448290782092447433880675599529664472477225535924178769587468847769806563278916075618085169372450684404100780821810742863692781409984114911664546181727882314020955454450958818338014705875968425631082622870073646485155829035726329327243469001235008343005497247991436299694254368600926531052840057317150535841322062731755792448498086373536745984708433057291933229509201630161624389947190870972534877425036043565631277791598420491814358690564889969839761972297209544186905633937852157635598548927894764628258110544707886987733015769402962807807490614987889444892137618507526246585513443125833591544879025730890160602625812857771294337816277639594683253740655147522969121271628556402681562531610724884166738149437685961804851719457786740114272255889700757162535817615011692990780548116947920107600566966516504848356867839285623806552950286203693426247957934210631903683666685816872242818778746109043388854689966072742673931133815623280994100760361033888637854607398152149858366763026511292011514264464584684015276755013806293004823113447195270292352883761961739016669201955823180613067457916700546171950783101129257127462654104703311337692483788633265609998438910800031871113116938137874686010679352274965892696450677130686315007532482082840445367844638369129592980608911506046270233250104052067384974094512045762280276323872287280458342987807552869143910923637804144018138481641298415795906191153548925464801771658091412667870847081895951649902450167583542690035191157763481505658822531305752108397910996983838804018226621061038820022833601039705159235295844577886609742782096144125847833933194325445917498896334605200248028765658765417023211084265010552308174087047478204437505914314295560225044636929140570852547413894949858177366812979618819209467489091198415801749876460024890722635218117591029266866406783268434967385543258994122464531246284051477660974426902079910357549086360771067328793281231670883046583716343342681214579730206304376627483389879193130343797659428959729768614609839269734683787142685110605212552671885993101788987972625855053048643865656209543372784382754381891354344687958745535312475381374068307901192441669069808470033071195730805347543810865608942222552778736025433785515537025210852207485513447856152788886811063302089541999516437987634672703105234064847071695449387001047948880137409563122992344525008456403072391375925181518831338913727228952824320806749797156388056668483660217309240166198842455233508653255702818500155811261007698543905872306411958778152642170527868589210389354303587576472200541704621901000665843760845072046883310896271079914097087295659284150291784447673435128704187918890545747021218847029946609327450493365862181799796557835035676131453122589876652728796436166818004143140510597810004323304124747966255813179452394636137914546433104906363943685401934490811490376877579211347034768415593829606225248699877329925188298814905111599793546225139898294693796050683887949568506923456247204060162434022680762767837371783535866356744173260262195583789933019058726250141947218555172773798576958464497954940519140050965540038215044112328876027160977754382544382672307600054575209984304505800585246641567602005124754904135361047673115255395654947120826058204714922622379837849577262766265629879729807632207311388032527082428980851123415899023457299808526664216876916240406517275276563810825233901550205414939165020446841663381644650192123209589783017825811876036948572280288124133935764565418694924209086730388681399437736961315147217481262900394462968936659255357041247581013882446873314935283205360641103335980913502051895755158334494783015678545108612842973802050184378623861361745317105596408169830953294697198467314001167768523242024524951547035712592632782471274325035676566972730936551151038840930022630212158799217031155975458419673744817544277211324706087081757954311300987919000848375935605087426698292424491781943012251851350199447450887813494107028445632730266185100310124229736646051182908895667014477190385272468613850234919165488486316722981516241548508830365041433004955664279521231514157355084293283887843967876947565514971046637067963368086911872376350169789907178156862497961638327582885389937799249597209628832061298083935061051726067517812297447853787113666652153804986764878603802303899939151864103743604816779763102338408700976036289907101685803708706615612475067359214114295399300684088562291905796319798914572174804575842014210555583614938531640637005224504347888297722067562452398653142888318031477211699909388987611598592560858726935415771527647960169897706604339421063283328309460417925962201006571383760995720926645385057474120134513011909070873244654648196564758359889131247646309635350082901158208285906548284814595225043452258022048564969849585151696422135889653291568059316095527697940872094290779377487210001040666211857123528723107899918564591777969099991342515743922326878379855433202177781272530153707038699827243865724603254729621380114199079235085349582505822638259684263926066780921291696049452647496829219934099774958048273370618221592512886399052739920268626135869761327591418233033069103044829223986292785316918253979117299071425599077377735642518539189462879059141895265238836803143280396911611682213043989211444124200688301551272113941684106094344250952311487331614653230084255517366788813139096945642422129551673120049365598486963327767015351551587427215179869524932448104800869209493806348774420592359125257704531590618291916606262449792892289472657313611675737062094489271017252874089262803189265465042809472017837863862646708301408461280491259887339122398144281205677127092530902804575689450429779106450696524192636228600100097937895352755205977566826192219663247425317187181447172866612097032587700369419247759716742098658621794042503129174601960068386342041810287976463325536148382348715489157272374097410674086934825369209810633678393572176889313223601031463862597659601844815544757896641243596546593158831960725948520215083216778706200053093680798813796110376203281772064769061366108386594717851151306630165611387259019743085169126987881177769457412764959862582703890989755357289396679307965102808982773453655948636727228958221170877679913528921071163880375844213037560244600330330329786067171767379869268194503876789150873447143329350021642494691839877584501969395774679083491966890084910832428705276785607932234888404932462893025098564669723663933374106548576230789147953905145272625216430133812224761425925145310532395479389202664783697286865925765626057822932922223371561932420985900773147892297980514935094415978348963806477425082640192638066371166225112505406734988885200916912266493428116630325079487883504037164542979839211784053373044323486989781297080667199000133876659744295173146719887820927417074301687236085169865472050442462379366541330544165720804059369715013725429364904549031225951541673774751395517920039781946693328862267490503139007962746189558216424169301140083035597866319511287345218707655789724186191793866983228986233730483887420421510376020726503601378308999040712305288850886207152725078046137123975403204512543012864995813095721378313652518679931002342491524792963956286643093693094784354751310370399516558494524605812114996762686040694608761421341827548836705702202131421946093181879708831516700131807706505663670374086333008762247648737778751339278798187445847807099071000021700041811192101782348655159178244181774701682936164656837809000890918077445789557599052575324937712639426318750305492947794489471464816384256197431615152923099762350062716391554003936608138018141650830575699734861282123039956683426321804024340836150352053838036019771863798501226011123356967965018147497538646638645286541718168413005450000428605925064067197333765636191484890254460848729506090018945371842930884353737798760058676931346810360528727289001473126016228977779535191259703178307037255318714966036526883101737410194137316958177661853838185252848764245306966391587437438271677468904251865745593531189801861637827808691361955985725822340565593094417502074394838952722287743219463491213427005376734658901788041165469232284526850065177950960924445976635049029303239153575351593610913908640045089666272968870777494399925514943881823311865878853347330400965315392953751545310735559275638765083034694807169179209642533034374083666640900784331748759761251497182709244881347186903664542178537611538686821512813223050757939015666037498432367664979835070926703740330584044212217563698693408573868778068835436445040635521053355219746063660703330266299403784391518373250197448966037680922188154500480141675913550746092665555409867523212226763648583836952240698501009976889426733665061728138558900904778154116406654170763498982208104237673458838582961548333817296640392932601906589329793204721489835688464375044295575391652000421097100051560270040645789925956341570653899775719142152104020283396096068581162882296406174850148342539993486078863599991559589348961492396124598457267904828720216848471501831110816680845013160942381670329427327910382443041933623036452814714628217667732256054621805522347220966132791713238110809228767484972907076482724429373065159915204425090353596466851037632600229268202909321574195601425607198908226606713138913271701572142558345597761611961485452416117483806137595461322680052555513853004169031230946299584488683349252917906737045844768916434894893985035277638058315045609026351791710941487256070794736456566285486090882357560600970425327377179118574285545728303303870310825829398210997471400351768715620761861833779965578194624432503342085837050076998384375109126979290699688637891428708150651062229930675275826153870599082687128467579476294165471407731435601094297242845251109106400031116169153249861837657024948790100388021198538807027028103662413561626345171233776929343520434077872560808212397897566514611595696104520632476314175818741015933908688671328752442189781431368670981691404939996132915445853716110986174992626586915368673352668653597410760457983005590541993118676468626917128651958172562878199174009800157817027218982249787981429207466737262827873275935147085013951668429286576295068283140588320269751571563541752724189123018195520702191386283822934368753694557979217351664274335915642859865024266539803726902918191395903204923178251186756339878336774297411136826067454163971789964983269112169040763873299978066863190262618105140982058478185927440083142015716848618233380402744087811403835565698113254028629549564285786624017979375414829208862601218664246516012810497416745045993408631860379734114114676105091697106657898875700065914595390251077787368463577039483295878663561448858153425218185669711616612310361185091519397789443923859821155588646445498185433770657960509377693746227893165886680919723810166758655295703760042160978832885512317413701045515046115216069890624971084785902192602597162272790606202788371408294194206372117768450487299097638031917086895782150238682179544868346935027762125477990324995939758747021976220672028865772766826481204556044072980444067809001696284463777492042730558730497562417162809122065108282799239848581041637428061331206754661979602638564173610502055013826240761610342004667309050925156116622395850184247213356158187566809703120986436475068162459377302489172832872004878634274852986353507274085285508538931314335469769300952379919875908831961372618720231307596646863407471351776932202897254250593970145692444669063700857169646871034884257532408839236435927928446229817111674789833098935635470541989164572561051272439998112197250364208911656053415421561712692505832355542426346616526809333418832156882004619853948299851344963756931808680619771551815893439259716085132463796608497014487083020025279274293523948617388263585702934595319602554749813383341202918437075819145409038150183553215494613306751133604961845407538331592026192061242492911040505924270567383433218167126620786177337266047358736771409582287152327754432741458945269383784395158671125533837233778301144798372157989742727421859543446173374161450993725925985086534838425054815141559503089316228818806895288821049659922145029930656098673049861963036166154983874141065406572658191508729178664400337493666128627879858640858700829291884434934597409070789674750005641781324113158365635328324678017144302663479850646831899307858405471767707752902982121810032490573375458344838731284146338255149265288284212908401940652798848338528570222629032372874197542294272326170245525386593290655705531730803133224273203477197802712139239891937069384053997652833680446096215585578009308752758285980670397052613099690521420252434491875637959037816433710368800146340827830973428701498334406040512949031813781198713702481043149344113980614166504699501013653819405341070706377250600179898046436650139556613745272000477076922122031827718554961597000256679737292177593884411942131134753745322835885854093929969864911800000110387642491443581107588553974067327925227153894403458085546555520150007806028522535485078251351026457537146651934867614784304781374425921238816633299400948996792239320516078681297224867491276362610121470988848700197813758574649962173195847024505623978718899794390029501295056072774094905540178774933848606589965886336956170506635824802753910016210252649602896793719800308300803173862948776665866335376968735306311547112075258294456091960203295913500987493969632731932294958580911345691334139339059257117488699604162226119656542543723323566640865129172694265709181891532678978027401037283284730386424849273666163599805080186871787678093639620679426529432779484589382614369274981285244665359676437385677626287791058365717531861054938753419050451306900777459820772260175474365121923272662218206349858626637721189093849490363551264465047248665526106777807361668940227705244475269576869128679702046658030357550964352557589717974063140623914992373417056782653799405682142486363386781513358204093365625859644914446934068890030549766304797143904870679755623293069884723834917005908327949920113789959471230917364777821558359712853816355132688995213009848365251573931233313001356395472947810234529505868517273310785332550773865671280871208242409258107569672543656671133726138920505275073563279246664139413331879534126679203660912655258288134071145171898440634960327759670711607663364498376214762085319539102073469691803368322488908208519394157958206846511455520234467052883039004933951638154284452651760184920558857110373477896927401910064689110823802437973669529168463643273836045297811226862569803710148692669385797049343895515060008551292711294896260768575189783920591262044500779395083878953821366580887133486116566529606365310079459591804213071345300319908180535066855312277883982336509464803694497988617512006382274911541800433184808996323249986692558118737443827559700646986478705979330938736981521501748085371570524360843459820818163500191651820066703490653821765316700360848374524053056471823142362485802557592849039767409728507312322370213535544985498284022982107475712168397368084256042403416878691923281624921788669158355946229657294018019978129229610806027803311646668266777449636248804679655112678535361849767982025452686194725835473998668025782435209669423280724010518744824098810499396071588525264231495737323956780029786393711248452704502852694855476551128710363349936753131104084484179497211977606597069651572422836524554506557178186606520670263113434546241271784899997434259351887728132867313976943622108271654984275238316712673702617838191374496354812964710749769528185639295813855408353971658880175762594989999039160325807362643395688860439606417110603009286802626568016840674487594971921440971633616624350060191815782259958982590474951659013391638403743027610118242889894552235442362636697489000213115526301717309787305533775899371610674578848843059695100728398017313847954529462445495635202919380158313901536969554780951294719049829631677554108431411614125100108341266220696363264322506115627149997249679744994960159109607625524021207837515580953639922860671002659935744898537919988717499573710394476188323578150247975054217124182435478594212461853035397659402247995414670989840547168487021053097654299531124274245631040118815000201289887354104518736815620973288591786628473523423287782478762275747409236688131103641446438317044249960257938863186445691482516738562515550365181620746390674568472392489279762740936214546873178080564831623217113733050436705393920834605590034030245285653153590395019820880843033348838250347083131270346673203037924277810084834124064517284114067737995274948246793598898740017904346069517029811918133653972998318088124716059542115426361883598170302949853801835986708475014920693930679951721187106302508316045984083734358582323703099112897597337458977044505681230201438444531168532320435886058721338581780674891112806762098231934772995302084544210225250080697459609496864289977992916082770352303953575739244266134146303501684783934127197967052663257756402614728391391443821655293579181161349469864087808304847887799576848024850964432058175915110924429850991355253699122179115565940801083124327281499969981441786768011737016401407576148035399134604703659966267465238343946829169737093234447241032797024778292117956705927180284502434042402165642283130096993489141663756338529550291208495642972509542362923670138616154843209461569317311587110264031050273243439013710746167402254676369990989379980685349407898017489853626990654971046503423864946362210211919238030702937805188163226012146983477552025067999352581046376186089551565982251359008082485027382415251514935249696607805688639252859474395096720102060196347610796899382810943922527070523238179100470844931610268444339694006925032581721478569122382670109530158752260001389168519572103969185050813582379563186032592971414962817272660346267716490985713504868416252077530127770428125045465397724532831111743770221138818795964586229863808275574065065414408957126110152118309482622634668566413281933029412302667887348093860373495452679698698876859041113572850311579472330033966311928192456499733530951579731041540357779136187875735128478799044280300801349265879448130176956164480170416995638118926879181060201811518721818465151511204768418147860174447399451976148606688737347198013713071825416771165734708786272014704734829920892816085994879849649442632688657309983067924406195778874281071770416015088170697287152537979064200375763693253642505903070183343687936075157661449350368826492994562025745575166224352339537961734587700900504053553676337464652678206200974818590844211342588265102421813975098340840739365582590496471374358993223684360983147582767463081519768401928686637480936396382489168007219349421636687339938930046517711479335426648850910927123877112680426897198016861881670362890322007213857823958760491011280018780996051619966614109631490287881143989309276890793981040402902384119742146878415847452374345515565623026986768812212267538671730850484580764027120222859239239274762630537024480744084111903168751988876749158827582335166209690784049079989242233102996314066677625571431310459845759990555401323151641334452821902207408201772637159603837079280028514696555516984251132311683137893730088080078110698595994996924818016041178561736613391507665928666335526767760084457292960997732969377751945718860598522438209908478225230332629481661071912477253872787880610478846032360021538594903051907418733571428558182068841991380944850549682718335127638273748989028676467259486218380734326349710978385670636217354203668848440088959569995125633605956784508894134036787498500403539666477547715066215286781780084555167838546241541925351728368995687518384511224377892066334105608109948901483538241532932403513682642769878598649001447791611862226329664539077885329093606244350074202079796109544944476679296553112372098573062741441405994952197270268812595368916367529187527610164015632232021758837238650844802933414140087048907876496137322066904424125211615309119986824697652673407251295625125765082282923081267237389084655075478145203140909801050476895274022099771408477913483698684312033359564762203394233113046830062151235731910896101847217790366097845379005152167917967602113470797912242543948221770800784520156058592671440221096833457087412638562994192355253979244096858402705473640634428365528383332225035155596536354253610063730272934242112034234687010900178524959971488556353884262683616629871593900995915343540264662785466397036383014661983884434665478171693018973543151638790240962240932573945471841122204360848509585173601410627671089784512807635334609709706756629802782923002965132923405103820034318771965243409382405706392081834896302585821944602160000346772780519705291591312394833060197884443640021480947153447941974425683268815999526819464471729918119834551280119255388623732770425298242016927274377424742668713919380281322073682156112795947545130624387112556981248337897804020148595777673790027859677406606521003034004126738605665192616012005617741001757011646507307378830606854298665633511604652338963492429827554759287893405345142151640672582453315521129894774414284272229024053938868910638860348584879260553015906748000682218502301301053153515080212506076119672253163095928383223319586544566383212451484036593471016506722320080709530655738916980868511975745625949375182361898081000140766310042868463040740048199705713126515045731027205242546061848595486907444031341301039098969457887543025694887283241196986508400140565017820297350450405320835085347944172864252588529464729320317624844339295196245085777574918347534167409943500675319782619862919962996417346440275274145777830887976661987155113227245850380037440538346092201374793974424038683986267035565408608738126716109594025599764293225412966995773611099310287379942267228821939628632486922295898608342995956601825498570369019103186607721816789305020274753125625758291328034186437966472945976966406464065185585199137886997180766621392172498655577322513292194460203577237690325602489811908107167495573769319490256961788186801840745992789996811261901946769104393526134035142360998010048339980629321929393698058372808218798071701660578485752987338709222227530707813202290101213550345540849908037451356337937409836654483249575310284789122961313287690737922970063221815677355843293087192755969631651363007908925461818789858714979587294277320438337750180329712113234077148777381091255556485746209709550507697576650518458861367842340585452907158637727257439337975133746656201351866372689539189822494849641745807346932324747392469204032964916026440098095270320369744195678776135581773689131355564777968800410882025258517257306815521464802209502127379997130364921038094672009545541003860576735296175654561519769778479222957347879084855471485074145051051356497117541860068714741660840870824061730590126424895211425761754305032315073321665577829794790840685429082509333165535439902819797847418505082744022536158607800913050284657935068697334831203451385032573983404646433452000361298241729314806183071274433668829636869087869553698487732880164521788939435242863476708478807893562625552182920747673490554647693228446857387542516172180857730058628187764261469033642845444561650398099732124410686396297368285509252608199261887450850001793249530262533139453797377154964740521121489288684363145979544214815695278138619486163839859135652935094814354831339643105579298821307644460913069433730387378600121428433858971953032225671401008134373721370111550369002320585381295502122027756265472085697431087321670040378429012976140624421545632177728372027254434031614785183476142471092006509880558973132885542479045995445998238333948012559642803957615776448859868974214962362632834395240773242942625848984346544079009133168699787783275883267668750412386186711487566235693385009557610046865031790889746400229295816091646153938516941022271832899715707939915313083053183256437791726833258735673249571547538902760830772677912069487480198574395642173388629209153421530734981391794331371175006572369611556589115143403782889691964282002625364180121012303270537323256652724168405419722624169528097689068981537557602763159496734167610408898820353315891094775423402454415369365729096646648673129985913174670840483947239072842301000121145342150745115868233139807154380226273789646591396263266077152766103841507022251922467078245124742657347398221440975988000827504976517441961217939459127846678968649361737352457639683022347099815863975267345373932334211779766826118360343481154134727921237175273622186515677924571587887652358624339269487675836117371963567507574090954274774293828788298270813847000047570179006785802376945825807750215606915156526626784565385074461586347903373517113261858448105580382468637996219028494747620980831658119132170433999609586981654561623583319668092390839659700041490537049907800835608128196535093962419463535888824731057699514086776264598140597236855348863543072057721897030087238611267171970734083237912115687290646438896315569119629682185012310466959292712382297894783351186773147072267631652496728712465982934960035902164708429227811976197274987817749639387123490274874270934538092619529642940265643345840539909719561195213126641258558881343789042472870565186699705189903310545885050933025406477930709251237392803878350606783532911759483461182727573951810337304671981778406125552122023358900861758236485866258595690804775349688253636286867603187616469561599141755791769053110572417511438088920399107663266192837301404883072888027920831770110837406952133305108080870550735010963883311001973067964107327718103929932947193931418674274595921140750551307700297892688953451487530264860630730575133897687005435377136162351877093944684964627736480474229560987142567392362082744569331920804328068744697176558525074348037109050547568390235004917827152731911297233183868353720920475855334473725104673253758273498097524875648586016583162197810645285626799191431318176429719497241915840391633354455308003650897125636099261759447520685328541342797320623350573953644386869815506941279651373026329414663312849660207046472210595873012903603585998466581062063282295788429745490997385887034660359785313546288486329332893412916957027471486624123374046384586557087966830175336997045279740866114511046948823524727008856645759087057037324172083376083329209396845332600154144153112177743406242330809823222542090351566039456832976403442314554648204299668706095618265627113274417616507817328122699268031357581431255036517246066985067410058164364133006122149949571040577821484828902211918962734551148757664282502099862432630906639460438916181332631760299701459455569891583467620508291455756543592657684322590911084194454669470857290282942437213497047818555909098454776275278200378598063047362600732943565579364379848157529704166728804954341657744147796702671329763366167628189495512698096573416036648274653085485835747547066164982619613325549416821698232422708592859205427592070138792255714477391580263625926765043699208966886237197944250842545887665747724535956105861041817392445976994265844749441044113193199180616690916631595149149336222512397412054808680193807836904501396413855510609761755562775446248458178155012554376017840996827164259713356944347134810369522410936982156052711876531341995532330778951449363688937019091540781012362086150023225781889026153216247463092601223987151769559216729676332783551123056526426030899267837448792152107996269581341361424157301728287696740310526492298973181826037142861190088341000936470367282826003974376749475223305193583624467632145219612616041093480091599663162588917709791685841221102784322705017030560371468298244971348637302086759195769012269574026762152162604277224374116328981339887233893083931566270998541938787349335337803289952338179304077509914017721653984966558992939655128009856871594241404723129823985466159216960821881917585610218735796076926836706696172742226477637660965511447449796774082267372625692141653861920495688353346372324171862893115548086124619139203891761080326130627915615553456297073052952924321793038389581971596696205289464388169476244537230941866962521434330623285471730197089200054222038786126577278616310841718057520292520589413629204677400514415619486592129925851489554737768314861067289363595547028199546056416733904510533027794120896290876921314268812362720739260251352605273728864197530296387527247833033597359239794284708052717706763745844880252026020928140067183157477667781485457905488788784085760794749413399589500616091797751656952587581867439551397449250548383451548272397162139481443503912060032138535724633919687517055236461244691405611373588671486301182496156697214519468319675157530869234779345863795869693678635569890838370576872507077529134909077148345073589109090966713967627943591082039020426784761912103592271110009061927382205391156642712906054092067307312211199858239621292756672460480784121471457089262539493540388014511950793209747916363831052341257635689116088452785238992815870465676239756559849078310842176071805488450788139077583993490629546206848199757321182359463161674646438961657028813933424060681542976475019560359758111183583940485931446840193089671091468823758447564645646457583125525741145611787558746051448337406297853693291137991156097636019382474576521690575974733417081929152873171709391079957246914884410416488799639055326084361168259451272692352712870901150906607547573734381302002567060527441550634710444690407748934816553454479872434664871378281812412342883024370447289019596739643824712220610245781156894708833993123909366963671130139092889223447551965411330375831974880968903247260974434660761277194674680578068709472108549799245727128512589114365651463423851271173091714665622045724571038997019703703865369798638278729399736187897772230703061835105813021462665192808737963408503860227553227303335492682462975242277015826447053971915113632285045419812912876934521072213759236336226014508213772442465451053885675584277726851117915907479017953613058121599563294257336215079555861135563438279569863034050957964280122441614301240347701206177724118264556574834147603198184403416777584140521169504120380675322355496240105476004921783507660390841609602688195972952606524424404721058309484396551801289829839610018212653220601092765277423496367345177475201453445962459771584938346085396485011627062131718455474788354865500786192841780707333033396491971070311341930687431269185244479760403595104727841228054092384788241690000514359844746379540288696739398722053160118456182245081236476667900672719131597348908005596264912192043086736955988374234677450183584724394449713553521229323385782610789671040386181725855554696206051467623084872179029498794555331130155325106071931911502742017233965891736807507950077351597439056490026013161858575619000942379904330532425798778264544677414211870938580269159323042935361931692662277620828487844040787207747119055193416309018629140512002314440447167272865151823254682458737475490776378350005329227783453129135521782533383253436520459434742182277873489604640073760354365092524714061375206677402869484996361096253929495346660249925680693939705429403013835703552755686532163184897356524908203740103262907769755861886852112672721429843007716582089560342255346087635056245478753158257390681645072284317808695597604100811721744407745579483406082411687269169505089079581851360482978722331177906760490374165738588141065092566947423387683317645719054277119920206381761244348990821720662039212223686847448532256899112853841956251142146582647747310264702194707399471978124840685053160523912750170459829080386296309154943992931444939399159774435057755246255935334264278142237476956522262551549968777521647709686237948617150363773691139675897565669929650536526946751913354964721235723770316711552419164774304040755529396456208509041510259418431872288303353044417046077825309817818400754054152562239691278559063323262305688207864969445697709750117377657406146042231238728841220987213610023225647703161370906360263720601085825438283709356090457639812365945769650078236281104348121050180213188700842203833893051100511588420803478846701482918425536625288770790689005870396590502247057765678346560118381043537140892843313634106482846519459414185972656332016885194241766461213945997881240018977161706926177914656063789560521819082501869515402878602038328405050313455327173519610755825631622880606093766260965928852178210265165785543724660930847037154095022881592047177474412200903965359842371528980880808094734181755083761027501865654885348736928218025121606451108469211446116084522287069470461778138976957163673099914391469100572402658940137415319953004889384983663899240333710616352905078222685846298600351974847208177416658735546269992170208745701191355392783999662181630706751330630870772460035858110671797748466178891083713714577059025749131273964906161781248301245993594670794622236041172347037772448464954466025557778999861273124837251710423303527021369586877068497966638861055999653466971068084681280455069228263542181216635667747170911041838070008821957205554224208225543973680271946046854769936617627940309331739005715154370473897274023787091089534657354854674884405605900552988534608908069587657405460111509102056033374496744496726230524194797677666888016810985612428880904200201833942472682436981430449384141818555280143432160680493645715221824076470766557642555701473059220081232133560678777088776847725404643281406463348381029923435498516687090364123810042451349993897059787072657278777573527857550619153307174185620315007647345892810279156704754785691176141549351229597688018847944983252584634075930395029073405551675770501971174299746759413462991383974727440913363324344284416236246309793847126033926748462871463780366092888572284345333200771516927756990203148133148422542324284303159509967650733261986144526460085996917838267621231335994390252015861303369153713134112186284811434842929410213861859912310061629811738973486158255939710595747215930249744288808978144103538627761643113747455494248241543767230670343076259830149786139052466550733886805603455625073921440321133693627781948228031468777480511107199411708246666982749475870345340057901696485623237621832886669781301687827892689059194202477671833339194758359397908988229585154017868343781483892174110004765608310706200663540473273358652176650859649013768279167268602720763055505734339924740774062742976149302508528700711106015805989776967666299526284377720093464378089167480311854535588258071801388045608556835647762231822130619594179094118077737951054112421237885934461639085195713656088364130869150893811000640186829991680034003037583477811550097179682539820595305629683061382067717393609427315025467957974776001500284550336007806228103648602536246612150226195175346428402761815418916111034118181383960069929319510399513776406825109253937519641830018543277666676159935641407293476313443781415729171216088218858209710685520014622246898609241591327385330158914719237428013658132136255225596115162902242447308677783832327334137500670133312718761317792290523885795379980911717058918758030523736851909924900974829078593668959858263323789186195361651734097624193026234319834001222670220352106427528545091879548817501342753321210418070563824300005067426864471921329079622735683681787235131681680770158627417087593526700049771565289820027926399753225772362312910295156822386011726072581995905630121028101987814837623670301655028025547368400141920834448432194465129293230023659625397512904763158167425635012553942416665486486900040189269827130999928676694991371300569392803957238557269518977532920592762834653656684226057892614164946899633607757170391642893012756642210033599489009024205714040045479464062335536130967090038149167752755735244524104777010941926848724532531579826215851411709635837226753572299785554405387229292472322866020373024789433948889505145690943669875733747816222708173910350665970922707723722322430767300836675731518158958945361276925204113722529270204450267486284304889532207334761732491023973354799695996683662951522454567411665886844479139410031487604923820080663870124848665351616684340489633418538097403591354574696744700634050107048334593939407995255596912061793931700335698434537942293093492757039762945249769190135764079555766285552414448711040287857055637739236554310329665386198231752383127760969217173066758549655723956350375461830308594412348822682325222843566123981790451256348106169466283701475622053719296599635720124321984523060440488732099954298151851011281026112783103421243847465546904798386932301745126016679706447233619991909449144219117511697545269681385676287577871483484428090578460763284161421401096782319123923876055016470782440752063676064087926398127089391924537675305510437360752096240022725399981581779328644634656682917863955481509552503051097055149754402620611301165754168052092981073316241170781721163287076946465425268349317212541996836917464097406565570443425286415378274628577128280927545553160144655556942659066837343432881604163768945211286291722150473575860495290454711625206092992878923822415413504006068168608377107992382939561440586259209826641198164046818799540933835021644692847477605992404351037234141557805803226194849398876904161100384779792751465501361567322395351239490853475732431713794723441843403663281228188397954976608342760989879538649481804748286974492810274065436717949826205621638394806523374537607510397631280918080866255215293693183060412018678743073903252999027575936721751860534109348342135649876639827123985778716186350489158027267839073696549689814929048608934637675207540642066874335801744741809488688712930508289871925751429741162320039137227666550024258766701720126512572740331388639738985953308312740832071015923456067154208936110676015342336024615458874871805317134074023317065572277324307971269263398317173320215723752330729945005175744727393436085423827987956961964535106784360856458145610319164470403591578404762938115138210702683130875270156965543585823446262382499472889197387357470523287430533022612832171734191249492435019802156441891846519092371512049883571941811561317176068785365290975564218279298020630152558359331492890845989589207462931468230145474208726073766367398634898058852581097154530361477610002169315389594324747090114813203723399530830820800734116775594216020890958430825789920439073409342488731840213659867411002962532572335599582919130915555258838852045364932521533514895289676959195333141534410407974599467110047888949136408330023143129812726641437948967090137414823755662668098255237534157595347751204738669076126715059242487880435862877526944781830936576266154481854275664721469571080293775219230515505442083031403914893619842846887559635599934195133504350279569281614159986413136353583029919972293219127279653731341110121580495194119458987587840690805887669742556694888144550595481985095817986711980069819046804826050368099623916742689803818738417749078589981606272610650757114735329770950332146103688454470398750080702076138318787937111219856523304337216274003321209378487161992996655261272938836069145591556424676790291098672369941810792192512697492092037472151434916806016458251309752815668531182369779900390555544353905310633248448682343505130645519385049272794332954184290740938835080032630971582424795647932521692445641986439964616566995336551455968652175344626581128735400989568910639162418105525017450708263609314034228145967026317303033599318516422373671432371353326861839921630416417054061384104178206075137676187624783761092339468977315004449632439697913290842159822647144545606746820821332614773825901690692555648537858499759242329160477615046305910874023997834142717225933230531870299241147633942677059787592528861463970162130322338892337062596126004324810171934338402330055883650535470312363726287230308122634686995097086995984839063309317728860749427959535858168140225134606236107609579100348111260821930465344035050623626168227986127719498038557735306592579056888660334291373918934812853977566459309939872653750838079490203509215152497009636886493485467964646674017293349600874787568324535132875531106676657262812379646661078236847176473957282343832424865059805476124156068439301810078383332442677109515844271638201834466824971320906609125390870846971138199051385706948311546178798807790108454181082406488970321119265742361181753420516764263950239881686252767914906165290933891342243387270580291216809334482000143310134501248663327070645801987735031457078790500479747303177579422325496063290905203099296533243574252147218660726948696961953607965986395419647069566779639246696238791282431673922519405548436216017827508768711272224579837181996531067126996618395552893535206193710700071418753382836952759258254745943923306527452067867847481120434625992042607298572479128939488670181240849807237751162230605629593163562609555980128436537553325054940217098270171397921286587482754109549210061877065523606964542607419142847846296060462318487798234737115584764990465892820020584911135680924112876993282121943294051012698295029975127014716469456775452510843909746331337399111343979767795375584429154252636456886524528903045092372012531307400735834194545834089191604613016218833030852090274371664108193982158052066629701744632449435674085542083503500459480797095047906839060001579876522499187937766438604981495967312112546116599245186132474264468022660535527438568195933192855746768241601781403172003859448827236135701745503747454132696392391238194541675657937635096585531043439796372727983772266381293567380289671000301163076495502876720034357570983554106004743446437706252001090416933998262182398845371460274407138489075344807088788768423088045395246018448705709625814493874134401653367718716101377040383205093614743106112803552795401012355489160119373373315259774195460476699696974747331314668803259770610174112212907235171910185145683469892427858999950042774170128860950283822293016223771382369517157116220797819676324893686302371614337209079080629312344097338928298398342571348241415459623668214486501778739702781405712029048787310839247305954436665423014728813633972626811434303412975847700065716996755913992570534741519440367205031276592097687572487153254715537860520470777914306401251864745468930378154494458972950872867358230145087003216077871377427091436738997319449261362289813719662228076904543809789683437409460666477320942459583583116600989060186801394190875533831720090307567728357086823512095168344799361599128797786923697076516136798680158925980823361612053564907422605009570645944079062325377592850662630617691918042056810793004408511019144115185231987170737342960868770834962880216858581677853274751330234819590872099741205756418090750676330429438684828729339269843033291889891634498248917444937460049530218692122228534095413149385500049406695591528594824055113085777778525243012374731321797828475470564897296630118072756831966699829175856858211320059469606167660435302944649928908993612858519830783811299735293563805382124309233217218509027428599673436911668308718972827659511327343120276099095932772914316893770044022709097330068017789157650078802417357452772926770735410003365404357006875535473111341290101375180978818358657779770461430679976740561071664894485200050226774210386711865649829284220591433217344074503123284947164262524361440841196356962985294271768780387346031036389039310794645577274975406699381286783250274761645208965171372708214428506703377066530946837225705435332017985562288715588775977939673403386037598521054017634859451084863489211388470059932752279588415862178523506419575473087873496312071854191880431683150551508031547905248830634781681783111026164800484548131358803221726628481365016619513511924078997908281009331022787509519684519715686444499428445300731901201712076816504922216401958337516261125248834097530199455970743858776527827396807860693390827601330422402631616837611633221887006069895862168010001762731428646003417664433872687019974989924959978419455022657212554592382326879303493861403600410380010924796689293158651691186292976347756042327881450871401296712007309766079478522960446274417201895541430971160906160351018307759411501330358884195565130802833751274439713546174771259639377739338650468866797018925278846359644998973607119941679123287913106749184054643680412664349938107031244080254684507025796584496788570942050774957704633632239269246181519753028869376111385873342034902556325843600598420465147446716525997855636605565876827529801970941420640936419949580222789323558976934343990664563614585338167576431339522549143596469524507056655873220404236320350961869047723152485018964490798269565218797142062431625741856480463387675886970716577697292844348387710568111406024468074616942911429174034491009348500896873398814559452784431935334278376280649712128870555493672383996504054832881189822066636644375053173848113953411787077670938210470191820273657054728198450742493610063753242252823499640860781430974216673658590357193734434268209641053990934957128066494989633406148560639924775135197067760974865014903923598419375516926362097802538019939621377209715063585128208599885034977961346232721686195687328367336898232727217723921560218042770739279779779295701275049616713005914105377132717813640047801743869153483245046973265487124836630735077456963330475943132988437739075754768041896086985689604815688392427748017631847135164873042640212321016471754370937374557684055233515768738881216525015210829397281826039644065877595269459909205878314356139259550411104829352148551721391990659214409226824497783745633477043288562445293263160290875411533391295893094624380153893744935924953095235613261593791432486190109027726032282989391985806253134021909093676784776987612312754802324683394282656624162925974675085111379187101989236337638756569020679816619040382936510109285926213433054219915046582080489246409849198436169547160473250354819080975357981108395948069548435810419609783865438480378778412155974944989004334274785746148453418010435272319513805771739068347827224233635019853814993376017182029889824476838839939648159018941378148332850681661651998293580684184309325685841346134757832564836173585968540097169116675945722977452566135851504606883877054731621835152901534225734926885681688200756169631887698580508568410488735721921852922686121054277682966066795428520212828482100214196008613905629363336841424643065833185329806958510389157042512976957066267300716466855696997204053970745157172807667722626110785618930084964869835558966305915249215173793336793609864673663150790724650132774346912046161602013786146808783837705233836351032049221872545330390094519788173740879456740992983616143290213075210122454058854646356998688567091697100003763264501026086176169630764618742588604745687453818684443127799012018743524933244256786310260911981828985761158869749205360590646290840930662683159644571857275202695843070621809195964461471894903484756788092748346048981229981077822302548943917689941170318550611148497458512660623571805908479868935047195422384092732637149559407818566268168605149291929061913586184963407079721932550656678973307803479193686332864962632805170427909540852155413282050600053419286319742637124944660523587478875584799364498261955938275266762620309977692887870325363434951814947431274846768955915551205594453125030883737200674897644876325622968183097964266461793733684885221846824663246428672464117210068432499071142877913820609502838899477415547048084555756831898120974083737284070867010147928822988682909058052933964046464590805137741651534937883975181301358787883916071150391903125168691010302979504854852634928581456465633634439196674756682744386092059015734704804217204945643085218981752987176844948937759603942526699949585292222344671290189474745201755756629966744133079720166066275247860970116691858189858067797338176430018931554322909706806211504009173313165053380365129872927798639297836813316812903727122021716557630377229662598390467469947682440326928383584088245684521014872525057486359588248174516709697080535636151983848397153345146729530483685909723626284519427744789263978117643704104131603156027547773689736022658005068161434156972971347902682039263866722492777713406798721531897106728049719735293266032867789028389483384130032135849393119208204233942842520333295491402842459184459430940279989318075341469026876095051415216177942807679422375171114748082891199593185692375907747713505508325597537465701002738054772787982351515394839732519378199383271193065131038885953088925991415415412833408018319731991997832065513647153032644811059825934034945720124006467814170555123999514726201894401399909433931792790473317406996036631365426413863738605829084326905149919218540368068407817558134482274659447123974463515592173920786807755484701946116537904225243838010227572934336507974864135771933961862358601900095660253769484317313372527223378414465086180340895246578471187041900147426098831113454836585389879095117800299724291268341210561168304643288232622362129904353482646455438150500427654417170873506829583901531189595848525162524299709782936934199438243785038240736844474256507579789933987296332887492495519276235861575354242223227051641627950061936661438190927773240216844078449342416943074313364818311439251879284794957184377025275348885510292750283680883182398119932803278703224151053251613057697737338875304773155648077683526147877738326891039500538505930950032617435984367301878936063307824572325653377401860220943697148877295889193432544344200683055306703207123738910831800714650268701892976618906746270095382885066017209957016863768888613047092820946702057955656744712275877759081959944437806645636833127567985549242691296360282390281110878118928740189301544015524297367946888339468382699346785247511214432711217657029338854485871854511088162221062611368870632230837090691723973434110563920722550393042570787422096678766109631006996525352729364624853267556918335491361558716435612914880777574528326078778538516401756047965691834881700095802477066868575141366408488104462228447995714022134185197465212993917580999622424861117809026726996757415848660289897673798135446864848245124200040208739182395923968038946245167632190697577826403938094955738273217360873563092676087422127236751613978704199048052313606145523026138860150091992222166655818902604233998194708978462779212141928909120475160703447465633724704109852909870051200153677818782576682876595078744868925268469897943825511136375321099689526903368859963346162097400530414648705195453470485988597352520307814560044287688815111296926696405119108331182673248520631793803260940267803185853425094392070035772723448350986558630510108812856836126625499876388556234721421683562895398969135680731400499725332922233963428492200918346680790030500321140972478453418156738575051714112776851280754136780751000608510155886056326703377405443555152343966288897764966529386151859270894514638451947107132071468482928874142158437541134338478467869310202344838856952769509815991883919845693783125847964909986515254906192450822669926595852242162994040010990537212271072647907451085026191550975406757273813078653367848991677772967863768756039620983433282309757080208942769527598184457639683173139833039726926720209127943152453067419484704120008039791294344243096607628978817115804277338927739118578900183068940945871544213970528648570644505747269189259294822598480982219821614038008844787866367805459261909052047532139633218764372468568375982056929261034545834245805634818046723249693923084968767393777818703308621414688420441882282728598013580171653564727352674398897667363361473314802218682189370466198621865627128173394145153434174459520554328795989358639157517051694744201028092050172339322279034739081561049560011568795136862460315033239892732086132051007048161551787562940827494479709036694953641594844731296679680949480607739651354995930392471621296307335258824149888519304038832309329286809148850728886502787707159404567161862597440820942349727589517009711388715738720706143926805811219833932737693631981740231837869901612210619644784603423809401450068746566415599329945348429747186099032488663649570349112459087846737806050060994350635163005326148276344580896345792441106235792637256193031670579381906580784830226567513464431406011209757430740056949594530614568578934811531867772752575299809877232689982314591794726398281330236481716502427955340335407021839850711926409699921287399319168241319129399639725211185895345741036966263506351221435640487829505347574301107134256220161384977304730653755448142215155580902920522720158473001577427555242687624547878413020662669955690002817326714861896782840280932386814737162314432244739326545790614027406379544753697841046188128314118633787024502950921397270756423238006170326850561604133143652088686518322827256910005468868282928661392480245568619406391211719435149635917071994355442827918684473827646961824956017202087072555039512483325068700206626520646854186809094564308680159501081665915593639698944910657990288417899626496343352321740452213576721260616903954466123331050998733145561784107141718147576267902082596486325250561853955327069397117229985761335805496396314714456021206471719744362279418948838996705822173378977642922322074472825247667394413346879294780476843485424397169808700234705566106935322663136790299496096614862908072028835654550332106713509041346518268756122502453327459787789010873402160040085510094528615850544044560716218869794364969069052476482918090396073342266533518239737444647761032432280743913713324314347825578474008523137699353208152679451626308850875618023963695827446597327995579905522842102533902289509554352065941571148329105088656610004055086886052710193446508194281705605437309710697613458914291695327807355827497386965858636205643612398840420652335506170471856787097172189111515919045959022620976379619174830197065739002879662805003689499443125071564676201378105704688852796630579167465918585032962753145266333354977716021366854480475834254662403603876218680377022575219328779090597823527820370484380214800997387877057389041241597873403943216861837347976678161775239941814405854214480901938445657074012812034490866449260318490165929486253980029587144278056115651451970212768074767852329522735504941170794888783254347607173374148533773901312883614604546292734360157350881346559905260033808292345045361064286000489987393072159121808505739131174461472502215221466937028152940756766490851285973853672931819519788764191367867596605256257146044515190725220847929591806493188250972324286775789894258250102221922368051318952655355795245387398268584696497247955241535432853958536565206939215168045051211778849106239762692170328388198997660633279048674856465045340152228284037687587636950851379450666853546911495215654228890651894279317467169203664129310521411150099006164821599482560586218987357382241157392271383521519218359136798186301780408040266117322940321764806581066605717753132006029226786551341340521821609436080165301270988004434619971765092250036541836878384400807369802062211195634438746567554700456226114502637128166193010279747775811593300829836655655054217596852335525292583313592838192104795304106324454427975690298472392215692519678279944960375083260612950976726597771341978586250185955279928878653356019591222724453207077889795483468456956913136236654844348554286555793106668048616837194256366112457443298489995327983087246493499852535317556133046485010901144096278613558171962419603849926467732753154029623572357820243696089413617511552284505204845584622700629760730443094163487290615786256299794830712470693009665701621621224451234916807886062098602063641896376038320146198913675952216955835532149655922250373500297312018970027705979607033301124198634130908632337943273057374948452572809441435043328153804974646851110821189006908612464334669498006642806238089484108182179076995379627280295940210754351252527210442614297178061374257093643883844354802999302149447926932447448621214181394936340955996496065298607702771001616829433715562879422471490313371776795755804229931189278996572695507833561118772808103866646573033183149018230183115835608724417157072079161620143052112108341286970835481863477535462769935272087831527150487188061471337221889904930486647431339482158442721415415584119361746801480370572656012667108724709102198364584454352292044297469895060590219153255906593612761048593375345192443303618797325056798996907417014326835553034727287926993320480880748686529439685467970430851352084544182405386041004668765353107007501235476513061119530158810179629831822343298360290114613220416068716814649951264941392418702063399684989522414127143819471177130833218006822458433824777804214387682348936882704299530162697177907924068814848941017503508329932865413877029377658428944416383953187969259856829730217788550585906636940338186830428134786658871082490410892790274491981217764940606690348999280560239407274468905887965525818395893535786381191209084351687704994275513550958147715772335784588052044915733475155375356324549248515202053439323671108025470560659834397651230878483459841432142295445277008808282424792544367676464809020518993605744500837849254982086927567418336204466996368269192428347359398098685937941570570748844955285610831727951927842988878693067300059638840610123306485945176811977117757088637561029120432521887242975406750725309616296194885600012972971390108978725417143566381825873228302548233877989718472763777696725659089231874341079250945559177338853091396783590048731561018262730511279653657744093520998070284996627370542540771511082807588050797300926199270389526937951632643511220656529689631048962795183159673590881364102841362728604385505646893544930403245545180276022050976363538384676587686661019346341716660490240287063584382504552731990350541133727191707440372395245145001599859056741258438444364657389377831910886932236063097252210400749654637997524122505810548234238167193233444239594679401034819130383371574995608308560956900659608998097485093795090087701885615540070160154477831726454950842916897619295138612647803847026208307226996801481506629281236234224870490833607904951716312527186764785067697749655088770467722230102758962261464697978380457111131416814143194836214555149633292916035256290677402826083292852576521780258787026556721012268329174135222466834612023791379541012790858668305242015159410870494844926648716476183617764191381309374034418504710953420886183201168317596880117996081990080460440916206501663173859871274514970484009056864390762924948590429463231525193278063874377894821390638163238731233809447954860031084065900879073578735563658177423356471194736958911014149730033543707160521236080619760584412569142993366610571942449885207554393938515554329567223233182561041190812354145428996704130924093679466870352418871644934278240147236167698804455830324299887687376544327142770585553066713258772430767115414405096744342868319459057521685274208768712018838420761414047998258440492183989377624294702662156728187664162128114347431488294548604818157495594838753093428004293888733571741983845625532922921466464289428264593280777735260026441217625384758388359232262381654097879028288706517803826672622219460146412494809296882173321084932640338560408882229509202949931118035610904547301726189624595142693870494198550262925541848825849749189472499228027020829796335191531189239613540918009266700685276191241646765482308115304956849851015585097635817691773253556896066131833282003690048266508875632452361245632697749738579315118731556488141313198922216197245702575357047827132072666178019275518653459825633483946815899233908255173699048168473505508910337240892219001189646843894807719035550792453844124266621965492194227144406964075147044405285091688493856336717068522209470534034253963661783373024476333592087217982675750783781178858977278021955590874587925507965177071784312495649761254334127325294496764909748737537487981138233911021165041689938287931890609220131748677214824482827546986792057549253189689274545560798056085206797123582297829228186405789507271248764248991740431094105332190359703619290095312160741707230042271420829329347580319547565280490720231612901927793567106098284054010375368185835535040770647639240811533993527424417715462209994959571867762875038302466601511600151410739950780741794184766525067091315307638350667204013337860641868877374905756523851616004355662399086238170924293297842153141481220030124408659842111544452177404210223292123653839473466438783723826537389479694102976904630890417973083285645246716788426929016638663328142966091406514206491366305034154944844660836758827139035867203987931726133250067010356565366305970487197934273665717384777141039664463569144453718594923505049108103454304263962996693620895454756748533129563445473789109968234746654952932938884221830160775857480087364505108273439837147468094766267878445472002110959146660832059895199248831257408942812165245072898508905341813199070892955923642577337727883708833923893027164669967156254631798223797937254779360548526338512611466720948335795497211188868598904016784250260808608267043564700929499478806196895411873769687658493230190900521155500730737788496623967569116564635494716939779473384649434963670686584898193793514854143617149328570807883797516747868496800393085719425078588864079161237839878972802138415637136989440736467487102918180374332589126038943724424776669801526129030229916982725474141512093060256195398058893242248989620225043407042911871999314677335224482845594208511614076597336172757248360110091272539896741455412192218901070900846109537708263906878672852474416072635050797944078177658443728306628825404711720272321653969029537956714874554446880255589866448156151102545888378174454382379787397878029387411381138195198072649180924087872256755016450053402410894367146856473149604338298592002087848494988028612172015822121831287586544222313861413510436449194476092144185311295338537008059742884946695891471141086926481305878859994222229078087551657388309716474368869493634304355398769939667597912281732036801974683973573780631919987968193538371822489765593367033417215397137483036097795839167506718857546239613724303410641228814610782961724281381922334151106689403309476640190183719864227718000392824947352746399829560953494661824304201486910232282529062309544860635392130057179094537236320609433335328171733198337610475192373232880193607235284666169070606568063571562215470412056024097324362544265015717465883465036649050334470642181710151326080745535937715912007537789752236080443813054324813983460931263484134593919303402432292701105141362091104354212833554100402760911368209059211596753994227421982979669905451120867436377225916306096482340210870359640228716262305759369640112666178240103173009884581501913201081248408613844363004153732471260714990870919679206700107606840117959826143489824953104305583547304398210937912783135053916257266537156114886675867382478067548920932977430711741672505273571293936148534736427151286169869901969502601954682029313921353370321410843184132679757056980653303674698991692585395328096780417683103770112060113921051850282862140969843975187696951281088824843972861097164748942650822528663558571537174984927849395240940106025196636455250603657285010985427015802268135604618599515858029667097978170476796541641536436036224935929651276501584498744334857151096735985494568024740305647191654872048127481402424551700020784490470270393762649741048058210651532053789337753551488968087956835311685376075666969132105236885951460145041996335355281675200087264865583407597241439274017747270030528301890665607878779470726895920890326631966684845716132213916032047776162772815978500925620140654388079978664614382899053805271557426169199215945529294919147098892979573702236254325820769316193263929087676864549459506163008744398235054545761154396881141921164949542439226827049957423801370115751077893882334895143741659298192350177480215584070277303238040360311436759879714964249387962417324458733974202771980015816505733149322302334306095936202652833033064965137237223152531354122891027186332290442745969883522063100691026816348911356348214656990052775907871012998104846066614465547174314215471692297744883342290197198426166292953916185895289406768857869596435787156531177371008876581902454060685524000248551166075767854297114184443909373793202361687366423151507912997031167680925381490016553065456057975590108347849447343768433350497897822800878186166643581081424980790789063907114977745391206271589727679451485392088342152330533689259145362597873114128207286459586072618175264800266813733518952714616741225808537606666725317824185409819558847588548137002077568889446188237206787761162993361934927247259004629680293663876875250708146613010505619978612502212861086407527658559502006877122769484058190128528363183789856850877495525525862818574003080914889377619439119354902251185007340221153372354784197897117555119397463215901526472803488607437056905466377717276172476377165250707424351853453335368985598950383858578341905405654235683711766459358929459953827065731348087258151310392079177481000867573725026625751455330319951940509035173027528428885120474971897300417467086215374002754515937772689723868583378580576044154823492253576713170054157056855521048920913786516431424410124345100570728410798126954657743314492015353494527037306760650702809536535209413233057121755212997159674389781094965429347985635718388518452922895379335369130320115709083730932109350282542915114049402615041988095375908835069110753941559143331140172432978820814429825703189537999855614107448494717960698286987262345177695789950363033126754470870040765103445049770298415239444493058753079714416447589446495203668103595202824904227969238716240662126208364806893919376857493575600989824556169460651285285593042731197891697664031137522523628099857873876774644328315831041556738072435038256696812811184395038858305716888044008199821944758079722449228756166699660594555260150506283942618403705668828983061424739534546672560760280112383939067172678372603284055996156079609318353633202854977234657501578319972368496719960447816045790933192515142436493956207690267120194909038148756255672629435435895469560278069297754916513287952716842587411567258455820130613044188928042759481405031864194077870008352640103427265051416987289459388970848645921082161207747237851324084146745368541714296874167200625237620060592125208451787363445858745303040823086609235439176427321504109153188361636564680700457972099716034383055049978088680332746793504707398853537678570795630789432481321895436586427830446586599956503318139136814361720473119237666814062437497227036601202524280694750443340681485360478615540987042630631773883936133755152908126901560363000008200621927830217232175091934366765214906595918185329792024623148577957630923995566743215878637924325518819141415882638343990154932760384313683370985873213028024215913213161498851271432681076663010200619098070401392184350281327665204033387277168830649109452522035049122472650231957784197551205740534637847373330926040266915010594226615777838745562875845758333234832602015359373453304148041811927117511820498840763210858005238186402121954606398739242233000714963859520611456681013094424949594483537108374090629898866755229152667297846829780301366515121794411439524886698672005989300694903803611259149388254995843806304034163489260633896650619171983561330432235622582707789881408861311826227926369999644268954341606663636410333022877908535759980065941848803314908261520642691591481807285948844278842057217564159333009572283886907824963864309189875845624210102890458616213534536720995974543252246403815431247544910956569884321805027561374468845638393723257968541985560932593632197280883813622019434805118539483032791288138822422784202198439264428563870872518354095879547638992581469152741993302868343716864592412098644711474291096121208216611883061034572521586403200360342013013160139038091942554255031522967986675143624016680630990864482110905609827707414384046726260388919968028402731938202869209575551000186769557631570802814166874278743502393151457866701175405335667068049062070749420963963453666453992385931886242899019671822500433149960688746837747361890098799193178484333300221106059504465973068673699562419863921892451595988243975438118915596159087223152205589483460377812573314599473697856933573906968639567363570713139445718662302404398569194828432659535737281574220063711976082259729012406153139042441207924862890204190984832930121330966992831550826222634248853886035869998334547474090350680299375767960577226854246843602511565009679420168396678034949796405704109063256831169124298289609230312337093289756153459189016503280859562044166436766316571720148573092874445018775072309762894835928757871246335372372881473739225264443365714888827502191651767186353152672369085881129661535564390478693483704768934925130394383592166307864434302605027232229733750678227539862655093317791679592508986639527236318052708031998315534817517200457587357307789310949062680766547541773428839201653780587904348288076518594328337501884475923553116649999733567955550849482613640714317987417278645016406864396695990243666338599641866396255037962649328382192706627431586302522635773127863768143759442193238928166977766357336770073204691164019923284319007228280775627911638850037694673823752407819066119946762410336601888215906085851556695003034564192154778732168222000200775808019387403051852257085337503633300760555960515533925685039568994378571908793809734410405549119394061660357120178642867823931654616764601496531016783754759748131123420975605841908685759068716690801423906438998133796135209385023812410972481232493461457049991494232132184930570007067713453658224598026087230614089724740780391069799411798034264952801109912862322980309290256106242453989616747072362121618160178350298805025952133497247724980505531596309730620146393333871969927770334610636969507977446196855483608160217142966645054007594038808740298033959033388540525386347901992309875846223914738232787147267035372810474885044558321424306803112398536386103107382227249020298384787780787924637061098755442765329459323516298321739961171259526539798074121562317368787293649508344891211482381307182779551070170733357177947900557456411350057971013227990032618895983104012445419569688286477756851970782652219251767460003435324121946417759373384455184331087952888312468418030181616006055303334405702728127962201295917159321349823473226636347343282490376217278748261420342737746362159910694637425281196895271006736215916665977833662489651695891385517465162940333252284154274340851951174571817837857295584073387811300387699343267056767199604396160410713029900332550901240223494577736837416558659997646320247241717108791856640960664835093162749228995767693140350337171470295982282829121573801695273141686990335914445841024015402471157142352801695693323943532214263651205780093874563904703539899581264440180515521586316227035125852373021549429387097873555845985717333549991729198640913115771022795478076039910485622870615650980949466384274827210914949927737258263502822249849492890986329511428081823948701252771028003939002773618933220145539918157583049177794007238968166676473223703099617579243977585172976615717753897312341221773900059008101444833969719387088281400106807314246717818919480228264940668877707209677987772744320830618944450704886551054277468254703042683565321949904726602690690688924629115216639410497113386930524512797258847386978852712551970618735375662030008782784575071184956296140584876267496634785637583368544788576564729585210127256134526768849048661518126671806412987462383306176225237205230306441220902236307160579696851693022300461587119794478058292157466109760363897278326103184504999623059560427460215489629139463873489839939892412292024344047328902244915470755358143218159515886948098892214498566151555291985217228873896581631428394293265374779531424208758099843212870955480684332805121812232022087616982612368891936339661673469185353445363368126676130981170024877355373791561085899704748152179927152492889126513982153192461765228130812258748651429743853224191142737002634049355753518963889131688159487317336315846228410910502271007536872846350610648421215547477566771742867028481183707822359145857937137449819316272572822608028992522812562499242094965448399379335439628030619580170901424944452124545720907534338996521983800575130466486860799275797701623099485734182465483129938896658841968234038780808581827476512191267350075409707758902882973188798564292759782852584531192230915186796364774977016699899898379686970040528710432215980446674239336737551405146961278163179386686885852685417702551405810662932789178606199472349364417285923868302965800515984296312676131100800839099170138479409136747772138708966362997181310955027684557887504570581942194291475809134665653702135545309647389939675890906140591238191536245280636294852770280432630104163746388302019942283289649861314683309345777951868617764351526401793452267234227127288432518834517051171424445288169925349129537446366520090748795656435992955683808187351942454620413536322272474340573950960998951842091641260151669085572405158265863797024868302487831181500117919800167944902586492580824917392553777000747710209486063230612335879238669653020715530605112123394248609445819346171298628934136906255718431969927333440925472172112636205142217512016132894367397081330331748535768503186576929432547733888643948677624681896418626850270586364845069597153658794595574704280620012783233772406154113630170490792508898361472372678992245807400836344235885064623139305077277793682826718274323001351175958679359744647488406404471358643781614901360118692092141997116414378823652178312654413188512757719006208075871636274804837768824944391844671353931017870903273845390984646138513368749337298909838061601391767143302680482039160738245670783306201481506096366547420636610543872257476108309354201149982176285395337416126827607371550307954859739785915950322395012382821215214035089292063251352550869455754237397378562203109507826267366196086748780826537149750954759946144432560971922349703602354898164313348896041294194992197934045350318410884006374009161912543304760954774423322692197349759703818699775255521502439536754953755694349725324722995184496499341814657740909642714766756158709113435236001950708323681927674551382539921025783287577972883772482502735063408924348954439759954691364149134267402721875584075568848823411854645027420425681876544491231866023361467013955926050847625238742977087665321200720762427329708157824404588587533300511847543246313416835131421558976014162947285677300746755198468326655244314229991389546787921363369796954383785675502232824212040756409617039323415577547570183588096278668981084486943846715841311517072202317417388167174018048012502061038437095296820221827540160205656199061598649246829539957663668725022716995318456902057979421433078981318833247006013165868238833372622995059408904433865568558341225296847981782948668108057101748428799504657078583802840160711574206191844399532799777345231362206417775353745185770822190373030922692804899623534519661919825290807766234892902589271572728214044473499596427049514133606141192754291794005807445554724136650453457079581879021426746809113893387152815516405627689130948796186278379013281951003205843237660700993111862911887661243200314934973355451656200718146627333262663249555140222332230739538950654586008015960584797604741903889950252062056719450491116285788073911238568349196469951076193369528498981254094124769976287410364823247585150224794438720780349197512072755818162404442508532530106696655504159461709913839647196428483109664925980740926775515515398069747885307397112491464769524082796527408758677687948761381867816942551506819651871485138762583511775546063552193537591377323517822018837210579594452748416189627036646210375042915716745977250477641151418018462860921540279076293821658017541231779641062332984432483966702853498432431523821128837509834338769674833943611936409331563529360188390593158367747918178691579672762871206112750572393491988275587252047225430677074746936248122496980708887275938863096632681088543171617287419683799394727438289717049592006411689264275525627673914538247725800775836637891974657652192441772151997150003203783750625786243364311934516555207853303854147181412665121451320603893885448580003721010058203901512303342509819846467221431888577418207946028737010458188306376972279946583652981241884278650606003385636961229612678910556142993529537234628052889356903324073175301109812059671099016942405050559227540405066957876871372934487126438774772742084126170510300542882318316407515958502727047406950991632569854070656792932014429197254973148753099696615908416043302760024337409262341089021721717336988743803097057203010222103205612453729420506422766807980834916878255792759106494646863499305226113960348824209076561405171127924847864235773437982019460842930824724844133274581333990291189290857310209880471806584493833169032791456001694259458625742458653632508866633177945973407137678507542993031180562661466727227443365733376967594216137697995756498821171903127477523166676746363472820687459898193278172730865818776850364879650737605084585912201882530895493882019197715091813270846822568202802122665259759521199119080650025301350800756601135008207160257084051642527264557788659819102973007571527475413283039819811579845751328739424800047826505128845738377222793460287664339272172866135989350337888326024572011499948432373191484612825511608461949692400984079206532333240267063287520326701852809162050923194590830735415199819167535661792169987822955741240369112303212703529365907249812570725972851215796027708527484182289058901943979876239263433519970523115200945933222443472927098415216216806631145807284211024672976680927059583701928823461640969263860919276570050606889935307352323455709800611017377997265891931613896941378061967714698429468675986871520015191990368865262879258582373831276250137097672179265800910636695989606408740917496490219190481106348291841924969569886194089084528502668271300285438449209711543886518532561746295350351534866969509001532260943657990173809606870526517522560531998921701717717192650255304525177614786348266987828111734510632381074047000795970860983013500369354481024540048285338002524143081373092655748083524033722454671060325442618025298114843983857265875296754821888074412336363262268962549908205940616636326921838223832417712352712755045212494826219329646006901021119130280133421125613148514912163661889293665669938262075033165459362659502531176512304759182058072801260006754411281728860527046180755895897190381061867604889929684734086005715668147350702144286526122561282039630634501024585373953197977217400371250540529786068216571840835463039649864345235298975228553398975930276369993019144728171781901736040010118863168552958652280261633034180557287175606594448191439659000111086881026738603672487040278749545001966912566943590999595942871426745831698888967577615109906080671843077873850160230401320881586468862585018905721633806908196065389327330849479030481148697876727395297024763245960490174471752585341591011584585943631395514080932048092245222910777346161759170752436776279246591222412181707282305248500882020535056415721743230970802917713944777188489568669787207682349353367723080592086888126234318671889676059327257439382472526139421586517891009573558985228048917886596313595643100698126523282525140795431245666250643255561470600152652431726281407334670305404242384979909097733158776680566976944506715107220893251845949609558955115482467265020364575388453453315497692668057903049255132863147537980851033990799405827582503536213489887957623118166719164871418390896246606610262694702431031177752228073692889474173315637790007609665341916684125900256532199934905880527528962305070893719777934249989123530284509009915316075098970543948814473182689193529938373472773422552234939532352086463406330527702988082292705807182369554330616712164191534939253287170601038600280574254569766817870045543058228713895575014193911286162508686990234671856141747806806085465200447885889343586059148146694058935617387541664573600377657478490909816187315677474689054040480801322548869883849741879434456397304433701194384970681890584640180693610312061834005015973847412190448491873678994704948936635535961979936820062612392077667993976597340374503465805632237270543515729991199302824050283029951315165892726778177341079672874366260419902383339588335719560628876186513168791429545016246844733259731144956521637512179734597190803647789690153703945179385160954035958272006734498152669949189362930174617414967850805520278774643097189865182615842635962727582606438967364050015002798838957632906404515977650898378190480033451892123008195191240037799028446540693710297542119591218818040954993330958835538783118870649128429361600682809088466039198428910476118621945834743178512247978193671075051757193034217841543839864668728905269280799658287981971317139972935199496284692508552836979340913309249820346635982102331877327497662156439052017977020663138017597413283471847532009932175136865487598135339782043449924963567929317879208879892619825586494987470728420193285487406454377364134420759591828297025900400071191721625231193996684349466530800445466999140898971623214459702274994131689341331332939482721238906570270939266410730574523324425191269926769012405561414055875897227830473039486885588146340334452437690921834014309152950158815943180016402608798769378233765993356487244231140281181891439027072106146972742525146139033331785538213395825805244227864113704075509890949800244276211319117079406696707446972023315632094808405789128548604637434165665542826957687186521074370080348957006409817638604014859816470596790268822757665280997757374081987901818158483667628041819759118214568278407276714379970524872635984672150038626676090212120673192188957998401446775280988817642966938262598190544683323068453671673880943075039321423408253165750029526626851435085725313774330543224032662441274938955331325784981736163803994526942380894642814825715600317364604082504767148960943397453813435145422028607053026303838926212374051323127881971112259864734237383973666650693798134311176789448661592326612075197017073220642924226068525270707962136722749043417454674389342491786927153915439624019468616677069440764663024630361085715107204162465388337927683725137862797825043510167636501918529658731923596917436247491195009768507062690494818432751657393442005587327715538022341027876696339408393051440962837753822659396795524686394862093680849952319825168708196074737347181556758363596489038093529011455685645116904571895347975089644671520412182529040982677505989596462086494938889358575533101559892208863504489272430354085534498477444187282127321819995405990441689532027906048473113383857452346644845878060395718857672812799076804862057759810850579782811180648966671293591882967620827403358516496859348678531907957207657226454319209588029698281412427412572190620592640278002717581836323594605200738727717544197844508416533066292182909771142401912699530809627204138169649739823162676693507458395954777094048867249071167251489321920043679738298905019651228440138677256470992017663540526881962958480385908884467663716850409851347118521129094842382427529788100845438251570956470709366367014342301588293772158980845344959868831811085092354313958904856364750272348317635830727969423679868103571479101060398072523820403381471257734189408846400507478959139635570901605032548885798741915785733861977132069118702877150564838178457215027800809335936180002204188801624955308125025814182607392420727111853258008528485293219726897740377554323816774786142661304579670341964786782232629899987387555417106130122450487348593545662024008849073478465658158291720832386666296636471367657364062059675938104965863872845206456649613039337267923476540995187162838243371878787652419958683156053573973065015339333812578666527849911132082162884995702238341848945298971828617027760968082185683207780045987289797126979062842089928779119137106558748180658828024046441914397826413772003106890137653339395589455474885668782306030134834642385896951398348391190603130643253657339226479307428043641459333902676999046258591079996679590190188618798255385466373163006665338291951707866604683433895053901750538113381341866300415365157603492095996783019397371273823102495441233767890443506710413591707924126668264778935613332975676039240879280432543320443635517152539837907904577919500035916185234320569007427492812815754402406482230068006310098012428710499131380501996765805869810175379698319941541703512486578963934639986939643856816780120432652714343889123270295198003671699877829604019119223664548288342048561941919153667521728024677649269041577242526722033153958182952217557020668952872399976809816016545329574581803831128546411001531357007675822712998489392130339315089907781759543563212297793197883459554248032986303518746152315491707105768589932903827066392981883260239913784434277586993527410876772145212315535346309647543392567819482189946572786997125416877990262317444404844128304968747003633077629782354887741730617371967444299163130906273654940190796157449515340635897628042845397251829974979567720426181710317902792653573223638916840634742624948221658926351007021229231792894545495573341406595045255053134127122388002053429004059756802011454446627892631747620680732531063170519444595465645072200196987588269450720773224239843897084470954928916326329714489178837893933075345569775695898519356094719218886540776124696310725623119347926145458925251334349293300089753737451580248227205332153569648679830354605785479297231169843889701624889783945565295724930483175716473809674245049538360244535995798021984539820239568083917056207002272445933500508845974844592008405986643966083753308641974109212519188585266517894972303223781351823423903169881070898216107623442642722926921022262220273263910285721882265649674890600177757903368966893596204652301785479591780728687548583992832596551506285231743066017134136815305572961502217838727609787350426294807224871201759886990603445744952029768248421829711284891273441913123834323178689708273997838151589681852350168416848659128678091348210408708902579526259905643725776977927422664340616640928653007718973793911160430762537984549913990367604063863207680827668737484163530010282388992211894671861562195259683681631265358594068329987838702980879105227947970594257518351627676225872801016160439830500373944351471191093330620322509719004120400139070286668311213051069272079300716476131482916259065061048539641294023874770838113547092297768811312887115940319083585943076124602096341299926934646577012868156478786724828381289077463729962391464275083873450521221291965703940253072755339652704105115726811929199541757362877659115115262877598777103301449682243097661851294950716764970679035523097837859956952583901253882860193113509747612179009709664857622851182859571114163872862242476410042568364430742082779430025914114965332386144042030601537787871782349863964171800536650578626507809706617264262255813792230191090483666451421545152303392863093844306160599179602083782168980381106523527874519737968266144060224189335487572743466404660767626775652727064419610107584066397668131706928785323566239491261397080544505557741040501261082214863854089070127622765216802849160095979709326309451730147876367577822473639414732502673240767557977708136155869319159931252986771356495037688892288219746799781158623067158114859523696932403582025955221719874591721827829834083584558502460699635548461713770812078256579891966278437273794354399510801644314574890830060235921541382617123101570304513003295984146819886510484766841466438250331180678709953002316511817872891464662497723760566150146531224516494630390992960394993946215133916327982853459968171181646716835810834828385245357376684597007590450464815815922339122885218046041943058125931375882500435812678093669256692287682631703929653861537113705408771397450785355162274036177411673754464009757178862601998484077867341530082899683294900922320798006115282784469498383957211247522445733753539487907820251654638668093180957207666105755469935383644304864249857811263401292457184476696861765754348263432072619122177057009067409139534644373505276846825198657490508909229641028171952723323818681490309740370643385718026520095244545133012598006526400048421906140808672641234576951918315157034588075105255326543269664209133181781747229290071777308063794711180461560984183384892631430668201550445699687493587407681987554470265923620800058212234652463922011116887670589132987258720015100287056416260838361107230346545594271480733704950098834251800994037278073427551804778801462920449848664911965757341280040112222096519643824855919711959755777891816024985704756056777287069718785137085853486008175780924489310990715844583605440559344874645084210338578523503848820866602590711332029963379865013560942013246725952367542239642206868698693234373177443519029103358482759966413444667180617644664187474162626564888900357716729838445752272275952264497511796108351424895189388658134380210143867647852672661996806562569661545938446952009269963111271227267327682446929081248875595156571019701474894591763720803851885070058643674108073875170443757711416193157941883556491304857764879859726279319735112047158322245006408044022924002539099752558154225664716801665260528086391872200153764546024167220853470111197336541841163143549251273597673621860067606681757130977117287261814993969973200748247061122666050623168066841608020925342661452747926642205666712040743384158450034787688828146523665662677553094398801251951905562675858397576162769485506213279445318479914437298159612252784347522886360412845940951812139599067084250370424110755341648927517771998722610944183757007189634646380755995548835422848351054034837555980879916402273029311708238086299232007970082763218722696809501707611038567949889598300552434193455384403530170392373096797880590426564979110888988447034134979129562584756906007807606445535844907574221021127836679971973754789336866743482360185102640444062478680211363560368274354164236892063927864359702374891778637253469848202814321681342511851241490787134154213712401046521947005993194238588692869538487873901240252541745281724283014395839570651016333520245936000399610468425051551116369230462227940129310864918720299794256817109449150041959479319197025179175653262733247316456029377088460553690392594299658848091805890084071458137309269223505319966667880754764871016985583034558713317865423091800826213848603474888417934506277721040225858223337027669261699796857410806120644306780152674227989994337970432247177679408046163330088148402169690533324120447251031767441082504900751908343474961872406759853955542285821770360630882180417629440617770746572398320626155862103945925453636483768421366552240801130196553606147382892164464743800532126598919880700440033078671758257417085074966926039627236226775699745341903164558957294974759080473833811776562831760534236520708824651411097048396225079442725615204969978320113465156224978459451281979334338239720833803449583092687034512353358151380569977986995096791210004912286946829384311937320581697472225317522728013199058115068655522480871330994883010361884215638099986726139753238577223716472945538117436020245544278193532130878407689127235927684766561846809811474178720670069283688946316421400057543003320583347993121493238258450170557067076029500371737554432158666399371005555421141297317936731582333151328360374125675219222904371198214015493845965418633653014332855038058252309380608559670733165136800373461771719420940021737857903565893719419899137772699637024843771229313339920142669976424861069818336023403586793636832640547098386685963592188411034644729212861093495797399887791139787612761821466428657764787770958070348655726692857304947945473746397606326704729707273818465060643985066025132151418741497007114286536784273180852322805607658594990569302314196526496806131129923712742009193764029906614550395125251647807942636518973459526182290495331377410248394185756363726000221787040571610362559452231807228827384231574530296995369365637893854178124074053848119669679837006020535492179651163407581737676615758379180660326287865499982694093855184599439646912913904613613178624159966357237128372223727408141777549566537616393239338798704605313430207207482933880020709052836755216893056750300487273271051669222312751900433724782350972478260613574719280157615848243594058378102253153968175072601929232693443469153521209954447040692787219805214954402587889017522244453370428544188183603992674039522723946949986412313916323175047695061385255248429751536220731569614331541613981952082174120302031325363320945650936689001745737882414805684023490974166526866139038209911367053226930768401848034574260015244378065948746999027242275219899494745937517199855071012604498757609177145116342506301295210761462001454629560429306909118783605440280146195518086619569770409673597167615774807015948474300526941937588060597370888787954753912716428503034538650527247307834835533593777210283988174557944882249282102788862592600259299964420671979393879156373377414211842803308334606182307792709895429917698745650849152508600866920321074160167752732574683740542778954252792357975815614920183736486989023924719641331678001068831273768550202222576333193219768388658952836655667598146876306736776122668897964566604664911670676173215443720590928613704123163675107344461125845469491043258370812193029832709809594902305791481479964087498030485680943994488257915749134184785229382395942115370755309209043001257324850341014895984840909969278865255871852168046352996966972533860165624495494427516066665725374380536461925197189385237314290121873980308660939937497058332098023167812812683069384860464556767111609476244229052305673179737259134618617619897557616796748229930013888393287886355031426968125854074504376516404751004872969216554680689931550213466064517928923408947790193309206852291951926481234298284350013823902387505727411682698608455412465161312761774386973359645898855991165349987519997739959141476772167313716944215188165738582353140901784106673334013697530765501723887623834107245212057810282897873136840318924394581156956447518252327961599635737625593926930388007494995817702011651774261282391561102758483734399282197019256419965556600912047120822319236697280169592627582239207413497617091838755721889720276378779778504537436962748773032771066896103982253227490685317623893746308184534045542222845873948120579407665820331760089255953779862588774025879901421617479257934849041258509296197325144631246811920856342332757080216775970685773198290587346283676576344248673399316650945255811002301008687574289050964021496770917951380960181380318945921768321672096568781175898714256399162381868212413304733993016445589966627415246570556933507486404706790368206678975945230050501067303575482392202135806817960727645122020252145186122556114067553161643848300262707987099003436166997697889379576779456288226447985649531347679736801978103661595767483259342601201535894090525865743694899725321824838262497638657629096269556163721377955140602213974695607363842265541965424609061554138666121837486269247929322184541928117290641073727061005916325032604556839728675885412666961366658707865824421681590861700305105304891428211759690388465807091016395452457353192842534296752673999329064688974351838898112586835043162917921379375637974953786705053078107661154179551354873995922458822183252862483112900068536736208709187815806174327117514374934894892594464436816563582606483083305556613691566871970056416713526733160630417933502433433380612654608374310799590689804412505792694718471300310625630928863209637142596729338368525860952899315999716640890451859598683666831570385054618350828333365390054825751210721307973382387279856983814448930826017530075768122920935634247242236896252805822910332380268934754141965151135388478749284390170031789237375809937788649940388526034060511495810009679750786722579001989682648427870444133151400775514962479072964159176445655843737651687353357342256701098079696994491030713967261927667430464500152058294859833582573045349317647490991154966226571549262777556027919522129143814307680876917068031832855380764222225662528587999385482120660880948479776769496358536820841159666142260235055815450014290081521055344873001012571665028492019646762762602045277420682326922278653797910489390152964481295105971511371804821852451086615699274982875968734517360652308976475844938109971063756465009669579246589357155943388910529530266419605840407236378909953226303995273456531160449861360582394596359765516153024115166112333355284872768918421817588150751476573345530310137792838542940725328643890543076827084178350029904751119769269568604874841252535925512368767190836420943816340344617193167720288797859543310724129395321696833456061212259527239991235734515931951434847722314377953772142041081988551352800453286760217611404530939672458305200912177146887025893929233089180939832200906468811903790344295209600951134190425343812602363475141550300611579975842429711893707835670595747560456570319604335871158749647898102514957309350817402157037189179485415674571347375993261903229969246101502381055542339425196194727281751055284127297532803910370316488324937854430525148762790335951087379245358613906550838698786345314939823941227846484218680798177123336623544229155632817394546306860028843305441191686448871359605726953568752351237052391381480865355488105630742192713963100872570862938383914211421571227644313337147260080863874049567640002135325281831154037989859794371587939849428873213589560581111875050302205825425875925025591796325074243394707080750322680958420127525116300396861128676363363060794062769470607394862429560537940882894068073015253540054988511108953142651894552482007764883612145970809627275009121761050686195693893550304037247985963683405642605232503705230428478795697807766810278939342806695490102195762835085139048240948948054926943137917083308528028148897677358373875990687433124634270554208646001022168994120904719832578760071599910234628929138858054308236258199450961702899238063306250512348793419006654175470027966191812740456967644713300326381523404892587665069136488607689616437846516705321852987100816265632307067922720176158479927789141835124526297194955928956363314204085209470608937783788064158113132516460077392546133435687606362251772111500827557401617212761777172975833691972256113021626359987162521810078112108735181124239651344557509214767605532234135454322071132056454165835013306152885791310256901042073659448845022898781255526184672742576310783426536298695144175344407329228220991911917272018620932858161062855245978854933432644398096238403649890736870386069580054381183058914004637925051928547201438710930618751695465063448295262706001220327200397166881968943847445829365899588798811551349627668366821410323567930598797296642287313332980365495874476498001553142203541264185665073372969723683515396840154348570180792154868249625239603130070178237894598654857503683936808238072026710288682786272917956790267170715832000640421569800489383459979950767928118635687294239499014799894428152898829631072295887082445532865809631380850400455364919895652264053992532612099493101603188299184118714392414587737679790194446022428453384850220451331673004148753708015846986052927058244671117130333097736875168198240928876456346643017155323120371583094844922064135295808854809501809403156963927985695985825062242507983783093334084257641725173694686669658248843680556995460824215919341708643839465215191761192510526617963828758085803254784401057459094497877334455217361320516646211611515632289781158274450356190183290393867222986364416850419942667584329466421153751928500284876776230658614409335998811961064585224444869831120314202595706378154671691174316591937300598149782180128902188717720268151541742120323493556301921814331404392960108693498537706373035710072853030683970456176556177312933857876161159032475269842651008090014986256015252336116146022631026567733519932023821995934927334425469312859272719183637228383533999077491768963835468268476404636098941650825546434254659292302857448716753191096475636162206143549477312773179263992440174171668351853997728503473562768047341531644541055329096149731042787385488834943538143859098707844132015797650548843829947140579976693209767545825887104576388088785233978270211578947163163588448863019254707039437822885002787567682658571203173681155111037312223453401665106899844392342455834617514918699024930984424438573237995724979916729820636181563446286362820411996711056115314348488180033453590564988520029048328328328237139584133447485346052405839467835391760447971894270977590417357086863799810739324721853507352488148143571855411158239451527752868525234669783351244885972241577772725861997551747891185892977594039322579322619085133849834200480982011195097036380944466987591585887421457737773428999749080978248889063573394982799264723791485052410348044096645466523558567022876020428208580945344916194388631591956338576966453397869073729787882806342056067950260528219671124078459049643438072322734946578861690885577542553165351585878857357983067615287327971462557289581179482113019640219450001369534940769799177165905576912831727303374633978145038478635553862699809644212473101278398424791220458978995649676140903929344831777478108787720807612789539977078363372984361908140501621514238102750869565527931844465756339766269716944131091756338618891436428442626931386378496732865611097268795664437992062648030675832215768050756849503232381591297430239205622596205550739573713519142034512446694469253140318965315716075810677091635438074049026815577166744887534854272672863643429997074268232247300061604466155847497223782276600207177021075487829582418489972921485299607156687577563977624132976627127917733646490614029592040201888695904168140282122301533767889489248140500247294933243992859300960081788960256249567851899790280877363895250690337472091929891206436347405108896331445628131475097609063528604428478731455174430251682337798566527656625706279589117082088496944321072554319542782278941733636420064521519152094574334896918940177949572963796977015230398702936472212388805761689711060343832067845998638467610361055148841002096959423267245640158861140132269215064695961066819740153195912964178375682649485223047035291562334033146728863243305742054887345050789854380317983451043181463607084203305713992227947027716912355809076614025330876988038411397946579233154927895667565870229363646726666217588261799469136823098843977853659816216157442806052963383884238894571501984052986291656048992935698023759808926321868920726120315659541956500631668997840665937676016962139964408985403071445905959909235442831409712684839675214161521063053641653197409811356660274845423976296930547096707483482764178322359891566292108642052064744938385641797772486244829752775846109205351910930949837613250260930421220903662408396641479512299805000366923423328460756595974587479264890528781049765404385905319241209796410943680765434688570251980538348799630152066267531864108147659092154612642726979614884653122799387859320269479032992304672633661022228055293873676491383152479491140504001504265074319197229666859923926906601160305896295125999122890666190524327500448343052085650741097631133860983451904821256561087406728182158919112238650494213762565706683425252050728829271282320076342807891092870814425480765403110896066403321530003434701744878100465195154150465979347981040062471633223826047400549574533147202083497806984167122157998196907415907479370504958130611152129973847351917073655163584453940183544782422824094864925673217737858982300598786591119650704259980898284147974713709596274494020021135840185380696331518550256210433717589463528273784204798608201499551435619348117232454590573026865604699401839261617619953853431283621519515260803908581234759630370605876121866350516047919537073235926990854388528231450204591879765226820710958720442248307351348086506431529884206632363909066422180206321640105999821911853919596537783761564350475000665272287659216523740942273305772852524304785441538120137937046996636730188705953214267452203898774348810484949376353185498869869281332301097336999217336208066643501997991833316668774408003944810813564709552113787459583169865379765774831667429103465096499992549104765369087247256848184023422466752876841581434977546981037337545379671909283322127676926061922987165028756621599811034852899624463038578293504254927895760226490247211787737730862922153483700836766370904041479543752801179160271460084469329861716484760276718732267807170591268111662297363659530820848617902327502830914220321144851929829207223350164401028258043599123509000450655372896328939683456693488879555479414316683645920090418812900438533019230614115621007617564127591559036795397429392786389458002686971339797457147530829209541771277249381353853777861745507658774666931120638160988153615473580209022746666573894893979719605730102049845721400982228269632145438865897696018882110313511425332695179124066352415816927270709931708453335003690982980348426340520662626603906236126831763434372166799948964426329965140605752061239644504731075299773442101879742595700095654657877761666486115391898305341228958849920215287549374596345920563152441256973186747051660432567091282257787939766153263758439192588024960883669081400114987937301341396236029377079959430258120643359703001774315671696123486143334227420085316824413806402293786158514246642422307599239803897228898166786634906418458661724094138860110192529614486775938552613290508047882851521468920482536034300263634748534722242097875287843576963508996009483151698975005618938108566405599473123228314953080762675749508517794169040467560081747328490514313983963616121515998191983445750556417022710563575081387118269628132921293628141518766291781129054058755125575278926957926984785205713824154733216466445628953275348298295493539801431023412849757311939377561460559063909825716142683554149515052330303064568314091452334308427967187402924532638953481436842321766769329858196171224594333915702610839517306222052341205776340402581533137225057715012413711439569345619806388717756868608349672069384951568433972834984621496845429735311105909906243553057525962431932858787424852438175039506981066745902136943762830931177884040030221459767045095272095786850273118902163709010513373348947750995196606279990001521560689606704855228939329769391909544456166541566799838813625124413199570422282078650972427343205140385092619294738985289781791418707353385008265490722443324119790715108040809855180500500053572711997684819206569215685297400684163094813431281152838549903225873072090880958744568622086520150054006887274888477187992887738724897257140166845490660731508856835114050828679217257413171570031012826444261550336030527495129822480502263030942071160499938676201887192968281430875770071380836077924372807886732384826792205230628209883864928815802048180109484086764458413912028493860321954289005416496856050171090032583450396912308797386190011960751807535545356945345923276105685758794894144192571539787298020508849503803252499779945380508757862275619258933555914810982693535274752415737977351291457461771523317685532564285242202042158007514197029065201649724444027483708251888746694274610705256456051800444159533016826320413312456067837838515729240399841433460608661071257560847841107979063607864070726816854658562882942072570554273487667980622219573127667397043648959567936130771004944762449841570328929756026822147759584052045093607075654643134098966588502912821616511094811717278878297261113665108633232420649813348773329777693957523066434803881912357051782894379228138835931110604637167691990073619703668337398984811032703716279971852080202147761143346919837354238038645454642814908215888205433901641017098625942675968516274875016231870385827572697023865908210202844426443364653075522556659534051394495619677968151671039559050886485574969099825836539016998508490276452801728332375048541535096602310534090360591127908667630004657231919732112116909482337975384192012408612896342003549795337809108563272042777575979755147663358204177101027586436568715752291850050510741981505714128309562560086305733405115373403751183858605806678708201556362344434324193542378584459157000022430064195169376185587096331225736680517329783943272098961305232753848402756311996417001610375316375129521078649463975271801433284260048434971768308605418138889459828922969225872112786778718461581187317039068908195921831302138986670901870118894523561831881823843062557419985972084453206904280528037990563250888108574326448320627311786304877164781826073236631817889100843764424044864979707987325773767540383981951996745537680989311361062432497476272062928424927155333523632727448993623958144878915242356683443041549236832112455372314592864059358382529021130520299758190833518346324545173124112957680539733694617558288204517018822297807128906288494003590922234911084042860525388758796552409839297831295125478009896979599092346502451116608514786810705964138543207760396093221930019483244333409562929917963704532296940124274340017853528856056912356833114107816158442409047548428750954982155211209950826179217056635568574528879068021220909148273331085671017309569276889615433332326390610192471150029824755103270225443113808268498144871140133973937720019096498014318666201754122173446846124870381584554463017891198405002319074903187528407084939155786302437835152316461705674927867885417365682756415021198651607196262332599482329690315085326549219297535448163074629480603842100214066115674521133230768425156585349061164013630528293880144428448356425180562106692689250268601002221666693088719791975317350313681509540252967130963896437400965533193952676093521352350212440510056088274079212740671617085167007882652424039424044092476212167032042214443549540875893095912905943806919828882595488191064586969450747879362906652713548033196933628700542663506983287339306486288565285656042006327634429172126653636741928242467737021822172130100857778515358884530637642490739993194685945059022059417797892668896558471928524051702330732644029601446877138710114065319865193877967718763650381402080079570979764130882195499292079102427156718775933774396964542488121082481785793597262916484004871698067078413672885015529816104649192116482605505126085276947846789082582114591678047726625935697787395737387540032966335524599104552804798157920931189445365261730371925384339361587404187800923156689624791685822423408990604897033899851734830181063007201267533792389396682193373972694312046711807314997304567669727559214348644263624843709145959279851745572435706454585374040124580386965816565234611265100165694893587016622829916906080595025489996755605078261459925014312987711584464108341478068742069394513190590566561206511082909097175601259042514138217861037659621423359096032687348602164626418060819158456565600807249384996124131525261151184182602813406802178459225182585690557000855540828614842486697092892459601797101675553172287746956138013202510228783693061569240075793120299012313318432388889195842772725767440213638301938402761640546048801878584733934812867966295238062928736889513745567192637390282648012064076128130743055500562274653232471545884968713632681170037106675143759201483882242383123083472989941609499346490253356567715035976973250630186393147599845397450073367848562057309192876933621108776425166783257282963128673299900422224355245462551672456121224473996875860181924705068462886242689015654788064424324274549612692891351814752343775798830329659132437816973333289565420644488314978504506952211111116541811321686279707686477686070149723647943218436918551873404843656513599513395210597819405694010245720934658937744154691673786579660431276886591907748282449355763128552163063769929869562576669182609449199420115471546179412623999036628091361923044780936313958405342337711965808274757446955254227863294617005301824895348972029964277148382886384900569377966670803790609124244730386991188214277891547771076152887515333690901030753844039264618358274874660220144723977098530286413100920242171892928876758248348179910964039508841003382935197245290872710616765182979473359338308594879622760445126998366699943539033900335078474775013133939810551921206479309281079007178257973466011245310087837576878417049899453166510600557796265485305237645679600301929691073803383370284705467955438362312255111859219318276601472535644164040073381987961015789943132679774297932078891757943924547320428157282855339156825479661794986866834771485248311482298138491131958622635846229782486037916357584154343408328633727152903974618841361630755967401518355923700611299778932821310576119945040338500740316607208687969446406697496572854031329030112705005650847020061116601516588507340930082977835944844051361655031375797021479814561288665287423902603853004467098312201410624954527172241390963170097235517120191647432449476063458474010329607294892057900784892497208613669392637331388523650470672007925256098987788264143028613371996070602728369302431924844516452086431865586619339412809477417166920185532025341026969013020219048135329293811220763539437921376959785292940332192508066206714707517622077391906665642290445054066278985927555739454277541724412036948012895385725936636121087323859158032335689309431814949309983645200341642993760025121415566418091234764661975990560545129054987527986344276563945929592617308631889817459038910030285965171842448726473604735904500196838626527363046828329218418064340482748556321947566728154727284593226758372422706393985995417322697693478199083025304763193929811389986458519774191877260226958634922236343783265276476747154810393331554867280527289587714828108396809338595124567477007181730329430669769462110510350760112797829659368950377578655192403396175725580119018065811347444577651255522444130774678417610542894778003454051616403349059370973247167060612704808773913663647405432010297187549536179368567242741600731778772140739117523140191992993412141809821540916668841165060087725217338439291743619622042159929807857542275866418047847841313122587166494145339608980268001611063525384157602153624623231053743572330760579614839456795316321635536988187039180210080243223168032255001853678922762663347520385393735510079836778772249185774385345082199654501202875232311924203380787991173680404883331176719633041719781769662313406585543350758755913936065497838485834870219261082453557299739056468899104440711641409584983498947714969769347836775013896047754834636259651280855057764771119209567901526255100786396781615227668173309736057484735269380954576157311020913676244890737010305392051760364699528551378367101977683940876751913113977607766331271795500556062788824484857805927789347005422670592910474853896397632852157403857904414330586779679936996414154180613670853324222864490778850513450831738141014929537187661334104168224635194248207756977295700496307139096588143761462547013367416765843316493165224347727418106283010287329593477117404804993247367086558429269298505185084205157194129711020242011631850004277853000746377459225345424874142807408090837373027160844285804359229018041959466322620894068314891674656154344588417952050465373271181540512641784770111870542334088399514015236911089694469070069458723175964193326333469608364915204810241527740427681499466526368426650273215400926666944886143377726630981353691130026961352305412965145126595628872852384775762659985971432028099241023932766451239644692584861858232462824258097568082953099845652581008763561468127899679784488408284516567481648758603550629942104756216976135219416221129061092861202190592403885375576488142184677356928527750629862319465278505699840585288743152756076395105281234549556502448710831608730030369406078715678249512929371803615210033435533128067556426576643824859272984876690141762784573249811820186957635241235225900266811321431972462667444436344400668799406421983380754490706880610211231220203407907095856176095275022453382757477134088906185424963790943500286435312804168460292466563663150858504965951864296646860850582734204469052840225933896884379889321260104041367889112422717453282866516231367758684244315012151907634276161554286039932428069220952490038925175308236594535362326314300470460682150010329205864157074632189888921344918807721795345305285193438351694835604650973105095999077131776920207713324607103211763400140640012652640297261631501998346804187961300640821675347035903549498931430586250997031449107140395293095319691915811083267817328483210936010153135245208657850826402473223324649625378374347392111403724481390771327866295208246425197442336570359994218487784489540938627061377723303616751285252810104235447706022242290064178211777968879212910909348594199356798786344155335801743772173241084429726568251414935524019134115371625888356282738289559038744658006929711888108544775365566927647089049335413426561057474787784498968803184699318228326221992016353084870198406313460408663174914228580395709194535062776481278830124424045206500211402400457223657457401727901054573516023021763075967628750380530801297452743835327097605660257059077865267860437577072478349587693204843718514992700423266299730555380308106124894866158967684384663122340986700147444501195880440463371103722925153181825857401404094028804815803298479083222691514707335308217934063196335629056960883584851180360229739723031152827922327081417672146536661158429238770597968809275123481181481627578948499771799977163802811471668368992434666527076895208667116255770002840305692641403202224089359598791006275766955481711373682822045656616568672351174172249553098484742704052935299297778924584528032459681025293201582747737441725849660743442544931910645627905859981685205530552795798253043274968910577464727658353958686579982109421765625258817584584732618170841249519862675395579014224291540896361762869387785208135272464437101225354278601033803303453980917832814472655367443720130417094176548780854450154947508809935610108549148764393082085463936699286411255570093741912456781824024223288800038895156129760630904283098332979105604186401504704203585554729171564323468911998651819784361037516982239694775752143030652086996189999474685243931876938113052424708210731032869811689671947692476056543657971909639387438578178809498188212466854149827346638566277645547709569126358208631999854338326394920366024375422608770863353608626147648913230677481861328699310391635186302581146735901466264818460807145323261424845333323282410742363271208768716122923359092593659718438405580691570720929800484595184296991481589764596645339238876037437075620239398644845639533873998207245784349240970068272638581674135505426235963381027538862238255175434167546278010722957512342134281066452821219976457241241459126889854544321638377849372958099661218224912303295831341691261264085162065993881037339317074384442964396714673667689985143286515021418728024230421280597372442266830672586383283424555784464627908075961147030685507383012104924526100133141547725596087863723818392308354933601912511798602648735870965410513071010956087861415815033426494393336424304039635278692145895506908646680783928301339753510330431214559838124123526799113035388673301617561448674739860140967947204588163269789380236966621672073730878488660736215123758705632993103203734850884103336566905285927847592888433512285949147588715353408206860902717671011396917152333381839818061866592277121614808189035532951162293834649202707713942432372826415298061484985891976123140779777374835147923054616848022032991816739911857893045493239940340120073051761213333561916356898538729009822112612017386201195956344021356447130852794537380648550866326484250725540413467436835375909423217814968992922257944631457173275398467400238771320012639628689638104156217401156748077708083992311325009330114016088678318078766034135978866651476351382174433219092365740049572374593090721717297283243190772562605739000768987515243925701545269168247287046227665165017546357681562386485594202080014083365421937592594298417639514794998920303595990456629984572288019655004495871455835118761652616953660635166939084499746742788355978728738137487182452185460289357321870190535834643749762676055055332098765655000265866453040678981880104066694130543451674695181320155885352547052896913528598745702714866375482303034182158302156748318538826189482791728002566134661886981111462080853657316860717926454246035451896660547888416883953563676173538478055500470092717185613995573764826424199246662602215506274874384626556960190202743454743624152127927291265025496572949988610881963636461607750577340736561407000221241234559196497540752728874304893063171778830289018417822464193555061113992828028368822894464644229951488542807856789539027512152577804243192255506907885987410768666451624398693886214098291833884752013391589051544449650928085348427952557534106166298402335789118143381946007779339882490652189334777002928365256376792570862516566056816873325350710381361827032267050508686333171958799153637921864638624900279371070936905797182873532476287688803833141209635450366176742517473736162402834874402735290221065051737769141724998456143079309943763697508640475449274253472186602967965128174110195238333367659105844349152724946580586013531747858200273944065146108290647568135129068114398154063886455729649791220301520325611406671218770606786168274660973184102329719995551327896026452970866632877313838593307077843054212290542751120291048382380359328947665211676226193021480332836136217104926186697735759618704672414459571261193861644306404246060710604007792628036427158437826266973026563700503726645527625719490435368826457840462734490385699793781946338841702755705847891175486942691657258007095031972965286372935097754745982517769712885115232238854143490586584454307998321657681791438035006597177787813935819982293364747227425486788933235198672667541042491184715865387970783688805774263174179849960119488051674953977480118722131732667168078595558228620357044364016044387336156032888384751106383641843902709730571007685825751053209768544328175891953775441424674716794107236868655988328469672681492665677935756436209649151390130047482398800010139523764486465387092957740393062654109118628168732044783596801169635750491106515510377760002949481093679271532251280209605498405306085161304705967855612130538246853823800579830559068022948436655661347669553444175833712480473392124528883175276179682167775659844734400768241484101859071888640212201961198046000578347575087686282989754509138983392618381891967165968868600188807731829832708782392560175429915026108097925147904980266279223257176688244934533299240835375789093902082249016082554749870185256767259646764462929274557434016820248196001507341216911800399575635117729397824411579748791463173846339788981000694523007024550999102476832474176705583517499573088626902382943238737357313493840039761290877382298598257799848868232503914435847116110832365723098021489751872476103173834668931749771879469915738565217911921191444053695408467379696968167225078895462533849813420226623219071325880663116968574836629194111273501531501175740119349105355623115123581474992897169477888854060224925493056165647677784717234445405265278533207257604446154463957725313845844817864223206461033780823472649867542391853150890706869984659176280040115855931875993844123663456937885646442434476405510650971920229945066026547565959184090025628164000568582760341834448231458152168070378913700979346474093744572924329780437869072195458950738814029489956713707835660449343225140112658016752211538926110680842715641033339834395233761342669576167938178949281256847962135866922430849588066233967228012439237698158828722484715559521807450406470039138789147774048630260892936637468555042967535315806805989452286508734078544215133820679635840350836121839820505991011500730307530767503711019027896685808756973576324228181502218586515412905944060566782129953436260372542243997858759171523752000605481423850849509854427887108351082486291086216060519777654242145224807363449284650006084336250792081727717009648669470816046481597155062281249441569400475880634482862945247216449877568899444484985257305828347087222199806686216502137048978771807419901103802791808923002524272634450510274985759105301361022603732719417640174129785427466959536139457064362713746824082172717327536435503411055249774173009743106279313687776895106288755278271829634923456097167168908532384601643442180918065436913393886196043579106183897150674084321837765634074985688195189990279556258097189769069082356416683353201352752287331947332424001257835142242969246248617378219624632863832279458458697587153690155852959705436623822175079523989336956879811312637602443511772682288521925623490606076722236574998683840023329855587238249438993467112384303798916820474022423837633254234146440708496876964427397022173939312986070946501900795965073558396273230117216158097523750738699404930179327867689183050469353707249625629804768807084275698434415146166893430790704312358857101004756984906855600639584691594693943296192251061276979019566762238564340622868767827338745220275808157641154970771455012147515491454990193925375742900296594467025475030635425599808343246618286984298330823870587454299011364787040271083791116054662814664577482621283762258606276715613858197467644402582485440766694809359513436469051398323983465162485560090080174285805010335232735885751054587381114836877075918377712282572577418003778097704083068497772717529099399099390850130877833591226802134434620092994777066875839234327785002114770220528309471618540778752459945524013229554849792878671036202657886547990289933713603071318587397014418253058423773682381638037581924341236235065111417647779312913013641823327642282056655900422331712135675570106127055040134857346430706681473438276949608554861107047826619873368062596522170748959351917922853536132900383270966158038601994217515497932583867686456318168738687824493328895306792116260498839549936375074189286952432117533248927719055045901894939070537391081318334215980963029463974295514910496637832953916742611535485511954740361661193610516956127193679299455809749365442661240722365726313083724407446544902611477252422137611208992772166170165622933108582271899924518535961142347646365470460189853079970601694979540744725787912067714575237708918423436947678030206335886273064137490944663295465130519661876904679128262331357295429419229101824958958195311224182831882172706012007918734077644400198196849428867963108896600908024047649932874427807968229317096458343902945101782639686006731990064582345255480790160027636765207244222837084740760789964999996609285016603998769061398904144579147583909147181725233573334831407696598569988332099024198329588748738071367245569016501475985687222745364527484532851217907612819316193288511349266937435318415633536931591547832127173286802415159692800185683341086584496491524865140082705220825143619550663235546809502836154672695432816809554000169825472738589641416002263587750597638358361971354240103131234413064565790617977895712953999308433564039080782473127099048370244887030741469348112186831822248993560398311236995580834247659395454279055800538917975833375168155259489839612146110540119461456597684303916802625775188342025698870395787701399250392160611681924639846614327984010264315357472422078743076331725095218264873714486048028185404632906123008547564694745656948397992681481920772514541752389863692284887450955124824622312674190037028375645184596511657632439824035705638710908067707126455489454064087556754037883197505858108080364412529936040862894537648106533364497289857378022995584507035934655981024452005868756321939175123482594924157009952669933312139323111202275215809924570375734655730400380481909579469774763866167084054684176729138660441761293843757078847145211419185037624871079303054636554720013254578645868069254654559133531851446151666632594058143756035158704420123596730504012236287882045211839897084980867244916822550049038097715421821318234010588067578229539296232769040197411943352198502355374005888946947239731905730898836924330074176142476101881436376704355710923001071145345879354758395439586286393687332221155327336383633074812493842587538580999195703797828038170405062316039407084802937291394501611028866143887600338137609733586013920665018571316520344706115418213797062989977435157002613654635058084493292087162469222271767435843951790522336977362942189705394826309223100868812303431062275419123410731125972986367649622173514412882431199664740264848733740916123875584193363235592986435494724950507882411625591027844119651174340934083005614408430790404078707767365463862442442582894581622447626114139968119311225447207526718001525608329600164470431469572438849982471759653397847232191023227391888202908792953871968662592772280073343448167921081804596289116939165950278026129658194384872063538663162414579177392538142224113199414895624366070796194284631105991287494480718284658222075185011903022305701692385925561631733560832282129817937461240547489993728730044102420478525476935083013800333263147782317820633311053853639566695346328361870236194316790816173896386305054140835838979478756273445543796271024689587042884647146406608297328994106164885738954332753009130618598179113851260038370187955959255038272108452755238483052970983416051176270831443316342543480333851607690937611577418996347365241131052542461552780602946395075558496575161651718865839150171089814774831066049936729190609534740598493950207761169606083195787107130210695700295596892263964912702794170519642385226224870817279710314727763112464136636039858053738812462560871760451745245155636397464611080824684899297456076312486117507116727201409182343845180289009883283090560749481738206384673852228834574413941838420140174142926068735657087599975076683985349575742854813880697900271355637593917721109817051764428286810634631805347711075219839956319835218444890822953432898338525177026521775938994417171531240641354657199502065098687489226973616963427525325170689373572411944579954462961915504028954157576402820785415537090100577643751954175996436207279771984799215523449013816590167699418299315983755602311739805453231658092069949107590243972177382655140603314147678718752793751074739282968906071750997150657669176716022378683303074990214127306154085040418964950361086498913561363050979569741954582026456123801686207889286536559162002239139779755977140710970767849678726760856107639321790041449197185564070468291669725374871252107523917781177254621269649208121085443083907009864032536484329839191063427095784568984144007558187853658514598524568098196352865204691302931914463940438211158941321621992966231384980784776257656230336852428273563616606280051111798795455967404401188759196035595445901776839209546707979760402538082538265913811999220894683286894327106463746129216444846062556694859283333962134516387949409824681915226014420836662570202324019681955649991860976115110822590958653084108522954199198742154708584249618283312715244454390861711545892547607309683896907255955609164551093204552057329900984993413021223259912571792791010562967370799856664867829789348859456042219411117758679910426427791083245773230952888363303529527109022508660202126239066570948849186305798121122136442039567572252429032505611315301654815248311145143859472874813621953127375654929631019427555135418018308447326800970687885789460291835553855581934217141170653850780278864459424782283878093637139822885449903865158575980858828654768698702649855780771301472851323975083482602736397981833193983861285010611299565631859807242093768609759589736918624056357687887963423021195790082154146436834643370658906222082167207505010650292392127366569977905120624376647651143039617137864090200628786777270862247653471650606328051048332148141627551349861706276207756000308224474929816148899721284536814030335741721858180070294716374532233915323106263720123257566994168418030273644101295751563691911500840289855608779934952353344608328555614519836343731193791981204599953126429119326576937192581222533006854198342425167422593285140972649467444201389343811949645667360666321190941106404119567222426690848941128540482129830187915257324764529840523281974591225346750326258465908038315374628754419570110035294504169375022924323008333412023513407795711567123092899830306011183642383752214782969689966949909931835658746428072821057519309333019327787763991646597034587483030966374113939397842560816776203695376846335212429480122453875668492248189401627065638893887360946089916725586542537780147656820058392885243156804515472556800950808890723468437208359779811479808342630079592959868909849998613699105535179967707843155602333622149569074335885132497047483503604297330192651858737701099682712908399616996786771964172245849582236578268800640567412415698635564684027082999809678363172933387463531721257625368505602189996368776107484878437842816814013218713583530838047878556437842597161830040469331096063781913463657001560370481718256188154897881502374051074538689830277661464829347154482005086258915722648557118213618742089312063763442593255682987737424453905665019489907105013158194219163637252568490009532924081260202828324867090826165368001081694429631562365304530001350890956095853328996496031434050422671938676867517352962955875011897674859000961374259916298427169719856268276001759682884643476212418198442963595720844760771415237135492316118683120466277182898018949316830962453425636609646640661739320139669775291449621261760198559818930465390819552440406075038510008047697566251840182375680247467301168255608140524760531074344919142522820523905381387384601004864991243368878510499316576327877828334998662492206357250124918941295291864986694624824736423226775442911043253778403001543107058461432929048542414270552962489745555014168693150966985556237660941494462304357503464521333185972103432626379410841783967075504506604439834231800296972602499614540438390078704897641745457551833581852887932565589083973222003878269853610270321671761233101182234004629071916342696503958769027793577920448464758287782719309206623390792349994617763335942142626857214925847992159919543278656496791641684825460154114677678510525488672497282318284253297052664041797888657904211211515671402582232600246618050468120917841152566204247595843947952302950353890504622650804298846876935424099750837206602530432883493990932481376862459977785466051486800859844868725580568153656740939195706822934436600859296106304365799664858733526496606255901386096157093882602059174889566285843276613629951943950319168534887077827343086796034129543836552301580315845417109137299766399040991976308407312165372504977137043069639963595387229861441415645347517605702985609254005872996660343832361635447483701594098998961718956428940788461949246596742926365289883899727123944750021028459207823928089291613431308969055957134446273393805012822718199158518585422320808800383573785962674712778782969273985749246053593809106402115484105482652844649743589655974480072382191073209926355645145758290877620951277607426232151429994519961303332429596560462971210233734642895663925782559201890587313884212499353272138114526012864252933781396649495046161136934071930525678984828953159860800006592871091701681667468583610533299865441594645187502276328627850919678467421602929592415929568352958685292982206634360211232072098534440334019732233481817117847070279516675422158569526152751915210275851011470576910828346337126029946875689314584152183747910154201081207261245129203068660960601224541760538694222662701270610711431814479265942112845568886213706797539152723565694312819349305233915077785397139704782885243894591337362452322036584288877555407823295947686793674223405164061725867305498106758877629221414571421010595769686886619723097610318176865197958976569228657382314759889269430949526245005688165707383327053243940286120042070297722872328229460170589888668578627242451225970251376558825783674942915633601774282916685097818444857598065673126089623638510570275554882723922351237412739136092390991778830161810615800525712199140553052868432240016762048318193821267864751528461254895290902880750840831800089872068112684819016642666308161922271345148346193289832053351670136499232766851535146905334463692521163706054585337118280190399580528809744121561580828693684496493550778134501341679807126673870396293068651676553250848601688891674230364393783221672287184887677071948145230147689290743953566310384408320452473656507918944801937257188271828640175648785310091206384471747124407457468959645414088230766847984387011250786088203793028471036598754668861977442657028744891355434854980171149462946014815038773770341171696427253935966145501505392176293188061077379404815999435935682865734615971108136535462739980507527863442957638729313927673353557657631289547795787584987860429437791581530504920259304100054412935909005524363741186845322795391488485535899807182264417361957045979128453728611053005281725203698670976045022064562808588472501024418468161948872136108264416540837076117010565673305004169445362093155004643472735204598633362803186898543368616476618377393131076422844853158469466277478494945505070565336326723962866852825509600554439587418482134092140166216714279422457625156960700798494912174503003089151070853048149549584990930734458235884226250142183000373624313607290279215612173451276742357634739335650064176602923907521119001837293262217922460408723294082032853586286555446214185631290398065573267304138773858006414657494480688620491313725571084217075848118845226155153441610317601299088373445327456931982198881993175677217889913799107090611719034364833613004890099490709352080895283002567516224664188955594694187096196026075393716385873195932338028417796056334969766573404254226986729297969323923743430068358775709485680886049383036676269318100700094411344424883973909876952631673485101703034336095498474024637536264070991411423962375818168665212792487758186516302158275143951146441276113216144606117707263614589447567213051999101174588836320710957132484985695027262552437956946619325129826394155213537061767146560779748079602661019829040856325012305106136963026935251619576790315844535774195267069911497008367888032039323444397792455224719893819437780886855393359625945629297610138704768738425838831076426290307797020980858487982167912493950632205733730300559038284782052489501678419950095599447583784193255905900496992117289200945844776904556359215325096561520768441103611726985007175253503248994964147498348756179728046378909556134904552481170106172647193238671371391300124935806344850089069166842379385510524394508905320655797908898274972173495695439774769568673860043218571355360727630907929902572416549916674324993943484020838352277043466694565858521106488263668009942545969378247169168553761628850768107561485062353028401404805605768035951949079139336635447318400774704581432438090364148554747694373429192373166984101802258248192938114478008253983932187031779210193771691244969745025637770893904574484044570314817955700239782325947158665559791379317152963889642446718317392722786880271777702868345506447457355693589462562582432400250602457946388968464815858368452021465692029026814648602760690717189177863723708196187796034556436380926227209734070328941677926372167742458685587997768769035547891840434382289408928120691739652816110612791258787780856851112354779342648780322016507681073843216821369887514287889390796237501579808123818559283368974607109038819699541442322009429717210692243682628658219895419422971245295130611605624184436072925535367949483935690326106092221308240174631735510002931422616126830940094345828422787177279973383599288115745357978411113786555354817910317089045910174667240574949713784122132274355364050338530854337503141208171901220287299152279632745695228552659469444624050034675578238059971153039116425205944360896324846421140608674492693323564919474128220874735462050976077707012354495912155748085657748914746445167250148851386028749350920070973472137285227507271574619971494272312728018065668382022654182092656954820724023939382397304736268004383906824466941065038905188245384916990827296486965904946103597849231594565710305381686050513623394742762040123101770060205010122559822522387909890687083433609359284941729198156922078231479781643059658365353158513157643418943703705388203523846590423815616160278827893014534861574318129460997943459573649977305751673565130705742425254162156530932033859075223341078670153424852019062787499556911915575809353832727615644050307509101015426490701794446249419027422828924542616485919734704429906563644337143820532759287216539916609487814512733614118428370780760998027812181282044579694057540872180127181254863256099044824733454973944526392891521238588208159567515574649335647238497855218447081867538358315197245002158454025474858439535824776467390053728212890732134692616592220546031918631835913472256198604754567116148993603974522902337175611311183554700489303559228558621148819847654323416014057864377397983165650694767249730340585905923919421150854875922965540446712676516978797203200188709293982968256971703612181588644355463239123179643919035995175921687383120311026251848434591744262069258079690535116237580955051959002594767770588416893651591107805636340700788952324029482034814268698783710320010320054384674634578453586905419408995443428297531564940918594209062819964051796571967697866950081384668212450155372272024604691451236646979917547491220008593226760367174509999997103488029797939358136967068726856865087445128976102676923242764290316495477226753619841624511389098194687314314745786798906801381984469804448486368826214666063400967644455430003827572173165824024015505466703820560299749087389103989948461410575035536003450466490829475409223349314141940810281139020529028277965687412622621207834571212373230590930233914621874910073300846375450295989738329263227865850763950873994743273660637644422449277866759120003118366796289997493048419019993040292718375013916373309677450307349555712389772626827472428109782972327045846722286890970452510169053205019607764715222814088937554310070693765221736852391415354197778313620362652778124590624790740601325827472355729512374265191709630239040854841852567111745827874362982617226137128299188970222345210076368772255663641795868051582235461035872500316416908161269254948638779622083964370732333205865374650494563931932904183126833997678598718360847616900415665380239622723291897524330508868480574238757199686820625646693553903039229661382435221608534360589334728276409135083570298501065106804137299906986782118386991874198307709704906283646929625794268434090777138320506368862015095320786833128547211304561362505070075509187768085281708647508277698487717735452125965836422580266427808401940885233483147269202603742091737103780880319233092549614062150416087467690329800711329655808736034698954164632231848309168616119004759867577778489347957230289278563698984314665654028231011312240582741556372296416443265081943040453013445477993655696846455171331661460641443945734903241113679211003670719197710810331943680853887605345027120323702374940983958820822538848993493283509978589773062330535894401373867015367773683092712513171468364273300696384268502307935590220611389698727262306233298222759050313447033263317396229958771837779885441639924942947706230014701786969203752731546927733093412396547977117585434721525023056619675303445162745777815728628435596839896697893424828399032311493151774260728663607952028311778250187247183698092088428500779082272578886762499049821478463578744718789466536923709506700943272218491010813604196538866658654362555691311511025136502856440303845056784338932253211583627639385809660762542791447502265495214711408506433101082011620592461647290517343657698739897560382796474630972964005955564742233692408894133583914041738100867449937712414336344026652479510913238402946303717362224618290368864225438811697876618047154499247635842941271605291023845749665417077565067281163002443290950033910863931413550603679847471909570676748873115135517900769094473607870250946131152044834010394215524921047669017935847844702052995961127654204446386795458309323106252624142671465657910177713880494281708023072740707509899775705733881370424087952185906104017824674215393613062784621278960169043330388972584360628163824001609168544970999084653329627510545891761999697759723847201758078703840238167457776753784531319737561442249512143870662814509202032056100340488331680027953409080359123676929974302069132851270621468282603168115043866077956732627284248142121763811879309249536488748684844624378347014363740151890768022716302119927620538504931057591974065440643926719384865084903651605085885935889891758335319239328297869871453290142959648349140064981457435219567264802584447978738653744159716406174466231687412225497258246551743785271851143798311456841457771124143848838214805096932018812516065363320914964930471342204200147859592677587884953229777489087769618965576877937114216989510089913956209601130058877268817707595464287050748730179953220920562359695420701522620732330800525885813302289640383984507552968928045778041360786185197494288190045504948811696255188754749757593909457654652401977570112008018659563073826208795019279792520359735940513748240137472917734044271120773088961426336216314479745736269621740048298225107192928944006798469167186484653645530206174665298069675936087914504759315621566175590491099282739113194378409436314606600313553378463673816774842146071683225022896422678912406151223599578709978676581790144885234289904049368197722270416684470148078971534215095357369703391227020125465290389200219590775588930992053449826164939626914838840983899385046620464362076337442934785657201942507254510142032805769965682713751357039422917045196209987337869103820409993195752966811714707721404594767268472705404505164743637618708624029635053619579337409357808942079851222383325635474566469375399784642585744950869112004481314758512648279823746456786304527043306604116638722697965000955491493093468524513207456784271449162425551552251895036257922053719962105700810010968838645643498593180578893223501801396251821337195858790371481277908206868104283763705200130932879648641751426150535195460247424751384320890236408224889809287884828343084966085438225994625027746777937206635215587652648877622657522783639838028704880943922935780847719859890919560723275314401911387987693704375864653704616828899535007335467390248145291949008049428210049350165562846285791995474615113975136700045051472683646379949535887743618666274790071345978322863747549729234260307451631044732276237257270883838305301588970394001993252654644325208946829418902107027800549900783802853746065926109494797399808406390018285117139282981724411327710723895400334910467505517533396342690252371129511184453339870563135578008627991074618678341865508102118773253113915077778355422844859842809166388705522181268339411515346318802481173886994957231699962220824196524079160754874731863494281174777305089894452726340427310993334113061340847951905996523086408096111424513045173457584041714006111473169700998151414291515148310256193533531410569189013712229639555527306331687760668853070876597492840880878559308662619678947704369851007713485683622941513820682888560428303569807953546079170062475859201836599957271937157935881797416577302303584229279460430980711495197119417450083650011185510105715830988191222839987634748075924122580048258861158472863858098198567254229788530522767509969186666717642078926820560478465788142758849712834289543224176918583030175571061937802777215061527389743096031740894280932570368991513174060777127681470296387366348407656066635507019359811296853436761885603873409604144406063528941503477632010152220673696143749631170685405770759702169071216865387225132076282065451091754253213599868636957281683634343686324306454635528338214807375974163435032661824668530262513544558436890728611534043676240086119827406750960531835369442995463044998415966282710338983998879549284284979581543986617553910782471900875465194242865067329095613586499573448266059811837645451850119171290542857873320172357513553225054249186167227827500144456369563280857313077553033266575796882033781526132011842534762778583227554216475044045066037310449240596555654925862725270979414043017923894062755552339057345567261960326217746613346554675446651437649071023986208008190660108508239850605201758735395490318550674053995484066222555369938732509671146660280409120981783602486011729136279304103303212827540537714265418662866248115706177059338710102020391892204855930082787050007495078926928176440175389196889830304558206839412818209300313501350395550401093889413378509188314585935370233314497412500119995194451020258728513727873134183470112793725651151741398699483144011477264278339930967375373510804627224436783939145607017865326083975189064638998580444199983196763743160709104216978175918889019702361815055040282153182331497754501573352568826343440888576060989611283738322397924521691474276779332008268090847383402660581363741138166540107418547180271493678924670895139640423986999645569854163900734299924545578221035885454274092452723718449751758602991599715349357546736783184603273531541392234799878567142737230681319267143327284476004271112246010460654258020292129925989140140849286514949208629727709302014558299831355012145572474204248067187398629449211617831777955422251199842462722664531953093433875747724564478788603615871617452123856981181476492711295756036753849036756404099568007183557695932883404008394900585785602378887223629184455558745974425976049466097380981300273777891359868877409777345762116108945724126036999589314751147871053381916100592621316684340860509025280612726855917257569701229383575831624035498338375100265796063766924847759002040649715576427068288440664387819937623854633958229124147843359900869475130263960940385979053193545673379428236846801727336769688308684862492194702140149593595414143821870068297669173412732264947944294123774184503273270607663920647476128218521184380425093929132043389204764736992862804527122787130738790306322756868165780871199608524120370790144217246568966581372985947948627597232488940209365336558770909740780775776346026441839511467083948674133074221366359672030070696301358640247048650181631594318476678209240919865596362989769635429833540358229749119656103219845797761468618885125471381425681877263339757389992564413686620377811116219693596833479879306091139124362228586032237269866811894337309689037480838618591867905433025586671708238275323094100302842045366317450769023192951921223568888227959465621406939344035797345440411290871938383969979853109319427069961233756122289555450604351761162570063757510280579880493267607679191865927889159490765811140684915399065473602912442833715947792861865190361147823192403950951634568582414090712392089266245444991799914246711684862986407663761586919803415650336980650753766993530591042641856032201123402951542812438340427063446434484845533689233431550046008838511965485410655379238651408746707015680596091098375597095507607222214651816875310087649181322894435266648207716353157558044799787334719580299576956577650691293565726063854234236781820332723629741187615870591155659100081589908381221729232939636267274887741024574279624446465109192229497246308697149434546737916250629790236371158711055138324893513856902310369888379273287306215365435283776781080364752714125696824165347761400719936523781876834158120264410099440507303424554162340798597748937872307554057506195079798055046506435855293135568965929838556834859968829776943517235803269188772979143731541442572788184256201093441836952302359685577193623739719233375287542370542436421172294498712395025624759227653073317979316163660203907576709761494114346372744995525315205692855167723806012401597375472438396782783526500204104983456964995063418382651808284295209716732741254361884950805893500299650066695779118106681288326940646012817404516444060705211575812760313475177801154904553169601483520052302907458322684499286232996268264678055205750294184182311561017644682415171184731686619742201651335196539357621234842668044303990656950048407517408897812066775936218365611852384260482678328984319115196354852124107867612231554761818897064569290792355743241013082344603719799423962681797160728295482087873257930938756086769761351754960121532432670567436233287045063060109836177832226979028414396362766743889808070552003150982215083247606217050009852500234385296516300974847933042259674876233259825572849534956003366924396080895508275961960086834299243611284247917820482107355554754741842334942373637727717333529699973137478260105057556404450948564456295767834040557799125739048300565735322348291334132919304457435289930623409597540130519137632122128215789893192592860503625141573403762338986432690973810312540517638028466275455694964976343988156644394928411194825825414683986315250234011535078095297853986908271554709948591363717484386148572633352842546393383139405585871491500255486498703071234306603995024617876418309196978954634563821567124829627491969291808764251786343615240799007543528106054511614295578336986779099809115569677741937921312919091109600086271056537592500402463349749853064747999167679187768764572864194696142401962254027884655854073278570652558330979643820349006083807439948103284032512515823922239678809634538827907753800361105886773615072063978559586260664095009267576699934184717355265824763924137829975581102151246668372565437882204639005916024165780701642974694608716702213449810370000415561653358383020225005507080950180635689226161611838940060763878572682775459858151022625686259376402063948769052387123057548061667756787650187658279784301831559092994776584900382259801159597366405221648836520747022222634107215756553508692795228908209856613968081264936951870803944992153000047867034915951045886865468557791615187232720605442159525232717608786450522009006775906778137633850925061845844566567036379681818522915301922905988829295545492814848175829801371857927051289048847497447666834339164450534192853900590232767922370978718797037250663194014227188331693448172909320270721224132349500558461953581394867521113589422651925792329103956865974732133567123341433389723741698895988630208520765679259759386612811376209355012472134492545001635840718564300603137736127341616919728417153096129622199597445141788664394782824531853083062487106977719099449863699031011996576007163492222057903528062287663763318607027834529229884396784255903188377296033867730372245689067958243115798541796592059489697065993789678779486714120581731460618154164756388067849266614468640285571403470079820929165963208155827532632406331270609491908003852531197451533955638641955472327087130077100534089813865075369200782832705096848443333916325784618342513863826177494401328968523256712260056001199479157949519398869201187854781449287418466498490559266193729219250318837901131615011368535359806761129851646254008163685251255989041088373623211287588746861343441156639014714519452430894876890602156650742673126161127577035413974045925616524689811652966702711310358747892088823085531112988731407996256282262934250377412331274470617574286561260033672020003960012770983719975702715847366373787975750930019645655025692026421536657893523907729659453553536012393695325963245609511705215508635788803300412713078073741012596070365653194715861293784198127321924305250877754138959144190468452755973636362745075687256926248619726308591996942326206603647840086839381462941971192795224561136925688306057593167545708536403537292299365845603262767835058484242318012858812274903171604291945513394415605614005706140030147588436938557081326261857213131521420889236338270623457352741629643726163465245196071675750144264533655678650544016332960553355469178831743380701799157293615101675781527788751364002011567504295264825565149561243542636533723245321908711137788325307422788514452396874730299043778421104938112721428350711482481973330211921144891822463201447748540879444221310167331068489026351302187367519488068231839810213080366352082680874844486409650669007522002471254900401558689813736979504247651396839674774477489981545028948712783089149045618509213748201003329569292712934084508008147669717149369008669475817699112725782061306361350568216489737601236831957501027335953415209816507058417569916941607077095495803553451836673454250523705919267736959248273744575695660798703785401580620451890316433628906316126915046965030461785232272344690811719424420595182998814856950367349353513632100635849890913339262279895233287032781886210677324951795619210102826226772648650426528706219782178530338944708240443781490671780883643218026703267813117831175839126704352693054255645410437426717984957473828419152348900639037451810292746710040694283552801911638180485838830617231546677205105027820497039266733301216735667443984855280448062926437911420198138484873593579491460775407409748296553657478303645061962276935459792493982816429924776371707623019728885462418820449543185869798181976442916578015977778390892521613528147982758569071238240839931488141628556412312036473139103487349130468667337496501325346322906459057980698730371462317541553854543703909826163503242489836965563474485356613945519354112346024256853204585483122877913479627257177887283068382567156307007250163395804874943693135164756230547570823433078903070607475101492489912922953657824025042527138573231392441717378813821193783690116217393005042384141390146079087133342491033889456272563565882003204648161893878212961393868064689749933955376403788583095303634007718330611032946903175648447807994682412439666301249148851440963625337786779660578080587466889380663761372402459389311687985550376393511921622420048848922144668252104215439934058087001188407351080731861782038256149282636440676045860752877913374317581202615565056342061150304380934744402131451060557706477797718142119330426783265520206756451364910263828259779718892435589897228807614810401597962563319782886410176319495457483982659925375846211670184037099248166981018088557087261816801196864217166076276515952730203843130168927784624784283631926947117404881449918728640216837512896148496402446243074921398285085908995609181405687673197065158217166154876929316948017108373221046936909599745200008662317686969587192620598437261696433381256915439751229702419508814257472164617596278192829977064291361807094663275809492521017952356674092692263949319427593787461713208498803850541121633490953832736909106011777720213164257519957194591840305885246162089327300930032239369270819607146655654708385202436386415200383573993118384099067674315473309886894788466855649969654985399068121926442581757795920172317675594745486263968220296827779461055549802388755886102986245031669895434475465643072541922115099962330757463654440188626512316474226107231457847902901382178275481441847437031687632169403458365982086958885588116220062369006313016555592294597487508234193016138771970400113734822223496896113238093162792272933527324597646508691490204563356519938340366358626448037830942299775088036968467904279505440553555937776131089026860476136618345264217511394185396576553397313437297852302450617732014332257522472762431962517896378007590850899155945596394853748590414422637968358243982160437086373509994278053681832236074787440921014425772731169536289985784036758448432440460857686512795692192595519074462882043398490442501635663182490289810575596986001028773096282801695656112939440639197479716439489177272418112819654640140044375952608508814761919299789280019321597625913650986628465220455031693855013669904977044190700569394125965063410722589308555797748588624615370067243416521532747422808652855991484811267099372587289820509986406614706914021082686568452925443099878278386121897528936458231981352928821119622070003733789184073633383397957517230394160833901032364992823382357525333681491139332506439477267481884601044596129570325161087281428004267524951762857969307945351233967088726097575368938663302739775083697412887217999491975270396365978022655721096543403355382071187651033393219167906655116546638315649574406949340476215291728948532216002774133208337652267237008527434119911348450962483569942591658852544563617724174214007885712273048240096236816594771962494819058373573059257846660308314064330988389298632434343336808403133843197548804786360763921369238588469189273754388425327143829709648378058930893169944761893051989556364954907395520122375761819838248827445180468772348354092631587197793181340774345474705772378940400095226509982039468981974892154908920584694714095478576154485085532726764711503261916444502513631356342106110769658781441435065887649253553767880934556824247969102700335804331543018586348983317365205255626403251651129280150841663842137028001188948739919404625775833542123554629153397352022547563067137074433817435910247629663768999573619764208041485931203620629333461967094371023120150578835262595348960916444251515310651326389178192189789854232492471745502531125698766782280181138758868255805706733593336886734283588508313317285513267173663956608694593285210806279068960571617115035251435394415310219955069311825062488294743313167356067565659570977963467640130017694454255207844920265821005587977981741934976360220155665028718466961911998195186529821467318949201466182720347700000166931889778708189667871911485263952739774310461146181574360402371473920578946422330389747570001343989375876818822226170749861145085643692050820809091005799000130698598395496886013211337143039808659821941072362081648653517209947839842086404732968389057958986383342090862236813890694526150104117155422692274074248766313275173444182564928134111821348720580998168284192753077402963062389664622920487330295808335524149888012159573686187086616065863325737586019179391679920917733500795101530267246976841598573385819879222305079363951881372532479196309770083152863860934789444126923291749480305621173121758934923366994276925758862379081922925031740084696327965608535992018499444482984440810669990685993718800367145280056526612738584467106807341948000369354079112587627778692943983762663305889053398932510149986922867554092803617780942609815214527326440572368839617458271035031982408990080323112035808214009432671888451692739265510577466779967757821708109979290883439335734798166850027918175191671751774210714910049621220853179021032596670126221165851971532974022963609169978083507328035395479771488367705102341068931091970503430436870500433494984955143871326129232049447886883801960422473378087810358107749874793537226865306669908130507671381302871245722741165181344577692606291224887702719843063112054442383369582640947327122416635648158487941258402533528021182230088606150264003057272462233868278937809168240881994421525186491885246085169069499936263917989399298772642498824002667475551044025455449551696150946149017410348455417466974495019639568951380649011704820930597652037558907168554018449162434307560158293220210196266939080940429833003266333363338726221420413766262880947881150763222370083117639152683457271068520141720200293831839803269702153785258600833844820391419828723025659869538904336777920795397935268167525116425592312220774074645932739919138008745171786402519410388157774518424202321414117293591108286069814482527891372787619015427384612664577958700155932247830615388814336313568127164605863146772965031072046962343056644739104082964133607415731960219313810743672428939869725607064533214863783430417799654803068820813482483929799161217185481934509661353012495692827110278350245216794354117573793318822124225756987134066555229225993876263855859775576807138212518781398011899729810300964526088878988159033899935033561676703105397176288506681451965045997829992242447669096633255356449615043405856501967074176831345179192851939912746869238702031897805652281387469070173371075504068038674051175525169783760420822223972761221450280584321741869536060815513864178897305562758019574332982471312419893428294538117882855305043297381287712099170491871778481803200042709187776059092596768736002897400081121011980510206454667897101472362038597361708023943633278646855724028944285173380994161224291297178159408047504293671863286436323374150431190414790229160933713714154539208808217227297044383537955814354168527737644151976466706327118778494177895928843947378091720391790370592322843017535734015582893087982484335593318319799054931779931667225644320022150139006061101099001392794003111329978174367434970446981504054980660773316155922435684178785834227905997603961287887886759580724379195184565848922433715999390078615879951255057893626704150694083931557944149309432019351399885893031951346114048532934001364814683409281693430482783755522230300193528294217888278934137627858212579224869405440116735738242058857283519132000383930959993806825371891302115970041578485457235317370322933173820164375656126023508286307262308138520507009723771399745546378312666227155605041741327540292747929138922287647529474932212358114781996385481617578192907664741870934944914747071055706644115871199537430072917287270657325638847911378053567736160329905423264989918092967269070277745251283863236090164475412095189522835653959767533111365343371269183558524039184854153544481117763307061807485713447246570935352470872192560662217992673092147655882830598036516856413819108227385424278317940078001865818596829549926358763294420230685001157976569054975019409417309369051743112746824304249026161651175333344438822848890287617187011107440790058908874643998385225718744686772848546373596307565145400078936098387388555330918806267052614743715346273223416128208239574243580717350034289716702752584101413370733319240322579163791169183936187959107191484572911185307865279629895752515866487314493685286620245974198597706121696962220742797759155822813281041821895579119184096323765482658872873625213206283867682962082748145782605100081777922290935110300606363383121355921700586250565229643741988805399478634365650632329189085885685240532231918035334008523063364918955115029054436627016928872509596961828317568433161785737340372886995885079160300246236718359050865215717325884669519858738078451444534861003239072190044885769434926524452006307916054388992484276127187860201492512619410132694678898893456439635978078999916349540719425842948051033764274005161989738057738681107710469010737478383796966372707997597711106014753033395633911315033913974516275879150173602364730377753841440417059933912246888324087878723220407216667052156832194116716342140555270046087452982234968483355637687971987703054205413883779486425203566462396078550311381668800164719826876688956074248785744540425216266152512271882929960442528392354428550068008589802051995673766855347500496189361632056521223402692049559232673160673359108013548982445463971746973319555031434937469340259234999916509796257522729124708138497266344325813560320980771862926400127002503128576105366501920063354702465428229961418419012473453726712410906841681308063976665049401006454175251311834049863511335926327713052590425874467474136945189552707548756607123815142241892568953028683632944380273740089932418643375910092699877515839560035086844712967917164889252237961310833836836887972631652759184672671879662614705196229247228958118814527508672655393044120402411302051043613646228820435511879251738057844994340718051535806464880299906208455443367789262910513508558564580102586023368923425591251814630229113708455402543991835618386513922782640860866212219786986628868793007625842506105017578433626087032288155031435434857327933217936343871101698633100718884647102225768067648174923970004404450374031336720891081836254546296368010702107194329961494165663509825243885436723346143852785743608465755837560637027783130032590751082760694855999984077352680428349809775944362307040223309711392103184259996654271221162809324294314652588396696842670608145051632286375038748917567698906531800179373885609877845895162709641232263809554497769747633589169635131186059475016229936857961119934846883813903247787118353342098374495544937570411033489143083058789848297288197355883446060036469861773154187765783295260288407355168808655587649858008913182762784053357234769185471963392882107773681451316854204264089292471926809402998374546949196132929717637850253335257513652292501583353482796118114516145759269931827338158721548498198250532694538324839723177229115039665189458700295542388039817349459855193097104552973538939833693824021751930381132181863668195952174761906004854670885277037249348751406637943490568995727607162080066099632275547511893818054268333591852299027107061283767317366208732152336568702241246851505826389411068695772470591066090258394580518642017676870978302900205435658952627160405689667689416049041163527325101873082184326952092039100813591929770109346876837223052366868703427063570149069803693652161909891410791537589455942086942226582072789740097480039970747021319128451444449195812757925980197948045036281967135529522304861659234504924069230551489919426905025053358286740995886240738435135424463812549602226091769934477106183000512079358703797513500445426607478013949045447144498981858308041167362166471476784331082494883942408092063389056034913143308059308102765406693426242936412816465096793430407744359710577987380538434476693198527957439277959112647128435893310895327675915942458032095888341965730143908732831606634740153782205830498809622865222098654356104129043976448072042623204059052853733459139829723119323194211666637998700422846644488990191731617768749682967826323361201457379031905191072928084316589470460552214652333344366492689344467972149444460030299181256010717824136210363453989836257094429643587356200149581748101923154772063021567438547584658858340101649823502990759479463910464869846119193488550848179474349465249427969593303706466474943087766454806839646282214173619980739397463618137203481490516140549213729181641856479561816650456457461236548298652631523570255930836762553235169470025462633149679719459344171329782666984283596868703756257024072617844050287350361075713333416263518552920579176269781522195121130354022416381109399494790773835204258735674374661011985200162876377725229480458459194225285709967389560043272686129387047466094828829781943365466730559952561454265986222352632260985357779435239618348385356888948864579236521469776433000463373707796780928308850664907732017365994377909513495551865720254924964825521871866246526711614882734617892274987103563581001127363316198457471383634257604335549592786096005558492967048732767890338261455047973122925199072910156734039592045783368696474977050984942751805530249267340231521998565920137746662777775561161804994449596387822286723860551891868871147864309234412220920997092399553945271202281542269538094123478724199658323779366604071148533124179326037588208860104727054613378673383782039119208649640644799489581920074277810347894459967342123802905852103452680245126265855182367059290139668758939730269121350445147074319397026461435125183407609708848727231350428434420430453273037733930644945063085661701760544428898019874392217151554328533403718691314981928016401966094501057393468090160985006427887139959821222164287344449118473900669167243662994360494101670436518719455359123876021817571322620118133417890968868528337860166060251055179219641943960168391738553555187395561782987001221404193763427347384799806248225967340110904475105914959625098448383167031517442235033541009838969762771957382666195806210376550618007425483749086080263643004518036881504351610477719894527725920729774877373888611029935981683320755747235839620503711287064110612625804263442838468960104296028671070910242008732635727334873978632685130033648107919720363264063460296615404010082375519820855867580076127547438184105943136308559523545428919112589792652318171536521952357529734488205938306571703329123955401542974021014121745458251147475267080224820843689549041888469248334702306229228305966840259436408785842393167586009593549911995120999787835316207388991833281215173129288077834102068269974440300840269710169202761148012946398312173935940092963729450517933553229804640418741882442617540213513493000055910323650413715372298150765073471779823771747157940758129452695258292336337568584703288931953528190756476966013691014665187326854699106006934793441210824729594949866499196280935068236514410077411409744979462267770679240424727190287869753931027570954725027243036861955211271509964228426628381164586374695289813196396098226442494357674566660029592485585219905167026323425020306672460148932017436997639190733554270927422237058496204195161873921676536112723742500171523856362239024573952392395396186810144715740895478858807568916591209691446526287367912334630779285210827570692497222514766301953842487845450529768263529248333404931254539447314256274011830600279074706169280374296076116376930902293141673706812623895559063265261258782693709328892906565939315677500161134166905176877668707959333627852799203441856804056665274154527901219472630590788953497860350642116856237936058805082150215670035703684360929166348440450719995844161020179129567418767538086194235919186226935232401668349673241068122877567603449130234049518714218386927625865772122382540716353637208759660451412692098758583670118483358280873439626928073687308266483464019454666578924737760452968341881475536970592546180357812017398392216251958184028189373594794782164710831604865696088893310807900809012836023868059374767326948974641071452825947219743276920503095065877317825658821043501836199347270035565646233892789280858505643154956928635146041783765792584234111959431101520582006733910307913285011859743141107761109131435867030482599914424231360969960157681032788403898120929320680361585386472684025489260941579478832640170240554433344588758274785737598465451225095603784410469355814572159909506147886325855959453836165797476832703517744280124015964360014366035190467209201815707163114530563843648654976433090113067330022008240498061142471016498504328901360707093661803187018146791095961508727472603798560096727393884007261786260295025316231795278249749360897230350712806119232961127355859258996584735910614813364480411823713895572329745042759204321501047534893256753214884139281291630260644865088320212300143960298413207935260629816312240441640366227767871634462469735642888822617376570238206579367781768557646443795153733956227818690267457142121685325402849661895096529929984204466155265509085763498171841485031856627295126485454823824530528221909100505534511105207262353868268612469206317284898248394550342857771740981047826891262218099206551554501740038305634584973691705253785695520281396476994267760548255810342756420744002715824674453287787747517356466968160509138562026072619263024867918406261486259539181925564577919194393919322690659250393263041543630853095952766828252379119983516449578875439388048190723908661491901958315840689766165550787110407556690129191925771329371553181325597546176384614494837464814969012873587106444411803223859949254917532372485446941351002776810679680675417674545274140394493588751871506577578905823349057166480826718921981549208144355219168621788796995969593715935164575309624525777968462545816309701183834891563888991210419852786614031372309091575665910891034925043878199003270735498400144768530103450637240746629059319368302430765345164276292953523394801266468986638987077459464595444625855807179372570084369548241411847712892391250006448222419842864843321686793525340611190685355509892932760379855874256027011402711105273319978146243149028905100801985024265372492720013876692926575275065693519729592973021986523806092524507125805414267110315092754132044821349046504558233035505557131401031337675493671254492222433072577308243051145052157349693532095488350599350460686729543528668191476633248433144827343188414223045297297009810525882767030072366916726677935952505619587108590174086777282924176862970597264355965710941117671715067394625586218036594022350095054113689477241449250714561984095970343737584824731026849751579301014456737545280632618417285343671646449955069113601275605032215093129754352253692064240193299523483929621885651547527649445045451992426198514841370705878980239337805665419296086782766450557394316080915489845741266746190217766758950971377352431407487243382962291089813992748993891336624888470908069404132947188855376297449431609385778105766756867842801278306708193065667075494605746058235274632160783387198874786379190963236835940892696175953327085912489758874025981534071805457212014165420893012222107892695213743631675792260663793449096375474485364633344897616434479255628337646016244538704410934276364925999162807812443432294436080467430772807860503270846174949738024968338314140072113668788588366770913509273404815908862746685418962638002296500275611039669249097060760949213979166940493573406738780738347408812596042224799085660713548531695074302085763690328616923390839742641515991579515608541928333224522126648293996329509718923686030511152504457812859899392373345493684771390082831521407011460383083309972896381912537866996145272197189506727669193881059393705839129726357973530432304155759971423510383833600258243961852078118907987261863595551556948862979572602054187003449733183416013935865382397021221810845969991595861804504675535033139905569946289816254243673285639325514491375530965892257505932316951234972614805516200687110402878735078595165364925424611660394469865637043773746398812122909439685146718751910514102757724410835611666067720218057363669146940647309854596859698299425246887420608887963457934168479947925438037637856438332177081451836806555656388896400374499620607297058831176153077638065294629877057340018523209067192236482916410886545907790181815367484742487027996975723167753356576290603540654261224621705627754085785549834834097123321183803898345494511512956069585540069058401515067294891070010790615439773190910478206854222731690004760512363082805668453266845585968943926374982298464044145971516050642912110570596054395803209989367635066655391822757150399490663085368254992825448327428994889762741225234757916205691373442662311501240504950820551012381423057352539444165654952706188044916995935932625236477655099226780843717177663627149097578170947264650012069419185372462679444120843663913382148657128820990629971148009014217684073115357937662734351455747524217980453308557256082410178248006733159006401354132147177811336765682503376224129400339121557762944564528913879665219025338527082928044482231149087067687819145703451972754808483852186379475134939887695270996899715392934738124699995873497600637641826993168426385595986117520376008885172507385583746911832326459588447339821458440404121228685480645557017396736802954047700354951818254982019970447533728935444871711990052225400699724538462495999071167064927222845640449613460135833807165052947806378387217965434875772913047968043354599604378692849033608829647890370653192256357402895349703138442003326249683202045391061606546910348143192526365669333423811017987577922766505592771260500411829590621981340416244713803599018154073764411874373307438081512829888378535621146956696556436354678873095109207572410342592477519666267675453315376001403004571917285137316520388382196979153713476151618792417100291418768689088169049235553237587067167883125850393394774277962873584143121616748381231506562569600635889257670942201325254882184305136649452152518488574489017311558531349352713343301732786350068323762425089736462779413677600054502278517762322339186946331212885857805373633455570439422772099830831773700374601767084737278847219622665217835636144297499158830805153210321393415737225814284762480797771576368126928696002419269071416647433089911380700024983834856457949760278767238280500582010960183632422824176136192736288725908862104447553299898431567925147715314522400898379535211980812068801519908881685257393171488321899897524029554648985561669590945548417991083216988212206835257973800669268833397489550196915874503386076852125950824999507195814927286616079677660837116679052860147781060865829365188576556407436043021771169893875280146445859184212537318879625750853002515090164787544532643369160426233149607439300529561014588368760623190779523776717909051397016668767058385608839604010879524401772739489921963801731089466849715486075880896357808158341765623728804658408067598364168526843096994457338679318235405833805468190608208494084922327009833162538437405345479199880839911934054884037297479412836462266473160774153067053726756926042226285206901281202215111774345620021432296944881028692307442553099886164518470690223349716356259284970185816654068469968630642920897999527723157439140420727381985063989854839866754833581266153298320226775301451646342885384096013678269824578736847425522733271968119129168571437644788254967522889110362761046800935852536618010600996273085571508785410477084653661388739783612364985568145311715352022512036562512834544299920756445181187887191905799889945210600513645194934658761046157589841823270138810490255973002237238337246034916618496787906573151487248556395547392418825163384868909506059916588817873580189746261284946448667452761297364169472720750224428594763463170806698272961914073107532409011381465478906018686186166145174583728027950710185814532226078950415308144431533061216672824065714879242831000689661676719607420844877205134417805560575408715149950130181212882533674588901695377363814548830852469847999179084022182614262089224061233272980922492175504754960733722027837172739755560895396877224368094722773409840027979074972163648599060990539886526895490274162334704645838299885258793267697922249819281857954708191446510672515001139366259408923103276397910140139425026598754291533695005820216900231144983321430317194564335846518365391475214402006453210847371251024092234793437671677702358549389171375274608552742496645566843960880695452483172463107277807878274520359379716232117990707092157722291405483017315799324085356942213328506933671862281709914342388593209638593457684393915907686150606852348393258533638066796857655839372367894954054366517586338516562224686529161451029345121658738758022228947054034649111522106186476130909900591379761442840449472689829858496600380932342169914432780141561393186911883333064156441777972262503973430183348807307916062122378291607660868917227000471701556850433243062297364897644084337903792534893216659339870032657302782260360372103019642712707701445103433658246774885565003323451510974782614952188352679295862033535627083718137916403514091599466230935150470222304774378583807357440953620430785551799908109782300493875721957797416506044553642446444164076229108010597135138489243622403140351458668229755595974145652651429222536731366630052676250461064624873571395851069943502762756056018843050033319695700653520768843208757171538599787284265129192834745146005075408373068653821358413917820954521434177035559388733403339268961065654428199661363274752845568050546560180206863436077232240013894831601734578563963498491574627047590774047701366614798325092784676711125398762992296938535152387662018166853710722874477157160053302686298225417659760118385773543373208767782142259284860834687901845946789915608002238484354677153103561846311030095767578408617872560630158236665126322040276933792716838985408671243310618969188670466207073334287626734020276012093387548257967244091833672887536802842492980384816229321562394131786646376363266366195486380846277545942128928056389918095142817187619506966377401144873108885735126043885746936232828940688369445892879727441092493628087335608740618443133925459365948627874598598095929901933595849696996252281777671111841821145976209041502115761201488019982298009774341387486433233398348578487341289072974772336307249235458540085826076454264519981762069880924998821929217702073390148556343760065019836664543535326966550478009405130473693763734358940573788718432365045904077250871671994145737574606289144268102400427613963674080061357702094998547942609139963471966629640534486450931293036830781181992545477523951427197712457804383284622808918032838195835079319261943238489799528575302886340914333395190936866423978498244351572707366119768083494066918186205458410219540180621346945225592352820296948213649477349629939356203612647995797628085680572385840448861604644964028944824855563501385400186338675954403510234091499143521411135388603328380730967813661035314108034341544546361588915457342889097003368315694559532477664767637338252089146667292137828320999250534340275776321227113411643568669801672742160389110014278918222439920959286191157053752263110622174903661691773258941529304049467286380196650304359327204902555281715650739157201564691557447873700605683929743286490855469463366480643903318463125127556192172843259014409681909478706867965186224919471430511681440543088233830119268192559836282164400695978174914590275142053618637474394805901268826949129015701625065106469620709929253011349350497910903797918755001591376884883386202469658104340831454627902506324940121408439910831098575634303411402835928150193255552771986135235135304478206493969303035359008350047242829203563722509960527206464137905903665367747451595192319705591566645907718762350112177983326745600836353756897394148718503254566862399330141835575478732314901874594260645352563540018061500572373134704997126266250526632438940788237607512095481216282749825940821416639590406035973569148691693262354182030068187273336461021096452823535257526672712494638779397499651945721443412414445631884237383196479260867669759093639248701545397006656607618895564824604378873607890617425897099176912147305689616133496317013976882811992020629152106471645634581857629398667834897707629158680261259085328906969507614697657484814719634618924762414788899898026010406056503753801326041260098585260125660293952153171945645996413253900499873104551071683720857079682000126003517140062507529152296707682426521745825410671982990972046148750958865716324473081705074538185810556732310907772728787994478292615650491808739952051586375835450664158260468071800608887207418649688956355032881623703796905845643492300943073319660972182790604595261473688386678582104019011036752104407221245800745227408466930853822324923395345425086881222023655736755054808087565290065409035037546921125170732000381947222463671981160542618340779671231725652479054691537600012571664840427736611613351199181694076343112654436892011583379392807452628812961287617112906746792729380385513407308732563117166102900889127692231002057748732618298293210096065653598999193887885542804853217790496235368485284542854806691045093526102413778747466168301927122271111901135179023693916212552217779180445648317593032623112015320460555098627972548719000155416202634070009837502322551953840965926411895284843886128949608507444697154426212061464862799473770615345589604721322018626273427276880103303813628865249042064839797174083142901584966139128595345346110050535769648465283088235402450853883822996694928142159025964589665144346491614009098867738119803040261531957178972391700332063277941223642757930923863092981965347929438163118952106157413843910898216157087445037494809058398991908455830666445807672650316497925831760936927813385039745644021267111178554175232184281111622853944587798292370251368130266131229660580981078488415186620090893546480349144626012388493144734588303092429194219795595347023537314259719841246660180577429629704414352808494680341877233950502110265241241716409367582026397099906032273100833510229547105530986531198609568972386172168670631840254184930653090677627104181799979960383449597767268042871179967550067260318817594671967338504491097871253422761549971214428007117417848770006761490003901856742917677140485078821218271723877302996756515242187810831328355874001418879964559632802936870509862545630795162597109583259095014649254255178333403268467917870649260157975842680733327536544930725578041162386347342834529151923830144388431457996019353348721207421568044876239255153455320546119072251371042957105565849364887269539190408647411367236345817817483474804414226943636990577750153876765216945137943994260221177523385824406241798787009135619966529900011300391330878025590898954267745802226148867784115333981023456431110805799930645274567187216154831091794580300557731696045431029399114516621308213897012691714141276906660034635267147022917772531914918445427015298393805279654260694850478144118109843408104863295281928264132843906584138097978572525184754762647376375987004477225025139620645270182452642376627357853337811025365543663211197166589096223092922532772105770578083854722411851291840255168500469499672896893257444250219678767765315346884777799371625480176561816946058198456203347721342306932243508029286086102098325435376966141008623157859731362894545485262329553898372747175634899080334410525112231264889852732144393189933641220646526731572057702812504617428906932422604296943769236935163012137357214661413218490465183158766005054049760925179688287232626466272627999811103521841136157567604104635350311691971762161362647443150134006471674955525374255546940901448524765077202195236257810078208710152856267635437504017774996063030051835191279139307877445734990676641790411160390101566099451179601599823270933693534017125695404783990444991695222388122979247449320729948955541533219971726928818835623249788232598860650601980185631434803878664482430155884251858311263211778892169661636680305114530527694758675571559031719931250219576188975445419972741745384665862804346478109157148055635619901510928689580109025097156716332464880782164413002884079057232248671341760301432851232590825996041359868940811219210132677973026814248981041863460927192855046843835190173385686013933697864243466879315107619258233358919585223349148330121628678947022472295136967198263185042557027678946750541378329571443335103192596721876488657579074544854431896760906879737573054398842184275366112499356212957137065453776785198175995260501226607257111703223261742877796088957106460280893686031743299713473077816589996747410185371956622238089874425103728757461169970648288871464982167147701424944353054161637520596520608790662640937377366560585426188339126997694117134718130924441960449140441769677438405407117820179306580280961211158447286517124792756078197967808601704168796905977970676860313585818178783219582050933861076825755986475118293849272033491100516949845004823921065461458955207955890715602931399608931423544430191564892657295139545672192712420979025796449465803326928691832402209579485505045448800241695669850068478443097215261507626467176227883146558123910611920691228887326279106740231445239598522225781032549969257766587604537378756526868558823608405186037507194508044456786466034024679996369755070608175556859466757914980418907836830675166127248991528559436697281185959240896823944896332664398417468134252803338372723983400801728236236406410365070163713173003401025827588561169411104232382776959980798691687714508297886111411331634524763037861558777266821965244134304949370993223683650769565758454499589382579892030675726470464173726878394610581742795769700381897251224605298837355184757401299712527477437195681846837750916055567372712028139429523076520033510463213881644247096712550082841781366601687027631318153984944511043295273676417985604910542082003442036625906295679782712296784824649465555345285090443027959191794943698205695266833006170051635988243215720982411400581585720910717623138517053958806792095911285792181834261845655920557305652442969405336006672070147836958698017028213531337641078259338641916095678941929239118552592125229927668129583015560261559284623324683990336396077827774277501200287646679303119150874877904392627792811506477785303241853935175774866131554653665171361552179197300183962177676723234497205759174967638020148952365739953559091251869800858068395200098094838761549004111322335580980891833474799267526682544318320134320959563275772909302334852081992047448276727794796973027463639688961303451893880140312866427138913245093813389069299941534189918197763182213022120137621200544216066694958650768158706639318393595891909247102059421500645156832570257072070339697203085365948529272006978029021217496607578189237540425831706023801851720219301753486917598901685899465322607520721938501142603490381260638026774059155644188699268867465211869724727971796067742651393698828779486474142653587776763762952300735729189163333222832498690029161232823222097631353904387290556435376121944626051468339089178957247362451859379777115947490341107760123144903110330470739440557065910505949239449176460615266613610805157032936053308422511737034697859728902032132298760919577606881887151664985569864837913632577232027507010930385206410890802929030788362447769217020797479147761862062178938452732734056611294424415633109381600309014077971219491613851372142994044960058241489309727088978587881982209115982899874576658146349092298633814881366667393138221438396217081555202501763942433357002356447593208515024139625610214537949988321174683167609376816842489896291130443853135303036424101040398705846453443150902538011560862121101653426407546708378914844839951554967972339292397937101589627630072606486339314816854335270461323244882231308618668434304709711521743943205333220374685069815633991964030878019235506513363685757207203953436367370814533932162413538188688364436293613052110108641669878764781929791011762672944491248234583745768461079137966362294647793585065734197221119449539505853489204915121567911778736881904304308532608142237330032900482745620458073029187599466648300159292241813941914738646336411134544477162636623021837211896834852113455219749090894665429788407732276928357901569074177094836013699501177251953010436874218889639073426258190575832162061141671492690099558890991993303467897244678654052546113194957662349735588367941591799925109923456490558468035696481876461987088269475987319766314382249858125696624295040318286919686237892686268815254427671486008297210671615304470646928159202937288190483799067349339343033359412378347606751116418053962422977148147524934450317935823896106998559528296923201178658735255958879247069696731686383708647207420818325128983531533390856355144582811671294906084320853407373559247244430961434579441751916711076743092294301517704751777647625565549431107553986885023187673197308314645113907038415444383029313712611158845518926115119188213514851041641257753402244779007662897175045598417139454885690861187858988307965864378874606921869545849242395041272561428775942027142350653313345916424083698289668802305979820013979824163942739432198802218739620585981058828929334502407870339893268758646467506792685932420842048860883344768532585832021701989249353965286171210142299438630900063768215713465159583110965649315870397092282438052471442641432270705167452418237323260362938561448687189662390360615587390819190981244876035227492270661678623884955874812105826377954223191274471285376280265176128130406074030778500267801803337549239703088391841247545406698290939135465173575650220547492424269520551726509589717575016176860438774013084692126492475226995665965549054140469598336270223506497390246937444139830943770980703194842715514848905662765801144628580847971634676771368901370297994859543190978415670412412467497363657534011502565112244643797937391030812725397250948876260470309189533426417706106784382045164161416195759591426414505677207927513589882498458128690446627649999121059910552927639852473169899394557768132899778360112661195199852814033657629402013189810268331608821741287995119566395029375958763071501755391374249466980675717705100209339040183782461071038077490169524713843999674963041894725024226576679733090376587344298388392021330081193860237648590674219799886827613539964759306709317264661369533749429490374846268174595919153208073228488691355629470080214854565304009462717955917438091364057599189263277133669074993515623619321935747490378525067172474694783137751486911857321106563877218392659090341399480242773419120585775191655816652715397833413105684211909642553031105474160443379546043139269277033848241402448414679963601018563629389601143123171047922163866620593641846605934922764873775803433452382397787062622606529273963241928934774331765389037364388648606710060068770629422750445553136573996895858355539120466453442713731920362569816204823556141110320546003058455520021234904738515126957835169534793322587315045333047668074004876076159108575782765097762079170313882084112621790292746527310341045443010171173287756115084324698150650821768002789698953642252284207684320127794077521816534673639328888774585867289613261550640668102013360144541228483339659815682891870348284231583679957410741560661100125644694281504233705227463967988042049289738523187084523163227997531773023738526415059266298383991346651174714578246827496555468727643498414515146505324425043735149034720515243590114761851173123348279139486910232018896115786096541686278020545805629791941650550867560489093142088549837928074293896133658398495858256254579239311710212599909827802890013615896155476294123499060936531917216949515945788961363375576252358475176060562625347539639474719678830560572889451275392156202587365176025929027576524016806931771023415575461970803464479099907144870630152297581892129791406672369559605623878826851054677218242118525044679553061552535733931840449315845129628024034052746441844183131333109628068845587047847394215541759722997603332554524340110456271548473909654717916697925466941887378853039405781081065168900431405636445589722666530302748394132797415115493186551582962603953020284751799778844542960737062083436016876420943416588790417122289215548112998632696052149110564009815888555485884361323568830596335045748313916983198184877514126178548329715631173831615522917784421650820249299502465741264432141547863968642439703530303978529588882290916298127672824560702531135949519915981662894919801165373313159874407380571164585339836875272669808631424229599569388944243211140619593443581710067844300118013040080203821318832538470459710481643355884677372563715949122213293806620879952525357521920522295154952324794860627230782113120058611679713900898858233983203781672799505252473153550216949408799761274440419870985452233866492535855381705686873008990715767151397497971500696750477519258121405920947551685519681491521785842375274067259127396827713728332216526359572098747521944229007809076877310279020095993637413224683090753315808639176647426865271724043944020498018557307145647764728655493343981270292208507433859012533885111183788941268916324025222475781488952113129928020822384203117026392302681592204487520129611201086849471354280756088744980119851706591169408240538572722480740369085552306465359054524333132102013160140279157395742828269005195793643572652742091717215616779962671458824288675702675211523924120208400350092178165437697546128679042481006192427299926379087937298023583054094013269432872193186683142770769830616897802417858574392465438869867132648640607147640790527055453514938475195669477768212659892426561668354695295003558705740445558493711388358561293743486026276298341986160904038077832173472789747798582375913996154398045086680118375089687013544355619881509357303765463600792694197813650725644035671627628972550891530553619494000273430120264831292143021641646848909262725694387204616435359001172586213989310947559707187722003207111010026596950758687924448823130414341802941371206568506376320659766189307087284012550369448840821577810578384757382786304015022287062235621396456473152459685258292805209444076757434593632085769415134377905402366091853208613942738694105603240286819818787115878973555709921158878467392385922900122161780234232432728936530133698278190846442213593572624905929831989948432885365091525819477136240985188575864528329434170975017837106692404441199953356147187494482196517360823379425306631843216816065273347841367172848748023733134229557665103154184088079352464170184888747638814214565835434990256602947646770543207797269126109129713589134666985825768271613568898241283583224081221712833594429055810204929411128917880357158440060283366912823104327486043144472737714839789533812046587834207738195194441606045885264174729044048508657157361405600412635104991023941582923950709891523560010767285690952178603913102160145798519109063977139541930761327034875371399969425220343866082907079018360054193242822614387023707013542977398016164313166365971517405767419505431146327896411563038595479798019762620958895524908359846813286821904743394553795300042023357353371816591932182471608182960903442384068116100024800229102020701329492888211082726997666328945031000607272763862805363123090404834753764473210305391657286837335241626347967084154752156167697151064663721708332884856264339589012532452713540122761859704023606934250729775290883578982988839244965114440069634780321625562154786082326315278905209721448425899863968921217345764258808073266801933428723980528996105727314264729507144471203688433905328713190650782788555300305245548876312749159325259719954288877870154804084393329688238369158817218096177504855547469118981309017805478081030853159592431650507363461463058450950158541759010329873487638983401629678274382441390843710168528382000827175560988149262109991293632575736885829616014320491183575004278789499915604423149733649348462501596448960004449605573569579403834447257396567952593840108479221245081891639697823243918909987621870061489316784775489886117769195148020107191297856897289166276876123929905219943221941262089570511934518580561809038600594979805510983588120698700972717396589230077144918500971289969753707213899569026955846783218420975519718234882561674441158709376765452808719811302705949127061618153183197197621929343684932563522058884916150997539682451659858372628523859868845872503202531316531058863735600889389602201066974214249327951133953807297958644313652146303357658522614151393873216001551860072731282972053054470638007249498646824553388048439624419448262152268209702798038577298211985692206574518128803619346061573213907661640090749087212053880553968963676106824821223502606176559240851459633359293205327907138303268421805026088275270509848379488722414765200061226585222284171425311983398846794935670206821873657099431001362200243982000863086081001084322134982522529409609128038467607563313664718749329225137882923125854000314824774645909012406754953451591332786792885803073501488558450654823142573374421939973893887894215639646551485704866132823795991030446722882419097618205169054832291144236000036998339438926107660403769471481626420822899958588307275856401722314913863270179526200425124630783544837019149709872025593170332819706368436705106705038158968537287153994438642198047922682993831719463826944925879102461304599948720332496501276866661129876224074628406072995096217164711636393652963078461053175036899365601709272755797035151071945928947874394222128502404882975842281949382375670816382022205549397863098484464250534266845296906657881224188362228440041484713175963362605543590191435678416470093670012806804907873392331209272567658336655556352003216595482130263992154677838323412475386641010768691945151238670737479714948682820044691825047263241143947384585987633558698016040930116947534934583170174317009329862817744226389699399860375791806655457753818960118198653386947990980565652609300937899015220838317154393104749885646804913287708264541969495621819689990530712810443838392391069592833212808217151359364579318694034937554467450672083804585090822831954310362401831946271664995584008973254718674728886161710188451514513467776064823605217953994719630447091198494935192433733855021784238613505852854901863254811507586431826480257474633883877840882681187080929496665492016172436592799884702621739462582773493749041103068191839492972503302504619107016427402970900429162065323342254211318285615342926036629752941882251874745185569579532153929578949888978545343865916168075612491281085429800323558736669670654527975489076430925717071405399874143515207741525278903661011563964748823986785430347918797038679498764101284040290621735935798018915211637410982835839043110227477768841838216529294723627939539749830419083938175910324909420418583778653349309192638668976196297093262064875395322357519099660885659756275083321419840067453798193851866293018569388325861918869646577263835765385428247781822973395202286533786220345809916080183082398096278496895098748307057176878967173878448858456663079826489229489700291944597243896293764965576310575383844201628599742620396160851697602390169128022297869993765136488050722712943429663687627813686875938754530759347865413059461737509592558248404522336444480254151677933998389968570499398327751703752036239797060924241703224676753252508956350332579168701785119982200975245627733433862238291928226247110914950294145619792259512364232759222262717320700697076301920762056485493541266622987762657487605678463680049823004296975649893322123081713796804950372707622407010772868718202033054133937219623381933182281770834350178190377769542468152029325242551511431488176818874860528903706263540364782541353460330461075688668983531846187210473210925379189311367455499401692748889066047397649373886712882599193839193487454840648569128816846601141162699311286529016541441677049980348918702020567661742103434507781604186354440910570306035016868979961314993870308607642099573117509046457348480108046912053254802934047264933866969224050751942033875387516418408930086391403743577545568279965313928709901976093965875025324100123958272444886456041670514714063607176881297706211353749718113625755634197574516978817224208538027749265875405018370077322266517849661867319932632720921772874527114636577154477703051644252763756826194732407918258717473741857885415831268214816050528905033792231199231574449606935245034830192566228639063262565602259414372707744062235271156105300483623922117020231044995236657017122690280692493157139149400468466446377059018000993241240852839802183687092820180599602749640225933830079912901298841920659959482974992276608445444181046168548537684355700948373047649611881120167793114565674577015042130792847362019955092224165289249966305705975199120223720473119043220807988055681871432306254016853997084902195397412945779895167760751549669314944955748118058334412008911619061865906337520369364334883544075864987906135973466070377853843649401518271076162210545444600590186752482663107341982572960518371222773123943037619092928778990413900811952276129201628852434483563433185809014583750169897521990120237541396759038440931576705550008230460897447990284271001628797955365439072803671277182222073173906030530093553549335951581508728474254198709859127839755169152596395432015820499622744013362099966607446391332801170566528480414749438208436954167023992585959000867874588383820644907147492747680676046976369216665980368544437677110482157605751697465962268042372264581010871948223203306571880749901408679588665339797114485480437967576182742850615557329844475979522768825655658762685433369019777974315944352596590755980924498936595172076129094641636798500259316996108188042115272187683770897675040256341545292144533941150194573599851555470699873325810984643477826076842697983975170457532129654880473851240481147758908864655235840233152364638731291064624909761487964624476706783860816038284215745060895001161457060827261627840207759750018256746334931446339207691826211231128929346789256986984671572979830533709140740762244936521187963653255478463509687987009994584040307243124260836516634347360879439280601458808916784967863647889065339954419730627677986982036645667800040958081703358011690083984615099562365799323423930026078753885717862163124554332440701685433006896196927514546440793415734291163635214582978266720795334929172196509715825497270045162377017521764761075363128352650157411705886778470519938750793791144735736701778043023059361636936541111509208768023100623242765013127822547748413162021451835552100691458921057588886712435189263531620332127469915786791890706053880535043830391615078762456114115721387906195407179032749138666201735759144352399369929589870584584851661478887309473852969070439629772666819806592829429483293242164063827484125272795675236910311443875878410130401686474211529552408558359481402081287753415659939209442347942342687549939646875404219083081067184580033084924710319133395543861873696924455738970439293928277638606434789218845420014788424075185869763853343506539330737109700519989220118132548559125091561055330007671230261677837161173783832289376506369664898285082659255690093776979446343207022973713407488077649575380242077079713213823465940711717888275314995445610549955203493702703888990475657023349056236237801253729156059571350811458864893602487170289960934453593839876037452059094679388549114458767669788010480462549847475855079977183808467000443188417673412386461294989917645284079845738103663074255296126828748230767649484628974308321672073910240679435273139064681518542737038760330204872811574981795061493704237124258580045692060275165581461868544111451767590888627656949607266791168294710228358411340911900627907605366889555206873542615805561393840453799093503855533040263742033157727994189499070662823144385921598921498237495368181742613564007490643569522367577738880005229618272546808995997571911657175517643763284215069913344699368612225139072471171538869226459025303471568132361290434690147117984072002275861087638976024151820309828727886737456151857571066726096825526478620030618076571059667844295198008231196773285265458362635942177830026230918505708277950577817568177143858130674120853145309180329865740367313019563701534930695364593771476958847617499333249795795641230059529150990079744582831130532898853547761126679311602457373938405208052133686370609853961683260304647095111300147940104471064742445075783036073194458970237719445446471212111072381372068578644945956624994332749223267979739146271240439993362132742543156625871465591215819113824449633750527793374641250707957578657843491679504742628774325652606494394128291708598140608810907299971294709300201354474662428795759115804933015028282608902897859111219199563422116779481993983820303473420002199872147049884933759976188895465516620893285344358573803653631632140852460451473709746635592639849915481555547917340459654861654313306158934972881488262186064657108377477902773051987233124465111930402505871293691457323675933321446770316633487097048593706151315402013698532539570265085800632571149267776943151267963943033672510994112218736039212574410997800652044996095101549897874819035623981186695976137903942649928222670262300467059334949829312303996012890001986177645351110889285665453758929267352498286543052802046844639310596963105069686032917355729873034742666111598679351868724713731001565926716357573514059178504502627493196447761941699196291412642512511330322581261660573021214228873208404615366803346125961566539134774051250813282349929735878519132317342540542447021008308940952200648666176511493735256103002011238066693438875637576328936027095733805493474013520308834142406515812649491106249648255959295935851205913010857715228609715718215299242750501562318565121772656809154125798553569132589900674139907715216928638383921536050390453626524283244528436020931262419417146591321356183289696464815159513154102408004667107668421933005442394654454871263227904383684597683732421512868680688841721156442040433774373807626588974953929046478100829498022799129877557531816986964956185495882065990025466532451425123931294632048201928172297133831373559790386063634313536249086040513510575996707000203486961684390304661329699726536319386315559987361090958003451763472099008998192651797782731882947483608466660939658158714574757463230192719968551535425391198215312927204127839328580153238920539422335125073105634366154148171545391349104794992758789532447959017930249945139300188938009316434381669849843620189499651445106785570353524328929715419984385828483901801515084549504946460601395565274330308897144772706088805395920631639978944135410558955030879376759948328723124079739681923921188673166977249744576035913028689807021004681077803304729852873447512338920992269705234328353375914203346771581589872358363221569877768669743747970721745204371502439731052710093852947053598416816703355187880873738728015401376326060340833648484853651542885505984942827340229443942804255457596327551566109311526037025598944008731726195471964499245055258874649454317757167124993071487028043413492469735529970512115800056577057455315001171702511435497302314573548398812726870076715633877118356320443219450474345432718048329333609171983866128092702831485511731593448212281534725060655575404334706429841311245079729413289797587269731892077557858332019743075658877835181640506356678419535432505993677462697272949474730199626711231289241304151064473311591468976217488127649365396054469861595369477466811043213504971641845091063056279267890903902039488059463613358210989933155049263061794778379970980899532235642974540665344462493767274058923832199886740807515160407858552891417766879347416738248918693371319791964666410829884250652961495283494727938317538926270011363465622762389600224072076549248017431649419773320630302300546557599627345409009182956711417092028069476309251163781481737462253565848990973499035588698365731218779090654618422737982096724702165696179010309423268541512562616088691632010011861327376311849941285314954129782299248632484926819438485376585103450005853791920746769195919821864261167588645324738057422207979143755830804094308317225488763091191080406407005182157913606833495159675444983854034138311918666025281980033396696841601116320701381499384537041315837730713382196962325578716244031063114504578204860995430214860682486784254936687051995368856700757590963980570247576396527816477426917306478589617026404819975863335713517448936742866688669243181027601460823081253302852465341849171557988356384859967635254495142959179541038204210701720339571345540149860725633408980203755079510993900824639832620321146517745146864759414790428167142919184710363943165851365812559991520052669627223342304896015448397443473487948973483333160710428396684467636342810537721452673890499597420413731327612282199549999184242873857871588094284693692393462582217178640488333700187839210711586096277542279736261371529371573225834446178207654578498970753779104187611414803777476185589855665130344925639692065807973018823662669092578330914689051123253651852801604723057816735178950879383460214345606227966354987303429824557845189966962409024532665983033443763077614636985073429537831766306115081261483690240597845765535886170542239468625821452684315110629045039565153130152811362911252947978586283753956840238342381082450013460468221135226905389729359907951766548177799238984630449796592129863666189079163686118328847217617645258509133365727378383410739301241951419465216138743833216599141915488563101433393129723709223731703891866371020656249811168673931612812000507587316296832192894573291079083098393538170206374736046761885159959707369202512461642176569499189033112744226209407219019243019722205768268626553911041004398666268926257620722957158130966685901374402687288509500536599226603980091806632692739003860609336848877241898035937837623750451696171148960696808580851261787407571016411430316599389622593642108257173408218634751469569126497562981000129840060965360074277688731240329052135375036165781575109809004648652993128148194474789063398211386277546141202254720657435958436962061589974891604638314427370701812987618397019970404230708664031136151105826309958401476956694763016967853738915024970933101819381081223415417286635329896224156474564567399284670199782051322690604236558128940730687104499636506452793083572820941110572903373562051256175968647603500858563818670085534566536124905185456019454727232474845273248877340530773723393835634504363915949136853383910498471265506935940669204353166904557635140223276081842552078473389703180199748842308477925845624624339938746768620855731965186561387709377095906043276783608479561474244055518608071841924327740497027850687950704107286971368249414377052823750258116058366180844015013686611872620991015119678924964435218453447977609241959529451521382955916319106452109217963365032381194414112044147229711497984389222294322870924534038210813206407835998397316129644585038322899696191699946478975750228983850334295807082248790975077587453225365663786655609640133104019128113292694703559887600609901270782849554735824202275602180624385930289805466119206628997306584260190787101069680776912497862507322152336945245974408676783225000432044280497889466813074730295693278892960824812296332592831958332563570010322866273301686550470242890924559460541957629741536459687430204839334534835649247811663754207932625014891833451494452311808298947747857851603317784268726937080373502983616411089985790818913710825239809723262563822322274697009739714319946535731397551557735088026774209340353686916961114548927161642100378706590311568334722123139167786034996797208761426719609866580793142059925786248761891266330157382188670973528950759088419841287628123436005121339384974166892442386896399118271333858663502203888234470064771443122847771985856127149593937212664375509623400894401832941860901269415156428383230274529090455154246807719119058995469028998158538906532248233418383831807088976060440689693707241854630844179924591394201422932262363383402724067886705870770668811052577091799849764088314954577983931265356529127891214964733712089707608737271998647907281429602143322991020662295400726426263211989355191111267007067351966682125585202213591998210686307401081780876590559555556367551935421006843795480199999189902184382189433801734066003945173919646997630445910645607508752846689459617461251673382233614857730202941809709253397171785699404377321109050751361061990458011466033588231838601613932059297638992176571732565016962631340179195490356044091656653552754960372640678892745959880298631931374855112007624444064014329367335472861322218439440793790957244063589212453207160834748483183166210336632274048527822773222087665669283789328771559284969424296734071910059899016957320501329452023658900008292611074080123955702521461577005947551178794094252805331401442929987244466479661182557149276586046295810089807848567222789662505450689792921538528850098851087280293560702198050099019039669946036500759751418191541837476987837036855931045425724629502210613433309838319186685508263191006942326090254455981811576380255011130003757797912277333277586413333428938142820146013125512127794389450337958161247180472115267025681405303349603474022429655192062352843143685099870393332402640853613218623381461428795797887370643746769383533993431763410634017489158397421602762768191158289156579103504009770901327696726236257680686854507953983049802217337352964862838490077085130390551712314678178553768210733781865919630127839555622076311761089027987211051957257339359804969110937107581511212253797735985006658538707860547047868903210221668167668015740554059568535834319343626085903713401480816834962900761962513918805044344139728780619618515539841187856876997531337467078108481375098614000803798758028567710100531560190229097753093489423872742543347049930732676361762573189702672487264201403502925976225755672045922568993480626574058535103002572433971372418477924044987292176673174397202521535011058179083192617719213751475643964158944820800533246496173037465144650711520559357797349600590633750136140733608139867962872161703583044573659033762390827008113431844484809339220074182872941073318542998022120427123845773762236858733385837147636763782776728895511264117991218346855252924092819935387115125743899689964613507724345969091076475352422783660850335034668763066228260973024889813251029503203827632108588348430867609492959471453826223704081959779240053374785285989437795093662269634216271947208349079466046957631321698043554648657093295702571305891784959984783325928410764182275271264173464662384278354893020763275191667485269003122142996979503494580342019535233464621270967709732209114987476246666283935901159266349841451798915326332342746606476445441141077208959663237519725915285581902760569880793688032594841071832256746003779957511317653258457291000043386888085384201236834780445600757408731358129186376056476558956334372413730416972110088742703621763941839771394073069910500555379283784818452746699704209204165032335200749202016924810100689127257040355154636694995864953371790148167554236717651541556481801755966372880585485769783937782977941132484573376422365178849393914949183972732078838289827910039593925639799690186141098518955400011929387426259673080192788125582591803739079253242166263820421626037167514952343789478196857151646171047095323335557952065180092431115928722373435517267809543700949292152570277386362939876029211291777911600776492977524319985247540444392655575851977664557995175046180734849773696824505719287030580849275805605125874350239203048999651533435156007910049018275147711548397242800353162840219495639762174324413814824984397247270742438666047215358941482862868942594023254114868280218560809820557341478040880051328498107330804375409735539948811380914323363036739461333998482061892368072528710666788096160836540067076895582017361284278253961427943738683596266832643454077020411063327320283684003009794739590258478786450671659639528533573587464908536781554670738812317768159350592534386460159361681340803693576432733071564436611827905229774284713163613475203240834004517947563125925515725316425486912288722929455086082353454682731156711277185684627227838967833284957982718184941042654731134354002058913473372871896183661387488231267949407344155903024321379181168169106367385440631984999586561210962192232424929931787424574389602539368430471749238006603165123520229951573972474431389230592453646087176534661160761938822359975840465706664717003519091213450939249188998546274223913855714814366281463020892224084129713151023950910686683693952214911432633691226840911459064831173778102861336078393406745628568291124093270066419467493188753841148820115936339325241453570536962728841700194480503637436443827218879867068640707324560390872656428645748668429942662774463742714639797855530658908263889165116889457212655802464702513605327076663162999468287446571351126095266918328698299794059306740798161074181611823280795633713966770335611572442413323167606123013313815330798792005965750166021595537083302985538203870171632457141069071023569386443755744717371068169253710989819697141826857538700136226621477515401297397403568569587989676880070940891782908222643428292032754544570887691495594690030874193433593079604342550612612651203491054416313672087210692672760672996437965355840667388597893079876570226190969745952154393036050747801255263669352155209641024220105326955670278285490948168157917426559637285602749073805819353993433728052213810829498294195222642067625370315451830232164406276372763845388813695051425372378374283013717985893093192729321713561124784554930951868352175021830832353509740256433496154560659080273945349932462440690307096695320929870847425622382464681506162916132218742517910315561569998080814414228009573981550985534220961831328091933761960345689543517701306785822470263268508580238975951782598572057821799932130193479903110911830078746873523468072595271738646833581142730542914886880879149686356742024946620352096506123908037781359007104704384569360235615249093155254183402411814644464793700243954869810923215805325697198962277420534090323582965828280550215277538390734554678516310403292391713437099754869996820027697181966336615660965776526111674607517585836688845617419210240534637511451569328854346617620826674465635891159119147913691879837885106960196794290821540278415118010303940559158649646907532140721513137608497606791186286998922393278248832544180222022938338460265352710026878291677845594170226541213550090824058667854442169467763881524873599579092857819905526955445767749821067461674170545743296208125443711010164658802187186633941331815821499387812638375746305138139419915708792309460840648443324180999577077893352390392513133322419485223503661438706087498644114659621250664633745783688602001067701708428075887308326910012440749819943666510905604581020961680443386668675651886365408770859252225323630034217896617561576828600867601421077708402535713686087618794721181708130465067279389782036193165331038490827174677742807967305002910592491803084341989924383271058819421023594889192521775438417320809807959185749504769398281250663595595531200321638380370832098127821777712325875587142446944928361343245774811534869855133264400647343800552045317718999120788179093581906660945858750109037824595283747787593645698315318300805236179576644956419097522411149339583307413257842482138912877867509285826171142957853947953355635810141224222904206869437150510605430181649120934851945468960958789073192835490421167361387845760728001267190333025338706438720161661910777617289338354648830120674978105089402751524914445937991071218533738032782497719907473218802031612648414024479284853140194285950077006162497391413637405608663495996059117591341106624851103264225414666074189988153747944054157643136791487500474920090051340771280264075128340762571199741655590146272949254897960862420029239129941614852584514651170620865879452440379395135945533697789260122252703520039956819255722837068340369253100015989245419942338910384121618820454087633010431088543301701665585331831409411360105360389679133111515585336434489762983768205349949035781242823018365492546679040319319482859016336453380864810316795048817497773315602847959958965315885353913201759348874815950634106210015996747727579263910043930623300761188073046986380750935866397332431668357731743648929198968558966951766050302732514064321976982321588390432703204490844043074659483681087874650879248157507043816694069685492876605166895192327648031903519409261598089494089447287841993851312804145283769645757365108193237427903948854610855495452055872061428045726572096297626049633863336866792876155178821111378734458112937412790545924907941176269976512646327035016598352863026453279400490542519437911569253548078844698506955185557588682347845902777732568982402426129600738667573849627769748125057521605222821394877290421536180938637654583959974243290401244257414863018857946748908609894061180458063682168776154690840929988503995431956668090196085742443684423985474249649209877744156487459424055844812660570396869167037448220845331469740397133597835763190793428420201624808512408639690764532852232196880258543672285172655295753528650769589629373668255625160881858388768351500353443616041584215712346221125101804961310310842884527463704023168490173471878079354044429846340770076358460136955427156879619626155485399829013985764870228878548723991617063239800164555439844421881395606665420267938004981587224874785932849079938436458789049439299002829480799228473120078334721238039410091132463861907034188955755649612592882668008346402609585989220108506334167686986151291315731717903793294457646764923520042968648588885582410208586331497021201933208468984212639542787462199864907708742617141277280365715959810895067397613845162429706973877101765674836542899339571779980438837210236498919252663393510293639930241672333597421288063614934047358038246516742175903382981010362940552425041324813968762283879011231257345873879007825275605816401002851605409690343450898702297131220669028953047039117493385201225108515236881755211455582691596167152863561128855211755547138427553897027745029025606767096045672614695936220974092490933766358225219322784318927887470205248990299042417782273725416226511964615925751857711533222144032468748714929265719129828666209991834722728354913145477787965079770925243205250378684473366128585729937468674350253266578694707272294081505017737110600635261553716334655499888787281345572603421331250598470349799730689011864520872507860870435616960948456814938197271779044229115402303733323016511755101698487032393559933522109998235565388128301559754609330155210162880493237267822586900376797924063298128963121148367648063484201672255151243249231002576422549541173164624972401177408703631169923716211542743420805853276797237520420523845558244528557446251717388128886426814039225325101487239134579415161857143401684439674807185018323458678676960109863722431830882685065872731134678698508877647916648965437329292325895445367581310556086716783551978107717764704449407062383035969351164555183613488916774424340756078948910835632440578924509329377535754809032709304119717054648222955118812736620102524590406124608665195327785305303569942367620912450880004051790491490972620400225210247150697664398424650136101856340991204575548839384961852924374116747252341368485670899376150115578919329104981250977120290562302511786916849237657037264963590410698531636854878669823091562274921621940012998118808418496278539707640458043882780154769658571857826299397805531293466011421419909453610992805296646117300592526763536859767362253191391103451198988554627970589468785528986275286770076582400275553708349315073944778970736433680304777176494364029024621189606407716795009035544817732997922245084519990608571469989621048891297463052689710919737228027255216663712447109177551467827492200453872851659420225947044343138372031098387699533325239298670218619781223242259609775277174766048929239662883063057611640014907940189291773481126891775785423739287727869097812303901794565602989591986921437830538668477614121847240967254227599576902133142402688649880415092888507855873037586088385246029586011864776876621975732201402672233638034266459044448744568361075237329610264019202795531950812293748903478351130328335514854598694165971058734298296581149539634947232828197448031892543997701170884630977921114339519901053945457395940159563773473397003795767308398447743442294706941449246815888046553580288635431350588952960112021785304809977162429411310615766036283958845163106410854376158776426337021134782168101295294678841564352018232470182234330208973390076619348727576823111928743385984505692952627385223369829550034594801008211953162365659809903671911098456079425776847439192804085296632215721165257091151048125050978640318962033116877116963834737418600598084654642906688063992439014265989762861950449490534443838261531464011384767182995922181109024873130373757710385237022328215644971969000740460096967404643865446989520171403750527178951947058287773025809820967292427624738337812974953548060321654454068244439125204399227845340399551177976608530322998347462648851412481483823788757142500647516761046595369801373485939166377591579215233450957124951955839846448693380397234407813866050500879134087061447833560316126340354534827914644091935777043490659038163509963262435119361006554770360526677488520440408472413428243345510616091460734106050459669629492600661204159491583548840176097603296186323878752323221437511552635176413946332822278755301971386357780894961469395513093494308745844535476287800670465682672410802149353612678997391603486447073183146540699779347055362135015086252624249971097999959979509972010106964153026130673164431724180527214142728350101700256050890148644325886989292448333362271729394135995617880372819603222483267155394861742868002187677358552118679140739881575698426972302953679269373710915642611832727704632996431015196080130659396584427292239903407838722342686796878440263236727054302611925129655674413021134711993705748191425455588040448942673621277402021839293684745031518999938242886048862783537091644971679615358387619701861137891355326656309377635493061199519658183591200364230040400589115462946184375616635700501611172772780188442187139372973895896201212944351849088350432385345382472781541569849346475789899905433799466752351027081802984335566229668060617995725988278992639323580232599982216373845095666069529956790559246411606146749800815784592962175318848372624789475022186087304674503065376137912085202619106482064073713117115182311415880783001374536922890772852533713134784447733292929312708313254863744234810701313542141618325800411943434747660023345568227504051265265125604981839315731086117998349999770279075605811580359655372221926137154900268335202640707862445744504685355664883312622531431967092155985627993824297695494079291604111511663395199837105643164376947508683058376425684338940607261884524808088761520953497642818124890925051055888674821125409055874776752633283533285451165357740597521829132752515049889753998946072073425987240812266365826330429788022314833141804916324454954893605557925402320562970168422252504987643268274361358491525870273264333908675429049180341751431255321621898583877193841950992747610032273810609998766738198864867413598555816949607813763426716357426416363202233807473212787690533865616052569392087897808809963918422450724663547349527858180932173398793863500442560843771991999437892287855648465783097886176245971237350936387642799851327422514762787206676064993012381695049441310984310837387119714910482471207453989231524750711565699659617065192555772731432736351532629469479202135019652954240914457580526021212127538215753150451272439656405131942742470345986210535165553864014116696471989910612206568461198216839511138723037863562521907946613433536318874150305549899651870081723276828787749698371915709727088162956967756132144582452308641233945658027366853308361658768182369705013602596380324350136904058819151573346170307712707343945244423760692767526766709313869811919876506024717985886236939721807979617568607900068335437138538711529722164375578548058155551123593264099316758744830819903550474317233396729162665906919623719768309129833507339243045031547612670557053858320015095864768776246339007648380611589642816448160866060561635510606187307773568802500393873095378246829249393763377257066003190181604006953357446798979455859958257084762512703957508921482272532421464944104650918533975736326574098113714511211039859448079304981876313710420772655446894170348512634693625714779838297905775615104434463485268281483633771394052634377985705835237180561600773323474381036196306402497942644890520443117064947389878135583959661698148952562125556133030493196720769744655669801901352144539004356420831795416446527466076829656157002755520959122956448762375615323281133831191218589489943375099421245125821490826182350082283312940876195438924194197877070638664736724885237948283494534001691709546359455263942102832439945627469833003225730745002480173101608265195173067005504073983369378085509670856394517837626896826108501137649096642880097226964283223469531636824179476736298835691899663334785674687265075173919332886046300472606242279425527826795112672010546235345226450632505676955781694892405880686261203408202699716259469021612284094748118000008246542118010867362503069909826807710957519311814349906273259351718332568213283009237426108185516703144031487229248937246251957524958039865340892926039299624158100131739933738590558518300252864812186582533569022998015384104988291708893014731384080859861091199888652903449099292797974892521396032358759432562373349731673148771775215937506169877021444025148913731907615055546834649085280024108763011259423727575967774904602802317955482068963370720431833164582640615878721084159229916360421333760432965741788511274681169360403233398369302222346611579177400707413577684997838685266400573977812558257054533050330632536083832421580520029564387761165990911276926227283217403214232798002707668890629775501211835019407776384286322986597782101314577414491658895664495872543898813309585168901931873763647400726101631537448935594686593866530508929793370122282855916527334741630907767115352676846426887843928423278993156827211657977129923791586003901249692969884740464220935321080624215921609141409451238957933499691127534699492268156611422099646690912743089390661384423657791759866147764974175531394713692151309925914182510797611217770724478719456448820729421974215880968572030451114093822753576011824863689808585355123047686166915855128723485784564778359158611349493978013362883559051214473849293419273582205455987488050537147104609102398894430924990466877745161962486746939984198181922652552793800847260103303552768238967536079748341877950430194957727425772036509173853700553464130077543901096115414093950233315401163179200684720550160966626516196060630149711044824775684426664147016912240751119829748279619156862377379875557214450333615990374708325422933854804273479084141022680692335962279907444295616019352438475653052992398940224693233941170723076299602100653936611834979559235758293878082219162926540941209261565986806804712663371515572626500395835255683406358801975087278459540483938222049223674038467000105529783071777025258504914853376566913714603633837388542988317776501090497995023031078354121879194026243454389323052907160301415260062389986537790169971159150997473713408322567802975814807014596414192600458205564657692477014953228859790573569834127977131083316157556719812227996459460361515279350868903234599854824153909441511716644456362547881108025381091999848881317957455027961134119152690582596906307084928187117443299219654307155003765685135690718941796760525563261164733790590077350265077662659176416617494985305017925929558111925981039209545856513674514857015613049427327096584995694041196773568799085498848336799348853802594445867027745116073760599457335357289275042931478741573921177917642385258047166428751309752630406254016003022106751227947484947437837577927650737673504460607864270627432884519795772190111012806928945467474940652047172615475455568238628686089213872579897734994561326532844033593075818154218425561548168809623715921800692887157752660353109421694529522494849158197206961852700403149879161737930327800551238321217152222008461699463657877968943546026458360365331771870195987223765423770001433597065292720382667695541684317214097224135855060009039851428567668212785513206480668247870170463670163267365633873828670434165315570270827648051816672400856030585224740413564777210743843233607114153923107314532294144134243280936972677631205694800804567085253253130736482367407340281490869002659351573488456460956080991882520027530055267246939711497645309334991692794518720893150827235906899215165795911457259044657412289982239068910593032941177085974431302561585743113776804997834973985771756305149798295390321397310825850261795510512317690613712998127232760667202899492310357627218871036691276093996653951807883031461404024083345905139823687253313740698577146924113861015175505217322100899495650025426114590061611234299010275961054225318841140618117905782645305904222453158336600564839489377468057620989059732571618283994341876843508956165317000761126004716118678331006504537104578957666745371227369283470911224177954795304712778609016270513801379425115308626056471345499982649967142803791501135464185283963607331027067136478792757884438241955484967366382533937549522888425427751540487460154096284468484041593006770171612248235466599434531456416076733764276657809984917062940171555942400035887749691802757929419118874193358746085344437254753650221643638837532161826629091557287154197628836839560969868221511467742289359495533122106233191856323622672105966621099035216567932493885300762612204952390128204153888981548946244256331145340131802230951161235690621987189935728213135074146668288260092759615970517819449730042692583114989499379714741894196275705551554548931132143983756745975334230783299292268505567238319145342641989998152663388171398856099490782120567858071819593126884795573953269442597677399984393530408477487993662760525358279190045859717724775788886980287322187545169474230675529276146799924761826831115424444316180929212111125479016036128220842543314084551566463350092485539596543026548844912833641013791352850707952542817712107299281448290878289829506930387114400826358520957777373099174708945717444398070023853295846970528499040914938253603356625326545881773260942412985798530145178454431882476170217616078489892794306613042818349983742754303318771238807270750122329066478816846797231793295551039049390333291694773234201317137381144678589701904574917962469284471455095283965273649834006869707035072250546596720469446343537974955073616479934414290241865543379795865785100516983910655388149255522465126413081005972377679666757186063239770844319075430272366033022977747356955480167571791504683339210434450188933528686615983057427047270696878896178578622887793588821212299691087703512365368917182273612182250101508117565865394910762555367634872076309596931861428238138192992714273339711055810748114032383072261527547678857014043212445378423501185741441145614890595412263778514370522360990751813992531374374156775354152653462225661371528335433364416070240089962975055981737148764887772048899538740048257615114959952201734927667088525085236345258200523696464980440111891306623980459060981296677612940919724034526367845823002091444483064005905007735258974132813331495664933286500719752831192682961749620697400418762008852930972512794662629345811116857884613741733457731865834756607014086868819722067378193802181876605309018328127381335276863862981708216196392229023045101331408380936992222355741101953993328180433321554406382582310430359227445741335184790096486207373956558576842147807181308077830832552657702101044540047835587644701232193941622006901092187218698163424505649159684255005940235879368013204682610550080224320167573369838174549513784911051450891885356351716232453335443134351455312139695374194060495611900974619989974673319583613856598147699464615087736972230634195296882865117290212328218114780357067223142511222855992884798665953020302918584419768535858504558391900786872398239313299510429371990010558941026614253124868100659238136446826619340577805800494921411557478209038779958661517119177733635922599383749604197893065682765653880359189543189491692834829605876831620913553451229919363415939348040631561970877752440916003126550750448460363397506329048887266474486640479073133995176842350364795741045950228526420720693754601594095246456144938968838790868669257202682550782910020159457615528306488429028967359367357665709877448898837035601600539256445082391713897336254771629425633992038327856737904254413951190376142367184295517820954433095347853831092503475738579632711936261309536623834455066219103746144125292228789497020036265887192689617560081175364130399816820167291818610978661821414396536909193702919713887745010676305349358523548357636981727743045735080168947599368908625244714591067280073489255486904885439320653358153317944515466250034423416275645401730262595788248903471627380638401737948800901103423088070323942238500760716086599641551196745587297879391749016128206297753714696325569909080265949258371450801489669390397594783789390988942544076475732994213411097926462378503575937585062591322778661974608887546911892802776633023064766962384819155744066872610311614587026339004287256197538169530314431964580844202172974987374232384453464637309538656523942371613039039156615173352507540037412244137866674214745242947649746905900196577854165092025740976115559624339037307001519397892463456771672307545798897865542108489729693689086476827162074534438978496559227765312727303135496302996063788370244269257164471503957910462512214817867159089544990801570258028304386999589636600859594991786180674703952729402482581065590707862179282415354068840564523758689400721392990828383793047309635209246790248628850271364957212729207770851838329334120605864087714960374135829641219531765131547188184338858872434416031574555354399663521036131179288541707013884332418276678226939113200031044441031930317201890250891486472016011138259491805140090087553503697199691017755224704157272572554604141005528453065219171396085043691468502596042900345965484974671907581811425013850052731095702709226981979718405829563116124012020609313188659385355545432996264209882411221472636023646639105905735920803153721539961049334197613407887876022952484724466025148711018630925240505165348312519458628255573211719826017316443399447782867931664695072261304056198559270806235612277585694420801097784404193266650398243126203757479121872380504404883484301623978472648605702507364458769813087346215458812736971526342928881307936360676470327131298402759895165865616104780852949313899861073217902842973653952413224856422559609562381043684768187208554403070794727455922854172181695845888679073688198719444945801803224233784765769041375069567148271618874224886875936114863886201277021799821144762104600996883823108560521861839445910166703458688062270650074583912095598647925708544087980150806160542857880735089721481478884045287864184496040183557970551335427423322917455873123010313662097042246711236144153491190917304447875820731153196564160499280074968238466655428819058216287311380211609309526201635958918781958185512697303643639228291166734784010110177039302107357793065909852814848953219643840244165305733171834446917127495039936051254547443161292268530382209854679200272923630123455372603464728098117237132882174892532849368072339397517984195593303010273807952868116814442580953092589762722555485325538619376150403406831448953303119627973274254024640637813567038550769437384941240882487621801462468688893371270848721272301306383757026597711345408920101395767354735862976555730309862467300660952897161799759729594519395444118278399005285849667354362688499923702309677795128826448397297141955206016034298067315874137644331455779007873367605737595550379864233908386099953724515989421345936506992119687180884577209847046550944553855165488920929976882409086672514874492056957742431130692920701583684298987818444716360277595547401101497962421801110995036727000531242884864141553167373450580913759653570807970661237593310222698288994887463701822985046470327834320721574455558415167316344015872109378316680680461903025688284729871526574292487723617703799309355418142382349358691137817128362841223806126211172362941259433676646761218567449493059729636613477357143150462549140093697608700165513216106171629417162759883136950348304143622136410866786285382014729027337905767972427785050982035432565327754388206809474766066163983007647096161187899248723694544314655761860741007651055169599761782776811875781970794898488009654368477080323378427863957852502931624600301370206090044853214491036027710661159967134373889579704108172498402195697786048458217773401616298817698426145968416262099347158051966090916739681479606714279222829345150322111683433068500460589264806934697118670227945111125648109671029292181539280955437277363487302480951581841026497163336934561702018630217499478289923565697850889385249896108844114127199064003718335021814493538516798515995935289025470661127778516271804956120067322854702188077591728014995728418920070803414787260668859427028945563186515495274193403932874357653440884452709174759654994820159865844631157310386493509619986676855756306271030245838867469121999859081454105655602021691339998395077210875361048965015141590248100174755050431819124342966343092939632143014673692570509123532999527305630906437902982522987382115830578827897974602017223756613779403762676998677905770888508382982996375304269333681644739454787608733552470669247555384538131489839139627425272448891173753430940381020028992008103794241193230113738867982699316812229866861186807201610117105075898751158853575292318545674929216223573648989518801889499419012428460763058721769061634153115395004243458683121634679867388611819043265297049591321249371203531594631054332414460284600571570381565921448742344003725296550603508238233422878143842565171866517298473746282313088846755719036742697502324999798931481671857884704548577519010217171268494521661474033196348858637015699526969485007925226916047486140552460880866053366168094948162769690716673145809175909287512645138752042351330001484505665418818390899492487451745675166393325859350085874493199406449735755179622967932229698440198266291075754112134214248434666508194651828561224072433091375833824842447078365133567356360706804787961658844942414595526073323863792049935809620651663124509313416995241216958145405258494230571622737579425052036887650387443189346847106554287689039834427975319228474008729852681689967820410879937873819443886967921365614524414104374963184369596214738404589720882117326771165071837658646750669547052034199382827785752098758309206527069056029303502331861452650180084249781838911561710665802594180900236656061813426224525483904270795301772759580213427678118931926913352632616279916160815312265912809248518384254204336638576709106780567121287930533335784052010432211108098536075163941329622777408400513593556125940825164961613846299022668264615617801741780977734664367055772810452986970606176216454357826053834631604633835165699458995965955423332571300785329146333561286216104200051076291363343860784031585872424584180775617593274167425707165199923740547323110388413972087732227005627883269184446516343900338144991390584808988594343308974572114560535563515662132749854807687885178929203796092868465984814580538939935086354242623854952085326019651033408668762791279120523921514297092832133312343417520151973630542500746342679022703832647419727607211251998242956479158388791707285962343296298199023678366907193708635880223232952734064357073962924993185942365244610521205560359835022065029512893998137673609247648540277515552382687864376814927073509878598896428228266695984246670464922835529167582638198282635454110506289145072811593089672200259549511726285898318220266273396962098033290952073050150842832057942724218746516964146751452828961567355456613553730063953868908457638541351550228644406714877317065139722465654973382782180071214767099881983179629639081021749079512968979614128950006411400880759796402492957280503985885561731174936243566724766125785048878655165546468245823575109580584600317703810417716819948471377538635367186738189291121122325437909419724449041134712172422867545388287139416461563563882206044369682308051867355350439950005988165506337186997495103290276279336673955012423089337612706615241028595015160588517366794730915637667964640569173410792437625820232450930108744113554773640508526394677504377187635797491804474608985909850302573258549146658493909350953847378622797471416197838020328456980892690448635184992348601518225048064288120337996836914523928436301463311260028698849119157879397837116710112504459492949224617853072444934646781035309628211525851948544583862967906502744686696212909327945848010609930850892404069901179765167585954812241383435377023076395714874873438029771929125125554276194173564891331538433312492186920053751770982802374046723014085445740015286958391350212055342808791773547009313831577962753168094996493937258935455672600115433053398137933648559744669521770727698261813103726290860218948893132650952099463200893062884382794365790975937777026885357679695382379575943462507192260606780266354812220323234021684702146785185200500625656103483824293994366287361543835480616625187428345772148853932249832280925361704159125562344803782476177847839772321389058382413148505851548386581243825969815693600856865556153190649958542834588669916645905851635807261104995052738111544491719270874163941621909711022625336261719528812273511121703277665843878134991987459313360126299572015093115357164629822993489918658484580397652264779810845692796490058020359355836440707958759370181127349892903983399840685632393001182517685689851228490196952903236986986167694644634422057535524459846859984171616200137756890990509768750994439908132264899187812497315200160989294720405185496255641821035368925511120595844776339957733137471609624026737339746270041149519055210735555585251477440178486456858369549578109370224527003029306059750961123624712555492707539854575484421278754712197476740925123256965566878428192811966382358595796638416802378205535821710687035406727314774091020519953912419600143350682891076995623398546132977112137229076891050772616581853075797871346867676009343382707533352407390248263997150021309833960425765829983569500969214134069386475173480218087995112661511634233589023981057890841110005493096666253531517015672165574919111233012434187379914607664073753080631697062789833751054259270143074464879020787718506933556855730710899023803174491552375827576257603962965820176411513180378595384690332924745566341019412758087855049802045937392911403552810964664185201367087150202000924410305214618697966334913223087149704126653038743612668446434697520931415461720484533755676142711693000627453989037814194690360276523228580174735590770914586199126429396410285180178935230495677279840601811996911082875579148747765194396311834167505192314464362042196870609224939324540830626169126062296109321674942449390227896671889176440685144095308338300832228430584720690497025697198266098234932447276138750229440125504207360733282408062004096061709306256118716193407607945900196090748341535924046506433908881551775228723290980544404774254391871038923216899054416875813372425758923868590386794549085620848306900823269983870836573855523854750041382307962866783892741765173551407431152297828381119782452648485493124093456908109001883920826252824404540092009513821780154249998169087713004942728840693347968147522632002254507781532496762581089321326892590796605985376386128999451093263395957519300790171133024757265048796594081164796913130301829498883179642569177542217511123544858302346271819233443793189144264890252530744294747491110551529612058859873860213697009355549016767050388337416105346863139259776898911073139328216829411452664816040752113630231535731240350154990228843553604914558357734312640540012205119540859736088736312200126379636584006320979909370131795497737610820736980765142575378666649869547142609120999305800960580926459493306932102710775511844450115877027440041155423568530733049170270239375617342348387904168871476926866002852114200294395305384053883990148469104837081835116292058272614511431597077178075124097778738132931009032052158773159108884533509165772370406065967979589901160423559985162176674522449744075027318966230096661186013246940348803164571465172181792215615196385665502941725547257950960864258131396974395229804408780862755409456259500324147827314898873027753519332660038399108303350711898933751751301908673495971923983211854456367202801260650785247682565433298513544217347579549671405295094790283812593794242070676836080508132554067167418630873411039494918108573200150199177999502402775205909049342392026285023209420593232104428946905994071281580858218073412632595444058456040485682002259532500395010904536201109224115500450117562094953728572878084035287814822053196831938666321472323488995849068222558497089147709684659850088113740869012040395514413951482740332399978049726344396352793835363153320777856381370851744441107269816817069836260682689021326255316050390883362420788066774926773115240005816903180389805996425681032227027334626230381787803575327678147162492201189768267235486061725967469807953346256250090425187690073379669998826739233738091638893351119688027729459056557376330138672889795702745228284264921073700368943456512803513315763346765182706204851805297429918059573148871082305169844833766402054718396379304031162394568692063020431417543551764893229540201017800239804924046247326718716118982615439902653080464354582566983115133142053424460893773163539124735956332477495365033073036449119608374333454170114723664852663118217440056284748489030314556784641584717331546559852905507025157429304566756920826937252866838333022317597649048665755001433136008238513776847743207926295246423731395094449658400661850439100300899292041611537315018824974088649971761478769327374697005182775144903898509769740621271411196714839583256215175280289832055113197514638657083708646122234526560096617231700242100210548247851658740472653290573470262738757234632888072816292891105591940197388054440928955003834011414665760064635370048664785424936981887492511351937913183211541689496380916016329132950890836667006887984857351147144643104118360989101107155733472402009293948085452024306492725357299866232563855412886582264818815796199821499196590809655647874504275442049224693356340324493880317891607495482593508397950222128285962640842568934785294294065974630156441766167902500894957037770621157807751994416207518821369886291242176134678068701006914287560296937595475260313545816341462555316497850621837825797360165896158713130891104746315629217417336093685207952449650315408706975543859109303098656483521313165992875327958105032104786324606801901424280485756963196508321272677916477758977473811136162443489353008698433801487241551113004806981072859920951325217082884041391021758843247903192158445520916098286173397669011384665873091963454346154092216736084537063629339320330683776907315235846452148177194236841634294856062062485495843556232465637376712720496785867449877110960319161726015307855039105270795838264998765732526487495699378883136725575072411757666033703384771796934533101079137636490378842002998286504651674334110867021209156310165143485941169768296729309765761954992140036733233474089501590418644081129632795959355619363667890649920918624947136388452881475403598707732971485481092475758413860195623824050410583492895527018241190168173301536787046716399574267728298006759701044939272389831113929588870345133827058463772124409147545080428248661778644637908389192119172633893507773976452649253662249603247944081847175943686145884098493303337908473810748923863725745490436484590672613319200393043475424924949846647035680881961165410820180245728061385063382792489052900449133245605514057148002312486675921532585561160586909285174563026323077175718694525268960759821947009406108294949423362532266981900589207554680216892346873786851687127115213346678885589226953877644736228363539159358255329810869775209000593348770075718956587048149828487414869832679224219036318433855542906125250760015924946194926803075631845379978301166472532459436351136488604908533118580814608582652868034661020851990795836050218152408985028217621391404100115754721460193365797680104300729532884127331766929074570729157918140438626964263169991417673301645003941068367286995270887299358719325251199187688618583658539157359250938094970211626738615434191401385677839812637487648340827025945561110594983860576762772160867001891520562219010510559361129662278250182803229743363688117718419157313598943755509357257903580762210960250036436366155022223103316121314637806784208481952244187998632108616641842832473782550569077036166084359814537111509283930315058645376745802336067679988862812078701505548587458700082442066299717212618226837105088078571914176056769004670247662316526445662314719486603962936736155713344163002824982189529465208190530528030785661885129180735877652666658210780497121855381170913910780306003312390540171209605615086890852113643838323786984662327738374712022422559384701377140273326711701613556571180162153725431329479844218995062231875932632352011455898010444912456852296479690261718376952962696550768822320666506578531574167830266624120021916067663197765430452978933213619794721226550684963725223712103798454502878292637292464600484783172339473568020102325633122678917692843094248856338868956379232527249572743813560508384359038474799323367016546151250118287572620805063039791582496826526959763527945824428764670391551016588629507347573581817155802553053393860613526545461870168744124604922124570007848486676209147585758229739936172732033264351103947928775610098308156184038076243345440766674453458124719487543379315910289954194777582198839243599558591751196168002640631943658377122554553760630222945646256356008997479980931123693842783422209597591763505942786375181447880350015909958465489967624862713657663231483260672512104558118129824069724163463460288565523529843529929831686739414071122260643818151511997241133495563013261813591313723231126954014661878590758053791585516948752775074869676582283703437802901278445910446038171612817721652494440417347771784582977977949184960668977731067904165903868847125607430756319688043804988810738124151268821996853537216384649110190616500269546613358462471248555475626196970573993412872033009086602116640326869304802190137333150785005826586910655866580749141444037958391279169277911424828960895343271784052370475334767770379735140489297971145236130867126208772027113633462855174617310375603840123833398690053314085887784501483640935441477852940535229463469179780981284155460106842677640320965535927319034230182273855927678868358074252145676349072365131347471588106282870953689126883659435913675606924239745157580330365524830658851908963948112517526174638033273971076688837564288639995752924182177728494170199518558388988438096874830801058587772657918897404110481375058400382398444901315419393917078751376434170364739303762294098996521742263869595311824101706285847446658295442470971124882489483375599458281557879646904538020440306389939081181543308758469566237873772473384841886572039242479383914869379149711731769867347321521867898746932033154729074772826899424716684678739895579669987775546746119621372435814013999420642132104074135575206946485350323592359273460269277876673656477146256468831292634315697171738791673043664263823437683661760461605184497097619900530124759555042230841365198402733439715078995975232102399101595838969699318142019046826389913187623735915175782251874647602663800033274335088001620749990574237622306674070523156958865519126994236845601703390179977471078238872127326152111185498217252674183844253993460993011209109917087647658973607965449018984456847056388948228738162053133964955733894506974566229433682656565319336329183108301919409588436038760710725344200400673127739268877549732901575190973572959864559061887491258281238897052395607891964262114015501920131413679579782923563622942103134196573507642367962402956905050281469821646636439121574763881799488256976390175946740851616145618343186073831609010163390665663957118123532691913508498385230429910625031932871463795284115143970308703424594175041688056994205279416699014633185555914170055001258823227498018721749773691124250053276227309297319463978676330335116702032599598643983151740272773508071055686717617085079226437839533770335006462441391633741244750294721859941190297278108727439710688776767880634519060964667821088841972089891660987967537832488464415630893941710504187921220439801378454134015373037459232426025465359326144253166505479422079194080001079055138443815122802504164550727030756269098707334773700759746837728046150226042013280724294488135897054560539190785802650336238955265166339092574268430487912700640487961486618639801025325631330645708629822235983612779128900887622751863447481822972272574969033495270546593268116461071334309171986884229880912395166909493305395540754199991259512872269785336460386238957765593243529529745744014642442487432557621754545849289075410985290010067539995106673830219307161984477695425311700366823452852023900736878822271191881807443127422347148273980389892643742215446844057508782967443017402283371851668663697242030295095592410702945161309935846940386981651654155684939484356169653317119597074417881035922694832266269360974127397501010480344501530244015568198321748821293462117603304141692619411806951796550620567473169670585155257079918719369707569641526842151596719953862599313547867143023483523475667223327018065302360680622251082253490487736504719614377467141077810835927261580536112341206706713567036429592260979525813579884855927781030690151441490448059257551703937799610562222256148519804952708217183441679682500362844882526181530651356032509520303872935390129605206849732482237706133144359857051643015967265042524462835346126042560554121187952329255405522870378218448523494458417615342264305003289016796131099480040282294586607859104382467147897412737465447583001318634580836305199514825039380112683150337604474984715337103098420999756283813850331094506369622921974825866892276240922950715342947885439394381893670806612267880295198137199308498610137302927747132395096757414542211139372651578135666684212026582462154885821393711719844554913587076616404867991368372664964111143453754021895421003038246819547105518895511993550829745081706571888224172763909343410427088756014790558904261691104465211017905918816697747157542030940682412532799893502586538409162337005189615454058408070066854927773936610100551879637181064887730906380943461996245881854277494922957447207989559841433661992779431310151174904348095877172412623303340322747073472570226818118684216173620966018397941024782324574946634180443029368852940509119804663670320246084566646924049911651545916988575853925154387935862599630831757472708989154655765279078029609984658373560421599169242859641959206463789237217312998828262308085990785274962141636688494703573159128265088798281547296067482737271887179047314953865064075690345946540073075218148004832093287655371623550756042388143891355654560703780421506879439661387120168314640276861862922341756495127473252140071035962377538241500631518285235173699626653220059135272506038140130643265002923540657071169108739643280799728576202157916218917284579319334459231218839991070946983278013862054876848119840391389227727382287787336494338923638553935164008827509816146577915892863829858546063098806836522295912877711573046206661545409900438280523877029944892723502690408116638894071152058186139429348606911736455695088473363261985725119230841326067453063331846309378168087385170117952545388057606727090360301794457251738561258497452326879174312188005090743328088784753874835407677064560847472765894634773212362788954713544523474380196110602885818477678087974571097374935488269917669965129739005204650404363916521249068781449138369267285668724830317764607573040863065509615897249882569218939782904589337645058630212935296354376711047124368641013963608079282266859374117020932127770595293847040374866094470292570792535813317579441089496198029323229591963523048585661877764775050799564776995308891316461330576683767153350183993096673618674651621255895246694138910509759544559083608490031099759968805403379251689878555638212991946592695946126741485109428763966778442940334172122931242366175082358626476731106755106699464718994649940765302667109512990242875846102545139089745008257324873556034312421250670546766748202869785885558931556354100746445592492872287741721244525567475687193071402948565079797700857125270725168801501613189941628646155088734246007802202776867638653064726390839825707860473089415247639174419433169977336282446469423667117564906029814298002968439926043690938246453350182633997270747280014578806525706434681848505837463610908185725921115105466126267322729562753124510647314440831560502652869266415839122108448697562367512562398469726227651761478301381043851388209056933025131988404540712954364345745054303179129163326702878621860099482469488547531798482680113111384082362922389019707234069490845557920988316121926385950516320852536120574334805026581181996992536493009275924639627186726336351056963892099787379135580160849168526128558028543784825199743776086281678025887521198427541173239956922718221234506665343367080805030367357804186202885058729511538803803435963554055524376975874505034240571869180555976475694583328560714221354450989784621900324547814174466799407668652280211682751065854102764198446428067383940158798173199978524518928813134447510830583475899641289398792253141705699880978101537290569464919288986716134066988617645011789887741707244356786128758624017383331996367296641057324995179110350276359740723182737264230176051203826762127925375619100047159804512241917221988682734893293311537055024690318999304963413694166200244701676930846174389915969893520302158063679887035740239888375227412996855271962267016470956043800424704088064158678402191241678331169805708949584469357902521782770362013147982809637759699908800563600278167127701452930949022877089082646153852617117804493674682230695260329187675212719118457187793398834298440379719827497499531333686604069454420254290893226055808535369379785515322033530186088547194417475992882493717525537915318916603893088146073110843764061929569572134866875571909138303410606559240895669190091634957626632159628566856105104560577368011962212656098445958274920082237465668702285556057968995917152277292744088859179627653640739028143235512135230708692029800272135404715040109326660319502699937765351603782319428960426507620282805697617518498527045648657179046925565390118433394588321216093864939455079324738419613850223615827083426965405078055590793170344772780645022934390874309244340706724422050803097250646078731091566140217698281376971296257313274280423316514956763975628692859555511615698126755867614371506513113669628257537938950364639146029184665749280261340867833954105925795764422787735919748201829711599296605800845511951559062596030511093050039091071938055304281236231650409968488283922127618588350716861042675969622434060469806018239872994296669896906640927445897045778229855539622044681014868735211280776100266915607543879566293950710745738913387309737682905770182969612514620070992774556681878100848792643143367720602813443826894093649007544336981906732991257886224826341128572397527433586846139131080083659136271037209028198719075319028531251185462532304753310220502512224335948107848501129248022575074307962368191536351130777233259139525805586171213331538428235850515536873152619137895730265263312588485631078505498458880008905857551645575115555666758331375372764357276691663393426368392947247984150013541899060585493662218871588672231136552790697287128861799182149879734145522559367430344829988935715955834922023944991223973208328775628847774788388871360033418479251186452300651610082952902797634968731977538574400044914100264968349073861319697534226520698221431008087868041451359805867739614512490252113109490856367471594937008053734914903804867679016847875283037008077466164200937352413743991202256010602558260922812803653568378493424991166105957623292509918290989619342859715223951764280522212831202459889672951368575352780508517257719338384275594618813617969737677264203528645036211977104331852322319907534748424105600654983286019667427663203191503355609444637967000319337519068531616224655375344272600676226373330575365296268670139449609707397089702681911896381017635114157146763130029387575065297293518009884695939514682277967095036278892200577570661691535742025198293118704169477574012710245042797573579906840501349897193205198636325873882311768459269329677725335021632323336036014517055458450027754454433727737791941687467770040605522200132645047220612753182207357114286327338697950879228280475572950695669553182644386099549904347039600800848177107617874969377220725813795487509029778708148680207854969512497802830312288967589237404536631198026786567293966668136753731212558036273582534417834626291261080173197870890300673414937314728092529417821923536567538059877801625606246848125265856888456718205443891767147460534084511452235526008949992689490291748248453203265485821749312652138392644072173225141486403697746298854605891272832201538106787675611970820235188807874279422694809500438928694868531598899764261454267144166437997041536217348710613662471201168683138917518110067107246096328289154734753858882740729003187266775973155783882353891575686160781088430395983128334693984053929685235850171583878140822560605107091984217405744026268557698382190132963668106182295752054110074215205217457311176701875863890541174475361838998783058940756616159394286275133834065084346536626692870624815745266845782102703418947849990427910608733366613551352490790244952263702488827741211244207700939957146154194089160816121281443627519014206839417897233889115677531577824958162491730480947512357393706587720036054902345557488559867959639633474660602683684808925759591540326208594061256023435548554837629582364364482383128579919978137788401408479220463588934316860349702209271439234449203849989318946096784652588354863148811523052255847497470615952531904701863132711603086124309259625490590601556298069289800487137658156353322566342296344120050462721686575906804838532469663694455438217598585384574636006501171215597783368393773337832008628629670780994039706935312504946316595655831531649482690585926075263535831261525545079384809032707445609054461678563173010885033378254257707653557821316618719625308658357778018432018359844575348038625235239513545291307008622056919214972022075272371187200216449775408740815973840427723594886926610693294826853988415317660041315307829224547156806582313857925764955042400247398247423531422569086342704664550397556978091624925415331515954626996374552572882774959163099054192392629716507529846307872095024898138025842692597712977395094646942065166691002795337798022954184075081317040496841664685440270249575541960065918606112814902802116254884282519642256404355560089751787278713569347797572178875057079442483456544383442905650929379174820125132571404638630695043352616902493946958365581437389530666532599085575921847343279621710059623909662539874285636004322305660903341497067471639668784847724178255796201726710478182940421457841580967362653715393494259982554754005033448709040626202811301735239105060803543112442506540172518954948499266013684247396039558218073442404043676017253682368998992505051084479116889305334903436458020482365801374305464417935944630322263780457455944247080084768663565321092382400765337599822952125491551020063526035772963844028824228232697217992726710416017978002824959983829085827945398297884509218845779944842161534734053334485215589171560936547682297909523022199243009728697915578594980043755184068731230819968927414469835177229085226311299800043690150772651022009379493423340770948794744618619651540158519002766499069481044037400127623379625062688152610621187888715591712879444944650337726000788236913114592362064302233878286821155076716794014960409400709130366770453393469045152403963799357145806143283350402454246611227441018720421290165649341515137151489228047356078531481156873836236891783687516457002666803029262688794444179733533572128001225432392784724755612277001159884968584002401005761908589859227625788550089951613893453611079119614783477348048054536718991938419105884689192451753027329839327195061290904707334796481278578456962677933003249491349599890668234240596857058809468963505677076323959216000535791797666618034537604916509477625708605529246707909835973431556633603369770223864043772120340003180280219285757724187334057510435893664967203210819704481834159804844412226367141791060514271655535650901298005742180398359028761939749799578331886149958152158246325397487825944393372963887708587563380745116568254656424377666882699315201193214400331763727984614548322668637332657100445555210831568411827958096316323707041704496171926531014862744610128754024432145411383648620551848416488673073175810936783314599149584737141149450815380001388375308341778452051635154306447433881086841729106632425902726580443206479564591984803967180224158222980352519255495736487505173275269779867016258035353447619328271984387023996719685028110518930581374351180546699797581481815276168199912450673480770252739677896192462165045165724123877393019891792714931282287233392997081954506026833175725164860763741330639719179497242299059498982557823768844308492179375960277185542038888823965901577608575621066982774809470297810146616419946311221824482748009164483973066517288217937231676661878755821975629030857205903588659484041900595344854066568397650456133451796895956591063974238512892301689509666310324470746679380481681824055634491665397452454027053494485480086951504955123093799846846106076033416250778383554248176059728001008849976230841466691797728612907272639602358617314805659239694569318250418521336401861929823719746405488003868225244351539818286391958503696186675085352265866822155227743321942915581220241041714229882210196937413194521702953357667264393184073482100515633026696917913000017569853776182525643699260972493640228915117373893997469988591896301849966699378001084602479405086988472369935423742986085813758992992091656701501447003113916225692169596367927378003794417855623181157523699456267911357726536862917874420172800081586104735730891665862416492590688099570926083764102108031552006586842248548031559076254253047403427903341407217338553850961365901341436436266245892752818311432813083446267400146158694407446943102261956917897467807141532547770915127212668602340761458132460743545877625964998174377407895979315358793262248608577989922880280934023579574837369102703838819761470724829951473128597410943832570079188300751209785219302095607911798578364523389522565038944385560121267812954918944274613429700555159480734481492000872512017915619737421409595589635569894329287681355285909075215975836149006006218079352221031679643257621530472827614799184753385294772708733529168480951158267297784053737427155700349212542951477882754225786541520151161575584437708583471160757175384278603088166255299177877924116238707233037433285166330230384948330722310370322033145707995592969975532379353662449322689929013373200915532306763409226453731209232321783097634547657268952189675210361598192915717859234374991983689366927180176016265744668952580019865276513516876957982402786231778665207486700030941496070299653006633416990038447867744939277144101082917119632920665063244916279030323607445824123490065498543716102497167630787014036188062579744982705143489404094530802545038795653963316498827185754067839555662564281070553931655476140426465901903744458491238047290392466263712828353918177691471507219768612477329232857234672773001015987042624341740683517017608149005727508292160646002781554805241475722356260467072402302441396394990446508080273639424502415616474423124015867112971725082574708117334028727348145289773067078232175354300516035624175969353119985648319538482255443391459390327696914081776887527330309594910013689217607345517741450696025765012091590517089655818732263841843359037294028977695336630168745558091934986076606666641894477521509682443381804241092892855454959459574063278936910082818975420955357099394067096221037481645900640284229499689227947004136947428006184987089343263604207849095727027949962248187113000802759478858988610624672642192939464215376385228067223946235225555603230765772850193493206630161985296534431367696989488212983318427428895772254680451042281199400290828092160963274059575785381802335195113580683527457728564953511850183947652235469361456474179682051809346922209405527986649757175489366353729775595106153317671851003515305172129159366371225396128226047948079903762247833778699203096262150579496518539518393947587095848865947947429253575642639315650158660508702979173691058672314763395603431158198604304931127133280748853798918806823293909714024022307208697437986676583067889911710151309768549808414600440311465264174163316713928664506509634904066755419626120081190068465395940029415058273950379792107745671343982700170517948828226729722497304556713649559466776462569315621591691695825545162493147086466029143706193859536570931254525847891756109306092656609981326228913931232598530509770450983515837039983098657778226951704551139832044730892062826649857432790826499971639517898480323705563816009373931589003840620567340405615123603378911346684871307321249527421329804780199787010233861016261611374123843349641213902295922475232187829475149874836551777146427073132359419385420836737317843145489461843231816746606056732795533923454701478478156007896977317936569150692350372499573690401262259694227463711656163069833879867065270166288072888877524252180463950693288998629896679772906825239198891061426801303655383992304943433481805198713874359825567563278591028195783668747343760574791662280440063135635032791264670913705486095191698375562327542193862752226339245724037676164494584230832171366268077815462692867191700414005645400882942315889370295264123591692294374356599472476833478309085708841098639605083921636441383937501223719911497272394464696934170603313665805323324808772313450342312055839535461364618633640278363222380576429440145483368127527726643534562339032123195373457711077692926102484481430333436128891216816908953295494068667791620060412424919398801811396226177121056409127080375688693042406773580748887746479185213461917450904841456925786032681631850584772431430546189397934812416550109142289742545677582757564683802635311844052069294735117973469905120887615130822342558951929776612782400312792507330098444633722798283639226783872477770317001825569800300253369805286101238319980824728975268937816575365101967717013942555838454293654307844260665666135419062793849802131222534859487235963972186886083990321997783219420018491300742636992341150304598532270608054258900327896924924353736188642318301173701287071760204830928200059060789508591577648724666539973543122496446134310039578912032146762003934146700213688695481761219402860008522524043928039972503537753203391504340780665420617280528735488287179508258302265058042631777296044418850016619213272430147897719702520377861798212588958706168587746356321765091083954858699728812331384484516343299236876366919967444615936014713443956894531282480234931729593714796472665759858779336115462932131094195542388453068571396229051116050439744263202700805851702246935565583273114700744652352720988192368720423304878730521969162656656970721174360464784439298782775043623303466991346687757901348510222499057497174501503728113195764774457557407995801941762095704667260383070115822716339532439833097035060185384493949784669368464062584969655271703363815996162821038615632240524676767036246038179438025566585326577780768058982066080146459001728885764076831161609729255395733274650664304752687156605286480151962701924643116962394632738162997958410672774250789435168621738959446648568288931683537282575072900151326915258430595243383518555177586386590033279159955665769756710359192477623711330300764582169210704103961188178295892314903191353992774231461827692891350089348026952410132104088226560998345252494765905980251979072768713283103053591796781361842015086312921446129036833025595383460781579993109457781835439124225078091280212909182515735952665861353582064455857026752410225451113223330468042966564903651735286071473311842239010160521166382534683783681193377530251314498290790238043952619960033368860456207700489083591338322805666132197461666048915432209673703535892129138824503130504318597617345922009798932607339307411209260285988678029074958079352033579147770393955117064551385962885927027687651611986531696605117556464440341071186740291068869901614406315192749657208856137264724790316642388835028115244949029517092241110448086764118800086163803618631247608213619615101516889694282805789553191116556501016729820488121248141545000964814026412722170686179538282152853616585426245011411487434477244510831827964922319178423235666530183555459584156135474480486581025414909718546115341150616303781569011540962490751890798250930538201587352313310847535823140808091241352314402295398012692057889553696594603423935812517217010328685375659850401642147994527956348422991724464491591705186920899488064132013357803676427311879376195045123754006286416451445180664812778735156295606389536456996322165832989247495136313417255129297209216161348445601031876928651652517684826257247595392678197001151649293845894075093674788856661104492921697197398907078908449651339650971121825168051351817801683461126041171877699015372502991228316700672540920865123252984411603690317167526132413998465431650578636584389071682388755707243581751784597780203913515371291777763516944730075872105747787387246757590842552486009539999075452497924105656895442468731958726047416834337872299614279094510176966778535633949772012957058878142617754627344861941067071113966220034509828650259055941654151194416605431175675924390983697079812840087264491625915318745491427620985773769115832582716104578144628402760975835785416924089922975828194265696081210400145291546643976506005020219873749980937481760349495573967903391314141418316613315128370231747438123007540533709937155660268912132924740017313993770328071730032911579232296214734807644313171732926633730227806849480852550641730785121506218508388227730112242743187141721184393759606827903379197446520365069565339516148773959728008465400251286176744554587149910727199328813778922996985244262717247310663336369394089078177282650336844331422990219702423399486604008732500389379435361588765164205130648153532408649732676131764844250932528704513140477287500318258677735002012902592134609312345125529159459561757475822578041338489434770120706592376099553361540730319969192162616662454094209149776238977560416789334894123088362696387572918577174133216430894768540714409717833850520629616673052549414561551131871111992763207749003479989089718303085184400280998673951734857717264713451897612399522738494256743539949538016210636947665521254680523062141185971468952913092686909678954634194809552090623631469497216108096906485596165087943155279083385140400988917051017099319968298979422620593178015794666360876104500021598334554547820913413249828112954564674072900952641058197072906080124275329424300940593850976585448287406086339825162890470229923685230838967658040415661704011245376890834596273263250856258760572283726513840095328144463509001280204627333412396699646105450858363255291767426936602234702609836066434000652714397362956016448360092041431577857928476962359535609612742254380312074788678933200973883135027185601652787910468400649305562494608439749620309033042122962573991334383729630735347673513589777974142993925868040688285331358680480034224990995918154075729645089580435542413386168168335711506791290129772086222664543958084270005470161292110550651931792621330854634753917511721188445084607292713264986759384280618128929045450122723843542057819441092511811398617241464109632359371882493647055644903151069175538280580783973837049917884481587739443414815877057011786297813951485329638018965621442603830615912451741550909245301455241027946473686174721042729673269215489552309380644124234388391272383834471283930755476572617175257649144621854515831174379828056091528181032369568097025189461707520441903919591643645028455369080611875267079936078214904620636490299584586711427447343584134789430141808042359872711734930276685109546603459011726632974439683694135708271703264896040659913468898105045608667989854630351727568758272607041806076623814661864240157327535297249599812226893112972458280394038679429328398715694840888860820441304985059691401262693392902574586012881828480264820574635961663226129028098311947629319805492531605888858609091628806998810894810144723545987625089726808668566639768857460511038115907637981068884608040810665259807225980568994124011346876079935258508387663084065428343208734090624507175778673131518477229865263986652598125451582408131447175329694315810181012403835016831755838339425967938185868476064199633681409773419171825307022937608836727625721861429460756612813118058350466852164315492849417179975184769963906689837221135878544804997592993111152007400503012527509940189407350665924593498655475052260864572897279923308238687201086126733193011618601821604263492703663003937871181882663705328472648840347056567964842194893366286797707558809786024929552111248896840041278499144601157213058942491217650258707016516841085306741550016254145866475967386250325840353113151620819155040050472520112993579305072385313981038748247694498654548373874027808725200480957678384109121793978023917613622190907238858278848829382401865474084232121852364528420987960360200045601961977061951785518065758228615885010975228014587764034492024694996511619364823438195236994998077388789138750648130897750087393600766727643029510817918099916704084330995543352866745573281010564333320167273404871802087587526634692261192955152986115072812668779632065929242683182626250328343429509064820219237870061490568579301648472544973115193152845171680791436716724807527313817508379782803752354121752512342869718899695164557874012168116730129611498856262379343768494470287838980765983374017651302284361494483742911349869764176550190726113430117267015658918016249596849765646474194981117823526295505774209916761464495127880866400398434832496073301701469325994634950392368125243510278433494184273673224249223569264575409474165214103813461999658685962106946630748144022860794866004101934101838529364192765386713634292590685944866271251524892977141014819137597511106607401345670006391975201872873943057222768833832869753957909240902000968615047858243038620257611682284013346388507104321447119320076558707103647599121769448423634343430340175023184240331656665946793246458474272078298869293875491147143532496461893582351953433384377959900346885078283144002331505194206285422115773055207963623881959874719849419774437957738882721708684099265914852580373384153738781726749883451612425935721978164346831011028191865632833573365267492167971344716906103832780863225795835334812118111756860414879494796267806079651987577728242616606243528925657371648937797821269730761911559783715618819673820289353643945082591689155111040045637827896550619291428358154403365858735308254221969843333917397412941941344752463219923383450816091623241777450893048769087763923467561181753904903547422794958068626287752135479726088200003020374872815038213560717394187617813095618764875728653146953573076764592795030152947337918059828292168330906199452583027553334170052181726056835807100163942312190290046505324912396619684263039423758461172572759918437367057855523188341541694123596769913624223123790655526971944829062702876427193354795109664379661054890558256101623786356103775769142565381524785339118421472268062145466706340350634082986468930208350096510138239168850910734939905489405858511454722365965414637652877976063531010054872687689592793174262224773571837485266684802307641687988360138931045388396260125186480148512118122516009139391351907169404937300641533070010528717465844681091600510468504325265157250815478134608581074462289665069292452064796212360223152996989099229987494551337570176346510528850641089255969396675832358076930196191713234589929722991984708734863816280450362579702815567104166352217886524943787699695582878670670814935678011507615517871817735602193435862219830666223279980090108371998519254723251894748148818544574034330833377509703243751893837305751766579667152128117154167273440572971370595884769198068446499798014102510418983663610051293826622996342565176652081118899929430419628598212213739697907177797239526004027778873201738622632772590522151728720869135452437882885071781308585969447085347615779281664513921804539731836913784411070405720957513050681925703979769663133360041887806949596511900376890519764982064727581909537810564872467732778459142862460526500871522373395082732189709850549162540113790198208885716898550957034129730735224760569167598429718492174178213898867762942006060639589183965373031444727563405930361216749406780610392943061967052450548872622043299261241377128240050855920067927199710064918630328626157017896107749043319345952945571280790615270654714015474207159208633436977265062184132185231367932825837539571577788468646117372717468829967958631877521370525489459927626590296189577436696800604075484254589031046969170069358412423375501715950979180128782702942038361179081095053771053953295865612581659968469172793195019345863539882991533615624450147657126197945577950352462242760945651338977376816482741364374627366174614261496954493021704127977241950663856205601647697417176364786576636268025834289848322816190017443337387434443460159196445948531421489830437024526028012146817549557763817028270198485556250105262768368270102449618096452969745593263131338676404225177138109632774758533828297842388131560750474320801381402230752800513066200893778597509587232017900463423467520530854798065007367041682626496039130253540981241399470370164405370052380832685020827861051292213168272290433002042777270084832137114594345570818621132661828440993807501891248518802416773444806670628239433240435795675534544983815716322168140634846801136403279475024296594440401117784715826992211116055363582664924300395057602960020444664963053548974442925902673045530457417936689050728021592719861279185596529751918600938532581086565389255769623336151111308891826825402708406394570909595064220751950643176392750260196970630583920236132734892252480687562405131456788744760985040938468086472479625776794112121758551471660138369899795259590513548172302421549094256937362984546267909813354950095709285733452295265546697059968507676326521689480801592582934749660368702010582868025559728492477659972903175179619565927290129887986546795461645102949765050157658852254731832295423701578814561947354504825198038492011081620291711830334176093969279123489910653067512747130470293446980067044717503753072779191849211344639318086205274727091086119721367052461130872274713611420911087609519079772549717218629445708851169449355532482314970139355387607699173308267532538151011404218107547701461633478266133257078824895126091171011776788342660780677200086831511212553915848530458682726455799165530056054870496771800433751779637150057899936690071176758275311608516975169950427593145724304733192080918078287734987163732119791448839021747894572426968262054763351288639257215189001158556726044503233403553425146010351027996822086418747262695344170392221629677783808730082075104215706155042976798788633881584664666015807369777235124732708161232645444894985288436724540164713684772118449233350177865606329384766662069697289252112404630410542882810581824796721950965272110273453636540410079491491694964864195219006946265441821654486655520629729110401636364419570403820775470546553810860912299457122360693412666869500661543199777582972278611146836830011309386272438708198092513055431033790523415366541523678285221560359803520685953594673823566065684863169910093388248810267896867011264991688651891937562325919331292207841411765207777408535893024859031600694857088415693335289091527190606293580674197107841777009262148117997823774740880438966675356081753258554712281239210644914439464948894780219692554450120086493730204793029966178122944173660037943993748890092377807246418561117920340752177773616029481270423806296006063791024337373135428676765156886576623685081923416348778748624010528370336872798736910879258000185160560876321204569369664026217958759222533066905727527267367210984159453078367901450685018811375535463464389289039611966629339300292936342521950796944311934715905220936054365350686784323920125013589879564773416307942153441737035586079279662365928066186923042517647403849408563037440019759116083850575193668067735835080186973950159967616220910200162711148704518843951216758783653116260931142231010928121017628274619218757715632158768715918781459305510581510887583361009920905771163742601127042946624784656327604916358586355202501210533786463007679279040046926336046360171894904754761014173131029524668936268551706461991601384970183192397953342754102780631836907319173704749326136930365918024035339376047106577014591963010608027380600319583619456137540411536095330803826901969274973971613775285092399900178495850853147674838810045029675357366003783519490229062975226571027780479097162482313601649957129174884179920098649009604869898916386814740201134373311415096787271934797988063591050527974336279108823934507387792616270839918872951920423126976294576208301730764501990148456702298712211035259485762859667674530551731191087907659661090225401574737654341593022475331653276574466425505874860629058403592999913361846142673435288070865488809741125076635370374609602932137554120716903788936316944748079977062969949862853595454669219369951563583580383212749819354067813319759088357784895492149452375932108947153492853435247102390848611619052559881853595321202560863195546026783533129721326180749569251044267418650949829484176435948433227462406571237623000960140010881226887204652458298427271241181338200475654152090913693276777008098932035406362623846834839224337491121589709552719910537458010356579958054577889958553788805940276642962525014645436246083587803558818700245105506472584723748097135400402767013940784231424234611457760005803239156965120496697522391420033855279537114282808324221691530142057548366455352504134847381426391442472568549939303846221663358156822326133098523213387118548908388889321710564286434066846318464899211848567705335473542802436902524737292099372973431269227298263408558130310788648973104116506641899358247846482612905536672932801968123913557328243783206448544191340235953880147140016629140699536267924368929697978361583526044122169985471993322909544054215870486197287123271243874365767679777158447861339817720509482201101194534392341607456131959392747197233381757581782368554541347633368524087515039652646053097433168910021289056895346278726383108572902588611079750384440606770859244535610577662414428491614397053586633229780925626616475190443445665511552981878432677666400262854178972805468155618640644938710331715106255143424762569904517897580506955272419247447491780848949029462054382983523758191250585054840983351346211724520126069484493720076393141500928267990485078105685155059090397959722781990914575364326910215453269634383563394902886146565243270094945883653191412846751786368836761177694569435874776679951730816384379930157744951680871738664824213170052274727846116597925246402668632051605698482669082063710230072100459922525396108259355863229617684944190000468877538636813136123975843985357133719688880367256414388244882207150757442277589987357374598084618464446932238673123777373268526273825293712012351127370925358615946623948517958019868774037230756800055961942191068222473753427766576148926619554101312505853518669976591742471040749867122647099983715429705389698193582696223491707585136802845582763432022620493188775165126237718260179328662733248356851958273200131992530606984765875312798294052735523973608054328192612400772627119402220800242922424631208766324903620258451202782290480618672984735165358526857083660075947461994792142523229188300315865971374796294967805807878109364407817984153425366621033442215148891044818492125379213862560577613420066523434094660748642537983513931155030091177453515739611759284821610886967200056466585493592869286282829019871190381245773942046829466123329255784649626618288876698821477466847492591901862039845367739723001606476879288370116231150731575686989331446156262008045615722301695161317635581285226768671742916893235424963047290862558991549681264382365637272015114319268121524116021584852223538795891528689148740959990379484664226422785355133642580352715969658343467972372958169834285765871140052762196331120399472744860991779194391833595527029394053233208949490322242846958469962335970698429938925030719642349606246659315740500565487718938383219783100948652076643742946050591272738063682539531866536501589384924567033234169457369018857457495911519520428029358634128644247532029955302297968679727463739405111147552009131120650951925003426366766808521945980767427847133247588820261476414661178357628518990804259666747477758270228649444711446682561644195622019134853809510982048826027855258622483503490068816866344354552793438269110434222856425199440921314122417466375975807910005932272015336621412123240837126758040058884904645867449079134776376126926045803722287605947221972289706015026781940757366033810645264011950722682672767524462208025201809420209023374566419718346822910285416926249060200026586486688101781367355346502941501857372365819213266880139423574801575562549263268422043290874180747737139771152025530986100353251589489030753171362284141331101524929436453400249813884961756303771304696537666629610641511650626594857650290137198455748508208396934978789075205835957591532905082263860534099470862920068764785350713298470569849576038458122369516074452687442302408124237510763262074836374746791569402365605465466737850603621522325812881564058527739780843276007361779184909997760461340748443728145327492332292825443798543526150239782562163470837324618943822422940302987075676452183282891521969291597409101935240834289254289148276988934705191167465209490660971601759468862601429919218272149684129261081488487867021997729727620366220521339078377440343433321203852988097389554955845590703499700283032564825217790095430847268552974657681842680071948466789143671511480590577487388076820010054824620088833738265290113140319491144516425947358153071043426661480487082864275793589937504420717631288271808977515885923600809463957213499343818900656798822656003275218214434638205879483229902385840253441694368777554562887783588615030117727409513412549636871606922390055531701575212184531195806871115154862319609269869900079101289998453870072225587821971607900248776211840717828044962139580007441426513529754986491437455375090665634868534307340213735731203174737378855005800102555903938141958005724697258963146719782645839543157658506670827963443207023081008727071358126994598229251748731704760570639470161494201347666497049856564271540410465408806323269022107865998055906132185902880044457686918392209682532352798623710790052229175545698976550234139766236776751705782954242446657566646897251629887026571015221718502448647824542559489488198987130187871687198097881489047298737579154238875211611867575887965830163677118503998254970355093724303093656457925053074966331747331748195636997279872806369263498386428138477779088100700355997094420879967927197631079270602145009043892143714020973128224180614810269883248634336043615501574405492634382702820066466103046978853878103435682270210414712858373075641100257709233644380562455003981885730017127495508018655385058748912581036307820645690265689370694626960963994283478116164642794450985871813572701835390958756936492194246190917470259001877146277095084422038775284536046824110212603627509903555555297563902776298492910337112719545444913419815375263075371633585864343734021166306761654539654350288912071249120188432920158512143462218030269021304320085127317627149223263089095799674312566257940805938368286133718558379177426784478769873783893692408577449632316884744489300690408280688592707447510090760090174502693183909012651499857469953557457996921840758861053678050839718559290160996450291965955992693180699512333059450118972019135996510724726079714766810721991801572917464753282868956154541135141048996445845311551975055405184193433916582408849874453459257301740667542527101305858873678852431770707195863733527718282678479998420991584243761378112532010483237480774751882999697102355283226289331238523872555631862830927351269786582819756328603000952474014793232098185937554956944117548110885127365770564204975719588717608525945985504998954375377785062304609471366876299870152529173912932350247261539703373758226087908028711034360231728559413658087346563365846216906137250406059930825324993061776321203346211500573654573849726210242946082536585025079808639925871089667378849337779778331844704174547431629086031923981324853677241739340578917139839241478354886030787959473119252604546950903880871544354180577465088442841314267463705206792814051181652801235037055945641395162023005489266426232829439004609890600138609852925012865370145879557451801885301927935161684804064533368922617656576666372525807138927207383014054144724480302831879965967353011714945377351064682554986003287309524954959684731001135536277858466661941236369557321919200020053781954107414584124238805316642686063551749981720435619892308579201429926802009481868702435428209892729615306496680444358311490908173986810379552905859589441172580383313174866047177172114567578546734036222126894435120194189336453382791715103793546628534098552231298797306766232600572522553598967637193558507675098301420208002504662015964776284515850598253102142569823062088744028936468167874760311514954253267747819298826253475059279952739650629887781053712462975600383197333185475194579120078679624177839040757823592178845037683788344064522080616038496229920459455483966520590026531098847833396625500685932378969364623334495318799571441563907510924163657310355384033959871792835135168313836616255895930199744452187715067455165601089823400056809254791707839665709595467969068705704655845968736327502213131018853590497189355862234633917091541978341097757918956835016481170511781345924844222350989457860379113209211855848034810836327744683724558449348195723092598275734561929084677951956112078898663877365068848718559698728144397666697118443394885139682432432410303511849724248824289404174001784789285800417156066199789296671875591622916233710782267591642230014943169749332048955271914312928882703464990906569670970822870952076335646213822839415013189768582179949755874197383119468160699916982431305963759697202817973072903272742203949675544715094435677384481446147353527361443788142216486019602880224453740277247473146740064221924104735884702861157160439319542230595362929793004451373049278440980321633495165587314904704780492915206670080561610702552148572509354742004913456716129669697729074592576721880192823477652390069720781178285733088975385594393325682570476347337834276572428627688888949167671783070893074654191085273607430905398665213549220119801977142670088333754156159459643361104784112863117348726213454147634608214853619221435126239349969322532663596482453271696263260034880155462582570334303547876500642178262983466951729921692933513736856871684414168640283921815266166391706793335608840898537936297548235544670110210748467244565929011987889138033312263456313664826156355072390979829483512384388356836532885514260732745734564914116707247161756506180884486456859658235263508963615654219919204199703483495175527490715127091597035896091756006856514830891443565958678322211751968594976569864350462096525156777877144645662913703249129542803967329915065941896463692153488071476840477504569240505902521331201229137090279239115909134342060887587798509509229338430544442078918169571242447955750200190964237073500441765047957261234880276923015733178342803632560638014656619397838475498700151350459512562044300170439851103705662174775157156659855178827878681009585204859527849897401124197982509274492294948421064072647784398935702032425673733704821380843661127235462007640263856668959219272659798281921122203312562519986798207245411285558862475878028936806376544659830097311687783168187500850737377930951492060929335273139979875060340056693780743698594976783871903510159674409571354485045949055068822167970945806282959470423939708983608788819607814251699451377492660021423181770537400997698365579396284152914490611500711182513574408640087552051993128320920707843411802119964612108124738340473664894827844601627077923087433425292720692906842441326985903631989008332568541997002407227760416204018539783082126962964306871551448569862921974989846622695871230876209733293696407915972610343744550813769374186447793070665914843221741942446651986095310074071477327132606288143317337419906477498331586841822727939331038879386135440746524371710428685487457100693199698975131760241237460786867982103915853631088076210331486669598266854628075432106459190776344909038563114282801574437664457199154736167431838271991360578431220412060099330602449903376593937647849730772434157888500928487937702683654592710616694551880608571931313176822893584874885941395626093839805902146281070838864190017413319424288723556915226595125297773605082480299312560920831369363716117686440290441727926163894650939079434936221235897473246639642772085243547314596612571780711398028838027826526570370291784429624961576886367628303302335073262339642576761615801023607357580188210942872469901129878578550626140899334543882249900066494979339644052966890876665303943764691932899759194347912069065051298815482969317648555175640920731767949857809966846181372006443451895728672711923524096053732003918091711562940997370816108185065130739924640165641473354995568638378138758667182412425967731162972789552302899024075824674408422417023757058550895543203921627648955798556746506553235871304997857470527613355678448073512231316160598362878399604234191121258042026277460839438985881299342406868007103991488236193410224655584444159155048213829330615651305113669281058088135422507794092194742156993549049177357918134872631824972306086671534016465082144222223792570904955031281552652097513846321964417537974254058713563105373725172509924049740285155582800188168521345004272303014853464381168663095798379377206290951166675778611507084357202111714669786167424745994397754396819274726628490308439539595497196684616895128467660710204187648750856505440757989053434779546043955769246209398577551213086377495712072288219729483666790018946336481736862919475969214050108570773873158318229152288591901039759871509914745934502247956262189803670809654954885597738330934340491073811034248369349146411839218601078193703918883444769661863529512683034755979525725742144433078797908407010544013759569122948041890724793288513925229582609886487478944155059036557239393154430573690822886929626516959855424019063410115472666238664392419192136456495752936280517593645053314985513538808397634657864447463612840206923790493015998147930621618879248178124568545356816844985003098817034314852972354264902745981269420256117986814529447790654462405018396585278465543560076477661192485424193664864456499319125932791410373701094734569318742791273351654412457572129225111403112023275433481886705306101031790351031988292143524221452784853954658827573386123491111949647547768629076826318445383927006818612327563200754234735906675614038389334373261102296747509031677064285274615173191920789020582479143967164042621440741437734457915739884997187733703150683171301381322759238156475544240033762555534028695102639947181669396340101688477723179413360706789638141369263552769083456140853938030342555297986553126514785646539017667502701825583637797646347106303476373598343318943389833987564768992541299639358564218369635535773751319948707434696974002056268407417879463508321889418204256842658915892277385411652381074880705262625084811355774402996328150226843919750412040610909259225450376783385252106870237957600162118492211983171040194692067221784866470388211702858798913742503581988089220967095958917473845527854034378952179356629778494791743169115468805033587599642806855816191427496197973928534172853079579150459399910626266661234330043543456416258977729266764802336087586480896926826116465719658198646545171449193954805995931710739552319381581819099237255211713889064413918680802971918956813403827048814167006769086613134129483978456846297759245267471523871702768720390460423318505352389692865638167204758702517695134413311169034699893565926028199617287713954350109539626851887390975538116921845208533733495875828464954747324510497315154837759553312301927147881392766078862210312598065077891005711127684802681964224127547493261637537589704853560985969769895112019688210331098256659154272016119690892254534325947910067177703059312265242138870348984248472836297211781985126568219891510944286875721517272231828839082915594326289582211227449131122555454819666601737707492144592900761670812130385336917862421440531632902420992714266962506159632694117655910921917338653130095247197111404259151845546110769766374953052185860010100496289873042796041929266919895026088596476553127375565470686692186364185532579564072143169957570387698800043106978866656293644597148233124793329037219054539568940882882270583405896640562671837501397012748418842172383560742783015669056551320622399469601065903565557596195222972780540266924315495798601814067610783377034428210746795695900145317083146392336950044562929205031313033372283695657153454914043512343627556771474866759187284506132625081554548304104161038619443749416950929119111714368951619230324870825968323291393869606524722062762557259222857356118743278351802527426591594282717409690541543919888371550190548256586096462949165284176804429990796286870881665745219019269826466813773352825786823752429761780962597781717176788473490254011042813293324089843079080288944462154152605675407712213014614876754773182516707966172388015769872246254207134268683306039218074414053610603834013021284782456856545220048502286213181499520634352635777385438375863975862947069095342077329867705239699221039120674487911957581620434809872128183644118910221346584911061630263491253092165554958132533160654313477211169725663217345928922000861312474623549844625965534533864186884803479679538412820630134703141320146248062638514439466774597973793044013607133727244906201191033867961105236493010274698506268817503967468998333068643030539324547779296886573072859491466883171053493101225337518384580718158806011761976099200938053243648954369806034493092494495415275569533467709880883707051733888134929649545167463743508550430269821620287090839920853919156402121700459680293256109644006030994977499859795274080615493133058879090668497450997077023949904779931160018174646386188091593086815095780545536355799791919917420010336213902834198833325798265384528807639795213743782583720979740922594043057087340000621556390390515922123247331286111327646626712158062944368830519162566318309676855115579289924339029075341382819910291553668799046370074122687932178378396640916571677195374719074235752200184402459063730254669929031341956555446544286530507030906248748556519833925636728160279404329391777388826289268041941874941818337211406735398689020095209599156103935162935711115899913367475504214612835672194953810419925449278349498601809025161299295899002662824394268776575342913581456884689162354565471104948958156693958228312096615530392299606359816171695105029491960290930693372855005565675224880506715159345131030458238306967690741799843866567839968842753637662822842213339482604566995942860705567423754314941908489318542476672426838819651747652853160351920783101134697567569638942982003129195534209845682328287700975121367229118732953868951612082879178841866551585728834203677480840683679416064629888551740361387268641131633689434592028898598235033708075665733722266064556562759331275117506453496349766709380169325169461630456606378156940100618309546663969608045756549483627616528966091061157966341834858904911814739834419387146105031650063114650122822015407778629162779684627103283319217897927342584334938222599295182771094925170941710160726088042446536808395589043255434168324513160675942288036600802937378015202053821081260433635510612481093884689178518538725849176381845391793864876980983071511549674368289267182752049898836359878893067430594526667017180025132767217147645964400491520531321988538283212684403562292773078933441111107479675803723898215707245601293217890907897315532929802011111094299328800782437731245586424086495859207302633051360368165982268828129501107702500149375037487528403055272306499428130085589984100070818646051565527005404667306272617775762966845288540856932859649932592775344052150741945340826277079275319434269708831538242247555989800275843406738032905187946143341798237826561046237647960822133208742301138259735284972351592924281320588279163027203429657375658020674247647513814439258803301446646790502946682127122405961779106103627217592758834835066536322614714502624613534413640233071407306450638287557074708980187319037723486578181490996215415861035872778577672806240291473057053691836609097458288446719126791967304005179442713429838936506261164153268219460793963259729715495295532751928693038073039430717310426368749932674780416829800924492329124715581055449459292173435499801004251055591966500062047396358277357349298637079325453810750773842864444763325438752283793145185885756451923172875878733601982733834044027792029471894474440000454918290450217005588463137716643142392398101557703825107532389366516169010942818165089970550355929343192390156675183378178831250514121798793133282448035187664926209434534549198967708920798268839472900651223026555923184660032246009758063267438618986813235005338555547268512836041690641765594692509359348239165046622878426682453204719354051364790383717729425210130149685310480344877744750235260962744395939140605035470166525807508001311821685690368154399205711838214249040583481541150355538311368577160467970836411234734777727304717398737280955172121824145490481879627459790369700837277669307026499554403777287431838970135940487470364318122550212652059530922660621029918549949351164850566334547184206145450344052832968014260720584108694690966449784539634241609971899955593765196278533052125718574877709759290015679936200690457188919004111647891420073600528483955124536034907031508196662892708762010414273362008419146609563037569270487392694330191999232114256403822840579172821726926523079667090418167037987011782553562863221240791800976204440154259376304302865418342522780901977691946480315653231892092866417403524358416140572350716640093710999898831057931169850907926487906868861925791999567337548471256527938568840112837473692129216375408859998000297213261291547608001779262644777011341738123428455291658005288414007723989615671813067951456248129185044612721178975214959098401197780797694818389537848965037583703702650787206504344254552277852237610855620797311650641146975366264064063092131563075479613484976786404793265675155122543210785875709732577448496880093260350092031109344104744201458363244768725570066783441710006094697295566275748019652654069581242582853664557677937137290949896548938858392176273517957489141647907216327728822492050892691330727594311331233893413870953457154468765226967642133823040838104433247534419628058711429196433448732354624525623694681318358662715173663526226287935480310569638459992251484159450273240788018832433254329612735926997708325583006063719197254073121622318020615134915460837136392375539116430272312363827347911477796604337392254468382804796580630935136902988561773801686066500183929579615357312342466978696420291731812615889587482829430228552792981234260304826033018941102419299515298008403435639856279591810859965631291727880482671389847736668987347327232606742775159145881706445651466394142351835997564692125994866862150234260252861836253821881348830652456424835982737463873793138153283908684125358292427237030697574715250696023718280587609050847313940982289926509890739970145567932633012680101777979347307750319288628601303591661559397788933572782901271191923409937848411543412136305269717085509608349212728578066529876456261043452764822827252135557364819941563267022244220616029723765274358686801629633666842454474273882549397189816931269702363681636092801408262058106798228545575400881894302607767480534961821795057505552341523854602800905694472696977054827870758576755858018382121648720100433387217310408122852374324778418643377384300283695776466931901868017033370490759938008177469513066887065037788640072967180752018220094119476646303666998657089814516725799955621668207500169944262028728510717404473238809197898062981851951675329225276914027605942083994876437369509209721507654729970633633177562547077173401953954775500626819928972255916935651169671467662563825024300637996676567191233862091549821993851489363393435418018442245286568479547603500529382197966149628855232894990887889381033644896326506600032301589484649441955785225528866178079038717765527037171923637979431835996990327350451863027366776575481966765922218502837054052713878794461764306537012139612218901205472898999043878187994327275505474221432250169778185026429031017897689586967575842646296049734388598005038693167379035120117318971702311292113089720283222003498871070234081234926220382450227611508970506495084667910546369053036473506120455360371420233213270992480515666076860254252855582832564712319892511382975925351001251310846587567967202912530342138127423505812558510650256601691876196199255486615544035915662611100684785107104246511664515353407769354674219019879761701383566211549877254718876488931761667783551869625199352309929341204390748160459112911572227254102040741247009799953214453970269461706920605781095239928330614451338229020182718087652890057265581697489465029421391179053096417341008303784871644542887408530104197441866754538120101886653624137244628842270027442626021554731150976800141749654281566199662756855665844771253577990069566215068103614653498508192896713092459070811012673124438377834946528009180819836012285628725825600323461930917270660693099536508977702373269494388995638381878134212148897817750040874459272022378122167600828282133766150694575466519204104510807989939526990970391438863488270703140823153659567785575862848329893058088695312398153438018165489008694680698523445227877263056107886054844223351104007409076592793482847731162115532062147991446635691070946962254573652679630717274810827686626025121527016923331441683757864380790935307052488252514309605130878601676193184287923085348170527860487822618552273622994119111565044325600854988005537415255261127080651007731193638171417784028751441491246723923355261275735398226487536931978844487247851883395324501276325655903747929915405754386579919890099552360199185024013759438209085304961877154195674553488141574277717278404694985228028134367772995269702861202794278894553222299572856218035001360843863348769087769468268712246924873462719534375736479421537487147562349369417216858922858402258815448873705671403269824608895650167367998140333431539790903465862345522860364709178758858656332681060920382295771346803367775609095723557919465792444719913719990609393889998509167968002946992940581890599834428701457670992532170420326891341166290431420837854369876306955813282746030023635283051673014198664788349321132085647877377162098355572988043538080771134407370700286126614048933618613503058450530294786515652471089538565189343170964082242383364505349534510118561523734649330880930948525352364238446243090901648385137017352812044658524202511536453556076518266975079569111035741877692286839822090014555609032398313663218403975919154860677092485398245566032633518843354620696096079525885949419294541577575294759698061358229815491909632418614262780556432893671241429011199507564333204106901915826341002556621973598212323193385209477499880829546033932601869295376834078758397755167492712274203626721406351539813365987653485665113866183488511463850773335492629387419219433428910073450469561137546658403876393189547364597936545709829560739953247958284346152287190379314713712113115421836071053125216758810501093365730701456423936246883161915309864939259688356576105126085467123817271620571460757294581432560777750559987412096885768926099642215410389596748019526090409362094356672129687885716835857489115097414369387392520159264709388789231410641925662511137067974818814912310251395781640496755634591699098747995774446396728903700563885875260332936737160616086226812965398082645248716932794372497874556110619044699035147198897683004224903387423551465241561369284189792426724509422431107105598199499159222190453793953357368166657820957964393124875732861559862019695057457884184521731502799107442636478538137314502400326932871732698728866807712181469156797945671813841875629466813316591470182678100438090546989905528073642113815242872385844030859554300306161681378074485067693418726140949769510012458180416107078161706733020320707117281374527184036121122634653518832521118859426955676519794304356619431617813357054293816930663900792023396838437965609423323547031039746682944247372173797198191712585277524986954569426136028160214213973593265677391015994348578037019775435377282712766218609166233893337603444876298860920890715762546203329573464417284749480385005827575562601621342284947709612481711002782207311796478765963658231671900143351550216448500693379364911460746826498847636017533487039929594642990552550307734723385194368506945177696576021042004372150543929071582860822930897840101280560800471025740524832243090518468031152797068563065711069076398705437012839236541107988058943824836868110147298031400422427846827166602979570138051814904126102282247481042025484083998729894823226593056852818234343482717439503072908452158429050749539614507503941909952912952052334963351851469085967747741142998359816903169225550459877889629376546266141326446976751467594826950916815319863670254201381935491537547972849671855466160584825430859425131922798112453431405022736361712619816090234547956733183273979264712037977667176635911931985193224276312955709437078502613735839284178337976891539960775518682815596594234866623110508218792836985125518851948358257661761902803005778265087735546381255346167413555921066816116860849449083447984117565424591622885616514994236344236013013957387968848286296140348578194132496676538805377797735775554284169994816174548388745835938879658474055063168103704363674589283848715546562109940373620466743015543767310035421420001799460989697388016328618284266350085534858028774962400274053487978711223827937536091749626742358648181489386001236474272315184001597458516667681591227859132683849819284628609708436008267669279339623461735647951627710170471960933556832735045997310674378471417548689829215250213633711765072654941957096829899532047048362616504906120515412732972320201790116462882533677091694587498111674080073144974653249299345066615007029185647730508082931345824723408738788422088400638943176843492568012664991477879072518208455178142805361088163847793529641832186987011071940420483187097708311427380962560563964639627353136247766261317378544476675138371252011594319893515608383425286773201025613106950741344988241663518626010811041283191995743232323020680168063178728244215566465828405067652859213449784559302646079295410490718694976172672445218317608020068149526327793365633118218086833677565531664297982947833944200525256828155540669422104592924487560808366561393127971090177165622314086868566151490839727395298752377081856490249933091643037435243391740339678374670169324829160081014515180892945173771766871267873403261628791301733619221915718277308653215655945370835164490922724969874935517079026524249215602898452820525181465059582379923506283320749817254251927055090473262333365354356447459137925692887326723950681440503825906903559656738831687378775605186331624503337610232553554993332272841849583450368501174914150412282601270288146557771957435923164389054211945231464105773528954547223021579486385001058171856556415834384651505635561658190064884718557628025695248378557932403432770081227229853413577276463533252870841834321060307793613302776774890603643440844087908864141662451322607379905566498563446390223474807518639295649794696281816393556782650405463578555147530797511647457143942623338612980929676940079614734006807472980094507863985517705178161728863509278673794413441896851470158264812101764075353108617529920714898488800683984831662934003579570829344795353792886788324085785171157703077460782737463359934215674560521627407625838704876885950906668509471045388671241501938467395483069373248613938566663667602803297886260520753574448277726682630718275461741209416983287589141221794467881810356229844892898749424172697139093672876802112959865542167053325274072595471710509997908842781194990184265455799738212066994269805145548921096410362216077703025262967518187986483970828529060305162498061315783340156156319621574216269701677098490171871606060467278822072118123521122814560095303636480364262146896395351842692723787972596210935830078819169775131142534649719157435499147441126568578664919712131859604296177910063557598904595148366668919653281616444511586392685636636899222286787355242982670034411206808876809877360484931104885618978657367942335315257332093031868986609950398803629903068576758225937818418423912664659390734531959762502645788225559607308543260075909538561695578628528516687936260645413017762741393919715369402417566435120780724262816625723148398281821416062469900436783932499781631447582259393199934903742717025026251467443759295470516228712067476693381818254195456870143115304946517451038406050803341503794464294550364673593875135583774207378489154846082059068151762019230349526891563353673778686426717185934161953687593291792606878728396601961075998633058814147683117196747732831733288564992800684694861494492940871549846237796591257662985546409790943202816340218054162769746749621203472622521387899586033408152414531950262762386323718600475509589867884976581264891469199885808713021029609685874852566884525304055547917166099805496614049218629680671343859004442911993592034520952184743749654425729307759091025083878500297138522905816057589765257845485557440319267071980878142240703801347947330971166935127156248940340214666493649357670703073755772945479065610320554825611494044873150470104578044681898915288851505360193579610915481459214309519072924821132127244607535398631357904822886780115768058957669039426476368781274994709617565834629430384455397296664435313261223262519116738240070080346029085428959744546775564264717730641143962514319117730706069560296617920975555987612159877472704898187605014639279220263004419649818219792072997608491747176977770875587735881255781253403572500853983331707113243211220801397763148115345362843277061927461571439793394895986777697585902336494684386885417162700159705739444591711971461858286034332739081159150020477382684653510716221250305383277799152037730687888780120246568816370906825425147763906921256207177253189087700393958995123807169846556321547321622874878932532732246099230073404680317856774850383392858523407226393987267068638633455638581269101955362675581231406426991043237362043661932199540970594139074001783635706055334612750896826966851675557534061950120822836152523781227921813100278578091984707696264774141062158490601345592649663136599232377415965615117581878942980515477615664737632304261262064211591376143981906750080995080459787664858055617736622835228440702688215253347492028674393840875770046084130613318244117191379523189493797893096195452694727480261202692413924391039734376260541202160341544432213152438939752507557865143443614705302632515784463663940671790402090677959982673565348494152977622832050767308429315387097323938250748054981812230092707859807911869791376712791206874469835627065482085335011920213547688848623718654532864044946051422659916095853153839210460321580947752737633538814708657562932422348318164639054868665240017379494361959234440901941643522069327423544749335814799008367885368818252371278571182380804714183080708285567122403184010410975191394434917120283021155123845943349086389949388854447697243255862429935765794843172519024782771139507075331122595099398319375164669366787520711405774009161852876934916433982710994455142243166494203581982519126117406588787719431877834005982629574825606251346422467111140457975068208922080921571059341253530762438428833934649482019127423759079150171972455782733677343229735292923840934363490551765628671468270606309232573164809547185583876564271557512022297722510062941311301998132208106468758789066961414655614543021720252491903029473204194851824136759763363486047677813498633856771720380231348522936848242234790581110385558136622375840868696245456361856399438115514624079326329850596241624345470402698276476588374796809380696272897363345900194485282145402365765953987278830690361099533073932952208901629943679678975527546730324704708361197899881264014230071136144322049930655777806984779763609416855045561244782436494237816703701521812356883012414494403034221239721919820743311140709224720705939588946926411972709315727842863027868075635584167239602920112408247108373916784447340534579224492328020480799478997806071818722733075117125793100731799753864250082687776707196768204426002188184206250507709656192017406060713493768447460170879393526021629945631281840222441763143549610116162515822868531129694706733149294799973684166107631919473413134979972816930081501013541633413681746995549421264877175226135005095505627049939250883048919944749369492461985420512669624725621975745931230331637810537735553928209981174433655865022619087676771216951616902919576515725088201346168502905692889119627173298718800690817003601707323780418322501205943309785163774302769165975557383278486177706828780446272069595498923625178428803984037732764855014573092094227076015367327757657097789280812437012770762803095687823909921281122166749271912064794680365349633918589106209564107615045367877918922713373027532017221956557126034059134987023816223244994202755690787102191600534947683458417156050504150631921626199457895186025380867054823638881131098454387805772737038159397006970061914233117343272642953876014169689089540274536396179846806551398390314807816567359932673064528913087634443188481441879258274396842986488152645565595979726252038237988855464543808135714898314661420019134800841668759584276134188761394307245438520935852779357105397634901837944802910828628680735822035589723766789469472153213337451651376477881273904315896204760173062959471035284851477781866645116772685728336665507834758241891851062963561779484788378133510429478045783861263848423434817046578734524979265769974812470944940495616875605405288413288517647247969401963835913452359832998687287827615145794810276919913638600805167146472519958784232554599705524698772685868953520483699384429058683708222230814726888927713275442415868006622191450455951320042654999737897356098466260141099997291243392044649853732144890049911709273709654530303865432295658955039915799429989944932551802692045027083237398417271461638567579412124958958339512096476574991913280278465912488169814549868189571291866996280245389991167216286668988343470651020168164360985219901288015960070562496766254300708013549721036649791143297926147567947174108267694822336424850690312783473027844972552837701775828932729820372308939619539022559551419593579588505545253002918180748645027019383361327652035888179422974439815792637427874784424718768067903800314350262616337986610397488123114940546210248379093037915976542811729475202265859883122700852381223932074144102232701525631814809566034320987419199910177486221825222054576029171911230413874878021823187971755665604879824763450423291231214950055172398032119424253155524778916501736831196491476786986631220247541751631734414817351365416626670589200428527261814550157404673697207415049625043342152258261432084196683528800693432539540173598686163859758090679176184601232081436032532035843675572285741089478377807934056193011657949014922044987574860358210567151362655899321074634722488526019182759649181720465672917796106353371629411803463274830657087121462468577505124848177092060673207317857574538330191354876672532863747229087482020078776534536602296182129139697021149574373596173594335695707120171079210904878923470179141379554922298458965845916437446822711177663143155634843366265290477588451550786913285299211429082007153700415475290176735870246236008278618780716996325700619660396691230746502423727772482718197371444278758954518739844398997269104237923811955188841277692843870008171273490817478251423943467083247535591650076554091590208055418980069365577166679667069383376766655234877385846438775493044633204087297867667854992601844879286777948454096045870046493876805038839760375396828553057571583699281452792932315113168174728427413874271612357026344952009308259905998678838119253733863076372364244328732139023655343808848989086111251703732357384647579444933809475689225806126369943810723430431540060654879540909156265406900893762024564974611577338685200993894682035938641104570547445163872890989775326168079693085621541634666032131122880168248478383423451786641750751711647620852231650908242305028803822766107601301853556983647951212334334962912993468179893575152463916754304076482935815647057594189598638052027772899126207820666287779883448985981285967911419481558026860015127993260310539807106563591283014899911885566615857976665919166877017053414554625336368408798762770072575619202061395168633281092223209138341306360250148882752151841539595228600693185168415640637822589125639024132616536809575544297424828242181041247464737653862091796721530960641609524605528576069563428147744277884975006953990176902765141888321882600937218901062235560002658424063792847246588646045074020601467999056239063639633932050345869788667486199411437268164675268917719760880018360690103535144378980291055950065190593791154431374611347793841753324040597114437257516495790894313455982485889750357404576390600598789660269176010620373360931906425239544241640474320776036298438444277117727688348636733162993476820039130476944009740440124750343233300203463702985201160792862848160894786299626319082594931267750012545691064058385053499276804098468054390217135752640426494330717173328677029037111638936727263680924279584698522186018907377168878484062726525578061767927451020147012996179632552723950245507305831038362697060521110305262136999550925052735999838239038969984400926897482363440786363098276201437398561833615101670017898408854320384372709256764039914544791809899061887759990874729508585816033042080735219804333218555817403750837389205854377564056080524794185156059587718347617662651685845987855871691870412208304993536003542124738446655175488797783327986997003773578002503811057618044579177119157952126089308981357119228186832912566654847467173353591891963862919597446969304206345223520756850995804284787168825926242670049318277998607104239051512814377868801059156624506541833973241749373647630105833419198772187323439086724752586297674343334084721791102240610483098954454718395271288649795040613474746713115496295107278446534423963551379968544200307045352732354695953914377060347876903048964042004458964823190693900160440590702790234110162886009993461033561818699863946537693294760624694946647866949278634334559605834873317420153416230341902289600669341157478101040047823535483695636649825926733875812631526246350069119841505045700397386077594349270854491667959267861833986969882471662330549883134003936857236153234542494830060351065970790263172544150736413790173238928380822191658510333702258284779304232828162124332586544020103434825969275266559734371799555227423274036284844230386057663135179971009852074528143060626496399496621573807162279554225585437939847916863832926534045053871657755646855657756200356244715158589260748184472473704088201674255458997289611229690984404363735083440523756746481582199233769845046864718722628591709435246056685425287896564995718250492143967140954027164820043705332386105460731688973447336406701277881014121277935371918773276017274571315654438313324006632083623816808794387890226188061444084132424159902388891582228724807199480003019880823833433388303199573259576661051097231807376723093783379856480838712050009518958633707104751434797807592152061726221902500715806983272742939772183108102322154629896747677499564839936844817416603813429114364363897141928760319040389843942541592675315465708938272294920337781971355137062500923568974946201185743614007879929570016241855100592952213555422961555667981631228070608390096555118159267201399386348641635252764986778411292691412891161433975038130243019758191050203052726646359330979568749918543046790938001249041422509310680535953034821573842161899351513796129119806852318811509830739454660961591989143442098544456373562878435824892225233199571951919089154582785569440230982650712869277515733451532440708746413400560807907889809852435601780952926020482311795423033030386896960121341503769902359602698951625648088864195647541195077149422939507438177236578399631902142789799030492618108610343022587725926863562333072368156739352685115370778840172529761234789410504130843784607054601132860408156274282990029572191714539601279081881901280301668532115402884733731609362460923763940339779276972393541157683061229243837349579216536018630288253942600933952204202028146869647435238055285445430271664874863001709143678434942421088273004969644422855178893060669741103703467299069690552069047156114827803153205661764168034107547665942705751730794312910158837288960170505111375460052180612231127049835764123212788023259872146068057272261174629523251938434151676316781620937587441994100292339480833103292195037584333394653622596788292521600509182314308457635112436652497933814895069760792442041680554073879304183308147820768014465484732017365259611622676502906181994019498921365726056293242476736569924815031761858427607239999247200033510610432814588505712479669434620401363486006592848126593036879731685479807029447054126220038336258882513654265376065884442240106845890612563901302541926513447919197957325394629578017629811047382029241384786586717342476840150096443114080475923497613961129123915658384703843670143467350605576690130863350395925175481386450969359675932635546660203742413760697680493671358110907889873564329092620104866319351268986392784520819737137109647476691257502077116778662682728797918824731544965575923358795869922717460850031232334873726894546556975098915786260934455746058040653661214393588435143350216828756010261874247084045219418499332331705926342047753612784865724721100990247761842718125265691738758374105339220548775465461089276428370964232862194717511549545297634814399166121774066418483792915996213177184156780285240710290568808460652213060490591207259245223528769891047883779803352406224748937657357548748632024077619188321224319468022472697878151083542153603663955528480837685670432887951099484078543275770704844371332428818448147111694694856390048302153408617980617514397684989799005349382054928223667587601003005700802211349210804213190977806484081867503284982911292101121647419360056969266919299594001353415333645530061897551622650113499736659148396182148016106575345817016217420903349595124623075868901042160182849264083132625208158004770425895394898745684258711568830309587435837538238207807453151382719423901912213854744874578210349443554464473882189705772005108938788429607607859721156083781774111201267265438043864938807050090358506576324738526461973542106887895133570122014963493857688642379892925938028264297117367034747672414509026334688366022495090748105455135580331039381767457784848578670368575031533892793068574105027909579618878337760171201664392629081738135481925900152702895646007307182208418905132355119941168053640870487710151399653803646406772798945810116091883060156982012717134995750604679516421047074857767901181975542267528706672079732215325862125517741434890897382309402277568779943982574385096370809623789500429374551658545331175828215056734273077702149907072084757728823661175873247407081153321815541534887529495602250707154709244343127541840061175718153510506327888721640204950595118702467624393908511912640329288624089124163662996284164814518964181679790138684562958843161125969336525145903272696801576837618772568531281608377844189230441149973846126564918781337912103721091870938280323610534525386763042679449533057542990834086309725586591571470573616236804462385083911388873367861208964390458108968778384231101188419739892264920137568008721546393526297289571908930113749096451139448123081501251396936569203312822657763132191137454940238650786510375048122034488817755786779904838761088905404561131608351904896461552769945162348742416780968731375021684513689072237668146345776553016529100704131643654009233769215376510810117642106706178800767075376093952860924915518105281768518596627554520073519167658308475885258765970904593589535873567016545574353589608353575989390800824594526034998326399722455016596851923384183225746880999957172934531935968118524611317629714390737585441668018310680730226280326328192284907208811435574222844915599902607936035524080143336121458830850506038092398192258428443115336228026184281499078717679614934965795349822797182077113380053746457584637472362706907765521912092728392734609726469396037565741834361752136280671313735625680391711496557820642078626169219588824308196258492943562037682364473689711199526645849718095005053480699563458858016118250143481482119779691809554675909823665206683847488332248334071671537711431435830031673851239093136189544691022589640758264015932510811804859399157190976692179319075357701233549225075182545098055379063663395009407111887036784219369772477479157111557176544668219142758969031283142124086584533419393765196064873250462056135825022788646945287070985422801223156405079462236581540900540688523626078162694068615501471192006572717640285875690604507404781407492900919432958034033408052337054928724775211904146992150021886273998354365864200258298844474973074276651037931235413541863923548363194661002146197272660501888540374476602078055966223950809304424459666481482902454748803626118096832613051622891043622826750751820535106543923013081088912003480182126560584621132834754979772261153671197634630594592537435219150562345079572740101279740815937140076614816351295919060881656154378604105270426175591600387200135789404989322804746567489210727578180944978429199997317846551518774745911417123264545687515622247754181643942990256448748777254499423572656474006387533352076145392009607777700318954234529890585566405537412653824826513571383235495917530541028374872646298822251654775342862194688286788851354484821001536187715349054556995317843902769290998846351956479218641172592266416621855853992465117640762278332060853895520722887457665032299027788348688499028711980110263433360045041318369964498231324859513390702193543266564637920082279497513327243309545540038120294564351584351809434822906560850037892915133657169357035863650205524558951049092794426422250341210677265644492366521233039972705383261466249026778966949468312365858715163550240843890703994635840543145511450077445268283196041903256473655534341719033378995741034901666500785722587376562857749791277250053582807038042680162226370081269122812866335080399805377103357413386830080666086984663326680748200445751006393847534763396516764521342036544977181976325184946309865553649585142923569605965892716940043302209854659350003207949175054990743039956106170997990932369858833928383911586438467606347514454532695106137989105583733939423167589503506649212657466876348733593152156739988608880874058047376972934610267924406184424425043636493094746184815228091691437727272210147764711542991113146718124709460227967491093792170293632431560681265374602300827012888587727378454557691323064814897687213257438215231393059106096557927275353785723116669306775483166930293847514088220812425278594565923252331989910942413509581304129811584268641317910845550670775171418096803158830307869019108696707918500141536188242972896216042151021976393601319355524469444029574588375801337096027719938807051304947062492064852182752064344095351267551628957265647639316618844845738918053475220866881389008822110474014253619769777963559679868377924580146637691778845606444227196209142770722943425357984842675392203482599080598946173217715379131524456445901234906320252953147466122479816980439025905191423836258960262619820928375217092210307565169656469678416989033837144251291786804415516469753861691525831309447420694997959979818108590608088938020582832887459128426552291412366584746202625316294413020170239461275391301910060860447815901626541338412938524623401296264506366397968384258330483488199079194488507862837927138059090419004300840588273796934819852839263501330394026815604396349322634375240680919190527208239206785200339697111431746459012619712747386766318160943392119591161519688976459761857057853358409035163902378870844585610809279878708597825397237349710672459199147323465591719394438638646820488094219487190310478508042295147146911462254524867779070743217139125948974271655497221488123808736569552685252898190280521331307867525561060546789821340322533747898662198422813495086429466997690289516990163112231572059969733364620283061156245504878709865623008773291679765632681432933978632005801724211284323003832946303702358358820268291283782284365985037657800905461815891278090027334167838503526243902596781369004601656339687755226204120634556869817047671646875822957606763924420866208873616068545447102562007369645237720048919647756395974346280592458360440011688319815783975498988950830404784926990126005373392322765874343659695177090517995074360947324088362043704525205906690871206737160840112118407635457395755584169796182484689603530857067790229415306310079703005270730412743399332827878107905596701867835842435940943291630363783664682487130154022436432833485122804200266069322647688009057681844264826915214663544157577298783885425060459743864211416777968608827627181176979144141939472719567399248728907187726278565311486058199900334186107484202529723265412102236756512549139012714531396825338339587366724000204328241920809080338484990455080523760834980894870324345177093871448444878139706881791327344854719706160859206349189093629967972158281782925052618122339480051029885800642033582413033077356573880175540902496584217768574674331219221690996156691981720753586960451216458845664194117740307835438304223753283678344449237402272608065817172484375621335142539605229471657087969174039255780290771062065703434808785049927422820107280399649561725560370763330127278640652895084589925714592591217009160660362862903849854689224959596139382635325968280347800390065421846046690220809514894630487364505713352613276601011468030171756910728985825108017377411276814788334508505293964167365845795331219572804134206950825018828189099776756284866250091142779027737587545458573575662984921494406004941515860617974213139765126335504266911636435402600130407414445255860690021025891696388060480946322452614236134332961448111964485681729952331256703905938605021175156854721918110448461994627872508149874675041499725423613466877054617602109629798188955673306937888510352680307139656219450588433296645042669894110331641824982438551279406406831342571105338362069351409802217549222831180361407258073340481247675093247096492689468610193231299289417034462022363476283749121237605244251443476067598802079078447612259459292888266860794778090051583257104065604159607931618428860288070987163683038965102466358401010088530183310310064482980193218179335644619576781089807733127876727347488409291770470503231275130601036844931307749086238351324744155174981340180161517562261032004977571388212359840950176402116174520408196777474407472495319418620493884214824692900187564642146604934661917656572642069128912537399263729430615607407046293303718457005543671873761326833964310990959767148178158034223890564880275975612219479922160956990944773567128346300697999143182058846966741247008078222202769829282105462523404253077321501746246549109700412486953070499143828895599020123068442216418032792612522208434676253305085130995456036863386504748067389317257096690784645072721032897436686813584361399840452516809534657253100843737193171378632418024787174607578136415164014045619484934747197056675086248224553552499647087384923838670018066879698912139524225927016671242408990955183359062236642564436950937235530610203201908855664151749588441405524695329459858255029099783542621188474294501058635430353198228628330913677259298726954142249009257440774721666091580812829872733524585459375135561952490097121013308799973532732176664176555001450731300054169087832605083191547927295956325369191143558192364158891647092429526944090908539559319772736423168604092274084960736206756951978407945875922498907031520407458997019875980639400930185544857721022456135559018154005523143669528910586607431383614525252104369753356850535487973855837596010293793264141258836344197013603202950770302371995119068459701772490034683715633668586916688194847522673943064653487803326968926701379364747397335489505841592653128297521846455975129033825962714383292556788654213072634322932806237308251108510349024160023350021016682056123636933211190781696862820256496944589286961593839967360253066922096141963717005145463290325715443209513465593706011966408966402810562493525440380593550929437410829972401912221971599840801374546014314942279209213505034380918177395248861930028836469838250910950402620088029858611697170627184760227567964396599856692855248107974374145469900920876688726434910096327410931939348843938436350759451300528723322255508424669777297128994947678333906838975723316156857568317057595688674964144864259014822653764711338441836147698429533556786761978229828913230957665652062795978660784533206035366570960718760459079831892476549956154638687972278620727438309973811494390277203385471613640633574402708312268782319443011404853220695269250471654384747967199907329114289464601643007273985996504226356800165040971554449337363345308480719023012628959104807431618146601465797555434939335083627035208912642911314273367518762793909112617192692353746623132520150169146494755711304058859054652247084484082655734565852501984459389325751652794295599483808058605208932104848744818394225989616054332965085007826803417192869987148404227573606276138777175856900173046630844604640876419405248360652883997415242991313305140521649275974456093489399962137700065039201780860980321262948079053213988746671870083473307512668627082218018707125007912819513496480223396975738575257099649593966093768796008976371513612908275377233142456868274983594829580272425580987499303510133783034653798402702267175087752147727224947729739301169829438160832718863916858711202270696292251804026785226589166022818182224572246515688638174902012797103050346690780786622611912086913448757387294063504155685741535158419273284121475471062685203905240292876858561850218123357711601162869511881093386124624895859560552174889645278610796949865912375505486457093100806855699958576007324872337080497220881068248971617956447073341726956020641974241911083463024567180600593539819776365868379320603897604934630915105417870461634506146937841904580410510717049202664620702254880545405195761603122007326292362516255957236831623082289443521093707647625722215738964840658763630754983826180621315576169961212321165630384182943172031639795897785295132882058192864827895440147074714404734028991046149487353757746967878993145051580530176537710647404356614924362573660408354931684474654158997669290900306978619181752530004224335132748093946092800404507681630320267606584069467098747778449042589047032241288978356834891174211732440503527678213659664133672961653208806080338887012182617547863559952756142259038600501708572712241620836497244920568879451854884692314258287504666688999257971132477869497569904067595990885759219635416698718980048446732564231808146474544636032241487310288738064760215018021058197282499145870663463241382135969163696556564386039425356081798403206033884200359255321412437053069569569157019783983723339438258765307199685464410994042475220180627828646098173240601296851942996478257422697212632744094386810520754582599870566502925347838408993021261994320587449624446300546054865619620339926191166527307544674496740850169117725335566923494254406018621533946526267567272741015396971583104079159179784102609800289007884028806220256059880178347815441331920493822377891556436607479295430010883708316463285236487903520376361795808448946523405020581213029718578993066577369739877937586784549472730448773736468059864684205756420366635091144245715082923537006789080338993173137082683409961324097514742667125744904724869769815343675003581502779969908829026349131989419479290688048416106109584106224411957346277163500845743410411994011273006635168737457937637434555648162382785233007300538906084813178581839007030498120403449301723918636605530475747988578610144286484713077308290848981326621373552178439537427378172815358359779675753187696861836588926667761523126808751357753539380588055484109594963348936564960117700513290163031449235680387796634378829674904876335529248019759208244665593287757935315141711890637131115734394980488653925653413380382402290630932531578428585647001067097483092681706271605967881629305568479095206469169843760952234567214367443151175903276581501017310125444423844647731549639389341198046547683372615857899483307373859765217340536618069188380959437155572181496484386715496276517056727240303484701226079596333724875428468208118374025751997546184792579577533436689945124498478637735954773812484991104665959397016404274682219778616656622442592189657529556288281112399031632482617943927678636867063963729335083777894524077340861320709193360954803856686544512262478786199830711403618156007826793317245700502606714417394392567422565653515967998567797496064756201099896950875769488857533592960774870545001676432451169356499472889826775625381873105303455684976331762217396513930763204516012577823684018639404008129070912261718404971579467836524976656520213551888288945675634273869106773262468705243896677612317521384151967406598141786295118195962217002909390487049348591444725291275456739983716963600035657330590796430383830276378610294352293958272984592874283172366632817179896006608023541513942016948902066189957163344027282045991171184156939748578424618116494686091011656711964975579248636462042343270872340148430299618139701286551938226991855513237257003084484186040516818084768817147088245761251154176840590733329832730616394750591588792369482943486926383722110871388743704369643134991985815156455280065561643357980205204868122982458254586135649298150816514470373044751584143485572828259949290393025152782824481001704527589647658543116156283873252303865590392154628505301753586667674965880925891677777132919696258499860525898962913185437525347655129913240139007800470524172691141205866386026230263471717781948250284201344641590804159270417267412903532492281541512554935631097107023220384900092609667169821722744915025490229841669495870918522953623668765675215106819404474513730452813884352288011396530904853426076008760448529376143887073937424362346566872431396147068671151844352277224107552898196590992019010162515097943572143212736270171082657062146183554960630530576723955609528796761009164344679791292836346644503526595570165630900611592451493559598238493085381723730244035388330589793893064693920282416737173707674415725394352758796685354366869351080139484993304629996054977727732323486227299937515285079708771616522066849937678359767805843715363205772057294275718898934272642023711534051390841533331296887851586134318470088628260749087678138367886834555154293017408384052781921407059833976815804513056349808864328134744988884196517589335022029447948606035209491949646477255136992331185867390679904667891644430719994193742449362440433769918086787099676059105464606592804769111846216949568771639518127274774355297876305100936710450725031104165628924495742790975948073164035198627967590807591905381090181321592122254872404403865565886047525747717551862098245641413832757874722965866157657841477886365339385285761907268344697976996942436635299716824453395066278233215700289959232058321556267515716469302871064113831487325891002694726958587788006832585677029111267112668061130787006601785300947017345404344201624547584098286119980729780491671737453317905439709963857704387374890613227590289182011560151312841885785067297436581988720471494716156194452777749760516425848580749340381001210552329180796756839960215658903170799174709328198310111163559919078801203411661182690146690437604550529031014636447950130126733598689657681635408203088732027721993262152275387906393535138361457517669621790044208918207100292450010150029167209400968036011851038733720245934343972832614624532779740546772467425977834359130132853596759171434804416691264645504688154567544424897856739695403824424336708826762102024136036502523227028907790711374728204140332093261526900774000637225927958120582043831236716369781488937583512749654758855976800738880024485280957917173345677641951415822994539303565843464340268784122280613412394299350439855588922801029859612236547191867489357811842747414509965210718074860557770489859193309949791056727828710003758010089598855749670713363251309800472101534546155666922286337736907067599380423058594424653627871379169795863191826938534307283052808367882869922249846452485702614364954776527638508850785081695099432568901157877398144511791036961423878092166623573748935729590634163233438765271285459368985757697694120621221403121269908213989402580164742412097728134409690608304177548675981422303013300704638216317042779348473965323739252585635770987257909221491273309487672341085675822554353605896483621869966804867474646770306004675012981137288898481903269857422972703078102858962485173303966338280434047823714921948686541540044290056724619458248923147052419914868816864063153685269273012815236638365411092630684775826968053727663982109474481348309816170366597789955787034488926141684779906717709973292894817905659750979276173327241831681527669648417219400062932453179334715310920090633864267823121603150497101130895076824967370264424424085285331183933353435236399610092645006860653502174353269759947518925793917394969437479495710175899064842218588110903478541734295365065210027628534271364199554289093733864235730030644233960200374776089273648493314132383026010516219027414026679695760237065558685346202633070093369197468554338174477661390909228263250299396443589529198156094977525126122798781206485156304729544361085881073531049429110398131293112102191467053369953520043622234323606356913014483677019364053147169657027946069837416095654561357235359102123349139398659547490172793236215098230834063757478817761058085251187504727575431280970516410033343343970454888401918582796878940933899739632808348413272639732872045895341416498068834838549184342171357778366238146066086465300218201447512904643272141694255693608368137400077847373500273053653412918218958015999777349800681264977015833772618490999707821276695812084016337212173486044442644677742294571230253647775563596182698045722373176352568881110938063322406266493233160259196170106103755115852903520909775619901375137904523933683728775168019296867915890200914927181923236216406257130423339393913088393336926821854140805288445177277537277430438734108074428072667646371238782160338068763424658892686685779753258507479252107022527395316389719118811981086490066630297247310416332859649660230407531560969412606217950492446225733395448797408308601257480675391231903944857987597247517365277000216483680913557631679689486457277441556974831064532576521254952709105971328306984635747156541518219619916364002728313920295845343594888278422607076459154981155237911159340282627779162208137224149120387965000622598953738326783726230305234512221583951549488954888924971116122591886014161286117348243795408519395302504950203219740632559330733404596353409748732352458002997643567805027437749997445188962212691445250818781881047991985321512855313566777640185210180202064039044923455412782517823674640293213872008942978157729764587260226083065953427707216348451354026603889144511717809065999233862780987738680803846094775281895662392014434915474129378387592069545618555427701794272007100595489811533836090518389507663877160177384515162273597578333828646475480124428518644310936718685975419584603024808960359873583319560509319003474898253575553366337656618044527644064576547025097199073164295400989698195710832692299519501452660208826869949593560014315001052223086310969108717286898415458073794814982065617297831572710477303650065608342161186776194084757557943134164999513717590663466462898417447182589634123154292484155549130411381686705754455714246948673008142976596503643674015869699104244366349960151602980365640756753231050278304260684404628827621978154075898967358710093121516502489905345397918039651129786317159469751803198859518049480369885307811170129492728319525327177412216992489519159416451479548731499227127181329341504634174155783268282516553684258258456676961867637002619100196088902680312985473325883842856609495520594342605571457210611388159294554146512981769088060384535185187961894517397510980485704849180174478174265255834124466603138848842681707844157935239114552346769597011184471666057464295223718765286137430294423635634890643521575306342835322923214060653420019034177929590367773778468608369726555367545623409185030060553394904638353630723808522756681978835975907427680644416326119793509944753077858076850736949415366032856223674379304986203052369115570453479299949144097468318015605083903652784521881723799385503607775156698196020669628460018991356586695534106205561548788014473330724744384274335859872591878435679912639691328959563564786706025384185541853427856004314932100671410694842668378947060227149148803227495293420988769302992289291438323629503388015318861978382429244722861067998474802221598810974663062517301292623449132509514923548642674287095052846582809047983134075145633463269222943473017462634390324425580260093038370848745103936767132576275593380422135747620148060261555400319965018245864686769871180056179449149308834653993989677443287042949993919804034777821132999291113982100513445295296618489070208363089542499539805867234063718884448008509339765653314604036810870218336924288063483293271380615051622602522329678652510541541350924400934036903336955216287624076772002538163494354735049137097612264131872204179620252778580097900910758167613359525717607208465947655661826740627099497134377338953677842681101928168165550679922651754663466216531282419124426978919464625187452596333907170262812344018434819835307626496399233864740160201836119014784802190184869186003047841512163671967093649951741956511663030384249781631796070422363187541945192238110547536402720007814195615215393681352466661418961846914872538329675806843410519592858844039147015766853215731995126684417254037181114275848969196123427881697779104339543802284777173172509429295762208672535471055755702632243826589046907925039918467856954800830341724267073985363073919620663983795376197249220409146585523527185471194525767312679525317259197889433427347754274880243506027808419845436977941744431310242753613893765157811350153601359325128833026517322637840723400526660863207011245192436994073520194606470324962497088978298496330422915108025065485420537500338375152377833481143375212486348678596011605838476281346131884755528925415958423821099711091543834556429884419165312986356410602430559299490363637868488342338330167168537757438283139329294306895980829113410936841546112953469165657755432347729140740341328053062553022500545508951400808916726520617062532346141276049500799844046759341388128649665862405906976597130472339159300331015726124235577452709980223263623364850872197991793837154926566447911925211954849728258039205943575503716010847637657371366513751724874412843792128259072371535994124726341034543910286468114650065841809109333009694667522585726804492433970012873307946490761098837448721839598998412225360283552622056759676107754439459398680209573416175762570829991207410363064978836960023164950185498038777398429683293861919563205067481448548553118899854244330382275124212600666460110044033755967425816817438551006906094380248980187406152069828061852851567412604937669690854356917850710509923082856887334491737901175647477267744326599086849459982108915581740861301733068643129235312295618303725748074210261429276709636930286625966450010026690780854154302316186722686497658063630654469693303717580936920799892416078682984316248722314949153322644835297260678062004726054733806771106741171362622881222293662124431706323559112383751697438583720927007909998663321029312446027597704281085439349042428596919334985501905051289209327630216050003788687567362035725182725587564116349833811329568755209937238648035551570212742214979637829566148938602386802535932043500554481420683595854621023409235170142779873182949489890507941653990544568019428254391873858004704159980478971308494963947822469607398330214991403763708090904863545896277992846680499919894059649317111953245323977239350252351471273515219731226161057242573039842455364018644951839256143599971203882713386511904598020875978240846639260609056941707987410958951307147733405201216740781372295218908933177435902797421325288026112552950459118361787382521153509286580018818270125688968141796709058611462829152512994973756161854738331024178759512369185420673986298267541647558541711275447325637622102487110142683463132209972399338039073149868791300133028319655131907010110213040011086361438613197791657092091827684085301369118959219354956132405406889062930139681690276862417189173307699582640615524685428897525735629626650303699033873765546235519387292239258672550243570254505162733064406567941026287877226710896911512824530094409070073199509620045405168107561292227217506594336660513141924795524512242818851660620615397786033604422198473655796987152347675945403371820360590243490460587203094434640542374948425299524122804996878983002549736356705606419981533635478618751009483734031573371415250108100603012104028322844894378155068811654264426046598114624108286903219930659376117813812190448650265689985328243860394516266906431025635577621616977662400707368374259523562707837846007131820277258720201763365631973447574929592177165276198432828727110380222160295186461031736004192067666418999772517665878147388825653066485775538402933218265133906117831397864669411667120022498806566878773564029400483025651374066699712769307354462629768503765523763661766959404648210450917923014584840738142487948407402722967593902037968703286712935035118132796472426142691239304998088633508645065737659967486729332004186050949465789569297280576459023615161627641582238900999653873186271158953585470160689355392204510499112249634860881613047124961518205914636212663731646286923228055813693075730915342052072373096572654743226285283042332393824290567244521410723717850514318689191621574571418323284394200415752497784562094341777740466227782677597189178203945757204680701748965779929074028282267056189676608267619517884089443107590918417267825684949157919727315212288651951232101766884227842326934886355595861644878801236361362626780199762705683957634833720374829340741347211529467743156148203024546792717653639026449049347312059645644660181540472966595864975731177589451189443295706962846854835652521175449167752814323180517532969602385292635296078735355040376910743662575963591816316692193648624306171639977052775582179881362846184476990679666512688474548382454857270510648175851794378262575782962877514883497533797942407736777487083566704491257968041173686412238954930393552060677287107591233054746735358660547139693151303185721902438586447473434993752922918733001364544080267525557064645015204106318759987995479920869316052055462604363219042678426872415969668978475959741110780147884227757159745493179861555727888730386690907836449679932151705348091713829960162985241811809778059740783094197404473839944727639271200035263366184858547231013084172580714678724801488899919341944087327184548051119729076586979584137147459553552068846172699858689740172809163585186260791036579406833115949513710621510781295070383753504229364371314763583130937139155304905424012349931322897985746216271358153737681799343838526923586049382135522477383443295354920458576600564616397211390262593712730256343582150421601519675912785146355951457311528823196435934601508453945384371639090583900652687917249493973077490127646456933464410118553957871574138263424561600196850028238368707488960497423141158324249610767747216547868833921975940946085048693714248721506475398556925007806012035314291105555260936680640906906456902056199218074893303284798997835028482443062751108650277907198693970422985366074580757720322336386944686507302526123447371354711303053097280846591519551643353560240432202513888095933883842837306853571791827257635334934029907277563372625035400399393282407601397379705840499195729044022894223719443368667561113227364525557116113959660152646393725491497172400322662234509470369532314853178860733127016887938562448535918696165215299484264757555628744059784300809184839477536695200271315986885747935488063292732950855466024755694569535095592665057153572422910943107814922199427544652262742878184510913599278113430508746991968360032437592434662736699108293524079022079735114019767368327724248337584800108741115784034130603782049392221385025116422764764327015653314776511253536002848440534001814913880608017184595208308741886317014962641857052171857948339589051696075188154727862175311098419112942042988485318396442095515734825690911576026005681799807332835573346034861126486819225908786899003852683077051394151805764749523319324594639944050307666868085101181929076403240058740876227634482399144794438694404565029948183837281024871525407887941046391047898484166063470518380424039384568448632158176253764370914649721878900840313605036221040042414690306104573802726767284221564149592116945701013645616620910389716461582483709363275493971762805289637454029332151259950849407551278258462697903169655438766668244210060275379928441879201900137099668045143382334876933726612033539859569983173635163427130090352264769000364680053628052897106675107638959485330398752762952855796224277511835975493986519241669516695832091116005499523732124573227015175339639556068572363627251498048936855013272101435764873259986853430768767314353962028925159478099051817716530864983870628811778072021316938962384640541798375003327833968446879305786988068781518272398082120039330881418070188438955087719792684832738504555991610749925240215965176792604011672946878679236557764113471290804226879315721938110389086565716618563619347793057112734670245340134414666819078632202251597234304918140580422540357572224820577980282908545307854895107798735009663876513299488972215510158477503362184231405296790438284879800667746404677324606771910979479665556599916905928429978938913971168502754618837581136969539934633070616137575208255534214211027908300781525728830203597179350263864479665219066758818328255108166584766925433383646084412894244883398760195473132855639092937908109586414896418716913653607078725322234010259567583206355931631671145366477886291505265916770661017078585274372349530388240113464975761408668032678633882423815855696200285917753344164227307461997087874193173793033560740216132958118509317149573154251492066069074750095738590460970175483480585748048385736009331259426726771537220768619236872134145370938616728373573674085035784838639294766205639458140120110171707562137363285187390054918173334597246774432969388574211810251295990847474197577121441769806912325569961017551763207944420568452618012846487266797019624240756902325620558780367063797513893882004718582115094552683769966001440832081438878688966670465962170171294889459627172222021603465564415581045001582441175468543092597465108400584873973807930866561784727069076247681118012751914339138547202905453275250975054758674750079477282984003349274121108450787295025009018234629798700372263991324643179103948650610868440532596794732077081622284114445957738506103744539505221452178411429591028415810813701768784233223019883371333425057864828122482805175908816396327796508450064308211391857343851140038021799400285738052249174304697994637208356143972465368067857125831742545299234061034300145619547402944531785769102653492138823244179325842720063945859120125207460731820218594529013332215918898098995132813590950086042137937836314655886649032334013486072729593267834416901626866186138768395437619380135757718702465405141441029761881351123936288532771723825633841103143447809349811990983220147848701457123521337389501997817579132879012884221449960350335416492946262380824771864846141740324445985023194777795374957774631743791260372204045989506557315753374550331461061888106037783887550687875744533633896578491982661589900171012543130409111230074497143624025986341664487813298723019775794297238936801762250450780965623853206166931848783764952211046383992974476414529397686424593796029995824625801598457700750005318769350220726265671210566027906436947660836312795482347853129626560040338933950970491939536147290866894083842401410367166776166154094252115174350664901258734327710071053169329648845179356307370874985617699601994706962471604919254614632241291204733325552778251040422933412005729354153607182758381790832115899562621149591688334654552925978666262465147510316852498536201129744641260705597368012313121010726967233701405640835308273117828679167866448460408363665732968491667769614133735257014521703669671928890993082718843779639079130700924519982138402979683102887165822260687233428706554659320686069763656129933757506399838207377474484787865584510678681522528520607784310498828741526183455970553173922945680181163278185689376271816259773658392834452218693380475175993346957347909858743021885923468829226433945047738755846663351397829620444939141407596108103195563477223480128691767995092395520621157486158534691653912312985635256065536297032188877752504108170630109729240528025102529629812384765138530874986134801229183086727688035171814859188790658255662942666358603009280273971728883652207361256569212865514301188356025236109900302751960374432702685893762780818296395342002394927522843664202479171356227324516579260471457905961594133361376914458154580711941856486107749395577401128155691811398236964306528581104400859580473240225070179237544896006010373856282815775962962910652552380377626774740741761060675540712423861036423979063459880264005973526586704477989811844995127584408822488264810838593324191677081446898289240237420765186623259955644193187015344077714316471858406696379327165362479319637270223798790310037360766358398668689491597444517688594570271257557873851993888509099398976104602554820100202942286680915068460488373183018273632095754341912417406850694856575842855483278664524891523457533809717428193620490935123381145266537524934397306116331984674627005398074493866357313137970624049136684184621596522213990967370401946338518367632227626575112519299017182592380486495858233425207850882053930400309635736381759440577833387124480017273652379139503574074577009883381571891311971969779717952028886101818952906601852338022383665879509726704461886188702081845861120708606511463638870985783017450332660712989055480293366921906772359559842840611526531888860151310714770654365096600190746624692975334349751814174232533203579700563169986688009008401115906431759201743647900898608669816884725706362219842617985946427821445470432056171077506049663516520728435530319982320836238619003258238107560897496490616400471584082753477634928450612203928854023654054128236089612259851634915046006287427794096696741695378085381182653524596890241444800573848497964500262989810849545231682997281069033652299675513880102674324200138987522343849701151732296094329215200462971052950686378405034249674110535530585110329377577401429902974651044158630580039077136728324054483190852415210322287706176174910828260263366961328617995757523835809687403288394399820331647464867108694333227144760088415126206317812919632135192455570229082207482662404831168117182042325808441192444097688137628025908356572663512766261142226065502829729545908201975930394902362415481992621574182719151980920698227319749023715487531508790297912758179839198030543117175823394328520218960899736096453552158511376026567143686596057808665987153554064984672592382415532833253072083494037092208541584066264965429442119420878819305009819881861949321611560750647716353242466909129316267470702907114221215105019127715377008119483535663835933855128910698582799024761631499519159067656536524408773900910462618086423168940343016971337999644819614262249629241822367693592568801493557166307172302952774391899175510708081118175240640903027101001037308132172176361859479326646459958055526985346868572451488079718996172939105153483021574821595549028515865907860593622710806441750940961262290806126938213050276508790526850699700533766524806800975002920799090608110821358752239341717034631318718554146867584765573996172942094453593536039031146849201849992962391001696569781348998422737483793671696730088876422061614991957321147103788576364003461572537484836838045347324235107424037730793128861463883548843180015275893420560819192943814501942161209849117923190123892553456594899044494248445917033064135856241062688450175633899145391257415697493900578969815159669545099791881421237141213686314183327272430959713519450211206018822284292817730993951868375867840619746765302207691784597927147014051892238254912651678886662977476427983359197605384866542914728739749901657169773765520393440178926062659388435629031015069597218964902532417673743366168948171315646743661758949278612546876026518234033236172207134106823584433561961808922449358480475679364589574732766360154051975406219927647040680866007898687774044430782306627352614978491366404181826810446540568678027142943623704149709094896222718569908328131992767755951675388509489691182409527919073282870519002343956074485808338982581695019142540723826430394290256907474544544498140327428013127618832295409386675629740968869531459078877541891602121232574483438152400459304850076780647429765568595171543309969153893068890411177383841830086385154886515430882349206033172411000704777512762788886607752433478210789704005765995004932583718306929728900047808918133113938829567306891829808038819931877162868850023486526540935270276603740659952411553302714695972476267541363386304537829942090272447502970306671901398212446308648499908374862784569880023336013840334093752508257453601683888108436362256013650319679259102506511129324441966242203036145330969161353930790398952713656179581324682609087814493088160063958949956968055191998703412108518542129045263564653078006043914722771119891585184131620261257150396795738122151090964121496205179646191697130316421366325037396912483711830139697616163396009422963946922994995468242582982941237480380126862394862668926683820263757420264947921909090593005756603067555453762742932457456044647328344008522829303855093224048486366410282703512377888697488382009128351801617474396988734816299752430962599208036980280847202317993281818679835866025008924197244076464086326536435959062366009945977914137674947802081055168666992023067082158905861257178675819362588413941847962417751450919288732777424609546741855853453175140162277561027734309707119917217537317108487736971458373080045037010627899463941283932727745644178873359797843296125076058748593484767637236966335500350535125913798575514134689239600483716000015243761520067222279016395852803665710652001552860886049072929998227222759072506639306507859676478200357389566721770514016533871974073758729108537972692370411668507584902717984489531797137576422133010585998524704798264495532239087682043616451572374059644967724144745519778373891852913003153197263192745274668856803180525548777876488512317162702358478338905656678481947326851693229102697696678870316988583900170548738453821681208465478854381826734390072185780328997652805107782586206159034759600930166431368890814017188656620164729933362649985645835753345458152668670652453238725571612246651137824462022683357633546185593826557567176526251103903048173208194777603110500342105971149023489315689375818217387039059285030172876988166388527203269487674664176334193706658185088214868007229677189485207786042245788025666812711330399575056656189608208145283909742312205950551853227367668997624650517800176593331115617198987277174796886227575582311039944261001666233409566377045877033710615377404047949844007598933775954833129116354463791675908123383831761758772555380541606198746266802165217448403032697206533118424827690262944126202099759781454154675664248157040285250286217834583497897663315263474015709554722653796028910624150574357850968727626239725981078757032677288939577944415058869175129412722554233207810312923959847227562569358241123835145527110561685420817781391578894314363996014927729747004256384100102540562972125478584658805026569703360457611417826179010707208089631697199922545065769021125802499470251633379344671546640569022127454309996088690041862282132446792620942066485140063951832189369874477088639243047087552500446429077526724651392548253541601051054765758023001002252384367284724541860006747696828627365631504100890577199159883744139152469106921230216699509646692432791526305722238489067863297390672783048133054292283209769099688791017178404328900868480357682294515794774176116978062413860053485627909886283436343905947318662346951301372261596762418459837143471882612747486313602423684874381486531867036926022138810496539760239798714850840594711848680375273372201833012500670692325926386259761292889494672292274676835577280610047084607599149586202397924363728473018583102130566552397349321814982077099318317960284775213145121209241286481969860753764918628043928079841437863817127957806828974630839832728149535263077649721078394766520524106822369660263758047555903953648096495956803508702319675614001190719205286005013519299834978247107144316568526494451135586260599205893581558216354880059647198600935643350926534399640924195801700872089161425310853411495274117872516671910073941984254427492625914677710213042909801006146137467332052392441967772387367184324992972233541318968446356406261832400518226887972742940783225173058828005650686688368467224969431142389253664740347455521424622342339226363897360596674328926513587065022333739603012692587330787358866581489811384579902461745917157961486057683395862688925326519718621839061208594910617984822457366275639939844069090145985978060865121482050498627940655289209770635130827444502622469105911782950267647292558396507956130447064092257530506236693923115909660761256258285678979629281252753964965034547160963299419535299896928651805403646689902731522696008545592988221937206547762867950956566631204750480737359711674416674652898052426429686731985073193618328661714877279174691096228486003891185084078776635177928314348981702454808811149430801996158688399015263275265180238837386038213777763613879881287845232383872123731946958088490335333658773425745365158709017881845386407244148871045568269897316987711547973567175439622240042882754404077463059056343845465218458434357224667724034457356937458851536491629223185395727431316141007245724460031287175874781487949273364871860723919670015699833906218910025056125161006973672248006681843286032428348055251612882967385039300732819656357395333007080295103733461935059823578561957029458650313591631004919383713925576074831911499928592746665211630491294050134257655912148112303544829123388066281746437397113159465338460069084657300866360720262027937809755614940496823770795144731021091850528797322243008047576922392360122721755351016042540412359080095455869826324855353378874465187647009688891793758253246804984423340716435121150697735203281725251821341353846729750649429979757585165127319504478680695073388349831053752240385982424636154759347243636155559981507805969852954272061722878566737131573045022742535626916140171157668067680317168199754687971601085682985262533791316555707722921105285682038410607537048794860762918473972350088633224484304729482270819193836486587632961593160076562552575780385404211444776673361055753017256692111348501791091694217263004163394133841557628335968798599671093074751846984297991502538633280840064560464273370106686087089651757590950839630838755315017460112805460769817271226414027406231898535061017171452509603510239820873052747037651554226935604428525929604319840833238950912586536950667612744509204140491624233150360865222341774517829795521767022743809256122192806956174681226764934073295508543789014445739406235860455288852640192629842634952930645182094305530238191064927226004357405481936959654672463132617406814678668635776334574548153610601312405998709831729157253020542067990618750563235062992049129768676939551958924767133888408392610075720062843961951951160157198561349757141966936843338681718597508343239279235159663375395866558318130610620999185328472689411081485204605390350428963097840419127395763189078150852444209350997090024810643174336499129437661762506811985516745067581725577183440624904956971060403841413779427705817055922381511682246276515226346249497438396804558046713095866649817590814934787866005026100779054834332306563657589079146682476794547405913448854784098234596943445798663500666970153258126905935283297641330697918985582226208073563638404999837897179865505568291918917786830072860726191768055036741098918029048821842534307119737069554833029888209752925056286673700639976399188752366015583438197068206117460917736613437019249939054975116435367223763983053889514918229243786861897127508860958500281669146706073712928645839544509720120317201627688178558341621830254070263501603337810599731051888410643717402103949890236916825469072352650504378309143377575764206300886100870435917526172198890751171437552036317327786890678976029364579763085182693175143648701920645870699509625714716046028633382193984110849596628122392722877070298642574185735455891945772392089963088405573476725410358941478357390550928462361311857035727310430669831497557758431085486629605055859340426344207982913897749283152620336064475635271827236502937738238275681431396766648542367660174463588851963804367574559407169613488203757185860699623901244994994036172235027463788341850445857101474854820698149310738777716350465102964843445574401055837268162297556533396982915994690415715682811497067742721477453071915570607671985224598895462826803832710802934354979334063625366544010854795156899044640130832087401448956996292468538153246613300848873810663799793838332572668598353619283228695934962415957459328254330517959566945309462402205355993117616349168944323545078833292693552806626207800055138588624093690372919199265789507484413740742249511757526535242750010938229108549111058536985875417236379799687272347667638666022966420285832162677392084134186762565910400127799485623083099686646254744533149893041917776401353458290097213063204185456358383777984266113753226396678837981121800916154240301785906069574203711443705983580072216580194265832122796027264248677245834788853289276422681229661643521465380322134355347432710012615603042177475323990406444846208106956575134642277045395077228161229192814219814031384439525110973005233354412484091959274387161562801239363447124551353191685624726341440721620015022804363434744574856691793400215118470105091971041800445705120726635622049546173949002085778929202313679950257545739646451930629426287608495458575918815882241336459464806201538345555989223896366527001178595595416540649593043874896534456536628137364247851272183855587995402685836222077541856860927548630050839209066438180258435903246455881422803111392959494734516277343050992529879091499936657987243567558446761628052110344309410653037405379390755932735714326388059691433974841935168167814782985524788942751443863384821761480460127704027672418719093035079445518425451167638226840513611198990584524311931788026790884147815894315738829247367635059846264471039206628155674439945183284703244115453113596102357622019871839991227664825729059077458642800130148116099296507373763588821851183749268449050856370889550616500903672822001850178716540882106561997746319104761151207891757590627040623644454372575566767840076272671466305788802904068668399939344694527513394663764736875210037899654621744562785796821513764722192948873558448686348905826242761268277902371593573127678906086709050060229714757962013557181160650825019421979178439175532050543623076543439872384393502730219600506361029961641343208961888945005166878732935652760979829057289306937264487418531456021723092213668638423113652098524719386719401881474336979798502379883224231463362603137186734560375625120676571784453137860695929575609592267185219165347951740613617089811153050982673592911494652707182214462724034090798121004038797681891903960375971046012362090923364997359554995935276616723689265291522629627861433503309223856081907843389905808110760095699927596221896480355935179446858615901392301907837839570032820604989455563623915719808204475278184278786848107773713208396084209990049358701768678789128094184594693673835241600435812168365563164470635841809722717686837754587146420526589975662032780283308421066051531164400301096189644358386757453656622566595580717068759705595960190492922655581548746332098381626137664290616931298075577315510675316809227412950299479441416860691766944345298447851434560691155452481533278544081774745780921823372486191573000176364816361250124702114642678230787421625111737659614667530572890998292902889058855881162830188869359485052363755583761637393829229894258966070824042658691343271815173042146832969265107633968081248024576782078616289784452737234662752510114784365492697820837242769092291705779465866421292106823897849748991134305656799190721111266639138754658375615889715943498107019462296309494836585362643648990590513778791431969847228887443081692743805131690407542588943544325692917227248209165289400905653411488126104112287013253066924621136395739971746016205843629422592457763415248352211799829470301441564146267125269835228952878908198096013226126518014517104438704224109601729825426458766978513262157145211625971289073111476460616414072367111216141837882359522278167675096176154225610770186347703130990908752000646229293241513919174660049773892276584882367285814954703357889728233332199123022889290612935482582275493476586313887220925886881576520242614856964473392361428572632922946455999678649257447088385591342257891818954405611027762892666045045539036874635343515346309352118224432501322273441968231872743439294917945264840879076690088723169283187704062494633160800742604497513423324826390784034137749203328614895101143874994863236903002019889903252544886493346416843028437868964337888359377955912291034978261279267057729549603063754074358069608951006382253216174305680456054414447404606766570353667898473732199759120245542177465487339947770081208160063138766318470327240196034861049073303546561276084534848885101116033719091777261039970413841551792678649710525454941022975428457911852491144543498443288219299082555948506269102714541588155730932966601365521380687090789221371285073987654473926581665614553743319558873750879204221463067907228952862341923775936879495455591051127389039703788687975837030729277572243963696076782357682527708170146874984705148312340678149486708197395102382357642458553306897443679063404767811705341688087215944036397688143117063458147016899003935514153052413199151022093454330860902466193140058437495021287106346517220440479678729062603687320282002116793157762648368182485597126988451141061066284258824486955808618310287039502113125339235976478680048304797841232956046043757562270994844260521903429705992070367531574443354491179725914906978818675200639409697351220424651106899967560238240853570633925774170011506783516715173207950871197266828583595442534758742547637166171113866287467008678916297119630565828840512349305713992482082100222304167744478606532306506723026036551208013264194111886274098519617522558982364732905834550112785553579585623164252676680165217652409880043842495026868248300376116217691310799732939226357301022851472793494328801056605755236364173598588629404261813614280031819157258227647761887392842825491562957224490537208319638798592065157410962429646833386480076942965039790192715396964824550203772186853005864227207935426579273583669455052770105833720112682503900843833344734834217282672938873414228544805785838190271452407070877567195740380651506341794077512001347627403977710183072264409005816431266838226924084491773624608520067065673357409232271468229025493364564142936848290208335487950308497324158138363472747053971211499436001504448119297252970646731477329471925188893834438493571855101255241233647395219717679364498533163202525974987892367891371389869783795314147978467045427330918138813248113485973393556842853670667862550473521747278520058543335677610320798234888684613546156355875753161089901217865190869783869145123875704815728085486916288538043218503302245217369465311130981086690837087950420492833277362968505879080219750633527911416398693009941551201270055444273930081230076241919961477558647712342028687223229069899401968867459876654866242755295035100043077511930137952574268230243145321900033255615352503804761374343308770351468512476590020247997939658741489788116173914267133644487977222917942255863881676724990477379386273731142231184197340963465345016683836921502230144363794914182012447269906822025880310499500522906911584586207460001729729572353112052372815944713776518250345261690759950192838446185157219162009193179879293166299942523809577430028198881100370709905048863199305564245697825764082359113598929869784172883307088082192117803542965055293083428363473230963017760993458887013777057633452051676047060278527907720179060672247624008846114288097064793561746220015621087869166955610395281696684735967505866966181072744951028217393472862568693229772223485060831624816338412783745315275946122783829606617506581152238744860133548174392238760119264550160955704544929021799612608900811975171292823639556235991467391528630952702275492048164049639665923087538517826852112020002130206823350647894348881176044133708548975014197634132791776831909719550895427308195929139954576349271832785460269467181213644200324951709150231352664159895136534226417807141807734432621372572541543851139519217788313613647091419762298628360344564914108412547624464212634820332087231034802211685360357149260444349237965831529227133187658397960667246961744823512519848408016377947778210409890861253142956809888059157694511382672789666517746498646506712915668830077202440432930441914330348628508505553400429058685579295909951983140183247101524632375467771881055254865351775855528858475345005729863569976820230210636491088077297979747323872862492711711943674410206304025408351716391750083386825639949044109753214521779739381715708492602520689376922753188787130224800908525966074669339548913241321158042600386876954839693687434107816729190955664983694617076098285916468871443211298548679439617940990350990360628167094808080015042428753213280051994296693215401054721784037870251295097775535192624476101633867249608119898512560841672204269872996103264268615823475162677552548134772254347063010109334424375335531293659783262381459342897577353291997597952219889985697343873649283926667178376008180160563157054176318164296796286460219375676783644953231941573362607132073589129155644758670134382437939052003688047879233523789387133384331803583774293948853052376699371729448460970256682657008298799894858380430072118867983013231895500606873468628824712201953350929175133766086697502445400103619479985925862271982655479407511878518664018928814389030975522090164913355916143741112292594297690856967462140782006611709743289079473762987978092988014086728530893933244961133277820035713294323061777256412253794012484736068786297253166405227391500263879674738072959285469535723958140723035656563363031161550586291203796769088588331549798389999311647989506756874330767774486795130111308511151954876235487659335963382526097956237031346809469966622831756532160176530980819077182873738128109464497448040601162916967432221183832483870677900690748165830436199937499932744881729067111405290204868178924810852641982032421228066276026918535736467270907496461708124189257843595588294032341518522024359777126611940323458538705543455831802485431722738364079702286956216582844071377495872637337126171378124463185051918092627988902244959863297095361229078138637773798491030893204827243243506668697881455930534447200022909771559169531754145255746557052875222406020141419920009484251641798409877613460458244440683496674217848770566946631089073692449108841361195701047989197086463140520318738551556664669754814498395623338415816712367544270662190671489886113299252947619348923244931446231693831213582950911465282704662229216561742009821067653591658496171982492363690860731623691077479549117379993083691729834826052642617299096679107748892892811940991681050191472356301531628149549173802892612094495720172068225046427582643177065523142372195089305864548179356123174433336825036870653223415621797111410311658589632049433995674738515121009517702466820512783141611318249556962030846351022302189727124927722390991620494090045013407269019495590565742001738697864923263743589417661511043313551049734447126228191992439974598927359599433978312701273076399361015049037586724447348872307979876760144908252933858422126033642834930451209468261158060073066827660621911237570378754929957455139463581075279420136876093887650534090583947597091231738936726373489702245784224297746333150990605121566129429545441942321437248689482199302198766333925960755538926124236507454479469063003037776577361871411964045754100316046125908211776726350664724370072240016062608778462942959236606602559158443476572166372311063997376946922280781620661559372325502864142814994435860702764476221187154468848549154482026816130441147115221847475323803057860504227558909626496428309686652515630373603248529225250381653334120625675184581410838362247317335864589427055970391608284049097298921341479689060969970052610669903978817021868899271413080047972675190542221638052929490009068360312416832013434798321319285641047335632963692148621832269184957443852275999382695928886896651895466354250263369460196434497903785545754043729623311930804598611574464288813044847566339185296984314866966689762007217481471583410437204647845762425294051459289503913151732318105373061360551048648571696436243873707052835680946928339804581851991798486912605456628438034363685445031754310825347854625970839404283977865550366055774910323208218232091217055431346246393341012838948711041888636362246736916409689947939157685337095445962011412774331197725584143746584574619034850085162351332070432783719898514663100980370167349436424460037895744364218862298067281790470816361019781112989879903291569944034486275421810167794307179608901808159973850915444051441762299028161228959947120391166171695776016108699921137939611542074882862495636751816531252796356041552652870674318946284659775163547581420585044742409357062993461237622617794663292285974573723695600741111600695321050518138422267324809837616298753591693866132551223664321503868586376836335047077616196612917687105418172830799393297886355971441630294875647534347817651049270432861798183348296464212597134250223043410109055109115323612316619234690783204430510462638390614713559900479206892592504941717200540941313586480304364074524196310926959711988791958786655028914267964886437299540841569385157448866125523992195296732116009277154611384166840208256338594602643382343565355158815098686340330023752494798242556625643522671758134566744073670105096057337964762844840212663792755946646149386955632880919300692485362963582739325612924519052590934387606558905866291642874882182165025675719711398001844092950635849714371786234564729929595561094929031394245780207316056330767983710602019824540261942441183891527322839765594813540746026361803490902183025491734557113979734727420756695544614416632191626584778854571998956706722631954546406106144609830935118157620600031120249706907996840201384520015831799094525525016904339389209561991125367290034423919902948963161418292181761383652546905142963064319348722537787309495536848394244556109054112579781013772489414912978865702968585547234340296884852703676002417002158350020811207988633723598349621301263666766877772365678981350305854747657109780223308958650182488708721418369708467254150643998021983158520505727224013361525922442483306445609054318371207909692402353548773079615324132622638393212048884254576137393218949202751832198535709826803565225136852371952734247246821592279447353478836277296375400212894062941767754731873305679834844226194382692939434627839333752070158294129124020662069889442114155754319765619018364017732757122221364087610333346365520808235819601186714671499122804762013030461722097347108353953798349290113342781298190434499858228492961820614675916887867249251337195333406758090319812935720453207107718545556261503713538067450831159798337407886104014393484784978578609292609948318609794771517955121718401872362076727560279475514842464402135701537610138934683198083549948740212843933179694858465625375502010453795833120208949410390756001270266153023923877880923667674287620731949454928612146553600964682326944218108749505618143578162615313740681537540532234875935742869207873256695819965501876101614450957362689210188159551360571814201444217708343835936792101254332229186318591615439685506917920962530432223945996893103909183959971579489598562778285747789704510454263203715233949159183189247327212956655816073807482130945220802779425516726520115872262436955074817701960521738560106350646273324509803420319135911643658575347003539380339355844763363022167587461910648644180328096136272395553195724551367997781197166193051525943907524640602485127867510638592597089970151181090508102009069652228591417557568464541484784266691145227189914143372053921395051385638420139318139978888933482374912371600226200377361513615128448850975496921129668483460204412650716094262537995842961343333812277285131704183046929419477853136034908656417683941750549979530210270529908855191816453879701874400755015624922359107204893274120068757521100248041188441285229067693712965800579215550394224366351951960084620807816696177145379966431502388589539323927553863681434563841694925132461446758687954537230988816001414579479872148702450903042076266494751630043716435491773095618325419801013869629398562045612959009193104251163761203017733010554097967811231797156604995476787994906319974661387380677508256600264367080670902026098627003865185617361824628306202370130504943692571475749012678464058979220868016590559367660314978401859000316666782768833138667007676654846349847530441755056221823348333178831468646731843997435037939456886901821835871982709717098259778108119552200437965628030368694152055592034784712959516932596048425645609600961064839791986908489986875483364724249371101243825109564048604911859742842913814554071012389795661120785385541855308321912717665129963067526823977749732312944845268383178957919026117187401498034376487391019343001761603736285984779481245436204063074358099782862651874177885429278602637019457896009813749992971518895158407923210427035981941332662217004719542175606776542764668377932644728200492401091188886463290598765377760741514446128056687632903128991843145954991070419198786124114953131344926942348090894685676801972015017767794031708495344733490457399167598623901399840571327440408659475699607140170185892278485535359900061404363035509523920337111842050381715786943183526651110252601271056842910092929054494877523028299561379725999962048857056997212277622453628596171754820305992515826307081926600127466277160395667956855112355564640166702828834667688160431096415798705720022476256481465547938256769135516513275817174341443404266835671311749910033638240801221144377690615656692814320393059989177388881550753833740588118372843294086759593598497239373472211115585208652771012345432884967047853223567355595182922495723625021043214348469708622838888420444985953659702987550668177755842992887194213029578277449506484988501223890390509259240588258255969777069418686795052840446899723603358905105029247875420331832354657340246444839198597585497649682649598010824190041957389546752300800952393818300096673682067122464262733639189456144306725775179621164834411695054676870053845602418583785671585670821786912319695931112449109515355492735044756398498903554607919450332886460078911151903075056362743065153770908664250085271581745868289116701641749892376878197689702731802644855373492131597053508519876877467600257590293434880287188280492765393352727608655219859010747774277226716350332984653926618467450730941595316462471422437897047321358501070406386444820000180447225277070197292889878076784747181628061421984105819079010903942004110792285692683152881241177796290296540758843299750080063738934558740984726790115809933418892499233461273218192718213795244545756322155864372455861432937650827400173212586807841941919294523844458842382825249840055479746863180373769595172394837987810373908502416308714690255427134789491344427694650403851480045201306653486271020786356611076809649339674124257963104756125178310500889649144389199315467613443358577103487627507595927619934494145439115574447266539884211892853580772331681361661904909390874032242631787873216115254568279617741788219666878886323783021163476126663551013073142008712006033756572226367795818321624177853745908562008537476188615414312746834907708897905621884417183040492142682466248883736809305342092975540248570636566375143879270335543333591130457516981838791080608149876617443718232724951975969684885616413833869251249529365289773162140660478509586027081491735499695058984656257552752216629023056697740504118195202582074538740246432461366028871478893413773234989266420226157841219651425692015918852119211873761047964092849926930200358768283900680129222354170852930631693316325473690653487686512916441949909502064556027553750593972540936534371128971967706022544772216828096397283040327977934331746157332447327374427350909961266960401544994023649751167554639231520873229778270915080334192638607722534240970702644527699254726946704572100046276255235755810480245964663287915706861883796194025608319004843649274453173735571480202094052358956380070869553384097983019508881074123755880681341237044147262855446089208103096460656598047051517093414172787997305931301888596457867999266261973048238062013058169342669007594317095704663341479733835457540875800800517617934456683162864771138004721313912996793475626689208772690910063238859968070139544558644590606069274426257342371997356300772848372565884742528829735683601278366545161735330361056979362564701709719500586081942631966822014348657994290806788634957905355277537307771161908381402632134898672553662346922738120767515839736393778316467348347049096938279712059984456904128518215433232790853020046520664036570642966872500695122035141066141445626744758071980798534761046601483496840685739162997188178553892320739529793049774445948937749584054886710136599425715115180992008770099773457260060766860306944806548336423381511354264381041799457709415736011778110958022460564827519867115827083502503585250667733991414254924205160422050954326118089921502873393223847119276334690838041259417740094509600534562970886257351628019199403833314821373286125410721187270958352288969039828278676688847699557449063935696162280889708163954658743875752572655051299135403106155316379028973916409663721430320423596264028941934507832245583097976374210086530977393601213296946552908227997726960211331353965173423275465556875847831146327254128903894300375288996851665642306859818359233842376221938382331495830519544461710887660507817056591947070171554163178136616487821771309863436110108078102217287309786068079938691405484426222897536558791908506391678827604414659816691791281594643394100645588733198232043050020485282193234254620928580384797561495022122867489579742621562174880219891004735763945793458377065382921950553662467739296688978553799388403283000090166776477666553012883670709933226387693346273719406625765883457650916166316216789153346318658233838218090551620005321508262684269648416942876691146012225113737108036239331293086730055445770678062505193977239700985027583233473620324875670709327455727012266707326943316773707984266168835309601952662970202989766465297246383283448400572570895757303194585584949580727164776222604572153785134662637206651088948982328775033323161633614400712675134700293382744950270617398832134882301801414268651910567355202537183728933010758628085958310078629166925851333755214340155336464062733528751485541640943031465977129038672242447134157340073946697319361108188201879051002548949357322959994451585896616489308369950093582255780130558043809319787858193804902278429570539572142968957960573073458279171315906994975192796818704992995406805992353228551460177363827537689192725870336583549600340069536837266092934636904139761627877503335031518046265376274896265886024586655829049932784979882348494046550476420970104867568396805780767994851636460777780597657097766289686584625196984722590936762850569098702694512848152801475142658668222285160791499958987338413151140235101562577072675432530615382239834497807090032787441881696542972362814089991586844825685545808191876694733084721945989309082925663061178799453545263495722833859940139093917568182261635586760237762908133606696249728215628032419534467935361445765385844749736245211460516121279677867550854223998679891840377524488499448769932654221835526518722903804241566540917617791751045913266673506973474393908647872344083754198772803105309576989910291380745200605434716733114683553884418715297148808782252038222907761252406725082370191308657348620987870158340105473186509229748530629416514293200118069962944032648231082043291395226529607011020370817870019693531476891648451020558218042611599710739127910124048699364053873980566186521653681244594154903394494653413434527083941618188581142451442983084278497181788230321432444863465780971787078515607484285416227424364572479484820489961694867314674889943959399297912985663088399720808577063799300341189648902619624462802040534292100480457019801743712519323648482375191263927326693384368285763016342598898924616073003929253722361524804031988631454366897034033924716056248387653545516839294859359262914697085065786474424180998268958367010375552454512081449667882141952898786340438640784463829127998150262080900198284937878370348128649649108392327519591952954557002881847428036729720320296209690661240792174576547929098035080391479121068495492462344309341559046847656958292440789194824931568977945060804906683169172196259666377114523344509475435715146019152949139896757513706791665430543340266854181595898444595518015161104757339701640439286125046639034465327314155098574990698035368448344973253649390838313827997225276407323058058013083328318467631109459354941095640671426581701080205248396240002458936755827740837553255362057759214593951291770212061960986242654569704321381768734528206239290006987605207005004871447964919147261657384622908438425345292397833800330994259438212282544755056024357772110479374187059262348552092117663264888685558284205118325375141868056405662248050823730200698098171674740674102122953778171150251336875324274523794768446233691296104139415227591879220513095386116973295064546676741108143060373726181543240447830647427664523073572242849858404182849241765982097705947330604768358320501537711458056442329769521755614370524751829821749342925606362159836199245627031994829188180824431620309959828098937595194613129917301291330435189804463212494173415077027098251340619275311641728258864645368435068607309719576481953976459600400276139128437105117866379726020520384656508985793319721969262977273131858804458146417722244819387075406541180357165250644642194784679432791363175527274215864281617849539643088900561813395078935014051524735613626953611908224252578402380382462722205415877473646741769064457032272362934611998994344051675625352938734277369535935141821886174203315726368576761726493317570004988408738136467029913515935959340547797947074529875778751884931398671841931725190579562987739405641187461005444341248369311252681086969377799835542181496207003766576216597505470817180499780070827611213238691799098019506998037667996487805599352110474298855926492505552570743840670554086572930102134579621135554646475126738732427658788801911062795124643093223258177583081298468095417603860039627373932613265920746315413746113962783951271581420670980236611686038300748856785673514660506949252414765056633163712308725447226057749600508624520741293144278705102496542199199649997259673120470231329579630727756370303145942910228933950226099612598713493725457575240092700212237155658258600882519136932943013978826491684275001799227670497928825491908714096747516594163620430201239759612837823734460708547866612136663826240325287079023316623871317488011515103891688461265300115335033474935501406866630223490450543656448175337543874220132487533077331507418073000883426253589132513883999902016319075303256892226655921490086182368542189576852108756349709415309039090968018063180801748757524551328281917064548339148786354065194472438141124656572384926701232221237573639878616915773648695886190542991640343659147827975447978057025293741468266350725175309862120391504025246631134718398199456749634201290079515041574514564139666132602572096912958892202374764028989019405921267420789955929103702094874106531565431113828684815935617320423247566898132608289374726293989755806984523369466423013942384373378339059142535513770129040314829200522099681935120176269018537536147081093775120285571946526642702012881581692842722090433491555522441477393273068709793698691645818866793672846604707692091366002532594967041567304760122991795522076921787793944794037305453014444155102366015300837278847966131418402267073178082345079945176908595267991427055074759604449324846815763099841215504024989671125578372556476247784674041714204623519196363086049748517160691671418196149416473650595290009808640441072927960067126212599168772236579163856878849366010819779388306749272932345904293840415095876270366339755406427974235202238705485556799139957361302649268642679290109724412443818768277378083579869972890750662415288837102604624370686887136306761116645116554237282794943061305424055397225088752857138936739040895860903806208601217056748465546964581508798731955002947377126365903331999300886063871974850207838618378533197511733746250237487970163620196175770215185625150326808310705706633246261638605691733822764426935469836095012433184453183732166397927143799841838003668711975478383991611134821351384882860072609644424294982780042570225380953055966811997851468294785007732175470671179118305388242232334735682201370021538808463814474357519450777805619514730676786771705582575354498574549255437876700397024507851974373519790980454428887970713482509148965624347237448277416714573532057946223861626205345106497352008520989465227789075766521768451925371912516706451419539830184477121803501259687706742559992632214353275360038026351918240510530117186779289165155584208829162650624917616466430292014880131154474996917494639284147637545129369693537160090988652578152015821013820706989493298391535170621696099470133752410480548924236871646542124671285841547036995086077432861402969821483877550592988738366963776480013567604762124869546219782283432011396935421172932553289371544682722511406998423730156664140300475942543217054463927739416924510284968411660765371028498749953406448699046820369130179916077365032875501466340348772622110482779629135818171232920701497611354390345315518537881091799116450843508480126747710584514668928676247681785488998927456905648047180199835864191682182143707104585388401908835421576545734377667860961092230644762728820918848509661314123217399116907004195431197740962765594432145944246047869105571247251883715729220234205263850538245670436672120708137203906964389312058529261667218533186491701944297524819963561183434456698436894729686019266801799425239210803989936125109975761799950204991060679366345276899576830299375498771621758975915561016304065666853100946800222476147127304828337336150713193964143483684242095577106909507322249421775857777323993967025305005223844211911800604503724722195222654267385105374072510041815779570375360345621916255813027184311488346889119264631317456940027729906494132045731622047035671273005262022702911836338086844273007018901528673891148626870353243179449103896518259007807088348575302521891968925285293811430755453063757872320616199296868636002327020666854635399908000407958646556092473934190832076820527371041097282367991528722711595204747341811746734873266143086976182555827350674787110657611819285516161726682803156405046385466943134771682878651202170253776775886961289443033829554113267647323204981525937703236528708308318124912139621486304606330884872783655256221991859365144735908271140373350462354444022018152722005961112278558416402270267039035223105652104016335154831978461317522883852975010491495039632103287992180937314788568965724976113447988798069764634162172843863592956855756532349256046122410815696662764775933548390329904472252904691195838742967635873487695422521949483631758652559046037599952119183172706161930078632184014960512667966362409139278526597144371230346819362133358568552747995227187761473607535792114258051285946486607812455566507836025812435358735874838839448783062400452111001456740601853619136633209240390960481179848931455682262971120073705301831879739437567747698154244263942380520400435808278820209442049821868600836075125376370510632303771441228869105986065619835366912968648571953316480201990743400676794086407246058967113156364051116128550158983606770109873639171440836680353531832288153287020294623165842953679976371802456349553387677353526744559549670104114482249155075023738979886700126230529862663598852801254576344384206157510350229119862059015644469162510417646562564752543944122400853620250979790600723582647354379013106413526012806521716731259480367808735326008729902886292858012821334753877528035879062504455506559441069548744230867623530527070220555961464737685889026573011811389828448101857479121206236113900456299068714327326522960856454808872565679232667103383069100130962970485545066306685837163010187384747264835353968139570283138711132753503382252759543598549020921419027356610534975630975091295949057328983968470006022406933306407841531252531613370555846369129572141703675257838103429611863932712746167367021543040087103789845833198156347129751136653950707395737459550959761620201764319616584383874083138059733571267153502344238715220586931324263968915938466292486513255257344802045247745399093993630452683276641939886202721473933698814917820862724555838211560171874221904132947485349554332186635410154444642742367854143561724314171610617454179627741127054534974261980979890653982275701180238559477897674324170647830044503653191222632757850880369408624395509422061928251264617420357887501130602948862041041659030141132742139741374134217742500650954141214746455723825553844591327866175149644951882190277395511684099082625626246885597920573053796809969270003897463409991330867324660078669160927291125154486806963079140142641556502323698658878480813836812170884133681358712030630336569749729162836282957645008714203416303588988476791077603646559836704286219451809570881031014832719282605718952904057987535074320075300466590404152094181244725331459546775828635841081902787101968376416600868249000440844434172245186643466868631144022637988253777724003738873479964876286150523104915880387853931647927939395296156657363920430789276443367769589342887848338929157819857602255262071035135627366389886860944940133716982392485294999205462802862999078336575310317537324936259324100798236580522384302804218884655008121591336531789985223390060858807404246645704874473033954319795038105590151698387051635611650852874474934203908031568767792998100718008721198303466855013060223043510121358108097839710245046672155406561856693149173250989689118690808687604703552584689610391734799569324283458805134832291537527566915823975722516334457423747607016783717179118234071546402084763224375844607005003169134339626887755138682880245602555030166093179724734729025660188602872719071508390244047061214435000497109847510615942316035932858433819928744442557119411607536096489211516715356704496429812302607565779245828714159167946235972212301990671994801014298300631322626266441678585354938322019718236149454623215231348445216464622595775019674035685900504695848862322049996675404847099534228128610792399537295335406662605769970910223152070336595472615789508719586732668143873206589737547340236154524668175203060691492462667563072960975502576785370489207086965041720393979308156343264860421440045043136122716603045542158951072948081935019802093628509433343138866134435908891751314926778205012192107229352411690396595467200750125563848593916450818432179604850577441644826922204731895125867386288011902385117818694923321023681228448535344474859348647295861106003273766376232601448440519549841737642709957669787869560600709083643574640535884154242329846763189057575972862521150203417579085244746932338116916913779582604814869436417821352096287804224168352560887695110705173837794452600378629846301141206431325909332664837646876022844869653037544991927712233533631854301391823399847539035991265173883445254864890830890985820912554097325453826647157184760286233078948567830640066886449992635506948830145634491923584883334023348857657105633361282830574074312295199730816154334090309082434206016436892921159589873956410178433270560739388154039570475582751416800054151623920345902660589650219874240917227205890355746853777720511516236086803874465291707455573384772698069651951570649037493075905352183973832388574516788530039461109221237042770575354379099834636499996061374499710465752467351816850674039221275460872025375136120773846483310829279629673408525938602672603035642194230896252135075403801322168412819268148891509806355826148715629489675765869972207585061709916050619315039163882126159405075069351016633310827747996173447499070555656424686098000745424972185821657292381125980791101741102747272293100833399151596200865320871417214721706298159896704737329695847435735482068948409799048811537309142075867081241813497194655425323735760728573836298713485023997270775643547211826493871119171253783311594302744874211438667829448671793162814902057555940990159114476849194505684391880268415422165607395497976115570314053877655661976860945006034009914504335053633953283982928860574648251331010887671224352884169024039829856622152585742719023918405668891838014764668228537739085441236401624065807244343463509410363385680929249698695359832164279011557500124695724907148300119279943720532801542090550384290920741557250052829186506493639506412550702869231391286752409383161616340340928578910258301269325031492983258232142173355417721054894738195866353532687361829068211743966944099185061310559432657619890757798701580298937884791332024663788201779559869758923911454295474786842632773288144234771190984974658593217926002042052714320233260254125606811965834297699989815926933452030880915514893798463040901408594492536724940042346973412532352242352541781484419357560435671983789597084403963214384731103686088820241758091903627408514990220740020613563288092275418660461846093624729568852178483313831101362490630239159065730398231574435658912437713221079940477768681742807096469853146774562873816264971185438225548029525505595667066268480714463365881415242592105170147688340971251319695823172931411113142648804486533635548689120718696453307290416218180296413749112197393679788110724155193403417012515047204622220069480543486626054724002619713197063240277555610418200466894861512190169455912293204254187720878381066643251140150481473857778890451620690638176368048252538695071650758718742717438864899304823131965801514055847498453201582836041377033006796036101789062982900923956376433814056778894618219168762182967799429992297797495682510232642357303392755439839326179412544270461699087663009852642329538701331648267729480941901548970733472370149393646911300790179989944873358673853640778737153536720074740572097372619451342707272319862517286927552777416607930839159643593626388752561324729209220714901523562505213902860462671003276776457287109620956997204444254439403219176910878336995710200183210692907600721052186477166894449240498962853211481784790194887820560928180249244808158729133689730096204872187455953486585097405723318961781903696081584376698547330056260236268969633077408691095704902220050749353556681465471782557799541435875321909768748350218752759077506815402346130848702872383876787044148619605270464108009433800150983695383117771198344047052492809903918898060650758307314924833843121265353789182762316028780354299610315735175667889711597466431018026715929892076059505216110010496035061177254524421655370321564086441931574922684942759695489651256854980891820365895719292611908414831494819640213869012803206541668253433113308964528272401166345636158125808206672904201094522172810160907963295217904721171901401166324454516359789942168063375331891117210307041806122638503495827174394963293126095051753242805649199306662685324557485171932886250799830515978585660409206432208386506603027791289386155093650263412614161977154488339853073196358649305631498299155911101886132760698961053693281951194763792685542306047449426639257449780457752878422986579989918952237059725177567972614251225157924427189242073034908637784857600995682666286633635961135622108071143039118161802346059306893539404618939601463779466815277880909381603531865888858496856096328576717829084093454172313861485433274585324152122842246636126635909403935502011954887564161140761257563233934751577903313845048080073671658763352928282197435107029797504880582179607638901515948100767001411818986157179203392558929747370796816525886583057228772679780425606312156418953678700849970230326749631255693576332668214989341925983115294208058829616052968417579169317558923393596992407917410987487572474301453451522886126402790624470731854484386159745929445173293492632262083516504486282498970604764861529910152096191391323287164009211492455066730533593661355503979399254434541974489578052290460471255162051018734370339233084962642055565195054481693778584194287306652977551061088824869545364400728995908717522668254980464422961294526849048184595000253568994395662732738266948345313600879269546092708834390066210392829325203930288552497723326518275593304345090071049084803866421786792735113693975272625050849039568532020674865802837723334552693749529477513939903201421619269427815946881072454036610610958822186837651330593565571017272630693116568317294786832540320119095190250315129377908841905670089635578143064209293219552294283908221321956863245647956785494428524384528661173487445469375597437482596177302858869541011296343964214659343168300930464108941157084510187144898936841120025163356768506570565956890331326912072161388767594291507131964633632723393949754074592751169425900736954164376351974617303341442710082758265957114379757908340084712028929536479761188196995361256376359271267585953980648907393297959492427794841760516563063441984211340882564724009616338510277188530062515678611435703761858765293480590659702876039375886060009565410856160035260553148529102661744099449203716384913557366955298339991532802556920729351610790152318619713408128275913123140523802110552565465736111333559093490096048174043565629039805200993548892207407173657637409601077751810044211485852115632750914470549225113357062558650118098193486822132007999486019824186122384733833381997917248797540786267156716962696924001855421715455349394363950157221037331533704468497161595197369836917547631710068877549753778305282111195407719179612656089265350325449836683435709173890812955688540676884987864883235130278405519894498940502373555284518635524685878800524705418773752378234909239477333707781347150030852165460062249052853558956273117922629731694382435414355758880653859860761791122086469243848397713821229420693114262196757254659822905383396866186489353489786012647208720196357079565384566841185814689800333906979775750754881587065712927126764144244849060122395099089217004327976674906376100804184041939977545448558776023300243337024876711735646391975330628148945738207705965159436279042243412997069683730247198699839973601323806836294098345194360155665537125318262098791085341488973688775271844981833652249037084900132183008805713082188746815788255890479217217530866988841815750289934308548793126849484451064506536249647951758276429968555500496237041532548578202079897284685552292666121158867702858867194198295754975197993511838014852750065933254441185828171239074863328560591751820750568246920950116749855683312282405172962069127279945300169595221459437373726258873384821654661454965154264199023009855571884644469911018700962581711427458856534644861099598355567296042115974937416174262948734374786200886108335653657512011571170405638954214923297608259296460450789552748144031954337112330768398468887632709494206633417159954092540584405304669329172853231568877138840320675102682170139306967466968106319426249990958194184796781812373180403818137553780243057325662068864523956938561551681444118680665381393579285955887865885653559509221150748439603215972006607543451008386320001378990962693489500398808484433493496196158949198056389817880528676383878184579739197985845719163415716257706915695960451191489104265652378867939639260711743590091037359687476583121077522999109393559675717368446907495147533047504091987964751913449995694766236495643532785328286934243932480565658563586040103317031321742338853162046417942280949151619716647609865845020530962953103189621504810183550394530604469402946841457936657678482866480080113858752265494979131731438334682076643825558664296424854082082548271103063776543361822994929782624370943166951371317684784883498370111169066309010686783288516133770410155414648118416672754453902574362748840777725818428285653309087173093402672286012296560847651656386354918608584609508709950387405944361423154548004846357932148273075753760729972136569156971752846676662667563055510828102876244607772440973516255673191364478911316079506725885598339793799657460427522488206358543447144183691738785824142701451588995462635843372245310068864698841629879910916072876335163517196067802589780752390475930363297561383093377435593917456120172520177933228381206827066603170890236744548740435884578239256954006658607540285569961275754303903731381920023302878680685027912142198725565680133871645547058807512139314799270020812074141132638625736602266759888703328658091082254167875502969730059365190331721472446570787400765262139695902987591089792351769718409660643188659866855150970110738886794320140884417275524930775569845358477186950447610539472262151971854922686598398011918221990147961830540020137393192676605428408121869747233775079249900954173091888164314309443556172761442298315224373165966246881997734789742288536319442174305346872594975836124545556363227849259866659549149570066133269639418941190153923113101135467412793563976067762983443624955837384508427999417294610720882899435517110111420789754379518189960477153247879952543158757188820351229704738643765078833294250228027481310852186000164864165324731474019334575632178976327170363368097481683491686573085752576790878763295845308166212037860365396461116861202650516800281506913933016957737639160069732553886148599356122355229352552210580544663194316412859663162901808504023300083130829245266696985043721796586584738730860908303255015013417132691287213215801731975115080241027501128978655997004849869935694082765886223196935076259773640197245135683798375473956227332830306800653662469257007006179042808487395100217230577277306971203253369940274970802447009413744106653844448663271447593532557334416557160375882962255275571097453484456931526705245236578496785241052749944464527469094720092216076204113538355138901762929939750790103522011288739360125580465441164223112788333369619316971165915292614067611196515024448601361121591864225110465682076053869426312877743016426407298248578874967204246844564039287377055711209360745326917210588142897983265327841160944316468307086115000975722174982335765852846347431022451369673437765370474537204509452031311503741975815453140516747511875971194855515873054607377907643791651260313079010141075511974665808890571208147185687452315067071221307363001230170881938531501668663897028195837513936733917584467185059148770452206502204057771108521527658003634869778052592849963766109842370797495205548066992293064742557985754670381978993606531501869888557939149438126846029446662530871107879526812200463266090760110120252998727404156867248023913303337225436429000972964966621014019124172218399735053569089038101731947501260116860933027005738758527518557513979354061544399672389013814682533602937508732819134253856856813786036466420435610279656951856026503850854149597423461627836993365442253347824557752992851496868581418411182808774435406921587404365896368934813482240619106195657374267890935822965085868111800735624329827592688509912945163402086062906786807781256908984769374710482103852586013996769733203444301573425971542352099036879976085951391374114876221197312732453383213693726591818117125145480220070534394696902448958018174616260410459324548410322249001191101029446980905634530371965786215304907592002120283811875779407337189672841251995250149438546678549445817347041456010571742124643825083409399580799457027464798551713355623977873167096916151803108844903133805552392627724669028321028010784394369081991770034003095639596986824380478499125027895325343583709356875668033214155663715689109988002556159562802205240595402249283859558722987871462363276752441096499799982888792757744540959875866227514299001711023179791674747073738406722299570476032611215739924180435821803479524937390556518079184427170037498713484576090907129020446865921733413958315830481870270078514678772339638288509863701870574770281605345679642660718120289851144842649686630408646181519493108264309041144329221213756168872938700755667408572021965793012151682369406025620266568354765583307589145466624260616524686823581458239711201295260100476105749785435339004166352728381146142142600264166306334304356106553275271311686970346385639245053213778668004317829329674228227587222319574226286644725487473751020591735440499432198695005613360580719506368037891811306978949619209694854647694513549577487859414137820731879761946279272386706250787063097001581555256862818471468074798236824293302519558745759486607838690899593819280839481004444794752269403142000983730125365750530780186348763263375025316727656675479992308719420855491906415863144695261875925595704246508068814238929021854217354754560934666674211107849506282507986308494486549059621298919462907438375526930097557912645388544963066512691719271521093910044228635450330124852551660877619412056491776192467953391008150967850643228953114736905021576632297487315026754937192983259533644720997029120941652006134393908643066638230535586431042959106126352622353636650542954716038061060827807936619835810697658387846824929426940439019789227427219479521109997828784136172542758180239758357920400004819089023883956051725093197290739261531360735796844384082576200154715306771097918832246371736008488835983710983512873234933264036810750655965421224225330578195155410714692929130360665418766956106729188308972340217266070530614924233476054985195798794365554837595643318000769021132887045750922406446091341208916805518041530951971442366953773325869837541737644431074706667734052916233680259789588775729476166444027057320610836354942620893940600658045801675206126966348108754483087338341437183178490593428613510805319868912927410098931216678554287115158950727276003045087848206843006518574376366564978236654156239792473283683518339672895171998842486689467730569479050745362430019882543540926288678689372995455002529356878951826458395387821926054993202441354329069222393079561025508509397378783605709511207958770387377356175918350572060925409367937721554306257397293218129620484373191328699862803707878054760446473316337833961109846180239632203995225767016894873265989832547442302005687733314862617769554369204031494098674977195844095044530201276193612547796212682233792188252458383033578487634626918039545984181576220717206584454790686033700369078692494397420833585416136226786629645475799218892279422553504792771610289222831255824527348463288417400194532002333167311554100074336796566347439541302073869990105052161161283822837717301200130394831336652461181506018608148078941759657428199794432334183722220091498726233144280245604621272623589537524167871414731870537234187994681568295619529809152734332081173302096853654244456327594916342096168800194018811809873347021723405678257999454396890673447217468030403540429146192656407780486218515686535397323073539930417021995297177077620565464830825713959957296261354694511726582931990208584103866055208158894694808396684791393904493587970017130732632860011974186132920897305524935008375294950452313798867452794773590543744772641267250137609031250933221412402049141717934708990882007887873929596102143559894116890083668651434901322419135473782530542632069216517474896675311768663412301288403203937909345216383525406123325797547889150915024475981771544797689029657102990270637916525823470637079390507159224469528585045556462073526226004023218590188239382426706967630690634850498978165750358853603403700719099500858241586040433530148606533423738409591647441482909637296174715311151938452089843796431249515704783480843007794134191859233967152081446178867150240140150885223004973852260605957012809261160189341432383966757144640475563783050094040596460687657460630724056103062817199772960477512555854266593337964709435360075604946709146201277088051078582829311334100942705798387150204399610771679904093514430895350760141045912431632716886669174369335528063457600637449355045334507599225433618919918368672417415795992457891820530256447742527281572330609728486221070067051179060104879660910704102566000278060883865297011349671644978240290918654202415994680706961744879677849337470420639949848697769180901405958402744668468350569691936153980920799483161763455593166983624568927722740003704542062311534979490096041338261190759047265220192155181533916963534421241946053311759612498748357385011331556406934247825952315651585336687019795894729600587856541939953122082817922262154205912225891322514444548468706995042588318997470828957251208574242027036791622563325622049536904515993531998275638184119056382946784066074441425340011371352458296884093576367717955568483989461591488013092829359823267927211228519321029244689737811118726877832848625464571481756719971740270506982344702863371057567868881258703389707649839863789470748672457145751902289311911326776677479848603424335384379257442330706716261906377848360931970050150983696694591539101297440693375733208373131807897149127751856626459556872017712275401909758654671742715896346407334764030699694950391068877988231234373163755260627145668730024383823816345857488906429033877903285298434419099671874747089521865478497833737241490751135022457962608984866314964341048271414001184986337773142499648848671353812148664486587872574952470816786112638952802420837445618353915184908608554606350251670453974492906625305753687766156500861592743363621202555755693011072175248067274099138081366639626128050067239822660439588349402433371537246016022528273746153859404750153902622634439605895733871403785969768372952907425396887941508121990785113596048121175239207207443605512303767128916678545300414274102433457877714410758379708920747575933659361372437721902135224477636355596649182350210826943754252223289553315639091369377018593331268648044821870660117402223788878916626423868272573671068433817305561840509643793186339336217785451501150618633519190186164101152761635707683681682173069481739100084509734950611238646081956749307828804640467599878169707582522970565730835309443958121753733246503760135898659867514023463571859340167169578719021911130371853149999479451938543033730522902761109956905729149236639340320508165143886262552829517812429933469104101078282464927015696513740840297987998284222931434005653765090546227809319248702993792013136272821695896516370222353826614022999276332479726164622190406266429091175411422101817898670017748212688085696994956610853998744415992075741516884766030518480438607233556285248216328590464993055371000644180097753916636668807774665116007595110348945488777886152091253035155690941575645280337716896394382669461202467910472169299750477965012507898256527409137282469404596867583991009579752174238170867997899325298444737053049463595903241195230085567421038603207357561694579663895742064668858639767620259495081726456327168312437839369778261516495198416125914859659999533188611654630812038805731408185994725876532722046717872875572210530270606074622507916074869306592550337625801291393183494297598066318664464486471658744769249403363437847486703728719886871346246791551175029285383883087334146647941992409112207294810151357804762263443268900380346943987430823457446015505953365640929565456729809368815504564339673458670072362101640012146992975590184142008784145660557071606080415745164121052013950038339641039635600379124869154657605564003929144372534317117933281793565099504860038902196636814493439732180980578106946175008740397472118825233080083540487305889061160286621114443403739923760351889169873776881735340258470733768014909568635890349751128573497853054771351097288006849371474789878352909050739201377721731998699340715648925512966705390344936219428977587715621696315062318469466602955208629005911984620562747030896587718852090772403993512540121366362178687276825785020825827217351560404362020107823358984484844041501251754498577600590324789139785013498286596064370222105032605611616595214628563137553130569925536683637903244976143799407630378311796263672206907839530811167944811487943024414659561310220545477878187683038536605840795670343561256109044582096134863049064246571448191759612593790843891003638825806763266784237954875317269569112141600978057887686470029327461588841412815169559131192698992513691654920884242209886560060737418368045773708568273168903422267355895580207154512276492376185681929054218175921282177951212023423993071198537297532347181520053891478651328501504211004032872555343236356310231070380447979819189440327314895006477399894430521986990407798963905845449413415114329116358949211033932787717100022195259236596547375038230912125324109440104543338803905122490914960088789023542974853176029279223349005736542021355311469316536271951040153239754305971198089820187998755141618284135865444893274599372045993411842055703976039668839182503658189564674874487156807730464667206523899411394250024462099306202016013632852728020228026581115095803452159600471202772109635959504434020136178251667109563658077295425922592562717581275175219459637980952212920963184595203596783326665056657994736072627535663752162964836607041616233069299961299563500056130911495141718656196398506617672628679099086844741530094251705942619090035701194317486669891997421429853674334215780583146671893761265067421872290059417187487183721256776563189090647383878233212004135421054572723105736452279689908305275745304085784165504889974770913376671237237386372705190592249980321090783666950028918391785545083379044270170299629231264241546149885407613212165320928258738957698441454135190866011942871681281762618254242361902083551649508175192220803256959335659530971442784994116183931754712267480063313058977251489751505186620689009585597844673826151692689485993418312698495577515277273478082414134921630992484670383486799938591994240903267676711802262761653526312411780553011166424502268031948384657193165426929408867645911440142677404725305175843115259754516477664300223512726774967416401694756683725947863237347123547417913098485532099979653488625361522302355814130250057320251694776533123793691844115433370261815976635108235662633925495543296527016973814428423736092633826556066510873229275859452168033149749475215710607144144383282129537765283686978486193299440520486723528511058308165598629720333686370353591234922582991049151278623556289143948508687633628336065345031128207659543126100676104975049862198349409415028584072331895744980828115277500375657738517456762821873454577810555082303194437042815191242236623716382381046121858616842185514170599724346819268500004116172249110588722737261231145341927772093542097563476725301628569963326123119775983666708732653341850716705799178467930505298536993600154388971725982427928590790196318291911852728958828951160322888443740577764903976078900361037467828426733314043610487773163555086390359778445534698537130335272207190885399501769763958815759695740457933935461765369507452864689816790181101267333617123483021340240691820782077926360412042537882946256349237396147269114667950535911318756870229142923880605905867927504134465533913150643337460104359012472994397464042869917240468392797099203316813845380383967685243842722768615943266812755755012348163048077224794355221944069393474906899229307819309235848803106697500706184426079264881868769950821268759159026093613498245887027698056155371417793305659857675239853156578327609778562467740412630091586718117010532283839246452197074186006170817159146478812983026479562314768944367093209768076449802833725995252948529709601403019008823072092614280145734121118085646320479543942366017826484752314701999224303141463037149659617763858874069888241723732931198212169739756578462799312488520164729498935070074978180922342829045096274998442985356399105905087118420075296474489054889020194180609934344809608260435899190686131939552520815471176369427767832547234133582820996348087311963834029319976659626735910281833959882849581437116575259014693031751478552508427613013086975875679792039805989425447482559327192761797081198747706196296680215486898107460627639096347504015975730018543182501068766644766113592981032415570822031888422590611519052578493330422911979152241161335600120356547832376481255826568355777190793337389071293405578850861347488110605348868993579045865779637366885295230508584917260778342283447469942397130470250909395321292332426633513021356299256353644189063542941450682580717930805580729798943073476834141085715932252490755677548496006175900575690349454298124387233743976077587179371344590510517276157307605427893817893007972313321602078282882745955741258266405189085017193107497824620088937861433036115307965305497216803627908104265590248665079808152499185476633815891825191837760727762653625784090356813059943490513962179431183014454886538583218828309751950802274088058804914732861310074983848161912404303869267378214711681048244658084857436973879503359558940081920808240410156213843282610267103974630839040988882337162459997661408007099608652033043846345241584442054790562811972571739470299738207758250055828858977687332335352364215552687189934790539229172444344358140809702475049631487027899376539721265994423102349774329583624715413174140587078470140337957563574299202202103912595679847896312546548494346953307871753209357151484174140125303367585911944518848838354711333125889957037487906964174195240338422313285915875782997095141893001418719856163647877721576354245360721506334476582435126018226288975812588165304762249976851307131931458096046941976313562726312973326848053502199642388375625401646162290660571519421375236677429759005658320396298443378257870235124428266407710563972527478853357873944533895318618939837469597930946932001789962653796688668807436719803635456790725527940036329058966709164412182314961563628041271723537472205544781826002155129939572916728661362700936702492950120914693667032391333120824078500355702650763467436689887207269754964674440011994397538873233416494900812884541955775712310951903216791125815049373586571649740424038813186151633601903212813581417303299691215513236004284921196372534530155710097359913048879235488434379083700433377887093627878620820716191651480766086921496809494994411248783824072072644930222135530474305980066859135391263379822571068927384049344722840586305538275535651259599840182133710321368836829379222657664510642896977414248373029112083787913011885583198370711151125171397777631528899784213285989378655963350489750751853212425558364400964512408454685649433383392302016468904633994483604369417516959486344344168725308989018808604670525956987923795478960253225224933895966957769790299644091708290229358952028164089936111758510639113973423075160249330936694170408344704818500664834585590090260546349631512630433244018384407777290325582320022650371141777660501139851909136896300796043422732355017859505006218750573181627308150817154191995229052337919605045459347207182083803857180669380108360647309588603785147020118962820034859370477053002495506886688792987149111121145188984704469726021691004697428255658620242535343937028380563453948676556150524414108305246088088103391235595023315454515041641892719216424624520322607248968068808687638511074812800445304892213579462816431178667691216187203210253986171003619340931140945292597458545973987662524856222421384053692754093025602068960791532591770233801653538190901475773544269754815249369243886398816277932486214378895859652963040320258666987679740931920993420502916721100455260538837954263878133149525983753822128602133714521312544451451359265386167299928560323050542872956448114536051888468035273219992337727368449733579198017894875975923752306182465740342205203080145943268650603227198929995510157170525903505234501385913795800853685561739616852762025875323533371123725000050627709965543715132500738127735940957369889929720030769842895912711713769349226995174104994291125059785214909764665655467404775444901432952250052410423872604477591507990362909129387752484050684829031506444224841084534238129966733125377016077853442909089113920691060984784007387956212831552545683526922326373981853644156354672795154143554693978638517282959520829197347619471963653900325823145237137527193057237179623587499820732614600454884421254838483330583693283842689706676133913276834047928550821499563798575862556962604797050267114086818489571225069748132961685553255264677047895582054063472392190680430710732648095223662979709815533331321820402071773860465567494677229418924547058691691031715188944579733004277759238397191298690150884652293275931462960065526918458119523090457043802752348369776211675653062436571500805663205845174800643364629257521990670900992812477916981410969972521988204577751142746519795381802352300309518876641495342391296995852413488386114549063355783144357704959268817260949619176724243442084685779585067353519257347915209282603507507379642701416208014580023446711122077295660563125854043551663045106896038557865680661409466811319025916788350114891391938639076636010268478080946012062484824548989299323101575618546710817362155137181028317604609836912354527921688607771782567719653402286507537966443062178641153369322273463390146996183046960115048961934991500987893040859790411184469188241017949143684948639198035549937075026087678830051832994036951940781695810231448898099453640813562336816548180447625016611831446929026353475919613303719373660016375519649649310594469795433794971628831552937976589340030852494936572195935915518779504106037236221742283745777891518969042620131010035112332574858391845572688749703505392344508785464201495160386110845681245752862179157754627062227751305900272762894284615895759287158823709575328649876214443813026142704052335247018189643324761442020764638375248736378515061670437425459639759421185074679635614601442769700160283166775374177658201049994435145296043770777939760185251724131977096520397828829185020107616769447821850607142273636911335000325084016653657620298925066278106884835709650231227596502960087535916993103841499195832228626431379359413220047183881798177111185033864690250618100494215860778556034054578122802862310981661158140428677165223088355018423306955747005058952665056132846605235831917799533059203878309075371389075649029201908700305728233190885852739846046417573544553673613242115953712539334396073628069187142096451229434880157312550390926468245615548713558546122623660955959459900381619314886518403255489386517090919466562944169121583527555342556499573570501829970732429529667827437453368539610029036334427700129293375025949826432121192624793550583847038002807032752562160811885890377227320313131641316048048817605605675583790630586048616827223863892993392400332012399619924841282619786248091232128339679947250626409326490228792942455356214293731807884200256576513160032613965042071003459182312013576071917120278373000923731047611937651384431457579360005141084813547858523210981536491218945667599909606497134700476764507927671342406632289213509221753744562184263269566223807761424150051432952657161473488988393482799327175741033064633116601428056688302674404268450829977313904275375932057106461679171464404523136129312297963128389353224010423507845704110876290708300734579790351318917605800546157039484452977871076460372220530425002588339410133090115246208152444118765242320752204792570222495961244939301080254095141196083353946129416798922834111964975714033209706628871142393639431928524118183444844379696976413943892579122635131774248723903325240650711637417947786178207531365428596804197723707379391831179719320023207988864921233148635806289902174412723285162706534651849937957264649059740280393405532033923851452363284182747976156024476382550441097870345370495765644304948762634820543243067091710481094143040708592329136664059798618713263531536050535355140914641413863401598962391874678022121543217669621072043517410426807062579152045655751498393729048864384025860290320166425955138614141083369368873775538945000423612368493776699013989061765708506206153311667588821126310212454299197816438116462225976520528167778337387042493434604128912885304813512695975178244701715099949703755025784723412888649495698518705236042729335591634761307673936846957442402389247084744349881055307454724073068258549874853530361439589813655060165308119408151024670541183088263858558579285746120389391353594514054733287815950886527990236114444365904063959606022031856226022995146638632227469139982028547317578480599585836089581604269811358967580298552962910142927139584779968578391249988994617113755511863614296092985275850101210575252992895570645084749950524642018529883499264542009275081012549773758819592169074095859348632269474460555142840370109338649615719767560893397284001729367446784394966876560575526574055174396907673292120134555993646552479600215872197384284288183034018249745374262730265754219869032077344156281883418622052676415717293441319146719037630058942952101801154606862818268356271800055310443504088209205926521257308408676617847533757750528933821570999522527426166708744343491599571547123514143876781204873865018480941281073981877689521919919178844486770561334177409603060372927787409941919825932320084050989157642640612602938303937470075595974739677095893258724902459463551159796656029513260180194917519243388602244157938081116548626163493048375837909032451076978563089136400498875360469576148386282199066180687227922894423240353831455885258221360001796638319063636358632229616673787258413187135460122230096463483557539676600294038626575990125363990993025844661409220650226621151059449879301079470627115278672591238093819001154658589514225113414246232268043186161487399047684762500899074749780298533059455134429349131654831538904944642646966689798356113741172353449887694920856309570406206858382296556518000966692864438516399759828367372966712630970525713885903231402120817629964097243025293205476637948483455193775335719502393023482271830491952059651581030662242454144951716737854864693325831793869230116586293254545377086247492296594009185030173473432198696875945408549333509191395039605962922627966056917349550921175919795051095586203702977378358877219755077355151541606244700035700076879773921911786137388402312759635626570423745717223866838347473790949250088628158554874729897919640816888059316863938962264240015424125344583305232866512117871573819186789968466941356582070657354031766941889125873710073992496554576951412275735261273508376360489504393540490847375522413205426053402348649101108402824496760330357893990659967689322726253443855986431655545645583383362828507001408076240683950774688295253330125740960056977892499517206691135189589949046727692830434175184090216134434829009908809596399351989006255423609671134474064247519354877130298669617663609402444653173548296200050154091273566972326730487299482003382487008455511834108224172629029903972972161159813261325758797573744130650218359016497555097262393977834985822205611023124825241269372819439433723989135231884088441837426247642411389466977625697407541002757164821376514950338514517371920291547400267788589439870108679014562265008778025609094814960011588788793447911510196434498104963679683328215158395460924112080631563558811944321932227310702678894486641543938090795203908578425778844273003219117722115670613416771533604830349943697604000686484107028520572374778880270253582036975709728338392843872057284706191603819247184028887182480799193347754795081019304060997739832717909045644546405332407332527915568120082671705381479462709580840744104035818430439426150174290222564647428598384906124346030629002513713414528262266433613228070051072298466342226389650647556265345888454614336171213228526078750231303890569897449554817283689198697425592678527927041724432303477196215838875909830562504535595480575457209434965536938524642724026457787882018821547813335354023526751978571107777055176329918757407595670412175650416657792283941087531979465322663013291359093320116399406533173383846452840933931693042694965824498088882878666380118597397912701008987411338919797457034067457761902939744669631042584432828065516369565544787537023743014997268422164618519102628125696722279680609863348193524433083260974562110647794781205202814647362921313715045564457649837962644640209680267845969539711479874078570710022151137533813134440887906643578260660982167456252702486885572547053302844553245715708434044515964446842444469966585047012072787363788326735930412630199400896387096019674689389841148400500879275855282987512325601761727544192967524806718090362630234076914587314154348708361718227064600144201202872175170851707038844634703321136016846966062570869904058521851790146720029633671587607464829082798170227741143283494032689151418193024746628633040156587037967877607757765102588463366219570436000586327753972667764602583885532892209705963279923815572915703885964088742192263919400069866007195974194458243914846007596327346459924780876730024872528573078001278719119825036885609413331434589745898308815118377121511431319125746873103342715245538794641829619910440914818845980621987488256621142322593517584660725517855998093494188892058499270446163301269206832815093029040965841183416561289065652810399996008837232718321947238210765017564487787507223632268730276261172635716192555380057159270377528991144396026357148947124893587529063530488024862116656453773442104296329476254765749379526140620810367282811015059828508928487828569192222123391118516287833711044883962502301983755646543227001844492861715470126674911232099230049867559936712103668511052346826879886665653988346640391406048204479787242183678629691399111172233202682082544919750510305023991724658430822333126317113384632491488528199777558991813924637703271446822848469288822851333471092385106314420809283157762930708022690603089600641264098974899329487087302404806611704323842159190544312059880568524735464767883195326283585274002142228693231473430636992089294826165768110525271222975936504474902499869974880655081007416966659289992367812690584388778514616558005447746018818466336247756760891593595842846376300672345519371579024060254595773183677826247713364891577824012156850329459708874846398224047503723310047464368161974220875802938721729928781176325338728362409806599944359648873145010613418501752820313288094478164757665551031365508361117357234719099494229545614520477535591624239102506729332327845201689087769349901851457654795724793896351734816745739289535753665807628341290684372367725812045906771846852101328833231602252673311855888841814685018092466536870485102396251806115741852348614404244970794146658514935355483464783805050505790666652543806564446941585834870344413664066669855391828226539671953068654392650503693413315608700122625407066341849734244377948485468124065641881011516534774665121815778648778036914790723254855116841987310964763826683623560283558987503607247359493037750068742205484942627778231968242294000044796024181806469833501052655743116110671668850623011687578530892945705667851757942556830125536258948412356046061468786476855516685777374398523357973321388099533186945834783170250064381877618942889347964973826624093390642265387682897599470345337205385534462195681953153082125833323035671743483862528228741493987301905199183737370236811979191040517052313928502038534163219426240579196453410317537229211705372042782792712555113049276632928348338918425167476971177893718232616359939236145038413494369062577919793178032681233795674297130351216916340296060240631821069362836440011549651688195577767361199326095891334235968436462947569787905101554447440347484543327996140948076846934673758318351992525294532352450487954321414675269230195507703144743628677907959752999773784701677739012760728689210001431003027228062913563810024423777258966779373688062502043503470939717983633886941911928939473122741112582308780360655317869005229782357413682491654053021876301086403573970781496896701794630210311205645895873929584248021836406979021186702073596045252654523381466946350710288415936170819965593810404965119119444398429109410724674077450329082213649082841427784409810515643158357905470357608207805474811552819562571340237143149531881973697051288513133099533443020260399220103225994093902818327865894814180001261832766396470409519366527495208059628052824731179422496148649562180823481526822743362667044433498705824883840086188105049761460959955244264129083767175398632921789940580486954649618960085456069262914616731252920132443737612285229307214534128785952674468475115875918047143325191842989981344451108655561564974035190678415418240222582787086025865341343451834172145829749421161752319423063287918970932074021707758631073997527881956035887943729947995271381830929787681284951500333601215292548808096314697731248976315659877031539425110232014479514665254382931510852005010994775354903948688037460125274010382721510261297342118432278400955341905234413543380787014428395359467647231801719977704053373643133802228182324318855768154870305351154171872580690775772918194398533991786006892080134476721714620552596305980948667465890136718039199672220739007213048025482711096919422312185276865298868495662712258833738007312397748814605203356858699332303125497515539181485657233037199501919486382761787438171742230370855357587435747612626607208733671773907861342017294334936362909889301647972782535106884261337812161210248445907118486426148651288002490191433814869231909786747047331921622089376523598802457623479110424596973202581730454592218412143524297647668507278797243041580180519055436588773370128526851472020054255362164966481265127776020011153727798045507944585677570507856107759940080055517364073933365262551142353450121120332267260248193801133961544586913983468418696232124708867901501962359541522060668224257251772689005436414576403658647747142269940828756695009649479823384516236232192811742952704505054125723517840013432554297825307418431813664550593634169715474079922761743485100739903585925178528714050155682277964861828483314393424434710243389346630322983716676863120018971100121630179785005381730542933397460910622371264149028578038325883580661952541783006744165648908422236829325881515972112131721375880625947198548857328169774337592282612091223320524467389829510666748241482390516855878631000570264621342860791212914846989653684441336449658112133297147024204051169746024314934574220545572594631516873608404982704268494612795501323044243095813957951837666011300650938367754470076133353553785370162663141636176821963011746161664044238232236956574183562900370774665180371365420235542811212575981405497187297941902171168401165118879966452540351869496055575107630624188920237646033103969619141709292524133553732395834858620717942802745151549772234108602510346323486178401835322516681632943105526111869503637575334916098488912057889490221915889981530374487202764545392668241262993432851818229864710374594261698777535643467831191317441605625734374939170863862175345032097539491689382321595689711046073955036035350511929753351412925915602337642453257610672589777950976489369070482641776436542733174136785583195515183119575244145132177592643836459242443996352998749040325008393452287489524443342119070148359005302586711284965597938408130400736151329447763632796076311788110283386674631486850442666899236174936499283441500706536554477356548461379691379742004275875088080514469651904134806240966383059622562713451375539951083779497739795154755323028927006537412253239064705086940888304839824249734792300880396125680081500613230942256950732099710312588787291901460409657622418333427435089159079949559936069496666236567976366074153390202874945936096204614223368291122377055543981255030930368556148453185544374994457306179561358495207915524406351711327491477080876249908708649619036150695080848933719078910752287513188611031381208464427815295197161815521679742762277763005512230734689524609394140609118677892631738954875310383535416105969005350108507779778370682108272958604472833368557148640059840257149321194355068292295283089056568867543128323966026409720996591186745918543755723761020864422372587780705528874533461421443898929677042185535441558464099678801282045366169602797712977116844610980887522937017675015948109999546556796165129522489329201211225107367203008189632057351373363339893842355701552628146105397341816196776695780292201925940487373689669636997361463381390970791861692050178544335410447085459839348980555978200622497088237343413285594665711408744623759214610860394821416675759088465290961038255905039779919821824532384313391545319736554459260735867367313339368269819003440371955298537817451376068454633390705596061094675156476993163816830933153322634364379755456082753445448481209961990657805523716279885230621222906252649712635596091230838167204161713394852777010603496230792215055323598667607929585846286564894706351087097818210034111639932670605737155698593301278223203258358601963937694957089949473397851192774691643696123896939200340787488260710722399041696167888298627164789427376810067068648622170851643676765500239184945576455777774102200638400767305115942792591098340583604849684231122216132227681406876906838204416767372870261385957281884169144859480693177286973414630701940574400432945359299040564397934506001354522704537615169906939757199498673536404665359129535468066829959135675419591184601624230765490521937190043875518962354428297870997620493779376998413753502661514942935686262214793664542481912561586292151223639745275440921245524230031087453519745217437943344689914243218781300767545579493890354783637256525622870950634722884059442829551515809646143226215909362609526792177205047835557730486629727269786648823726443994489122544357015866681088724808650738969030992531749063930464753996143785838362453411146825338337312125275719223053551506028155365948802695478547718054527824330815669796806221437336771118579598509409181578447277289259595322740122939990090695305123707683266941035110686653020853624296334570044452537341273339813008596328651690518035726154514618225077249694510596734246165350508012015778300607119847799961928712868689149254300880405257798222944261376420089098834016418833249744072489223912668874023182218468114564905203665480784342607712567546297087741656512563362598101307868177600983552288241994015921967516428262081911942228250445890257669234276367261187087376053850402098452669931554350959207029248057834545596266563528762189876203250125943045563838094515116376872181742709616801268270055539761569340398144208548778589843286060708690084425843029510844947514117780618908229841099528761499012061448013233853677179247646179841162227501718549052329757357684461453094246208749214845045695041981631788761855962389697149206457121716368025807124611009420486425285789860900811017915605261647128651963882122875215070451475956524508235339365507627585316020383053298220430872855467711883227526199294685830037477940914592987147473811776092683447933629414709003949272914139157109603576031633082148592486988406068087891041170528758460315167235673540154388423317885973110181926712997570211263738979838712755058145886202614182175247117032400473239737052507816405959199273962378654488620126541813424892265439143390342595087383586475704227961528210146250933593117713847623784511806699910336597414726171357347669194821881179713034130762622203134353602153821893735930786520019426761541255022916284266025887166224486441815905405010433751814740779985284202448804391580210084902121362843000272488330851637834152497585751595605798105047238162607617066307418619092926378754921341061827361514064050971595239845625087583226819178292678539363521052575811387278947051875566938589951712297138828776249326126424476032684746196014124571889252473212865443823434758088516341265602433530516112218730393643806136453438776659817718326475324205695342393752891236974746023748338206870489641923058708156194859027255415545026070079725799564870866511439394848749290670543347342517374474643168886018903316227876196793361909033030601267974847830604876057945005908681967093616650834555477554582205662791467685253871892532229048860533999804991408118661489515241956195944597922553003980429923492930710731775941250455082809245340008934366552023787189516580804362176307436938864799565190340207694697424328706301362983827141815312738045592140967588822344187821260604358992481567058921743281199160084042133562342636330404081302928326252938661706867019068648438592777301617359130363443603918017797473765512425037564673199050198705687337136751782352969845989071396899505604798085029064393894711925487640151704420422848476947677313380487985763102755532462435357742386057451135488009288444121205563160149533742552092247559339853301568830231877392858371431594722312448613201683173706435085455001428756430713013799971422343649920795474064175476589583076117614284095944073414854186291619060361726957494815582068081092511816649132832288519000465171879999762545727238943510136802181242151994142113517777587648026463088676994566834992080120183340584932282870141149722912530302508429419401585266085341558276846148228290308527301534928775784828592460646391899188316047423927956847846512596134458426245045521406709766063487418097272669953607074758013262239081945114494120127462047426174374903130771499679281560819854822989222361582209246074988174048527207567327456363600840098373434207812116167202065375439109843894388373075157930755267847930894629756862517116106727964920428707133253986937768927382742176671399328080353139976592772110273828173114981016873168015455501789472613057380215175871836843809159505547309702579700395211146849734019955320391151205547256121640610393703472455849341749271061101269989547998257287011534082421099460445061672003984299784778598261258079326705318162802954058292411316282482117266886925958954794141089312152214868519828214150603408198360064726070029836098839474942481847816873400856618934521098576624343392155899195985872474940712451898822296268421699652142765686352925251057217042735873411285673414577318214729533067751996991168083076331008515121724191908662931694494407467221767187840588150171035294538132709235575856189010020675815003757096157575397735076851726975876635069137899601659496699609456096485012622210745054662602823082514530102128054930509908925311221703006130835163192035890692366538119981687309483890200363750235257096690479720989375713262707014346904449454545271125757018661993813157299586417385872183392690084806886256061621744235967295826805095238575765912045605499430290249340018130278555893568911042442811833666161754603241555808016442980821608445720178258002313905597616775973867737125641508745525120571735894753929036556325933780069062413169861542677009846115175396900451545995669118755926057545804648110558140067860616806780713122607475315004188479467175893222643276278282076922230452885298531988409943966165696359226506911406192464776502454243584413994686516126227977772105976837814447917705488351947395600657661491171365821710228953444235652397184841526696072971630891181491754970276860373628232695033702467245591819322244353186038519180394123921163879894996908295582558413930939890073954719215282969880512917160017052623373208137419887418994109191200269042263845304787629611617151559982869419359993308525721379983244824525116041277903267825451740034085641075213897742226804701044249387709318713744172628257502801909559534929822095164221139758722155106002564126259346887536071299185917271949508176399024283316554143724629267413918080563308811637322300102564714865840556845996676224444393409176759649594029851603459471852264257134797212076143070388282392253377151269119387542248696240610863766968987384152818030075836435413919229933321599784889368861403275759305505536471142257824354097871234333369951314272881313388204676857874784443282803602887524675144496996371436896660302458888061187798757667020259491442643320097372262884004650946356088014360363094826481071792578795984547668695466020552577812129807383020110198718032228643579561261937839511314886580376786833971048321287110467647116063922633554814167111109772853896681106202785947875666959495284532260670122903915661553767636232973817159379105267141702979894339410671977442635595176306856635627370837429193605658204017739529242128808464914459896043540369080335433462621393905130194942109711601342261992482689363338668024715637313870369965446387339472974146162080740608568534450736058559786771664574864000487194217230158502484574939683582330480699793051286439055008709855914089262760184697873205429222843309351246327840360981395880111263294308072707533183799464134394958776672931670233362350789663807891324281583022231514324882372784338720809123660161879485660588579752894432691374510221904042276015953169284672458542872619362209366593729457530630728295158013826889866086159977227410019624464247418522059892913942329597821786661041924916038211880201935792938320940687544054253650577175649578692888460261217431186465037262138546614098480791785333465174955358357612556385719505798870387874109499267456086149886667998178957470398578169908986220958372048268461105290241663659160062232121588202995208313502011301760347695475754436051665978706639498230910540734065254471943148390054127869547949851518709136606404139165685630747694537227483824018110182316945271725916943565680543015503029263656616883972521756521697535558254759420581640756777142586898596199878423220862289209100092025304541027828554911030436568947534016121793945207136649799758841587834447697231947788788484306635648698040975894375123371512302568173387627277052774814282440999694990354292187680699021885100297822292829957989766456955004150045029541327052500870861722609721125458632629783422007680066650781150565692411278649005893614141618856585568355067232179021696238611365034632156616938405981895900717225492455202817807708026953451269834033486348221948033503521647461156303290949419705627325955280502625808600375761320558134687598537514226283494008279685035151535694437979660796452374731667296628784625826165602504725479649143836794075808142483865436845442497021684170094362553208719227849297618661671060708815578492633360196062796272873268100018324316040086214883319784571139913163698338960662262635234121271787138571571740631532886100870218272909084680168556252035893908176067850727593490693147067515553793007213760239266945236912292097516287591948019224551245126935100384155596732538336124298986181634354762292753223369576208832165017231043704734335805166762529457952195595475201901685646652431929718705012716499498266805385762420031372260077247346798860612001089663492822534458166027223332014802306737201968306990423581852420911873885194637588931223096515189756023151696233801848958291425574222493738957957580722896832231869474245366395368836268457600573720091925182175918926955647630667301744018043359124202867759731518768509933214296103624476260364760223260741747619011860179149708667197979469396757453895101320740152790781212061950741020456038163939158886005488551253468099794015272657007084505080947919186708829658695480525397514239071924786470741974386065653530899890226127574747384857900954740736759782103675253027643433469088967722811519482141477705177295926290630410148996796802468752740193968208219493441040242101356930532715792636077197184760928863660709421114728334086412266089433558143123316152390923818212454897852976959107824007965632583911514522842577684409021886362816135793186490724443474830388469146057668378419932635390472816510538031256239325943074878154475022179295242405391046142573130931685447235241069987796051001748870779074801118823825044507289069716218074885088848309151617159143296229626511462821426246290602986391972670615214013428884570428485764726260216185125488270594587948494593411126928986118286183193266539645057914787614456130316714169072927855276366612209770838494249791540090343217120928078198034116700071739711779142042762723538640342588619898722062519315989185843618638192479475126105703996609584326824602022699123571387112457803457455859176668785933473927266000750894517736403498420171740513705600036017620476637067016818582095550164736244336804755156762308200042567045789574945116199654919289312172639708847927352334158770165428560052994447922867632667908657614420330742988400961143276258353645197000550725923628096731658872362077509980119608821825500406189302688799299936693982730395874941560463453120835106935513211188477291557910417434091847111105581345582689666419139350669896390767284587853109141685468030030673362328330444037217194950415558888081968848304272874000638978436748073566311950214613702954240498434673313114872854861599814128391342516573627089148721437027984204386229604545131738654311915590276901363265086154042961381469138448707165683713185530251439827276165262809366888207745031545053004305889580652476034768653970605543165640690680058163139713122390395192558550536031325681973013114946067385887919389742233015551740165167811615486308892111281250423560361828610829609572735218032315602615744855189701177736233708464737228794286723416616366613933301973834995284053591292823624911774865147530450497326958618193620582582848899193436723605696881592279905638879558245235915610801095456347025903416385875584698621850460545331022254325572976811671821276572409598246943872088368887638325855794512335403352588937929909326643417921371078396171956915144212501057833097655701473528051450740157491429165398558868265193282328955011590363437085389878347211206316460096525662212235101899638966685150513544757522007098331803190048751942981405066073086894311257251541468507879001067188676672112194149615009639993269706641990971375361187931771296899764418853655206306190425795006342119324064402761523161828149041658805513018852130854734929456389550139190614528898063930656819098657279064860811223853466491770178571150359502068166546268559696827517681864018152885181453055916263549336909683231701333852365819784746437551108759530134028636161124667496013307942516765260804512724025169212012554029795086371603042322776932214862270961274244229715638640713193847758137333352934853635813114293852674551663800840841020408499659900171637206385886010878969962244671305883806415531236866919498240737655316052626190288614121611384909172539121191636346641061590795607713080378796811913113428331969469746282349327501463845777079744696905724400601021346762718992315588814433479548746612191439437213536156787813992106316022767901014389113877025904743101340840197611169902902201217470592087488331286269617929386921737108374456661681727837687134446522154794664001408214302871854278672547118837056769240378948153107077587009618106648569852402454191721519107041006158512744498797934754277566906106698649706630343698411620148608900234591081836124539892879729791139149381259531579920951482198794468895229678820829258704936359681540705223603325404975256361550190839365439855553146657074157575911387704488604075958278717716965635632291035421215828972145603804474092074809464420161443996389825589265980497803274563882126466251367820693092297656826155295726862406537415167038392301410207125821328424911157702303941713062837162959702933800722010365218526981349709823969855404975082151410292170355092358690226591975074844687318490255620012636010010157991761272714100144973867980862303599667014539283849225590738661574175544398354373573912423408313634142612577561380444419449970465843075992606432147988201464403907124275993475465781342699891237496233184012007826209311112529419736000403685239703194062570505598493099741647224954000910214013677327598273773468678077187619678062785593690844391289706311257976322976082235075920946061224875014515655727982411175439543776429151307619110252518541683794497704482825977866159374741322175921340738191897043063345520231715479925159479281340828977621897303386510000741251645876103507614946702974855433217292992204370746875893939996913492038858987542712659194772684634183731997169088248223292496616826005905876283584650539633867962997727056904139774238924051920686157812805809470950998709349130753709728957303644774072233949655889679649945900193529530976730482033344342549434114046494881467343895412318838707210841228551749357355409712222506414704506206040713377055619968973460429058038602286166102957480944385034581899846435761632932459875720181186179321290950056956455329072272353633336351608850592309426688389010521437111284171822883739530608446830892940787072240747480033818192846589078280649860854180698563065011567031670984433243082914550160762998583740487023980341888536020508591647809473611535341264145641099272873160499906681362615334816599624350501281902406123052150958791611336178198892578473090920212238292944445200585661329300697630659819424600582843327865781655417691822886519312943772456523582657796293822129354114647092978931033801461975732640402274828302557984347219800866393943982604821071671946904805149201360355613047285192989913723274943087807591632138163479314956269998015744576558852993161342839355317400421976931836808516436593611026502750109927317739031183852301414310677107104906668944336677156481311341898351319364047408984144507602888555214090890591291590762478576942163318520927932622172787549452161090047795858357988540382777598251214056665033379853935171868442108859396844084843444997502559196675082044831866712536805131548538404709023244108510672071136370485156605070404390860157805074729574739091828433193916652863563167704569518450910668809431582195406081120873447837553514681356166835752408274661270017805479385026602904889199526179300051313895190871202195179065580165797131044620137617747657439529474582173130465565355658097393274428589742595553261041775704373664195628790612398599799297689051788763573226072548464161357776278915688135445340942978079272274707305372752513246058456999500062257868948636533161398076736410725542750286440310798480984798970818878179470298433154709798454008618133903123323915526465203533167427805772603000003506552888314400412491181801595017246445156944222107998701723664659778233984299534250299250352405689672496660954026666321296334158743215375221348391870884402022084533028565080906335462362886978019418374426821200217504810311328260746195571054305653696190213298466333192209266780653918286792260399113796488689554320427965142263612677736437855832711530454982296103386067135773815215778440671176346966837812500073383662196025112033894588231204186320342540045493994231095303106635965579861329820541887004555318880170309538216071130626631560475881207967228740804762001655525362932087668452093091649505734375161395005315105217779863922076754752182803351134438682656272137207796053642096181224551816142656801295394353802222323041900723450185671914310577510393673448620292818183937392753115539518927594272042344651095091144692478991675727305834735189033766383778779171432168718374777238092489105013309569873636551949856686881705312099618046458047051929978372934249586735690610573018937851152303013136731266865103201109126488549933009163299209439126923559496547623807585603270839017812292419190083071778248723893048406879630278485123674785484538899729157439553621206494865616787422280325287727298236751541307601691888201589074431321351969461335117369949257676973592779854183466474816432859232617846820322144866989937070562292269580938625973136173244120624706269031641279096695336748096169052728217821157392919364914147543944833929348098560468769742457434383755195261234986275481669808382132455888702991002137610540710780943941904897921556378992720864180587771974563932450516045625635079502628263480324998460767334606848265956509814824106358570155127163459947260959472592515985983667266557760332798806838943125952077666702658923731790134990399769457686879660648652577947422900895327643942903964892907489697871198773540442432216198343683273426138511582481054479258267209077581139682936306716397609772750449178730459558754672115509643715956910453484230866297319006030613674154948128590427995991844385946631668465989509731724033340335273169086328768169043236371505498788403820107844956571830017251766132108942915686110512523940438653210322748944636909190031913131989793748598375029673140075926554380791532545298342037505744278423707103794469719234662507232142407689973148166172012792732587745612469399841184039427806909700568892134175402831659495033486335388850792947131674179554579427310245555693006722996476617830070012464169536212235206739960546739385652387444649531787553675001430971315859558834802379261492461543181190801915295260278299955905715835281589045211618686708360842535536676787409074993854202553093707606832767221018706524605287789859063564670061562337654345920610704756667457641132695867425170088056531365153588190309603760880244543796932642739993841204505209229173361355985095262170601878820933841686692405998712380407380543875406036820893540754761606441042878420673825847298652315891416909583606201905754191685406520594839961326768343416003954827800949037668426784313372564181685714364888601475603506878564681415845711416718192519736136010416649325039465719397827260160727143322505967506291289216828209626717358454561971346601392774353441746485139147024400645255488317640594455350212431732790689788977169355992807204717700067677080463939950801947351125081041725665493607843851270530129877693200167095855936819010356436265537191946974235562809863109126237700247316261620885206863579240366455450484757639842111540515542626909355795194887643999850007402874998509302882370484351778878524071234475095770011030630734069715905084484469885861125134810453521906185789865971506950792759615250899593175581546000476929498640534082571156835084296511949523542122218645610269928106770165099739229704450170905438977370003271965634315413294939910719123529870782726011866023286857020300195355212046895330530524980164080703664378362603979040544519811990606488631047028645391324807190408244213027149013492408854535865762865142100405988906423004526993100899208877714228964057381225011346796057278897546921533042318496198134306068399798773737922142369362667597439088665597253963100596782265890896907074726386614175478374793532124853032704927631344821886340157467696408859442831949041074378062002240799329900584634496005616604058067494590413130563378669015082348112778637906570230597037856935599251652062708229196271318458085929359563709345213585390418018507533219566605042781893864192454232669303678749803003309498740066272129811374722876569167215279925267839921641529107877347959314556110096194384811920320197092740073311948716066718650602892803471033677209502915026932447574258586273642760963364149623709083281380007196593828350722662937068539098672836924154377093449119293175386415922997651786831046689455646011406697216423313654625363371373448824753824834962909119872099372499369006296564812319065266497609941202556098776158726425461438565549621388054061033385801443408684869856181537599797833822933684673781940214643779369048167977155778726968624599850577032370789770460878411773791310941348022333987301045870443326003802288648779162290313230478703634203227985366820567686487650078740481404952073280890317131392260747708325699667709584290945730318417936766125336071300712292498479994934442768840517871821047004843832344331857898028163626951553291585099816276840101892941274671250428917927792726400290511857339056286057824443680197145461875532006012901989420593870452139332808669869665667442932449163203224299097127156310452472379985729191696389631230160758506784637178420713044263306396279590163653000532361621585514522352088962221139821236643767675506169967457832950242573072344118889549746335274317794628427420752578825471030517247596692156224033619788255783771663022167544498032634515490067551968803685112213244812692508225839229158132351327715470162949996689218407448426629517132961455246611864182275708561568891033393588132353264849410079171502314257854730957555461311206794046741996377966265882366798594751880067873150383150822795441809379725089166068085316099800934474650856244158445857072185269270143138522709681792436239903430154696030510976765527541767713251555011183218395191083119820765746594779970933105812967746388378317833221711593424066543799982734101376606741692762822252247669034294059025276294326164640350369254671979668447828814582808465944023928060680602095858674345007418624210080084720202429653073772744427902213066105215438616068502857365998380333550746282911242670301269582582948655588617932389015896957174581568832902368071972705510139522307299123162653529206148032862569276245095801507780307170217435610170195597517763398843052623682296565679594855588371641053878435771199645913511616850967242064967470861458957982499318991312170975116001621265093189291933861614234903185128632959604304338059270800110518051985909550596706836682716913076347794292519183225301501140432965956405351605631022913606347102023794210501652701919103380809108879124643726311657101588007141374532885242930080954806880433277549316096419839051861001949905093539933963041856975073787241544996079070136699903611799078571317479577328130910313515551360963175992890479511112536909022540300860508015818502941270335761375682651364154599977042617711753866909424766112047288383253251984781346941012867460624176681436629913555930781228428018642099299170470322820105667753046706466079545905105470573457883482335976953109423119774622747665535941898729389416584368086781763833275159466428468954985319465953255174093519318295271443575645078255859098409910293349812902580231998643225069767046067569633370213037929834822136361543556289091219650103868140383856037915667539926352676692902192049084464189304162586997647232861356032360680631884681834988683144667982216477903555455515543963744613283316784055854716136089795541400889130268552033590494820163254267235563155730862500335342427491857962319242157428328768953533269104866937147828456177276111539612549375520169115086251502176902203087645645534471708893289925143977238328898792875477900194438248031185719083952643112408281517638447326423500507902169251091241047146893579256281193971325264238080687651514098968298768245214599539264112518351150750968111983587257420858797384656876617670588479837061170685056803923664612499798840435421432956902922535667874077740834420193765587716508126384917482593718074569763701237620011716601210492383389152133178220462304750038934041358691355683719682406657471002770720348809415163745975568767922674104174363521458025187827169643113220833773865378274861546220565515359378471882698045122659554933004533652656882325131595793597008158796723644287751858348594152511547022353541589408877456212719622600914840455484410644699826422090733455144834858870635978106747698383771174856396417333072253275831077469143094288760734426516482858702872678479492581922360243274137270919401604545828627622742208607257423333022402510225774254027872112367534539157559726613439048345179209559409052854124037613892478404269450158286184504811532044793291785089614928661746933126284978685540622171992291907813122078591808664102104499174231679420176430478686736820373040205381610704612333601103324864609250905761035423778856696219159558593824142069516514269965447668847961979411551473765188086089448335759473990057373106568365637283560176243444407500903651391839704231340565274634136629607176711402011617531601009566407589615236421177861320445202316134945527996885813883924570595832501432062124286729641978036638760729932906742737043673236524208417804365986145243753630128957036756593044664556629458840630660947036380796478282278163172764301978648454061082326017031509436507886144200380283462410591529314081579733202716576981790881106105125833286229079764967926985471875368513684615966597731383833614389542310138626484054487771997303069855171158778280471661462855284647638056923842995047398416280198042262638473391378486774145101249696285723156125719846819470056351351614830238580135972726747893689418499056179882211809788886738928031340749574120483713991257920715226882892057385193363152905967783285565672242898960754825516262341403199168649992560515350337761462316987609198536162182665538024648433189175736063891060009249531171234428091131419086071469278197184616697126042267780729269008184661976189993637705292099914829580055866987431080057159813716627232218771657250353237864166551240512176140044938775882410451283692094442589386039939310532997398872346078397199678093156346678985616110372574541296394071959915240845819815312582615064918919673905908729393589692950068995639597396709946173411286738281114156370547061024322537047947176850928146451385610796853930469692688767915878488567363351744657664969399842658869128548716667091307077717366463939506613145811619336327999985201271775172468044381621848453261521074001828853321579435143397439704503278476395189159312053221126540923586209362700594758587930144634533513535752139956387336732819083899169005058712731455253194746261323981948502713593869076782016255395542028039640176193287380258395796957967185160801638300795445808461571379438226158983198824612024714852742280688755416076737121986625009632496498511170166804791756472907986192435551551784321016029677899196708097901834922768820878601763182971736008750550581704934268467404229247162655652122639887010614391209359251892062386400765921496883592458855746135513797956182763409644644619940858034533184434240145928977934742520784364319312208457248229346549946831131426218622790187203280995801263371620203793542978473435749528651382709529349519473722040776137056283774214837797089212861195838880153897279616972461051711808737855762162098169899878153704704048417759254316426604964754426548506183044648533425040866135872135922705808788181610344102943336207906076797201732316951545058257243364238333051965584984516625285254519270862622734420256572997164917087387610234523846925039268389150323958955340522699276227452266065331868580211466989186440814099088199651997314783888659189422342951355329545365894916913040732313280772563444416178690799475804759610003420402538685487033894468562556264236264708824355537458473886321882375847715049878517113278766801802786265303088086359058131107742798106715626413350550420929687705295469323071744669242723583845005505069576541622999835817172399545088422091042766420163202942414163625219791851870713319520643241725431494713876971413223085459611847706022765760033937100500489750845270975367233840910674800010564687363852042776313036693572732048999171222679450815551836704556563881954731125276987261171458356130122989282493955125265309495572269414112790763369217250986117333288040433155726839740356108625050256412706881007469451605336499820173906735277854333624260750034897790559549466956493751394162033377909676139551361700430201716730024025544259545769286995824855945435090680697971944844726852145449752205102266212132102666638743398543924312288685677772708852952544846219839407699855550088355334894909134211376011033820424263872538725769030344523327442992589429013796980288912419854318524197580400181394114497980120886760960908720752371879973118745229540616185918619181256545778044987592274109759434767017365749456365786988788781207605175369396611325457486319048103332021239116750221681027392439680339605824259233808728516222007987388401867888989691063271066929110406642287631547832820756853151648915726797386144683080174081964903921184364625649432761911512667507645851337927172285858863542448882635841557854998896345590645782714215298635843417166211593235925299293360134763702037004986067423718762450523665427201100448861971751894688092575821484995215257190118829102594521260018208868966789240273484611953345131218911604856591155622974382699943793570158522057637263831258484107517473111587807918646985136236900976618343015593054035422211547303983496221135409337149526058831410846717831107725265369193622747194221796555770344706108939780367113748946113906246181812787945045693614757019736432507049672523017234953352779904938197131900410407054944180124401220756733251585988865619841549510459829521945895303800846775235302932455938920636309810416325883037463037976080258450886459296891967238824722481664637920874796337516533710545905729000392760085667779493170271779229124350967802032961629090190289565903894446690027011920631227563975659696529032649598754724003369678840744124515592692284783932535008512948008399848856940193702018239349889870345986604089047164802455352560681397645994607948970420552182179085943259135409552435462647239340017302282909443752198839919306735059460895229739137400759263491197908080881229848075429614217123995546658876122279503501382603791226093624684222954142453446401381877506037672936716092086258488450214311971340370691123008426673680085667862365377466647366936298479917246630692994821522529865069410698878582480884963321544509521892483102133242995165929356867830205685579926734748024480673472575090212242865167604501694413278617213981447805645456910541627254647746207506351611424382434929046240538001910151327877828037476426329922451104725680755973696765938977116024660104873712727630711445767024541855738397163415928912082809422497718132545832508126982411175075126951127072464799060725074130740716441022727395912019227054319427377934508269533499057227984258428774070456364823506494864186660394463839661259407598072643778313354540246683948905931961382964832471621655337106625493994078729936500322274944842974493055478565961278460461957233941354819273802531085101704224246807006734827776400845362507210685793255982419143463370018827194974927159669982895061658817638041991085264627684491157272586733063900810186349391643319959137148300210544350934583272433970202214106971720783605304385943130859327218644807492477442009651921713321573338085047741183593278365927841329599314760655107106537345821514055522928138386797291465898697585442728611640113161193066524546797103881745713003277409858337639354988526035121909932567786064835335538262882606302717897735027583752476659219673930270288890387415409243857089974171824605695214105845525610279247539258888923964107132647379355427310828268056199530288087109237581856916365798640234769005290304192368278490712445308579452968479147310926705952856789137795768277802357476874501762815791733350305485593470091554244774417993390099201381881954847175513023860644855227405253994089397127314654927217006759040145375534927234522102208433701945090248112295404622779131798156462171357769503598877690770599494088899655653021609660094807494015912146518163485526797924963954987051930177151065667380083112700225542540649565863736088302621585861576693913276779331417393616649289695328857265221647310925901447347733197235908286520507332834017954507041424165388875667172989427087841223160428551611287994554204987633505240854344047019545369745749238196731740404556948193859054677423057103713207328462939769154218385051878437192141225419488906978756616913596682575812082625469572912438752265490266506206511063743195416445873759825280453109152900255812565737076788224947690840171162447639687431452820744371578298011844897394820372287523769749067968159283827287887842275599470137572099725584519253719406878539347044942236655851315799408941577080166894922993329623423504292875042102115142321568260581260723945213016227151645523778778355487162219129604785974439487519600252709849821263732504096351955859078273733639624224042250816399633938046527333517911939521199507572826267844978566619971255560501521362623398587526545836609590935440265900303627710984294290155808341776310022961188847723901036258817185346126477396638644075283561570813654091141028872654394529313871746702767365494594308677885722335852966769054884840414903388589359403841540737164167639203784742891909758589092198703634081466640240915205818002168915796583241007051892873477780626376586301171409267253957393118007824100589048814192920697356146139492329478501339605663941625309225661244745482525875283537028512040675378015950835081212513432011317652855667593341021928760643650930272541201050016046500560608644010238367165485500407558382677138453786600735397330159687339741213321128275799058423907203587266819961310738479885267784098416809811357562879382808481437576689985527926467405598435570088323630970611926005144400922819980639241712650061791539934087664449315214143021329360112824959250627412799578684507211926830474640800519118531001632377605616435228676869734678847130637706429959440601062286012696129150082802804699685214392378613422694209464683811986173434573048325541864956384252779202265983808300677431456452439048482909567312705617214509640847829834573354281148719675649115631258399868638482270307177921576184717978793445735621076125916446735816978444894615737339936669087290716337314083224837282650457052404514640594669734312893844010923090334117494424519218742299791996717661945387855594747213320664081779486249120164690431776387609143390412165800273216560792875790352114824238118563148170761776777261581895954568239400230932337688445907113404774193791856105945665463024807035606164513335366450814854909517549675015231590940064862044817028920171640541742836501731655020454830024401134981436812890951250734635774162117457160170833966038449276345061369431228141126904405612210057748642311558071093163161675577675742353133051119745969021072128780003351951974602915126280968623707043876045034476759514407995860505163105857175834069368434791112706382206589603117613973646307908881339440448857992251293804975399097787268120885191084695131047264465199169552439238955547088371908953127932343194541324048874002714766800313808833144470871222476034299130280239902870707718282283070005339172914763204307072827548626605796409237862872566000274855030542119064308268468156474285428943872095569888002557880245008626927151370790352444197372163214226117816537681586210604226809718299311608874927700351181942050486964198703691149967323487855174280640874111619661027758823303045098428222460545186106655719140476636890685769778861564407216574814062783868241177651831305795601059760291104286638902408349008697283948210132081937426144491150594589503834822798296831816762324135091401688336318376787399133028742165328554669631425967373068032532813514201584429846952412947089705854995815209309938074370046305884098032129713845003434886881553701796262121738894181953048433524291854682705347991024369262509374666385957335888778315971262688189080889451126333689231621812939871760112842789835229365668514240203742224232427435187033256870887798291721236580146459267513595627711468010617457663543912353861133124451684912372201008405223070256086795197686552477010378612059652267822480042126425544322767491089607643524755952350213315090965334952495729562341337697214646215186867386943974904219586399992340543192439636400539431938296036116886447922047337688136898517883358466575130419648382443684830411922647603793064292606433731035687410074195302054166731724905699753971498761174007895488398678938755795109689033286246944709731058107902818771414118562672289791888268078779322313386953899952046846619811419432057874819364421188442472654723156747510201549160066147826428304666971457148824880822972940430790394389243879619292115748290759409117912652640600054482752609142671096102548346955900774162211107695101161120120320791594965789890269833030697196430933220252244639778424437278881373504373459785208202760188910932626686260612378984938151668368566332082701782962580603724486685590425125701710949456775655927940765983750192756645372038290810987913851555980395659491473368789977525750169379199755414999930795458371055066025193038690151387057891570683759242189219606434055819636075156023597957569660616331646542125605037428555532093501674553054076610420418624165800385149853146142379419762732875180391134468539229123990252564450766631051405529217915533495429255467750466077085813179202597245433378507600263153240494832212030944524348402844713366239462811712921442989116108422936351151252277461854502750528160714954302585455201303846473918549870797131338775252306859222321365638182245596152113309278555636329794236377104108859142730207399202672766880195500813245769379529680534428048606427008734526316591175847284593887667403019634403635489396482730616589415759795166743619214558365402411043282480671209238801271295555833742422727093466844812158961155442449223283274478483150775887029182138171830840443324953795619061846088397777679399044432185026783758580501316357255866716281623578403628948179126155259365569186774307323176442504622403564573510149465845591007917800512230933244073124850743164806580186714496187572760767922104773142835438006104560107018028398460021871841798244495218683996597981814314975984573834797774284431588182005260660141259611509548622354568422002250580963551922405886784847169981200515367296378043136161652816136265033361820904035336838525038691646876419420965306551545474693982713770260394781334098807690050908907447301475645823830832923375360145513752134663077510691715473784490343226875698623398605805114535471754708640828856786173683169083859119410082173354375416840931607419735660962190438489512606495803212963152081801109683921996925413238779225042730789697765751862947916710786593381497240781840637891108339356953339360376906340468162809385432115338693348624520503312544726968716059081006117594660388668827904772150469833104398736355132004669975519794107652825295233728897612400355137081747434607470211801804285988710092294280106579612422429770280990794453640011604107527934017982466142641499092977037457855101057520079392062427827422824425479716724547889425645619332742824156538571419154876978668610554574797055321519773711501670632701465038330325126029623817819548875861001438532455406303627830252373522996277263868484883918650305892299547179538251001051098830741844542555615564166821284014000415435524730544328606029854710698928341068476388731024033532487299622537345372697714968553591934504078343412589259689553700540823654091055294198922220455211646848113683173822898612137227057270820764021447513795672568710528233333073814811479939205029477399067908100459308031194802282179020252723656262024308064285187099009175592662017609411760457742219855029389022039831036926356842405135756479899727706991562818149958459087857098768476458064044188996425910855292006808257068630940593148666314864258374129639417710210717756396232613137665770226861932154884319732146909185753381909307432148262912764382980488677274380694252613040595464672602292662081046553401748768315238255368492377481050864209269632513703505710117822489987536715271726040872148444431287078349573451089061206311662505571106152263318173500297531673848326980363542480605449443025056773783364504465376665147610531122101156482986236399514844648582994063292061835314043976320551875789492408957530530322216329093297381263888863222314843923670687728293963265190028951047808581272441791596018629624724850720980236566197316210523858679944629351404880150503745955494679679473018383212296692643948859434385786635124814004828610870813051404666601190475778029397681673460998397289470113353101323965062431014754922304062969739909374899382351567576629985491270038425693799427269058664403792177554242214995002124864241063767251961641353750128511490841836716776155734221006427656167053914121993774954473883249013897499079953169486797468271655331542535586969197305293135499661297824344474816602785007924102248083722859918675330476564901008385782568110055827344650538218285456684572496513575795025661191663928147900056779558207312841948068344858050343904602783509043841330671509706079973043485104240947085850269684328018966069541885563276263897694072648975797911525707231023935510932550422279164734215921304950872515983187479139176501215476469366078247931939556033105811062184424207804716335461926404056395187910825433136733094086843064492655395006914409625029593480724382151829847510114492265472664445338292962238547573205030232852584413389092537682293953292610779978947053809653328580025939983323114124782233988517908640186694724142984305839563852447375638304314243793223279048421167031344454077328506764521878330379201339137640275769355178302965446506219606049886725051770333204300496839025185523278441582864251418727737580089224976749735195319991414054548738305627980142525422681528862343251134281070778500369380468595179535673932452759659330225302294425514722686329843416310098479491667533037594867998600550247165391940498614462121071171739414134674206644038511748813139534545140003589994644375912647134084186887871771355931294846495414961577127959930636162465557491232860892896694170631210743669606008561218327283645009648084338096270809961958109594538792199484961080048784560867826093383315310695169921748857263820307989242876031649677132993151689166390711791264190160203885128596761238573835418980063673062340513639714592027634965570413360595764670423232835130304029818259432565258535530935034569439473262217953084175240738046583469930725611170266323616505795205254963872210473018550943304353609063900713634141203205850155020443959084010285575933487467983121776684868595942157129230194521759398246447666749353876409370695039350363480452345462967627398968967235691583757963926906968634159024470033828497330768621207224225282207556646019053306272300210600042816646637675491574301438335997973229568732802937541113614917538012913992687385284465617504056124254707092208686683779668179059967097575131134795987742631202735848463061492124844735044784790658472418482845911112669441314747879354295323788810319924638318599898729983938082683775230223912292904086654070251399710549723702088907186700658326238044627862395715070508335457218096570138119734082990531615584640137398500341128450644972040775337946554830863407305509233694692851834949219165200561725489023876062358863774739466614091934760884589714041838128522603815791394504418659238299580043962552012251689687963257096825151024977066918879464460344503809203534783780205417430963020002288863516119589019952933327961996203309482569660564314017030486169612529740393888008125820944508173880562918159216732336739573052623573695348116172303722895554285707279191111892769183367460176448943806505067188562051971417116709145167570120461520291208524063587607189284065502690792804107251942343894564057752928141551056259771063663764699590917688014549102028775615625731722162178421527842800594602891012745200965063910646566232868465729626073444738303512212885869737581652647425978850545377291126410440233869301097419512878005277461897136236989547266471318487287594364925425474054281509504581716474234273650092350769528759245051507531259002725888512999605077897755518725628845813456523663385947082383868290159363339183664582262344325066924523475169291472986463137748504100128404948351379748902171796521956958556014677435675735791484289387284531023305702149616568675846326724856123872050925028194530628317215132203538324261155872294629788207494858401281892419798756984278146467394041178397573201104734683235234691088476576694138905716492746274160248246373870354687709256205072704046419288953246175795672271129239249036629141156049277199229668476998654402651400705783436038571746132588093181629582496529413237091520575756556950138830100469743638259259914944081959924513267724975756630245983904556601839620918655181148586040921364688601940416242904419398878062209231016002222043552968746857276734366906320347354136110440989453360096164336298255413982155337592523007067824428930044889234856955289112757171773439573655710721225153542099087520217704730107645478017426467913571752945391987501011900161701725018927040226225707229916524828101238438851259275113756799006535607726236386429175910386976817123636298294061854282179290655722234089770047594686582281480715568926515270527184647359440764972572788766235913896866854666972292282534054404753995160220974849715511516133194368950417393078180381662949768653815603410322049139141604634053961892850261808142591642006974101855075496205485663805771694554314745902070570292684625512693459671724717784054992197166256792791179013242173471747494659920907995508854445846366698744513500562113857591580722504509203008478905066970788185213414243826937966222203778537442913668608647526678997463054489543328515532053222706623050302051366959265640347487257726387374160028688297514059212296208846789917411265262911773597224082332792961114782965562528913562485033632111016071657094726280966019589746389036282953900040435596574785819460974566621447271583884699075117367534047119119278314771122865927696447320646745237713636281707655758242415648833437088092737904560216176635567413130239750632572702704879920940257401299175733784992920161677425263301313627793053590403443313256242633487947099579829093365900381554920292270187535042827495089514077695637985009560769028140018215817984703158239602390235473415891343570589359847850061870166642915391553972071132048700966330687664833132310145968374724137107092197937980347986538228649110800041112672804565370749204262997653352470022391832693965327516328374396118620085061930328459408726677554157954902465320139863238203369981474703570005903154980749646956931640457038256163273979789025520639530303496644299689620287495039497410319567883354105339438590549404907531810033268314072884281729358204976721518372287047921945076870294757095753321746129175822580172087737841015004205144619161553456713843739388287355982478401156386591607946970566243939481327302531267653453344305483275537168098790024216333646372955618929088429047849540376832859324905491250576060799433607357882379905329147998987822038929360971676968158913085702897615719211276893404478354430236700066516132551787138431781489030809844675680295880325798882905256879980461931517281222900261653930243120649791459874960058563596774554588374076361519449651402812559429882413111667756505809940942857397552240948842238610902537110693242741029900553487979417012565034229262931405289431021874178484411242775862316119877589940346189240944086265116605518546948180422601710934127323859111314633294915877107138536626669376065525073282379713772384611671818327841898195048768538336221011045622221025259931818701535334337436118399417472083811735865910330242556791621487222556239003012414781785992142002727646413945541516251585488168287223448864627115178712164223491034412198674936291649639832228091390668421191956839454588617952100642708568678691821982488588935307643353857277507593028284582008947769235363820671231826873086314201053035174398461494076583244328642762457053945175039315038270668652688967899655610972857166885288465902917184816467369471631992030304688624404905106048989067629738912383354703199836824375517543112763632695362578937545895594082704933127692581408044137182068507853895947106765494253454853930017816716713921580981884763921146712489865327392508619535458294043940661773708210907290727643564527804314361049215609000195889808487906511158201237611080244818823284305594213380775349075728998893836837922922179592014977949369755694133774170269449883986887996306171510499585850481001848483947683203888366581926843895565706894059185593383033959666003303509017115883903916162633882134284673693839277698618803731738543916778863075758899595631594637396349260899415698010178481679913380723883742990638123906842034132762683677344421070754357571302855487336904956555811107378067638958796353583183771425270921777778113235778666603936424081752447922876889045574855633810415530028449479690966091411881926594584113656833226044258309162728275694904033306448910098142363299628975007215139331898442225257661545927956414151455763675873073466422299302152350954594044470011542131941832188246750079923627500245760115263036703885876849471830601281875926783828163920367880725932347123732813306343708039589503199597371536867505332675431765633552232907640727463051883690973617404120878466274348429999559580459047224860924144172499127979412151875717599356102657022079230900087443842380155536483415297764339993894548812729285264124518074292172576618473707881354802115049646749353295494527628557250206936050595947242427171045123301591405817581744143369102434532774960191469303007280863684832857162656734265157280164503666181884186784073006856673715039158850923125809926637510196328045682305919441613347878921828491388605819455864349258303919431916801996243430783843325977817771144880287003008392087139073629154512242184884414825485927277501621467678227156707350764242643444906158030943481168152973009464833587920974483016593367333139652430503361161590883694377818997982959941371364731837834269504518126010566315691900067125522614654306490647590649531118793243842086156362542719372420913997856071962737230019343854977458738989922007722847886129564311021946424415682139357273989471382872271426376135543910528203206797457323527587473330590988848209502924364712504810567551387828273235239780569309273184810155307615799609617578978279696171731568263856015952877060674150555496546200877438522464988204968975979528373944196990862392880196149570322522904937649425308519023546394759964729649055106094282546867727392292815302262100156968012489742010386693114840696899979105893703345560550379682212222567827450324674293883780013549485967163389928629465905386829158758582122768873564523537393369954623286273424470968499387707295039636274378953894852389771261684524200326313511015907344459610997033833441146070464388284737093488085563482626019484721915166775986522619757434881229017348177859150690169807955299951279845313342873255335571232979850813605422568370353682094970173569463680698054571329218235663531626920196894136125411076376703780575405702789066221870033108702044714614899856972478036526743486167895525669336756146648110525593277435300598941049349370623071670187345889041204005084245850024445579431816502160392078875291920401910870154568386646792334072039856665929741480898420224507485566033268581692775423619943135480888636577558843380655836145206948632156571989902572931139181293981333701294227704909146135517610505834364168128899119276063429640271160010891973723751541371117422318929038140062409424492631743951968406747028881149050811334390753823120997902234187727651811334118085475297466946878371807257824321702010871282274071895037012746071504421662599188904620984539893281787006163821635278410167297311473765397049482049536679873254177593718187391317734077277078613262800402132050976609270227982736320504297324411760447663870174911693227388568465122214993221363374205503214532104961462991625777677556036402563641647286581334037540429939695809736037450534220478867812023148248944191210519566092216106009982263806798395269763634355923345505227354115694193024734890015960695131114803586781205952422137467013885448257738720363086893012591686990493274409520025701076848775365374354014960435590643802268789047663305290115426303054382088490422343935892233483773436079059916923131589596931971310235177344603847068213542823237802452621395487196019208796881516388764697245492472775913651158020503366443697719289319500714133127602777208258952846959318930854813964398179602594921619198505762522580410551922653259166256505874897947990532912658448952604268403126083035737679341702666745312522463189748594829405965023062645055222546224650998678664047877551965135653088261864111974241730378987289908419801682824264436976052549264631978892319336496529016184572445790610640420257085189863265731610136033213540449636007912398271184062649647975793072277217052105126294834313720011461831814029016238570351364118943296282534721995122661393006509635048411234801735258225145819724777375895240639934957612357515726880149101969943326221607227838861996570119544135224879657814281911417268918765307321427316985646709205084211034663004093241444210892714636948767776629285076724256337719874800844000732330746721159411063814949066462571129111615600429253259994423216852670991345278441755143912370398381044491797650915034975312310420028194432026518429207732721461412263850773676833039202999685480687881663693233132064587777246851510677914600207545446662890172207186414946972464755211412510234648253395802031242769599212736903130531485027138119863331183663844260796574649849472848484418926524567795446065463196627499934290749689716825487816794917119404814540437627278831533498027001058382082118603111378936926249628945568745452916574184989024533134293613838177133014037063378436536658432183520055190585727735088936657202211765139461841390486999270628886590307599810672647859685586286046424658131683933134320103031685676067755362489357674377650185658764718314169607720669252709320673305741007184693814216799624039434424080988553892534199142823996810077308001315981583227964936545044330877011138419159361511171407845909678360038805320615074190004304636894304880952669120578243125459473073898309885498394832462226330666906489076747569157118696757323370014730441146926206770773134125724071727074014603963804064014484515018879957276883721404071485090397897853101726612838087627281862293682595425368514829197403593793701559917729213506980085106619528463596651305716837395846534284483377326761549626543902379693053909470478934578945854904702796957139877080137943606840648320490822917363090157398356984435398993298311468251402656983977500827093874775831911115947579365387964374414449698261867744386824345013500591343932113761555466288901168569854976708500277010188231776127625772013851579580927353641317913879602898766941881041261803075745011753169077928266568915856625343374568092670157831602192988574742305737097567686404561183810807221375173203599792082563232058275044632978192369128162930496417311565150941370094721210959924718671799765062041340979501694277417570723731647879673682012012218865552370834894460900070328097880461993786575949194207730059881414065084646143600297891981581892198179605332836856174567251216871328137999363753343326389898063883638761551677238110837326995604890542713257029408687695617242401105543867218488995084496543386987664075948065850294523969267497459884512342034540135227056704935128816763813310732701842217211716948206154967472049521122699937359117845615509509621139472591570970921219867273060049491553543243229256908256174088164328590977841256852712790734944272320676556354760018277215449580166016703694606240952409780863317367331970074850797586588185249874899324966238371180026190190160833987114527325350080860785544997074198584768377621066173000957074470081247063105220669276811320538953860670754303282580402134557408450159926808446812814931637700149909731933645144520948132718781116836097688133363945564747602471566085467501317003629866297275403051769713700207987531292671081405551445437760984234582260001414691857340436479958238511144748416012129955189736573207510194668984494812736272609763827957098055053514250609429534192524404429411748782655040167633778732536543549077061909846165153345231776559958969289208933655148878962040464932200421899006699553596420159154480472045407216056125618168069270153578107096729955677675989771568656158709184640632935514513058321575451615338421441435502185813641214982463250197473827228052896959318578760139216910484848043451244656695751365931587618612257365479657093698486123827342317894557901971681251332151485948779211344624728408891670209301300670756215590424887589197590402172265008574590237351701288707494670251066455277568777478616131018455350598714488350484903117599190349326863749005875293061011095845049606414830116134364072198413287145960641975537147486077939187381570704420419900507121487598483265148044566573374171385003672031336075589438609647682295759283049196336989057133348119631190544806771526142099517588926857107142511473559064992783194863228748422685682981103821674192236706918901064039726563779421874024295447534762286807802814670482549760003264243132631617971282949892150903121126290649529574343436761500273219543091523362557719375262139431774551073880406130750386306601033135202001094337601412570444610070971292029263421418498732075700911999146548255461706280028018312466566710134979696200043261298167694027867528433213452208221897902890783116521129499769678617738273646078326405865238572956696530627631971348236271381993206903490298070219524037653643992559910861362559156592873465405488374714519029486223961169125870422700571041949404395153796255250024206700094732189014416213420144037801819716987049858516341598782896967946013012663754412969265285698714613571789559532620320230362180794418501301938933816158393661527374725594086251794649357110275118828905518449009666121355629374222307706593087888574023604048864775769430364470032361265289818603133120382201996026409488075441145428821377430819360150811123299214554549142912516198379089399636592188088183850880226122474780991272694469061710898213882694384389645970090602143747729175280297547518687889182166244335906077946042375303901259188265563135812550819121408063942164336627416810955716624313163526130447811064793560825176604760256592877360607992030470656884836752977320892409782795596593761240221618137165549989738529499217526229311699701881313339800864042162693027993766079151263660904694369699019725113848722555999666696970056915515029699643851840693170667077576831777001697623569655014964385405951111359900314684906160456194935206866773907582048219473722788031213402467474150395001759856588441194814033365891447109825692015336467634316674671528055013027007438162522436982680300386056108049339236653012819849885652305094532304997649490822542068189151116021338516913332100098082811774743482607579760575503542430163580286865896618309348359634844135715049929983810854713382660216109367820402086099412547666461252869108093796073939705262503865631206759154221026138194068479466860784232416132284083304310249716290653721783951158208060937419512177714970495342472766345174659351875716684983912151786530932162999260064287392876004957837699113555419854821988626281214960916092850619759674065139746388582667074065707178725747461961881619136060250038290181751076353539254524239564251098113426944379563634120043985989227145846532925963414452032069822597633554078612057924046013237718683323175257985566964747264322536685559725746285658000571578181455393828152380143208231810982775252039891106464941524808457789222905730678969892144066742845713827350031792084132405323089092274983185992043577590496135310394003801956748918928613038764441043431385132351829603382320368924705406662524506746511730953697074999446530011831303044029113341150980805036401341420627878188605722258093961968798926428421142198380160871628078026106517233579094849706232543047754532207851062725802807699563564150472430865559184870806772196930529736797125406028116218936810963048275044137596460997916632763021753965324685464017555301475789400616453046435020172468592361250665458397830025739878703886024629891143855225729721053477000073495708507798817188480656902845689697173186615918878716767007733940318460419722817170332414487833914944924308742576358625604258494715885675268055345340516040927277426125267834312429878884802067210288769209746565665310994389511348858897782886443388817116450041018712517716753042354145127267474119714198245240441424147505806360356214581719105753509155437502545553523413285561030723711667096129899791893748550139397395988897442916128368762834951495415513609641988746631015936670776664839342545059804062380024604364100520832378022968291796115758373559070878852869803927498467156682366476019027328696382457091700429037889166699497381994408667783359149306514073730620804113381459486916098631382734819936033781117275834713474554347341793380998134002675174606993980620080911402979988453794710626900290187805314511730710624549494536695441279124280935929359054796948885464480769494243473967900254392263118253099601188603709116381197136728979458374397616490804617413894694555920519661575237376838197997576581961265732412266139146008725698870722002881657994455859897091538383246068378053142063002459161493760880831209346930515682785610278639175275892677402632922682475334802339196250073740638869730843726320793250274104819397205057909393775132634084269417798309128574531858487112646813541887196714697760597588836491380157664128251060202689850793523384128120206242016298467776214230590291067056404371327706460117200976944732796641015020345138377366128531865321387417418111564944053838666549374864825157187366409227458342115458256269711099713917388984692089719079428262922022347517996264516935382466949600544899001682844419388152652773065907064575631038832785511643576056558604104548178811901474021721320694782592283352377129459573751468862242368121108768746378148588987632191426790068765386282164533621528673785530473502433379523957395518854557771557635774952333191126986843180079492405311842810444905360887283090816224281958161334251117457504178244693778261687325809148364331828732723369183192629509841298715833148061823312557156034710492997077275806645495936344399218013333052199135172141542794921144212107104228022507391939570613096848435733645627161752840091156100109950060863926406942954585653955475747720867184813506994952753422098239099378140645810652386205127720495846459943320408452821356870436484858633029438038371204196131215795013504674101236800182557818159881574872655301357444650621709258803909665584138846998896172037762740786988807292982941921750967630844590214327127038976952092091371670670822863385348728166900160483211564138890125155966786815465953921655628577707674709382315306069412725383645836475096530697805903549376789840714497712004556803707053968028842477365366892500159122953809478127918988439051834846203631554989820152454536419651607605841392102642162068693434108719515841582947486746392507934194236992286425288756863305454577776428365277119963646799213233385062219222400413848058419538771717755982178184297985101727390831261914564822132071448001430420404951723476789593091797684613716641361944251699503624468475084913779989089485206259362536996436970867551704383694259010033762513865095086654631700712981645907488870451402977429344797749528446665319087692384823815870477705813375575280458382008833379850228827078713399960735105246138457553117109587962615307181011096439199962933217622199960621334483579950225627473094361948953171504601676583097876623538770415210717096303008829787350235254979303021610314476451230733938336398804338848465689002336160687301337979418161420522394477413105818719260604066652840354338792458690502820964024418616000736380172219262118743996568393039895900231371362576782600946678794438053750410214478792669686362969674419205013158005636374163916774313930309593782845042133625838670564393738741697390096126343608446572717479286980714973696423296351540582901720991825395428962832527915899649182244667683677289040075280698000420510363467151136976492246535851387964764281545082627801186275398429421445592708093618026493803439609867285150849915212705736853844043115297108532107602079468256848783153902634059192436375025728422777146261776956029847635573250134212918653201686899857599896615002580001317696408479381441241324159121338243224773903285379855907362969909403556380788137110385189816971455650264157707363885014655711602546905704141025645463576011416449785080816711081773483377673575607441173836628055113441266462733444070637163423109196825609075188270798129390124807295733003157505986756296341075522629221553833106741400437030454298443352382094071145318329986893593067478166639294004964969826674859692462669745303744975526501815758521986161718681002661923071452986306948131884239537132158075870493157520894927955413439151498780726139877069963018216153599656485235043810924666483910174935252353223220200387435113754390036335791560105850590256041828624796815515412860482609269586957369745854935384803556678002827351411180896636149222091117098373785402759639831956957274325597910848245741407590487941332376930718536704351951382297630498701372353059309991762656104492381515412954387427596036579750348820876100355874114286427312816412276436302490919930139996685748126208040612109338069211276822556172553251288221310355977712285190095170994860117760141087615431841661466478524354870218199038073874816406731524583542705193390104014792172061037468966696031422640745786545410781923261794620468627830052127416745590805326434850245473747728700788165005129784996194796049889643082632990640304193826862164681432191246197772658577338833956949283671333427512458462581913935101248003177630828299597636251528446191023333611848368814322023912024398508223945760589171501698902466975339779704836188284558782894993364858932007206481233945670147211410766613418639738708168820162254367965659257182266531887713519069706623862486605100380193860155866764488821052580580344199918435668767552716894591004811619125120616777396050409894525204532710998814831579183436470645518899240837859918792201202796243240618037829324218712565263994831031434704380933656606131770216768015526806598730886343000992857648952960579711358335468215821603059357555321979491208053341602969740891828220041604049341202958488547298538507263175807007344869903447192129418865262045823166472656304148886316305786533431235493846922060016225933486640972745603601026208666363714505783547729720538186862032524654582873213508870802961163125903923058564603526819636395058097968344386234861918734149302511428939461404957894515759671742444103144447731425784052246002582170474732165439815277563074447467083015454307944362856472304997466032004541382514289232135239039968790859144810027376694519445118696310231662637196404478757950480210981602072550600161194503029306842458903287385138129799286123406166100166998817937826999769374427832948208070363684831277293670475585201948208359203576164799355944012032260853077288349915267606804394251344381504595840712825367454123274982346862278908306445301778633282968894512307979197257919702526507881031713649404339922760817032038470314068367345401052067806032394528711186265507330490325516613139399492750094835947117267661832439515087552377905901616772154856985956064731502037260560334777238292320588156875829248793100280045260392192979984497978353516992078446787731223659522711492169253503028706989682772893952098140530984071418398891303040586174947092832016874213005928492928919527025840183573775462151914356526959520202390563033637818952270288949045369307731158856840208992823392810330612692372223420400796111211245923656645032122545337702262728704414589370452592761738501928636022420987860994713771874107337558527997678108415583513992254817046825263775468446479670082952129735944375328206680517377604952462174529964746471089417747144736986164795516878299981610475786863981798515745512308178757004704354974496939110027250408581557171054114238792983732366942079807640392585163146194618791383559960541731735608421972872250846124324717534392915162334258778642439568355581403953577251805948885533927884430670851663002979220446359681249120539474019734663892342605969554516746907747882144834370530091629500938252301420892624218669753095786993033797190860304631533519431254688840002372566051851477586439204865313010840373109753187108327258366853088653633652886680715867203070927998005903482041294163484114651192702147419140973420194574560182876535526299473415320680758773048521341286073962212257070913781399506663969393636041645567559626402183650896054080295199269629809781949618297939672587726031157211013982814190256340513368642832017100494818390914741405448160462555844826397161480434782334616030528681451837886851911001122835432629105867222842739783470832974163434347354227399384357383919594972789426893037034601141710858447293142363840934502380777379815823384911518829970781176453699366681090605458325298748493742942697222125042929598799637501936945227155715163664027541709595183713307032940283869053970243075633537415400700622516658580085252382683060920864070544126488185132238918913337291202042350860120838164198525029732925316053314278642576500193691304745707578890147253843812697967157744344852746904291732602414340345696391787121903109212391273123217253492064556715583754807507017290810027041212187136662857038145200034500784109456869905758525541510649991247538717698081669925774090816503182513647068717986366847721285982014845497490893761815562314283266793758213305134030177991633263548526505660737005907463518981170979195184291985225404506328979558752493286792560289899762359259555359890448929615771450275460012729016055415959141720871896201281219990814683500663406724930771165700999378970621099823067812998829740675610313603052864803646993320236702200525997543630242304710860124105877126518740955201935691601285383599772442337644240658563207052478231667742883599273536208667393776034918936496251643526866798675875453460615739467065983654709319743175867832787781000231681147579818053035340664719921436404214333450773631221542360324258368936866913907682657140779056016097914198364987425643316363444716866441365058269910759861667248420665232028845254805097767040906145770083045144691836494707120798945087237689502858434936725326901131174267958088360772089683033770177291834747143764832961133085838153783968440660896356195232453379558535842346431209190728850964589986647199315339559731878451640941402470580894451614972414102313576422311660001434833350630998753134281491333625998303661348193783008544383364693320066393135205317673324269904136023097721257183445161219243180187829085237099336863391442569576483234778836560131683870375602445695029812028359927462020251125967393730292496935122967178226845575361778550133436905539161373940169729156607740151997127179213381189695673530909514520157810314231148746182569395501354319242096882511249124530401184564464788824563562463511722875237216076821325386017088567989058222802377439821630125231982277963652470484646099150169935592296775407001091918197971999283696950012626793351661077712637670925849831020166299061062183713131379123997386760297522106616345405723312885697992075672718414818754273274477314163647583688634084371388225484231152210774825777078551374921219850486717067263726446338323470199091457368410050177518555360022571263060904071513380106841173042331455734913160572111601723863903086143283244303786814240788271009524804767031839854626945530436999866760339060213761098086161757402298670253009754648912286415648945523042582714086783210815168642964292764575482933495565456012507895670794246075825945318637156361507633676935493413008055554884749708669556562813670421829415608216433787628486413800991670326646138857867760865519880628091632699503475614597759587642428623963349969612507850545779248638329284726800801025813082744439668426354163834128324573730196210473400240435077480669923739487896404929014772712953020175224892240936164325742732865927724556970668231010567927426630066194427911381525083635739793944259344577717021608435050498963356377695615684744081856024757665876115883077649217409351262893746512044242473716969916101920831592802586373234392463866576949260226979962120579664344429918795632744192618723624780918727339012185461259186376901331638099326121407672539344124231774639204202567948330700096212482152866904290440048465548504130049999256735763658171857414790342373448232987184321304219478330033510917834641383029913324300319159917394682813435173213193625524767816185065769755054531639426793121841500132818256609555577937554551009379868207122109619714019912529584072543063020305158921612917086389099452592751006434071135796644768115905220233738142279630736000688068482913167119867595614468638445701233031574207353574088782302423221826532484998154063436390364556458190558829257335127089441300227613108742418508485753004886010592025031869586036025621549040278497890750597192872035993083989324217283229274966325624606627692428948477209951493500836521705529644498887871000063602339127656111226987324364708042440805753740399580293319853051751458698871490223648383583417641226711306737556261543435110995651064197084039633758771478708692083623984966446952613105879767160587928184057807864811652194609866661344547382207636134574106976900847942630960195132692135453017537142888763063946521788937721243681463057096641385101101451513787489339837782560903778898692194790891858214348868748487531235965950615393930937616864679666536671086020724917168726254111177614643812538679761480176046244500187589983354124784940410488494891201877619388054492289864889357146774235532928349191436588783976945542797021374976439980145211653110477606960796003531464472814010544240585511382333343602129047744549059078458047146583742114045568687447700766190227462481525529926018376726419144666346336769197355412555730371136653230304472282749463098393959900794249004467930225993304310709038090463224194186821200169494648798462173816863305300316812438743964423658952747775209626287661928751478139467781201994076385774385256323810219745364691369201164241324835528207171694443279869693612963739920336888477228037376325993050163570978124033796466686844151476503068815652148646013754623160004414065228330555922627107614162667652323166978583453045558025141548668156363171769870262077302894281791822048589579975301257086804875764119009408054051401568327189753290744989643713056642802714883586884084165829144544942325408976130567546265843616584757575013652777936623041243758261869062760611510813585431894003812778610334950796155252538529447128981590092692259976874094034474450557813304557959922001925868092675563849925993789018263783006641578067999803181048712712924864930210780490687478050091230666415806215333855570424633635079849421680316891911823932866280024115942876604271722566242061490168418404199722464777849462028927941514602212258291606756789285583581776059463862700195417468641855011136252275877034562401124517128301686932585065256657916188889110304716824445563324451271856760690204342329137764833907207096565415801300287035992185395910369173257024923641314029418114034424025099330029674288842343716262792510621786720772358722135038892886481945380622030020232760114234634164931428570638189557435215969385619381874809923518586990798613038758641451266855130819203376310985514116343515948831977388606424623513725336808710557842590740883749742075068907227087401817774880035603086861649096252731327843727528843325623446604204871091030017988669672469772998110686214023996443759432504888656285800757270975087754199602157650910350347948115203987163843828893488647170080078026939862904976076310811441607268807991466259590908327907292791988880925563518792066221187521834857676274387107872996362191367223548926911663004345175635607175061430040559527644359177013479873367260317248771531112202595412551197689793555616947442323017187484459984969313483320541832155611579189658687582272952133361198903022937660621581714090714810401141507665951081863288887157232892517914446106968995584151780784733787956196628840576074900155687888749983185676681781181408982514318661558225020362522340634499359240650275113300368190057346012124260209316999262677451598488722263471045181158057971851149091611319734040578224585222321940405382889451768130875990112472007087022153850362458839060580706720967740506516307552118474613150708862770087632208346734293882522314025420525890248356411857158586544521563671511672690558933072126734686555118105757012681460965647912731487768830147786661169775712334347642716255740584599488477384576574106955836119398518989946188016346878551871334609822310529540428764967472858322314268760772703680438550763489781552788958008392142534584348079183823094295812528048911839659568403156419900721062942819884515581443952443059983328972076272179305412402382596199970517406411032939521128227340325962417750395888675730283183268232225960557557852989065312786055998041663964657620256489099768247902404970038188811469376392989370402140750912184885801350019773063956016306838003579231063866721718578378042539325330404793764821281542788444283918818245578172151438733626679884214765903831457670385256356878105105362798279888315954183639889836311627750693154557379732738048651621872199844155792727420249827097072114601659686175481788048567292297909192059284045817832674473571491640896356289139034525722567195888168104791075433129788328585354346077802335035830871196822164275982012055550741574702224089695407180452586909928484336648713888950235101328918807704805233119041046272010235990278697980375092650088201822169709931430148508525438004027778629944162012404025368019454499452409390987043404366607484908043921437747425670008542453400451524490291172752861148147168446339293872332138662796165194907090037064582770608917247414950637495315738688011928693028702544026550850602264182026293577817989720567562701058770792951641380980525859528166481788352888909478434325477212818827439015389266941327959006829780004855074698970811224103796967201644079744856151260647367833281733362786709555437530731739774186842915351528883251333572644368277389992780059872791283721076063907416130708231174183825620631203777779382950711951801772671328916085275381829744001727688121911050754243714564439613360066164277029638010066421129311069410745501365543649335155517701970944882074811682541791208696947510146059747828368835986515768332420030921070317893645212448820829855090245431276600027819565341348794978394694232866690695630219083025111069051891534551571571318432232482128823756765296969972008679839127121324525007684057710073079162692307935280106675741716604308047224411404254423668717196484267958519933826991891319378803361209797752985917165304538461957746125059000043735630349165424383829667741586491155440800479561323728041123981140269975410532086329734667088185950350273870494618466229530827471636811551773095513981067968853475958974128712086923366905767886931302373619178055425566096538554639814615798158925989834961146903458971620905397730616818517943175616078282392186369315942575405105548314859903474522587600226116911235403502959976492874847383187360482082137001058545388905149243705892250314306778326986037210147257934733081937780171581544326066839860206868710747841325397859942193232562424470282259985411431547759193380550019486839005384709748546727739085518942030536654695238465554797900741411464426118438261319142595470108190632657269268781606177399468881801852946802429324961014470652896080421642142980521612045148661633885002113027668384639929769515075339445255795859683076698401893956789432264420161081816183506674313703083741626339297837241186599961764344980614270356465048124791250095559866236486055563153449572690844270943482283458703137394480141123215381122102797205497059741703400744115727399872354950995412964769438225778808345805212116281125188650585680774491382905419119450311581042182741065888715289023518399528246637191237039707372145395426070064674459236566353046570846120137439769962379446633083790295843965818907132193587735234831315810878063302500814004645820066945214025430639071209302989953753235174538131512568669605283666637493647562307136902118691121459331875886646731540420021080027379267241247566285271854648007389569217695513209394168157722492453040724686119270837404933250566564174142684341293309520549304975397599854382034297502312688127531587712033295232250722130827290784314927902708139585177949946296882149167636182939649689740027205393797818524787637311415915232565402461347488101900258675769574615110316860096467884285815103807423009030335126056799768158215167321319421138516090704463967375423991433822428586175025588576857533252216550369084170492840689691370548198438458161551194152514530309124688509230298802972800006166694053028067734067270575036082611597931106277194770909777996804673041535911797709022452915431426144127158039991279775520295931207393755361033080836125905637736417840150289265779396461210402476251946607209476674300274789424730964085265185809238076633814519474600774891511983476413230906119925485814921007013947091361459692568777585956908341192039764347294221475580356918806991508565606279976479330922830335945015650968796873860716563787060515754579354301943369853367575242305102314127658009608232329940088062003371523919367737831026226206685825625032011270625186270750832232861246506294429017251392981966272997303283569990772471213904631219868774940621940098368439587067573788229271652643025659248576690290218719726752156090497971093319334974454208259274247180270980002834075925229356457288375104847177543826360330122539632182957830125708619778050449277745895131609102615121440531470417423086166433450486192669035191237084078283566910090981840534668005397876080396240463667764251352728592783262108444188752391079276151130527544972615891268341945200458552393533518997538010490422664316026621669236922693958886051725810156825483220819390268569022589734959036148977124665836630982222485402843620792438064648182065141733807784237084690831702713077424018238121882871462772010366202375801681138443143127265952258158019828590167756978509192604326584742738717992426372291741504437933165834840700801457325387352485400927929500753987779513207438956704225626094159315617416237215978631815191980871631475812502869576591070260554532887618601861511102245338817706617778332640461295015381697338209439261895905163823472884733124922013601985547734716191694545571294439978812239349887499222063708170817341234809555487106417038461331946216378864106151577488548504855495112388842501414857303729836368205542023143823367089228670347203360718307094126204981325895352564845675195984918446248378094308514317434232709651161625930588545267665505394310267796691410003046602591652823646094337409297359186846704818526848143921617137281646989660556511112497497276767882655382365698995898304026811956715591197878887870238870405090235071104153447115053147898254536427994408604397527237417578455539145474317728268994738829629851387694073174027473661829674310812913133472276828897935680763953112169196173863976429995387134551972580751266301123013868052835798073651005046786340287015783987102323213525718446463558119468478526134853782277475858306793749504057054221621603722543543340618610547203215580421896922844740319176320612064296757063347138204094623794744467927666930580757574985513641274885582673827789288344918534792814306948868489034215061434915586748783282982938226808219006941376383348621526588435084888868453329411056286209805857456202870843432402390239362219266727949598667032678972877631566530745523521163192686320680734351345658821304517020224824445191871430627284181970356006276784845314792782593188383124151473598935617631039700205848929364898001012624592557435349166332929589129288839447426500732357666693507319135332525879122692242159182665691996153664531688972934772639149031461768299929874866531925664363152053466643984215772772956484754800261452265209069250089623352861955039482809233041156112912509793782560985732708548015984819887413940086899044578166181076734507591462057095705423306616061986149087610854291206665117241652535481809366483663588949354996441168440848022430348190137704049327994755948416486109303676455150833430764442089494897225558244053222217927739439455094303386150115421978927882637689983616850520255826537777146444666697832026961183060197844729756687742791626635222700542304004356891024527276631098034809526738200125696181662415404635323520353682369477566117132985818328143975025155405315663956103024885785293272796235820554345171607887015232701135876423693317486369966918410096551902724147806979095138578514392570424769926707376016462366244267955623920850059498455836670465788981270874769114495218635540000535177280043004370308165987578188331745673847934877899612898013709481612053610388378421781026467069083433329401158782558254787862247723968120971118183629600696409010200046458489649913420907209826271774856286126464441293669468691904320510374784656637395387310993541760923611803025392745222026749543431701971969464615323605445727358917567696671802895752313165508493271261149160335748346337608982838460491998958982064572737331013841142951704322192199651871928615291295981224175810319038917300089849645698008370783789282075422476680336187716642227562110921993094203347530994711834713814528314322978545517283271598687802378006166307325447924505299879155885166107032421817189123685332638822082216251668003001763764063218812990244386869502190173009273047775532195107782972789723530874889081588290455453285388845128919433276332310649032182834141057951276377093760715514240835851143925530816085285511707655177105424969550116524067112339433111407013031726901862828189352817406395123018631094432527485426192330373030737962969753076288668633645256003226413859669862241947988317369706141332410553632707066455624011195109440621513609292952352913057519187289624147318065205271507479377827234448130485157416969369007734590172354649734619310399779137398688771309515211577623500504147399581228460320730273459399835949244874077840116493734388179303457447643831577952404941517763247718568906751963287299747065068158639060718889372003854681216684111067540998968782651930886609435750058594811981683956661114755459979559862098069551560051545552698864203631322740534808530406423370354031571287976724604875758892350779208030386794576997261130339718068136654514597745048175516080058191965841492172239240992536398501720738235877544380073626471275708595333758176027701210331885101082511833217767926171765511630433363720534835036855621017702795303854040674264573919994814663093038556622851189566676992216710354819744164138683862113769129115121159729966911966907758020822130480720578930971433134061208810084177596417864050380799936620499623332474008130090017226814384677916706340611925428199083612388664373218945254264798276565408119235906972707169737757007516057723695421079944903517250231031837503580347687817229723199937516479738048301676296310035600335443951954095043080535964626595402883512576970940040682407774440637199842704172672178054111993521766237197690522800931500248378717474861355716267132188208995282597292473049563909376158803180179724986070768793210005098818890520625767340814642320669575976236411078538064680526791134489001213366922512233300561878782616119110293953387422783311500430754724061268825643907484285859526749907427546164518977151794659419838380322258759701160102961571174634094780556623482825540365278302988986322667651186511127228755198426108602893454586450592868028982234224687285080738727470089149608750966382443251150447727619579653478786551961074046037299628589438854610260441425755554276531053758845355489102019762859430994871034730337194851646050589500865700975251021887481315020272881458566029505134076764313927130410905288239453064385434436999985695037424498219911724004625195129887883802104790355756671313132907522186292004876729787159090168053632853800022300186925963536133507510801724709968961164676070038142057737060934447315908435630729567083398043443312409971975087415564784825662754062774556716295110987894435763726447812998412259097196939671345408121624332837053283008941180361730655939894086600083428088978341560437995418450236952398932610543825880583295822352908021827164722866491634063143392836145253197183475899018752377938940130263689956278685774360585635457570171997325270996587685220843447056988315445386987355627224827890193011417832370034238581187187118775893871242438031074324889095730627444021721529762425783258972843046050099495912773571823782937492117783050688111791067143297527796984853403915132417695650013661490249446094750130332151128480655193587120864529128025043250789492758579677224393975130758059308396394173605608944652701627802536082501287834488741845244940586229021208468589806042206818980060801034872286540527283447037934175405811439281285821885962688869583472519179586255350623153625170411004615819564321425497185294734708621202736874025717340902930779123340899162801519446535112649863023783230542905071220714572244829553343810829966610551272365723817728915843353184226314990869617057830187154778836470405275742047458713581794814341665848164672006382740103633087657553340621892010744951546128399608373661746771486102492125114207490252286125114363058199745193946534875402110433281743892433157156670561336919354545256675472742800310415675075373405937413819680642940922795603814687172312687150450027596163519527779218144909574439653733320497611844013300235110382354267370233339213687913672550111978894605486813076798346888601595230249125771945241886082417197471148028570739850802407569706962006323055480153772518117834599505883318440760678633705126802283025735655164481227969924614111306679051040773650675594230277956281018492847138787999087046184405659640960216891761563491225196787122072298977940413217780385650255029748172522704275755455997122835460413686617104324642297472552509894673704525257502228484604156883850058420054096607943268147626660456433854039254021335997947447739320958152930533473322834507073089079901396164072024569383751560854994135246807009653267712046506718945371613052819158240281788016762825509080063756678061757127925622256448890108926798408192441993230128200495490583943160600347521021635564021931850656778216272751915836398378468397853599149412703872598859272465975257400027648088337977996783997575390169972195915967335993949493944974400505972533706160992083101433793407732546292244171086803617195651319550855566775917116480954611244245173653262236910400753300682988095729216809272769399728410414063130530624531441286573396626179946183516164706333257241062182362872466678273816245461934116480264508964539749024627476948962544784822426869063823285088338158404025825314676874761702533241169164348696416628033115770169073426484343565051941526976176105052493323131038961712939441034009172614109398309208220207637844375809992264442875504157951927072367718414840718784836500334695691210854722350589325315857501334400911259412721865246038508502104294041851243505832978771723989370347687437716267158899662227530057656313264700454992060644344408159382411462552393621272049511208501842275340129052841089723126848069058175550505372666918606352940637316752041302037324331182009709640397937774778959424717086354306576600467564245207237818125117181902453240056535211380651559534971474472295760668776683023206213959512948441645126789151161197718387001145434135411824006940999829799237521032724342081365387452500923678253270235857205885796530286849260365831066650619003472817428420035934201766577167935388338693477840979949426374658194694289643921668284241343078587366555126090141724115094442904730412252188182696341747308736340691663730546961859357653908329313422265781872370910962588498840574526615381305102723454350402236077649833606748701866193523544344522506751545085765467470982468672541858636203344756215650058108714237181306962311600355712187832550595696116718277773551840981200854156636025883121143254985295282701170503479663703980604505916663601620717848129040630036633031295699984800367493136429162693330072226404199895459148708370284138238910242466485947373810625543086476183889415595348683392376994883764556500523829529521680400183039026119183995218797092521635636341052866033250975956238175790028141723288570584675023524058049344760521441667277755040377131830491679207735995640758202234626044660740369502583779498422291064365588674333841124873000044340119662571275477713709138660170151853914340502230201114228288272380550261399323541531932308188346310722792594071368958262291703295000722942006598541037458155005859574613590600261353290187364504343579949835439124518608244628859545958253006134519534590035918429307042889269988849135923665652021722030056128937171298512603941570067565538565460707829359198734190801203841695320250620698773089889831015109577003910580784821581508686578599907873551167574915581397243404312308234808095212189274714438455034799702053216735522864781349875639407464385786551069845738944871121245825854446594104732848828788308749672495980956144086048510866380863437814452121252321978652133537468327048859925481669305968299499197382539441275014764269659378650252075753654644572199212700853158093587926038513970416702046494391754152581259486337918071031874896858401299801756268877948891986625131953371438319766736925340859993812335164110285597980041083318810571992648651493904134328741604725432585181902403563862944300906888537502639539587663798444126746686052595924160562688301228653263606476640737488141189896037026874361683269709503991468029762409231559563451305190820566656585391417347340325652105677747013584054471691364553064655182367005909069954712562201040924515454094518668506732624404425300596799108009215984050564636344296717233584653670242530613977799980199973788544127960393943571146727644963934855386903460465932555999205910345115844345036307142794822269178154422043541982255516669737287182465893827929804464801165872053180882705969065328303882859912583566661406440786000863426909573407240572602115166728317209552378222389019353431448514349019279086842010940440286198631301880029145096993135198421263052643501113112688522471673390350286000203552141604713563171659851596690664708555815664158477198743019482776852179214811900928140075986634400320314697924143327934471374249728859925580814165582449254589701140947642832581012470264424392355344907863478645028742674965933733343537610172109768693743098925924220967207591242490536515173140764777649803819012155716921169294414471107023225533661060990326324506727423359615810556827128084275320112150479746780470238648498730754978730766742085684712884866641960238423414746923516424256900664086679057421088141693634524859792491886710239748821199620937305506596458165324264757838628125785118255995869101684212599885268634996678100520275495482780422071208796299442681558923796976450577743134491013603266791155321591923359514687957753978816520481980884157744282219031226007139126516844032272631228778422351172120514678376097514124645093962946557743632393308012837747859953260714198542579809198498893460928233929804681546125792751179970839175298924920670276541534312188303088844846289266428773670658098836857169317329978110370244839546944911362492299932217184598383009964191622450833603667209401866525510477485486955878917740953440493225708791151880690485984474487029955083853971723710178147434524778123800537249370376833403973885888024763369528388507139071505290674802369535499627922780370888894175893685759250717267911461792329600645992247088563903829687855469759975985049312288784781774422637547420985741197578016635547590268633977296109046951986593533780138771726880228957563389553081025563683333528734603504836566641098613894479832981079212805262049960638033594982937841803094487284040081037115322066489580064923424086817488053925821308380527064482703877342388162953705898250759231808904826155905898252695250698371586205822981641649205906756800809978970278303456412579439360940521646959597408545765477894854598180658343761262789844137355057770545724554716661694056242024943905386508999283385192552064700687758957059971330775087564811774866719668916974901856268969917190699667153690269100207380836798287954674865336811322762580617747268076183708298425067027169647752632269767674490984712003924884546167510626907560803977754967932440313198514187798860382440072871259899595681259709120054519564868335842558487298982390776376668224201298309956307317328297228172860236505698719097098965471137478585519805058434175150606434889305480889938485681021313364616013367353314350015715272557432779533308457632108201246970317067720687426372399362419321960605003952799184908768445262860352893668654908664843131501554279513678003666974292294625554485943300535885139823540623114987457587143700580492111221142882782003704638145366347508416891452982505470547326912401935855065563510105234857262328055250755554731523652865591206964649979031942081833563108738775514197865474124737367426764917253679026427218945905024547441180210010856002414036923420493760604411998717666393468913315594298454051578244393607410982818417714842386098113746615364770483092528434879004793835833911905709698227354091658249736410385477124814526885959213995904670000434143978371503079391339015411987906699984893905417720621452991713805684037774502184741297793177944665815302051072596839568410275990011793356810046969056748600441593939782374333371060285981739081773704654727851654300405230040617959977713520134683142051964864693630069215225984764187142352869552559128654375693410857437864125154391474122657793567637025904368597102246927265389290935472954427241497296447117233498559177303364365409745300370535511613202460692330223647674099182305053158942459758849495907326135136959710295840337332355544149150942871776179937581816619265193818190956797551866197813078967173078172353121488266820207258752541950422958107758489433281222555040725607910606379711998622371010726322156882625422499713939960340832141998055894329309436065949754656937634459704466878383997922908911612181150981992643776318782080077662130368892295736515491557722124183492464150726013140657702532214312546773256608884916797384997245296414978308025586918961077524052583767655503752903659886794497084803067620196434384963159634702172629280180958393604933975915256155624988093757921599173065894520681705871369747392702239524107076696571891747098277459590575864941047229938129858835063365584625746202948957981765933110358594145029050393258992873426278619671131476497522504016989638960725226665576307197765035784997866297837332105742537034784735658623812065947258197538071913974294458644101764580593921575542599322198202243314177726841987478937212428179558723463655023082360627654615223972954403321259174656827523834300212821896602586410419977221735782879072716902063644048353610442472561305580152458445323816703411594972457206787885619201922593784549006467508547192098177359459250454272635465187471159822917030700851093091300702233347975016462295199208695457798069517573334074901030870680815466590767822603868475523047388205182944563844239529072650534463190782567813127809468904121885010401816213456849863736100893287266489536999942858256352323782125431380761286999624693987791593521736981533879229150668666402911456506870134811295629249202627119317201339632403256833224127781129614189027244365848888758295116197594728034447615649804745333363329778414478025052366128466057362815663713291570729768557977180143922153724307661867776927468334777513898079047475800919312431201888426881502620664994140876826565022394477274906012142061156493890884475995773924143370530776442770688703481601017181546197052977781692049394307357042841677197548124896113697594426763535541025293573694297413884172678106018586794202437633029981575302173013721027305559434577952921969235541729710810756444181958906742860215217358874842141480513030324007931232352128621260492486930511717914113579457744712639274394893217416661659796715528243232406862343139626326292096130576763498666889357933268574539930245310528133631942607653222584493323851971394337422398117998467805271646474744109583554021254232951680174729410184323728498297441766254654474568514225912100763811597779552853488616967065198410952709593586018361094368351959982684977064547196666653121519161456942008264342635165180802610188090591587030964328778957487468114482805695319633667790264017844055773931805657891619018876285359502073600784994177619103669332193266654144999092003734447364042082857313373329828238837023558790744767979393580990616509194211528696413029960647104798752938344986527802016053169030140967628493829378608652150756838197098092080417443671540855411072672445551378206969630042272124910578226242309410204849589598539829177835845483229735252696642042736302722700412117971794771907761437637484835516470450950986019733781021479649277953896620292171055756001804866260021576012835995725638838675548203162338908555479516446073724222447324371302810861772646310223189352914767374932810369711019217641401099960557628776869957185980276906856795185549408815314146710895479929195174004842354382267471707213368967460641899120032300320084923134967199466706828025052303758115874123630203376838726860696209539758748258770727189326074954943357895759258913851505656256332245334298779941809284316216641970252668550713175479183838922492100029186327401385981532293041473918095806938420350279092859609524684119104764341869126579288055422255399483878599967673181252517125103671698949754306471095802892139216160840475814828945012794931225724519660331481460016621132211563047018172606285229936910977038883008966018523148786713124499879988720558734880351728094230700056797629150890414958930626698729308960519090544704077895474404720865111208409468725642047884615292748595846284699049396203931567200806848566678545447161153243972681753412460401643396612706146190813217109553086735177526718580092826602876998426202362832821200815374418585294144390538321552381030797334986643286374109474032898199687650471668835485168965703038473413127306041484152207796894302637494831580825549288241436333310815395345665774696362115424525386814497466586227452575519104565388791205028959756303089382271511160997750466931211487213261640653837107876776696998254986511923823645902535424418052519399706165485791177067837176359318750268498282613860692426749706743442152746373706446799352853760851344201428209943377595933349010333663209486853775834471493143102456654841151522879894526351714580588340562601989339016617501488751197301816499302308527347270486652522785282367876048691188583754374899266225507190401578770726541091935448368819857563499173233034504784847884682629220676971181928752805807611548779966259380261680062101597716788875613110795491830301383875930250295685423488813111006511584764208711192493887953119911939272304684857274818352245766242436025880808887683566063924546338782256118828695563753148623633404043748476511288384659442429199660063111540318237208158012325982916860116100289715291320755416250243647556719103085413816546680613483690757700285440070777107584977089271220150554215657975982712933956623665858128029472913147926299590750852734354471248511017225526172971404211473798934873045785679096183506252412408199812470163026844510553482091614564712759169565546938736512234707162182673378356857141756971389400304605191015001853793353597124676839035088142358242670616640127792432243197112546398941306645092251734731546604502957672922048591670212808237997788905183984282157746989527017138936337159361942381087003574476053566085080651576024892416521891207453278178405587844338888011255074527796592557486589781020644730339262519374119059458256120778479269113861573196003907684392792737664607579858192010710313515005906156832670276970600128267949247871057952586270119260010073624844873427152182575533757415062034553297766912434984979174426861207190482478881497026143854326705862978442674260267892142785510065465670337739931768066915376077744034121657885921528207205506003242683896284830472349119797882749636917980392894626575956610882456243340406905862585436342856081952532080781320021319253306554046001812666666680874648175984509072656365416376384842088522449462466888695011076469953066856500958626406891260286750483270697973797924016235020262672676305182158811727823303934111301304341365038851610905674463950674164318309256623435286932953779551550607953840381722345139197394705857362458411475531111142637646263589330397261709993186369525142663835634752027680708643030165567860933817091981532057405719228931952524565398687334606204293768992795921287838429892014885681070552916099091163759616303029737043338845338566845582401945588902047007678109575510507238706109646999695841472420190527636042531653120958335085560444650233840483712642843993486095844543017494065028050066124192975958465112488994196122668189125341779487432698897196275795145905912010749261025101747555873977215394375734658902853081808156464300627665838576138855351554073017320492238749521069949740730360284760809490974687883858856897564371384156723251656297380323180141457970842578448180462258999826363750797478898501285315427556402355278038405300681632068883855741202830902117334922655548660837582125306762696135962847424203840323774211182132786417496657075982833298100964092570719075950289490868384680181360212494571278817820026131188483034229152393072643451043359685130763259847977836400874980728890163738069058298917526887371347557982264838750023852997526028411700421757849298514936040726984472356156340870116303952868009012673567165111430990736581940679901872961291409957273913766295420720525523815029159037632387688137166446827490277774392495053167519417868519081259933178179588836940347440157434186967522157071281749972546233821910284109190029677281943991511355925240205576032930189556635662532793877216192291733127724292638085512100148940674101080364214911719209664007352907416353105766269365188208881607578235906068585829751270146248389301314509898753487966027782326973964444389991935118080242964397423842079163311925777246678908175673970717540333926012660924231079676626334713170875823092544902184536478787306147609409258292123157048590239083489214773800864666836224211797208249731811839044609681647807953108008439710410141516478729581906639996225914169151444311824771068340544909169692685747120646388972607709983720710946943771984523883288851091621024780381506628089984039512627046392850240326699935553441957298235751057302957895918198632676383406239814435767632333831461416416457081382393861077176512396824229395921505179777269534169937950314192341540808353975579640606289832287699227419678237890726046333715936767271230786493945471078967252808072134975501164697001791911343989355087704434253698829435316605836287157852944324715086376742716999681000104054451577706128612951776556181189925442833971711894677223201313118955024583052325438621089553838790627338550522388371100289123145522844118016803270196467295926117261402582066880665820910564045157919993903018668314146663207704777090177407465422189886647855151293103905462026714989793186737362462897144836140594555205625305382761524524210466920327824428098206011963886556047681262510459450547283758479718398380986160843079704972843331100257266137350128409001801625531939940100523207171312596376527524708480835365223326940471631183041953611250493043727918689324414185769488065965644825017699152575789851342723586770606850303343755103239199889639945269048889873774807957967066702267370308195286640226953432745723587634369066968029255453759101031520696081359044696884884424378719061786371994173395534416981363428894463822250463418397908368723148597097481434900288590368418666072297043822231628274341358895073556737120886155536510593293050735854827146993727517281784396391700949486317019290981853389847183355908464599515002870076376618222755856694397243384141378875135405392212479445792859885782151433188985052598114029162230578624802059802763739507157869260908258022877031903806813185416357443788170289286690003819977073596204157926845493805840176699286324314671021871654190949741174681481817308504058100477684072995027393446774494201613325271521973223497426295713385568933927134751633964831710500719956071744339320902293535367275654563239655481879161275125410637749050578617088487577551907205364298335276975156348069240727917307123505479240516377680516428673092781837648407363753298833191078939326112390038345829385862064897938028399724356083637976036730412319088428531629273862194302266956298330998203149006514597619755629301274405194746320825023188300082931527683728711258780522020759732337305773242806433136835307440092395290285110217049929657924197118964629247134307370324173971631379023436604399427712300625521685037771340229385256333966860158564133270574527241582516290922731861649545670289622417430861586370815727462845091310664394925300368619090477339457913038887770772717549952254018453365348969146665306722383633166822127881103241714981190762155502444445543991846034351580061422629027969659842293417238510379563573859522297616219308477546270322691918159869913888591267390369267855575535681321903372896800351981526658193793716171887663735930936477144559914045344157874582714692529633112208127813853517766946082882210407243425122951226117250947428934590457825696417121855289362742552020174141304149814149847690046139427352229608975042848275956136293519832914798190895480995921703744533735803752781576825640348131779752843610622335432608794141577912914098791788656219825130483090420079173903376959202680387164946831004605317116738280406384748446578663461747311340358856175789210695823963670675564473149348064197941853547658237901150041987693250244467957661189120618401228258576623085945579116852576049350368039572038676218820949789541136732450426252122728153413459686498751033902307156949554263863253583269923551324699514892758554064511070087552932156601039550508415393309224944158920344437176428857152006281162925171786088089714202764129659786338473428194729502362271660312837832217448587338682310507278184674093317638466511015040577282674239400248005949762298102129415979426170103465665610229869234252385522013881007568667087789152287065919007038841064904905269163023123959401233944427371088126191560684498622241951330902730346498893129972795814509842967126999625610405345377856802313031694826395362024971075827883353536904070535686516934459098720979879942069952996085173571578051824520645134610926652898307883132950406658785156164039952669004731033041412046453194879336318559373832523688850454046846531356783475991190624996689549326092979690369814462892574393317430649985601785642586620509663713717893485266126897202964838385679983692568410898876553478426020755296592070325404664805668615111407556387974994230435523708073229950192397610732369155741615302498804624809164179830397661241192937987334804043205119953673655022979463107987235157487489299887205523160880418462549174154811513016454186645709492839731301942068627803957507928200349734469318252249070684861007357958190706607654595055318401805741310755815331353334170588037145747926231760421187454957438059617848068618469883052782345709182207704631833156529622497196974980608650877313739882808370188712037766110747590150145498718766504260443710095405544743257990246863180598458322171644344008986463202478018083374401420797645250903996852476058185029232138489347929326377811618735675566230477966458018739868753194269837371186500032478870303303957279218810901128989629757599404319583358296043351943919723286227343393368897705112163002984150046129154887977300813742357199880662436222670866748829056539724164342823721217272819932306070927912481028145402530497010483656244851376851187646450130928692568692622526676841546149863548223509004804613679837964257066075384957922119607970267397687075620559932629165963257630781550550013199830405601273802364280652729567886068770863919189294495885507379607037202585076588886339546005324888943509727846999427021699177644723686684354617769357920362216697683791097755979083429591366196191588226899963675453121023228449567281785759543857120467997667328898015616277331002295724061877243831559242945773044250511785959011639207112513987186508989077834452967180256302139592982950314790705141432661838700983520758380711870634973449905755766871845107884939000365402364016915832621165662597572127581082425472937837317381446246423608586484274641698877105147036223214986170307483841161141629549692025931495286011035003250019774697468880612434668064318113633063323831254663088384988024080122023952803976708640917114112815691010944394461445540734670161714849924341021565496311889621311666506792197520904739553161888140083697392870171202240029292164590944488062271839718522941592918357493368487546840349807047545436119942337056339072263453133885798557031795418636483009235354519651666876552575173147313838144330021222684021142837414514314484635106182156348398775056608036567411637248574468543735083722776010374861566600563409588625503707070151299143624133089467526325791497447780542769303776287285648151630146996252727440087992025080607227529304218084216811507213913477223142087294567396152937257350969169289995234008061520849493737306801519516875642931364524091833277586959595575836492722400700154080552702412810753088097201297811968581161657386586656083371014920875203161783668978930450282868655432192056099211415279732622531548355249728120358343394028749140256225511886315606998839407963707360617597180062495286504448714183460851943522123744085052253634229883302321524037679158392748326153785988347317298770605243654850140986299804201895494272398805478430121635015385516557597533547221011926451674583817759687876323806524225962184269085700135217592477703069774720130131824239124610341172544209920243427156946928571665797362944898767035222638791969817948874303705198864550012950722012893180292917646994426280679645736996512368879700078646652745570840526774121762365603812880880768435644452339906146339539181532214062230355106618485235328264145242314932995749537025478576496298148494158036709092880962656931739904528012783955978576501712971423602277421081620198238160454663637775464435483663143149124062777966495022086424696993174499789853861964562263709244679078482027277204804489180661264420760888991927021579339090663733804200582121843028747634180652252825877126528329517294698768198653126443806844136377997504978148087097028343901163409276232383593246346647431808652555165637077836266962134054081699433478373196049639036791992458832605484819962825300525465749512862268520738469504368794293709640848936971182706864496044179133492150770882892692180310065342325350217351850182237292720250840053622798391134481945875662262143754831291196931463730565719606675915525156773812948442727219653687122889506521825621602133732027805287554968527648361002720914325824450547072463150337243188895664048222909419908177397038572295614253771198168032010593363164309506618572195512136477422987111601235779870512096939221936239449085842697933228314353904516291242311638937718479212711236135434780578962604805742378185976757564412775924411929215224683532688882313410888154884696181632844082828486814940161080602746701936122185578124548691081825786666843259365765068335611730756459271883040702316016396762225488101341740402997809256401860063693771046385112000069516210826717933885966042547104777523269045955869494836023085944551990757789562121326249311170168411992411499158070984547008658346886376734733486547861725500207703461960675845319408415027024449582986454148103336895204976416619621957701946255579056953832045819626353952390979387885672406533539341877059657159398055678111692533811953595806753084077036642861963036923313571554860006248775657626669559602136566226789206377806830724925547175244015022757201072839606574821600923491205415200552992673293135896193113396141364099397116930472401250723535217908103292872332132440088468632865946656077897268553564436461983002551334606140549425866357454754619177194703533492994835970047063060256279640895926007500381648501381388760594065303313986719395331573540728545087661141809229566854650034969351301223116014885026919193844667034743596370607108210405948399592530184302294372286803792835403549653179166131870556605562071567634692015860608505084461169911440130545915872456535088340984577190613154889685457002619829880022210188114631192027386357421883142920648221315953627944998509476711571370634926328480228419962480537972994566920123601096602700800779891158937543919004061989979733412375551054709122364440484063878508100159577199505298605826025256058297599768980895441495255834590748499882265271947527952625587918989902809489754947729035879620803091391026067388075115843712447020209522195507233584543928757382044673594222499829336880255989218281193026324205051773758367292984806049182733011259037370852649374688440514801040038919373456662784969865603748763585921835507193658424881470884016795733892102045099511022661733516805212338775855818838901537197510566377528320970385634525737342081337560357408470173177777361454003364844382983365651204175503111482770165439803913851082226977586399756043841019588736304372616639629342889156511335330646246569784541401700040539539798016598988130217020094229448214501191773944549904484961582439425973640939744405926363891082628314782148873414536744431532366600310700283070840966342702571916210416893037395269222938839551228607980301584575366935946526118970939798409293890678258056933241249162386161968941470672707670497576966589250107481856462753024313535485276762621546018381576104019023179179507630316702851014149573487618891764432915956384833340149056130149496223817216774240305731415624574440249802218284696915857895063572232289647656661490755661164614986034203111874300324737711514898442195676743403885677699351517048346558268695090531505452189170588469664332297526187822427353443059082464944094985259270070096563453294658669652441363585785306159530389592726338201122439350196464533993002011690148518453118432644859159792499076854100094537637628145108949395993311758013893057011023835656711953539041493860113860919860539268566114850845669458445100666546785889196864164372115299096933863577378102169222558649098412054880778179752590276183534835294594829413673125203998373239612315649070388670420284171390995990178603774787963733507369612945995140680180411287925624087787691740757392010283618942511799115381700386753894955811060347058125408099287550178672209417382403585345231070796199898189325325044778150154368699386860305991997803667914803201096621256358085169881267243944431681058625218135631840997829038517759209953746770300987309126227518084187989661807623406274456362602229022338866105636871650128266812382297815017573862049102538745594530196535659200793506923036776178256522370710929738565020502692853272705805226033633823918128800617949770042355919520592253140252930188830379337762585450889836984704470053458231873093533919938736178329337763461032952317345081759463070220871546174602151205295457531165660407022296661094562204147590217840452352242155234176533654637251176525411557624500699782545729225461393161958505894153863652656933836492258462615499628612215432613069661128059822899414834149687599475017851028174569442325786020900833680344394282655276725283620872900307738946764317336196438402932143573241715402993391226864737006634247058334000821736868472578395544202881268509593260226160072869543627450126437942745724989691173487192551666587099978130804956734637622926183391520305654335520993618939052542745878492159515409408793897101166411102194797546034977703234668426208404373711844535283623286223998925273434131584590805465951494727723367378834229366750399902536549148329407331703674565451486763416338478151254428525702066594872734124400769497014896871443070155695747026562156380427636688772440461241523350598368746762362041647405195885370447428151330930539036782072438071841674451341037598629361157365146133914026995492477037588511951081403067880905894045269602296763599843702745714891150992178628016600983694707445946850140159080610745754643965953598076142192971364588983114974827067903210878192827726958349097829753954161037261160009076692995211783074696945117440197949498056176030461137386173801128175928544823161582396911761575937603850169604387678404695756157526581318832678993633835713158460854395622146957113155153024206729557712054940285314119735805080592932587312796257072265123482951762159118099903005323230896372393009966955678549105565337028087140787145338744076761599270025605966044975738139882390212782341675605741389982977773710951032231608582391425054705335673825354255025628192161954399269827445492267395132725598991023112512719621897600031082795004667058963604014325184253348661217516435813702713527844964226365968691519338640719815648801600193623673384287343669072609881406991658912243117013231613613879079035112859301518904573485947723555312550785154400855400476257276288403793884959783801532122911806645006523868078198976027507256657305789491456103779606730047095198145571884733266005700467757629633624270839480534410773902025805956762802520999941165477783602296996040284373548395278352509840451600986866211860682560086755478857166922960569870618011100589606759768871198635877250610019767867733698749581339948966913727562132281920063633965886460800493444416903173608343960948536303189680720506630930142697197282881467164401986618426897778255355723805234321146577753017413051820182566697600523493973316920172927103672593916043692601831264069002735142636176371236923598405652811818820710620454894658687352610574026057655944802963264762984645234378312188520781675372850537091265745255392262701685535956395677295625303295809596621184779620419507893529554522221022956622348666817117418855722406940434846607431657914485978847362347348544302903981938198211552351676180183290432284713723834748945126719026102026039336594906589892373943892926258581777641859015272756148491976755018467734474758702318577940026787048035590391122573718590776108003813985863992060987130069786673592672070353528445178458095282585107386036074443340956899150316660491988735982063602716943335952638381783406471196024055416191193668984485910492227212760623225978024286547711414000261259872712755337726720034128708288132738812354675886158148002857544436230684604359922127385885617749606782229061084267964795533906177142827606899533089844448793746629928095331755323180041424659771692601896631689336108120505035051057391694330343701394882549825766291133482699086028910502553498950675083353840580272072369003486767753721001707580601782018476976619161338679303764791969397788190054650905940097475189616898160240195617157717983151963835371123372278011107651973196350382365492080267824794371839977457869469331306613340310376033616149152077649236789826542796311374986941753704617320792329951652428282570978360651501297662043116739473165321117805879293666416394921381768659697147761659811271015979271436127640078391200466189967541176552371650560984536745593075345537810127401033675873159006412905497857900425398308687929438584199567904215917599008138017073275129414778625622139269135832703605112301675500843083573765380964490908481604195115192039234004028091586059466020921279234267907213871860763784665650174912851542170831224675150167484324514366437420672161534786832310912251163179038570826742944356399660317719857895445526240935613708113154988756431699277822587429473275235193501449522872490273923826660609238464683667689484264870980548379364797715110036698413452197301501751868960536980440926856050800492509292620521360799637260535677871760433835246169452439987194069255111642918167068159795986998775641977068436104091841433901549081623863861721306833938541811931819893528220227238570504853393614637487845692026479395578596349170501951152418148047371210386212845764056238813982814426443378982736150241055533168529859033019685028023885120587489961526708998889831643397347853281598276286418462762668658468376324359299874704967721858653805408277116039030306157783799530847346268793291794134386763946473309367115706830525778871173535603610544492919657280019960801400043579437476936361397180696713448080374966606163956188877624001695865616843133077680205302687721975421304467812556290388222296774364090018404829546291023759351253658485990454207007853884272584750576578615248575267761892410475261220336106501840972597513303712202071958903193242385175366956852243641391694265417097524296063478391578090947999705077443898437723844762382937854608881646298525577395166976448307123118849455919436187474858125571205649522722372038392636357158889039815463521582318178677850864710496122720862000931854585699667697723540489043603406590765016040996740183926193657786654413566035689369953425866402575485270000726657053443031284655329306478960700094838371394232574679695131829445088369107128757983194731258401308945379514375296490754877577967310161611702620321424818530869533915888822175786033886867297257685027109526999136209098395033763702080628105239667585269388578522428271389849204800404745656662032320755732001250176319415798396390913017329151240128036602083905557401283625901302898419816205322647706714647261942221936889069265762683732589857944163295359597764208566641371479002802882665388415787329642210603165024664070599631319809275635120473098314705092887172196340394296147434411291004498742651263375662640807712647855907393490140604279986869224204668365474106770786078529818525135782717122756550218609289688258744462555672982765935019255400777635829580075990134500227740450976177933912092310958361957338366434535589965792060459372427128906045568839246295210635852965680581477164068111966624911696609280019417296956732109813937982919587631228130392690084683351672459104686168242056749116370836241603325159717676505656233959677963524711675663129550421710082109366471003735126550104131083567953797163150230225319727803797171918624638623073300198593287913419736917242294224852769461785519652660872213262752357168786344468455326108347852038122532933683685192755703935105456472144179290501813848594016712577896484294361399828249932673885298332555588110635007037443780882852299827895587593974294041474667266969986809133048374938293178301181996814189790152496208178814320191551589066948502677726136324351637702179264114036653604204292202247332016405932088161285091262581292070582253488509174959953539604797707569189450035048103454138079893155890214045091575206744492473146439870258359196014723410257419883993688404052438645146387538827076177898887197258344241677020247731699037411618993245686569054499476518866441998612094195111398821492009008052377216835149653778209442176496916488404706594105851091775627710308097173240102994416833894799404239961499912789109159510291749911518352312578092353216122378364813924519939887767300388026720761583598150868834477349444017175758679998773453348033928875622082644747107749082345358391945910843899644066477564070620125484386628057747898189506651095276464908611679320118510057495140502488844730688344996640964789415455620476142124762135143717932586734551002450149521908035727537771868062115122832631119544959650018485388949263411456078040527502418936655312531804783637007108618249299530197642926726017114822229361244470508448254016937155581293969231820819416372137671001767602622410550823178741464841186606977865295559836874667666538611330541025625266727401921571870581749926152616652151811889423071513689891394357911167052443139852883292820206407345189476572305014679639148490075016103510146302254521699143036093951879569604612993869212044926059021128771882634527729562379260531132690310682864843312958380884929821280150664816219079458595611463296861131883276400240361673241038362602657452435869872918061236329329658466463550204645992021498883775950671447414995335345016032282891506971593322064836842578368695431761818808006624386850391289353799005898208727311574981475777632263289567658362176050065354142891756870556634262512640601376089960208652933387907040297251690157103015868046728579122181328389470839454315396441420844549681553712688414252038216426791488883958561496954356913905754627871406607318405006853356449476257872346295108301877531717247658947192802015554857840887155488032821239665866572631673542059807678844723282583623597170452609248850886244892022743807666564715088912863591871747333867554555883113958211590072958340340744589582619020720498734760787774384537321424296878587702751668011294594427035574868457026879386449360166275898182609941723325853472263312815078610922737912968617537348184697104192376295275901197748816129466346144432117381188714428599417995876812839342884144015636489118212817188247319818983914134696781066952623819080825408509933528072659020017505921481294325358332162674446329529039873198652241635590543189361702922528329160033791704014120356477954603323659358527479004734689726681629482215413376198930253860329042250522410286813991061030841429727401541409965193721664359745735696741903266746915003430565880654070773055047344373544324689742148871211010535216556598272642389335777088928842953390824547335160848576289577038980766751976287885771658229894131493188368597591259842814298879232934144208256089577434029718925113148065332110494317711033834642058377974021435385541187614117278587346303384159593759407098902146373576710158899985370830604185077782457953320598430917139991393587914333653041732270073308558050819781139222659199100199298534274299811386904022891697732781112297638533692552821980322136265170277491202999300925472029906925719892820355283367483341295789158314045771478818879046359866191677136230637892479153130430983635009143217348594452370989105783009865599721538625462338464296995328639405623781510713802792703014361447295319074322567103232026869061691050012325757112488219413703639305414509296431667224319594473486542623155709626972844981077283720211123089856375152074009304864495855273971840267694192593412911911794351546579081715848640514719694749360327143830136407459458910690086431432887776911844472948950718948630246563176757616323057632284801638081009708562432561343463957120666840985270402526284436201272024115513100626308776005466621261418788036973893515207539485484336823866654852344243352641464568499157240039220354974742924177821878528665157681135071741137526536925067128705046809669249320004293011179589789447221063350377959278715940504953562308835132141596614250561280420901440320853576062650273573672691313062126899866738090778542386611431022746396947563445011826530600830049839796941394503115856961472359985625076888920858597313229631287291317794083146408188253932876625749356815729303944130388817110082369278449942799939198397354983633533164784664345599084230350100754005729370406070643365287603587503393570401579392674463446273516588321385243907050301255101751126761297367083275548465078317182734595927945389147990924261717953991796258871999149560465257626550183149801569945808455821314776788316928534487052191832053952496988389773558904234770808695000070438269492126196101528885558610657385866015464134822041562418448731144268911466212385975574395545611049557177801149451299856029767913229926922158888516557307082443089426650654023327607851615277307730495429772853383838922405658090230366221809565230493584237558492143650706079114106439682534811320563133272554630932534672980457696547365342597679534040027209709727002483608145961542425777185945443284782317622806642563108876136147883588749264578131261407715847057401621587902967603834488627809126339501576085392091308947224542967449694248159015308161501399723072457872006639815243079669404361852429405796009698276225279619166759587640495330523490332965778137592144564300516664913362034118069210418382108029887861186306193603322021641224755755783475370472745259425442994825199897222072106305490009014621823141179438164063872652817242141602714703715224800693984701975995884020236146961337292837585037279782013359223609733516360657330854830410144237325596765348729374309611848805253163466825413457325215274861329543695487602390184051590979958596525364289262084554178236204339316788812623329003037117429390078107871889059997102186816165788653720027523664017005046246511998502658308337775102761852499433149216426770034821217945353331184140306285181262274241017309807651554707329365610669294357000879846311603782857861039904440254458454490777219545343698667643077454869833101146435216180085285362843888805990480620977948098834587510477428860215612591662401806978363536175707084898548756836628980375986312969487108407282931087107818045820091279904209993562117940974311144943521234251633886271251078132282730810137951415988478979905977402847612409845005398751845478240698930179785201662516362298868122138766573684457375267030747660573017701104450674808154888553878058101074673958307174653102789512001415001869225535371322654405971090576038893048489273841814906233732807806271358911012840224381442172497268349384391504895382309792092803645727093969181734574865279809660387290404512307178400502230379153456021104066689579698427403114900061784031763343231763873371760401059824063655295329560519466813137391946925963747140883626980143204173237927772799983678141588949794140604155005259801311319326216600698856705372081980165283184336970680301146351954397338975247832538960787117730325403138615020198344698568139346455691311277987276347665893032430952423465458281534394139314556098585513277084540772080254903401103862344120305977427016891087175104699363411871652486118305380684171638320831288761710663597164193986453039505733091664114206003810326906016173617722515094557165924231809583515664909793535263125024178918789682867097801332902916964047778518612387222753047533764203580101449006892521039506877639649439232768467234538413090349820874796536482535798271938376885701476996716616279007546435486295584587097170377227238762561775788164971335119869916973212912715359732692915104316981790918066597770433415672195522491928453561565336485345299641116815920856822687979745730302395049576948214061868817159521430908005227288512488918032462692028736844460259296124680695968032476273655203707101826596654448306313104388241214695602204207995193574664589564623419191371824666637015070482093557026676206064789408583751317942313497447703034778457328441497409558046526105016741285648035560520314751336034976209440594524171302327996618732337809648857616532767469528098589080982543089908243058044175652454586271039888400680532030646920836677021070725950165322154861025473061687959685692744622524056369123870238734282546089666028870693357731403829599668729270496221408034759082924233020952920886521431061962404248220781822640902275373682855076942145379006395037568184949210988940693981676063481303938889020745728842823154002731584775021229271751481716120280080384812572822978521738176269975062400163014061108303892995528508912128325546312888713265805753672609869911267572309963698308257465215109614125143219135762329537934287465282610012092307271094382729123664168556108601707707554193008315272014475003120974664237484321111287315391185463926716795888286792356801005296994233973511684415469041962140990211584672177316381729885946115504584990923856411657866444448734247901833051583980224023509561948485940629530120354761860409189324344025805125897207963431628129712345465563530764546019837085369499581158247078802644677035070106795377693209130099663610148730360382280745463632411751135195908060740424268376059940757713379482077230162088065773351573668807269853698449282822544144884618702498689368212070427737997525561374129586259453867083948584176970722608091742703610172078060663032632087259437849551454190126674436066038170076970886054431841365594600457542560652961131385946096712619708287994357776940694316318105480886131422634637948922649824785220823776890160407237371504478331352843747974592872710982920875641757778123170564437883499305142957377581815359873729402364043896777483863908337248655381384195899653506444983665439082017431415144269962324265441966468829608820156828773404643580092815561847409435222510807195897922377136913710428696175494771131388241516152690941832009802928648335306238988466428806092075211080546256841426017094574854891004327918804705460611504831862561225987895302980628332817365747596397387061652123540639857505014493219943492034620234807654872500911362664038663530637030092742251750415310633102002279319962256193620606015430457204287564155858916426746728964444306537780296238075806501247790678389564550625337819852810133800904788757016326083263455371190207911011527212559152420280988814894181547855924739437534202826098672223110954466769167324694873588433609828153695156450671864078542613672600876057479380818833663227365445572764009074267421401525862117413592989271241596689547545380797665983918834065968039647257457299571760322330400710955340290738920002821110950678798768258820199378069265483678733252454369247663104255039044833158538668923350897244237959541346699991818728826982324755507548076715405796501458524257679672204743051146328194352522504763726094185238390999161996121622499729905339006544545919376917427316275052111929261512341559383383593146804671447869709912075138780920866977435621596048170943550781391251346335208618241568536122251949923534372825469671806052773518684201787381226324271098832442168126854003973438270906405174363767383069661021307041661924811397242075711518814722121357881480368985856952548497256396377779231363074239609867659621911167790769512783943885763210662723929437094017838364170367644571825154456156707383453531293162285295524833557276844663159079442595661303117116094989268536866917725263450249400043958397404099406352358445454587792751192246864459710771062618914251260956667388874388905532868187009079647981457758510377449730041558001364323940324874464104616283836521792781156794841700397409226418528849276236783945979741667182089244426867003053077408300236103807270873790749371116850107333041450601876609453920491854895810919316091887825443758450658913855311551744760189714033890328483487250660429179728241881479146118718045975470191872020641467267308425558430060304565027708310840481278736687160829531466550599470839611546840118868383949478070637348017601044481992072503134637939460349142409176651560925690025024471857288465894209057946429543859664684619502074470705563550488725918381123523630493808342429450041726971289609476128982586235269466588406490458889125764152939059799732275687968569658711626904539397036523899890719644438410708725838851831483568194799197915156842513180752072167909479681782254935210626466342316870363946481905264298676032977360841014635514696318883910774185209074831870574569751328240882732774222501397030284768843497865283544030765806112589854326818335402351654475963043622639430579745189527263398652032679861122413474835688903998883992255282368353724143451817953222341732188992977257202248862735222550808722547284339833512894291145990377442018650264999086133996986140426622470020945988316863627639380502916679044241229886984961188014135917385686420895700213948363504956914591917248365664600548104224403896515308767464308187524382247316916615370740786985068174684355359045842269806485104217432220434759245527203191726771748423918831919139801311872051543498507642477162685973400042746894119822176785932563253866515591707766886812769921389234730766756054969908935980980961553668260499809390147635439478976636785055668847280784833251087816719767502750115278764665673440810766061154442516998215166926894255140809236145120304202414003118124016916874505888594760521129585715508636621099936528591825146564519228196720431432470600536065788906449563321532532128610728060787158497295429402054955737028788777006243743013327209038492826796798924803275138610128468842310889264466290235258620031675989384140201022664406084327890256779916027667036278571001201098160518646066354192516114915673360345661339494461112551056955750830952395131223878429119881502171849691524931511839521243739339285327466057596170489319327269726878331513293512155584151900948828674163128513913878251478417188678582092709403616224707865359536223887188061022315360119367954854927168621117881277164407498422109114458023074814663542781921842850211346744870123307558478666832698619251135232831849781872527198119614474778757799196030609524993224431616681947913311807321524584455535534646436902352887331420761766720405618900857501589111832436962684477360561274732595179721079922106821689732290338790235666317483532808002345997986119792141082335605685933076246130559374789592252581429411853212793103337269427813458481859473746108484992793062945495011079583134458018790961133395250645888466477189088189527260856994011511023366114662081634663513521037841968713767029279608071393774137472571587573084702454218937789221146068494034392975006174685515335804841096259781102704374405739206223592632757692152945429303093276252227276497936220806917207544965719127022013576084675130831092014373785372821201936828846968685901383846608620464888848095695694141418110939823438116109012847292802692417562444001266736563931490319132694687376470897557888746432165237808419468633514589917863500782738063093913316878379522439664205703810254016393560755934747412086551435028948297879849853646909665225154384023800719969757988533510225796706361943290937922559391097462390424108529470846135879536095049407267780080015324404427990344607316575597567046448089540591494242305765883863277892632804889246430632210690726392945990074976482542274031089835752996906623699699973749416103597881441458486576964630760964726672540609575142820460307892171919527850971092686802816391849765492254438777641458339253783305102259161540308475673320226117313470852748785969508180875681674891529346777199851615040404573931289106755436867349970981562732232918585617381834807063278377744103999469004281119701072386248935796081822717579680858850041010764731349977854892455450248250454603909033673180866147830562993292316181811000622097651549569432245407569658518610566159254103493993361399414266263093246417520522222102759504161122502237358221364960708582248160028830516035395452591725506682079026901765845117808922762735677496187561673923469539903945074511900827596852830648642760007098193560011237196345622065130565194022367847417585470769734542342634016018602658116190439886669946775815330859111521918031480920770619994513361282688000407190267812274833019848036103574547245114912654100863078815709072406253086321270558011731176671255263792140428667924525390261793332606468939528104866094114435400616326680913604042241479288029966800025727752208367180692547419156971829268152668254219708080375765492842004806149856454186888264213864141901394957021398744252419513459527969904566514822437850843990610390957301997732648492777691305058800558515881652365331254719115332769724124909347954994224445950053336721981245127742828218056496812575533835360768065904083735965007529028857199782183954299799221603229940384683881869742162865295689533904408617110540960693789110075406109445441514413694735745152102506601450645618111248523422766712047336466170561350776676485170474868678962339040241179590730992019054280600568001773884975651392095099481616216362146461937687441728539786192956999398424332560288689897587996648415052701885326250489659906350560653399064257435589939329292350063075488329035891670951847700037394474859465039419791970108904706615828249543200648318531341834757148316829133418962909680738252209939392445235670206839458237441183133709249625540480067316539184349138235360708081291216941902616881802537010970676404916620232018540648620566402669428862996637998824104798663089704460409149495141957108697337838631966361830251857361943194736803452614179692805491658715068618771614222133876678066192760000751566443127545467940466818288828807987223134773214564012453754429277703875557350372488057007756199988255811065474325856737061117601515587043240621933895857932654464715732991707450701537547507370388817625918412836458507276760870827453163586139152494023968285427031121380604518775681565600807437763468858758580065249623113386007567789688361362980133838377560617499905119652610039233926816720977897838448075469407953189843471620249366444916659394652977147142385960352901816698977651038592414112519658984627186448784415703483792064438703265094663876814947331032948245707744711812501509669042838586343577055488893407186982882741458675685499048087262859577271659560945032498921316398835467080782059104068337460074812382057995526208064232074146813772241299937006817243649659200708800923861838548975888036822234797671872380507866542969989824569979505915638653125858946534347748251760999371354113888347896204341323005077623431909007078946184378722941081143482303508833027041826457760371045226620044187162362357682371931235156374868429432240976367413093236407012746252576506835663659829170371652826280112687761685088153882346644107335331874906731276333506521469865215521485345039480745172956524846327053584294609100303217560794456720211651983111721060825928483380421261094124968706948165101176869985885944575063246877554876871175965080916246042332412963302763634766381938808880406888182381305967965634563446545665375757567949063560721576172233493950837517597244740201620228058622342910672165186781930240845958685797465749325770117241894778853243282520485031356729078061546315674390696807959038540105838567997412000657634136845217120632281441186194755958242419741276421417715896532359595801361037552320530415365205895756972504595744320876816904593893157498223182263055583962089951589754500534945165764848164899884453580819344689948817951134188725325072835819725800476599710121484497000685117006034914863345627000351631509256198663030572040162535906611527457365165680669066089557726112486273342734497575525029234582819257804845624946579632560320954482528108324076440357438345369305470475419189544160604286734425524694872801944592411306568064596371719730317808039612508905168843433955901925810844673118353429844781002486346331346420706012325377235748769638376355433323408749279270524849390205329786129086337316378645961737690831644538232983114114703681812290818587535314663884307988474267574540346034194614308781758661527641636082906397134854466708523184676224160858098043198566501705177098089545735026174319526372816172075359595488412338200609487021793809543583379708645480981094778150697107511488573943719561108005110440870280134932119342658915575745170593956987747980180041155275166253462469811219164326809493657702242118825260421711827164903252798973168997300665993701880075677788202826295645972338232893899968048756741721206722562264502176608767704672579494585549829064133711064856292740865504590566164595267593301156459578103977302389523227193271923089887993612889047382861254517614164410406519580582894190839378195162345072495102011430771240850318835416592829158830788791754375355724657864715099659140103604761101617372065217015631486881133759658941105172465374929650071228824974543181328164335023175445522450019103385575981992361457389501244428895538502307118633349394148396726156682322813357118673341159964464413025555610315355724698123320249664817951280960093613666740936855834831164944954384708960048750714858187842530581520625294430208115606368303303447752788492289145388747730416949730230344251916787443572004595502993951376856849527045912151819073387461537329699037945551296411655104985240331774064948781474646161869302697314649346765468572690986747078397832039422731086346847033998771486598723222589917577600798066134265760432285189130648552165461772302393781202958041918397017679372713859197879976672254481667700095821072772492094958758664405157820293580703098742810274298029080780355888721948179846925845031137165915965274675282266815286111805204728216567239162410135272492217462043666903217095934584086551437883961915544404809819451351980660496784410260830419757314639189729682124858454797500178733106201975600676948105966985263956905542926983182039083368170454549289277472118673947701818836212209292353304114847514080688995193702417032739333096480061098082984999744787582337736392037012950332944132737856487327308544649500331197510871713022331321713100025315953271894487178906580503799034853422451650659605495316377707425541888650498869652688141930874125117553566072116694157351095100886109616250636276366512889337511273861387391308949575491847682122775169906471250436309733213138234149156829930354181330646804498342783068387531826908716320404023304194785947500377368516252004254040009546632005971488568365485117932345586385712783893142660470094819087016489014600497826573930697435764611502454947675569272172515815538743228395230822957734775070817199417147376030142988926376549024167046191690949148448049125361465511549580156800513106025450795911824781046351196387415476640251461962288786780300111718389021670004719471514756355961023136074299321230804866120735819461610456116770018333832636226414860663218530195821765271614702408576488654646073562000694310488535871557910709898050940136131538897562118905037407471847432830848091046388269206403874606481993082611636092570787361508917824606748253810702998940860340626503697265595812893305082249518301824486678027746438901540902627427753963262370344344591562158726789724830110595173222843733892864901619900193364590388271624365261477998376837894017842715162541541172537404154227415392260032708681280563333809443511392456531989134781321113241538637975020515316370176662820391319651205236892558665418396727563931308972667958887215183815339616841970402914631588972600100100830587325119534673312059274531118833889818788770317987493969238902710709493940606748560716752010692460136064567861098639566011556589664625002573588347830144722734624323077873152417687940983807940557955696989791029604164351205088486588850514193654810102203698585002315462167074615949588754932657872928379435730877321524941297125868481837675581799869265197812689464854340435713866371489433763315822338556623873343040322793605862584425509838021528517058150499238232193671443363531032651652041151867949564894445687558165991531876686371716370560812677526570949048398447444201700070673507071879469118507398942658723482873176583207668460418548859874386382578910781744748208299867659023370431690723825091439349526543381470944229803692320438497842697272003134192877335542336583661395003436849853622317333023068365952933322675949015249558215227400283430093125993861000958620202798589471825628265115074055567200199216576050964537076223410621808869472158346832383001138813223625019608811535918026927609468716917110907160643302750793517443255034696610864278140171243749045731825289785072999421742874671762303517945508131001750130605024358088833118033798368687724699722260905489914940497852143825229026206447154987134024220643971703424428515194495849522380893311705892497827332130759916961668417853339420152871002226776024488466438526850363764203659940186242648476676403980653011060480617461403341688555894249624214945215019397939125498160174288962010619507147377654994775639792723860771605081272276529265338589449659780373092868927013777022427718228482965747943792138215233622222083122587881287675215084244355204749757354320141258451269493146201001649439692934276887777274187188477235731707916723849119510056515580704441523668180706837192141365163108735938273072345163987691841361866020096835217239401491609140838240558739449680087931368313322129176905246579323363938671445787914010033508209070669212209475398442453626501663283427893873946587832195375322967685334546729933198784851374935681438601043960061236505300604581697852747343156569422121694194909511141137560068723535408846669626659803613714412228258647390240905598079400802592854392694792541907374928066843269889182447067423816445770958719978645435189653435007529579911624061036418560582783124511943126570459653922609358776199081642603699785702186936478555854840900472527840716468687026980799952014608439181469956450712968001070403605451779160283869203739622998527694545517055472524111652180098818077478119052530679620106269282867065044628615756458167283351052909055850111315444279691215731370265863557392537851354021218842950212123340887143243842349004392454667320151706507408935038979807585823147566036062544043573045719489531986039775232994697531022461789948738482628541189837257650604990144337291643202883151068445200349569086117715770377617707751240349637372386091566750920309520948000929983347264958184473955926020479199217740199468643882742442397723750904960707199402579883843692602233708011611063346757468568280581792625171730362283623736668703988879045672843884638498912233743431113411822253318734154716817643164251670583985832044612054187133584768475947473662308419988165826751338271222186136351219733814512503022231648029215280529501536446565225886788110636356925567457394413144949652544153241273806398903773803265988132404987527006893333080815817742973677986123261642718107128805823035809256194645489639047521175110320144794247370603768830319528043324545842939149341453760952412921184674038895462547288015143485893495011419916095182227518780820454895076396496784873309804518337105241401522524371034047932899137848354956657547871677855049349164002115383831139018593522446710263832609035275995796518731419124334615818886255703222466502272669951381392693619757063798931970222218318422305333627681766941168503688761814447229802731672761208354180934319194396317173429924902476210888787641357065264880788201642369595421969618368021940160141296992266060617542618199370201349158313806918353972264954422626482161231535073274385999428332261902986614739054463987696034989886481895429726032106951944333497672148193407506951354889325240097853006612499526171157659844492024808851980586483648660731605028309869632708336062502084759066966801903250011992992013171801839521656820995473680818417824476714482198517747655715729531915255167674821416035038932043369871067088715189612836308197563273466706893743075030243667965948975312772941343904906303762004395017596391812819715874837496606319484271141187296147463152308970954533775733971186960187791987699043111302398011028072623743168318728522259325212816843027301071464627023241129785033412530565654537389988462744986684062823560840904939320630681330946441630550517454475233446741519232685496391534285141083507743495920428855156556836661250267771137361838963620765148186156601936873309546342258732937816299553375549815152176904362401679616430449176684947578230279845526070611359553564206328977128911423019930742834920941871558867798881304996231645023617999700748517339935004323702483304792710277712167704946454039390864940028372183856061992429531915580603429853543175198315251973890412607283403602715536641692713203541538429412989874584484101561246386750925860249470677477058995102619240809988243927939875376170087330396812372759914387109163891996475316286499787404793903539242414756947751951136999669561757680664852601011043273715948683386129013127077904802726651931146065007124804508137751285098210502987842390953472564623395226360185573544268326200249105067003029351285517380167335709669447848400302422590154525866602061340705171401337955551577814028438777584350502994965241335567403832486315851133819774747050073032370687707485052117230582114675723116444748644485381472676061929529837472999732958569835667032980221886043735596810932072714929805330413213075873739872425731451192884000176320646227080109061150342455901922535420442805147695686135634701561243154833206082373624682506070277070600909558713066656989488656984692882409835198223984183982615609521070991793667746878591845478277441317090697517739016627188347808351716809117265661211486491579221388514566432721251980399330194356172257861208272603268895044969538624204223914472673135027041663578893927518806524820404102277575991331950150859453044127837182372641780988364808017007519262218339789982593949375560028464608359639424569960514816444625376171895574837923588766756648492739968193296241018840358811058958284192591986407885393341402497697377308208383255753789093674406059984249234633343163736922701541437402047247554329998733574727042051115804355754209058749329448985896909039337628874919126482142619858526200788182152914107514325469158941715507283185886397511978354256872060858180464720085030988428168548324078933714092976342235561542024533614175544319415351042740775644855204216326757618909431273469995451597340056133169675565678277263928987499152673599282411990770916920082630502825501178732317214359060863209324050647239270679840213689140756909227056344281093711928327433848395997784378738291646855612554490598846523086731603694636662307070039561162861951400810838530969995741151208427357151615599289811303312911551589578819700525797297358730393262912571173806791472629278720549041193967651246473556804208814406813408438580405909752186239887492669611650592211131084943209864495662606500143775594414034856781019860823150896581087415879884310297133618550104381114687145709929342086547407425745314568551286971473603271643625850370857349657756092888139669508172407765685998115856811488407567579218587590985752952613205633892343720649109928462454470884236707457895686441649946075052231591516457663808090105108848121990785780062927637903956095118364982279023354146255643632814014216126558213108570628904250634696532490669921580854292910053715632460570613002041543865051942436920337237488930898342071187877920279611622216304583401404444546046498164386576742144265515186132711866887668284419681100721490446039975103043060434783480530280182231839474998305716444655817752443058099801953520771532422650247672049665624767985560242855630846656208784712520577708721643942009396211659403418870374882907591827835951844836060873916551863627548458832330895667325156357683737959372495105495356919273740649754027372305460064156735299859903185719798872970654305541882876748194253516777463450867222417411444059887870106209373299927977830905079524656859150275333743897370303059816959106017132255806832407651492079328767127616165331886708307293607805989994356416966738187829573377829476861397105640962172514753975478997969027104944601646954664434349389706697928850947022105837395737578948538305030729079017771057433885355944875172034373390361721350195894031055741177840676093634608845107064044210994301593694735386275270510354680257863459944334257711901715145346971920663639603335168035841413072128867475218327809171840584035860015699438931756801425861009784482962133667751147117895057465661751779763972691347078638804854648216031865091453598473550486992649547513457449094803136572087319988045377590959375353790880731922511218466410399896656856946706339988213974923663089296140005531632933204982777312376672410437641330103450601296944208056247904479776555536853297929439726861384320560013113910072610800802066751983573131152158053653068014535899246584819909795045015308859330845255742490740714659023739077220690658081588360139049526275560210253288849210590679619865836897829862037231316955554330299347382335158849201335906960872415276353408592181022957331556722985621460041139431044535498179605331935509759175900969783387909897893656495037185363472084188699632688525480040496280975463998137061796500790941391099538853494768294511031074644623735257235833675569089206787917954718265098464704917179427883761438088910456886036511783738337355748051124466525126031997838683681132730526005941744561037107384646720974120783526149333639617122435786876823850938822795781738018832267906466551785013250025965028597295018640675792023820985500305104010474069228873682915114168938349585745800312228836248035853932006638799579763186041013316244933457428827083387038289387768408954290211789945963678026445178759287381917128458124189464905200282520363208794609315774863468081773505258623923722845302155378338686702716534563002529121152911698023866693821087505357768792856935264151164259616206297391560322595002139954863837993786983928761668452025228772970173510972968838379227961713130160875419859436061684593611216876236242800197826346001778675738696326812074562090488342647085473489249923478785582834971994077372659999219751471503476715119113084297348376966211465987860058426135042484203190919206789597509416406014649616609568958583226295157920382620939024946217492717181231139749825601957832837845519135833386148639026820139794749406681234855865408186970101227632409819032330160914022748791981291250460612327280218300411161675051996768673236386516718352399681584062364316569085691218742495226498176685320469820824521536055167858445991456476558559410905177289699715589330108902057504733622301088490640187425010424769404667458805077819754747859806523425599273890698379305174722485813170482971493960062901179970503264386291487143499519717717241086629851261700877403712604881031605430479063884330966783713727074350279741502709818324790149262207988191755157927443095153333122463924727554374568056265784048756392448676381653442058142113546236897043001367731935634096666829097970223473927674682093267771664503642466932217173108099569961178520774005135351330230420375529507491315658859637879827889325702609737568472307268640910954808072789990789228403717641587587525871606119290004551503084060806315538944505113517881387348426948341466697680066127811629443747313379402023008042714128348844636980843507781400845142325510113171088338223145934840901941315318992821207234330636937389327322501487251766652139018634977013289709651414113198135039604818785683179623410632672116968961750011715412789936015610997677169258478168689984915889253454536030936020574418924186432996466774809414648525138833323719832456716276855131387634205872725309570663273800847763809632932136646670505576324733735223118969056614275718844497714108526134922861966138241519657102282902428861855395366882921542604126210363312582819200376840289428975919352724976112498110298698937095456909540688063821789726413289406494482677407746927636757689040272781674200992343663587722638786099037816446353643327382259069819827174621635727281320152288241960068828078600831226929482883385026867305570854999513479329687317781371192946140224221516677586073375790251117610539661517586674133070512648789103773467030872119308675171334421650539763568320648718835087113730378499547876423327831116800715056170310327908920475653112177135083008662199080074381642341032181669985416691057875235483900700308065216970578957972724186794763333046689022563991954174833519244657502463217052689816597879370377451459425013153953734567442887258557479556497507126517110894743379348026064995673945538964194548566270176124368450026482291860013263593745513338465606394954905162082296723784304399696155313266120784888887696853501013674416676219000773331746218173065481537578082087085516613907259184198895230726731937291868747129898349308075385843667325949022428377420145084298403970228149061787592803711707701580605945364763249728708724184762867775763030677924693178385480642958697373420488341524579650177818338686308392304759634226694171351112761184272374374338643038587776319342077910304718758732919144149143143979204958318697907525233992810849494377216301731409347159199246555930439398082597083033011556292587161855174181255206749567665852040995428036100624452132987715230578426506443504916548963481104407497228785367094998544145747437982464591339903469293900925556086377369469673490814321468396691894250711200630157989809312264411502258083864717999959604608667428727830011996040458744358668437967693046599273425989563647022625536605858237008563167641110533162756179239915611431910678957963756703915826742271210360983607839588381640971508125051853594619343381278584580692249973065040105827558540363239579466073252108130096532208564432362736275174934407720854170526085826362480051218053902886059880698375913661456240166953072207628966985624959623562653705321970010924068633039162646457433223373737143376316029949016714363182356736981739421969635553202864468902010421489305193616772286626234055139586073944545652781017821705134776022900930314705499755733900944688589985964169526056443542791926540306240020582732818709017813166939478038922589452213999994392728478129379086839169958406621606925612854464868739542850482561343953415809189311318439451924775721429906233015359909299144488441602014506540700515757084225184735397694876308289087813857196290906748022138567699788145559653741110031593180045348239336894614100406030159342916250653951237134406614894628584235768188388149386821793513265413737927595494355342977254163930753714072864934728379193909460578705550004337011606230573492763617455048875305431952401640183304210461081513492918956521534013295439104677167073222895952422118934953260607645542464205829824341074436903015782815873746600135725840512108659892631028378973288193999427962464411356727419957421859257400700429455270277881224858578580166349965152005114478460426719186816584616725350544032164191746406013997011836320459813123217534647774384854723571698093706572128634395932670714549324774100311459900926041892927011125156813492099979888894956181476544601261817065470738418684751652876902453678456749070071068880867726548360443416754418686076990888981188786705178243525724634736500748509241868965216547895564973500143960543657650277635389565776696614505986377669306218942039579367363106265098549557684998667070277247441152954833037045579308646806988779934126794398386836491601328444841245997053586448816330243641966281613343977253522624175214538802149958005373318175837607322826349809514459817592868216633161716250472063628732278910241274221933780646521459638637401475542706930236723926504437470926711372511802193292097016538715068359586258509425452699976112009195188806813610382673261019830502888732183907091526400462639625742367420060404080040513233106998612210315292728155191100819693159152563284317047073302508519961753996224398317787085751122895416275832620382690074370295782850162808104430514003096369414418208022003978580351970814064275499222627490061688330581254344802911205824016089627064988643962763261696799330229927846515468699460810215868381241403379047182081052650519083125809188492287948019429361929517254199957942521163722123982191120567485423331769845531140457131246399695132965905834572359817281511890716067842171056378974095310534818082822421932216658875201299811719093360786641212811872426267036679452947609871968053852586702927587341471089779408796887349182935190994763472851392337201839199626887269071629758422899541465465905601799850681426960741619121508514080776407530009861868155429442003972901055722976932796021408895949428654055574328365302135963086293455248564582985755021231118450288057000795615195673910850664941867940859045690134946783851905933327069669137375493760490222502546267123385218315124713234027268168608361531445058633528917058050279156079881440326891074663679587977251259552633003096623813363730173401090648557763709954356952859572826511604149384875638068559819469077891250700749517488255022608668007983947614221658012973802550972691611872672312737944811952287939672433441043453487776170111643695894388663003005047603090864351898634910736530134875112870144507043286370253144714057468775977392140301926047437514777348305425778729362075331950749006242354483585178881896202519283116755889386905322068803297700525193461757999458985254018860369387754966543401494179987478857724575377018958650831986124404209995580202631263905801915997782008352791663454929803387676705358046693256546848538201447892583200957379819382953597148509297497564685983371370282820684157204820933773272055775227698959035601824496849016123198581112322242965575915566665546035596000087970615332983181206466552549144955952182003957951550918817374376658183664381072865035010592479277493027265660675074583401928888616870189027928729995919369054567882671602994586157716665839849117732604724806297594646794921304456655416445780585145197902858979239014328185290283391842773678589928097712076462405926661041092547428171560328078631129533768660317663455141018805856238039045830902669611317754996555799861863185532867413016507237808265062047929881590435778784229179242550069014538635962518946729250628991430057114247240261589708487941517296500172910190831770682823990986399178612361101490438948174696338993244909634337906447467260949927620293969174546524074081577712695359675935778186767903179167183606349524638413582913106673700779908620562326554283389345937745961420398416657287591367197612942238545608988648132138978286787176341405942638661510385075118794772306158490104328659070000972801851963520020149610545821749404320739901920332770807246279982531150504120517966607433469867409967988170743460884440380520032285550205651516469447946506991760667491435994638800705163621809459791672272745955921809484968076322711675308560176095349019852952677147723561484648014613107595022956024898872795538477222389152074062884833111863335665531171837710364936052921962266506481572199950835924497565845835567530112156165238695477096710813863315230099837947603464295035216423393726823366852217542775809506232530551633121325396021733638419444276490045756007104793675889806327528901748312429123652471328264488752167421927945350907036003489942055713984718733362420479607932078046737661415683241273060466975269246896770029096119057500080033211954633781414362758565088529529961048993931815759352042640428450824929426749414998205223771801314828656930275859946242865394638843701133460781796787383186761703872103057534743585312005767681453671748133467271652300008846649188920125481381529231409679193511102313132686753001452134908962159787222915335039450394734962316985702030278915461528878344675481032668834311631897947995030163814640250801123668238966145020363675285782266352858711824843078948009280618674127861919377094271664838558379959715335199738132844012912058502619348659142553852232096146475895415628576641356447308289535312113169403292462489563151585660811113759763632921332611299261080804807428084906432361650643196192663573710732963452566265396115159069163756311940921588409996304751833850126690405706131071386519560757653414778786758812443849121173673166932863755502468138866698681316486946274014656946255412298400593363442375038140981158155263681244083892665490512552214655742429102647122367446753870635031379121066651597976861051887786377574401885777384890654401945075956853215197773552592153935386896332727485059949557172029163700620009066074205005911591806620466540259158658522761604201426902007638759632861892230878095346005491318530430183391210605348004047774973724572847723150725589701219953889064949225110149590209014569690166872424749300120663089312760496035547842414004275883784763830242316648894411625065963410076368900052960444276933206358984342984004218686372211372334254374440556747415541535655515819469299959340845789401510964754112252948742374272784698361021168328702325814690574054534144112375765314305636820385275140242440041222374484168648089195337862020780154351928117129751470415443719991698534996328438120245267669848641596281043308562235567399121251059362410039946984046682056801504952534853965394404782481695286121614119906741891718604071816024032750724475893571657308317890697301085996476956629695286800800748529702891032545856750108433653506364330679890140457454484761544012566663027988355989057284926074878425753764232097454361064697166535593207768597505460944807236784038753660726829840005599005977123804611427786388488862342459576960575423018009876527636148347972544140233450145310073376089632600217590080939515870987364464873818279537304333041781175368472587571096581474182539765741979998476146671829624286079423128081566002234917619443659045398854489607893744552720152123762801760918107777839549561534682859737338371812932672930118618924494350769880206629976368402399362662474794943247762171711551307957760558341893774744089269703786872279122342254357174207466719687007546573797757042519881283487964854601941128615389376205380148146130879556706662258128059877400621431461463040018195538284492312295354015084519511466710451044581552819160904511042552425434203152189940322882035723046778635727236870896829229622684402238855031063408271064118076951917326015172956511994208668190852616020239650455576753860412272852974914526027160800388580757968109730882200194469986652254866759534093382817410266969742503432604079738456824433838185169684524981706418484872363810214533685466657588469712752247291776926424678834787415700853589261740531097156723840427375719238338578178461860991490650957994544432837814622307904221777833239710485412625154970788202790982107852343178091826992101328622029412899302319076238040292027991029441830810461371347131030765158998267520199758364052282051847400628038824603147304315780291401979238458132500827494433605754443234168747222326405744018743314234730884290839072554480083921724277242896902061707084654487296051750377853032665694920176111564222363961449938681821472560990274064957935532851511555212282207306152572006475708803721289783418524699529197954731458783346790601780640827927332275017834577255710478038626378320268996855823212014023876695064543785015377637742696175720746667606038739305047382057615876758624976434926800771082507872672339459272841547211426482246946476803527363355230901917215632908099373887557813854422742905070878475340540326743463315316722255633245536991413975233297391910870173372625177151282597969502669833821745580219003456151853760560487352216769011750565797243548688254113332466225922185029993040060682751147684305419254456642413281487945831754958854685255535602629444951478103782168994400900450877545483640520150565023763466417978191474751616251365834101047850551305939773567850917349786039349231911751510293236172145725718340456200702050662472329562257172070157488228160242620521383761293102242782541923238816748766097292455919675563566672978700295330271688036302827666863672345166053619550479882680640407518206207118908382455048404236705161767666429999477470105136413171502525771033790278752083067468935971180397285656542294491919011544029938570716477864159545504526378321902959062100271601742462104762401231671000400961481255118388272735470027679615630978990648245448586896291501604400951547400441819810338201756691823984897965897706578793608484814719949948004898594242759297441773107928487508551335545843661662984231132147843684824834289084324883352294556585595785311021395807325646388708498220561729192447073256819590879560231946489273785472832867181636482273345932656449822008607082969075460364403926811443886086521284967376794996534222152297895390679033011068951214620757556477192234446399351796851659672518491681590973780668992798369575474952905829684169812700282322702900796236637687046697125349104701878009123406200018190821613787489011871657730117443838956436035640227283448212259900635861643320244107182114268614247858725576732902593681652004242086060679781038489519035581349027304683784935512338835781309462455264210704252991009739467265844013061558215774937665002031578921312303264417494318077688705762879899788438738358545584464749404170222436575848320244438354643506101940481814887736580452690287416731245066289018840984204180967243587019199669291117907706957988730038960821674267777261722092265520339174698632018228161240043565076936735898451003197078683079214272519634096487545888932058734811003693568691629937780178149853537355952599142036720839671567590885112884536065439269216177325583347759578809168450491423871326374181718317481009000357492817911749691094655378621273173223414198267799711094639207490221296832397594368964625562138178400486061858332337040698484490408645515643202484832812256529196995866341304127628902888842232803140237456713244219928412250538510955292568897013872155247961267088401084963797467743860050502304808280636506320777546366720762291333586818547573854222643916795680823398020694843159441841318849588280227674626183449618325013762428098923772297321154876824355285862783480510520836519491108673138284011790638889752431955098993755917014692825865691179701961565393871752888665107767030284597649150802778995274987372302365405319749099196626342224322577260306705808807363562513071946041404451584044562106339347266420233114295785312880721461504291358635595352286586068041501562812703777208288113429368375168447034079413601913128405230473857079994763810195500022939925506722426278066929464922148841516908176082557550153671788390882667886513139294786916890157025238798498999323717892196299354897552829657300361506824515784013530681421608761015495638991301141928701487499657667185161642769126726107863030968718966751921934866430969072473566043056317027989190055595882061978438217902893650922821403448937629766448914367544773538580823415784935076303476291720895855060349392699759267943045848193625474702927622268118637213104861527262936554403445972080782336949067979963607132067613226383102970626416583396326564391394697287870778733356805404680222928536148416725129169269830237172159386897947178374331634895349759877596602115736672977479397390728671810741228505999331314340562388486510846568319281612767051302700116612390200957371373223192295124236943992296090221702986262170336077760020391566702252039899342067083355925330396700060701553373270426997757015549172118485714759957645755988612677238733448934394091564173500548618552291395498437412571744021623607591194772832578712548527194111041567854605047783798355806232085265991862001430832734217018275617009719299916158965314566493363637053727026687765678714882202398015340030473133667254425019000734974357532090532748923112108280056809546378377917655610886885846809585695594128473438857454750829700530667025754643434948769840616128338802528463846608572815872544452213630241833023586920541453630198124869633369877694998285336391795852347642316721376127704920625851621797961209023727870020979466571383163282486645766210838057118654385999908811999745887049040896294252897217041471638044591077600579765582203617508509124802925377207702760919910936987042370947323233450720237398894850691002647357819418216015984365872685860730523820344110549262681250730243955435368240539044664216900219455122725584176976094484276351061976460736286848422697167981823195193627228549994009712818660784201728514372801390185910218582498006683287085768842652506956440059911235653497554013273068662970544865056831856154924628380444026508153006107489702162485014287409818842159843121006881265685531593653621188646667937470619044952604217571912493598876581156070338189265308410359553755826002005194737789929283347485014462596733896354321158210363367200661065751477471755261669327699901508879930222946854901040996042263069100841662534439734281085473460597353796124294474806909408251320312153085143124562122604873410553518080091830626054374050526549161583261209491464532795159801864400014112412741952266403233012541208789112701632313910851559856861041148302607856835894033340587482942194375141550129692084507246325510997368264790657013556582644549766949884419862148532662827971909872520734951991822164391619683140728734101370693362109167040211770767916585810827109789519758424447999560945652350532601297988608020845897682646999420443555863324984941414029931222216631463172605896707622825367856465106076082869027547668916090617849703878985576649765140299890445973545145294098761013172165085686645424114816722099612989178101584888070209551009532885146265880276435501513068166003715482961777733824376039717521164910279744135170799341675550418466023948844775834818843442886725529502294731666000008761736138074832899347828601110449369710817304103936430687652288378784720318514358903430688477841944713170088056781019161253558820656052836415586500370666706818097689568279541639371574617553339776775981825000731342804442165326776283836781265210876069947657466866453637975280794338964068387638176069487497470547054598277330166725066408343995533707588295128397253923830113926916158583595550610397786889134933727843600047075281238666741898049692282569806360585636621698138789025050318584963214059159429787839843594177508821105144247378500482523109752600462759592121630230871568977120706928569933296391869612558605375628663338163779553019528424737399886586613099617964635052912477525120001012208864590172343277802400587655693040834876062521096651006708429019276330930946515564747511401457447095714644899603358158761499559866376898966287101066903624569001010752668871227832616295824885536387016686618642424626229438368194279787851983513990747215154349978604787558379241182489606014244508823322252373953280385001921365709710635294715675175829948530867959364859141920163225096489460916426022127645035686868629028897338228136422209218214010494916770685228536814913092269201354687739218785325063069841234056235589801693333694570990866380565902473223985187395061937707618038440530023017000555056032750617695723855624524105538221151683741361604405246310635017232736865206146742192014718047810595321359801860105642657854954144491741639302361351713184142966505948107661418347641282095663659158354109777859407136678960855257481908557208148001646082161694474514332278230163073053253775959869052495659840417468343450392327589866200255835159178626546075060343469262394738128335173314066629382053343233831889416789233347741697776129115225342225291613793554652899957404824002591995811198423097130650713287789113811357684692129251334852849790515697272842512912226423942201515567613964528795505258946926514796665196231570400490765714565324165733463832626171804766539060562531832544860837337266528281330062186615105622580032562724628933800564049283422786558702485181963523940997607688575906575355312022309845920218236033198086952460144532461408795464696281183985319730375377537357078276490719413724842904323090134620191212590279390193427773259511330576396190350011129055631202209065772599662723883622715045326273496934264098711535849616002272327955395750971568569479280050412827237362176065772840201664152556745221489450322775014732823598415721154308260540488479270412680095356135929094759035020826028068974695755008785594851231798989486226892594716194722040265980333641840906751808835487596258842652407558904608412927643876590575518087978593915061757739330176900992855055326474966147253428022019938737423745374012340630398985040463150835445978318231835850525503493165230805789201778543682844191345593872948065816916309471025450186661268357233012864726441781962705784216517141987109388640390280256476869214724137275725103135750764635765788235866641353856042995562989559696459644992310420473688029488714787950232217781017463114155331031745694099640965124237640505102151063765790620900225712344614020816253770769626451448354055732572040113182128865380042921418276547746513222160015118372384691652519599731565651461659173885677030232261159181457651946184269008074605427465318312968237397403438845034027849675842265332146449812758095092843912058442645587138501241172553718968014942754448049091042719528618730710902864439931995621390098385434049305883095311689473664499162133944244763431767951329192682268162141445838755714510117691985377551949552098487631155940371791817194036220991659574622584593524236440037730480328377963027572204184352950907181608507187021452341782879823289673262847483914674058267540475556314093934388046788918529972088564456043647591314929908300483808946309856067189773837101775295657313534714860849890502066165516162231663458723300022953155646273041602782916457953990435920830621850354143466225563953414789338138434983416831851924989327875893640741667923440960483801596396901161029420003096659632831851196694623664881833397866142112519099434506745824474544250344420717980772475037767810673862287731169401453694440120593427300107046117140163108172733318559991368988192470745946449549425603033774370706773698533065917155164312617014229874230931614477455185845969651822448655445566648222972086055547114586305961682508768621330776232071092236235092679232239795414667921130855179846317656681534689388521853490100871103109225303904173846779354412051040293927566227583882117617270135600266508096835204145357011647188769216392724182365145013322188319246781506626324209376101851999652212804851804055757645408139879070121665112508768733924831941410628270931220549322390593679031515187990830640533205055088606201848549433131765187668016241653914137722777193534172856409571159925268397584253760581619892006425479373712073834914927930523274255248782209496557788090100147613498648579660370619540990509319455767918935401061570090576516081446539187294960549761953146731937104383812410423619696411243527508755929101053488139188501694381235361615300274115935713765324153214128083714306241004971152814397707085875518187525005823442435229395860705188346370299351186789984505932880793821981057959232301537837525578045989368009188387812754950178399059055464135834853663646106582795192849573854239048264300957413016692777447380354714192531614777518012795733728898815031554388293599199365724318403937671666857882116562078614408354601207152071543025185707066896462842176962133485246332858332989018303872189994118737501024515266245816275022170808383877814369615044289612538461146968496716832131229931704105628111725770885024751395349557664756655210699519360689577277747517997032483752943679614481582270007763026671843439876993840717554693887618031421925190609509106925992311682375491566084861495302172219269294253896803061563330899787198334969817066623818497328285564192210386395306417745575159913619331061700968451977384714562361293081574521796687924790585848690766909893574998746083517892502714409500947260454407453614941960507829400720013400527016622552022785470701661196024551652335142480359467178947381709548259541112757513040219831332428056963058086912649974312285836570415934471257310025917999265221047735744025324696978075438494744558089248170478507778072620014783293301827421294489127977681278460531653982732055440605513147015577356370601986344397554681349912264196750278279158647926284747153001844133115146095698061195886186858011705417050766082499665841024524761271798181999388346812994178188410579098449860062752918483786458104350461088883440057426749309686421410906463524594905303287100770046965234967526847775946391686005583736999491887870070203879790407998251850205056304353157373235529123197244657617295645885064256730598457319280637218252611828406696920900967523782430025315679308506748178449147896487522708005642334007704784964202281436765618102426452568281375055983354286823447497947853651955816435875055298912262587207899355398893594528886605347432473523703594436409478250090623415826971496448760497598580300243382179249235229055125195762673837329207005081535027525523312998928619458797661317500527510065880784454083863748274161531964982175732660347668701772538436678896927523827930852579453289737048225754835756292102203623037513231185460476833952741176039302506668709192255892633295130973126806104971985289626456754284153512903546063343158090204817924263856979002759613548495506073641888347239001971271887998209716057287524552937745973551520894375886028394496190082619576666371759273005090032854359301214941490734160733820404183786852412369578964051073986266412667487329684913286189562265950074913411343605963666638760560363569193170393316699931071348337103748667270791306947906172587615423910387901489253142503031130617351501521849317566270554439533588240726291133911964502114685330766141676322490008075807427866016712553204663797083211211306823730279042584261466496882904629514631112566439803860032663415763867621302205810101290614488378049579497580874666031749101456809039388468695776085797080246440098286212129950526328354136523557545506002990283413744813100479770515146841044450268876760863935924880361537520811248969809887043930257626135793329063943464845026930662803833724452344360810149776296176567324423763334268189916686059790364258221084469935652325532814296943762995163078043968455467113763312363687596804938185939252729763629516563927080875596432961719525609161662581791202126382940948707168305035510714929414981627702589201281114306838616531795060689866515208296585404249183565608985870751286880902285878122846793506237086546428318393844884716297976665134304062857932981903524069250147294230718824691995691486255819439457806422889182053599649311224694165168107138877762255162258989730505567424227530496228417458289444619978776768004851207454976935467762242770519108485556615312233138852652601155038552531639688605319209543311724455430668932210226729207537294702312012593060050171619770593472782097461470684967440855379571738918146546214179972939051782020914862022494351276345553223495936500827081658329379778187817140809121507833108682276896571014624262502320688033636756663958230684824973506074715987194557617848459216253578533202325929149429397752461466657417242917933951501561469404073457754884045077885310738966655343375820782445932153154346687519758095979947350371540704101916289760286271916584083334584605413536415615897799011534803084086080559987714529833420206762518221939208590614510225886318441390031119926626199209353263967751126364350328885230894979691055789952710607911246538395448321921982283544598845162240025587862437999605166715141941014273215108217633858053567852596448778558157836369535121872157479188513103873754492819357251589299493535036263715005216431759214529730743549330763947329943484569922286726397459002020482715986345975397379481588159134965489876227691521569977470976461982938541415181492373934216656523016060720349866748295019223386641669934224766287859864847654144145879237561472975342741159678933363546611943060226916375180597959453154856425080905577183022675319479234964867127403500863268638723535133467368143652553623660392323566174889906902311909668086353667230467768096649886687691969880042994942280728919342045878920208270201194575229967825636287272903715667357249524865836626883694883091892092362801704266172652914380025490534584916441408588714177932693836185776652170005405481736590750197590826331353785165613857255752632959945728002129664152179212407842449479379915691975357903421320571466105344142872317330172631527267786537995443530428332600886168729809009543784612764486491404833536921826202103551507164768121028265987237872883132792316378758518037825216695770144729308188174060794346485580300201989681218266756782947189127520928662786144440993757267345417727182475409472595360275382744954299615193203261888491019222824965536983197275016816174314543420841603459216582564565149685449010729099067966989649956692272146077413208361618894927305194754183595508478268740478339429430567246559660135799002741433088295079059339434188547865867814033182279892487554090942774691601362943972719399197522694041797323402408450010752234293737287088069725749518505603111931049443792916884366567162129149494541572470705514077934350000135980562569218895591105270297162022221162576994632912941562788143626171621568299420363024063713842288070593744044836523893026670822017238621214616181982674794199610738174540920600356526946859479178957776315902955988769590866805774228627972251303483656255498157909025319844297565671995151772751539219998516374850954539899563021766244657353810608807064860680702241085730469782257208832144075346063462536773326073065084687337586246563759638881430633547264308241766136676778465824657158411716806326771723656480207512671626622112849063651567217982943555431228481296087026636579188646311490288613889889105410180198163329245947934171784391627217577124049547674271293498383825987968767328919248411968593286217128585877682347798888964002169245570066467556592063421827005430857895082948083906354438077675505351564535169691220369864143228606872276366772925108392434755074307492813458474178647783149069836286204062911517247804957125067173890484570034352085696899568349318233481721102750697372039992971461112078815917927381203367963178030765842803018375135903751966315736166465740616783867478314858663781781522392761489203572463679567524925510908480958650339346078269149850552320572471358289257234269879786301924618029977561668212521539966924666153031228084107942083063190528343665772058510501938197438935618134037046222646891858956156818808997533703866730882408585698555550650774840547520973751448086190195877696317662066121732172662365486177968369233027816695484560099387346063118962007661174892572268033834918276841133460723587899434138469487060298162643788000786658256436288500916028520595912380814741571345283066237292046372515728114342266095626537867544804306311500220896542087088502955031748299031206843238038771886257901950098608669635902594034282738341924635023565359529433342647482397524188613699491721194209779546782840082978209137065280996045538379891365900675289793846280513274656190965497337951255672177403067826800566687352900228791849602153328577187380867435143231301550433929301865186059875221588178402432878155238642481344794854576915415786942301451894294480265866118289911394954364301506750971632665311078522210707670620336668058969153498766802624328788387734402412362097433331446679290127860270890602168555679826803020551608559096338112888856296017459880161178360324626587736393318078189382993722489300273520490106285419031842847392813872844452217206555195201386444375973993123069888231810518672878131538103851442114102760270052684526132647266997018317801311925544639613276017819074951931938109828945780196814432098419433872063369738854735271433412117001004142531359867596392547942479429482251823407349712594304611559080002016632357954488732127589840907043082630266656694210263254488790132528631966919431201251583198227245213902138248654059762061141234874961760777451783457998999952945334237475846455692624991684862049571429777991564464796240437270843280105275773791925374606563063856961160058424971829357865413608000415181407327633255014829515827651566022710903705091557929743608903439267582518212185108836000282572875161456381993681321632192861797143006293624211809134180533338877986895657247403276810449078345866050923308139786296861198180364899569345634296092478613988989776514636213649961746168848074296185547280076414260437411559368381916432586562213448463479372651893605351815247668977700342194525783795064620289940977978065304330887533502830719403014859752304727970720170822402284641520619463364523885957011200107486961799593993398057661276853182282402802903108451779556675769437052741535143208808132341955518193918400879874357762001621261336696387225965405994797465455092603666591634170872314961410702883127589758183606802497391367772142818965200638155684325068996537342393847480681780410422065197850257673121440615538977272847112870152172615150180266253395397537237311505136694710279043721737506601040309996430319518422560974187378482079293930059953916087055562198344468962396677296398709519435313641397760540984217187208022778234879136645319431541495594896405857041385199945129188696152859597610241230818942670848498911672143926973915347743931415842306864613267835055707744877460847443188026052221702395396240586027668387684698964896098826219046839519946565493616852892718208789594704885583772217911219801921736076903000511445325181310427425889475249457918765311436355105208188004643491297293593795354415175914325333697445276002082074200344876016457662965217061774897725246735287625169919516693430725311413440897953069069087822647484259372314022502058570661525139740910369901826809101591293152339738503331582159795584505908330715087088728194095142812908201492457663636797730692198640634960933100295554225171471186542593986170992323205192797640417888508802203036336995689772496473979927418074686406735434832239750190670756863019553868301126586634060015429976185544972784669934879094134812564426019182094832766126556883868737863124186188950616564170379141037116324278018671571594244312710083609043811586056970448780286052583190693003484561520861578553653553429508169482166971950160276927049400346766075939362677309931104694702971515072911726684299333433406766177295526711577475099382675346639767594049135381987686809610761170047513797470478254236913559624141293750497589454992289074556038903528404549329739548309107568217119495896433465307636252984563726101611465101531626231619368145450138245555695860312787824867326776128559123296727643853798972899903468444386326258905810799966947249185879682863498530913867206228072555411821141927422872105672559947920442240456041295975288822694867931702431794152931530047037912733594709531459659591683046364298744059822488311985709066445338599117345627850465813267586467295935919756358366850425635312073326511872637705752346273091740814417463399475846065455284479890009559035048595655479221976178988335010785959790634877560501510637456321982220979234087427600600077499506318463384945672357832926279927520396694592609713808237115459936071019455270423623396470337408719436111496153642564198291118036188431349118960529479448176461629519970838543430732974345779660054192532874761796138687715083485058425840449723971251657028957017212861207822552627808693884927556011839424636710591509344249937413636206143106602760419190354886602109306903066043589807998395576127519490586014803554123768543473990357115718559952884193281671699009352719289956922489664582891770229878395063775538818501258200693429207217521260164254374799817957155400093749812230974332139275191947064033176336437231960697015053982276137080922157642755011808565126402123742502887550226356067383881937753315992791377466142337797299853685711544082628013632558230837582085087828881035046632802691870169321302379166634698474486719144959771854263796634264150422352572601731028137995247247644454137789583991011325253873246415714959400139880117495686533590266550981014682712996194499217002439099051056665114018993913548986075198353462958519556187019987586631458052187524361627801861875803335697376745921922489444422420254925329313688633383699923356089082461957385343822999939418637617298075982426023124055396655147795484892028343519399445251916814217834404808044938817906912379752872004294072121188777373633949811779829786881195815584200412080287102835818441362118188368459600970610701696931971391989639630685933723870920934547576272833147720486643186162384041101944834493385297846193979708582103819672801262842924284517256903789455033726951221685847740737975271507048563019736479900943027354511722345956362441882973588649131199171599299745114859711159949433540188238659575041564059161543783772570467602566174892172288227957465910582570721057832537060179746098456422958546641316823697460816234908002154678500928170804026783973837912743755450241332932528664926785544673947881189972304340869112797677285487693683651792903505778227000992332500800723018491197359439379285630439013742700628445702123197457093651455168180004610752900636489650515058036558247023546585740260337956798700256682292983028487254556374670232432955880867080295343728714096284799378066615243827424309704650809444304663313697517576375366644373227083989431562856021501256797976516155715017108048121956171432319205433972199062619751406183956799554723982461047879206370654616616252926355150843388309309532173565676890546276805084665799788456196091411374516494959315083113808494215324660047568965620947690988329324815578363954491940938060263480506899850296625566432231449232562957515707405491720420070861424997364051673617094228655448600200063477686292046824094629523150609784644033613069941942353947049547283223815533936154812782158933959268557036330099436353423476621716727590555397959609659600471385043945262306323226068743880904170218948670958492715708411148707257051099208565225387968963749944394514210636648428030566215732655960744397706273222743950188957867722642952997198867624242050189806624924099860558296036220642213719965745238708546027640406984681938921085185329141960614041622043598240218259606913118876606471546953482237364934787222329541115469291616431351354696125283631016090529243663680295986684213014954399538638058767723892445687128512205156118438527770097677337648798519979747743746615925804818417539372122055381705649570555004915493907178320966651007754775436786771071630540696395600281088789665865548092883054473811214798560812099376878403677631890530525070563983990975743853153086911771251073873924735335228672921561620729828154458118045315343989218805233932826694425912270110433136965567722950476103454442560626423172133806797709436801655147826514225780625212000723518715654623605944984117495922160978691104413078944524694320325797793171306851924165100960600841630790988836147325068809314246699693471171279768904854467985412625471783299827122957537795525123593775057001099047932070951307056657812435527616875522150132618772222284808230186083492917104491916743090058783032197772346303070777091481174569237929844960708361430902712406999572896650792678280442918315020391337757813320842708500814968098968999283918152831126998964853186697770691110930224032194052517049122359407795150440747845899942379851179227658286125564233302540421366674173038862715575927195093464915674045939001849043686657490974176044624153737015086377609377698189673665666414677365995118335982405058042794369242976324252143665204977733999386908247744220907516119565918870661879012215883136706653471919804921083059430908017191265383273479923084668729325326924587041639359765593477387018360532245011550792312441070654554276401163324691255159460629755336188165655929092664940813508851625069285329982104241757754698377981212963150066818402789681651187943310308184911630731478672165103817489686041204666265755887357547834771400042660850509122823445725914561409273309168039275251332147161179209760683286303691803316741812925843642877054683601557859177991347313257710971978707658383627291853397465538010581089285760477829700140977854879652739744195132921022441687017708180508306466636392884406774180164280728128510707689399808585124932232285182665412117802699562722464598054297859143594160721543250070065084185283449670620281850238790253934293891676371331609639377674826266917057125375452808150598238131169654917900670623294007834553277923333499115037771995601515130503632815013834310362480439669524414626216552033767087833001124117072170970952050324279858528361245947651142989512900253640340285548097774373309555782382397157328882343509188385848723001498363037837654240004276954708385552580030136815572816064563746229445461722186368994859557594538432452773382914514557994694744597137110255011747474980992131372778700105988665522065972895192544054886990929341524321165785458553411188559454111781002418309283080940353652842458089261603678588217474891996565342061039583008835041247242676303871474833735292854321217535727278111611771773759512715957341547095096727361862880020029932691130803682873748585005868654341952954625357348507260418904111340977513996323984824733728928533846780550121991705888909867264918581407195982859363256815520706432280520040915685459551159704195441434406155180236578352158158771691319056623689301879860979666536360530620965501309886517465922496076681635920577861013139922177847456349429901473826361067548684272380172234177289110413895267558898930528064367394816675875076708458101002794413075435120997210966177580885894822735700003012371145249689639467315465134232583829648608279980811591406640795401075185566201852143670564182157499053926862148797058527105920907932921628070796132097915765622523858134858761326879111561625759948557361731645533506472742325297467416083777535091876927789674002084693909659829119599836071132703649324100712893239456909467392653189270980115901975966393370738767388517476523443514330914673574576702700407208917071764542596893545157188173197767174452828194787682968848450532452887060558158809970265781205152195049967943840833053972150622349915458644275569630604300873379016578181400191632633487687616642566663130225413100954669129539859284601875552611739721516567260158983072302644237526913508198933555398855798269372497421973401808957463609162581743431619470972549513286165158271398087364962607791982470706677468102354763060516236446578315846288104757322429906506446128715528838750338407072084317632437396170165142752116243609588694472335723249876748997454459265915346571686757941614114473147611158357943874375455575011872662302799831049892973569013156134262842173984336294944498001091192896633008901123832211740640657434732780160507527254352598807360385439597911441153965484540371336175849157865260309496349224033230533121379350342099256377176009261719199932414782353503317314259323001679010883828739103116837533253119533625274647366785993382441889394436391432519500582567168701445112218337532373438151934270507459404172100677616447609952209544597786365732185749542128682867793309249687610370261128237265149307431647945229127551847988397389533516266298152290863670434535147285106651785163208600452811634949938523420146794412645690081929458863412900114457277814723953061355063421551286970676885824084470640134286285589119221499082980207395622541964736334706420112792076930365937972931208619120852142865249594751035009172287301626632221910066742952016717882753883408170890041928292867872296103086703523849029960401019267391928938875090305105557503601163649634089941572912779415477795502476573209414853036134601009863364519537489743376663958339481304970462357149007452932712281783094652877253539451733689170759638848974666830284431436726704101532306646688887795285021125356895894928398177290803281623846674587687319347219241637878657713063235948646176606805312919356177702589061636316888122899063782087542648692256742854545271409747227328835859409310814680640520699502800535133616271022364362132222486699994081386492583524583895768700415510526658464279026755635990343854651113569344430790214354425141645436155956620275974551416410051382710868590136233899884833619585918545268820854123449736595472931665559211224354749501543489581294825732562450084179710544131879449570979365168652922796947412644105489413647454649397594780766997846739383385424593487057511985794392043665253144642474065126572359311977924832780270206653539629364505353750798529050206499931329586539304880125504222135913693781766598850071092473768598796489564848912749788549006243216138381759499368776860999655890750698503948882605977829883328184111204401618591658357390785805266576219663361856025961235862784469478799911996994934848292242850232035770799759681997643930408226466215702381078506464522987388578070438091266806143335941231196828730672632840883985250400785388442260487439573796961883951069293327533542640265852667782008296322556833575940422617978744142183921195959710023781705741819764821322926038832305383673991192415384347117112010894222916647283229407999596823898586200185747343566895319281496732259205447957748899379061326309610716305522896141721747163938513572322827803113215848331928495732308594222639349449172342855778053589370731712612436192606745234609206498896085814293021580468127322260766780174894600868960297984828057690953100595620393212378957299268630191263888713880846795011698918510421924940737472059008467831526794897740700466479247555024818155917932939992302766296109503709029187204539663346728834667955184955424035095302989673280709717145420049112310553320803306215613200203969657653367112067659143491195472311262092853487366194519681523013531151792442756904714552160879744469859656738680224187581652144570647401579684325698598985394393537249063408863335385687971583624583193171020722007041331977323620509970370079507109356187183016932532493087996174207111214239730127800823128410545533000087916766434640931706902755143358364350626702815059656604860579102354284304849767842368999090985045651809918432213157905982329836052692768561905032889223009993011393572236007782707807392007953150333325173176227737314879789639339981932131682520182947114768186256269893928222147658158057511548973283051534194360676886274879839160213256949990298038575380564907103835199101387050158747664849395470678618776625773449400451895538768393698491880904455554508917645185464460423453164877784247137263056076067595127862794490464252064361232729856523438458055103038756295761263310067385538290774562017904563297741993538393583269682372779047960586042005587268723199921301376751731110637631151209371557081395189697376514512245857949494207732410967092883679296435782681605858562068681477532597781990613367519184109430372023869525623298942266203979598485943844664203307655205425244926958996015651558658779429386046096496353432966458615335495688711925330871184717426215188613843934003727388666531314682460657422296675909911643384843763968401785498182228118224545712825937542640323282545832053619098898199582371278607641257608681746961670235262221400231873618177511304808566020992809756245226850990698721547223499231770341863999583000700517647046439550015053151344534860141897727191981118921137948542003928251381346702379619563816667807608244189282677033228131375076436503353969541037582359761931584060560081004886597396516112342522823616457810830046575445782797131158848508362845741546153200022296015895751681038589563420089092637293688926662166555444270900622813108745619960778859385237612930158754478534317196068088122513276021084035348277222123370065752026411630982051257224340494680183529245815763507431967697465555498301705890741289565418247880552474531624230158511544190500719912747449628057177709031686235892461545954490388030366456011256444359528544924859279212292517980521597479351132259409269916958425064968522411953950879442846012832474980280253803884574518129031986241146999848173559467153992907660344391022311920711084090315911288883238727425423904091766178941057607332991128408260194478172884169306084101735464863830864843639789222839577121118560888869406174856174836120665352097710253903353409198660001856333178137805301084134245743601023466199682261567942845896033631484192119057762903332012558814999118079341222237935973404048200945177830313681906991782994979154179084296329138837975066408420707621139350513920474860639327782958100609882798434687464169124450541949914965999296952685562888322002366522598315775258237315890377023133533099549815097130058021975601615526328229088107599922505617756535902586166135020315606056762178332142863983959074029738436446615676579975000550136910104629051045977046428647990942812826879175634271184511381977217631344745639500764717564294736223957875380065782822075145676940933786749678906207932702948868675165351433212341578998828092661074630848101197956352957101031384189434109724336063254669696301449754554352089645169418502443956117382028569690609625258483990695936288170237506282571290280693755166072532041621390945590467464728991784892802980370761219898192568059980071789022408194369827049620016539282486063879660154089674145114409519359366008837750773348810947552505954041609939903905322535777842861328624416432350755499759421495948524813074022461761654937002644813399364191060386110503495317409403649164682395451792867105335039415627205071852955534640190386053274682139612761871236096186617944123244224750462715882890919149992333069036811208483059968604121080035476472600179974067887709530636410241866052435902905358292766397092590693175858375334257887792827919992208262237412344388647384925255549076182523719690803627784565594008005928318231053960233300913700217906207621784270965126336088835228040260987372467091845822321619367065517829869184089879054415103473838218929863217774481255092567833032583083632530890500187910700676909410525771063788070315464074675045536643219300793203921395740962766413671260835887745713725507214773129839396485206321089675432472143054372313435460471194134535744465895538205743999446671907682591213710680442231394955632744372899722193314511976307303624271048462152630493812700923179052087124322409868697991186559425893583055886126716545900213970088075286896587730582618414258480778424787870327510861845082696342388539565766635414021697206355429917572786317775733253183585449378582922186425426272041784038315849907003267980646190537641544987449742588917978086292944596557366586671633333221327461609923213513184979345082739999010990284144870339179609973604138584937291618758203805116033349613685058915756628894549193512184181669732755448203704740114805791792523886199217056868362805001837765271768590206045508473424536952039059722930399425147821938673260790594516674203089801913734764374203218802711817493085723900840593834885141040955937540665756266562937054915883549705492998242657875117439277707451890761609989333267010213735545170742086032485115205817870645981216342452083717932519266306953800344861731187692998140645017102225117647953598218656119953203457041513150412627566697118613124946899746301020051516288370027317351588482879405151216325073644461022528216609896487747434846928755939833577233108168661253832336739320637681254147414327872556804634281117613698083468143981177701273095917649600080558965082998395176428667695179108239349921325362847479591153481855198917330193405785094980886872152872002908193925603798797176983317550422355301079788577956470006235251022074974731834804490019827166383442330575031837062061171378795117929573050423589751403988496094575726533073342928128154715139003698839518775190778496206722642817983632672262741005290741600068389308767246198989744291214355147132123642196229827057366369994563387291672230827957128092650269209531675620991232904104715514209310427382225375935792986624941913087915186119865956839504326725393758973905475938682640734203977593030265321379095760078654592514332250195534759003534513934550153897462526027273694497490622819126535257946219690792889127876090525404243808554440770437573832690363346382942523768204256221936018998688083304124636548343200468154064451513875080607407827132222057786819798748667303860096904388534341774734361063775067977485860894052747492319386750459128902411978291502693200442947830945386309911495939572529573073862323943142900789868504352180171212600905093107117031350855086460415215127373262464539731550091039761610411537371997182107039614748940537992936327283472477393328632900169292773715362967784583669632854267243569011932665909146520529341336761316367148716568541803472386539359603246857332109414778835856498704444783618480710389885131859663097048714149462173265027797245993492275899038522708592233185919109578142921167096744097355166623261216166119254172019523515369258201893252071242645237723023822863125580878277762816884818896339357582659294743498293836464665820095514194746120276661413677712375374442010074607966929729003577150447086085844648617150839198442013070081861305465384061749070979217240920143905990403094335375011004800943792907833387105137597733436836103748135221490217036270823327589168688152687021146580537605987978529701604715715009673929475597037035731042419493339918664984069933278287844412190177606688920085565886959490945565685062737535672041253664238548970603181091832220733611205857886919008519224957018035015723308197386024388103904587070338418599099443694903746411063242029368081354366302759196225602388226060548722071011392606190835085168686087489092012214914356820679214085233715297236160111421891041977046317074292455393327397006217816150432210528923182312941172904091089250276453000740008839655131010697537687000597170343156558539479463688974406140174826875225973679818816785103805095901068675183740387270346532796215536250953018266406156902587239019922744163896184447015766745845783172059918148362214496850834393667264536051316632278214727189985432486886025703588231420584548505513842540071141522584804223872947797324149166868720509276068522582661075244926486250489933270147996746540960670739553625763115408921871431212693360887650852936829819953846166555973169151756526688321319014196297404379748200909144559424729227102606070204782572057862845915069555223561008153901965715220997934687240578320928288212022247784538196990600538998437206828924749081255067333147095338816788012312592181194020792118668861824905407099140084598881510368273787466275714738577493446342197068009381088579479803643432513679967103732349422977326846594674710858239587104586790409034981182389863643336760568657070913386726949075900371040980496753571839420094729942277437805050741482038061836365022276209571231799063681657505266246526378085704006139167398480172894240257618859455687764329429168648138037932522782228264687551539146366421936148230933457649455620051280804372830799769643488046727973986031702477496552355868954519925740973239554123595638596595525025313010755091199226392036320942219232191363585640691547078091734150959079939898710562163965434460960700100958697649759427299200375443831231982403928682420522843738223690913696787580907782590330994536630898893052325982628382755589913438353441610926947644067234978074571724691550980843375751952029604960097335624263814221666770141133684651409090047243011155612939065383543037715617720817488600556188407592390017097052961583674427693488377987631505756429049725884613384229904514905183579598088993865232255407195854005154573080492384481843086650128099571390625544743624075425262517777753201438644300783724207273743790326620468344036565270868904870544988665749246285236680920019071197487491191533448644447126390455531752842754491780176020262010485975913629632880644405334069657247988089804170406160257464708462042727584650167957323087905463035616599925342229507941586013214276516142060480486505925775365354617538533284529376723203736971491525364995346939367070989820011847942382799673521951919379910747928381295788431331951291632241120362607799090162111958101323498332632079774325280031440798783797146988892549424640102588963127929853730109991740386191839632492791688728678439785881270395245312906138858911447255842058054953737467984318766486174702580014014525281284692743676099914456116358169585849643461676700584337368071483770104201423449996221647576012903461952169792634085060435586781817374702501631414306960416518186605033888860062262090575468706289237597327801742248261691413344815634746557215818597356439097255619213649219597678249114884936829681004376284322680063605522188859922788672050462963793880027931996536014411210486582585473236440753246689570481333638637472589304792821237808543342077044737349132888809628616375287520504793394974818325000060946898336680454530559217170708745589944074719473547361733178782100202784380762148324630252788248709835153325814053574453321436709847626998449719547691369278101745198731180512588161824595764830467454313315237017228036735410515745639047463506074851121007646846448693753610806868380465958243774715652731324181227164792310507027415479905115210517934538334075402464854502512948194546904570020205686075855176483405689052425645348946496669398318149951416028192175587574379363277298633722597786868843520761405363046400216140264282917040817372749584453569168419525790346935113369867428105659067466035336053152742619908542471278201705725940232639341442794861779594536181156558339868828018327619926584839847394399598128261100231539627279841067834819191843665433543816675272463767120887202047852673121516283687696943525271873314313564710644658678702625469044133423051816145273656722719713707186261831216797672426940182036893961250367523312835268983039655324502508544453576593441203002834940107599934349417703139422374396008608669052254549974499624576961598123472311175114839505667658992278704013141965837266853976195837897084548519209775148763445476998782241139510165536560002822680297991788507249434159704244894770465470648113654373297858815391659501686062619505632262711532755823334356935280895095902120948152864352026234452308784607404188053503677376999856909133021389519032851792822300214755954747111684602275556192468704287073977896311016372538662806758984067197039048482858598470746934736435897952802144821910800225522654198066256236713913247233519429406471293900974959528297288012652909416086028419239184667557516255639293421122970233517062152350607675382335807494704606578252731625997147062366417025441393903442146765548665168795725574544448386972443837309562197865746809088156730099889304095789751243554234455434295348316653249255723441273047604353206427138207110849991163109544664789776263204305874925174035062933974156165750185784804609664997677248198943735119184094637928715455465345508787973109523913815043719794478524236358507493053507789574858419214800636723843707031529589822471601220644591835796350003436517568493991030634258041965946061167306824967328262635384798191451255405941782269398388762170352958496375063070052796956809890370652994692708917986711722711929718553238308719168626105315035346970995955725725653500855608326445558549354660202817603920007126589806220643900301869968773637975461922035794326735396929048810910959409253283484909020445671059681058007226050442128058174168780439948113789182571117708529720171862521347261267056366116976644125948573424094577631573448487898764833422206108497836992849168769807674168242407757718326084962485651705296539584918516449072459435619272109999145433133122133651244866208377990784827578362883113381978518732454637724092113876104023598880330789643451661691904991920297328066924713910427946613622831270095657052123096909720928886721441535246397334683839462725898761652503446504359016235509108488321926138425076011380582536956562584017221752059893854047669492790381729454154134229086199126790771688190695036283442630486203045956250598188120207597336678385809662119950457118306807415779293520625939861031818153208385949281865826234472143026081481864593714992724527970413387677459151515927662787995984890726563119550282437315848478565673488586839900416727380459505563226149286268421158318170614366179965335342127188971286835599626190689114150576226516901868898831310655350671834853867727416383986369085150199616230357695304622790574282657842300220627340434092218452578563501602095249094860092075769150237818867887859969161548123423113573997986576715709983590917750898814175370169822994099148721248630774957258231911654407958199733597392117884301263887131066549167624622507037241438945782043895460698313878268563242311829779542267064636687171223437563131083331311737768519526714491875752680133034628353949417502512729387486492413050119957411492097459476120747279947308960758455708196803045895478594691088747939492376121871146068147491040907652986814052173404639169672493108325071349753483773584264133443401973311890212958178763769518753104975211388906045965885231800885313602176371212503052484450591055696857852075551864478237771952821961781436075452430300686970524222513015813749809719851596340591264850820580282570971241364090663354648273629102994168979154465373810503833345838077254284415682839863937961124085274391868674107920687123772715033946606035158480609597824890300256745552596046889358051063782621550476748190752212992087205963512748774230436929824708374353496277737723538063630206550106554331801521141970519303348027755505868388952054951616311478151638720087448523049688342408252650857259367745121521213405988304764981021327540239803124342866320613344868960506604320924874371944240124744472446614800567497192583212321126310926071619064491630595550469780864115306789692539054558557084555582000246038974584079314180194809872197338879052948422224495985954070846598470757401389620024433565792708009613845177607225008970618967031240775677574772291491903689929959023318123793162853504090163882104894271346827044968722656448467551265631975242944930504218097188340178232068086717895633757238018085412773907939740968829130887300172486662261347187053975020628095058242163834348726888782869962721552223987285917562859089203076219321681986019836105830614866250996237679461400440709234125212373530039904906734859468584756009768174400387995611930874310060168108415999888452610817378384101857686542968147905897056188122425545860652915955290493935855364824486940875730468629291382372348883603481062694143397280844511084598184674520925687207906744942349177486211687898085217933259323971357784628148046650484445104371260411327643986643127708368250961696796966274116895944567928341130097965143439782386274328585192009751116221491852097055345501768507301354930265319510513489320000818071792574505725600856948269906550305605022829990503474578198603596502485797116825913130283193323196285897880447478208805303596374008414155648539427344332294238206239602902614869491721658591553261864340373547304315320626577962713772092096187072651830589384182923341565669857159671783123520264787307760340695326573972808246979926049962490437229677604783547115199443391756676838270046900320797319866647303491318709337790748011543072229843540732987396943226739153598709070580900246574111640068660237998641170271272964729317618278448241261260175591504695635157760705043652269887888438974576591060777450232596664948375992400560653781231819720580953593657904427044455826389788073151671591750637300665509334463486106046814773715447196171646511222403042928305515525796370220819885363820157560699798943299199400521920139309306542837645756601777718123581265263952823397592600166648090069080691229753860611580107572352837259040589195267388912885182168972568722452993753558418215645905812048014544913657841831435791533206944855880499768316029861276311071367764291436114405123335299007216214909532158821996906247669610549632743648852224799806897356198331708336415205676532698132273857291197580134846496308100676489445354658593019856529678546823351763618384640016055808153789386282990692120611705481450158199017825526911559488517598594118103329643809002315446978834243408565521517071066114771708194021460995872462535022285534840005373281548522567850210477031102235751405105413901863925368505723762499748566368328487921070219455566084792617808684857232372081170383967934727834186094429515192271134650868996732138953089443561062189084997436796902162170343591354966138630450030299348372296264568259705409081375377975587798391140954133676567762991890625297986521116732919601722417912245829629545324242871643751225158922761106679081237519384534157873284710901014226211025425063760643811201470851320791986776772312581829629021687908170406497991979120992872583186734863143639310168210198714625087674060355686918755357428767755062082902299985482762809745355911008002519217126614835632522322788331859978967024786331015553967889666456163626838689616614687905856076400310239652166225427162949797346039814572960583163942506467053626787931455362093266274187566417189166510481758867192605469004298907649887031359156597854294089692394789954993664520347061775798771722930978229616714792363937824222628025630853386295982177475324953660949117473170210380301131111916039808319224751615796350076723894066125231435456172251383869249869708241483014317564454916086486317359985021454078515329024075033883862206265084352614553690414997740140442896744161642470627888689388155538054170957632185405648695968456121031877880511493296210753355129687875800359224704003235000936109572225311136010557858128620966610213313259751694867773229511031535891892366239660022620860581354870509417431123128062476099302897384134945092457411675794074236476064531278812732169926569264593289012648980868250472699559835321006772154281601934166848282061726852376205256685959616543418944568286423676761374194639492229922240358319485193705171336471783699299002864502276487698892694321169173603715795097100954915274705943814377348274337587596804652986284595406224556004464903072578780937120231243508120682678343079167778773486937977984230357718129322351943185000030207353200406480681601824587615261430432472937462662621092407877009333942325468382905833331998637032461689819462382304770202294726477268249954488239840011578585771351694222335178048267410778562466060475146074905843045469334970626893361905376353976743997630006683283207630038728435766499165770893778672964061197025931758697990555666070055715297594839016243009500850319586457347211463467001791781685050068630520465545793662401503625143287980078801539952603788995731493070423764641613138380273450262292227885234524457515657099311576659966144692383152487244504566528537696478299871391754514645185626870590216446291718955055748460453818109813323741851285893695759451385394682921062016028821288058202891437096070998806519374458039672583009163256176298944359587759853001870359778588696084238079190713295288517206638533955109576343276284531430499708892840267927911511550712982073738789712458030501972780430090448896776978395252407041706478482155847510638286328166411909998795676029791426738821302054491255504060494183649828570279679138019543840812602733988031341581725765206200861038946794625221402235116642933407158695876429221520693496943638603161991974205964823161055205772678976924907619936803738177275516392372178627817840001642309436949799545176203706224269638021437017299610610530475502311071586792909899469550012403960589416077294902525797015982958453223251487705563683208343227333296074358719528989535584062637169872346974273746244838329680560252657625137934526801714886114088353099235881063959880008224484721700394470517276853837346663720786749473560509225886692449262167327399790997910319471859344948780160308895771229520375466147571490660371057460907070850911179622970635807542629596662542012310896221810061169883753253506834019018669223171763931547826449172895965113451349887669121767974077608502019907689499880143459274806983878556745289731552509978698514051124561770932012090505920806959762799790038428043637878379827303441546023952504197806572015140783481601005477686317264528832992486970098385425015831080689283835725961698167013970826223989661739383612461241864640919522373211742996012384820395395972358501969687201146929592133365046264528338614483199293579706115726370810131592634869416959064786478185861154175642264904973078464035917894619325855603600839108004836995683234682157498628122377321195409550760797505272520250625382673281568718002064766317423257242226520394088356702667662502883368226142726279762956870826403862675534598490002208713973297187674398390348977727653968227171667950032260196816325624509168201827239385216458939164104553962947247072736853587122395509971683700412319768169299863301041353298040224687320234637621961801474167144928994433474267110653869517996167878536587324264046955313718882390501438072040358473967511347007726410176277513575849529021290468505472956149257736069738994362994235924062052431256184379180705916222081740676274994394942597959859843815892754821339493096347309335492279265288247333395117547837886397611334306518544137742489022004525720623784854374554191726248134575616076213608063373523084884670559390056231814199051731318328175651391981913792743563987103183934858426043640320172878589287132018868801170165303687985647878032700636068731148454227470071752043029339912344339046690030543273686533827781546340800387946113548533933728586337152745181679717941831815298206581971516592010749786122298769449220562790971816841372772140389672420655673980645395418098404945982733419239555993662022176268534917929152967455054568863534164632852497662700531502243883226620861873880269668800605224042380839105050015640858318965257109999173598917895925086633488612011952707747323060550143273591912837125531265267433615099153830586357720783935439002006573626323471002247625765668525006385780837630134737319558746401339513955892895903470184679551184610689319082380741623955113569333168889380853596568708108122286763262959694363344992029278694024780802814136132058811465271274783084254933350907320758699370198658632554468859240083036375194546006380963028308217588814408420191305498963586541386702844851402560484208033650928729918229848252991588779273853679836428669622878114714583130785901875911046010324772475056147584420898180501762283995193065735497876536277832737182607480935683837380359013460395403312132814393365079946275176894878966398801906799291454649150316758496185225042628514875038644704875409444373287615549002781922591659151162534101079046846905277982061518247175479991420769639367574737403261853939955133866367663618824855945742130272552871376819102179428976436624416387391937420348863015883253190903869382940450849507132053547054799754247741786372567058466592141815045789203576990156925707102217374801706982224537993815415599989752212551374004863371286437854576397900483961507894148117177313208744420852958549902511378974880711862929462025598065454607284071245041044740713479283052538306897276334534002643921452463252787596261606348892435458969426945188658890728670140084490618529946383842959734722821733346866454282508759565455108045077985101067020352483496243108014425320184231107786550361085692019328086330040528975870620990258722489373282256421261676868878477424299926467339579262467764991979644011773184566158713891747806277323203655004950420820584046584184910835260247559837308992759468703629895585782651817905091429257640946541101165501650571349212744926378771350397588504762979841072414335203284430799546054546097243206885768894729602676990043380929604121568933567782983033944295544261158561290079996851915903042059421989726539648936285747828289267243934636175434283016744931249914423443171468483571685346296865766086039199329772624703915256216364958538366069350008065681921720361031215891199701167744316645064710525042049172945442425033646625146639697321322180750262601821281299199305270256688787193555249674604811709184835202638332422225443561497832848285105527204970664253110694478082413119272769690639115017959030369364362335745791653218919491966539239126611597790579002523004517439482749270014015962582371720439865524739732507470441662684374990427734519253853653897287038783107984729728527516574062714410339112016209753667045648365794741817716390312230547648376178031309981266742145791900142656392814731512984282342591969727946265876416344714021930157378730817886492613596657140945185976681380015978416627535754820561599162277703094029954667770266087123053129192836994305885356057292703929234608498632127510644656811233267585679195213338071043888420012920072081416517010289734215885434890850480871809025842880509172077900093676679697919961521460309423950008176288202454175860148081221315402421073123035019079169758187829293479651166897037080917981254390492532670411797814091613792386576703303741724196464633083530891867058558814706298741657765928353202365320819799802398051139533492165515246225336936210848202138011990279382759853361791306190825624679147032459146222848215894607801457774467098492893139621228689709246567878267981689646130428592205779708245968547761052961180424919209295871181789774608449121993222095190260015725058005847437830805242158696269625736837764264106482395051391712068339142188251578994240982051420905788927988466080182990828888807870673174786004104793794764001742351588602114585863973841978873447607635216786802572748108274168143794752464325482577221817210598517474587636611183228753492919179593501137480904682588388547356509046600970854619360471710291464058754828615834128487580443597286355556132900232629019095026110416890270096931351021094817750411408939745877368235976997118527179802866057578892956307775382874117672466412227371717470551112801361253128258500860627146907320243381449775017033422567568434159206174009394854555617955780509020040139132398681733991264806329426090945337858533526486027625868208783552963204529793207346513398340361253816464514666701998327898393993623480789971625213660977384256384744535926442826610658051986190009189892394398635982856037205011398047165812327330071972794515531492290338699367095170050567484546922152699676337140015503462237749545309691419020671721387084406188249837054388998899652808534002163855052492670721546124932703402191701575228602258060631853786610422712581114757297397539731144279343900159437833531644872065548944164303778511194277089880507434670922767705181942433735775221960952080415183740497438677584730169371324083456074411190997757877672975881586306481384763957294394118870682078171416540738841784515995920674510040039777096610129988587873189245223431039730063581321417139451510282506024640684753886446332168292464274085820188989180015755332644947653475668117215687403989745599615571264174507979309065846181530609809272144443143629858064167697046411998593020849617790528802508391945220630148959568425121452265046427931456772748764691343685555905356513685351916199949706374062130658102838348355993385917214216792697829348101250390632872122619773518222866076143161421369485233589144706712896877857197601029150876597666837749145619605719325058841843130314308714448081714460885807043801489797854306256672389285520734568037127002533323782745657131420467755288679651160617692842318957128070625537161254143053253889113802007690798409056569394747147441805112993188495991796578209016752718581835333847968872144731923701955086806051909004072197359859574393506258863086755097576552846589602893558145920059655742175444215284758497954993220634256477113823108514270680261899682877889635553466911521640780695563930400672634636770774618079291027127016388748151014032766685613005501314861122456864716193415540073782131188667465980127237844575576388405678757725993434081280882670085808971252043608409621025647761087438347829958059830275487762789829422338878341213574456759389743826992592865718198579942047402200503349784994624383731475380153696265085174708786693528519014986842645333710756882382575734938332099341485379825034867997379982962793520890199123395397927307637422102330827791200488531581285198565017368788784114580879042746930014730957391457571373932313519985520097795295815323633561433457895298515911535810710234501924736235550322364325234758365944912763860975965233902775306757073910127411249052861938907721759818132326180216192847206509376393359033737112832024051369599125349995767096973606669544647617337649022553392067464649036824779629140251388310523808524974641588952361378770235761113858725646324078863511020759065981892616385393615550754993231138095974077858657590787045784765713407850851631874072221441175665086466309787293909368371467244462632006607861171761899288397767371280403982425867840392214130457095459239413484687371985143901102071910764495622244743601956379563655140019442471232422745988031834198998306494458445654618884106585236732357838820261186151603013736954636713354837672353856219635572663930683579809702225872208233715908391657052566281307949162755982312324434243277501590844796297815060195696293722632512397915373558803971126962208218443027453899843335090381852998727736598536003599818351600094898607162735482019319238642747285873931825065491205835522688618550691140955265722490994447640272118094176284552163405043556197665084179692996260737661297406757485788027412230325091482287984090485758810221540801663758003988332043359511714985672719562119415564186393973424979557483018399258750498429568832577902145092729230340904183464412103452336954699895177965074831174222967380169432716713871942137862870735546590514370972452645806356192449067714873355911733877504186582460523153427460907508233653898531601504264636628174368552051078346273069833424761480666083278094163576137298616237258752867196231108514008879735329994408630199803052658959188810403043648776954199480942767850056156185243818528710741412536165190099955009291654897647904726191666834966200174638487489999519163404016365165010039896697338516378227129094822160423637740211081446760347635719156251218866937742527468127398101597328622144696253189100295268334239250554680929298421209669722111839105146335307066214244523244992616092711605926509657255826195274505826721236711807610711842651982345522502210360117079791142622036969149225510086825783161657424814583253161956602057930403265101913699740755456270746656086265324687181466837333721844170258709867124275004112796535357307511270955269759362602614473985038882643773049766376634152368615958804982160726424245795986285162457329681400380720650409838872578066845248576844485388607425006124046346931554292281562838460734021313584527320839092074903803377132930163649633978842116078395018262858983227719662864284969650956231223947884493240333807619979571304933866581067688259036037738452582223642663443835411066370472969966039328664136192829514053055522873376571611151288294136380100008689181099138694202604785645117738611960650106203392543269500419735636685795038162035987639189893832123499760512439570088293733128892044592094878656289112553939187141239203232148538869387335430471153538443417837173374526975539334508325124813352948741454448905037056442150769739617201943693944206643867678465574244657721533034756089690096936965171055620999931525294207864713714996285817552097957989562127688055608091601016923189765920862122737581701484833036520652005547163697647192439069950298945196998989974813579040986637761142941677663811133199670523306348717673869502257058380348164677493421878888284466953484924316390878747993485984086469241156065314012905484131111026683972481529690736356346691685629983635476776040738482210468590925997970881085474242772226569340430396696733650740760863346654509939613892679640774482176533539619619738438590452017814957937680838205121096166575372824632404531706489561656064704427815406525695742166855809797956477183942316686459177002465273529044472212737323554075738113774950686582638902633459295637291126801786343071667902327613231818910126735987279438893854935694012885563523983954002075338576446754377982139025320545991878436929765583575048621295281873618844881093928346077572149429113675320912758475875934755526715740345974088188713314027077193478420348319798083103959842913216449945241715395446639629140962639207117123751915813161150102146426185899230602997753437137020744065738455993191976611965088839299329529245168084899375469484501791282757196866501945296159058754086987814389973439751131175502738570284079136604659814349713946920826687384702145761760672481553656287009450460959416956333595626016033197798721164806395658251850364216716778955552330661584236911683345827713705071707978634888456055885875037177384531829519751063918331864269848050764285214055595678203938211284465304523320491196927267377279816119236443087523574432239455140226032129047980138031353890477124270455229538465076238494439802073540813524556633061448971277939735616758348211995489356603252617930411351296517442731158466207787453023631074936045883098664500483834542905345108793192862535052433483921605749391997354071711620734174866622775164516940779175510653901492384461104331309703996335925069046097174339124881954569007048930630134723252215198370814477920540576657608652484035686786577487030003818218661173633706482299076994600256881341384606778867085169171799432950060598114329517506305059397301740337382156875193403915045341094184728721687519151274594186965658904580778888163171130851392479972514710930026521873094455889423846870739519432391957520534525028032381416853278839132815254221052576612975827259788980293020647595974330842854602148585350515292852956170148562292334672367749743703320497398578089050554820451901522846171688576645735600153397262734261103252725618594583201676923336282786797239658764351783723488458832002353728410905418978191675315814994933998038798007455095933327259845084114892727490010048032806895869155625283744833141295907123151444184614863894090727813394643565334110742066033205203479323829075296614761762816274298709871889277850467916404828207261106926543947869918979655514176905809147652938521075937211585785513709685391732800708060574534832654931193834900383498505324230165956046000077979956703229611717553880632606761839813740813698418653271239578741236664331992771221281342738040968599125844375056780048125152397654555587291973155670993680060214963186399084556021080674392828474736750816745696733406256739266070066454069238117176462319063930036069649326329419880017467126716586508215278735614013506723263222467221263644715322010378841279260921189692925835138715449632799643819590338741360864047537020568320281368337292030769740233041927625549192756561309991279850521014232510935207972340098482189164720291671020930496348842765283238054979411214109226744701445110249114216144579166817199575874443172183277151307404205036735994727553265349543728406264989135241552631848332410716653372422650690354566917024570819437857923718077252490537456313048150234443853513070758071756656961012828005311036405501467175215803399621142529258044958998165455934053718361706460626909230243439121592413512389672305560387468085988556888943450358100308699973040273218800665997407313953654943323781887361540600434751963261977534937146778718713006089770897890107898475326648814984743210989572461293577457980537558260273976014551695790367519204361594099455704755165242007325049100614654932141629291029541066977872893052767530473524866875339500616140441649764924477119258409654109750776608379531584299246708772477165129517918183583860703942807926776301671096261218268615305508855600241403365480596813919365265264650710019289943956121160334240268363351202184512127041816584186062316416053067123831898390643597914615830469461509641748228321709482690093976998359265333564453703595467488183052662163575022211412468356909600597507988624683449911801167338626289582569366688313677918766970316901746896879554277951734412639344715109318677352006096820433302321244959294953614544876133966885913207144140465763327885962355050459876453618583626342520119026075134876348619237228938948764854954609659290857898207607758681311117428440395270942726097840427296369803935256289676239906002838371707657126400624650688486372164179559242553095771513309998023599753344701540696720313740517297535596780638106943508625050075487409611024837622913063786552146436613716025329794666794595049059598994243066938874064891574050195574794290212069482157046437008138221427482089551614608725982335334862967156441344242911689707640876645631441267420400562130122236658665341132632580644746551235251570890350744858821734554628863464925948058792461500192046005364492360738392023900147152074549756057822381532643167280193518902653585632507978095394581459049784223639771830862155062409173103561492588454806518741543530969671294531667587934345630124693425184271503093915508475721348830607581344171023926846140016126438222553389155332249204597118989195193013983104553054043095958668448032600603400341801094386457602441543538037210207746588583869203670301069239783538852172960917395262163374265908685484217921551525476523874897224860789847768627075629291541609213747552356261623909312912304699333329965212983203899613152293440096079296873444440638405717501552058262879305232572303297493761009226699993914660654303161701051160144362959208834107731805925818337794599009360878179301467907382201948910134505625620263852985660571508855353214515998864468295517021921967381216542334648821883503068859648073804395336787342272931842841567222548304639112352087300166237478985128898793495287262087301186856539894190384116042152729644770848930185105083704070682737235181094030615933897713288871633051167656881194693801324477186767950916798215412732537476184124230622067084373328606750859583637475695082278743860668605624924091677670438146579288258591401406824363740622262374277627977916783833405726796688060649595686724199935131194640310726861777088478329582558186114675931223828979454055085874322476931326475428667045399466574785323338482377737767632329999243738996214163252783780600333581943423866229142228639383055807210453125507673962852356533551218299764902753563548268716332659368480955991195592850493989328357170962985564633337846236646389159611411944483607770160846457094416024507917412440208862064572207290340224258894201660947444678034394731818721617506174020159967522219768858102400839794129287144356203532829093408224946121963604850115948488507393379139797146412192113952155771084903304253245734332842348139757461615833378758570586451230980639770132020318189806640893550372757216303697865339056829387580195204308504040323503319454965168762627697094634156346338202511756305955969757095645980812898666358440981859915379438411494236460991369980719051279292097073681910827303484609212280662654004748279892781282879226946609400302859831870167617403072854274338744067920869030398072850566828375959263838950736151075293730339029289355137046460643231365787306332452209871690048430581754119120359592170520415982973041169796763081681191231011969706947409825564528653475823149861207553287357839598912875088852424576780521522534387098542828719376990068999036240498134193848000884138533523543540687415856958573563758039177640876234482403648884867503323935890835057887097059838725636264897367371108748086436935761797781215181318476306548549942476701594557933960846728558395027120886563046677809814483771397130402992934502634215113743831155640666644774485241090992348347356989268790686514770175800014912718393176954221273559233393415311570725114145540706068892335289695523588412949782277409331413530302256152283228536139183437154969536559294203440760334027755138227305778925528765550789605266409746032345082656797950980595120658096527365601462160098441846225560780354006922861075898168156250259375079454133192068224498950288191387833588730130356598862481580145891802762509803757904205097386248737053816687250389655600226727628699761457349757243634554792054207230948283863229939352532934590885873042188781031932294807229835811125864807821607048963514384115330881271696970277902911725168833339494983905190955421977485584488585073884651277464501278840595197550268353111428982673903127888788710537891881830543160925729506298455487667022630889547113461698648240650448266100513025407019951723865684746819584685343008079589641186491300794364493421586889625174404183767232992550737356353580760711773795578582695743264459989412085561380218851019341291662098603214385524973187085861214671484972545177599368355748765574535187167882275840520103680779294951082603116936033338404076584122157034475301950827593527531023523275745210575127552057307034906762936376562946626508841007216110809209082862691840658855620086912228767551940338986613203115243274004924792246790374618950039249773257862340112190511594286682191920279343587914599072568229887682758082597438201674916367551792164233238761700599641582732743645298119746521233470424423228749450340326805183485064879177653102257842970911495447427703915114684751820857693144448757260341416611020722062285557468570854843683245486617475420059207659440498712906345200722047637188890334014975732495531891267700571853675287908611215375949706053287164235111671269943180724787509768899206895415976668239882295626846679685350118403674318565997402531565895103548028634750854224885145052173130139900249587481567380096114930159722529243668409580471558417226348068457321397931404000560101908279250789462355250966826136584460246656588566437891552297347127835208900493939814169617453874141705727674747531043133388510237469342101386499795513212307143953038012330929743529063795034900811693861843632813519182339601265869506626711450481603549830842626261374661597992044256928651649296494633057107910819271123081019580069172248363564814803202645066821766897301406726809026722137590520121198090316225384469152305168318104323617251510025258348085479117287889369100380718048709496867998305335535502983015498703113470471692987331676947692852685371075401001059195250635880043885107378461174294229675194485134585803456612924454803760225847294355709005507077100258311993419131150472888138449530545691564588102273807080610307072061375364176994511871877048008645736379283789448523065930299032154868005413995194997071519375066032663378117785221191174365983926164439872601913415845658344938243161438007310005594667411196059821509815775151006376501800811370623058937465608981270551483287284021585417048232780186931054215750033568674446115013896299919792697392642605278118051493911453338340948601992112959278353401277767682252106866997211612888058494147400636403688062704491433612058700054928780133496545773078397926209142912393930789446074800751781158343481399681973030452030719633817901784281342678943855498254848044596228923192386709526296055398727821893376000003831152361412213522315672638965015673481075714610346735668736103239231140910685623689981428603606367790363781222012914722836387160388407223513443567715900241150774964215142298446140202595751981369645776989182934982787441581630514443824317238481793131370554759293996251543525544340794040308596999555131655726444497149270097348374843235322198171878081777585284810592556566690112453062331592505015949841203171351352648268641884102535824516201691655900864025544600026118647221822651886539059826630044313843580026882883821266212661188347518349691034712833111144245842764194971727704693861193066087968816790185540692854493569497310734198103999858990972699752036013274971738983931146408421032886417509375680966907625352889014677792654467855918666158388906116856136985620208165027824800840221146459221048100950740481504962551350339129972888302665626709182729172783394761717623644270778185093999155644097038566605986359700932906383425269761320174005698567378507281427626341239214155413801334886227454466391157875018168812000529343601758881544409005847918771772849232399768762961791130067385018766757303474343218963808205446165224871764497795219692978137014183732478363045130846228299350684183205434633512450086321501585623422246336713962133369322814962502234559227242765047512412032896728623670087971320030093906424961690492676817267767479856695647147839263957493252682129342821992703555069134255091956378798169897861628297929360781425345758640321556492313237023851872852432113849165516748932287589130594297343535621563690004624828883904324245252859251923913955127420717538929785172266216517493143482993012040529937499570863399461188016272177637552218446744981176906518996896677535312538576407183389940674205986891143815395640992381398122412801444427385472067169640843904131126166865249205057839910013973887706771599287473546046906752796154861839637745024653660227653504698431478232551533863673512221781008806847053550140583185012034844298419381843815778224564387041063504839756897201977754062372745112327728233470865038678076299861411905548361398833746681212339014856937942826068972336427515742208783762578562307524799523285742366255081639486715668443506833837220752484642241783781747599166560513280022713819192692982161428386543714795112812060916193362657244764772075416484341848828088860375345244264996421379704402959946292899115009119542903232409658157495005853403721580683039738775255251447635754605284517251270575114322783728953296541440324882227946992518393671271468943674833856009912917820753006173620048354526976532264667717131689270370342464725725007343729560163260227003742360067278972276275922522045305718991083184710312721025502328454516819696353167364646377564255970794007378523436906890999202435816028881323703327153404224500275997139753348100384302107828991485758656694732648133743364773899712150240792183407744376322856344018115967946405131368632167978131949143144151760213747624429502049885877327889899940288857021180103019891742531652372801920664171555886682441395276401217412433045987051373849646708502420509808116080441417611278949331043167209910382136232743613264018399108946443763078967860982138236974330211592126496913137952334892732528885577218728578631710587659227152148186482663999815467187018463586581979764323949714006876677994372478860203755777542219493858510676489150991831727884374117814063123180047856638239911353272791876666366662967683187779519517507583339044367082116048150509354130320980467002257375366004743950051417191724109447813655446990056882681335335113413147607882473635569219238745877289365143040582362425807114572265696521720019810058957169843769287910392991943541529368540072831210838156622621744601299958859696867293278883406245156100778086915653742428353378202048457072441028419349783502327400797602992414553183633974698501631870630811800294477526387623386539305129103326003822359239587109661661599537913343713392503353151140167406566373444837790871476929618334981272184464045773863923817158079487117494527661025878189638309578550157839022814862059638989230591631816454371362890701412912190304110420538544397352875567689550893585445194671503417253284369136789403394079708959998899110224184525677148773957463891051329002258434028153323024432033555288481964000051574181089857683752760998994113343979677273623039578992002138084621967828895879381894953668071477927458522464636583669349442961298138008069674639482580709039779357195194453233986641527561265596114221590206093126716921935108082230769242545977804167293989119164372521637036711450088490001388509503375177429139430705888773759123223806083785684037509798743189628226122187074753592327242098375421956129011254925571810593962547735221898440169366195502476188175856819598487189086007323361862870154521693340367761338178147557361043102473919338286548771824278445427915685496497817735963027691969272267738115456715987531071327539112750581540604468016831858269937188484057081555936439268205654484560095010895192363107904019642531209498523348971983724755800188851001790122564174554309590224752248606222462790813408086182984795532761365688823035616338517043415789735777823287370410616815498845836784021613160892803690773404920374339793646286463858395030085887162507811103837196571184487303420393904481041624718779557057727752761943044013748499844621552918544063247775472590343711316063908804834907904473028310805669269307116195349995623321864133264757502983201701596358996067191388575512354542019747774881599326122328557558410426694545524809944216443622929808536935119574716678202926846827919759365334567008100696252636169859803597517921331996144189102233223468124104669522138461528529702482561044020683042403531472780054498215195371236788945989387445032274709708562499118743749514989809247133524975028367044726747220891537370904084167790632793838899884344370756078914206671161216628306344512799557346383695554368459000793197313347327925569995730867696715245289458771998411134772070564609802199671448080150072360397173052638015149558089030750803954140497306334796546815213926829115285430936249775190733131489922746831184889124074459137295653598457733199637579375810959636860143707850482531979653069409289701584804920151039268154764407593137984123905648402372050360275129871310897165976006618067413480637257342331111133084259076546455130538701630166452924295446822067907525572395534424015912264866745437972863373175060126263346499784333593230067225904384741643801554885518799746859859593866830645806437818016913095048218532985869394161108767021178766195533247105348367337557940645271782430298908181185548243073154409486427254904139819791262507176848060683932406006698194609911357468364640140203130920509104518193687433968486047036910181488917282797435260311764253610464085514051460074354376025719552576791164460505407127454472207989424211653286091307843030915980245616913777181827091170448457530651843386200537682433934820080698842866961894598081273638975027057958998156542918898885069063379518551957060056313570303724523161143753486394037046490695576160634018193648448043733725418072013829340562642065615954475632351685889403290108881135256259413948423389123362931069484316073228472292461076629765773079594564390932677438800671903147949696333375476182545194943267852323288200424912099051297517306795552464441587326312116045963620489768127501565623445402431223944289384121564358810804222490895794508260740976915559290204226029035974561939270688884111067659122422370392119839971201675450130119875189081213792002390646353871719164052521672511291907269571890190865677017137910757291721920084402062758473647055401197353712616580871831377312930322577890433795037773092793217950483145633708996900796841006158997879878009942565249781924114860123194368135082561722527943571571363191267314177725125063361733274106980495184498514464459083805237109462800520199211320014455170056953977816622365987679621604617894170180642852263263104884706939383289267983513248786593640116996770151325889808737238408794668346076377605374418852794073243297339238612893471625578278006876609896108935013960803260907704919540096727968939397293621754978556071433823517582352353362392210588253286046432815162525155359831239334782682609519591430434229654019967855296716987332177035130647822309330165663814452023582517960850232079019906894888457371307935164486454577838477925024442675949796491099266337382332199884919690369817845886431629033999105792930171180577298744299919877746962996612743611424887330424755176930919406747986356411017873676447159157113260609519902790862955970100705102357759639510284875095171218764319707714008065240217309429379523559147166861902968723989758347601585223799089178111543497782780123513309105437458660095899531195338202293773033435509569814538105300829533901614282327957623287088130522000528096711186225633388414867378951426506486554472220969341173777980997977825125257905515009688955272171511494910026101304675212683015390640525942827290628311964419653163452709614194459073836578719655112647865072508384527903371142690924775594801920867047373336493086955128483626244567958530559778100314910511608262336874504660417881824856092707240182047026499510423826967891114801103097776480328188424080917903758831435151200862350404973251470095860159030889436324369201764603956715939122679949820403600785176824336935855748418426648014077628998784645883849926988099376489662000921579668608906677566690606800797848296534149559117156794523532650601115337798319604645285167635976244810524553559586594147178911976846782681639232109325936739437282550845090975153323990163046676983567723565808465968998720898951730762119557277175275817411120263965854683984445725033880402353319838837194716077987913738429799243921870250621215407751198846660953606240892979409401264776810505676865838331215714195758810259394176682149290133578542274431997439397128198315878217118995813349006493603505663647089932319321192165315139900665004197792812872067031909959125458093444590438700755483874157185439181177839515551639797856856297757645336971321234809819986508500787232136260301889990988185409527347988167572043490243901110870629455342425184555859836637773815689060182694139442262530403559826864658571998699090296331614307331100886756858250467966834380158721903421440567360285653981283549845273474399546138257120554087993013720993984001901325321684092287552735369090899816750407735911755269958177100948122304149833363857959737812585866512930444565188267069352594606351029454067462878234074505558796390229409472821275095799449926217107067140522494789479097623521801806933663551943463243556085040260686517150472769397390485823542467353703529855429054114456078728263043174632947543866424796390882717891356626599879016338806158622283881495573848034413057392756480925200572497978616085331812116276296395071134273293054304890973045541307776910852802227264230503363113987679336221771877432035714334699115699510311871365100786200614491585255689239897821660374061902840129586442146024107319273645236579851618899241724639558445889668422162525148833777188189403926069487218703516827419901910962837238522335840920721140884655542299338206362743408122837481848983458678626957581954473213618736131198983537380323319835324921991586127817172040173328061426732647132955292198188664270375855884729776600851491406423268407061976202713037086843859630146565859496362526317161671913787839756405113549985358478503654699841238617886091329751164245681932110217020528253669130916598964832299986062168009952395136820803488382765797841924583981934596425233019222042774786405793147388772849652399908901856351217849079982090773273037266811714151401422353432535833147912979602340424491840025137805808669396520117959699039267838379099990895591960520197518399828242804116776963416685680676449179516179365143793244588571775099870542689627505719619691952770604817006479598122166804063269881186611112795076985015122058385559582168003756158849640677329417928760785623901603161973983980367585782877806104298787339371204882811105842104894943592187448826576544460722077805715850714773074445739611243110866235581642033755048023746189915461121103410760056623759159411413171602995684659532794138477414861662887039747146452369238465594104291193512801161074683035316703417661907539384094259318422031762769814672654183616968919469470045112519707404549619977879002243288528099564137928750315454184568363239342205458555918194181079376076433025013443992252728384138023194489309647572681876626875494385960071902926145393955951768050298236257176422292912151934953524372896653459215168320278162282305756971861410610323693833889043647629333429390347543805347653068746681476457438716126069495605200160790580966631261891936163851312515530366403285606681300053460427580985656081455206448000118325692395462237109304426639273821348915110796728545159557304602692978623254920117411868270972674792001699554124601522590169121422023509919755790742911144114878599186729737686401972719483582120829163304543292126051917904564710083027032166939149771200596041738672813189297934922974628270775977296561725461596980728543439591642204501838587695879850034261313069988061533530510538841135061846655184680741178403465290156677993937095077488422605570810428128767603718512878938780459237507038550981478067406048771331949508843555719655109659512179848258300831113207420298115299062390776965769474089818519263934350153610575765911525540007396127252154761688679177019889296233931946033872241357708689514343845268379448525520680796042090948999983849604243746521477897236854573898257259730425938975137787427277701543897137488839100086650720996731242811776505915344175530434971559863189675139823565603790505185440873999701461962016922084591612631239115796230698252039149163411011940306653829047588027928987806365515109482070396061901797948938106664182161943091796303399248349236266338435044425751569124555416466565416149773898607619567926585906179050760821739451082442321445989457667782799143598215253502810877052773168095528552345241658606518590502700388058110729977765455668035257669499353333383469685300196008782597164482021432986081783279047107713799893611300683813496511441244309742885114828366131556990290269568721244343709456483920046212265219289190768825809472726201193179199397750572716934816589995875576118405959298673472638926178490817497104832969815085743110096911902880865732951005996670697470584394128918537262675640994889766204810453985779804998652346438435743607167691625663055694621672646465406118659491791735346818124283496324355642209802501013263481933667059340200740209709716019466586638150816523066890852101062499670852149346923981575436526947722469501594649747718081793782079233757955731666148722741304465180659161909569580518228404982256457378359032486314838761545322826483625437156673717850870652595457552430748136078688256399818412458853782192356250107986835246223008472249379483857886799600437086146632324823107636030067101329227754337735526989374335761397541073845865462576149303533905205137577141917659159035294465577941340282438979214692305549766062920934719637535819070848132516695723044593674930777787996917340524118422711844637036263022889895380062381797180018675420011701916664069900998089739647452374052432554059683127190263755010442816036930945230493136304294156217797635755499758221728278154443601837581182556913463179186136081036859925372372017013597043110209434111371035290551124053085033908995736576648851328990178375036940622214412794565365548451230073793257711301169891700814379333544028940158148180202300121647792822381565693023287954152922719276035420669950301348035644026847748154625113890167495658293518954472343274926168251971828223175173919427246404136594942518654135120548998533119388067666551347662380052603396492458754893437264291531735410175801330261182825533052673249150588799544797290175755368018964415717762566015686188702422059888540854810264236869611944396369118628224105687567499104370840448953820154002500274073999475961092580111861436418628984995725532293607669326268068733220848383564577260295482362628495013207572446393401633342681670987324457054783151736642247595923973152912943347914240526855712125006276941198670704385179409034374694650534872038435236552307348965611264483993608562454112665480458173480690205401124311316670005679248311286615077020421217296849288383974657663913639045599300745260726797297817429747238885541198014598647119104863560932987751640604258983039749321054884148469402669697457633538027072119996583952058300981899664783203872943747073297974341373339832482316243430527037604615383946405775625777245043850137152620332656554276207872249734112793011633934083854163065216823796409615894497367037942404526586622236460795274057615815864249706267859137800966018428442126037749709119095526213295766181758836927372496528200772803896425934273264134726107020324680817098135811127250662295832368399844913260273543406739929072708016446936959857251801043917023908803934147436638308471531231850722330595261610715438961460665458012729589534645528920892853832929280129970763605489513963942847124427592408896488622274781827863249260840701386202703381520840481684116159978300958955099603288515554336557656032710028144756197592807710668563255519651251879760680763749226716831581069869735993516055346355374421924458767880078952213316953566234118891609170143506389567437230137813040213416285717319459860627137592181467138590808360615644489734278924958729317394872774173187382902826642117149779894622003281534624797044376731691582572086790933795703608092652971476506343142515303415654109293972345985683299757394462185644002212098459750174114823666079821984377449274631699392408176639065872160610035371298397203047708241759723930111490768413924920282038071465965218598614204003217500575380635331362275852903602438788860608277200702560217488321173084683205592527041585834836274047571694095148802673938702524769732791413928864072186553351128103897661685199563196129284779331798828876408355637971819577477742850746720322458947810641978314050488750682261418260905641723855195444881038287395567415953868234533386378325876267913164498497045729867155688551777031738429429862516531825445762559753684254185386593708790910253495170024161235095810749764909857509319211926351121149524760245418332338690705289578581162185905857440168721353087786233509576112400726471862005387745322518108718963574134423781702439149366749338642820174831617281066798182051159391019370638001454548005579082532761381672112561045994775931295495620364035985115390894811594543229798160029311074031740110696917371389539514210542087100988759394923605829029476770209094354032236845699348198656914773810120480940867259509238715276974511231017630908897693200469028084785500669621300571672636450681901950847235005584873023255298260483927565936068731168657738742155502027352923691095366734066472487585551596349111086075260641690931516831484498071565927399101145397659878683916451273898760578056260507029033261521899682132320871760519575907429586945354609496744518367277209233206780189109176238328766255904517705819333457183110377153122847837965575940659403290448026209661638778830782438796991531068528799773337674606487321765841992569648132764523011497443975139823941766171182142960817554283359331381442516201927098381613905839535348908200479306216169792975018291019976639184577734664901867733518977080391523450279554193146755182406699680268316515599736706648593342718281030342555145502374104238803895840278289175933143022090206688446536258772635981793139527165342237366703254743633949223950306601396257395350437950777849006017096117456855188777334361064495815891677570601512977641189105535270807951043626022641473985574634043355919162346101829326776729660266387601791481912865087530863168477715045959356931983882567105730972931458907116882618300296197474750994695008638656936915752815712600372997374917814004184616296066854778786916974271100173903399656898219477753654654591161182251090082907513818648987217134850051395182020120802714206694565428468668019192981272758303187599872670364468678671836936566224223303657228734629719701319837264148286808341355919756120139195822800717868900135354288044135518980404391373162983091299373345979629140434530683304241651211443952033322775454567816976482611123754943637712505643278236660188109489682414529929508194445464288364374513688763184786241747566848326784359348013371157708530397101715694624318495551838102163963578824394775998916597540000537343276721514679850753346823111175424263776290133781881482882594264876759905680587272626413215555688820080228333884584779515837251327831420278941353228915755256389009028155023477080633003845805116338429336679438005856990234605819154066597362044080408136717897234692256927630612584648842299725575593480993284077015634578332002815422642168978104933703826631552093391145576245078298531419740680115488849761731418263122319816196864507098612319789832337202635956334614788893729414776430156536307757939261955587850685547861529312520725006187774492888808501229151612143648367064975587542632275579653722720612927543212401329174469927565357495870135892755821634512429475572185140548957518917320796690279059848172942069952023143807561667949242834492372818649082756297996589867882048113596356070361925934475885759572143324620188305451498266174740455057667552231100372548728107946528640761137733719264425804877086298789878652945089576557090189743328868702807513062897896088242917156788093710698263201987469770046106956106445415479828915268694240454646703590260380095935408743160016062937433792901711859616711199429839106746359783745732474769718482224039717481122046921798944975517974450942871758138861077611136863481146622581158948303236236470343052610319844606285412272532274693082563208272897031364721524758088712697325719932144469415669110559580883670063686119364354460810632871304891115139119742383202506544837168608124008975766774077871225253233083118509275395365472117015334085189137946849448971971749503273399547091109376730735246702195958519239935060220665027553462551666088513830547120935555624066915797353536211616756971867644681193784785466655414461026654004384911564107389171329631422491983849934980906595371892020431184775244367847039819554284054493850350058571224934700879258452971951334379432472533445568781967517253993050504445613727748354875116749911325727279797725809283930289019932758217329707193036647140829631770794595703880097705275786197862569941208694876787712237550772292058119194904623107768898550798916432060193621958247249859231328043179617925295101867599266831114623067980635093121666024288078247469350588981149643823104321780492064010578295104751033288008106396585101343310664015792495875680700919318006370904470433646777033025190573490881664712467581171376602714010013501916659088713332441436805198453585146046818004986390500106857148725698779315076320008418352867903440107837465712596716975905755221092512419209646060050610759231142225499923315399846106379583071849306046655878891761815398591424709469702555892042005292650198116796325609426925245396228108239188772182057969426362592487737564008731046662799333991073524852899000316761005226964147856637923376355120505793401085175449974407943252008655584028303305933177736310122566488979344415479346059515058800560767153610463994448197254785674653875209228061462925871785915701421698690224175365582853211999719219493106302195792654161256866267854786009750645615173717819673966829205508324005626498404902687695619205044315602540215449175498043037307510561083075711703016982912858118713664834958759124762561846974998511957967990512334082386486285946534407430780108383039355612104618460770338933924932032722937285734709949823757099838091854228735808796391236747623036308813203794236876235688644795399111556964334789523274989468356059630021632743680513291363984096836265560630776508805976667905785135072116566892180721839450605161156156781253339335715150383315818791667167413545777650910728716136342321394302165230962699076303895827326289455229754883557737996557646447903218934135618882365725290584703161995574893937737819262454767306429409435848001297239985808699920660354182065064486119281013408845667528717054410698536991410094471446643807489603037171723805021462490897241865295932259935380309292200802446492987353571820572233613599844082405567750010323207631073930175101656489011281750679730524980601468010671851465562799589624052234275586050246932167860204502365626320336302700413014040519780139348636187814373254648255998305079337196837436498265226623645625579962469049592639777270459580303940292211021154692346178720410129444500202302138267744441021888233069886288859658758984990640580859224951262647552040166269055206389531655163013664577517305927264360890646485826679367372123808745736499411606630819997638424238063415169372351754602302629118213621901249170027896587618131841599223091345084300831590807021056539669614734118252834752910512590792297695895403214404931642014812507555760074532413390742216411557446432394416325520404762818140445814437145019534744983857196861587400224145913046735860647806373614208507336737668511271884440796603539926721272396555363938076649335002853763793279589528625565083746965660114116170382377596176552417336280410662795938534668178331534033867085162012204743048078564639982703629041846963047055321331576364872491533882924932967754164930905555319376913908732101559002868673379313204433439112930678363479040057176675822077299573067099408133631736616461503587307859217276992002537049822417032132050209468861106957926156217635720136571935753401757213556423973573521442141227639615125149519277631406509620052549544948550685743674506559466361078961104508121517746957928833185518011570973047798609626663611279932608723608753990171472433482885417259197327912343348767352206935464599302706564140422370383556569023371306106198266779171774282766399491082532075955016846063927384484585812590246719284808787204579490966898804960069685302999873915356912362675012430228506689262872427308071714419934544462171088137074854785501336667208166897532672087756107579253689101867724670341863029450484246983275346405884058250328391982156448995196348812533716098793708468890466197060542906323507676619243649836304860079007831453205833167419913155261331751661600996936735399360081786931124653235683090702427202435002025787447159729382405898249479663545843947596361935401919806185984440389720330318920385753900207543722139914351969736665968587923243255187661479785904372825600316952283497897004303063616688985801291156012136814986352543087119901496199073368034157943894749099845435723883988804995874990457613329046529350099317263147995383151730487083244582440709693955314763358965516291965360735472278804201992646096254124354007637774971608209229219768201391523839594592641499123437144046187920635369252909154705546148206849217582553580218361146474264078187985466544816043597085039292960112019828358335607816661294148839798712061062685757908454298693437172996160732018183797216568257322287940537912288810825094344525261044035777766034047929579285878792707943809193786402207784567165017488456869392171259300477472512394053163839852346033004554827612616295578627613767799490333916114035221969433427396425340397334989033499183379956299246793350696976892078277543907760108531013315079701070114146119220818920848976068732371470178901428782265302863558842349769321944140537933151769053809594431248831079254167017821048869259352656282942270898731220107647491205377886022560897807222522370538259442908832523074945048591880337571316906384446843352546683637370963796050046234882850577677687965567748077814750803107438537304630322775970773030575756250928008809843826517488861395377096437270187159961551657774740529707424258569977991942366837750473902657808339231099821780375928491505261201489659999035770604429671403557545826888813314853837422170462453961108450528998361060710942934677573599823389496667768868321157771378655418875546828480008364550355117547308489608636153219955127591994283210934515157955565939173917153543650353675980594831796460673254924408736916038720324802291108803386738435898676673013397770963242406760400322682659611513723916377568807206763230110758415889652888922150477498532901489000990658283865925866177137052673248635347332123172970787606961255225757696059180804536877343497015074287015969799038700606031547528202633600048129747465228551234507437017925296948540575386825317772425924848281265388585887939391475179990302741911949424336073231029983740194103458836779416992100778569813490000317653936132192577385028890198463871563577998654429014462960038239155174833854233780290002686179186666788242756140893524673166411034732625818175885902246679230100043977445389923430191785540137145527176033839412165341080502741684854503856417835990694565245550159743054201836898801637132200533614981684003060847107808235650238628037328221772995599622626010542272771978341554127500788313100185410518935390398516828528881776718502310699875838098157868604880390797105078736623741943504205728237102867063155611392422994784748261275243880799368267075661193488652546148009035728873034047088722350109006869570615123769449538715143809632712206769210832230772839833918389231758792021966387584671680038096778521757096028431731512195817343665770286902134130736392823137704526743338623154190867598975731135774108613508381710488229993248774796404595327234260517650794121109866256163165325268465073169383002598373839194760748400805893274465216170783677427080287631151666084485022398193857053345738727524099450626601044085467000740659264734330768012088375925128645136738299387625719969891935665762302239756526837505316359822179522168169154430711493825990721114388562873981137254596319922255585717877548302854657967435394805861218102712048064617496607687897548862553641485472948681169798422023418561759403110596782757308347472203445889770903957141145043261992042857191249956437011739362904205832431107533539903282394821204616550519981322028267115118812514088426055477579193181240175133227822203390212719578507450646722571515299048380422229486775181399192907263766719666664858968917243463367920814420921569536755349492131315832229135713906102092235849163609794094751335154125218742137346894201665891590191163353697825620189172097301897045094547249272720526293622182971996726723195183705873803616417414896280001395189643958995911075368335077078953479106397054956165094309213766649337619700927325957092034633961182080600843757962196592587111518225571801743760347154320809834189351570941802249684061382764710577029024618008675611062512361491947968353135156776190568618336603306570020498905773026105176327817944870241942255980481522231689346426728450136415409416728930679777505251756242264614515826781649696059717056076092541070743266365042206252213706100684321895838207927532020797865185817925648274905520821299896167495178139974167874964244878495124344902585644294147360181835798119166029893670439988466622361726725151297928590593496499805441240563463911435706411273448217100487369824893281841101100901887401775036123228236068761590221713348702566031988401125576001377586548488146164602339195083966674877927592800042013086810838032173360335492910729219399303078607767103113739670647251309004474451636584972769818041644572618586661086752138032977586928800034432289010715436780240668470161769292031791281764024846999315042872997315612523463911823050517890175556726763058802913867347176524133369898554583653472871523501543458260409443598277712182079262622929688715141753624187957541304851261822939139619843837837306191044221929652665479664227650547701340362400001110959904109179565808411164226824274773234663359683293870340285868195604637459514244372548490004682754664820266485628354495629581684609066429192483230682113743909870854715158185472245584736440430918150868157945008391677833179998682137285016800276102768196046908833051024671965627804120068407073869459309600865317877602567095605623922595051746509729987986588747646074215821255193967529890533753680062256235437603828418729581470632764487879438646044016894117310973253511923836770784624859224708962319324158563149299836401315205832694886899048852212378132964094187620885756096612535378021553215991470506792549857824893712242911386380674552430354088855457138414678345035654757212022711977421889634588529404014042685252137539077883367146432095921679802397834030850506832481306749807721311006880173108084443374373342333447896151342108554589618804986719106977747379459056260550970441857278944896582580196061232649566087601423119911159675717040110161067003402546633938027748777208650208620696186206084944969646727436700850116111433746981495894847794645512668085985204167810002641526416342597347836476604206800325659261883696710686598481505857158330140574362467576451612200319181960171467602195981548282532092840305518479824752177346070971736533266528985899073787424261907041306184922879354103910326170571646483620040942239271167698506567130014638752584789238802080070389239103545459391163107648489352889286872240523142353716917786647211576263139048977039458013161442087057449838020644617174176361283664049976508128968094080854655902219210054009612083423010661699198575052810442295656467524450053791016863486710583252036617478374452509249941712768170854363116099460874416912573403095701754350462516665023208110142239258759374793006609274981425350211857131393415242583688761816455588291416776124282218970698629977116853409381669272203695670371856906606018255549364824174317348869714315413878144391960721287559892777308472785804555327227163822158780294057660687575436853373793266973051976499818469496985440272130548503409478044901083185753956900102301882299647732495737595582570701805767485549695042760556468096579944636645584919312357406293045692144893158313767156247289238094403788901164999793323701393090201397583058176996711518728678114551911889818653207212923805271097765933274213194182315098834199661199472802752486363999546653694839672498979831499189783144057763489927688135898518931720979602642076769725438115299826077769007507440592308782075347656082590299902846943537451593401235055273243947450914830295785537510743007970491428388725968263927931799083367012061345405175522024790211071372340375476284230778505808049169201975146015926086491800236378124479532804142563425374082234894639258032973803438530978553387166675276835000531862330378606017359687599103020431364323893159425827111653131764429367412339876103425373568729476080123672949630901851594151162701754847909321585617679869728364863684005633257307276001078517073071869844765173460725955422954518863905588475399899453491534132197101825483218469573404094605742174352282014467836024148012836254476345024109197983557289152460441842266242070094517732814377381036201288335979112546766178199347033401749720628179785732795190662181134846197292874946444423615830741670822742586202637780138786292233698771189316106959568386338717929831343288106874630675753860377481109625400875742204850050275969274846024575398347294490891575694850665320618598250297943301306536396181950430209335465799129162828957515569761777116233959254700759259343457034570311818928975865943106064240594505085099533683530222391286942870386695849786067210203248759102546206216118059999992892441028996707855305871052484845046242908451587040313721937358780150236267365959754101558220002234708126656785544922332818540325114240035131600341219004616309705329461268004245292300760716425969361583277623730644809614801690567010345761623883013472377454276007051674559316828954939393908931364085654830607902624902389353717407013151399072421870501959833676904881739242704501996134946325290238212371210607161751373633477720901464442975545740511201122852488818082149135761251938319381990163660394865716739616457364095731234278428860930267069629953499383509483357351192500505646059252045163900631697512433058697860269896566138334222928871636724191251948032937931417059816180848837084004416012241848434233506382423904356995317969752838502209086233591769465716173038199071142593314248036708423984774688332448572352128976437443268101308502107775071697894698982016254533881597016914503714564371257477620054128932819207795087979113845969843321581081180549245917611479607226702030486904804462411596209991704310796498299579575528735938170261995998957460770254369212775936420551777628465640178599374758313490732466286778908407163883205730123778948900712234322154680924328649436342875141233247650259825415290192411754917671390027338429544624167716559786658445473718620163465452341049591218127930658476715470304466248214003611531775212723087778883019447540032879491513143583850608580800543929545173671285597780683116260331430417679179902887063379716005842795238910676685415795359163551309561784164902095684001434380697955561608125511187107919593934796828798767468940537121485666349575440536832725680149866899412664327590375249565729385032393576625594348124143497788010456855663377561265455334042162044337547511650621349858551735671215417437416316867279842428525953477148814570541535515796487648750314679702902269623815321183059332867051711353305983231433232664993970930500683826921407096916873299136384978786106849698321154247559375374438586351101156392440795575237130668783178170415492162808850832911186054503336102031653522637517236997459293869866526275078881099943350023662345437770176752425808653726846501030533170052980381480913495714408368528722932005993915818704679668264577847833684989552707823298071900500648736467301058166443506104521722875661772047738462157058218592444177337664136894823615573738217906703838050101298196934300686815164301518773059002967959543374834225948841178417009268571459726587421883107316924348707702433274310086398520935938008697572019805592465877982055183797222771265460537418748337397928239631058119579405958657995156431293843260139684805430723235256600541111019587118373024756994649952465994642696814006110072756056784846796193272712350255288521885031555898459159775563337372353009442669022676164771216242256237009524708345910615629114163079305124742995427676602321299404176379560777172369359002283856097178857177786729105660749465401500914765572202703836710969095886396131316707111983460889966744739913310688141278498815833327477557711900995970971478962537276706035978531751083375978815321824412522335306834503238154781531778799480914523603772624181535151204265046493584560671469654191323150169986251883303717998872421572405619361489182713310122596404362776010559968132044105798249474186401130309589545604631068208963842529507616168267863201224381750332039090095689320610558113477067892615787003285396705710204660829278866815541045823827868601521483175532437611589127247753978673331099656047381400861420835714582404562064310315474128517984456119397741113358003917452691416588952797567881308095626810844258027630276828260361182618287724388664362864461290076917719569207567799707362560885382586789504500645531843079797600614224750408414469773021006611608410143228589660876996389649549524988844159788989220560524688519922192752212815001866834441126129845708894583303547591606394255185059068794496041254919746534397026737852079255805492368039111488214905208422324802393132805548385376751077094910862041299679749953391770327291115783473310565173002888130503753377022235266931918144642341226241727263718672126165193036034328520928643832554320374970731832017537556799153833721972622009800028101463722248175257481486715333855577328434314973939011410030602995646688308740241004016781265294781854542643502093454608800539054747270363870443435908449681914246439429909569627064740569677975363962544124663372355942547822566531327168259845103182767307420282002508171940611912425598977450145923223525746201247692625911554450442369950556898185290439466075481681158669235779988330464461344279595317384677563914217666928861086979844449047202140477910157816925911975792729935390237968485521045943397330906377617483901680613065322897070968344743330004079731711179292297489484778506517700840919114452202860252927592534687476530744938072856027081760398476445388312214487458319936495540524955882731365662935315507083845245280949120200270699877545545600925775885357198969203328558857694518288110515818027987290691958231436937563218267555194619552279463997106986032939392742990482194422169990968214962523443916884854768714078702452485258884396409862570024978386424612783931151509758504939278557620238241248522890093040090132298100756330856191110070183485790264972224404513651263464927423121065187327071856901584261611475941823862816916939071146468296999614708911171837641233834075167453218602741807898889785223375441096135883788118815030274373099342356125224402393000211753854522007851661189648643807571579267804689382453333744483794682696147218804962677816735962415563452771295670223138737889893299850649166804851204308151703405927801044484896925992697935644244132893687443622637777291448935188278335648440603716326996396643278639424663259435452707096407485486631664601504593160105252576275524812126645569894239723089280257838938206360443105476662132541399171913362646017225947165858036286253918325756763743021323211387173114971188093045968700951002177310739898816783451978159529985405446455466466139718401982002315879133272640812957568479696538653389313441047177504364933262767530614488247898009679804569226061006762195294658554626223433755400839539306130456960627815437197789436967666431578038539109166213910789800424616710806565651004624915191043296078006397631798733215575723241741987989513625156065181072844061090273292252266773587357113696496252893714317498214471168673898957714995165967734062067597829422258148821216526595898600448612560523437138241790178925966711525990723898040389396808544198936923286982885203393311655176122788560076343310892114315749176561538636922797662084773229399580836249257779032964957070244057703394053759340882979182415762845822059802214312003893617799354182899953709327905981529724915718831045962501644807179673003687082444055326789093577475902030382197721478779627689881102422819571250292461796348805197323736156627487797466149151315974253921477296167216781426350094016704524612335666445724547822393017636886995327449325736157708052776812307143049744566686392961465052758606361174453196441055352551056883513449422717520098162439851810278420091101225106576594645653817089831095467644038154849988348735893968172388650855951826590847604543503239202613055997431599473748431735914900420674027770638701524224951181251908925896039795777665272199422665926935702630957185031323541746857573862726182428072792404149902315194292508347614243036849739863294330445225318806243790968948215009954289531166453359249091981476911831120114067527099323609917613927252499061695147947303707020032435874998073837396512089313965690518783643835230715826198166849513342358649269750463155552382208102987303737109326055460216825220705984907021313670744960594870840315449456198448443839498027761720864524930440270040328376265274243936463823184087332323654664631937704816811671718654278278191424333288310615652132551071615005484205295311579080816369161454292910003536249911355090629377841069845415861702776805751737823281042975793743611435839087735541994318703566913204182062095353200444913242998733422334779353259474406607797431882922880675634508684659088554025300606737174555552363736760822018913055160594960586177223455763477061743245371145979091174166574218805283601684003024170062394990628357585047635805741556821298827451492623501446094955293893793034058322217937508687704363279724253090101945755969385012826455007898975877990401493344667695204667900295498819663404903864433727689234100231279143361466791311154132449748321657053339263121483179085663999531499159227253948254343627720590344635533368872803228811125124633915048942748331967634083334359183511701941303023164296578070759471308598635732554477557622589016616024705998865520406985216626623906677905299504356062999200949139350669129844103732235118624801579852198191324862806499046855360196690088885034283768424352963780515683424236418903936265213963529431119392747046777305094918583466150261103201285323046033810840712248407138218646765363956747980397974638168215910256513113333187803631452060709636100574936265201681574605772688220613795259970207193875013384418154423880813030403851448552418895320135137493335975075766168413422544300617014303636208286446218147321838143160023770547984816723692283274054337278300385827571944306726569619843173805231278000855371827968848058095817051822420547474422717201218704470055750531269901104252078524310735329124918594746418723534196393646817917103774841584260615239786485184081635787283679732789071183104080568731041601561360041289894278400252715189840893716555049871980676035800819939468624833072877996474802810609301162103730032669108505694516026942073680936231809614768774481816077108156378415786340440412480374419234547156393227172341044599453681070534132181336347159584753230873793757882766919875696184445124519735540706182171718475122051959332672614606310060756703693763492876571973142702515139387395008278461299805883090711459675655822874860417568385619041322825155357112885526635256092784705417898371081010025608175277080955978551015661764970122600731742879742524912093444935080445442149809313460363506122278336733192303959222154445750889759901983327816431010422166136542116023590065033309127636887959586385796397057409598203639656259121187271940820082098673206300279925679134872464911557336612288150959140477705544276489899844339770470041101124388269807354976816852575629087518024288796832962810541441255218639329555464784397955120652960983263759395573197434109473122491519664437373614468092218594198097784171358568580973512044622457517925564739115029464243961683433859011377304365859308278531597101485043003282971221774210309338988615963662434905299921112577461761073453729096995768326547322883553482308954350411718130648169967709213017543674592184516411848699558397870816302548436724738929247552136871783882637820370756224224183186724799465226265060863184423446454950787115008368974802813323069177190130308352366069033402589591879376498561496784014084156025838198558982148870812677574098201986979196206780355654287996755563356155323842274167925223902280804573644637468079910719061250827071484866547312794756911802655457766181901031523401775608065341538976325865322730502453123564456430346931220524544368739390506440303961050827813217001217082004909480973060531886031083513650590850166951820687591124334490701033157211704109937486898799441811911004836021100558543404849423314602697827068260328183031710411329548402596179926413998187182261136352327918647395788454798313832122185328922845654914450813703934882982285568041046977668771664718312856709871860532137708814315074307463612170890004104007269730973809174259438320658262224065941606276048088104544786253394854097373818938542769895124753215845383214132932693025583678450184357103225143673282583606884610254851044530795856828353134888964590754482041737306221508156840388654667001823060217345344159230167391188861801090911625971607463625960042923159893854736038761910408939018494020273074498732509418113733598038965688225751375858740291144082570184318674131799075075550963953799178742134370768220228737686055097364421346254109780577574872584147908375851190732445251990302312692595680053012052957006359871939639241941701528386873594084268786066106562848444709088519490573647086853156031992450085918078836940574026707887309838722858216099208830344274749952104868241057573577255451215075445726579446929576234569371869649220823969727530788980901276164308462520217399582288919487347448615188505667025637746960284956166694247070240420222380625096270225655146612766395052863685974216957451544443547372338856127640930330145645738001738672738303680484080139561152994733026223017517506067207849854954239901166375327292867150375966210982100664346242493549063670648385826338690813685213486244550688659292319010333817065012905976004535120576849709981135734726694696677252424027531441009577707368991577714260455542783945894783520268551553320110252413423647833184986655545027197362498574093971678346465204495761477590404770006221955464800249875494899711395101464676016266603209797052858389883775926975976131512598856560037603230939152728905818682043008777355616656588998143707609196422371322368660603316851747995187783301235395958294930688292933126274899499466641246603622005247503840420123624836545247289695346212144741508355382331931981914731005207431074539257988936224211781904364286742191137456309005838575808646711012101812448956205324020571633052636720886372435513153218226078813411765418513486064741346593761289300730038687949517033982928803374121154087590642669797149784265160190387964726027284028111017493565054947145220488515395830483102281230753217664493291530832531968150177746471254378643432885319932276328594962078024059206983815136871616661580007591248291867746663428742383592788191009470550519216259586029369532261328835097545192560935170752229812247774880165603255487417836062738093487213726292462820939188702661178758216813924843769889583418618912298702363758376267590233356511562331717079889669896343851909722355266146174772062776136653967293138563604133868615178883904418458619069261273477618815291825687700133388404490189423653595288423788221444554815642778518880473041677536142272602409676298627511491646424384343726766657059138847831359790170315666431483586752522122109257749018665462700134989769236170653369705839185286338205846104148820869117385855092456233378687522022732023690012589019886203512577769945758116113305816832612246724170794104989810973696434975519976697709260861972820682912631358391308033654544670526848397327434596310382162678641532175753577180918624015505401138917542131796826235150251221403392133348043375699001262517809187888300331087045699882769688265030604354760307842800561606882633397679524102898947163459094269323597683310858433370547833393863493094023283701212326503798690063101226995979307236012841273314396642788883430476011435456928098720688538531114625677644597371516861641924435927231664131865516687368262170817821744478794467007970172989952571354238573813918879822941912545446616464351628841795401139644324840208085682907309377380489220835697923432183519370613616720816724296530281560039694266132918009386512228186872742820842488293158805225835354593976879886366935211697148110582335037304523766045306902655138358254933918288444632953283969659837995255983755586956954255963589534234421198966509127225496781549076895240929019472099356169706631750049080714414461930736424450540524216694093771910277675083817475032642933253120165658433167116653178057091758677158233753467616602009210273220773663184036985202969347241780648774917008575810324084750265046924344086662973326597979318772625248540123635897630192232048238286851271684120516026684115708177637711643092145681310590481263310596155164585970316055327641470387937075778252905690678502510825913058214535209066167199843102363249253163291443251874635761141201417634069266909259292254606932240838138049988806685018685458968348379610230294583488931463191241756434951281642193278239067175815209076074445166022286771906806305336080196355192724836144578345411096992977352280325882360761306759724612914609851701586420632675828448394138696756507427782075277074935970412263929432523314216490097735237833400628315342239788632830925160965417074012111507876955036549472961445334672386466866099969252854170994439029973180479989912254092845079499415638681901959712007776159517580067164230854650718063371852506435226922805093751678222070686801592689331386990335790490845360727086391907777407207209310130124209451189496994507051047142001517939802200158054096653637746523502150176989802595930928284896618231529776719455430274262881810000347131682253840792753735322818926667691235328554029307656199968374321906379877385224217289549665839950181622406429543484932306611787029155225498018406406048801951234325585392990290731066851383040876345341638039633681707603269927958449747081375325190929528210167305049484578491489807598384627581152245924019816315914866083160427082207065666161588367239572936041314909072576803171300423374120149159194864433404934343363916615043937219169878894334818283128957066887306710752495631218422754376051885080597166493253344791944316262500292747707695487100124786170961307169474087253831890082508493861494155573005937140569695605259780418314421509168804387245748483478411481867491020007276597485119279232362492347211905149161422053967397876013325967283498698389235282028564235903301609023790964704927054835338016128232162990164793609965001798155075865176802871734005674491375325020997238510187614658755122495709770207125793981825537613931188260823617990201390130782258158134207614708990984579270057009764255847019310379684418740833175741958821323982923718459509557995455823415772664972925342119452340933983104042177288442529669015908190469286232074493001429170800094968977731856201975742234058295444728502162796629167767152952846335685695882781885108253810560962034503396344109356872938251183880904262965188293211028819793372033695355070457037747484496063544201675339110944339635072765710654482595826290171192658975689173267190417157741458432498108034311088150550687436063781655447776355589038937954867335812918180114222963878707239975965859278009384411068248079460499184013743104631760815569789976233243611310362978813022895095669455370586047496119441164151391977714349988554924012773182427512472202554580749921283708746172740527331822811872661833320464914042373391663949364490176739282767070933881690238910261411520261410964172101465604368343294869067112914272180828111508504951339252879469530500713868875823974935961100926958481540679982549599961594160424625953033199007349550893280277554438496520839360437597462033933689429124969416411558748118076217370493240547256469420118961940059906287854866241708459373170566000005612981410127358544046965504372021972581232647804712068227011552971600831302077442342114584298420832064642869085909029994459916617962358033794605898538228403664629799085099433215445222059171119868167629852731720196415308375481162073452724675277942179288198353661348921868234863690123787850638157823022252755874570483073374017526924106961293686249138300093953607789550738007675132507470964682710712555707758072182892465135050682389719752750985266956189403567921848929646206935652720349006009605530450837869503898182271050062504624816831191947479142647746262135814391543213371556486761506458177953181441082516918375593440095720973977627648357437936412578138682492689035328850938317488854276339489636211283344587035463533899253733767515475670770038689006853573762235534025668521798403076461773496002893554509354049755097019668977465840312582524410377974222009268557375847157582492328416214117849816481751373000667883901687889815832949926584703498720468005390915850997178421799995438434093399729757027216103670892623899907725255028787425121603960382645083048815406948009723724586375481041878134423833706903216029558134302047247840642210855361917305085962618841956415357476703182107292664194829902023392598632452301090789764094428553195525554203459918334047064990272095329236370789822394307399589535313076411396643088967962359635390867015462244370976349450019154266985959692391152192709207840700124776295535390463274291131305858824678911539468873021185833202276563100305192449010359248102209925967674190549546305486782164888199279276101864257387999286312925453875940283179205492282602192205585048082111523343735766393648780122171405769477728180190990282903667012356887491952096018304494909295433924316267590752669595642884658551649637615384847329005474201778983689143933160528056376503687692503270295900219382873275409808086077942531163293213527721358234705184523207875036904930469936957208455294438016505553262206320722119847441072202341781426065452570653969631102523259249121712128454433124465102612910900072001892843697168351986606317992728050305084638400707793921738759834808191103126096485111463347862860414774703322507763402108026110684302600086647168956910852385373764837328599793962558235883561598075447084114480729098424865362569523285436020594172665068028578006049584866258728651491978022849065178069431727054757562763743806076434284593124145881440748435345795587476724085190471826441409699693610065969179221008628854311879825449384053807183624865913885748757786167179689016143684902655402279646883028181591698774073894588949329059915164374055223233098025227887129938957660740971625737947836016786347879355243014005844668853151046510263383257760280603434617733625318473374481891275117798619035512764360137289064616100038449640643458346552804046934328397222268537429162557206289875634169752504313945386534557685055580223504306540021858759749753143724951006603296979697253373031501207919273913488634712687330765834531134393867798582386776838952118622859313867663807494559874272070491786614847428698537154879774671215497773939776397038421619252515451358837469951466911734244524004354255334666601803683960875783399970569288575434869141594594872979152833793843999341896328776586878835114343092713020311199318675549355196596192441876751513895773029616151547112814835564212789170927772970180657941056455235583229107582615071412495405507887105007937068951786875666249682811992390664478629737667508986699416615841152135652068656050673300310346060804942847550236558045904792058074965692977385605641632472081100380055751573298801419550550387377757160202472481612346977490887912438273695547283009118938989206217626122758429184404823816988500168505436492162831481599498629252125363169100140211543727796396909148355084811055582887915395659448942685152632616278207315835386790819152402670345155442580646002228082910361229308315233833923918734517445384602611377822654351514199248718797070208398159646062412263093003345342503134930439698790758080996088662060873259182432223616610376844688414941054574928471719248912533476875341709512659623032289783423524834304015264496930726103709148715462205964118767565787512185493105205661942045260777358704078258912572108119182963903056409697411943193013492902617549358794509675831483920082222674471055710360943034530928431976226597347622899716967719295206254615711819643289118681917241093619010035333144096834757647987859122157579408729855106311693694683387461999923330125987305593933734261604409323409126375884774046338171016816415586901611306191010968436606313459275173466869744077211738378695817875459188234051599006354504502558651013299864023253301644543353386223197206379676124525120052521301976173992159524477506686372423171356029848623508390153863349772191214139468033533962137517558852072894194649712012953116034287227149513353289357007746723641474036406835741977697790168358362735958232123874666072558180585775553168992958612975688857327012986782835341560410127208752201689699258610988818127376626220609748645726506802347576037165685355105146210082876959721985421876656507544824584776864767450284516504101847670031762770747391884652806600756855424477321507323624583263542140448207902685939738400068545645729934544789935683128422093331522994761324912255843391491399193595708825975718563416829645913807359586713310000551335613990540524418664938247695688032303362591650423893781056302096407377481748641121868501931687523952226787251716767525058695155141041535205610897320960197022516060568427675558047295835858567638889541967092250306191002266893001560507369587941578143288526404103770007872937610208127271052507811465170709992074999959460183429596433836536475726180134382978242833102832572023096745174031103979417324572945448845043402232035993589974505704842076438435724355847189890842053783456002080693467155977586721947957127268934450117917927049760415136561580649370402067260183013323999940593286333075106294478246599007933937272700942307059221877504391567406280645299995428451717703839118860228180304664220853614573297357463523346553090322122380151739060931856181537435120652759800543374280085277784687732273275378203830762332015441529439294932770028957135418350373458082105306198268873327515195217916328137335115438749664975784747395399021377414299912323617713966228413201827013242625915545565602585473618236784412144994440719230793763287685990521051124223619797996686117596702879560311445836153618899022470646772110614005612487871347244399822740096266856057326778807577384439837624431225674099427483033624785266920721100441324921701593067083061561571393364918451314216776071447039690852779379431117822997564410076132135475830632970832469299180694778555436811834738012128351671019230627679017074746733362067214870515942758373310434205164370959109369648900809750112447131055393388759119827175943179538397526854434016794510238188101814427557405528104810073911555274311375017588706099038041716522643309977799846879637856543930539685173263206548153165456858395205987178530607272495019120089709671250851116045479735388335947854160082456786669066142612819844857550226459184910375213715426011225901880948945412926652361321171575340518118923140562783556704243040542678370864602119948720917306544996565184122373808237853157328263287090629750152688900762526435035919019562011072456861455805503130924973071661258016311658200373557488031480806057405040252711825055742857308617218263377199954268960800975692688671695640784099562862430456198362541143039632498634874622461673414611771300604316354101458056648689452364931503551403791748987692621786583160302770383515235517728036885871683012555794689471812309370224411211434466622157351539820239482075518350809840721592429302021259829025710467054404946221144222831145478901836735861703895392931240513270373927648365613303951458849482898780160586635517412079074545610934306414747955183445207119936794131923785666561222665584454010316765820417044764279950934532707193366731892235430291141336551837825725951539441578285336368475708379143430104916020141079908836405486967098640112402982531567840241562970290387802190339240734981359059809186142754406498422626396342850128018146393355208324719032486540296106743273603673217995994374043260834811975215725267934104726821204662328695718928149942926928784014730440969604776515663698772871341697274607417722205606886168108381159651015522027450756884567108639579165536505333694156447034446894295292591324513626431623243086881684757209700774496596289214198638594387519942391717764858735082799054113273577556490445910854478101114594053706719413116920797110198450788836529900882424185306406463488820984180128844112777061736912276639386617580024104120361561527526822685306179313172811471093977731420846849281835598008242051641324157665286283538034899188268664709605584608582923528369181390308457461983945209377112234246246934391846718128752071147572498928061437703928408163811507157479261316382033289280167291589164473714079450203894769539267468974096866673584997817923038705061863832155642700385826020264312442257127167826952612053829998048221817625341915783785465284037355366642742058643267046081859976075660798546306144262234130050748681433311902014279954357921980995464026942861029130101176065973836861400423509207870852269753318597906581823908373993532477051032323736207239509070739333230157768206469590216883782703747186106874311863637285740794941442293008821985780718791335931705606097234276125806872883950869387809113771406878012805611651301325175868317802367388473395293049876498397922774716689105511855830565813608868155113662713944369717184292616089655384322577917601740342779986132200529977685618671200017357703242522022196065576550522338966623182018261724790993439032853952562514957329933990770117488376182444124397949982295595433241418125884441029194720523851578112319986709979477628129264478767300589583227412040278801034025837331484210830541644264741930187325734296905680259839379346949867170837445154944033605141269548527279164859547968718216111816079074727262150666734451676477879673809334686650169358633458755385042981994480326969989962443874940148397067314979419629124168513685646845484486055927806317225098352531653434540530309285072385590195031809575877043736480516336805944709532014718181697413326657264961218823355627653889150974117655978505941024239520522564776279848920149412164028647123986657691972041870186821447754595089630987853335519955132414708287445031426757162274951493540740824743715780521229032108585194616522847031985613158813202437628472244146397195830888451418065276350687618351020643153548907240429404451461240870263838084343263225438738739657909412770956347872505674523447178707419896512437108109773788043312476292454453132339013045163989511065525950114576382079372690971211611513747417104376069673334344527945097546057090963167209175437817908605009319779310419934001645505072627465311528043470518813496818845535919326025048029117961200239536198649606772684087880939790775385567729709080700384704880573939032177740131865707124808985655868262103154135369433324280608872606445460246855061834997624143070046805499593992239388148559752754917666108189593681332326157840602888985442752480740687691634221396559553726715655476332166157594449957598100461690222941058703650990198236502665182793871079876289845806102123927965127457712051360264631874329712784024617465016620131125675376604775363576449359438361777396007157908059448055887204370882059440849224428682532033876850669318888116077113252930212287260167298566956232751993968468242939810135577756229438901220754928372817999940724866383877435016868128555737441245621087567976694834342617893240117580324892179495059540496752479521852404315684813152956361398745825856664961852838766300003235169369384181814699213605929233250286695804128409461457352161123689170297803719134828742100193469399165316596469910772102910306565950213492302542088770190624883504274041258455261917328726601828867368764334167589955071325418430990939846957776335949791114117673513575889460760682562465069524878972399243065560651839538298580416344680818170489892036216964070770020876498182825657601968593054448408315937735305579787945841211612873891135734817603315878700684337931880798126586865055739716654907891586676341974745855288564766017709592777179039033717788308563682142563848370779809261882000813256584103117979530358215795868303924872322705822148149372743772965669485656361297458059058111112846489928072594867913944066302851001254679885390070383580827335472867722388572625843378419114547214437551718019876948100266483314109218139350158457351763229977077885651162586224561519602506940394035069100794294289575165221990695348329460442271459752120114359607611067601198980884535090174078739005450802287101282709087777725581642638961012174987389699599693486082373509082394606477377531046670835511682069013719262548567850654073414038947913882312579638344760292451824236753615768274224823655426693777862935385853595532475589143129695590301780876532616252124138332558377925737492596653874432559850609295116573605786288508340679956077098118447222774354145346975061538914278814295274266245812582411164193417568644608149307748847828986989628344087284550061024833907832064018073906695862630771208982496228397899181886258239576169967997229843990430640491756793158924774621355780062100504856223944433605914543277213966434677564319229422986338667682008029679680101393883746888479173231612679366685828516435156979583509337496663567312198144136931561960177824188387689589676875393791947884295481131317410933701553917353883045358849860319349784453466751925368320007919203296760607893583449836647350894415221130470947900734889398264306589346177710040855402302941444162448634217504690769099857265416914897253512779660048909985988277081172441916439671139016007601847389809453944250870155926479956984086308460137224719284853878042708371653798903736137783087703900971245681654740894606614063543040483163449134599227115855443264064464408504522352858574234861390601724995601226151004425033008162294404852153069983629430374992349533886999091628934352163636447556918567631929837923992248997439981263548076658583454732745465097743704346913218825299096542879519977561511595797826360872437908278022246014012881196724756010669298517367686356468757839601999058904801271991809996581471263819737449494956309885959508214639449179029130241151673711397699305686312248743595746813065917568711810487662909429857963536703576601185791750178283645248883141368649688019999314726192603002323613980817397876042321022745124215400965129684774892048963421666952439301501356366567789331483817991950149347188900381947930497730437057437897303489554830959449150714803379243316803736401115330961469736282581407265420562944878951652965717315748297931762650458961879129625858416992723561703339406526696027400653739751771640794016028683224270719548075308366909575010264037504490101092360965289142890325805987114753346827219929332129933788362153390121949611177788152079815436471606975518280977745300178634571949141405503819635083657057089718075067210841651949686652234200805769623611313860390731952417431343361622775977508594989175225706904888233209344482593699079951167335630241315337313484709999212171140969140017430402030194895403784046002912059550856247540587876870233672988514571943257231327090409879926302333007209997611847459449027542671762312190657037305458432438705123277520393774327045029533699251204038758766111866911073706950876217708973640139072877822499601846393978452031405309783320665249320579922434676733901090870626699252567920470598100600085560462932533564661810432467925166935548969777688061845582056017779266447863542950533424178586361978610124040487403341537582329040454850701083081997383253452630625572968881171643343693963227784673119960209530005812586380431968054723200012067429528087931381866706744975279405603192263540268922196228559008605484472620460719849722708054849777229781411097655461222101475749574305452061569905240932806137709600614943213577894648078716872665700892887053027648401979192112939726377913231711891855131816766403498649892243407040159768455023804014807937018719875815673134087864551704523344863938016168646853579945043419702129536932841535183457301669958681012084377358112038321896026698948709503307825820632509263645238799367420574268974908244137672807045988232711219831120756966186859886367947793250206317109950061796926613549329525559571241559716843134405843977991694171471059648395244927760340871477840419337770664596578932999358270880964374803266833636401029930106908162500709538928910011615324003581412719131749174706379737709664427651198080145605094572409972158663012941748808261729330614601109972469295557276046056069159016832164239316071684765278561701054621772055879730709879712884672541610076755108728323555600366186988121885745620236974625020989639890044617081922313290893408795960007509165418321412423028574791414349821756388326299363521414942975403307229337802329502256005041973470667064098586799016557652050979744176137625529681677133615486712785828461995128518390781422204994842155345065214020414411640308724016298833453730326517427193379295728495579612104952985085106294599610254282910075068486442657436736159669487231744465750413975363289356374022833071077959360395800991992808636801145835933812253494405075913380777850889189608902593976381757358661508671519516237635987731248357204537170267026643500548516442130232617934701694648125353014431491809609637207656201728541702575905828433662754780738151985874602111203910182578813909132072974378925152861299780490476455620238723718340666768204332417089841465935495928644654901956028007295323551593123236573542707200062110831979989233740898133223939101323319225167947559553238007818638779694025598909945200664003414555404417932300024343962983529435953547708217123973520222818149375614103379769922687422792343647466641698392426408506003888757481457412297708191511578614190145177170779937938816358952044865537984811332779257092831854229311170436475589699782185206432568432237939162497630492081630416019670468982837617502747320809440142244871431655612756101980506032000268306758488720642875283747504703805234214564176329198494927238157291699336579008889707323150336730544035454953065087377458856469267353042089386288086845349219809601480773012966867512397470970944622511613633801662703618826654120506832282255563271702817887669961579361629272471140797208538710655019483612418774637288517186324388386547573446073171781482597797586191890616569123975841557839076055131931720599300706082089885442579880879880740261155195756004252773170786016449308738836265097850712246690915233469318899373009247777502278597631784545857176807059915088627809573251518222049693679450019961576956952002916490639443422337310375218653438069056425718853972400473844585770763594862417263961805690375935222124583572785670373352891887283605467215081993303764961783227981773408298986420316404785225665389868912847384689423647841997869038389167959433129492537340643742035524637974483955647353245784586158484909372583607546261454900631417928264763225846064323640036207723639806837382871733518064186681394380707468120505693431138196364088940416644030112800400225208089312540925259569008927311559434438931902068560158802375321757480665241975586245052458865550951292470809179059617147311316851893850393221747955607171897981643133733949386693077444504498181152793876411732212365263184947210661466819272239609377548416602525875446208811162830840138130834592035953762147992567467079182419884714428459732592449698108876783478822553507650956205854084364619826951555147653659286569092959923969403666403363644186248275134355056814621384942612329827123216162270436661093371924100538064083021979047694341038349283800651759172225315141879833079909688414297600794757787117808599559764038222315673312713747260531498180774938836300360490753629339577380566695793545746553747630961594210075378897060148108063455828880830923338834288730022801095275544020684193973875594268601666237514863476411259316686792390270492097848648421006660698085597405769287024790504856305535450255662232296485338395811301945423884457928235077284716556589207022865451317848413376587431139980157120100434145033352451283816374819799375651348052956901030429364843084856323280462350136717634975140957865878030098937480060704153443177845631925237813205863890931370399278729310372737063462664675171639001780320349382911720701300217698540268675474528088958566262297227747997228613938426420199740370837688065900713676505516263043308663142294460418034010916456193780786461202363900264534548492731220202965150773234708792291868951958914996872010011460764963404239416856017293913894825493246832954157896942303426069217996302070663276238803106081268709219551274248764900991603555541648329818649536428217547041221812283867336225843130651723265960378673118040739294686208900974908716221216219135962476958470610158161468208403297009869741859535376438415422772961716429300776583226081357934948577273115218497555543441544823001179228378047555425611703310661361633341700211283076515772344739156452934797258108292414442720503009888577045937315359222577057608971568889771973679183223664699605554545100320071142779036144194067678491449292584873467946466632269817780498373868046269839317001697476789295960807640458099279237992001767889396871304482366114594208745898081459626314155683940919408358713064455814056106088369928246374805674844665785156352330845276058833104496370168401142668363554973519258956629354961160962509024375264324663819323638537602474161649211612554785431649062799576670705648034347628819728603899105106222338961537911890582656977550891877572229572850393852893954568879722063460370041639971154246317479126765924957089514484448171855810762669618210558107770868431146222501220805718077717417471288633219177477840900350054633867411639465250492441652267113215864731519635095299106833470855562010612638473189927480619349109941855281874456924576115170430073988612906614914505161643532203520821944861101278628928689655984141968916204092095042317662191099767223628280042838125829559801083884512299407120749551969423093178034972651146838706298069181281514902371919134910515996398593890482906517984475754237953969196087318146289949099212981534615012924325536748432698415347919298090577572249575766994550969875868371190148355042041827785634961450386753142344529780635463529752762554489835913360942554984385035937292659409853351174204898840868392350634228708437694284005861487050190431758017264039006412758022882685049505880941280792769966373873050202752342069138697001951663465135842825905060766523637066668565953777811545626123483569833758593028357864055678283632360130797479413251124405011250193002233850527267915826648747574296037523934477054675970286716635313363782763160982281987503569380114905441385307959835928877054058692799718305743724514337307165261802328047826398577014502485100284848523960377990685542899459888475873947005336287163571615203261706986346751212706990253897086525223237467495134119710068139542600130773864304797026243840541231861045961867128898223982709982679973649755172950379124086891553831819602083361635663074343624043022685519763226502541116485413200264962157939866004484084103453055314130865212365896510036334334221099592063706330364820494367670914786216311485299084724209772419406544003984213102509612483713265353966623143191922946506267490602798051622053400789472329509020209267575599298589912242520960504319399440921989212339177398315561850978432791615350733332719383515959590885822832362491328646634662023205878994071242389832373811934820053972554350893446575358546558213258946890298068960409715531980539832410410563040500047476754641867482933414002742275204721920486452171886482080280278691869395475754966626001357216120716498903220769578826621543714538853934013480563290998785299525395919632270786352607486556537171586821484715438843558173795360381179947352885368042334683358174685775743636242396086549697033888096681760939073361206419863010865560239289055694999134627272980448039026291471867999650127417038573613358324550962829621120955502620555981127218979176791701199343383622409867804919431403464036224021547168495705556864329722336503364571236418360843979514919944661707835799519259824632665640266646558036727887074291714583262316512843172449039159965294239563007151256715529235903924754927036832363186453322309132837906745638476373070650580720236937557346771670441055454928916971070488528149245189963388990786728964889950729681034015996194981357335877156443786835487923553099870804759419496493535191564421589447512880453965598415904651006905657665739630331250920474085057404497944594558494559961383001421352846548799030253974530596778045498876435735619680475446828216664988571037639141809195234879316224771357607878121279180255034944053319345325963800875355694647446301404466357059229822902948385978902517720386870186583373896911293907585126171355846030277665890239927397654616367510818374210680905706441890165368142707478127253827762293484983943402615775257275130786707558725278878129869537704185621937809252314770354489145891607378013083681093045721461452487927212462067301772350725961280424762808171417514526727002482100049704022097554917176821078491584561072916701682854097276489337045351614499999058795766967336607685746390267524110730053208107214035218077090092780598789026385623265413870198023576717284998819528468711184851011524214265519397092550420424971921919824151849647323913030808436515191236220241177644237501125429928809744276887108944745228093184736141585037109905691558742826572726248880442105276776271582867214604049447759835107885014602655317752715173381424681845594298173613597665329593408977007788600353365973737668165974750940645175943637279980484608242859147869250037428865354648701682825632098329822675078085268598933534319760329599058655346304177742417666623749332353133998044921467895193401755779313120331874612734255579468859152446014755064871452598124858610353841722045038346516536000055602222963575053221671639561483482589907467500684068392172836626478986212725958246719941853934593585725421523926803076825458497462278466966769912144842120748837206197337550515878235855579194700657253729411229825398620168500421001546788550674224999063067067039443980181533084782879642273126134699637689602503015042021401933477904157101747874042145426794270232022310704953083784043706633359818725626092451133489123435051456038264908963122003335903607626929425802101663430189731368115992362824785120457621301760436531340198675855318632935709892357671886268321319724060511754163636153338912508203250176949727687762164194995714285922884843309877607465697704034621530713947039757135050930308520724551715516465076384631880832938360847060241652458910433488904703471664329455193839255320353618719184916597672831095762944480799386792321721631927696545213667545848337404523101852923994552013028244260065487984559506639995166915920172662125393907979037332995713423905732174847681201969779360736433478038195999965576311084789641000999787268798109724314867002628686605391154506933697872207253204076425342581385068680882248456035931722326367602559756411604418195709947629688846509191160603718235170428676814965636219612707063955189434328336081746265798461186701662580557294838521778412484295512418078074868484684723033620522827125092860788585981247986948348978478203993773373898787484944564189605186387364190616693609271406100420040984063042816265803438812086976271473899876027592906938586419426178930449726243478137882369507769007068454920146015224623533275222863035196479109022397643074680529381218670051912653711252972342259515045054526201904917926261248074032743151948198194545683010249261667672294412023526760225236812922302491319396466231040666244719507584746283991786268551682768861885338181564592644527348213433124461306621279320909117107586163816558037463372473153923666767924133271710322026408564445342377506598777875412589740000172870245996669917170883669709931959300635278362945058649722932872360408628013028048100167096035824319758204096209490249938543075865415568021712960230429715817974054790778272300751265574431786375375770617981183940623938151777726607894216420276764528733141003574849871158166355682711511675774332756517951270269525203945608845658445299382621594693545305665577222853914252682131514675709157143073777895336207647484617362957200619346851160587446146567935160331514719725425437091485071584768501087860139533691072356431971678943954934881342797003328313215278029416973819450110421688859737824001224066451159848158540380791414087468419853490292345960634253820876453866652305670345011941023991539943660555293569772634993330081232580168272464976306128176277331197842329182674903643427355732170068015567992729827520981302897317209739654585029363219157311167916127052262018519572389788258173025600923352690693647548115066882287634860476124706481681212241959207959528277112682686549652289988547095942285423993257711055892605704116931823725416663667622550365291481780410842412472462640075052356657451335819565141698336494707516333907210900555138782761996711924263676445953563359255055336963073356189457861304290750376289376792633802470651288532488216287347893745453066228953140265167519522933341397432427225007899791331607665464274343383628383046983186118426173040539638512941718074772063437389351339367206098565616677344716015342987612173576439729089154966054333481180458263703270629588050094979863123743911093873458236836400675444220382444879769223070619603518690458778884395363620011781914757517909445413389481875945196970345374463069747062324740314197732646554217861567705201077952621605418380078595848816330683841385119161913226459643394901436990685633319803525969234224863427382952899840503225493046546658887000006736085925886993658204527415311329480460440199675429681901355227220563748259257704384299823328066605200993622395654164115628205781917591393840332585686582562980026158782817552890626511295461823955686015054122760262445053695756489394428982466338761466879294897665744597184430434273991970356052969647656996139597401214774010939465325813296282425931583530285353885191247603489522548192045281184277097881364125740390913097411391932774474557179019999716567546768989522907462409972091723404407536846499843986739673932607279333528574369596190574826720588472264970130780192258147964381857102618658328366816305189881626109445242989810270990318953816416577575807685741378498859588565141733110715033919232249967657613395663903838350752580686713793786576511984731429025383694003685330770162508985114290658830825501951036937208438418313125022499154327952711186917357930681982680160065900706053607318857407676401061113995691451971764294878217655317753895760498836107200852878925442799806490816865633255763541082684308716329627609185386089346221535939114516956574177729025035279205363367263531378235392507165161026514349960920736548392550497255686500930383091320978359257944445083974141235889531022443265369681397734944913044298270414481645377663798249582818092808438116614431862431616599482080734207926749399482758718281360989212907461495770131209119616750816310360716069877876835332585822122031196806328986026452108821724271278107992864798837032609617422450905040600396630332202121058102960919496606934269310457394485529273120859840735967836545975288170536122249658914592004923254364333140070229661733998003238600056599041863590453907749883366812425020944816949166324370009606528404856378970710914606652588398797498866941517389546040846899184362395138291595512579142469390738547446906864741036001058625353527247829487909221413192449075862508262991256326425080132190915017206187361853654823050653635776833818906247422821142197862127264873365074812084848882964765550763630995551718460327973803710145294379285824041490272477768871788861647102303771678131410366336451466131062651931542370062009837392064109661515682713293828932737361947211817499077141559088712021607026859500628632920814527197654197376024134521814584959686775452236485502972548148345581360811284298244633573233550560236565161588075648198009152158044917067210034246079932986205282032524235882845023005450955592643545499309598930937702736008879288899188673798648587458154823279600306650153040047267889765344646824031473126699132555842645633571989691448832388725054167829863588371882045500067459316972056288181479718538141855489197747231749165738379230935176730322098175715542631859355784648173876811099283521687157786121049518990067611656890075003160436582490214948187337273371502103420556506844106043079992296121940508778888386863151971778424835740110964891895386194203418650467226654882178465710541528676320936635644914949724592550299651108963715270099145248361799015131591519256530366683919687170053085198742933389755777968195231055948738287182281091364244116572844857054393770144322321103189251543812551489502217554858483616674670160324357980292977848088324954702959674168931087617975108472363655667244073518515716910725097040225190443334030025621457773693122120326972031770600297546669954692312939315738794133902454007585516364865339400666655126231864875583539276364110573365212453397861126603457521482154455235928719712192243510947099110951565131980526914914955646333384905126939493414239351911744164681754873828447285655856939102621069341917654525249834531658661885278895866055704350756526710327330231278396908005672771131321398169607647291080358314111917939291067607513375508159231518318031908904513474397647810914849568657180749636208063967195201931137599402048242169266692511767109186276472535560439902551762574888594638049917851002504138658920792682095772628054734483271277204300642404591968650312861512938304797796375241126538591548669751829841847196496636968884589492029960534383303882751696111752519287893818558812229545595956102214655547130394815939165763628254082631633812253696314877073471546246809429142522580171296783423641179666096635488707109170212525925349636073711498730450651807714363497907873771379516381406462127588157591366857030072083879207436516081063968809443143390610447145753437132881285888119916142262973500203918594235719546090682192175109331558512740959212281568407661730443146402465990872676529757179400039040375491158638176125892873443949302124435768483254853585478871656624983474795509460623130962094423212149112712976855625648794418513559119393433270935567199167636862672997781928735446385891692590869986491012834892003237938782293978453705583607880013379104235718679821559610114181695240003391981558069565043430568744004315834757520942278002749239497875200175058469146355875677610470788223297208333889801250882496578606368560078369862107152857596672878670160161077528860298380322338735741546087767632067578821758242085641578989487892325390919746959599085970814203890217618808997986652492988070074429900620807141599014169351847564350899984651401082373812668855211035944246690085119171097601516148384038585179381915786404894153132731685724026765644176988691495183524163474280785014865016335211684541901520696068957855340380515218154583196483516401731139093060440078166579279942198782905131333292691557899509668692338772266752062121114153009072798842217219961177289400751835866096669752698263853282847714790221235361828040343578919389595761890333132255384743679118827976201060284052579172214532288243151223274247016550656959007864161901368229887291553577249807739716658910082085804769987026613006078704275156239312799666805492805153016232826880328085725810848029914571418856932122274075894822118501974593779916003263916802666980064846756667683415217963827258127807539506302318930577403081968163498954629963086000036215638914893168356916677512196561430235691438906651683015394925519600322715086960319031934058084071836876100131520545176295774043317890961241380646118986901752843778604965817781742422526569235167162845271090434385148126462684347603418860817878539205863358435058083040657575302666984770312029850744976543239853761546747053999321305614347972167669803573500664027765236151691536185704160863192986751908722700760753218248711432427731933780241108259539421705932734240341933998076406939461130836711818664204055706296103414071177829734359638397311567543568185238273084088167666647634008462654799122706773221776397065477387095799449754987292447096825662724938348783815415752226947470162237278082084075688203746443999619612761434380306259039012145425268107570346577422118231653522384859247470131670122709802258563493216035836304574914387056805634389257622328876571211717766638704018523897673381807201472423520277274580004966026878459359929216887139554872182692031026795123254373586736917285346601605152373733670009374404976283332813080917263364512270037294207237536636274330643187365677881882763878383775166967455668079869536943130211004476106331541604532866947534181442683263401184563419251762074278165790750774774018884574784838510657708680049016344698100543208608356980517366884430759612636688637388290909643855155761923805541760469177247305606101545353719596079433116968927490472655587680517109312668193607366688711284037536650628005726787757166845583490927137299977572953706622555625710218501460645738322105406839000519058085100632842294850159244043874698493747125396507137474923027853034288519694203030566300446027351710534502623255667109777220952659051453690298415154843490762707572067290325265663169191042056150424421697928817776287505966726000644727789424706084592166392293798435192404521518554854739407085172717700061173556987767832716199770300357238296299745183986322572798450275838979997314738360980700972789913806794506050454886058993238173696507405864963926721542001321976091056708976595469739510253632196156628919305082356908963578763003274713309889820718529756510929437476535893876698444681235903230046241194722306723825180198685179328146769786208115321304113874494053128358699639776992935638187911402919819280074178247970860490105093682621033637680422088606909550644900163212418793093705963129651169793632702360804009211436951690902581243909961892590985232539938993160039304493708251528383221117221294146370144098801776434845991481671873678577698461902819307057996578324966590186671583785090062160219263734183194169036717843183460999571366085197052700368786186721894977633432980250941940412072347426107864649111820811081367166174476666577014488332039255451365976318661673107161138948171318637248451265672455019116811057951187637287129840156163111541037550401602868383832157046030572585270787893010666243233337546179419267996462990323306289424229613022118046711998142967583927169104511493248539385059333825857339700570341093173454020771780543483430830924725629803785862029773323418180541302638499014407220520007776297269682403113599428202372574741794996227028969706862898687013414248197661043416973346861534896903740489851146338083951402717415329358934313244592172944574597367315038864907139252551362526448091282984661099235645779246822322931265652946706059896466631950844689068220329884265511946563876048795212164024675133723022144092197471375119509291713167446154460167551203612091230235636086929396244017987993208682071957225645936545712875233055133440357553751564009523671302615684080091879853030798228718768241124322656621213644823221124965686202338492193620085364234890200496149716945886717187822350202890611944375935031035514378591402592670601076522436409570524302531142509556557956607091027522437929514239799997793805851710966315471020191818352283541832020032202672272104040677689797753931148120425476119459747615260857914146649097191591244885950522401849525146379377401956630688166248823124450108438674304847263033097354046893351207840995877116961784959533314151905581174316299861281337953394008406013555353780472744664476006412291960206054154224250593565517881833479090530659631900392017742512516026360286803968397237033301654198372088846849331707852867197341594761907528159248011218326576082349342468276676692265793313323289774798068931767092868961162464909738860945813654374611723398724887809620237575633864617270762165689564319251615496126421465086965845547613483130229023466829139914028938967202616726597417458911365724203394493873162087070039539432126911498419225651903864800204870293406061253062481406979464138778120030003954254814139941881675939225343870297252472524442052311023902663010928758249585066666363064568188912134020504284237225247420574538623642555297841660664197471274669770406300352707692522178687085298522941951618252934767014091881515472907958339407746306909399906118065701050627960336553359946739224138397575865241333195710891635756927887218308916372339930251483458197974093948919741839011188693558743347242974669045295028959775191771444311707454140353184642613800144117891443797807697098805277584911788361633805186310329685351018747491527338402440652874579022268378172972782549232206131663836032452472969349702776064105604961630839656355346210132163163850262863075522009832721669190029260595315231512488464151568028715775171889974815569875236918777858469359907831433185006955344210622940091107316142764219513166167979198212700545674717264757529046212724442065125444098838092033145992106395876449382494687323911306565826915941176594115029595645840614727412399741236704527977568399412123109880335178229015595975417723832152887717985186988566533722567117463283812631963314583617322169984704457790155413584071402817068686420218127208491007259261956279627662440102467753977173191464091936874287425970370563282755269325939055086132401930842179266984059697348517328185875785147824658960130321434703893311594680692594398743480444643437787751604844908901845192510381618784313067763679872390599391520255196408588546914611131452204021687438299461227329902122417470520392813249073876435442685637979635478720655426881088080000212044749769432052960011348391804110701631343886936803281852230216080916990972851379417142079458034091304309360599633683708350438863143924861897974559442068509255115247422127431805647630300342572799746661925302316994677519529356605327365426299693860269251726965925671580303425946106727592265315860624652338012566578682180865537194673476172298823813102686396396347952399915460420085620713670157284433028721729842838555187140678790260940058555691152181254087951145934369641976578879880630528845513146552043713710198049701253296077527740070863057924057577166521284270316864123528318594073424647007981641880206554938006125626299970165837695087496335405319684940103736805492718549860424145469583722880098473135179362032476505402458650757096277927386931686252062123958631868446030186010505784835253684910330973972327641337117899782764694270071109115697261137404052759411113453259981226650361285175785980879622851475870586784333768753729342716659711767951922582244100295223664924666423241038139885288779860509976433164577776382610500968041832281996497421426733333575065409470173463530596644447559472176519760848440045889538372601265940394444476666865069798258703341865125109544308019631812772920721984602150751891921314317613129985078297212238431428819131021745349593773367958422307373118803256686883129405818518787020056371319280170175294477443115456377821429664999118594108705866297279768990454305797622249321997081462245030807680050252947386592082647966953468805325163533168500347372731845452540973711168899804227432062920826208477856967985561934610411085323055551078369095400783969669090397956255384421389351314314694663530488196996055807561834777351738420338843605184858575450945996321092750832282518770591270710396120469412655211677733462224352354137682027007745243599237763016050722735332886367515293070201223798407743041562727502676261404567836732765233225603843431083722066330998195959608961063752576291266469714633618884172383408644655519747567111372384446379245631985847907464598975849855879335099568970520585309630121804315462414527473937472047670173399229119076658463766194900646972377371803605457055289477428617233616458153707103436786752260843151721819302487728258774155721928047663806506612365742187868921492975086066715010788751174151836789207343030538602232169352806079139561937552363396645892236267649419467139677759183137533503954743067643966282284924307163335583233832089489063974768888434624876522129704996743043030107178462057478593548133474652468528026113465261938715547345078537256686606579719015924710586094629856545902837764042046755872383708998430339070623463516689563482667862350345155212917118188136010766505760268650856726052136917559918512484704363427155201581204719074331439934776961177884113960035560099621931805512479183950726618546508109800340143199181553659528774763951453569198810275570733087008588100491832934376579408779690981952319664177301732810492623992391583001400026882698843356474696379907228003233354334078676712508187707282123837157105723984055576842081066508506104553702779121006486638089781286373359465570142731226196167826296279323825820639042033803981873620977835845012736747408556568641087356163486680741668641600374733819853002777052695811929654237609282982806340056902180666703416101075156084217021973098727870443922240243921061529925364763788949067529318906292335410785105155246555637812050792457967281195211340426742628628499792540537994630265135391923123838716570575244103988039718709991320302178866907125318778366524802188379935951303021745354525370023480083396353656478523570557402685893932599731380192768918895989565844851821087287803648108214236175419056245162173986513108556114412577446372777817615357276483098719781623063807682595652237635964210528473011720954710336629298741691402206559028103315739339887899501214459807286040575078779734262656525415038315777834954545199866029331008512565809141224438208112488111263444792044028300093179470031072223722310231839323525964835431405140139125703507882246698121004799502015148259787567051066762197274143074178891715959942989452826851190096293400146987000102178403273334643865744564706765329153381949736641401261021208660268911195966392488740195267139996932281720490889271262713147089914505396270099876198916162242249382591291907735648916846372887880591470824340396972988968540405082905368960497718661574396090526382203405793386827282529935483924312243215457704641081765716783920789428287131570816914183932448959107187837736478210895205502159564356311190712683246873194136086695831027550086154624585084685077858927756045532266883495954161309735240902551689121192006377941223172472280216362597896892778858900874951506823388626055162756225144451997881546403517326533189421714996431016255738424890917899022986325999244508561393816592286969779074800659820776070318304401078611978684115315568251058019780105851178391670824163714688540536611883808104073368964162544655553434233879712883617192677070343204825504552085118423925910944964409666733986494600650100867178503316207261883753196923495794167696300130796614305936775409009401618453922421938949336624224882012126640850145977254916112525282875124049647830127551233752896613193696895042301514379252812519111450529427624045136701129204088406628825526941123007401789948249813878560683161064145212993438833316680923627511067894969157040145428901018268526652873818563651315858315515407951779942663472930292920233536060891161678106977203955062986238054457408060186629740401078007066238040959732128345065733029473892223229184331176470775283980380766704796099448749751739595094864475764456823837765336194989834969875650407640098139912232823652269084435343912260383691867793303620796850873541153483374409699342230923663411866587634442013752167910447744383244287084647345774343019697467493546851833988222997405741642001739103114503896602088269376326051799168531967703466805023016269266728728673811573202775015580700679541156461067806923492583675970101430587449912137448493449017508963914799810843333744307023067324109872617640887947191658227449395211740715240205959990758461235389234712125883692721716438801255567214536256777749666791099883489504114499862336705060767941548141610479152982776238433076217127574941726046957738273051611171256920113044040221613250453190094485687009958254879900594752519827898486848051208960666276852107863788060516563981174936009130156083748502450307171134065645142224219013709934576598632682185484351477588937695009331380693405904231457717994827790965471020839961652201287687463625434450040711255475025573173526502692447178852078362480252261129264211833121049586052231784851211858801312068007337890870842656058533371872515177019755874236019972429756508473920151718239429127386404758011346821122621865122291863149547162278790591090031654561142350596117086389715996806729555787468335327539535818810208213517367695696680270773847905832420103496981245155530149939392728862909796589954853008092857044156881518637600512509113987035128896563986445817399706750213774560900320087940525199247341950986455650566023945293509683259669934616209032454791924427661181218444311548409799497050302319460314657133130215388742518253415701026763473137719502706014974102740454940363500381515857570258706546283653109155410557734121583001379027032916707904055808617397177318822291032485282640321116494319998772260758849370462394416444440775742667311547855819010846857512333993522186947757687615348514999825960869292878231925562842652064261563567572664614027651286591019339918132521157028755415995940080639451528208070489854228541501887541421787480212224143513957939489631583137912936782587484062043949643937845665409110412527540734633986799273667215528761155388676197560112694261917122956481267744264228598214497513768480458019360218742758872384343592895189575368293110116049330077498345089199285507729769742133332762258957269154603674598596546316576852901740752758691231484849519470829376811296854255537686470813170558676104295414684529566224316998034900114096957045161840985602869915588315578029394169215585768083618045021138028760122881223011888297041575989597313036742463323725964463353024191212938677765630199271526737845708775046639481481085232598492237680211958243352968931395018635807015182361186245027440277562814794921637636177714650397671620675203523622238371172266364605358050313632482766921402374766166137595128089494043172212024967423213497210607892317318789995406741949215663754344565260473702508851675727746049194871779988619525745175553148956434668693494976394721179997843799134872724753939174985506284187386594286881330057720526372983043195996213599086917089277614519786531234704706056597914130583246206615305553001510873541224900541578298871107097136130575411544112877245025452267938157160080213150740145605129355261295661809131240754475617190513971894629520829335279491873863710531072646302355229183820837234425036544641040968855599662535569888804186547229084986487314808885001810795602412268312716322785275903261590822702457445396135453471712170868746077621548331901002320232465511799089400471846058021495898282643665512089056461494375241647359053831691000194328295532329980609272232671670864556744831569111237362771375986632935761076575883451033573526864303310831711943184157651872750468846996771299088802948122888258545479602884262679123477000975674920818672313392440188825816871363964876265388424188971252115439067872025315752627024142097046349161832875263812419853868992154841099568282938472835781884779571474169845015977734634502790741582199035674417399694326850308330638599047361971557351353230402055284449439482540800517574235927680702330244029837083106538088872392419352405064924250468816790083700387849859171540737321737940672473465000230955463820687874910580563416199859199922196146221267387607555811455076830006325086255343350899619623923386545012726140169323627889320456344286292645707557693419122161385520426374702803783217509296899347053294002082678435242129089885774909988622635633586993425237961249926830881336639534659743227582482233319276251843639513700061403815324886788018291714135402900425305319731691858983168398167097929016553999922326377013813726283774965162295141029008108629040273082302795364034822933378242040125063612544800232323981251239224378685581449547674059425129457565121971913414943124117238537099045762730430821937598667290287016704016637274368394843870159782021862251079160153104108573228944121472116748705914510389573294006732024728945535811114519399804202061782532358380382464818683254352580397422884360783452806271570285006588265001656652464977374325706633203315098728086570303280154063159031494164590364802932362263001551190003302110385088010624392884872030120520982301898008455706876874935517717200625282061528047531928669523890694879760408799299639503306145442663440487569651225460669423128023723028228124625570873737624731822753539794007349997724846996452368967982559433987612459489960772545278460681847524160388335405048829910475679120346268629043974304462796608469158881175995957401142105569008397729463444692941877423224534733153646799315387693812914585380653398205870828886286803161226392192091632685724686065437353084793914691591278700168927146962425425629635431011155594690565643831238412542475742946046586854609286621846095147683493929198402747243211809378599267360249092914800241793170192457269973455296088225335214512245588097502917093669521083094265871075229068482068226203582562288119713004082533590808589171300700275707740059884705914434689864529839298642725555626415749160060157541603319245534792068264915098820419187396755125424473939020985565221753935592828991198856728086386693895200939381844235072829363357160294635043857444914238102153258082916352497990631110853652489919479476413497139016218867573306346340830897348239799744693623160788370784168630461377840933723490478316865915908183922693728307306404868104466098693066984555218633077639089003886660513395536491345472996519012782057552652689630405372430881430488258509168758358304040797500409478813168968941506605668674551180996709693393547015140035558070459749865258940286021911413818059205502818828711831633774737247389759185414184059632697016227735398246153957718182217243796798504251724791965554944156102720465611355693362103661231479771670113674790988612541463411547705955913821692077565401885822386574398297323562315700936293567758810347289675755784149366836170759051946579392394395731848968137805208654844861727156733990648245327268346151514036436434889678271850571679108327745838229791304981339831111759358995258038831097081950100673000692510581306617546465193858496192686753959804438410274639077048135438085458488854217454805376937509858455010620333263075210156417388859341503124400780868900724130707647507745910527291297849871864310179362539007089257700102462151155406532569888269584936518598941085990365901698219702917025221035569233363432991194619052972913063032276315079570741936071973511654928601519230176459153503171651636603272974390918649267312800954978065852003239395351030189679034688823190995350413361395912622002712938048575689946215466405610857897146475414901474621697964710003212644155225000745805586829563978488098516265951145289701970134967770978540889430208379001444947734270115221353851597464317912754071557424304470526443073935512052177590743970498938692440142880580827587648046279019238463312988809370617512068472164075552439084673194144809541294540625461688618052485431817803454639090158774751004327013786884197953684709175537235417079270907105906547857739635307285629206159106608896186785364249566174694166487527654757712526206280232597832165067720957917343240004519291162813062916428457626530012942141368363678625035943839336909643893406651143974409082233327849206473966545422994912102767709430734956613149761641784757887938529141657039739068136514935487437551090582118055582944723498416177120395427321055857726189678261715695283319811160446459812801540434604131728596395387868007529834252822025803889938457477109865717673273471431471840383326165359643917868999419686016734927671298402479971472147151699284534177820234827598057128725630849304429038874568587614200633947106605240747315683578433584322777639153986322868539833737907473714602169152170956817497741434404367803497393105036792474135139705967122997965784959649311691660137267139762104321177184201284974926721042933486481079594036128821149938919431513331201952275098491062231366799345301691492008253236476704931039711019700989614250406260922433939696898928428253546084019022973793910439440304108934902978939861909973017144055654726254917509441370673779256333430559046021382114443876012336468370085015592350394122748762547235292574961659776543433463556451245484484989199013201891667424426649431309759410132957107152743928743129417883638530466667001474869611076139553601898117640230624711849145923396063628150778628990730163440621368421557405839151585749575407465915625940462040224729154190242918383989781605762693962025702804578776522431207072903327737624743502532320997787712681723714347387043945811623475882415246430570784056615709577877930266951169270355539916926937026867753913616838303155009684032603781047004179317898151486871500781620614776890755010568180553149362980980923230633263592037329613982308722823181940359737257150064211415638168484688989020442777497887385867857187027039742711477693917551602108641330750835594040795839206551716605045654753222744983634999203277830458005807520363535412981344843539030749009503761523305796870264943952446167169460222050408687483019060743623417160056552364180195537923338691937607020567943781297748637236575180842564863216949009490862003458034895073318316677866976248010036696972888063583588468942468705282850771470944219760049709543405049439997540202953966025391226984885915400281106023741034418084433024401105713717924549352653112465653919771728041093688330819682586720028707326576806581866413243148381540575618090028805157021706926362272033519641936412663773705533920296805245838106234211364360455837518536459764795489184837198704951069178795319459154628499534543405300741422907410904586752694479282048680754424730093601778747397248427029657508206494005102191010961333991430407796065130142959890805569896057305467841829761115218180698201718555737553750971869291319599101503055329494201274245263096604725248398902574543112899605134182841809041366048023226330486615281831902237692007031813326407898731388072255556928865200356573360234639992348688921271286415335969562908538296708328856850421299056028534828541367218721293889251525581149743383938210464614626001902654925650858163854521480344246960957958795126305686262398355571615736325562027746884467980296594747522457960117337880859142961077064804190690265256063048359801796699810147089467945220851287641796629291576655520324892240616699952537041922697761812834998188897413306191699972824311298628957466853976719460754930078336932371643218398334112116959800173035921416089706778479334917418358187775059679540575787852853180455390633506092237951174862531566149001753812134687885626201968960486224250436801764489527815760300434373132919046352914874271415429528643669271011875976436007743404805040597918003846738264032371700981361111256563556285854375725098208315515934698323167150409561200218632463946256225257999149280790395962272402793331409653411879430005254710935677302377259068721626649772037523275768085452645695083485944262483648761467266159115245268015557863923899928370856399635749157563476998982660073445692408106754110302888990030343103724998242635027667015767159447603427658197768733379593248194695784772500744696836829264092883607909038194937183486734429338290878935797128708264684292045998091535714392866264933002704539431390170256853820760279951160023752377852564378517911011496159985681829505683988864589903563861849569534236757174047157501508447444847142509960067704404289220160875684074264457275860575605512613647005241131728246331434023477485998876753230227184612089548444137920137674605208064149008736135715704718816298420069119222306504725900105977309067327389088005468964912922017523159568549629117183368900511793470440340124218415888326564198788196853488341684826963069947078817169175131245004445815902071129914323622883845940876035621783061873927144412778158079994875341168468922971281931851920275547657641282750897687451125339845072411795764244771020560927656488741708279439568511477766094419963842087349497532191511832335556674516263640998279021134146472644362848763538656692793901408680025787072039161931680410027177204917484952805100166570043024409914998153723491021278568042105438578831408942432013470625617286881255886364905594314941495764797805745967090794920913297433081641604371211914812465058030384703278603197293628309594110538465146707867300346315481206889860845222489378992174568269471557604868199344880188842030975001120547539989201729713507251412669815308597645934024625571960917454557527278834236709627334713179827275843536946201264741433817671663250632472910008621719829887847768580468642058641837417886837370513254579610544857341451508418557133803094700599927927537277196610376923906431621317091409536491016627396761061774159257919144897064234272594301729650993412396345715205966576795816232491689970782876844471194581356834461780512136581471772652037953553737895729237809230203257565162035325007611370512979782772779319174720590660732921450687993553525966815524790978523579476184817528981874611371091846163298930197908287707026697634244309006910070481561040900493873606784381202049899676176984085860545537046892952010450369380221157415739238459679201688166305016318233492798797188939738529256667193170927798699292636509175311095918689267643370523122555007662123817598315569102492009159008267600454854008934093416092784786263583949458459215749981003363547207915461507743587255808660673487435346694272204105355342604595565386054890199841643604062811955872304822299894997339003753239052409693629060923440593093842305618256162773709153367336554379128284502846506271159042281319108657864195006558241642691205874477321932762193176403461500414137305357637729642167402547882702317222953090960070814455111420103986914084120224693681611061161713666943838955755390055581182585762754328452584734260953936992809716469256761127338724854393839802295564773421899823124559167268466243124695469199368932645331975339260630965948424157803778097165369841635606968384755098595346718298600026340698226706387041733634439669259967697807737694862855113726637415385524746780182065613891902363440008756985690285959475655077712309861924559884182133243576701482851821823209818991590966118635248861770086880513041258686794921218524315403184353146533498962637186528965730369189352962508301123616441450013802806431354840833555802552457629600944018699630989609569242574784335715874559856712985639629768198886313935687860482694068781441717426889875916865444157252866478240533419761863405375646308965501850113038007498173616782798925444480390881837881823993535949388017690693976851807722031234471158745716690966502860021079984536252920291648194436043403727226695922301666141923079828120695746918040856821565907252746588711220117694203821690706087095115242300457702397768733102571484711356710566632547927362643794719418304184204774711821318340295016868702490806636441610109096856155840884725538356806589668257492874402130079654072926581791193570125297074415968406651412741739082113459684968763525709223576867210313401578160813085638178367047104173485192781046878955369135980125350750393253138623892906201605872645161810118246849456936687899795753888209537492122375357847857352714539861267315579802289759472814551328009696159407243026945437314658379185770153714858540525574124199163030499490146486018886248920742988904499752189475720406266017804484405056904735471764031497850580671308676896014037309677179155360954795763488892419709881783351739455463679291917879070162706795816231368506844475522272423595171421081358870674789027729976492393730567492015188185377847926324396700731592817928101035996488057533437418224944586252508639911078870729032328975332503558686078428231703130210251392183280791823594837004064182038845264620326228393358564606990554885404113809476642126568731941438215013465963808715855130808889017021118628221491629905642955372361981576324435841498362300094746848828262759300016409332686065830649982494228229563909223689002070533954117656121277878494432550683543052501128366562550873697163266812050389255690719486207434773070648584763589316411237197154459503699086619517267580914348638612658620996394859645088815459473910655518002133798016634422644132886248767762273354026882674485396564699225747316375462301929925004723600022226324268383724593003371684192416253586900354228643715782414345683744385147631528155949339496048725528869986350865249860048739876398095163806472292951666002886552926702563742597267695663068324799746618296266292278582114384472556721497001782633072558267139745540252155057683402655838564624937306002458209271440386760403180843469173526351805620697243661387455747280506852639871088821243821663658922297636233006467658614542126808814217602614933656747506237144228701336968936075501470203176167376964148953413118046260320669721554139716097716310923342438218220139030997180792473678918924536631311830740126338152861259245107817257838162032081085369435347919593275859108502564784412694722821602367498594960939398356001384654920030154050451276344938306103027551151244436931883462808725396002580767348953908963603534054575283442362674357275607853658941585954525079735798612613764961231092056006852862014296535425359340229831470646571945697994039251795318181386659940040720403652440954235875113836069369447969568924093156202387078737532467420414693487599108076742420484759950516490001534515704596687205415944639062408106527697966316915802357931455220910501412773004197761561645117887414557026522317047645381889158468837334741850676733627818250579581155542970981768187854903457237311569708676390078378247726160532153772400326313455353767381292642181928996559494557432916240423937624884981154321495405915290637903156071346905629987570126287652556188922873798846803269434899402185295800548252077667577861660305634568297923033468201191930300183723879550105537840648219500063026328931407928567008461493275139279887867447513829190289453719526373842395676545336278841247876046640117964749692795261539167661256635551604781484080245268478091126131107696839309799872525099488925933194345570820250824189910897009656232990072961271182937769597787503818436693377652186865343351960005278043163182887235104727180861651936440650124610178717954982213892106799325727561119194780785854313315741732979931489692629412074260431363760003037594107967981813579610969120768498436514597722239806679949063760989142715180925328479460046830019199881947397775385412021953672692292313091521041805673827206568486224081343152230753469319113879917155431299965002096298126185879471681342807378032606349405849597910190326306233793684749434624822931729691987905803622155289690488093455290863644474686573908685169859063291734139537368554456842205469911353830333562614730242373412706036197464854173749497816758922882921226904507927521244766769179347541086398806887644624157908420208070137092437069984549038480823127729820261280977087962243988401736498757641447488498679788352922175218082436131910599495801693718411847047516389347823229833992133845479319842883605634328296194528987533616523297691421297864211208285039193722499932201889577239969755980674230723399813921106384212421284729512637147594529089643862740215782316333188934674005353771820788501639015752380842707422367744460638772243972419264396887824026886152843623865611922921663234703800615081591982997480341353881904282045126771468205251537869005140472166305139508052673423761785727878203451973793082228713609499097779330448995377714993806778869938594070365303160362459924132801517275344033075992142300308778471806121194649664611985345457095345770830399461231900077441056002649776915491183222460915288603563977878513930543560056579098072668408657996630938009373632431019167318510376283688602969136947108275745083895927335656853274419044774261552247524877234762189435091688045703257745348642116169903003920120514237786158941855855732133250214078991629697722986392165517712486323287990134064998947233993162698104897998154414930145711828065768588350065212342990874318643574793271583840281799370692310456536659668014852349380407245406593852297026611366154530418089387736902101332361234787360399165525630326020581314605162385246222749802206734148459668027836711218203443596861449762643945021894596966237313308629491094914017000420717586312732176345284960643812120642866987934500710137089780754593354392632229148195027790409879846692660901855702276311852762255507374804597612261782317367506476890776852802138575925403488577484328192752308280055117886610873647959545277641382083054050154613661161007971719936861840099624433422868254794076412182812139927817755723523127880656243442203814124436969541297309936555862383957682007280423057010058830666837500564665776408067965764937101612773188766755730023139804580593897198753820019807517846135749479398089684169186779431285777932988521975660481099088304318941965247918012719656320555085047327189701174148934094999589219709164556578144494828341380389339165216022283917565918636016426604835396101293691929893308347585939156841555146092723283524687286964054844488730576819093310028397034662346454928983391663602732770200106596787526298399389110380382915546085528364125833684569560533506708260211600121725624768792837091740572552357702715913686676744839731252442092337558098329601178296594074137314714017314613656164887280464153789936912195967301077762056075525844197769892519314943433445907990041096154277640140967708270973888652864213320666340233413036759023388826853174590596173049853700428912943205808251042832775157882878084790726893483710427068284323667038073018093854079099285694634664147529161593808314893991308169482284639106406173471574435318414062756089539539511248593326252947022529377872468681741300279445684615081587616796344280977811285675245722355558182602832744282449918373764541197399999703697808577815937443118601058539658012300280927188077863506449039390092186233777087945124047595428435106415228450181740071695288514241078301259302335194994253691464904850107265964737154891445078253969429791005590626199458039459666350706823924437918728130359602149108758463506686911723666281015632604147165914570392911802371684903236329720909555068480577134995201421032787295747021978059533450919181423937689018428074696638801496910588756992549131722005461885972148375501457840839731948877985957978252146674576387703772063617033569786935581329259135371766972474411273727453759785149871039823012368316269205566103434668206172789076008463429089010734516183624547487970567718277051968083911998837417276624556561633787925574035936604844254682122828000164992926234706190143864650917963324362783985865205032859702603335963920020636374231149363093163646068671257583853927033618292180205275156324512065070442380194042833563718689323318415607494087644500337342833374319928067142960382462044056724776142945291413003788447568522799736447016408369639429928225334576632142375706018023887591402181068190227822995884455962952414793440023636711219547040919215966316342935403995916141108680021240907880682536572351521561764025059658509525957318541875312321736132058479016720753800951082260282048067655910033078291475100513128283155340995846639603041677861461987758253780695545417792058128387955832144658482629073646916066512500041197199605004577392861722733877926086064490717033595589690427529858893175848215191714474560495234886814766861639447416967344988882734076527035908107752369578163056731254364342143091667714606632010812389769138806852209843699002765240503519443112499744881837190052932037103811079044574838062849182172162382474511592771672431116726667387683398625081065358105062221932751402831311433906792739996712514849218308767807575017031728511623106331775227863120318424599552713043362712806234193961472764715100015803859998679171368689741785924390471588331236234433103743236012979431573396450395398604907417901785095147844187341363661601360556428875806139554450857962035277591904636483174139701692163849208857947870122099454304681136057471745301451714293662061844159468381881861399660908198699467499484494463017370059897632151426035754264603167250993730222270836627425444630873637031997811474839147877546766762960335130131503494265630950840849621350848239757479058847492784606480724704491466803156309268175689496200915344448920695270964646570398016605972697464597072068887630494689568563449994463664247163416125757727457111870891190651309788674114353843952075361236167805762981948730564862497786514153873669196396098250668500991581439080927607537580054659601064925398310806947375592482706713259770793718416348267482056882444941184798445782419764106823946689927630536620909459543449262276211009734623253943317317736159578852898569232776958226191351511555255981013039754140467355781700692233215644807790470329702378952070093350405385343900950775325855350570023222412801468235525323897008242886970204167512609770976919261029948940780664596334851634375940625003879660244913918890280163452102691825059717638860172541313922409322054616884736555457804173178370223235508256784061641004408877535725434038373309612739126697383245148567747955793094094741538988075452663893025853410494282730924749668431614065565918914882355590013561479672335326931854432211216508007727858376371716941870552193111359015588888251432548293719181299247008468584609418743938999623149088871339932445965515293402308293627928257923754489503354225049991722040781677836572892103181720814845185293863002635552119280638237662090412829978224055725661117884043096657855200933630844901003316338249467575576586193253566116695109352680942824469372815092085169844849367934158385026239956732754215948502770291205096448833078537840778159214328106962389251469401020146568132925421980204932488716208381095577751399656338703482152151059841566105270083219974870685475824107966335623165196051991699791190899487354791990638261627541929594990045439417819453708378686039760547728767572457121032785286991392439263664914224762760273979069203996750530565582542227728863836445096302600366867724139699304049206667189395073384694159559054302125807403463574373681310121534439182037686347765041192722841905096193155938157360195874018092204019489607604402400731925115473399040719726666825501503736273998360617873229749836230052562726644200182134194510764592282746978702589584394885930183354427858881011507221884280172972776302893973055421814990262152826588604558921783629572883643556660471482226047114318436761085291383476967779289318232686788905744328218008180944770470756943945016957950566601075111857122874863932484429338758735226780188228684182461058487715234339886583481215433203631840260962457314777538988670861119681529385093629615892723335126994033724384539506097266726026629438664779996222915688964386500176251831771630045217151478533573507776190683241948002482067971652237611872035264688754945643374731871658090089868024014940162615934400632437559754656508754116746216047476329639554876473065584753225828280710321197364369515088192279320458546261822060557626936713551394719848915645146367055628635260310825273991200018683755923307032566519328304333410314402955234403387656432144960424431974958505265526849273093563037065794960092671131387183925569413854033174219720967114823797586521784643625772718623366544004489629733385476958333233371451514258465383888525972941740709001951977826660693254350579427690488344905706057947165641728982796279754868054045240673686359478934417154917328796610508184040878145100092174957820322603440429195332381516772985984655554949439998890221894444244504806722169770934935391857171617270230336472226292737264253072783791792706562483161088941625515915777303104059899880942398056969343437625037049746998100654942781847869220995273621280686401065384479763756561785881471267487909211891800440925128579436408654888097368179686546190005487519696254462239169351409391908932105071337646954701837007844324339613320516690878680922441226615822116959814865180959251282022444992355775719057299287707587364921357136878120190260076662089821442368840090575753955180905309925174307036033885825810689369236573609934307531140445949067991337924018692724281122326883229055971651449719543297426929170544502642568803586152716154595706605846811785864151392402187756011045970240382464817648267607407457857197266011512368890816534994008920452760243665268543053625028187793912495319010679275352754099989929616813480322753325237776266613739637249088875692491181938895364408433122097697726770647717537184926516327390606703061570651485180883784312670019543040001530595302108784287530477291482801219017115809865558825175938380116807378910383550628189185355107914219440572438556773483446857967532696674275950644812276413670196224363750707322010407528998069611458992923625707918508875377646190296253900076641850877222764259185369607916423938262375580575063980932779054168847659758279116440750657870521590209793239088452683287794370493635384057037650331582626164716748648865820408072241775610239191369698212127717937533740254308355188479835921314070397631431428593140942430052411180154659969618638921713882113853736697904739571983857504569505577190553380723587113550211919421283837801942164917384528186930690830193946723178434975063719413817059781198558425810704779004615062143377049658965503144974190442522185920950616306880819172456487498858837260863888554194647235780187258867753659754759468908424686927355740064903344068506608528645617433815242735883498950421249342808527231068344236194236997084758753248978353209484380973083937427118012883613880274729155096514482960683502360923517534208033871191285564184641617336484162673998992748677564631937749353618464934852358633190025312149805545796551038276164429151108125003161295096838191911150821773556009205682728143479911841623015108167059863109152892714287645863722447418762835048939367270177015378617991227355205622931295824047653554066789466886312363053060862281744930184589710531865172017967637162130971664588835578680766537275781675152143269687470058498305067250435053994626935288744107569315237272219277850930773174485966992075027712124373758141665566604508944291107350764551745272924160260724631558413438194991547321722981234634001974002282730699389196078315665382740149396969503733009345949731681439483080985656529394143780647607973266418080945999067199134336614269089301406348355483196965678166528176764006889365460712573343029976730227313647441674588000528644969106579601601017487114937945532632332244706753790334258398202215884564257831326375336862973804500452420574761363007914028972962494486906336596498247154534046238748142748125545244539409545150362381859114481121665000095132882046392897208279306218416853069576239196083793215580624918887451236742440526145084549214214866821890030845148731711497530491427067648628711056113263949512829472754817086285327661992234570170049243619926232562079771349103916145361648670949085780661909675134135274713251667412490262506638862089979920748680323840587289755879215226538315943669937424346701192411636824238974332375509285495958559416752790855929826945873702650338520897806740600255090712771714008809295255565602624509378148761453764777417213131324810809009580746497411526516029745933539752542357795522809388380471264894425698558735857932767236686060720335113082900400954629664987631383784628107827403059232558598127886181421209460465158878433798032777969692802656141595465698075244813224641568875741297944168963899940391917568967695470702443597457208246349056938176609143368264171980505895795738269688603196294429080513301720381805417881735470322043994398430480222930386124818416481548353607130542797917178329165225698755980572161524614546186599923674387271892918884213468450579778060860788946470000629560786146112850720680346013638773390195948884601894963448276067926732965879136092286662936658057664302673475865442900981216327429368549263297350341369876075883758054710696008024022189947276323244220184584967438875175832976620702810722929369156817931762098788632670466701415807071800549929288700298566354220432537868680226318905089766185871105377892924314849256145871389057273441810685358782112990105338011599674153817557490186121774214058528252027420113344112888740618817093846879928407353878050358775336493736508275651513666298803845119919031709357907543621492106815273313097047117010142574995925290027034865254399187045833725117446724284779442249649934233886854104246579105119427608765406514626365611600543159085797090404026016819833228449770305436509197843930152571898042483185957898120532549766483783674566509223699574990791838532773250967523146489206715105871586470338786266656037953511650423340341340468302911344431529983341370893192265304064812822444295693095642601253229964475372238946979452736816315304635678864215810932039195018775209174034177557237983599518361264947813571778846904771046147439311910882766508176013377261154930895411865537918094914185287874791989121441472722521106883200233592315441603146270239528051052717307277152018511686464991708537319061696798402546828169485403600278478774911555573789401507468677237327378465455274882570104278424046684489456310708536011281068412888816989324649349047450118502241595457423129534502759334950809374631731779488814890259770997494147676268570682052337813398414070831959765955447321661324280790993713726836232853353194617161289762630959045755281656168002185175126134878978055118123536558762327316210079652928170943793191908469696765227012251791601685036539616419788568234231610665693821177499424194132575289935026669481627072631184668204793220863989894356426173281778145679637885538484738089614013346951672268562766188635900810135746881072944104413756998548574384206586981803797026755959501925325252198362410285588127590279309086027201257931507749048143766166784776327431299304924952112043115844269126644333765182507012864657955852773772233044161019953749270281706005341828047175887712703032985192572118153218737128917227928166181776353911326795713254922280648146360163706087745861977237738052440998670236844488910219251669522129710804607673370918635375511168967543849854189222117040590762978445770188631940532689834245315288581161035536224743046147027177832991933509530489280612849981120797503252070455538711836191484234981743656082464591857934859584130974500715628064637780940599866432036298275352913778289276051224766777833129944565257677058160389376813271808939108391148476944693168329512890346000754586048478078324320662418309929156432510027582435207886467381640119787540808476681245175935922539725025094780354273912126782000048795219302375261855168525671643793493799680542300444039338019177690849338099075307805742051490366805697183143117186649363371542892148681664588857731598773337193178421882230240894553383982337002111772435017246902366241603822151807612895473211482429319618076128550167293632767491963701013248418681047850590211050361219468868243159849292581928303339814941771756151357376070567887079864443660769157763023197605179034105627699913411744527947556317220020889041092710044556699813011457336192483115318048150400076844535361763873481933948319011265225378907421383644389355349769844571709225864455919438884627132797637764539498540099526856807553789955695399378373738910096615379601492070256118611151031134232547695940405162196837728397639057943180067253818997576637126845470901954106574414790235591607109852670205667362931325570999129364880246079758470340401972333565376256213669682999806380704833955032015067823362204073109003430972869625162355712051072061328465886672660354458670111171173612807126675274777566477264528359354111863598166531469008233365187168959091972206337012257677812216800544308447510751115082890487676705044379683337044256203912231394975160254611875214765477275387110189319270458900983815927420484925359463201337066312698625907900090063277943877022701360320339340903922979275565511986904138076623867699230425197355149484917347002560518862465354250138027860521969041902634388747689886342211719621738403589506259703745421346861485651839874950236514432513977008909175648481749294757592225541221649460233370560995894425204817201167811387900721599812402329489222216982508411896392342443641932794429321991121915603968600697095953196864819314528690948607608153416729394445625941435771691975298922278878449526966258316138881005972427570857858437849516892394713989115431626248876821889959687792727544411927103208136433558132907924666402824455281381619470065364592838991666785382563959652786299701399960783465938119862465637948501230438031781841050996381149245230380463613924299594140565313331887108832548048890598704906513777978148450116618592650342068658867933293295206855604293736477125072780849675489315200880465783975174956372195723004763258299043591141610657020883122824348121990850279119763066191465369941697442164775474032641457854210446918385844765908966514048064548216879028172231935221042250184380655293705324981702910288925967598787764043173302951774428968944308168152478814010725167496987906957168391276351495288219335016432719135683937080999701243399414852632997535154086829871966171724255697096128915784596645481500758368711404204804118567812009431709996632799508939244127011015777219645985058699612422554111007562990913187221713766003186412634623397000015154469235644633023481993174742112491247988523369705531558823474521557768301065770980444095907087619685339335130595343435861461441756864331287868537025448585156216716784568966268803109499398946199347894089522874692501859922885392317587738049915626211088482566233920069718241333491296416571337207111664987177643922338015959806910824512768781642755072133257133015789114923151000035835929273008109811108535372125051355861086206544859366241558608347905368632161140179716572829498382345513160842918303669885803867667952690067019499030859165740456004220159830370813302836289017157940755607066429462552113411041719560296266365385796067818675555992781399214865507290237872093566717974403325856493356505411291339926945114151967526774719743245673833752485506663825387679894983096464473274194313974629596519825518518963047613809341127822658938438902950496703388316358772144361131659943102621304907988390751441716616679985303032394036263935644559247012439941700536819647934654074560129519433647132708438761142993061728387512600208120244482469621198655412751203231477618496934044831227253129980792083859574522096668676819648152638718621753383589674521750152647832211984055646545527571068918275330308079750375288943368562341154803877263644871413877497437630515435886274563248406474660319615551175253367767706532044712870111015724142278951811049604392845954540428923230962935981791279953600058279524686263385032033551962786593131102455058816629257504368124208740826107648697940387225183287669619877060253915533967448204337623557467479733766098699866769864796956176303436420674262039604560292840870537960684749117632721030368138660851876880693434675909478458650851078840626580838568507988290694751711362634058437160934222013437055923427526112170706577856813883424495029971832781712886348165931306605343636861839465634378522845237828778241711211146746425930012538615005947644550863520148268720158026148882144799339045675884018724606818198767488284199348627452136369098613529200588295061256069284747165566547024583792890628460003759738657522666036902802054702220096334613375569075763489834542568981562489675688339669424164037974980809205528277190410886983176659090730137480792808573244777143722526426453337137443278307487236321355469517736263730354097523890403081350388570452156216696815867054671254806782795338487514259203165495826003893191660416298330673960584754226110524021174001163426387783197804604529891720746230204437848633086586721406083859958718525719500566290750043222321375360630872354250871389542828550914222404590633134870282914274880697503511705518914876416050089166590888504255158835690373114283566488616657157115714939508179500581265589918410615465310475141991379818764520825888512094808642065941609047484965856400363137102064603060397736155880909636038160236952984957230551356232521581922249606018325436579645792767796295243899218169461375329359953709447271578060715765090028527295475154130066974221535935765128708941778080251568870619228897948479045248320744751740628055781583443728664173967847869520626782141785743032693137755000123286488793421937371867881682018487648798016704074763626787221545918779250060668674932547269789967146229177397647220979133823306946508033183740891410994710592693646046481273662442755700640446135989877840682704188322555918862369352450986704721368815960447918608251202983862115666157424908548883037566811023773938920924483924495103624564122436330673375398238761594073754732599648321630050822172200511811170191483675530528329623070215511452645415148971766155533514501147493825544489862570941846502954749520068986951669528518522551539902403811783756095430905254590919973818279032349901370469014468331206567176527159401201883140834715564796910673403960442893903233047234353051265363448861213370040495380176614087841626671443952814721712427354464494251003392518433795480320791082216750943449429202173527676868878312861494928205231371083069011241801858320887800484426414357943606654270146118409837839017047955228918044378465879753551454774577233415542533733317201132382771627850308612487313501257086370435242222967266238731056251809567691670658662681595993593070768201363083936845763328687736353479289726199081876431532912369986236622064121381258646974936439663401735671902016257068704896616578951402255559051513087650257167748023605737027503161161249862962868188974478069065114428153673500756658698364907502181282946222733187854115648438155058841665652098992851647066563214099586620658769026969956183324052732635477433831007588492343740431457236851819362681636736047487133856727286549799761567716969087852315267980506244248827907827489778587041742591603203429666620347826775046115560450027493724476926306520097538094116054804447468015688302759522551974685859866778423612506587611148482259638537094635911929716852314707069381110457416112214714205658712875021851883386222243449690229494098518330734593204828652812827368324151382728600281160803857339465844502977524443048345937569625512761608208040835972325541088766354029486699767512945995602693943406322082709018644133124535193952597116243174703289366805467142700789384348285986399063697664153127938589019373281207798535347269390367576396170705265087945583601262175991981099391788043413850495190368527393431890437897560476994536889867594828077787075667904768908057749750039201243775700647496717785410051732087435987313825209828352276058477241914870999304820612252920655198931438570978577940183983818309418607935255678644554951285471778430400686020687032418222255896889033779081860167472098128318950420371920879453947680817785367963058528467059535771401332830742284752314569210095320087347039431904522392794250114028721746685917176937075094497471213258397578486618993744528238342453973810725000090580915441299195256529755424491177259605757188495243529670128247135757203907671816199774707556869017489607790415036896053100468177897593474057522198022262482113865533815518656115126195971542104843246250393198565511889373934277636362723066762045139235104699770358726457250530627099851940066321870822908081035346321379232996391424210449947959925942813672447082796624556611587377957598939045423240328166397139248633038603753985063733924913896383400338907896752753018128512527723497871535765325992400889049161188761781435883600944573765045950994809668883858500759376107305092625155443245880984223796694478840336735737220313222027938589863324756966983588970497435353304723063918930229377269077669834495865143380575988744184611805724060680450507347488408509909562638678362105725167900111281170618840027898991575858511597459112406761060126673496996522559748867471780311537477187727636878638091484902725077174749159928596582888428496115724727938823816052493419444825568892857059979621297964736237730796133911171402670592932467068220785460645401898753139739541649805221771471548977977732739815682798608889896894945086994322702725606850457941086692006809564527643865280049580001524001845130209305363775119377347884385695832544909295867720221796914202722331689522158890728985902002794816025285257162706005878096400980702170833863012987172100739009067857627992097996625011441292889530486233285264523031712776891438525041189648462656248994360265121209989157421023789882286646064381028453300289754124401430106587668960863563420475246183015377974827570411495518880695793581883834645870362182662086610531406263418705114316582509491092565333118966596906025234928606040901235219439621213901816630912184934502954842966887268057875602100882497526147596398868620744805923570768150887778027175263088676883580482051359923788876927273872310205372029789704591746730563559592044135097510971552059880165293950533848019975872453773751260762270651147291519501770228697722416498849824577949701937036213629267514920819211643815301813262896910283264944249647015573586099419055836046995982807309260734620421332035658474299350578548563696682468158164365301192603471580190884751864032489219293673438225784372153196490234692578855042769487753818656024191345611281962439721783795949245748794041582974675893889173553062110917917505125512897872789512708270639296391658043970305021330747892035738440865309278457544355999147916148946299778581434880958781927509069214909930053588341328326408664873356464945588300035800566001696038030699292059483325532041686409542290087304506628577912484243754241051612894522935169676417978322178780812058216856705140283460725115642538313323652459633610662878991833668847428520508795804690522181755477597508844262798077869843126027743912394382610069434374153622301733102230496424248447851074545001693641995789751302022292326331202983170910224011294268607062152919231744518558353873858578749810868178733992582015307671195058244076220298195368743669777054062890117073567694538052044881117690753401017264420905620746092457313177009176098347162513674254471628875250405828158445978610164874122134812655467677795299997176358592385158386196466754945376440617919035835450963632907260933477358919501943759081824783344308812579465450760596992336456990106952110035239661525263295701330774576151824731917705506202288027045679411242038123847264365797423335410565908305022323620725870755328021984677200523353335878264768457633214587425401854595452544198621575028698915214437974273589534084704161344463072753986782581568016612705172234848268838607044675909626466209735100344117943861239565750918010283526975012685431511533907590073899473034690759128583829862236405845653666752893621691273603437874779771361208001852700644241024313073885678639741272877778599640695861916135748494004636824884081674847942693137359203281273620073054408387693219705030236558417717039248912845072496091060688254386626991723589879700428486379336623918697533404639076729856986181183069316550092639500350262558628156993909260519623929748377646530518916002500215166518707020378170617629981042471547986826092555651556264599695566959734340342603460884862458579939521320510372786402475985736786489124709373827646459167718699558675350492086575837157860894366073810672492624515540853889058972239486251381348653114818110176937980776346284416257450914844063650797412865850633423763447030633185675423658232093815305378680402510587462473875212907353066719564144052387208822698511227848274757235384905307786700864702300882262162498276706313239003988097379592418770691689661731019293883599717988355270307844508273294118302399926513768866411185238043252185365618452699831802856289527167384258378516729936388186307324987868394467947315417858596657495498845720360129930578548040164182536477187524899633332936975751600420956972586611254516625589941849299421496628471252606971289196533620094032033591544422662226646703143754047254543354755769666864902604161140247299614922938152643691090630739489581901066147896798714278100587520076916323700442703817630357024086266042515157257740042713801115080796704898218442922492314182786588074345313827992887578031046682893494813943653383106118496834906562343038512302525771076416499752157170277838548228190445886770478643539091317536073688375317496602653357323097192269198294056178088780556397167844777622930567036401256450979674835554498198550994235429870874718161214433977543505644499054323394019426434740428260818608080390483523417157724311506997571200290350484920983125581354181623798099718184621621881359671218783494995987772769070438064033061582213655906585414437544743118706051792277097141623982947729403833585393314307256202312513209467545268559540774367179538497062426741428774336994904141710748049269695160731958605458113710358264809570837301709923740908381770734852394607232582132235882249858885446228050400028139035365206013763432703221543404041263571834800234210803121148069197464955859398320465633340340512347997416601120598167244653954349821025051437864805789177974979850630925311840051941321639302718840467323680139869247609448709191091941349629749827140878046715751127640890775515554375169807341616199851727411630049938411116344515544116504759032865286782252436720287412340669787444820781216332889384099921365602194578241624671640028333996102588736110733486920059677811529721174981626667511984679122403992052168799347228301807821476437192692845483171782824974892852028357680413131279054421600271572387880913490545342332122780988327468638486864052638611833470808568444138799300003651996657940374176375402281705201114461812895844677979885520196987096271030998496637142102756545569446495862961978337775066632559968324104339589722033031196208676334304843242823509247975527606176219123235895409905273724079811162609132969033929324869553692105913182885921798884798033242360842566438554422303796507624932557716646032403353962403782272998519887561353034137608377558707151637964154998919116352300225043795525716398647344598552277348384386811438540396085556347978244460682923948902607643945680310513011477367666079843544320432952346383527942724510781792711214295594721457424782512688736508405084383086425897658603499942180833466634204393890982575936921952960479579910963083851835573231170204197456063010179299415645420899409050336191672700991706162853571331917790910527170567116852537730238676209052055972521593510321021415232659799460311958243396036136441758603142632756559859354923003963926985051232544932356176941712311073044478034348655684789231583852268812009287982887011202382640595842971500890862176384350466496495784480945414152074009785254674006151242420394771497692257576881290781348308658684388330346590568553250889224519442014419889336582190596279179862124234544314736673023648392453201923372958656017724422520971235373586492258201134777455431632723573996203006161611037988766902136419232016759379209141666101681409126057344934128555612209040002894204741812338832851132849793166942745652790092960603882772285678857193031973025098743865834292675178299392095001327693982602543049666708990456823694785081945740442217695213910537844513098268309435259326520317576275753643111825542904763682218152271689910637624889996589907831346455836861929832626367603502476774992117694807763470458091678991945022940364545817528050079807142782338549490529030138824016608091602919830317842450169657479739964070023540582323547981273861887228322970852014867011843010101053999679935299649548520245187191851544442157609917908360815395442263117675172013883777582521202729082146482069869177371520092451899965740342614994179125243645777926846329696054106326237479748819935335877459281733615412586687596887057563250780888349984684918562022174850890373025680703387332456134739328463287100239199404557152012800238892950343129816053870855768869698479145708622579170947757611662029003871736815658532271547307030319163340913522457045208283234787984671026719499660916575401540387852864985063832822007404270247894182066527148786709692097437225450774427176052011212061858473809502932871238086846230434352589279755105018452668015539150427711697569619155136331738167128055272712130991048737309665325614717004341627599137773381381810734709568176818134956427299965504509840761104449892875426809968791572025328126196882432404542297686298067540420888711508800555471514802155493555885936992595645557352769336688702537049062569465274444804572495399447243829334979060438337737522324404016753620748514876866630326264140059478268739842130905998957574259311783070821939042243478717395396322875446135675275637713609938412684158467796045311140189266931817657486440696096059839178583844093589649823684983350842301652371672757920622818104141309922157781288609003660389844766545900733407171290301250374361113438506339403079073272420895634052942885210060478973379619203348938240898871823591776871385523805574767315610362000906252519003961521361215591118281825162718646943799284630299369717482216323385517098551331186830369335920249262717015120836738572968546355758967281105627263878463851329229162277960699313761380187204186470843560515386232725613936151295934654851729581883768700156498267911135228935600386138431014525817265273172393936069528759036810941233658005746122769181205950274321130472552948274501253296565293897197637123617442545135713481898715923655715376750398627774840153855580356681888857146947079600299794390188217857530555317987748195108951740698692982815729012478212194394123539950918693424585319126057993447375597205908430821381550303935100905294877712443479297216436760228838262905711538147439867379514682770182281772999303911793912248357428047699632682363110512232860306445952417888153143397635696851329032813633489504328768228582441698676070108992443151224306076858660616601856285791344629021218471818656138228601168097106360504836143701745117957795751843389951798139168814775337751346185860199715478999358426613114038927672796367249612334261578719534538216385962270853537441731071825065653419353640926433952319332259577809538449510202085253848319615770313663757022747870029239599855421942037969955503798406185784811002723776147663015514347620362967695513544372324092816637688465028810367618979513456211964304431421931094713022212141872402235722721065698058843262416091687919888881756374857018440315997075737289182361789461305750383175979735913953610992253962978112283624605480940283107780015220592814765249282352974591561714983656102525188098967142859820090129566953116053381028247999827552217789658038230130215233132773990700431405286970979054979074750269069777298321431170524745341647306039690957548737110722563626320092309612936319629377284293438681785106450507789640691478959608773140065890696947103716273688055064419392853812524203611605300614454671789299843637161528456935213767666316688175544058492531778471554432826986690382179695533775299821454323414872909572095521673882322133059004507076236783097926014483797868188805074733197937639955902731930106647552529252446426480212067779123000067021618580530832096032078478654277811577302445642823343897668816682511211513293955328742220127531471877382435785753068329208678112985845585156231710362147107868229117558179857113477530171179594695190123318615502741882718553201724687465537905360518859776970177492415593879411974088561277389348215410066426705059658207724396149086530711548528637862420586474900857644830219852189188818310735845654833818996355382102842854853409828330942851491930404909763513615898810314308099374220167014229061947383782830883486227237043703275220245346278067575885636181904532790821510670231170029766195925044389778765437078461649218711773920217999431775233030243674774076678818293063332048678386090407754280101106436296932375255604834797739683814309242578133316946231452755381732669888830335212074856759626978437372361820268297590720534829659550095040599833095035192350727470774444825804854477175376915557891632168662631628121502431465538586961928027005914726066442199462608278047913778589540702231472863468290979729842221999963088579137343448036643882617293735321479798688938692486685747271088515924178053681416111240367986778967023232558263877882786984563907181056407609196077844020089420805174500093496125456242088320525578030485549697088267277799481055563817224486663781575409709744189021811766570881021822537701738508702339721368623974086199347613405210929276609861355735977567569447312555225481144102029891283071593297709045980701081482769748793007653852719997897697625357731484410878644514093876944948603490149984904759127153286652215816640508547227530816643106726419758770088396667255385143132774044056930058274627948952417334811402855374060240183752394606819573313284942133232351620356718788297353753486233326167213197559987887020342774992350128085100909059761028021888553352470520830013053724435569955950205383790760545352299023135133091645039119243623121418342527557552550859916390160636105073097092348964634404859654194596708508304922437152977205403605438239519429311622242957417913975204497218259732977039222256702221250960134138698675715634977097323129803214748140559221100646234282115161875600865090425081106450089083210171757611309657310460152349344125569940319412652932736970967773941302119803459158646645594034481773781334357172381601156254780652567438231522767598061220567358725527104795760929097515985786077638108739579584159219434059233421707125798419341374623569799140795979035638618787988247249572473527265432943079470537431009971202592908732453344253175503575793510365991104888608153295878626393049477205020785043545317831630505920678535416768770169706524704630840687852785394078937077284631789644810310095757738541684294214497886351034437241133615044983887751968345100722080241047025040860073736810815423585547378652256711113356802896938683067311629959563263461044526889218976335176864651468247772658868334369068773952332235901094635731499204530357636638963110795223450462998377236697827551459130643802861689912104122475785389234333611861600346102706455623065207077389184544160345362602932720410870833663234632400707484996944136339651967393092968412130982762723599475147554150593986509484905283263728085388491184134074392733345974773888884768609949695806923870678542781873155203746319112230582459296095469470001406257737568558154470972510983845204778125058065380307339441017022178092336658306331178290123712557065407922020140709207929818667326147808891292311850253031726917845686736703044106804350381971144482704393195351887949469619893193234265440688240500789612569468490890778690195242356779751111670692414322428353780660256794516441473491175498486760654334699130763498911594697826006952816822166888505039067895852883357578640022438140787060481153567978980834218766571956689205370903061603149166284863207724369298220618406416146038373975616024804238640110225455650941343884992010066837775600675790022642386554322616958209706781968265217964547148901995439274548885286571307135909152235860275774053352364033348490499465449210159018891373780302541029312029766113641406436463965683221470132070765151954971285230238491734814801959459762489051304852076441933670578976349348632640109033586685491916937074496658790233269132612968776659893648952368245116656139343224786274450562804740239651237032321555252548448691931543879618778811498291272190509593059955824595449853494736442191366587898695787127412016376757801451841467480464410996502597177378409879462033339944730685762451723760468638602274834130608330529091523476347237097938666470259044267765103814009143370281327755302491155202351096966152523397084131015239620714201415215039443879021403529181567724904432269504710482509176510776521090559475567853798779761204045851859387616232418922864183169217115372272866632210794051329913549284695142984023957933917245736854499729149768244394249316900110655754877990090088030352793303842915690892481944029248938107945724170134200794081521886852125707791793238741544737394558102116533005507631104895081419596590799496169390296269503462600441326654912791064118629817314776120353549984091104712670369468776878861943385445697196310181220211973255517723245339344690121080797621455047136998701292596057731402208555373597771323955879381508260386460937897872579513631345259931606582497349954060756171564488464713526102450162314832367939514213161113411941277072933126737000780496599842243803824714169563694659386362607904900743841908534305970190549059943348910804273667466803328246444783978400641194905980416283771528553904142013935037327631204174435397704618566165765546725006534932411523166451485770546679246304263523032919124005039693816011049577042193452451590614722197470963483875600340810516860079578384253528772855130509483278657714804919974790430596079187286004643719243350438135909253863541337898000555882063110049552789278255693348275162092462320487662465334863831431158264462148276151124144864896956155855394348534737344823313577271750738202859056694934919436621640902816407209564372585071086570611782315738539580122135589676493947410257753545204833178967695209922340158005425351025477797001188544999117182539650056505183203502622512886980150340550392808245516796177326043568590204756647036660055995191020961135145945799291914375098430719208711113146648952831247913485597032039965351289041973377480979205227958880042010438099047254756431330309997957513192454462967733049483413328710172201249096332285639783447793935116427046860911350319888052860634349687065169199994686816632886047137364303666108126458870047697374065201926475247540821372911103287225794982311962644840158668803664978474385863677476159079288475107268304966009831609677886730693186960440065521674919282496581465808868579578838069591050287912562148732940780108976103020446088672184988275238908281276980943588036086468512697692336530755045306233480503570947525606937962971124316335131164043119544299484883246696153945530019246157049164135063946594176052674813478660078969568877020629094600487492414331984222648211961098407174834865564219436425272640737678899611093995448695098217066036202183540228763940960047374945713992554884144909804012537972616180090823891778583863890935978647815304758014781477594156166657045136001589463291077511941391873085313722333786852394308002503869511278363164240094647603197565087997463250743951301556766813495403196102172188607629752477242339424079219813361699726676999810996122976104961222793176146454160488980168295808513737928020603550034397511941521260133540403637751637337258331093274508229158213726513725125584746190338919492715372854894981027635135148237476152890124196880200301967084525930708076647454748955400570566787176759581531525555869875031979328858867808637386794846045945832528049760592147688021002874115152391001727888076304348225621352214053521050377272764892634327162269002037302669866721921533092749710916958313813598106963714894219139243078999518171152352521541156684637745824085771244589548469398984511342586253925391739980139251132895763124829548806060776759134315490935627069631680743375379807898024231164561137671092945335147827404386048079707125976493479801770364615411818275950652957038204654007755707836603323353822271263264674817897115689800965073356071493068231716586831127381971618759096886340434654371678879330637889668938326830778049264235015879714274682451121797982843718787416057737388826563016329031281249019062485897000654372209294996430440645037437076528270918074642288064253350760079181257405974740690100530313648062752333811857455877749570208858015299107017587936574776547664527892400898408711506059912586269228619574518494980773796920778259312500155237293966175444057329065772114237599180456237344682906326746213678075232905621220730862492600471243776370643563831551640397363417539165338798822066778087112823636081117692151391224699363235101651206533896772077396178148105485367940186174688667961708086321728914494998271753677461705492103239565150226943864987668912294295613851098856886462684792402155251354827410308666720426573151289107022733123095867234570423199027179789685019869539208292198474844941507939885859365168450176380294160443987851503677528731594496443753060728559251234080984962845053890638743960865794624154860970841827020743054135592844436493772191399846912214487189074381780000197113798182261068911897505307135170781257905195855100861360665815802668228241411141381625106494951890672714196390483466718135584058558142469989177015754776575056861546587853795839481403720380303036579833349732494471312830731240691943284791718389334185652878877421463771740708793511329225566986962320095494418668948673376386723940560518019811984802260104163027776178014794391678834646693456319121091465168568725059053011591942909542981462806297510709522504300070179722735392235921769724267852076115575841784278362421340014693776160567457529928809138997128655483611168125973764750397279951914409108688832126058020781257275269539390202143412617690173445464364233944039730694176934750435929870768428650452065127764672466658296315387446073424072691572162449325151916311851329593546862389934409655297403497150466017635775431169379196290770376327304712166433421312131063024932411490625478430065813506117595554969913321475454196715771339489456522706622699834988378994698981682740780494710956392075264979137736515706110491485611913320961609663858008447042282780510802760349359498938870907764292901670140612379843140421971578755489285663463658292314620858913950825831057190263107046814396015931453313341063899175894575292962229993211483251015061034603452012837688424825890063358320677232735872973509304796507746415221819350932261137970313125496115661442626165585637342790759199417937563940285241320142056889531438714110667614806917966077978860217468524462994121624406173217365988454984688801118965301665747068505288776593168733755836105224917097584146587562956095550156269658958693567202137457021467517489156209250494081805561272498872593218850702966518275648928398852462656024441260677660007175020061322948324854947762970456960269196827507210673080408822122692615592127457789265478242655803883489713459104085819141294658048104010592826042330322474418393781813310075940996246145082053675574732952838172228389059744155584336223442919745605516531637291438078660065825346484569692831851220060520697194436938136162701337916783958398280591938922660940466094359189171272107161219599492064257511870257379518036639171543956557872572526031336210859615426992181791758687464082190784437124033529631614794129444229904246486138772923404012894482727654535202023910763316575684638783974732041499653262277258364420676000442634203364458625638415216024690369099912804671427832697593422966689078532518208184753157031898861327093851518129400164269307005489180871182452198269348271030991569099761713452960959277183189798836622143815267014847946936640741546891546594487942043722534321581268038680041339399608295974591300954599237371624022155187079675065016983358115456463974354411124342132245076185445277660618367307607846573322362732533595844287608422128641948454447330407881058409088782422008540190426851625221846401400367608681942487648306425923648034781262948566657165242284632619075231419532275812650839464359979554829229262995438287632162045357114354914119762082926133754412548471385272163731113716081161838634017076446841031415307427210121519591317230192393116834278639411892060728748870862043197070266968545459820322029332781495671004810881179892317328866866616047073735200943519014837045756643120747039018531837720704376282421778414511697190542199532919567433541266412532794162917531939199407930256578677957640514039539605933003732920531343381981888893784709266150298926418962247850274754715146151572057258921907892531592110900419231685049124190436299904669036286696405132687887615989885161781877224646258026948170675280030038238428642934963607900685075407643207027887823134177119045099434287890605150668897186187145615579734989971711736301873976982623309148177489449492509136617195610407566606222964323681605504556856084707324094770769560994406286076876856242886710988050186060434018992100421277552475597981932038200118010541589519767575849394972173447358122351851247520503301866637460022051192043092814046826452182917946271352469248572408318235265011317957079259974638610053166700787733441112039367694474070089975898416981095894268731405764318938630406566343379281828068288602673903463818114028129537056391919378405033185224934336993240808467042342601689742742244482542272817029153327266529143675971948001551835616796185657101001045305064690559477403161384013663028668753815923095678374295773882028093190004365847829889095843596579274628497111756596962282021103408806940275833954267352487638922325141660563946052009875570114223232806669538711830886055476231402191210809882253280194311196960268067395283818403243476090077182257929895998196648729843240730864004443316812220336088384665945167449691461649810669146397941883612984496212466275233237907262883769286236850065365873825686853251370939849760463531558527575263755139593845366021290809243806063581547290741474361743363128982534101480999965819083429315220377233431194034280114806646720066728762456585939770847121902396546418209040304291777962882204669095047675738810446461340067064952887418784376259603969694895936267118676896171459725391124342877261785944981168785850483763454418421754299175077576617279921557058009437099472741389178914198267907834524094336143673953164341466035168734683722528885454911820792549836622426187654510758232703705565546723026655791697695487049927346813691559109299232447560920413675908067989438644379793438264245475695361188419677543929485939475421437463392451478328541557004155527985086980392865774944229698581791857563249829191947755337121006508839357554285063685597980136298538646903011157317680733273992816988120991766781803427492524193002192455073263661771447600869608509080012053866844613875313277915020247930858860623263878805863517584513330891850559586080917844958395639039199760886389823060861693129196515561405820664008471551992360929429891308211494766235923464647794308047555527009262177848427499488781090263295340891222312380099147664771377295652583955244556122785210253852570949737667337729043173143368732425266368832299927820547247806644733410135732485319388797664092081881629307731252771367417017582080706807702227321490207972279752016025536367083285741472520064798629322514985763541733115205744210979267144293261264080548652620451901896825989776913420996377209255768966287422822412364700006856459587958717814177743607843529726695634799899496480963450842435203394481389525589857470096835517755278965656460173793480874796125017086620678075168013349317143467153100189778025905751703095942224686402505763674417804049601770462003695901249632280943639423753393981671679536561838859025597502355309731919229655327038181536248735776324489675786785938851419349427862615534922103855641899352835311853940161972978294860394262756772108053572229329304775961316941693198432816354495857204941150523245680330265830378770042039822921019786029514057608693898513241692695560719453588292402801904596505827030353285940144950669631224775303425275982844577950775906335285881580106745696821327450814753115130847219094067173049066392724755976169081470922978211104580294670435474461692394224385208464780528885819085041355679272835445436568269081976776749895821995491863994971701216171733989401473138120416481887218768674538175006302118088114422956650569310052120879707621116312328781791572387672536402991237065463543582233472760266702146487861424657474613815018015712912019095092396752587196538234829366485122723222206178744287332584406166224556379617041625360218522216887652100030602071790799548722448975147063704201477692822048111721319976669501470771367419972827243134562297670572249954677490521259233629482251190566721928380546627651422026969408996412156269044790266569900031580145364384062053721850746826893890602012654860581293629439483733479601673293452001894124973479628165439409178068952793687945397147303169192638599672362674036445732819201828592237016339058951389050286178816785867458167101883498949270576481220677398849089610872890315861505510629575667246471676262169740818221975363024023476899747436713836256023815851250142735005702684316635771491804804377321670906097328320354014756845638742518799043862724857216401554126524426127123720061323363390088027762538780234206733883328840012018714847294772259085150984708978231659796267236202152130400247603612807446268212349132330268224207087381476342187596230663760271772655532990471428751735654447451967968904795190700784417053327361801208487674205718492363577884917170556129769716577664253597261799232656926758087412754969688130120835023473496717859488489845196035653628616297076690547754111670586679072636501479591064842515052910545464749477678677072294071202809429917718911757900590303080300970731788568758712834640480366454044476046515411558820606223609499891594039422450797222107399105782036541122265576383938963491957267949611471244290799434970028135995751024346032379400285297604840400283119944942476144011684478510353162836320296902932371917927926224346791853325532121487496261496816977037633667436434058110150515908026876448656524814431160635057928330623088623985115116788312955284406756851564473910511980575634177593022348634705354094242320042427445308091375312199402267065966978829229645104862423425199869933895345640742940457484177650199677966526985703428707447506480851390885592584607274827788469742227579528770133411633209518669854135748336604528935772149854240456201449951912678274109630788302441931805137433293082355393862773300010153356107142574324779896880558381756764263816769041701628238156763155236141154326782475215859201872920351960114172669210859610698298362492587491934282835166000394760622585266303172093369297696000171078759502155322318306546840876578794238715532025012379107523234947671510179297380373510704778887544967232886888414127976714226266458342830178220587622895403883101314393772337569597842858069713763871982933563214143097443824435141346759744541959503474981058000284986792344155619157002028667589624657972659186458144737483546308230256799642904937764406555221628312014719768101898149245762322284389605470300241111486451253109135730919374942819269372720452155401984432294844027753892532661235176626124612530938143665390809295717779263691944418995067823459120183116953300950748167619745046512325770083250589822046418385544337859638280552432150330519560529149057354020596150405910952396709689084816771052544928047073158368741583790060820755205486330905885546423765383586750752963668832947089056456649746095016849042196250299275558681570473178971646777022794504730108315182757053102453793393722234185524832150691037983224733167211503678817250231043643047369133733019215281359834356177790439616694052684234959494198409781146879983806574868051192304789018254565737977185250858558375478858399081267202297682171122284565933177034700328676203048014461204820876956501534898544768889484842796406208609165010146296794322343752986426905840004510958710597737710698617376650175233241494255232261202210744515618891837942099646868365728823462636838723494390800830270779281321700772100497267451607295854295548691848547234262551720919068637760205484228448977260654301039115224470453616479822069523746352979199085582560840825427084924542826086121993134317583148313309346175603930478202350834742524576399993414392292197351858222393083263176551616230428355654849468695164070923407967359106125880937932607631396929175250239153456147324932430554231755146956196273133775345914793452103747670859240529523718378524988857580103225214934775906469366344664823442735332572408200212223025727954013937293177948625192868588887005255385869973579027333898321539361736358848358446692466093523067864910605651321056412695659584791302484169223429397621043645681644300002578523781283222446974531823056971793439780581542358495574736308114074993134063351097377588358864394734014934075694191027833112135400681574382113047283467465769458761167818129608894891854422656215053901141987209172917674017168953366439495594818641008199175554952150032301852273924916402949236016336367569574135340258977570924261983222304877143081440713321565455717827835837322458271929293938300448085939644355927127539638562789730425725707279212126022925676138502905688738142955837200479021355981082755348379492806360174152585142135629576489985375647235248749961500179069770186535269575650563082759166868396214608127036780527984284812327183399169698666915336016580586027901672677552528696228219006074055971716883313920017732569508145005368541109662101994016204992643249681559690970327757205062741629261484830635793781652978932763286449131084376138754136387860430660442797164416613940584872126471796010487291449040294661154573980783294564592884971384770803553166659296999780352964318326050886292638439802267667668257180325385790172277198781918171248573085063644760786821449299987133196725402446327637158306550470149046195385168616913211837133250699425980529338498366879089693562319986971745105184715972153508334759852247818646717675540417854054720535054533297798612166124972078828787502499394979516648225299361302787271514461128021940446136450083246908006468800365602185425805679663654603967685109071874415122833366140567849150849174830413361063384136339234796412956551593697322295096602694027203456127919840549072510922013264082415033236484095244291421585481025273259048545870710076770037917787150764791476550726750290492390754025012975656134330564409284322406766209346822368309645348048343888610271769103863970772340025810342756737120118115819834667913874717746338682496808430951614959127826018605401590684379051836208487075726688864473425698776203880836498682469251546712072000266257524431382637083044755625639892310354097809522251009881374379292193705506465976635155050616224852776822896564045208229771768037523815487717816521162912970108097710738658792339764847420600260810376176569453065330308432450166306427857456144529171571767740488208135034825817483003772830507606211871949625620471836802771475803086405884586456946650192937316379259660077646466420093378712757199066702579103717306913753462127128865943259909203527955838382805811959567428399050839567193003492604722931739758730939916608664648555199240505463368737966587035708883871227341995684159500166701206683719420173482731913211488925995529370807255746523414480687088972499246242517925084086080661436758404940218773055728609510209401300472699137970209267833137372677166871627405394186066513985255946941372565888388959241859902187976424410618302476461318356846321979125225134437409546901153528463399931414401127604088367628276824085142535102101348395791687506882773050373872733432163846804551305463653026686999492096469696735945868520147344656853751056705813996747143211355870801162061263511074581572164980453797057474960325709723020354052910681690358568176023636171849582359806692456636160920683138538815760037148550730738030323895940366726469444314738605844790316493463173410783135771796524694738469793071759783677681840940732698346695937396271869626778977645121825072225211567915809971126516265284179948575733699242230703897170750906083562604464079503236125250733895249124735576854597400937745955397890690260270537412395816665083971247740153172580651270995565064288120817535232207375967000035488321418080813881952909464097693732948709430238223089868281583494178310455662382153147492981749000549192445494218917426265333858347114065500198958667775443224917886474950770198561652347303839136224455968545365532224482281345368613179520653034460004899967225435544742188912557550573430999798440470892517888637081244718815837028376235156976139113595341014991102037353399524979839682662914814798222509778477439824083295907153759412635004074229318609624107535867921088848190352152513866264990884704798698281721319817200796672678473370841272237055964258234151560348412422695229192469018181620233253661753826477762689251823977376013168069280788333451738470946865673977783585822626689350107159317114420665961753971186517525254782821713047645892580699085278639177854139385830396783490410189864480489766658719681748884822835234893802907856978892862925264047951287384760795971205976705407456261335492455219461701191565095286422773520389236471024342654546767011967391606092166649409728785677805216170288237296683138051954968043549864961472581132267154133567990703323371246428508550306784878599716188377938296511879796526609188597635795854428649005333021856820891925075946278619085693358306963696665352461500257605247553138807180283765393146888556808657779943811185826518528076860810217841473479224321558611993404902244698114529879499213373839424421589409553308558082018073443592126874795834851859744885251141016680963891359247922290881318041454366359740855181499668590345085213355715476151263302903462901840142039796604784179319300348619977854267353496110270297088634811069294057483041009614171433683090146647420816200197650216989737354480589961585304148137742878104691072113636915345741475941917983889908225482065346427698617961210602396885054885675446733093428189583025794110182047270127272358384503089083634220262804763850943101969409135857029661471741565272714927392673752012043153360880744693005786368153786324845855366202652924316163450243263688910745987761673966154011504846931374502060473272322987687509042824890321943146867732610237546740555721732422575789067745459561569659118881976241553945638293967350955201560405785536157020461267727607875340394009682289363997899118187944716114165249011736785313618324905453023637012293610681574939149155807187751414797118966255632937132562503123723166836073796879797652767369961111316357522180045381883638074276090268846744460799962218466601849594517642596044402632717165411035524435041383937095514040502019549969444144217476182833106439526647937138295495993357955081501168878783715913609824393467603075598499801255210425855262796785743503156400086163854026709946400358604201238012278646637085931147119869136376954048755639033688928515756838660211598376470727925642535037191887916081923146772552337863872272273027522920020360009027584305620974986105569906532920903330850862403203164566367627943970088793042940930443541274697593230675790242795867248209063059769880897604909077520433745099689816191797364839257104196188984329394182587838288463661687728981248610815385582547816755268608334068852594793310997569080666045361506033420288375678410656281543870018268372682841398225842813156928965974826439702117042971134854981541976597194896742716113793883174842459523823237987444840796848586282669064847124607725813973796492104492582553758867562745579114482066959959117520899339054200039899902610378366954577381393056523093545146569929240904678471263043503441764577047570969580094543439598936813935302202706084337740048199160414642764923925816231176369733420989386844820609469090323285250603821160617775822479325232364673799779128213268483477626853219085794447787928719231255160823400789418205828051683068922690216770146916153920521358296915526123042076779196411323575720361650904514839850591508057746308690428733606338848126885967739591429017989528935520227389931664729099091488217794451833654590313500471652007866241109503340589474674801920720489994745306814937457709414724223277134687217718415028604484385841554979914831377275436973188986159404182698778213323988395435169863213911925590108945052678906905033118569816968608432630000112998455834448950002216201150668820138124002736550242807431391029245709287179945940342148481958899569714072708082539153727932822273793569584379507459139636182880170422282167956678491281372928219612397055037903907000770465738417205205800297724872487538872679572973052313867861922876900252737574885713050790279759771021041550916391362289224913866643455075849740118757397784312261164169863746334578033598845572380496537963061020698046303494875400218646872761674506920470998960207961951890582693340591491833515791584703621864792441474019684862830055141914874780740750088024107961165630275792047998418232527147872560167350210486040900218686195042357496571537872959812443188829756718358179867465757014252349563482337035372885599117211411074346298110883538510514185405423903075568197125226920652272578232415702976063565033763680095460062398584986016513115076937625743719354415068827372393455668545772494811341985537717058757830024376200632255640704485748005297254892657112321305120537555948110560573749332027973099609734865176510282561669385230220871802924402802772962746521598539627672074721174576987322670667565567529742331881329891237804300332240824057504669920060475004961086958253475227579979211030543339575680787735178380804799757209994695122884929281594456792625953756343245710634634707692351185851288740428081871908410362925068637228388943095754733604304468032956397533024513332806399955984243893176335756919209713309090362076064774918523059734440405699401544862801989066989887184534502040305494363138444214641521395609175285029934567922473736682955822121719106327180832336018389974432613224199642091056308528667287836175368598997707083621080875112537201734016475222860806686934738673808116912356916933351208042946884292971839681838162782288226864661273700057611352603739590395305606644203560460654129155300375786621198792321156081664588522067722733999201545701307363698365163542664835080306745515997109089097854023295763354377402009268434004001578702362190552995897120144489106380114796374060370570047558968091050519636526619701252185432023464590170743284988323412512700435003909895429983425451554040432948681595309449858945658767516482857543674717416259539656371771648553683992891740667056601994428166661636074357312021720893614875281771160791975947866476719143189094875527258153580913597925401371833530347107119770078015417897688949428303213160776007086842743356976047640327473061511044104349356897183622393760667523780332186526098834095314557799846459895796823409447544903882176809422566433843303067707536239728401188047042287569757665331888418028122234212797948594298390010628134434779431604568776729977096651756253333449972683216869527652871136481488548474889378156476783499172657320506662358084635943920712187418672314829180053552826413103450794442436424406676099906356387103258475800856394408903084846163432560958841548540970021876055427645432419762315289413915745261356430875583071685705697603818979576728809137581299894844993358363317092171114341237320638932665526610991656617956883578131638298794576100291766980619866755571090083605980956232416557411413329742406507226387993466474732030780081650584480366104336045245313392428165177634191339047650489412186354973804617709615536219345995095834168257482225723477045466883818666433926551151711690951685866919288379637037746096709468500723225733479073183731994653373915506581575063917936036960725393803913162129971069242605321244719894590504756651033120148380743494637832654467104654174176984180002384819132826793946406996739147811083402792117085965298369171734286968175271142778609352770117709726519540812558855441688800996305245474356652631112995608008207874506648158072520441757629871369826245528108980167245924401323928326212400714521053229345394027892671646340622469889775549775066248406320207010478619045397300549043088580482887772060639573743403127703345746707657655576016725720748306932969074860628110089981950148641672841030386620966691087000838887079174768015458062798815899454267421919282429750475625929536323657222112014644648923593646638895844049455694952643017897493936745650000012606192715032203888271189821916573871222901653596981643385306958105250711963079902902508005549831033500717174864515436597287142823411118166628141340198679190210491841118280303923783886185775044219542744174364496638959490718776094418028968721051212075408911649141479236501928077143719686302446590336395944562902476823822303272633619966448692743401781948851007402367639902340305516745549722311992097267481057978085236529601731203475681024749450879678080826366401806280385201479363583245805359150772609690772085485575975061148420523053610440428415053987413125946597972018564007245040978498455263361306266831412002645373092561916374662246941532057524829192034796898767040304749048391035199001651895880182348085895118144720706771175959029645551183908147210220810540250982537511234800402365427699308459429833744680064704362973727049706192987242432136361501146527130210325807731279154895961964606501848543895203637927959740140636966891927557393240071245640048671692940829920698248056669592177694916615037779325865726018491943950050763861818094726982414207021305334883030463885830165539618607148755478882007729600458769485527429139345121979730394269049559318576605374866742908258166381766840955479879770825357431028332665494220945165002746079065294539245543400408830811561801745558992738388878288919532215312915928532766558733896306456142230190451850658498372740324501980862641924932496685181693695906900301553402192610785982037219640852008578291492713622638531212764411782241325942649744082545912006617269265715224267800667717068740447029161413746567589692840998942946453538630676827873892984592011346566393629054196090051934428678241284832142086944793057320747240177675530929071904233056272742259205029343058759234361412417942579418953407959546697309716235108218148048391010434836951470418200417377653477037210818394677209297996734762951879823900477815229468985685642832458204252762904037332938130844990550036403518570886187682019761144918672725168332705069868995522528326388733107608618556010064642525958884435178347909659013282028748863164085852305360339992457954849084450738657483307534646446789341241622401534472566899949606544052891864703751037947250339966356415781145873811361261651553215648053456857207829941639204296642623707366207717102295985299569325452678254463109663561872079123189601669588265715281062163134810431340152087751555116890284477574993027969690910280038982659491426261868318176020710003156650964236916941588408287401316126860768697718116744966495598635210824630938167893208498723830739438705317948592679923456519814591235139744933010454628643151424976134976766114445733028079808072169253247503992247356437026971209305516113869307904415532884099171687720323272122719863494823687010339412340809578374650029054369466324346127586359277419325261600566015831726479980778017486937863003910681224403437888654818887188983156850736044879536477057090696544734702605370389673373268531990978882062851453986365240340799601676817466337717956527852545634066128367938996352758051938725333790606555647378265298052281150883947364326726386568060392191267683023431196339549070629901116323717037976430614783390050443480845938819246213217609019227398022986176615872852624758050273039528994129381036881740100598113539556763907789252294816086954997723202216256346281140333445366970548862037993986310896254793483904517777107916429082932882021584633915149850367736513365604627930993599079114067365925841212378576958700187787553386119403027686160104051774510546291174901521746964408584412836145660117163843296393647594831163859496825360413550676648165709347245270585046468187201761036328639722032731219973781875823252435659738037106533190858945945784933185955066831637349527056023007047036515313685471994813553060708234179600116198899293614983083650991701709312438267220833760284993618540461182298759122148330378869667677592232685192125007285495715521604829257135033444915017823143137733887897582010848717228296198503780008996909067082425570251020154791856277663879574959716499506851670339165755920636372950330320078216647159799758130555489364231091260947232845153634436722848729795941348588162646766458262260100185466157758229038788875825563151723004687860218901708565240455859544796538173874565666929644260803625382764142385067645904877384644615700800562843222549467817242552244447290790414519016730266429218155811231549300032323843489173297202621820183254872482750150898959792862436101707406809132421557765208105124846685806819514489542519717311858824443474654906631521317487344500165933785454208411672228687267171310818540769512891924170163616405645514885130831127690059695336771582654285300615155822427507275471926812797994022388198785604962719587665239973816246379280236653039827059936773575863957140350304257118988152254001524281405130884677837442054748040913754758851119461397691862601878050813818663055557876415176511664645774746963803141365252627551454052738520453241963595804110394074020275991193776269569825929161942300182666728422721082066385567636725324010720952083524615027970530031827970624477442123186867256797876258356433286302585262442903263015967947885724820203121219878510599513864218114597345100926338723340163048221794794310449192637241981921810322194145056562933332380851616680755699623309347313412332139917425710659629036044557678876036302213684466439265524409408676210361039443946352656700817782466156548034955154831929089902250272686221494356486573527889213503478802358101366435782748983331571757224298584960308883829996311571017886598668380513949986837713262911306955735125181136281306329252355372951640216922945456896981031272958636571967796526227242721847686591838685886321399990615397845168919893873120681127301384313632211205848067338695005867545193772519072880376240557821226138222013415092911353482212046714748710853258148155228072669364406036564368367081306986109942822358326111529477081585464384380062689365404153727637475713977970643836576129967859932554323554506388597726958579902993669202261249920076532369382303903108556655125617824325889812258519862146960966673358769917982627677550935867691261958493032917015980906389857255182301544077474149874050168552244175411827635565937261209128820022052093613939843685845181347127144966673426979852576806703740418193138689909906181223126827777524659431080078178771006932476461909853337363631970908523638962791009823270380515458682636349738487805223365069770101611663572758238941680804471416285975277055558673292149623188598196777491887324244564787921251042582524182065699730739883089679466699469015069312511680897906086855094936834681401893499091769541664784107167296756053460901422496545969351994175319135322530341253722347440269262572867448212816104449856366350095192361045084631214659998428519624028804476771740891621207379219523797463411411519145977340716555300559909885952790651158166436111549126766332826679112549111760707041388520391710685514432884836020803055633474107941359499713860134932750887812973060664149259552705380843834306797759472680795839321754525252489596813574091565679987091056592377874728599829583874910817677823803310403907442830721588553937792989196806767280603817702239502163481437929909077307011160674970758197489749824146450119958507076326583803371170895385212663730028508872035951715752539379463161486892268068903037282006080694191052117826168288305437529662664679509230885218806987983717983497990512612860973943821430654219346953249142796108673819128941865098598313231705432487160620340346523491203143264495288135020485278681428464167773968339282751541277090317390711903725980689604041267898732836585707168385076384418395260455917007506059302104036294691289008589082552204684201068743805259169984759133992638950479904243106456063329493512758880209230037149101339761171228370810594024290152559282110492483353834579889140591537674702187627527179680283630470135500292269775289081104460536671369298824696645127474963004021277272048349321235206053033337598572988806207023261477413871005326389906495927285145598039040871425942062750335850977023378379779421267031310238367754072979208731620631487320936238963314101870929872962762388869898679908782625926644658263001835677216441216399216766758063021972581656636984935137092603164425686572631881582897002783750488536961472494335133443474550077983932046100480109502464132285944741803196354457955144282783478357068945716240315503801865521113054613195479246126357064181002226189932947450360348515726430403256695106808427336904872873419426543983866961601095595602768601430227212580373655254705589161434009598672676744811349930223203898253249297014297015928962723392114237853463011855404073282744803112394938762428897907661782536560082098894589322934399166195788833038576336298268878871634014325379610109876283799238898677839128942050686151709698789233964598351257529618528223517505057033369380845775663288054752909178818639193024304879765641821563907405817068297021827998765096995602118191504142465316832673895230155716804726271417116597896094513621480227705211425028319849813589655505738554224921482498563921172521984135540675962684668684865792986460943348498767456031034010603066524312060067149309348128404649419444293503301006992741446209375252331863948248907552964178722018983206183269673950544098935684029619629895547988959048016981662655936837635395056128459802452586107201852322450828948675777288985875252568038188686707689107179719022553571712474627546337820263697569781006542740704112982076460019939662846581791863605976019505646767228154270712508839739913877329697133461562612348257117384104471582602818814146767471467977570957140754443582164158174060261697053112784851355592118352927003396575169174002277449028602736924528082268349622743825268561880460533639530213752634953800411326087746179372208627935876430621854060148528808010063508475569758496606391674079816084267982571175149173667741507147847502362605539428635828545335722640566115990503188208832849290328307369468148843054279341305003761254720667855757086552410371931159713150872777344051277897917690477691869289219208064234121495073049978543985870659810459104731045277077004699695954028795796783498855623333141658251937755086025483414362319295121737186105394649698409219849218515249945394684795354123251724074667360618426299744539199727186221306742179757148712325898607235947382248757208745647386962214132315421742960918782156722220292626804835183789167753101246402662273657152374236828327698633535675368044613493964709797891256810984050903178047403414189788459682529035571598137875743547992641652416359465297629758875060563787128884749426667317009476326173312955945541172332109720200706575209531113993848420855143400874410752902246208482045409462189924337017337624360152052127146949296274414603023003250556222107493093990309190642025727431411613560949396268166245936895182555463316370742629242757533658361772937475802205506541047078476231234289634749878058395582890258474838508201089117935246935284961167742110072561294891288371011898861178557752976028968847300630468210091812999879362849646462926121582280325288119238847370791427324006447979984026290383983807620228531956210283429294246464344016462534268721213058762854518044911691789465680390768586568922753831618049838479443577585735471205020946589989383073523167113587216333613679428039657967122845918654326176901209270016763582449396732572955980586240160494975293213211127958252376770889199623915085563261851951782292218914217379204670232543899678384724944655822124054776813180165379366765928152534040851089865377712366826683148388646545379411689625677553254903433990026641964461940152918106013494346007174376665638996051195392539823673804794834590278594143088214291258638775920442490892259306302161040272521953304966442639324662002555206052779574171734861705952838783182796835835502314239872271871001184913533600604823431810618378975655759064182340463377289391009010743624623124506942928113872188221865286146334312748506857856662299680959854837293207622434162382603568375230540927221625068893398160693154800165338045634160834529324812913629912344463923616622155002329222554682196267717959803573603677504759713453939588629976407326448206520076555474505258566952058164747811047356091625017028764982276868851369576532466606612103954468255807131966501472962114416642515507707142350864650532551996692662701667886497905830883056070599591265623940804783995717744974374880441471883495085963758587163749528115103445627327518869236440074522688238574211210333858884755745895347141290765034558373540381909408674389752751948947464952392886793284318278722516545065553455961622211076691841778301196740170795464125519653054161022754087406026602728222648908127475853487151854027348097188844314398159907014444113088649120591670952184487219114120550642467981626046400351131181371987925959409759537487313617931876288061153817342046543209323592700712461949486953491886124636768433908625308372719636696798885203585793629599416793091841330333645972802172082553227534417232203679911532803643210577484849255776522629006499785340464141374388707738222590196362904529396076741855412247684038153578388610837439362423131240236384259908036742632369728956835195501904387406247164841708533965649063854034932538098132257344677289893828769740019933867372957323106129850077633071763296670815292255818749715443450832589361347132372770801060909658211988710222219719400029119076423772951204606579854144151837400010288013429546890117845748549320388852332242974576129346374927745296392418613371622474309701640140212459569126461483916991240213402638564750136402340453557417194639080312555308661939864104089389255133008958032938227263588967039684670925100680538781906488825821658588765344182777440241206185337991849813002012526121208069278844277674696097615955744209385593851567544927403590039605898647068973262293443626925053171053679696931412803331523351503261219400638529583163491422409213486271408973639261542617821568445831549651842375822777194308501906668544154842860114061088934138840163839989912512258434030873833523126922258910107260444346878549685874971212046445346547700117947931501278627970758966787223297799275343920203941931682326981527737224480627108544046795130417207292641612368998916231368277026686541100079052418740740579199837700225993843100645864852908789224419709850101605866721995013726222898169834360172894651872108739193610437600792422350114469653418111527357801967395769812609625901795968802269909207879859828728937640135882849196821041058048034812015470920163406069653141398476810279268893745008640794482943904878611436825132915657314657650484230636149750939819724795020245193984816299471052058373567912475701345083651521145960523657592315204155239074318795111797599137479629043078787977384698542953380393351549301427287305236772101490535439488280274821685960094876942967419391644573971905960597500306106550488569709423569383421759509139566463100237529586099287974905227840985607626052568128588193595903642034067385397906689270896620270970108154719535610845097489242991073244089711834975903882607799691510289660310237244451364313006602444860500648441278860054547726456541702835691708513038655619869814834213373548709522547504317743411082127619823582302891794949476003129643324658733885715227084019255445017247313980473016243159197368634249760319492935180594536062192997910558626103959041037297217004080086834528959292110078602208696525319967545997899659303879750864117171641023557212694199632520000102182865554125815105211156622009609532496479450409095222939229045093876503314623918832490419613258984801547979917465953300380792683624282398951520065580141627738314370955914930520085731624244935982878504588039487628212820328306343753964026462435280019162612995267323783718411705167396859883148402225885116818256205457916443396371913344356949161101925561851989350739285891403854917738226719176975016544343497284522279461697551370391090908648774705068967571431336218484063902930274417641713218982870238959825524087592634913335708441179402841648920001250937899405623836189252633221502284341707563438723229406436351981380780138508750405372904817755855667474122228290833328862469208620559842620736720983602020253063853757829363806665252161301854761516334036578801068106389370564799754079701445860378127076357493910577022176758916841067136774518886990307678338554812858590642066411412692817454859461666374755771218709530010463425995367555607600471405122722090337817954984718360122209114484525944271665575454390469700483965467219161707069249498323811007367677122380362490589823957098995000044074477668221013123305967457128270200757129803361553075130924610735114203669295048566372514588370284045109284341068743837587714994901370399692174013015529884198030775549691994299965171260985481093145179407162985386392272183485575217288874936816895851564062012078861755051107569311031155679741480042382101028973154389860355756222782713107813351161569149808961591638900912180556616777160574306230089220247044118100033409753054310318643753971270181835430506540965486052473771943066581668112905686225677950130783401465403850949613302259209425348981196714224425243608584435642469808248036478935411168329613295180653388032827362672514189690780509070564795486554258096124547160817381488646606971658711856550946027388734263936477798265739918950072219119195305859749780326552217609458380510137285547418371053093080230282208436877281588776302983644226133131205445888754741480855848931350781295671770096298986072373298408173988631755159058164233906878408979182899835712516375947855827032527316530501613543128272519334193274512731582385541208612867463536946327870217620089774519777399287807314980759407437737691230446514913991172056975699613491966944736586406477996204166453958660826898512533513827292824959933860656246860379305703752027015343189443815633366883331190595034814831132691196684341417257203783531383682811520489344175814956328358320959610100790483978192044499895583069191424509500327099840928554378068950441586242056218651202079778105986940456338433497628609440485977405467216321490902995682209369323886952863896537707935281709957346057184878825221862625737647313998088571085016541652638611927367270697850733301691837244132320838192317575791859207678902412830184829563954517134181047442327400918807129996460672594166467036332571458016218684938880043956616234091318235725333087472620438146877252461549955169138895515083609804108515999860517795495981291452038866082733631725804539382872406323759155336378330304961049925622277141173537346182666149484547815100808604729187143054451794698305784719953889080927232489327796320914999181480806231657122806591553805536045806400300498795523991292272631728187973724476729899014001637147093500147583973493609614524740322655627571676865220364492303917485368212135604380558078217040205844484980374349646599740600904593166595622522663673225227715391108092038474599517570549339821349402119961323767797457299925233991635783111335902435662221660095510826531537394306105843224012339987151152167303451876183253486122617147129667368114868355695486232290778812738683330721586750942275563474668836734469650227027908455922220777323683081394768497899171622757921547789217189062613269191583724461184334220428512297093940121065007407492863068910561402345548940787670532974527530850511305262964026452651608357927524511979780908032960552100594675965874907171750702141057591470722542989390946888848501226602917729464510883996332668955238079114758113827558262897591917824835933477974273722770453887887103418991098939014530925909523690742270715290920960219680494019332271244974004869042799643500107280208662690309312496921601796608181551588805803134460894710180680745737694904708415748712038065237644386806840678450395889308940616530518047737603565487220537793499703927024846932760728780501153741021841325298363399328573010967099024455714696951247577166489920981103365820575161640123147118109320444991618639313725848819503017377802599040158637956029443648288924143960447253985193205572435974590675685163485574453484296367445893767377587394555954028137592813263307620711779832910612498569785464788953601800246421734797073025024554037342862635479316942089034869026684010606653256904905301718066931746670644183634363343130874250237998581170662436172584657077152367940780641871201027054982777226149167833925147728271243169713500664979614062592535018265174812994993927794228476913473407876768540921861979257522840522479028414937719152621436758618544010854300290035282324892825561309390527510547049676338774594575479665443597652853733120119632192190792413636136261116779243248740273382474071893845283204085045391002587164770477867142113723219489720584284337560812827104544822307220234229789475988173818657589892979860453314363043730974548944510205280480460510300311027119035681275395089372092418214186132566091438115258108600347457241370191539897361146393229501598208683744265986799716812959981374790879988365050046739438923245891935331940224742403977396966302586420723354330442859941938342491247909063443138286554972545240840642103903175799924108943395454142481481705217140093244729677684620989220684051243294982894864823881763008453185869722061843940034727260833446780719338321714786965857862340320178775028014236168504516878759761995623423754404271128734232895133373478284480950236555737906024284459894876051087897540020986342559092669003111645754398647254635890542652191313667147289544519304573353406236888398285398517170350743366367848254673847333668017328794484983731977242116701477781565690585391398575321604249393878711843767748037495740166237965128527161504678523801855712710204537394565412993580455486128869323904994583954897235975294995662801170412021573236415410194713871764846846570835019736041290303391985243602232884011843820509874688570169577643812179162774871856658632629834499414985483022691661909442323553468417789546221896123458806181838217650130967703614980950863000443889712596708486792955058793096635796564333505422688065870316969796210392082843391358840366571170993618115231454305221716967729101710420394281815971024626075018361344942933755263993435624435034123051195489867201643184556843736063228661685619761980382536110923370437729788692660846579339538516581105477589471600662903660959761552797155610442516809734699697431464150691286312522775561228627052947098024075978171509065173067315715639131561849372872365910611957864699165207326499991368917715399902386358373050910459174430615901347982001090524645946613011467912798818660563266971748622799855707441124083538985168367515249298276900745433195264292615308911333842382963288079603593217717281939340474022948647863908317361923837401878512388104854969687497213412629376503782902752728017501724525827208965031365270115660481604022124338590237694201334406971064233383134062200379873484738389412905881040263275684933287207538745686341585060719480178710813636918545807184439536562853213508625925251300737850348302653644912697248960033903565508956525861582697372936755283635834336355827513130930841681635376020874092091485215084003374337426910029440672658235262225555583501993447303872501555456081868950182273631829413427718406215640663334476223840038723840300921964765806470797451835314870085130800374480330675547685186503962273198887764492626809463808470757070268446816316699391049094009764799155977413832139746767059524035109316430420604152624976773467095189592996436414556612635024388140890216685704907914529353632645788837413141264036996910600452400697041577382818466553149718066230506749886775317338394026272259427956826457431268875942753147886996683875563133760950755135575986285323897078071940669694508134457537397496451528801280014155503098781516319424041768400786720935354656074979773011320808969744008665232433246982780092582546987883768119873216893370231702279699391747212779813214672565378889478946113119130523718306291490844638269685456487808013650866964597633610487735237654578375499820676234005950936323933197211128849990477836890238991183023160727187259732497149239029660421698004947064049656493216924777015461164828530402382541229416990942354960443213007594588814816749994148647950029825215607554754607907156937877853867394971393822730423373782563173353502923179384387062666584849083760405976355109321586541540759641879852529554430146448649180313542321432047541789574805991976882865192124337387054947205084453717515615843563561732008047260183177514745890599356621372280695796953241027186475193535309120131684346774953128381841573169511893806986525736418411614391158961182476189669371561887966914628684003829361390244874611023849911268300720003166643964317477830725907671118606647929627564004056265979992481674385170786245976082907571818162271688810722104452886730836298764198176961695362046638742822859888120157469958788949154274889658580325527958060198165354215404645984874846513269286945854769315470247732890307015162493708310530650185151505399418254311847878673477261977693115499182561003121547974291221796610812141828683006707409795400626956293245604702888742610652230461897967423938170531833843270375497393207540391218057566603151395552174716649987532040766736593681658972035544695993634813528371623770781976160523164246211096646480062918602245527739267219886481684497596662453491447294539216160504088113720471885289930881858084106626695197210034664460888476726876494015664008051584175327371156218740515530753996350669040614127643064645245439518383176239951871301397565718759835938495384305185838345021096812887747387226456190626111797069716734474312283311649423727899342796614702261003149198690570046660921764751242772374524810562687219744121830263111142937920723229263113580854788798853084827035742205432754327775987529244444781256159369133157132503418880897872326349195181786791911450507389281299119706300591032146573220608474841376754940108668357575546939366987314372834642387772505437653585278291633520570313293113418034451281898430125261427722832812890274019188179138905434456454457673554768126335036071963605087403277811231658817644569369912606602645960380843770416920014829716187320782517207448739605535842979948280197479128787019697614590762922875137937354238393512515021739225672196324150296514712378485050365630270095228748097594968989933532561006201225434393952663583592981120370027398576730258064178059950163220258351478255737007004015786173547468392221662137950774503632722433605815126356837500301746897386415313516802830025389132825447610546636028508220976489631146463001494783150651046801416900943150810667218209701858179430709342153648645985727120697943110819362431508358443544817016235016573245259736335663722233324722901106698909827845611847518051465589321247147793082998915430810036378298225232094272804039737174079211018013930147995430096435189088750230147494454614720101615920171293150266208878810592834402070700004045299879612545895632172182432711021080505125508818167044587091023393373271193121812018750094698972080883459563566234430193161441959029329823393687785770558562191132429778248141765664010463521485525774380560543880463528753991774048091139167209541553350217038167793829582929502949888119692306247317979361554508269403051217716707061626261170181552603848242939696217412811943738844838171390930887957552532494123316017528378057750287938811567640542325671231312920310331947189362399565254635182202354276271675013252009439662322809634907264426112828013151156816207305474752235876174796257964417636091760531368146925628004576416003200323029182631556165897582125646077717297302354339927482883791039087064847325423606534120254841597211729698463903845439358586549463492202134410713019848572313293631988799876656154182997001436516465089027133051602121352100066445023567702053390466875722838320525545691238163191469282520627299523947288419538235172086743295151749191858964787167161547533892644532319164652371670073650042057650457748866325493204451651090750049181569978181975570758052928948646515357404090242990226794002822096284468120063197031968021536265915452165437804549731481324944687950100586822373358251989661849771700795390585205167587040825279152637693331817047827915019115701046268352037725334117974596878826526189550374683038000177405653954873746705877109195095125797638066269214876252200329754755439847723311681855390557335842341432069267899840038986477706963136739905280291062175427319374657476220384367322206338722139026588014203936782276363131594755504234390246400163911531266611874627103202112076781879541548279610414025758454508755755952420865920127430974663204718195091919177926624302251478202957596440503395231517318599858821292055297022366156449013195609603229230003884313787618909348273916918881529579642679395799025613403620566927003045361334142172865492321070298257235399632952296276893618267759121030143671322271904624065255631383894618911958068076118277462036150137966861629740715999970611004033103427540108539034669938876621420678973247680340836486117416842576842240238056352821149192524544878447600109391895836499423227036462643195097024113289363483828120543277874139959746447540066539807620934268024831107412319466778135503072986450902133886184984082385491092310654373850272173041031647484540816804632218091464747596300947610167557675240182810592248446154389633629215909381489735961013781124949597270182725514958191491652417501255626902062694619527317210810845140210290530090687515680362293627708595791496835398496453939730860278056850555340002760158749279354721121899909132381782561008770938713795116411025523757623188836898961697494099327762144211557734251600876489258700368388268780053394873614990574128057266594634725074329663852695095345197992024878134634499944256153137660742773085186644929414042702256462835266344730885617859696314643719517298512865509046681165702537387081500886934040615425667604556407417838791729470718864507765670120364898015645360074800256848305942196046759001527979369440536881199004438364357196510356599410648740360758713770346998779511444929959018338496446999576790123799052657652716838034140894585426096577916614536194288148691651831071114507675265680695899550894672714774641857838242660812680343651229874411311844298719828562925618515814106829028012024742325047134662572171213718243822594813635100352428309018171695824888636624689419050091685990844596164805378766872126136039129773277639626772474878060162329948584861017400217653021013440858977355099085556144039475045008765131389244289027085499481513910024015510105426613144709802588087532310362917034363163477200073581212322396913388407709543641014667405988205879275044134418442553705355318194008822347184920904543763458932224331668437767680464939000186830251471167888410418508281345987393991282311322418854631519124944423988812502307115117795011026152982935242096018539269118155378095337991867863771891401101144926455418144102855031133558472945503112405847507567438717383514996120098401468167450063602081725184834975181550535743039674070825822024333236027039668825301835559034047817958896832051896017285736876835097276762096925306810259422120812596562464358697433578396682508833482924766772577421089609976300683829132125447465337269580669363043852919610917068513850605154640958655581278331287879938317687607629756172304513485124548714558771324366251374586532193771099637996532419132031839593113154281472941516839239312928758358592131152190358274453549132709501613944294878591737338086506354277043153317344357855939383115646401869051056386002347241669966687969074917575229995449345217135263075895237744968594394815316379198356717463677702496360832846705401361627316811112755386982067397280624910345717898532901550879992280445958373379772219814021627843365020177019946957194858268691172181430409693035855909393967289138459467297935038135298064038732681093101359794850723296867930679830957122034662714513078564223762116810813980937383706033877496260274835469187351159535751543500039238123532846835173624377005454347547768911155185712702961956687779964424671467916443590142358331850621764653211281521281479707027236129751016695792815191717534688746390575425450676113739572994349866552140697052299357194875768049126856881100997439554937636785246468682900507408418622604941796254231107420959180245866606087723670513365814179995705089469429583151001105625125439555963562304178308755906352816451620982157316485966479408796877418169494129007770860492169302088691155157047331777863785913370927160054328708068349746458301190084794215784781385105132636058151720286763912772782000764364193926307532022044682382165499857944602580197628814129629234391419825993290760112364686034340679124125648252997202825533326030034250379668514529571084885959550255925902183533624879224422745124996398608374786504561723935657737860426518439542816554057222838943370622802272409035915478579370085797776303354047075285415143790885910003948003000685136597950035401307103741384829584645781894186687880600621703946854231126160190379850382166508809665953210878736073199519089730592712023164889444814671485486641698379132149477027480989132560498398192487819404130893408563047428545896459286569443062522922915482446333611559959379141903211541355373898890548655823144915260927107380516280011741610727578725515221192963802928414005864971616810672562258427105669237591124228025471259781688017351553007561005692179809107183245413581445137364944848034704069129423143937008952245112700733972236826909708595736641301263036715583313792263396954057695967106447782210998086149576489088695686933908865216119756627965935331518468341236363993021889977434849243608056397154337219773587703248225556925157571987044862587986647769971602697299298526740530172237749953058971959920905620806280255601263769324219054298411560394901369269403757476716389581511538017406922534734177061112302876684790012696878855207803947871525641675167889699797020883019079506360397258047355369624179747423045484384476309847572186369429085387488991245370175628176296108001173325867023639064195526863492997843623089363864194914096304345476032662205109076391464236961589368758027074698841993387519554523765184139789656750953694004619424903002377467237028565367258831464088621428006135448303255155777155450891165115438505469522600549723459607837744171522796824321034110774885236870469532327248397052053679061427541997291229283268886926670025298978626956435982077685709440959442937087309089791443211695213807392315058394609861510339789420921144771209510032935581857169139888209089512249350141997695172101658944583758826155806834336551452867975712090659964383495796667572673802716592668797877628536227567845218665366314396712876588915261974943806102657327854484698429115098643646350563879289611370549892568681836927446133923522092810146563324609906867488089763528341957141039737256026604594373926203961407534975896844458454344539004493892748822551004134186170812881641503407662143799061287656496982847051952055833767245393059634639185799313862580238602149523478733872993548450132765940357943950559381461392836770046803758879426316907510846764526765743650315408247795713531578823678289046047643407511961937278325891206753026616354399788253374609063172244176499220544916567414711321767074409177382845487863314267559379822937587776846717813091389550849064055167130169566983508394129183648707623451177343317136317359604396500538307110879576144386341300834364634246180339887808328001985572389956847689852824280734386335358588695585537948389115546615318020135149451431578998098523690290823418791360016650705927088629906485728511133892807518748856065696922848861387055645688494112263908333482008223391414759792008600813158242218752718703410168783570467362697784940096891249949270205881266445755682345197570834413820085913603082867641030559828317514829554775296274022911784886175820527716809993751200365037745103459597649478469626305428179859964615758899333432904712602613026376856820277123693370854545852655868165931998029898961381212696150474678881235147528115962128487788818167671418164417613398873706216294565267879023346379728103400835300100555107429179652943523492789501529111187689545376058316492117323459883934362945484652191512397117707724905533198310129082471760901702188599410093590149048991931152676556074293353613742121593520747536936647527925820517353686793026373962962831909587559202521180615585039520526643882553859559229471452928261049123111795521587049341597181819952133267599043271891420935989235264471095382936668840913963908505370728418598347203958487509650833118781371932566232063554907479880196826801322411910673200159777675436808365022705939066329847508809024691738625884604537913061999154172580507100804172003562125864559676910107419079568349986319105443103149120683295550640695305874640809604456977356707123326186360729845566842201108493210862348878996252050525794069519367124213177295826520314832085234067993588282004114253593940349555120474637418156329270837170109597766345744177769490998387717542982112074463736405837164003780626842221719382868003626420244628993131208391540777679303607381746193567989525936213055175611178225702544871050134350933363765395200196370263302164449484120687115696999520688552589976945172367488740170755678093544045729687762219007708874337913202749690543380233115808696362523138997911110014881284120133526051224543955322634859726414643002875708210768981680530107654392387675140533099230431242880153695752528013832251479839978230420781374970410084068485531428911081327793328968968052615973843375737174029859023355922852221738055033974193240564169941895677987740083747324800378089450310431091925868555889528277795757791952644847782169283757566943585981574505607977895384543365677075148772145954967242309863686859503634336411914817397108644177070251203980195892696305320601012770065209644923181031168554560038352736789781319442041340936557198171852386408603111005893440870445485966788758461930114380678595967061189113859846303168599535162321139590533210647310739745022435531101094661680862667803320128478202501674003799697458659944009521690909400573100584273401021103541936964202727719434272016591612648293342143287573878965161888804172557696157229044650401572847428748096115880838428995645618010532233914823885010793207665976688507768675173634729104045406649464685254581289805857021262635174448022343975929579883369188438298278904087028738263110715135223687043607942873467533765598773310738977782313266148943858287451403249192548858352965048681053717680005382772572397526890205068766304357699452737658719032395084903239762643594821081133610697562498202871206889965822835296409181191354781460612210783377814512718801538640957245751073229018064182427152323848362101320952993287893791331817193896974749703472758658806019713581374812304746649720862813302776961521730970955091089159406866571373072878634091313209392821932881938107607380163470124977339979983783740188164935547580339639207535295678362456178136477139603923507952385771325476071243212840597822626967314074198383417216729132971653157785108633480061715108508131029827407792742018194137303311531965954742239936044366072198916667526505490577113891455563672124632598396205577088203540871124813336249140746358058650912588710658251045742482763498665989282456992006526291508125590682689773600367158262655630046385783079810490935069284093128636404214932732404637348436214873316013049677771430058141914123386865704796625669631785490803084406923829037211967281357378371260150787672780157637008074421211102336910914121363777835713749648007407428793221354639088829590080254555716766162307417391757604145826669966924400852449742147765565448770679592448336866499619974223873665730117720829435045905077187106612222843209595796950320852073562549534118990609881281993413320659823519218385240281283007191303451858129543957427803205484457633048128166858821353653780051293869624001673986181129037665829152895973268308602423886777559328782048186777800149111160735632761619057032124678849004456182692444343459913752956632976219404992118910633200906664253470712431384118747923379884310527237458025680789191062295599853590004892947137199621138303437650252558231185302537678677572348005798121789264745094722154743572217351648843413310502768248562762421335550671963683577108625615293108812576718839651019575764012313927190061339241340665065646345702204970733197069143723314054157670188929653490434947334107789688780462103434635129729021922726279976490920263213202619188786275038722243079339413368792251675998356548151808860563886580877819494366543431422028840619923241741887559547979516968115756331548186467420591069482391246666204457252627066319708486440466285004521388830472256281091675764204838622633461594661854986176139052543365352197582561367009473575974062878383281554424733874830094935632088248008083750364189386360457886169537151874624041023022826258727013677481735620065591397945962267000089381251741546814531376527924406373105072296970388091005024829236542120221958115549055364469762794930591198378999063595727113357098662119340853081850512010981385237284064708561571720303442170676850675197736389216141116682977485792939434783738652695590235568748326293135005520595237305043203161880250526777944024231056054661729760699942189173273238955720759921540449147505511959819265275979263988943583088027562981360526557639328943742187432149331685273564015346287247778029831254420129716641205713748193510873470661534695261234231009216448604327343668071381490346090267401967263223561813783510207134515506677437227250178817902808957341041299796810781095614975304242556234561581389068717633170186119403606331458964323790819911814847769692303346725920167427321504249889797094414867208769251116187202499135171527922776034652170036045710469556642139616383291309873731739696528565468580101395848652532451399039222551292685493796380861844503490081872484397425565411161090995932306745945905334674644611336828502016085898879218427568753541593928867411459292345011746506111670754289077312250404217851356770131113517658992154095109719701489444100839247968819698491802430835296349341019421127360871432904632740761693911579244342452997450349774191355836534065445897632876346361313034799860916644668573432802808009269247521053582621832349481186803210593496707874112810095665570373618484031883709540121276374886447678661009578061422801464554778645251603100405068889899946423647283976078136597331037354382771530401277589573356932694197172888084720030186144840304124384181729318706053228101451532629037251154985530610465763350223290712674434897305082612564116382285631498395463382230339987417003586008562869702387772164100855410451553637373393371143487154364942004599808831425299222349531081356831889314105096614729411060675787553772770552712053181778270713829484440878086114575348697370767312146652166572775921898462580816166941402552562556312964741268838325002289131116394495737916655798137365410167866833728596126141047381782809311083222573235244436993385677454846119165646828962742533772574920958146952769877951643509491342831274621709220742895300735670747277679048110845202351326672547316034150182970202608068287728217729804116545879230637914707305642949528006201645332547401980091679796183320185816587189443973625638824350551119514707394892511670436740196505777837713258968180896147122933090577453461295558628987267869255658467137006672719712270592301428586882140691434272272765707229578230014904955341667238714957307571490655854983867826667594247123360846828147203481772490274959908292365282792091265671280447746858318883665180423905545660689250680716452372672020750264039147384857978441660537209362528001621570841160145372087061906788957424696213365195779584983935140555250310396360526887441712343909506126031390327444270093903947299631313994815234369029348536172902818989824529273819067605068906992665090034071009994165985490300372522753393579259739289905792440037999320417152386099818513609908002476446783977550402835105918664554473561902465703219749617908639126181517607389062110198629585775853172961140537734653549814292653046265493149924081663984420053544316239023234759550662365671029493700262745670336844794905416335360716386495167198852577804757940084797968282059689858693168661215519979261548954553493949230153429855734945235635224158911570967902552762079663941858127915238941335527866969307345253013341374903936256170077661844791733587918584922812827929474466957147740645977928169560498246344549694462747761238316056114152606151744608662832482605403472259518821069316368755505020058608406012925631401104605867598756283506463770722758948790125394483682379680064502527154844238641785661233461176811383893698460798829338879656783866573914770636675488950235828289226799698069557586103909814924085274715586185263546871234227653477365822165133014492917578176348262381237937088981918006266274717123971479349969419862124436069451015137846265607979039384473309951709361706155620944600253246095837612663378643868927696526438912170508288702791664239042431430483520307987866585079708039653495664094685775842685184246273910466914672569410326088571794945955515938702914167259619251002085986121746343203405835375416938713007236369427607966543871180352071933766658457703196866411151115654753294977799608553943169482006072087755592073592806379548309246903339453032484829268864502823492979883710737249366465785841027013235624629532816064441876397107343411262991750053573592939492613547769891727210199480969114203121314541113129131186076493394675351706784550915816925210670913795299892030716863277263480821919781556684147199311099865598641772127814287090469703586630183641596185792335532336982391981466389192331455306947948406933978489531568841359338009523640206623880668379207249366088743457197445361561678424992533956222311384646682919322155188407351769749466682889298512700052902160336323549464815839005119060959833906039724589291845843933650784427702135049199963706309894906705759363649694199479122702316605453188950469243321419238594529363343556930139569141502885824222543199896639588407429468209216385179013904341388247880311600968898390511960299213925235128693421812706631479285661276885649769878453647352040424561268623707927628011227929551264272313296341765750401985012506471737449398267060948135005230070210737191225998412899673834804692647196076312318494221646717193807941948093749227982923918470386111089576877020517189715299774060253195877766407292660947989442216628747048726132903920297003556848324683087640083363823328654722337566511324574123659431057574576739837556181534257455579717369552727151180147712315657716831588142854435006511369959426487953801019602283355361387209547512705362360132405990823038658219917134140134919140602318681212604200024072255311024419418516723978674465363992068916477043014437035364709627477835482980155743263237961076332399897875766293368257161868692691896059056136184556848046076993175054905102724215144697760814992655054123906706324763534580918349957679099236982918825619616718773405513929247223900344685982161090411301585328285486086568939437354817373057505281568697138119833201090876069132958313771966864282369214453622295651118542991976642894240793086914968119915603659002396816724016845401886849766691685454042018666536939054984754980864957069004902064208687824441786480857229687554834751524326876742531541948164259608740358940855133965007398153290932465392211990170938597655058696740476190632526708472646510658345870741749762853909164110137206100993827528466489258475702313539719982697262387592518433195247533389751174749133560335882035447716489067877096173413777005140272302294386534513343094198179989908326267031559993601346445677897135474431977725255479405153489742403013451984175494754836528412557863708662915834333640806775459635449540174375239245200852903930935481873941517520489833142808810478507782151899507440050318363708285445743963576590049822850147355878933975637967459778957601238388031119256847407696803494621754883669405843361786602646995811190205087560986368005773312894510050152806176263375135415436970205773643233897444661417485307661496754308641262171708768466608664051271647578624254423805598426851445204476548318469622287725628120323711851589302140255670367328303506977893352116433075284352431740778801210574050818826945620018584873484130716905045780695171456533101282011362709525566621513956970219682110674305254302837521310466354052298086983446639276807852021904914636105050615576465852138174967468569609773653083012592879977494324817073447891442804650092574864220693786993776637731462240163238320918800012350975194640412228271210348003020051600410282724918203744809197922320748433794597707883697903921921427161170664051120953565624721498298666821925552077077965333590651132497966474264196622342853529018969635521170375479192322746819827643887253714274312501095254593547558655752085344460558770568092495329822158601422277833434427305439246387923460611762822830540211644629268221407847003337898826193886419670267630810405310182702143413407786079683017757633580111642775853109784117257209819809896221463481493970099931960033761965933227791269249388218669740211531300677687911816303215147545804647749858104174423209954380684473757348888550230306033498718305185161446841920412441274510218255527357219276970272800474581717194141698834872748535045641921859162497429086002050155719155078713807629374917330075440838802046514531501822080298317338070592061738784803532463770855917626225986886136942287617432806967677438800879546952007146722350531178757325735268019532517809595742966715024497229872819303236729120175805509106802003298373745042999214222502152463781878731968861028049165510394559039137120769656673445062700194210444677695390194011812535917357008531480786637908435368773186733530476012625991620330350043734898469061708546522330667548274986274573418031236045377572233435085358656054432563809176899900334304014766409409525575161453110302241414465441916082196750699282543022239246319452374988278558260826864404581538882453587423804831860940139350154473412971264399635575816257923732419343675284348223210719543932889095176294863404458497967355545024546654507663982670348521254741737317025794764736497480165020565084317464754849862929252291483246265097751211619153658329238874589254814497731848955137362383706219697853177412025319308077515581372566474205196999424148963931739540028810750662611730579740589297647279205943616512487367977036835764396242399818634534691106758039510781131771382541127580600780223945346257345549285296088195054519563400602499480839938846567714506676114658136921133286273235940728693180792217325285305396489810481133795249831333269229625205141190796152334449200715783864309523943376910413736917636722410343106050271804328215573443628155894876176485365802435671113198847878141518151932873407092864131783644936387063612579302197093636276294530526636263311497137351443146758369995056048958431711111652889230371976003536751631753602852370600020121722950442374273557494947442556812214119881080547627367918395909709161837176517055585284025907805630499553140619285429945679416895387794430108329981673308576843107303757424594367528667611841253335412826816666019606475073981579657812109651420603695247138033171131430022466036910339659799303510287749853488177908853684017337126834994864742938055029661314648155913562926382582143895906414403153483299720842493202664623891021731530231508381541135391361171092595602898302106875787852146391245497014713800605262840430135157797262060135692809050450513542271162300811832962686241843460088893733631243987556547465907742494634435814624266969302674491071112187910208106048266672962932007961478190624315011321568376555777247061006199776129915880258908665785938695506898835406426154747619829201595688502142815248725864145155032676920396087789476877741948641940705165063641946086435708558048944639214412415869180042514255557043877129156776858568260965826073097934673640860664793475252341031444721136029102553807221231304500305990413100790397076790320626681742227032032586043410213283272977756795681131065511681390636302898919416134593915957827223170530850546441821587623444708061522459181451864551333483546455359866096410082843262761284207989854210207959263927650589309885322852924677354257532773801516968590296847507114063842362779644468464396693844439392229466694250684605832141628182317702212220242418224655571129247637889640933430964827172846373897657274793348695402602725680192397871552489979022830319974599357891837163044003891152864881566992961583269809572248211884440089540285650233516798962799325178841510355871132813343509349716365326335767838264383882338253188766958696692989817615098764535597021703112492290581405163722070312940028480783738118843765667552074214092619037804577351329228798087398797428758388380534107022511219260688886894201047560730412947129426249634837136362720788061347207336290548643984685457053782091952469297924496010601273408118246952436996050292614065483393951225948679268804805655464018996162948079421140162978738424676220449195601336525025296262238803264331397220117326520622167931422940385911059028009657181675341092214771810551088046249322747609306482838267876830021961462277121455568284924550067578624129631446799465665385532250982319437963099350424985116785309718811346227126853536029882334117321184374411245560704820934815374449698934722914415988742401839763876085549444853727452638915236068699215481154851502744377161227010374692425201083471273874841041055603348122647457569436240928678311816528224322769307811251573055729223273560828493959399257262898451148167097885921244881956128648349089438810907324169336179500438706587589059985283645075989475296923292230160033167644779628474670440793115919211622404483453224060132274375539886783199552924148714288352869259912268544224372271997965789542564293212679437744001304929412884075666625679477446445973440800520936757194143664559172560592798841674455784746799620056348910938153702724439759981860149184224905928591110384453842219100919486619265304325933541824946636057684952877794985162019706827770537198987113509072539752229336587434267024454277441160642022643016842660073874028648965672398282422793313113337684442461796201608405114980932288660784921445690003899982366717584972015970445326213039730046521402427421481451061707695640000137677615949180469582226561371554808884787665151620948727754340783333630577822677701651803009409782128543342890852434061548436396063360059873275159375476801765498670694142066612682410372343251251226687482068368465736152669876423172845166918022622615566588853864150588215305462541178298293365630787860672239384522252739779607632475138058709973960976935599504414214216296491283872222551151996165097840352651854758894161044703234591011557277201349197481537221685311728439916955160442593846629330425305029277767485738120302042317893536533116621461698474690453602440734873185405990697672493804476673193542900429627506687038893929195827530364502724365759065439379017035994168796913043402944198967223065986734751838886987838197114604256752476098486588305045726066147959690786059709441815552927118701598557229163537732689225930903148465343934881942480042736033436428783428735981589999079966608617362009409494603496643653701144501451643502346737553574689129357568753429122208854790514587180839643541878835309607639198215105990549282761620949068239104170770129296085815678824786164495788450066787809316553252716222342286906150681724359775591568770640494687346056235929526978052092738170756805401028066751483639280132035192597237562537244439538251073453268800925763914332913281088711030097157129358503845931689994167344010971586470121153336689962240201560905572142924823625389553638921192160732995167439169692632360916771867477427997596847756683973615522034157809408132018293633546584511650496972499418771203988352624136954251256730799386498189560842872380069797908478417843075345585297809061079446871805262238755852462357403912230378748947838903884307064956802626100547668745139367937336036078039716364576876429400137416011572101424225688415844609105825295880775775100764994012328013579783963020716367559795940636477617025501579923009789727148811669242023810372814497948303663925764104701816126451965922558254003606920697094351564200748935691872514541833468551719682997558054712312383491974355750674706871540080316472391264907079212919329505087530422598945096253936399458717751076682203999315326283867512889084942304446554651197817764040575989279566860350856185806640076943672908926402450458187759120114087006696800856837860689559201792270684503999882495581913719593552443607373535067244116521057548212311363739404730483611138479809013486291900363969096910303639061408013016778392531182971749359575389261327716741687398056357650555956049648543400653166006067948140424461380797632955044636693401081492258536080385120932241962745290830650258902825332991329895543200995861467493702735953241753263600742285771590962461202201714132022283110192845424227642165576976923689565505322418371407133026835743548689551468399166923643148403236967603694433382303596509333097331189083148189582178545607246291480250457403207245736259948942199667946808522414696445607415874094432123107775620929472711085744168543420450205468505050628440244023361788830437786399269659707189924946756832123019466565089371777597582842620329408369818057926539351595917285225696089482574142899833862318750852084456642829982934726208338574485423715204041480216226872726995909982941555102665182670527323879635565161588221081374958570752188695935690476528657220526840302171383747260965032575594799222431274019977566366742965523469721515887043599247745352515679619876230466696820500109977389348126744770038599868100162451203695104120150703359069888432417110285961767031143090690598244098016779465935649182368301781759180470925350829785226091005917426411186929205099935536037310071647829685373242911176927642242783559325775062698702808333415330828230949962945991107232794595423922636984232035818620467352654930756396574776731498491189311540835473920289816658895708081434968518449418363177257864814566760127725629619995639231380244403665740741303729297340900706222261295559509707497341816873126159780567124618750442165045954335455903222778749099282577509354844247388388765828604325477791830474271310379750382324932631553947602691549594306835125700150719770721380097803847422870803017803787427356536914128171920902415302030583923009100684378311563440617919804676325950951438319604884028112050874153105271293755278092162498742852737643970672367308934781780623623870747396704496135120343981941483037398514463535116379244259846590798773399260578660143474407481871134319753471995398229875186356117066674643257335121138522986299905452504829830922929773873186799978528781157617088744081147662154743313164249902006203724602982434570498393119562291267670011398039655711100645449315481967174320096873493373468170194903794057202142146609130065600842111798241589942830011451344352519674257462709073133857279654929045126582123095993926416923251185623702281521600992666669316812520437151075313591829477322863726782058160678823943258962405422355993330883403933075338518355751860152052004585050976704833421801190414767254360129172626657580139033725368784568518156771046295672423857746522758241091692580783509520906434905846411406321389174496186700573735863888689731669458717391268469244601828660927915292690448862947678845167390812298172186768999779948863931055339044619857351248617607729925151750080270002837876603327826027127893930292714120243802452655648497046666560244490069477803292288131399922328184850688350493446192453176399397146412655147159957512974848376115322920417652730817429624485489037608738425472564287444333849127713033455742821759739069750971695513663939296844448422820199762601372553145896170185552372767843353891559806221823595611683751926751349286120366398962089903189299319184186178565929021590654728820724054932793022000059281880950714187398007436319873532007766403475970524259160021519750757125007852214774407608984213338416699918108408096433098015313486943637527687959696018536562098571748537881258831156328281695776196436496235920404260091793059270153768842854810491139014475527706867126372168002919416683622226403707310762184042623879093898895936929668470925617486988713164831186608449597673383827241528471768512642209398832974054732705286425951964113084413488825244715426817644945795398248713314726702868953946474401412490435008217464303544961186664830075594988309903496795876719447353497134934860847583457996678290604723874432728842609525438775390767769304999254401893156016280797298157008600638242973818097894048071487531697299382069932019988989441137907910027965708852607430961067872083575195174668079432814768533340129137052082008182853323596870965441374843484170514917821017323060262149857669613315654710212046143337303896952322781239761156700418929562956099881210037812923123155590591685206916768392838725284639475547138237141578263208828843500823642507335535759707272506070657201610731081001966805420407272634224259022919042803043606105887587697311343443921964092639403392998716127842109983828735664803581503180923867473209513632914137690878616324942169476651699136712510593019421441362270239139374704149662184684498729189742115278977468036642383457928008227349744592450064745236556322973823270310977345682564212302019850746649792038210024689725994474213896920414897674694745304100901554166200560612233610935444849584120204318588049567658197534626855746810820946589492505968273680899730654199256951577934507175618844244557113092993151604426792116761187901361509957597361985606671857460191159098091409056243669682189015826452208805404114111803840421155185801555727844989608644462495292518846381208279627695195561771740128077153742629886548010991315864399189701286039362887473048375693714221468254546102594997376705373845270591744309193501349079513150436224973895348947739652825015643292882301392775610737390252352379134420385016364185072078595242452855688385627673760728902193660301836649709383626257284755187601562745523192210087910536636499391388329848879149147470772102231535664513854598803032139616154306387177986737336929202678133403819162792262642808713437159816898356088284443656538920241556528122789167459677985991322979122010179657495271945510645435227544080389279449574374974257345340989443243943218905885666031433351006049550830699838447441319382702652774965771839033545614199868654605304461642111981618324784700105310563097390056519368837941293539622902955771663099505053848814750959988911774892046327452570917708754118422791372281262233652309842887960934008567564846971530271002882139396772495085171699673053964265453525067613555450352738218401017383123187423526836491354276560826127603301341271414747412720893644852380457712951033595832579210539199001000450682232598281814195721097030405875461318159540628288170981289853411542719367657438962541890220836918083746942975693374757149787351382370011043380314750431817624878216864884343863208961698640244711743933639772497127597753377148177506515554829678690465502748839437805794049330922078820404499735877629104309688379972444478483344917624403321371061745620825467854302512957584481438303008291725343629796808597085358798677754353163207814235695291594616428806150874004877863858651437735144056649284319082619800380022773566522013801256678543142931987312367236951124338767173739174412362644846414099678873117320026400266451359036770160368682188626017229832948495818630517454856329614275444068393525220968122132825022499247602777711788250522415000610444295259979558190873542839042863126823856785924329442669565962268296132206504010599399627647801397991226528784555731378774363768332814533122498795357065365636885554337135752959586137991221754119704413746103066429480244873475393771182392289463107571652490070699588558084884864938330158929156662195135994342266823173333159290680431047249167504912257714654856413633985488644886149191165600132094999128892436422624306585257295573193195678289114683549057547109862463670528283574258529535429865912346787868446176359776837069083706960465874033157619480588047454259264379362837349968071617337589297020418321283552210640537961936023811612406613299671300608172652592390977089540406719020032246275394154248009939415282961608888809265611735062349116281014650920075336735676517802641010512259836967097279997445610124038187435892349208466133005451516107685603525590941498014346996612483975638479522999694672338024949632925208204242765582430939973101488542619191572094695884810323344045183364439878942471062314055629585380391639881224138604126442780296444101643470799522520612192166025087079789805303239641747574752367814033204911793332722761905712530618087204431216226109552108912607046196797396113869308172282674600634415768028445437038619715723088893500190241617425359630579637463640954701875283291413971179369194768522110604822460868743977942601997838567350537100207461196975603980077123158253756444560266829921391081313271124723507017344267098848215830546126429629356777405637997579507866284168404530020591841327750960437398252175555936223360082404475112359710489481645963561488022296630817994687581225192471781637928405321397523826273026325689198987489341473647483098446276240921827376358410928952879304715320667089440086954756775421436882579555325214853231897533366140377320527235688918825914214656381036619021620775752286775345422936222986981437812031408948770012169683029423392428167381409467468748690753777570599485291187567238089355566753063878940048075648947544273361877394965530912452713930856569209911054687999944409558961113614367394191660882492327846266954773802284977225361648399700066689891486926139611800851852938924706480647165595438565481310177904617365852694745854634978615461414245199174561359801146869091848768581321729557823788276269188901108826599099620537696616054537309947948788584716683627234935960817055998964634897552519302722416521006112396179355850375060136804279815001788890380930479426690570716839436548628957884430626830174377820258495519053193645335894709690395217052527964041149134704923445118100730819804209520988558122302888879748524245128161404885160348059869458033689429677127278502871867423338921066439277037119857714784792719382679528175341235530472198316563354791350009170202568179118926572986433942542801849465953851534410595752989394695287179531627305705402784379522810202643371303396789911330697216238254092312421716787103323508923308050241518582118070118376599606358249709966831627321271460308232606043581958219929499441405177288136984867408866971272877217572889273057095130171593489718576311849644782246579720811123563555992909337109833514358054170855352092180889409709024182529834461934682955994698840537686410633966640492981154866449178514038076789894683352988068686819334609235262671510650513767462172131697700494071126116855620712777231972639801221233599144502049914842201745505046893231419328238964865488428833068523654276643313581650722755033666314279383720117932839285470133236650436290868947525598343629606791220121328224454828101442837791232042790846304949746293536548870474351153547943206561028145260835581602200403474988369936839567679471548679884956187211062080932540650293481557416753978038173907663777632365389567181182969337897671477919582855094814918783375831445019158772992791698307914094269042143794631376398291860385660468046807383817979130642123233003109319623725938596354430813249123586691885400039618885278753907428374741056134379152077755627197507003329421091519890663050896215348695351958061874053827250257029451667524702251938314377990110118294279721859780621633608023023340097426564903784976131541253485515623499484591295334751145744760526954038455485354823393831153142668831622201388946312195762488445582309115573681004606449531961730350747405278232750385147301424650002262907188366010031092940762801012207131595412449520799683694792990781966374710835743468911882247633361477841096802555754071932507441604017267308412719187146610539396589877210661811113657045601919170848367612813977032314885697447772991185562587774454500283084229351284183974701665766041938553976735538403032152648588306790223473947109761518909333040361260192891070433108302178992321958622949973833863450489798568812427291472644361985655479753948257713424173589445057397676713921746417043493772839504567447118438802305349597101044809406569402857944712271466650394243809443317455013641791563031132071092738255406501323876313452613222362463796111182367394474898893560254310419651999494494591187259340228155198277860471208462406344017531158098723043243144314242419555775117592406229994760449775401038210005686526399906000200025293435632505248249174967604034913189570827281544630928577235934735393611220570504453583331083917331385427280183721003948127028304975663720110763178408508842607253022630859113550592122110700300545908341695504183868690328862374887157955790914435788105291725886618847029869146871904096449758849275415992001678769004230419272777598493663374635864090613196958681281545952230042859265465754362249224021575096718023967075240669794526434635416113829761857906361267166613220096539632711115659026547769686228600596860064104870132365925392725132982068180517592886021673444737695760085579970085917762936838784134840579416898935733656640712313898987197317044084455483699111655205536834084292235135454716137690330010508436899375478335734929969474900759823530087960949272085579249558514132951282571867898811547777409132566976236747031538909191932166807269908258640079100199650255521459956816925917105193990300757587450883268878104827697704992143736671559845173301466791242685851771458027837141586890192421375075094981603521176765214429553924455838632935882214854870810774506314251546956615557813525189413373167337122395614493228817360541584279210030955022457384076777946409102875533579837400352449880834861721091466962387783673177226311766323069136901151823102116323975405067243825444651879607877679685085210930148128704338449135360129239298029399526357910946571302007264223728437214146923856514781155456326741988052923025414049078646991241879773836555543041953327000511020856396575152965499031112536641900289724996658312234773246870913374579133993170340526735645538861910866152331753897645278262939669931933434045086907075626620307927481493414943721474756817489696628972382020994264959693214870269874488618227017914957877297718798754003381679333877846058625876252428797094913699940230382728947603867393456851321451988372504975788361584027384724004497455733662241129295528032791501032857772433467807963274535090646988976143221219425449091052240914855496425244264775436270355313992781204240706508607094680581019248429553827733358982409992713321964545854669452315431629001226314409782445459119607632019348382378433610697933831553482244097675345876966482664117171616346024086204880962666008847895117323902552851193807942363069141778506923429409487536796724704351324685280144504124102993729538176769100295391389992471904426478526568022068913849886554189870875468496954109915261749678223522095709474359397426263840660793868410101132389121308884260089487539727895730252965669256846622823399404640999010088538987743314131050738527631505361522155821629256169625464390333516593111562916872100807231849345309989789320863712237795585136518724116905249650183554441410215516966776139230494176944595492141001329277049488015810689968372397191199993219542763661380028487477801154449994810765096820944906310067245694891256131963024796378712455448841742578680615753487388332542063749903406478827590720995200889094874867686227430920507036306028247306004542091146202165744196795048671721517187998524788754908934415002267167586168621421217127437504599048417357242832264042938361169447834226421912000767210754150728867471022102699102900169845668265913425373616183858869158394633060986649237256216511146948602034738998247604309311651754216273045432544009957888703580972189783884003781447577537419697453495289642941329844435441766295132735581841348726729517182111081636326597390304767963473302500709410485759355590028976226267079063502755916741195075349715772528269776939632279474409573629332476427832342544754336325036429411081545760565006155386081562596999550571277873875365274356033528065905139519837995921497972582411397601882337636563526169632716090448033903371173277281107917880105186615219718948283607835895631161483464311955389772090104226650236600734641189170687116916058707204615216281360412352694039705579611081820548024992650547409964533833541018070722303623335225937713198412590946575468502163163762044539978198414076049506734603588298219609120964830588138034776568935041630383272609849855957768457864778458368981803855431652603231450885600722958955451595125418249926758694652430141329242836423344740904830235328302641123041702098590816602489259092551869216470156371245300610003285075498864861647201892220696984361101998387387186882731732929891924494611645343166916412057375130399201503260907474786644734871953960849572383292384733162266040034753078767368753701162500635547030888695757007250496542094061514392196526787885207432727252434881003442594969328148199224874327174741575793747764952219482053664213243871963044202598765596761860144895193292965164120468270423441644534819101295123578123163522708349809136184641296376825983986186652742968675835023518374505849794944038790478351858938983292308168739957886776738196180776001730941179946965253342833528127709277006630434028987862815047569143664232339682550006739364448306864927813267664466414901956497795616187437011035149720680158173118166436233178403358858998797743432247866187200155330036062786359327813433528210337324707177801317497815108498428480739220431517076458084616363593114509261378658994691176229112332311631717170712936614980502597093754811255667316694007501893194542254549617907751964738144039666709939551376408863963067347929804496913444038383265049133856152802003613501434583227586263141907543823576961222667727548659575188737486714800860920499484599142768574044625407712039909400707595900604801739965104641795374188532046936895213950020966346641722424152514482555262672454677959128088875955222271123046376316770796254200633830865499960489898851022564074296037146230562817185728062069498312701070976737928683355752453038942537540650189428836957080337430522406653755760834905553077437149584973512954591246768568321515874450934342814348626147725326435920126932046998477946748993017455370906562096127787756427392995546554496717986490735885297902323327861050224367466281372584795313925608053852766469211951067148561700060494985736418521043671087763722769421427067644702663796094701940790309961618481270045356536518390754431176736413231435413844818970953692080411157448749753200745126459462166956869921072643833966352692815484945001873467515478392511596019304429249434870610516452026940185411375065171130192745758943251149736901651219230567877693112962984333778062814512248995859693130094265898856787847059983848996894990649409702859897502044827963154472682521848315982396223174842175553173391582718529242714153862717849194586027367673978117547126246193552365178916089070239697542659195910985023502494259689479538373160195105229264831248269548267791775965458946027874361204126171893722259657056795115223024151344882116083439962226856525555517676614670831077186138658398266001982278733924901316853506662476047685520472748783970865090554882252390112372697098869766592388571304527597820212242602783391360489994302543238958619394030928550247760470666657865556077905412018162351608494347359565878060806532232957240677171244601570913377042135219016196836457055890177919256986824588066382429668002310515612644907620258851673952715849320307941910887611889186448395905307270295961818344391922356963122775703695285152124857015636776507512946167346836701725474031856318544140329772399210179047937407985935879204576675240056089274166517994659877102089063530538209060355025808463770642814848207257350887314651895830048479619005746618596872636176457032929719951275456883066240693656867584105399534664674345134407012830506543214928862842220828595037871918795618590991735455281432948042533914353144218202068028822594323047608281839077802978946509209541283975848087848654362390623154864050116019113478458250204894331377384695791224454666456830538451040757197794869456564057279928955137163120123867823169600192279097576640936299472514729511288694997661409445317737519743115098424123316450043830694997274047177583782629034934301247057427954910320472068084399899164818166408554886118734728438655932755803685625073737226198172114422481361500976076831393336296131840749194308973539057550081861432756386886897563442400654913420832708049910747407112115629605267260915162307862186484042772671114856883313117766997208695619677572868694243009218881639525124254554494888911035266692383207899305779140435707873400845845588151648383174693341088535795733114963644052934863966997288446308859355148680899040315780569373459944094592937097641481287967725377538797244954090785047464775845083535156997663888090426995747829658379740497475671791407463403638164980832415690718315278855119043506011246328378758000718555693840061974667937814960879436250512716486764843081405678269332662195184931819836903562196166186407300794786675851156651139536933052679996858668315863948507935703440699814238742152289109399032520758748897192726858416072799680364422187106046020723306951999168778408533972494023528638948038649691015717979136968012058195493818914160062075497016676151255672894697943920040333598565257878172126278962801645349785105986634727397121007680340914750295880430478205161491191093963937050336611974680741034447855795846089240657577354034908619129177323035517790053113092947827998782022469467850150688955370118656521184580893844646446077159270535530945111452318517115631127309350784488774876394361459132320773393606514604547230640116840209198859912760434464424376278368587975845537700633843837576836431105149894896407441264095756923155674820735735705740800208447282768761996026718577519099387288817294816337091512708575336884050074175430081875937804224152076797551759632761289360236790051022097486092530676100045516724132932645947854584593739385610233870689681345385588179009214098655725234730538151997861944416839731493722481363210443549723861308627323738438824823306505765302644692584507148871184695969309721211218516660626851280811462678348641635019491360699186130811710171006040651037305773302181330927398058285824619745342980941389481478856367363721352836853804563516738500174810183477669439824620353847589800453444888541515864207191117024469457261593997320728352270537996595875918271417361157527506818296291198531433623776775999591936002133853208276071002819424530326286737921218705505215033752039934687187967354793828340591047705943188336441662491499941430913139749978843167493013558944398104267527613331566244771450312590606063797359726538486816905128133219863959008470841117155302574857339100562087046620964749552941686658917118228697352039238525448035378507238481396401364202587844972246964366122836686977095558372468349989666062577048919310874085836460492284058953499241876413258379200466994317680026710236576602541652016947074882622965697944263102411512825390448368630153387469032211620790315843360719887441060147796568708662694191839568086880699477897737230650348250280196650153238647727729151874090099267743453793758483606872737979076684792794982668864158029839409651746894605756181172503438987864886375270302770430330056699957225263165829341977283257719310985363493261557078617204917681092181423809141326866078236042654534048549990655791181258655386800873674847317808871807730960102648731167981029217859147734367699685827644837744110648423125994275055847123870137893851447284888452228704532829296486578541730918412914333015901842342810578728198896269117751243913814197157330413415775233153984949389863219330109077353054984745910007325602667514588072809716631578236354673178525028943828629684290870956737263125432559711621599784037946161846899626927670092304684316202523877090675343592516579860200712986438642309246787810564024807133965007317938885866546830958564630941773130469457055218258906609372472044467771122368112298095384643354246473876336712040321378834628755554188854276992961029892524411291433731674247358096825318209895069815661583244399675189139011346516623231096922297451315147345088302258540180618123591276825011337792429577046053333329108637449450301368081762816010390341983973717925521987750499822160567256677716369498783826542184938077569672308094118520938578285575283920648127748095948321952718017630652118648210412473280549654358870167770726476294266621408368537832066114168772390606720513454656142385256251500199318582477142647760529686659450264628394824007809400450020496555002723159600009107304222558221049220156302840916173084947435797103823045629675848104112330261514377524546710708635401806046838819027163733772924082160734725958195590076052257144601531344110817287135149191400402906424128237815710316197586254322220698635180871250701431832839345072998960190527216911745029817566536428827818060965443204828479752853526961551099746998634596496304846802124743285530399487425958164606046901826023477431536280926270291671776081134501921845310640992972222495492033780981476998893175369557362658356991610497121377123195846374149158779329181459735998233925631502433329143550764881465278520489189525025838851832322191290075386935260975872276710856592929419868228100170577167729372165870443225679611496030401815281570016773277223629920993867093373450987563349210677036720956141279082265604603626916692761266431717524556335070676838463462075186251791364923721854629031332390827513583841505049056472958328034805544975621608221132699344200202758580597352316901062239913428588449400601961249330098019589848342123256007654187836763108692600670301649615391609071980452243909071256547588585734932129543816897208379602002099283015683470932354459578591613203917161551598184374657982647720743383231559712976828441297481420339366246261742005300339501301511906741469575152961043793482112778254752545188502910519255128684961349541060743987852855289970854741783264927559546976907882314152415231923889671024964009174575818274046716967074276630634546251042396651494677673320110389861902185865282561802374095870058059527387503120647170964724497419370097139266046681905983608288185806946256486195472290605634554340212114283941466275164877596552730141557032117377347669700425455848265109644449664809843515152612096404407152225377858904753983598807420774120490573665725609460607357036057464768896579336218451107303298149123198831758142505868684031860717364378809184834958342112711633528432619043127156460831095635457939220754944314207206013267029929991712303954829418077941025169683377778851521816716516867413365472403715015542342426846573223853972849914784063191749539915705333557016329750231165415200462548230199399060775835602315813252632039170225933487633842276578990015836085639654557153941587532900627159602272687975246826546910455777173824718545879648310354121312523774956680322467001898019652056442693730116439395966246776580635722879249982475961559749318972908664133084101894202446031079786022151015359784652121624077805131612577853422300985469605635857804311454703980834273692789959187827024678023281318706285803615560426986996852614332820591939105984739434507299821711808894784220272540179212121887802097337762425094295913663168776159206274356972978121531155400851113542973960466156248048019410554396308016534804470614313417734438168059214642104312950059663703285669694609360424830950596026372417526485296501562846928566202583309410638035085111316527915410674092569818477070636715843686175362412191208657325307639802066687632421946447819107775233531422618323186588754791369832924571557060756614537808965003851735514643505613867631879266773642573137677814490079319391044980011288017511270721608155845468537171168978260481549428552208704371353237868220913197810830046157516616652369786273759248938708716195876717109029250801134273781566286129247303629110444251745077217629522699578691532912020590660195428445717058902187654592425167250965018503460316278990193508164346914393033288138234797638555404457799564786778636817063875650702865024266879260729729338836623418785839340678103074135267277777103828366778759084332525177348891346243545092040853006004790141020977245157098526523414314460671338084903611784596726707227707034187730541499224699036117551989765354169054234777494033403571681925565414915773587279197613389426903258537328503575008562261047818623642862221611698430189324309284787580155138703539722270893272562572018802789688533455540537227920053884935473190898131807196682726758671262160119702043063322521784039831854905463278492192406852577763314690330942809710246448858839478669940579081931315660791814288361413261213081061941366799466271424962957797320528513663615917205851783407450286678166134955635838127921246923632238932132984232502752976379822341266994847710473855670082404769950124579284731939771693252894537369326299476028795201283409692099179645964540729143090336888122025721686201188587613388991214114398752697626590240890861626676210432618026281575227962461380277980341058184289639868109984095665346334743773967464629220249727469261766647093799182224248169730581751696557842914890547667129540666325082148341047087319861987030449135059374166246518842709808295711149351979170866521056940413534011324751002331888191725758664864904475055616015201609626325839309556938382345085080604824158232048878760726696549437875258294959927481348221017684162092464761359249820488898183531918015404191560930692233852906922365456914668504628104250564015972103612436846017220891571846084160529728164781241493868090293415660189005395966511491757217267103987288844553248845475838391891135140951100817272658417103651280310627945413218337617543214486578326674991419768917137178909704987230163712368549072931645431882073775266891401983518617156203924553497120101770574046631276355247314451671973599048812521367660132398074927570898903007828349760494845560956923484921147726212105143796950340807486809859220883481341547427298495746944469367938458638166548704090125758664560118479363109180714174884858827500808341620966051667157291435790625059648615917117387907036697666078793267946245985514908738172899660375992421646629787683374110439955330189689520165446687948173963034398209393329865949795551078408424311303054419788864210509762492034057203278459545020687422592439733565396657672238623340955908916600470173152948064880128876037644811800864147328551643780736654148335602678362840633535509641634332959926948002638829498878437524040140863728805663280387341352740445164769042075909344290022862858992878660153287889794852563319778357524755609473103348270922138456772096690200018247604130378995369984235979565265721870138561687454880732270065819167227131892628658704420003243404579008134432044237456338159467004453476997635482092338159098203039015110842613188158725929271427489398284735327616284823056770068058860437479740330104109665879803449630144907856958379968142376154673843341429824211116749174214972753922629044246254011655734084441445190252684802164873388719857406104985247984227968305273048634186366374194067900970904631707028090459574017749148874671629684102546991983626892107901262631376566269782999910404566020163294567222870557023253969049031351728503684679699032094832783840901696310999530412975818194808769918344755475013500111475502829009259936699012117237986163704879431600556321303574790425147311831893683862638668411514922025537667751934045280811850806700994897488066006457785354586214848919013099434506312752475315045978307751151107977196196858385318952470192539301492126389414520176192338239452861411566191230871119388641301888424720315155125100362812791534511480933187794016787858311074146897448179995329270152728752667409133588422632648704346535438791682193734080805036018698537466208136945066814412255367145638011821530190621169521144135868962544378210620474364898159718234878797432567797042032311516906269874254990681795697418567454563106121289196249686106948251749174218154503970752402951701441266723514491120062055545261723884208189062431033711584830920389931800602150055551676699851579245940094133686159775739761255996455703680796802606360802408720462877814501974441928860884591155149500798704607813791409418148336396016644406385416302969602879268133301189287170548744853619144085714688700215443021324457806256468841650335778474544131743237982018324562600825522804350643576121930666117763581144818083148198034235635248577656550001684789500840129995174514662380879220986467475767172449741127246300446087286298466834033025357470203326424059180377315238382380857919741412674130216030448312939300911327202053821124084867175837899628274568574178222822752587754435431158169118594814737878315805519742063978495854839996612703582638749292776983558883160316529961832706704115788625055997376016395249403721631801172437702537253944940370143862365769964820391936476161575596869017051469376285919366550925207829622384002749566507787544474245028264565635005819862318725541780718036548394793520399887305140599519528879129652373420221108576279265876362324517830876985871758390957767235082567122352170709861976412361906533194482360532445722453761926284608579930235791492027593017002666568995796996231056325364542081401963227344647740203427568145252098866370901036263982264318316533233173865337558404817351603192350989542809747855646717373708155099325879509710708920576559063413801449145641079780431362632643189271325888522683899889695309019214496849614286860307160349001674540034098299974726438207582550933423037142884121727144167502410916216310370544328009744416833215605702865346477757015171886865885230944524390545254164316522204759313324208718900729614918445835275649205703459230336087119183782454972925832344276956797757326897293969757935163755670314625735142162875826154655263330268709419487965526515314287448504014193019155021315656196724886279286447858618579793523414259345860890606514816650986201633220812355089659605958471870191774370682372501400347938078706491681165984240340226276314907723282740310904821674829250554456908260529350903454159357786896110848714535169580868566786205712801236515956396223364091605454652407954735943280980231648238084612159429551392079545123936340013215081807360861792517465214102833955103775657434884125095194387867149692098573454014468120179501555665502766235121205315234742255974272567471369182853694314941524703934437637624769155361045188469779505100472355476584351739874022775386496048781563741997417998875856417452135736273482105297097473448884639776443579052655759922361286381633447434776587409900236022367962316116418440918009624511507785802635701176915264207531818104255390342712648419256381249497930954140588540712701312753342332755364745306005628650398710038331113017271730801364072981753184791956529789622852878197524398975894775027815159112103047743697443785442577272306766831774910302853204027797194135107353079313696790845058329962519214944399958106035616025431012590777629514978194578363036129093478995660568821656072507931287540171615413551877288579534765164221672023767240799520050054878969467951423828541262156478266117201734225607744156565723670067906960632094100371786060073928232948085519830682017667259172706574421331548959070849874411139424279014005271544573545371720871776839447823313044852893394394975268788649454028608069087498587062583106536321899790551271132492900625417928716256968910350256141554255358060829883410162392765554900183695288487844903978864221424011601855103032605881177155067629893363659887521918390469579364161262122207240409311947365373852427120087101250375348397107788746500275900346975950852889386493542786604593066769208512979172372189165993163912831759227012633258095029026438739797452345738084621479100886898995416302111782085786975384277346240219521182678022706680615473404267353680049554977948322634971220240122904835337188465970134234759782461630810621439821269809667802139736337091760356021374344186045930652783576249844512455073753233452930424778973416351483332868626896375164512672362111054451851095253524036401423370087385975113796352387542233269290531396634662543563350286121367995884923060616228036123249593043885409886412583805140159167012206720186530377199996081809870106149161026354040529624158750674587416131959462494471961133216316432979893896245049498530015588858766330225636884332590856191861386842342388508850486792677145896404058001701781090207629491100212716508027056425297289014072910249390161094230375032874938239408958889552267909214530101477873133637961959523634088567278725887672774059097953696477731611217263043948423095818253798083567370652203735643610923898867575199827506929468135657484961517773569844416147142738884966754616037597565106281944483033751774408194882535698875493737939853679901544774880142795804562113774621380717797234967989364105138995302876636389564057629312053227680015011480376393090614035400085061082548744463162219221350437054497179821708091169467526114014656553832505846345399801619251823628261510370832620590014653081971429102936240098806218754313637325784822404344289173797811203234467434026448428633756838110835055188678607791684571405803241435333902208700870557578104558721380152212461574088857390141768270378478374091887346126733826677280704822277492583628736513510158076290515006799047086417122346334417107517043758489629047295258025562497700065715263539938154551354795491930572546789510262752712933686492664964445886839065970430824320630741706586970261097366470002090304453596346451852818587651847248273008718301070253658376720857557407752792124742316023779103305458944379886037150516747502191106705515680669850652903652037016517958171564672446907078830314289216107804351932831793873562525869678319919289315726203521513164123412969337801283267463575798247435124194716949030450921981744280836057819433458326917000261448199186957711570082863148499795938866836202831421166193848757463846184838668316057005993228934858678554802563222947390052829233741739751081192091288141756898654540393992766383434304391080972269749634755034942947709937377752455898594112687427047353003879762350686005123499994385390247363396690615974497059738204541745095447221730526984864573477673849565328754932168252585273737939032441428140166220405603079998204563615486800890084070022313469309709331399736045154684315401469269253111220448642439391939365615251402827580699854938513747387501495431891142422395712022938276851611834039096032051711719885691079461474926181647666981962181729061597730139873954661804949949620438091560482747924777089815188012229206855064152378433919251331136886344908090410901072840372983272869260679708518598680724213466290046307165428136380421835211727898177004402888212835906319946273202818567863579817227318532712369896158008701510496758660836559304708925701923340175135466023441720621788021477934790185990309548883026099615413922609285467193954270482605416336965631155994143325316541228454002844560212015995657833633891628306890831733206390307411672794589238173478495664460125837197352572051853894329129751471555740774886598328121682599324835972652156096898370416115080673269639201168771816661671071727136590829072959916855004220725257470502621168143875702902690681487734479455540742957397421358590756922751134344084875793007870804789374770164983447565619798755275519867077126401633189680679762155897258720958043621946537259998440238254469668159925027718346670541763876193779526049693639216566720685748865323894630635971483887408234430445946432849084570876612264811588912512294881186260650969805613682974396338502730748875817647052238917160277477735881636482066726763575402850359014755535149202885682684645612647716811374788635196714189952704473677243366045083402798424247696767736685627646111769689823506328645976664010257115764418905553646468583782680794008658898348608059557076515192615072961189940337670203165751023598715276435235268498389770039238189308671353077549352230259400563035286149178782790107700979674455391796404743002622559990458384718270753791631776754196593567507190536627687050006429554549937301161471869231584862691840960710496279414461387033385038592342833917522997988880629847545493824098006801460359270804753334934660250717050090889889894782712794714853126397168274415700017321757217521902188741987061212868425554895952365929044840825807289096789322133403374091486651874267196890448786177799121386091745849372425359982505172211426371842113479742171345865155667799423338256609571804962201198534582127485638813566373970402344290992149813175151253398738468725351155457213124018954631433409684462665195627876521935960907890237756803073975198660691888611014317203248285815422481971146092969936585526161620441712587306611810126368855446194244736237898786729593613246640967604424328455634497801959442204226391611282757444884601876499918507988091802728303467017092944718314555299962383104587306623751196670623172937038113003086815887697453744476468418438767842506653678522974391916779219159424400109010345765068262713203462929365657933099799559014004011391409687357683218593164532124275177704112577025868952896238883235157077049053421295563157814409464623540973586906328224746844037556087851413464140895713904473690594087055892744237677074256666517790800297213370959705936019734032689992098074678147166733197037076191572582202221229994690682081208349445032290853449462959018252605237344301054224001449752164225466455437877104114652337375436909696358517718394981218091131715235823432007858143317805037244162176615706609524082177457207505005177591727332793920952897922387903976815612204495468689737842438796242073556221720843981175363475030412327928602373214577342984905798343734029650017125620759230836347799708467450039347932526343835591728920205958423772029926894844194667900861792881342200006249311752248706468813156997202998654720190201680899240050508567916048683876826889300434886239730300875979569041309742985324904249835353103867661464032617759568500255621183528638189670686732555590347440048732759336912504402878268733482939450381372565783903335816926815551960914207604801796398473274573683585743544395361850538619766852059442509111671266252681357055601521713460380318866908493123074550912595318727158101134927994771011370891026319916623638861009032612383522368892587971405917741643575486945260878347895481910917119048063737142183050165760071286458394142580369562388632212925711438888358117937209948991882159010003854761816122390351127558704308664587896499985455718769966861934790996130101293320289880354023912007200147900096088200977162524133212187773370861199410548112285585468236119440532188756560582115675132837246093075854264100082946599622665968756145913687445556887577563765025956075393425782145194763118835713110854537163759535246839912271463068039512911066762044294271489453102895381487805916213137859136157724895036841245284389995020171314666623148111536915988236490121224109473347514412512694719805835576168460820567064033724816625104041894727448665658935534974896184649276601751103687123686729811191480610634726532370894702766824912852190612379195214908071557766207093392571091992896588327852868504225865781921185402658134902660118116583887286393688487095203166568117069542392188118874709876598876420744874345101992605711091090566436538914933088920537185168716774996489122011045992659796549551456437830902952590888033222068662955684365270764695683093411735821426049645416910147285682256327279446822259116900421368641537570069048669427576962624506990135097083262719711007633135540599793621185375034414341111652886772893009432468582173244118729590224020910629092781007015324218223000032871658299818649289742606893681325252189818501872597525250230439171981186795486477465715278815480914934079490668628402967139386191301246189643656917387259185544826912755681809862502412044460560101064012737940129928793091508895617890401267013885547950031438237405424961559581571659948520270550637980923122846810791978687422414130631931955598208698680175964405542387101248852891971192826208653984743041222803486129610028256464682232721218156736597307952545817134085838044159023320666562036439110755581611457154190852325149013253437568755691729109356390328077692973554118082824893871220838505625502426565579443897756789724866259977249605141621497750987866577535961875958875960369537044392080225303643817085740444166413128210051110410950356371947706731169848376393665773337083819060473783464509759522739550854053626038290097762210634499024984164835353939517350098127680480585167891670587383870507157194003986749891333500312223959145123959489068360323801195075214675934855253811521562830029982224850722404727864092264831692823286656368622798258306798729305364549510582466426782500350616952345958332220563379076292984808972315124044288407107525316780657420819476296948224278455586510033278094080438910821130530015960734869096702177300236668149813758371912090418208402568996311568217832751614264848416799806039940045670160235265990772783546101494460517870734987209682723350078164628391690954110548497036922833224681059185342469066362194023167829944899859738557391986757118306786103934383174674014107554959383556612035994163028260524786686805327726274007585512521485448842763809889067078217916165054123392735193744376230479378415582229104870969988814720908035430451588702915930477827574745339835969315048436069384420821295623987938383795295943808363586623730514493413384247796338631782256557067593548099200888472597808405042394923886307638588158801415985953683174133388065316424408431896186260455363630380800272312870400403524714321755820168669307430112008086241664343829063537348473041013834504175947763280955381691651315658157690110951437861670925751729005333130449150006503757280045475798309743302483946226145775573489175267689137312957513001325368130082891460778416195725694055264803189436695795916823718413032041012509225199696163120813464879889110125226910959900888959746707881639420520054163663942256501922989506777915815750176425718866881151277829669421925841196203118530849570523672476913501019957068156970046324621109805014702638891385532122948505106462694956729196727328463647087328687955066714762859691645137274431914886359990580722203811678055422086482411088875893280490424514193635087782315250871105085704171771400314392034434814405955094897524970223993608964561528762009252948217187273001740816582639801435596920781900320400186845082471682742250551056040748451103400414462007702527689573068970445910371490219989684836754631325824757476379584530568485027273169141262955542201988602765071158736702463466002225514751822972694841912758389570312387217755799183821959900998996477610460920874056870304850467866552235604805623020374987138041038762676749981304263580112019848371624539985562537014647952506577039938968558164627231962325706307023548911883314417652673174269854802535389564475145092777374659456931767254214808511758552045688489348270424386496339093203620143644734424297448690327568786903514939601756471854897490834311017918659138727335119014537967035451898963305595788243340506297216395987729667961835352679892391726733407248586531757315380156903233422710714119910559276088681122243467782543982629781028227710397112050184990957615683923278795835019824865391664447501192358578465987746604788445538379729801770760547260119491326378650535025605825278723311903063912020632775130646757373006651786093490833082044175535591054378439184680590209535762389954999241743885535217541936389932261088823395424527619613795407319514480116623035908766100369846308772963086119565326444439625173590394903724424187406512720494248966623150811488387281883713995845197417464153226539516552788031269517882640710530310210280885990875954463320789773703387980834843371605773873169757853157950133352141490570125036343824702595485129373936087620799021941602497364104800479380265330490211403131348294692571980227054200995728032979486171198700172682717770080881633479510250955855482061918384235584661598130134946808819336361275025104987367757324620807410829621207185176561367964200258100434990547375624022463698043178271528967708124591137986485417180456782460767914077862281748172012963264446772550723870474694007345647265633152906040429873311058426427768126174614856047284177363997707113608559748519514669506181860716804932358310840106475930637752147754580886764307009277141975284031377745540950846347235676961732595556528838033528338110821244267286163843594859032710819724584596175307945149595754176841887449950151672544636675353956097149633360890939355365193714559757338474026784951948979151886535805369095111530978401930157912749033263876895366736256588067726601645151887704686413768389414201668368354860829192066471910372443944825228244867002349549926187561612380595051494854163137963660104987372003533696710407808556027190108960825916511405902260545023050051410921272956728433493631256920944703336945509956634424767244857124756159093076968630262501350836672635288559976048320980058040412133260851992076163251234349911164455078382666839581968054848932828909020466841780630164753238243619799070450960338864258159607826425287636815536657258834902013440698114339304903828972760189153041467541291290466222054375116679781446106831938796372137569141792857881576680550052345904555689536363827844573482547359704148780226257583761428438453977111293831968383538690147798725755568589321230377678983170972002706240409451020838184877942420727391000173359764805575116982007340194257670327443584780567134601269515626870006478952551345031766200002451840596999637906961604129612818970928621399015364115100985779905637104728150878570458037042121877468830231877624463868246326301964574827615719507884830429600189389984991762929642002809667948549046710660268106614310205248284077457321999822513940684603931652431075638062752957753220570939621347170993045745342527642951259633469992999629254060501764813359979262723178045449125839316810838046513272752591970673769197509230997310527867051930569960877312759102611373831932367875600909940488312854844033521784568868195908696933606759063923379135641808311261905474357791317375252186784021268863433446944799871508670007866257032390735681340604932985263989243026658500864699137859421154798640987964134745113756222765408189378849319081248121274296999062009168821604373801629539580721516329816451374963685093614535896251425475585315200957808273439475101824389398849637457585466594203864292063154477873840030265094736087529886211669949268392224432302973859594145864318908056420474249474376756427694195658765263108781065031435647321929585104108402403104581296934459464982632506785612812105806452790822886360218915273004267613442085797789778969352665175261512989604817635760413947690041239725542726793106778596836573689564028316265024334050638373070436082176197860774697689639584950135162032564147163072113582990984450916585161385427900719795682135801751300641854046365462148025063305673317093655355966779968122454947060547431717567422166564898632247560430557146919165303333112911018365624742636087140141301158829017916019264090750121709472326624370653158664740432642383754680972657748318200670609407226401076407124998336794741104408117127590766041456006840423475734360275233203163759936861597499509555481510206855099911956347659598788922172214471173927367970756373364190075639973850010008467043322196501814728148993706315155445899155051845723063377752681296984622631540276078552332233181973830135361054078129836694278786638997439672375355842351629674615998977103131223507728725880446942672039883811652777764654982155552864248353718219280912821933145119996944763226388350237924557334340856377637014995739654115537374430058474875720629427397522480318703498543548794075270465315239575821786810133955285984343261898433687828434418121109284727938695478612799617317516572207566046534885404007768993607884342298959536648021606431443706871688376513186640876769678609987349275062191695739904913885378144949495020416422704970998156834567258803346194881094883458532117162023977622556138277162381003016792169279575259996438340796801302390608194556148060216218191662723445077979310365038377182035456070183170325397841439740979545125696865315740512125676368220119916553259746348971511285379076395707076472418356018366526795340111103259540066623309474547636784239315872309265775700621615796891422290425732437466867478470938301722920782820359240658632719047340273021745899751990850525621028701039874453481496379989314895091240177529377201213608379648548923544695624744588020806612039849440963397467196812299668424657484827799926227712646974325591303445234048131515180667061867432235812439457853396685207563857564193914062129080350129209522792252059619320480113671303960303209185448050098449712401064800343081337739157607682571523214934462673499208917628134327827912858616226260356701008504957769803082365809806405285718144600252082341034526378098625058510512167355698682683213978648587655486013597291999469740397198321176310994299814296824347363402359602132752833210501037223462528796234671422428436031736563583452660384564865675524449109744913192643503774682493393354064438886972212023447938802476335151903336979983973380709525321231429737871387422814563956792173624994438103511554278693955001491561200702394179834091572630170409129751559370784659144494484499231470147135994637839521086822043963069839865216479526526948088991303001048646352464915481424224127155913172037010277302802994605516303083787850140964886145929463247843755533749421200753992286097930326484859448760397814552519983275068354417352737557147649717621649217051379498349555481458991231837703180311329333997520949069769760640239050802114064364039858731451411229857356607751669139454512897727506244239428865502094500138265792284989459343287729371678192768062157454149008117862483540506950548819217670468921031953336880137293532848230351530944178925664720884083675335686910259663654632368516514977763423934125996130916213048045878310548240005776885993223128396604721504139851431327619322381748265928990188633230473265847669566286029658659683189718661948216811594974731148034758878233063690761943382677252829126040253543818549281546830154879814441221168730379990144482899599517604248509364223761623349212592064687375753791187600032497001934569268617608784943303913716901216356192254891853429146739971886560419155917505665431805793509072017513785004467318745384864380837271423106277658097669921965203209218485268649351218911476484154360317205281783486394086728164226231923326159297425430414703468937081090910950210077261012060531188007650375451497330029978020891893966121954531437490019597961984547312264111965516494600468927022244549045982706404433869108725566494905837532255826263457417372963120797491501693509126738035149203160754226326226463226090935957809891487889323546919672564016356877597666990345401654168007413567365726458848774968621800522348103700508094233328236229393600264935758837392917718812684919644677761352810498113139465346596327958223503668592274855505589869139295925624628413183411157955180960819774370228670380026873691883116927345742210528074988007810210435545955907717418698059457303472334386482528605969131756390408013771248280160591464976096872586360774215220141046199885754632696640430706174769115788695647647355835940892429796027929065688031522324736421979113587017553864744207543833196521239213336437766930196172549951471599396528987417646675930803338025702071552220142278171910975915882742764594536591585822574338298361668940217178558530861616511618321326342976147823788236893169622734638188197362310471576676857022310746455025626988567233995719971285346223084589888420654853319543242566764897833486956607108757367491512454480369153783046040782013910284754844003088403328221192797284169124476855720583532279952812287495603724116860094268945071085469127467424787961894642747616866828033646769334759363839585031775755384478156476553029379166523528328037178053025253035255523957248058594767756226839645189549346544043430293480533680141196218084894168447939135086094898866001825827976792757059885254382963037964955045826895921821903050917361999714053504808789346240854347738553577888183488726034893508859696281705688387787694073116589030059600791192296401881898909387797838155633134862767976267034163430178358500748660558884379498133420427166067946045085711230305685074495904157242323143239200082487446060081101013846397079972019886113687820155918278159069836254876336731812355847189636290033783623334322872586933518978177278176870631296669832104598195308586823993548310876267402112558887766872872960130939038678022034508555336389729661052155299169438626022969079796870126860900067049662315562544653716243719782961951090175443742339865166585851281240027405468974327756867823038276736556314291234763278734398051644316595709889988103384224379990944787315557041100373301073966698771880726892789643671534895239619569980016285859693821611471333735164638270562194344876227458039200841691728057881249324876771856695772161586266671663293077172615895960191332844453875071349929076503780243446491525646940884154749926727979605866524256527620194968405033040262566486076278048093401567668768423468858166936669673955985754487028607345681892952889615376923364885495548506346535797096615188129264927326809830567862993104879092473565208214910579785143859544716734474901138676627169296381309371701038222374059624773657345247250415202103508488614863007518607893815478044823944331396066744621403765536110167892053184277065476335623527388124160375138721738652967995354966236494959460325319455107989196208380581233275628274582775815496469051305113289677682559631167692404794388593530143960331079787340770524685488447268295304576714613309440845217062134609594848841174698086555588335386577940072163643606872159880806985840893793867405066806276788823280405639645631792431121746164307386170330566552961504242489736726191770194006098242720928144824520890241469051513429781114459587648463002665618657120442279981030250925075606345985420501322224300965609680266811424705340993839702265303538592900651686261075614537944450933226091763213592714713317357577542763820059047696511175631182113235607068003889539777232221636377195442343104656640743844946752129080228989154312245151246743573541934421994483430457395137183224768903427421349623033104558579050197302952875973409431335876073477764281944350601807834202942527757027990363837550154892485397113990699060521904415191914066943568581778037708773887707994204054519652314343855159190057650515902016868514800806512759752463368605011829404900395963467894709913683735112401050603627959862906749914204474904924580894286459019540199944584433159110015841490907660306545937577901021428999483035409481000333807503917175393659687772985857263876895158400602468234305329058600442580407975398286721499407293603134015567551799656079018417930512494925959473998966583933519836609743065800092158405206599758202378957361378937676441912840309537918580589596165373599828315637515642543254650555345410089086454356269631163669412662299222513153915604262203620655296246703793597193026316256824873794520387342308718143574101895741757245603709237566793606581653151198401106194180124742622575154181070718118297492328045259558122234385253374032983833875699212072871401948944970658687847119883615739408813180672968010454357705295529614170705408158712069598131234594732357187396695684617734117908005195134033863468705026468792511491403022914684471403308405534376336100963308908887611998258461705719168993770356672011359948170836428681050528801933756941992242443640507079436946052417239695079068486063625744900821282369736454777383413837011074714220130769213588115426677863506743368138340990594782904665020321201897432637090731091502913353056566867765212822117669601107732426414406307434638166516326855982223804548508241674875392887925839971630529586317261753299888920792310557688392972206904855545655083442079058598638834130079957000371352002502359343789032228540265430066714732023163562301870134012184452888828643223643019087860834545100317202564848868661294068299162005090156650378907772437768482970786297882658992020125107345850052808329104868889975301355547789818271393552846766599153846401022783911602432124323345883241298473697591556472324783690193503244129691426013761496508111715349313242689077144015186051788243748800942534276393563684099977297813233769224002477122772487103240291975902469917619767047773011794810076689390122683629369746651211876413853410514658243247023346555720010705251568326296328282025157642241126642584395811342218335108190783098772835541170647800767376915644688124220383980229586036641470479940830040210608490562474033546176626052922507649297480608828868789658761688957390309028717578134953580259294414617885431854873341548232200878850258929491941843582771582828830730008805973046963426421220522177692795824742972067314944129389678136134661289320821057253846268265608899978084584045622407105904989981179281303756461547179624554261936618426844146573009488737297877264762993270421901936716042393117213679776330107861464580640050320228133616989910513236407175922476366785666512023589688709916727891313220239711375426838673231304232885079168357039038279463709501039984484166043085283133992551365194476159831849621446071310378507525548537356245334426488769156977167806641353370450935025963728507389023278817932682818364840336690997332269948907349551475251657684119771457159876862454856873644734522436765391042518418771683600034105702281591890671539871675455018066443779783302598279252494494430891731274324376210413560747391969524330054774033880340995834478984876844227315558181657848604481809479118573863938484027776925456123992723208759307912651760528899197476062338271834487443294821779091967480078201190590736672700443231953394629114126969718489338373424680973911531201014945979265146030646475855574021934794374516223081834464104203044635605124128800015907181583011403013116071801494600287497720526278754802300729680466223177784894005716841809543686948001826359805524045841353126305108036084920440114525450331221983005274387192379695363803063761695428341943441587364008452026902418212468818378711952897720067746221664757146973845832263788496540028043138962660390688121772516223245217372570667287917054070276814126964605826267611949422230220303835150789913856953299975250144885056119262657321660218610123194704792449916524274897820924060355356758269803775540407234980032454842322439867336579755083078920407558825764361270447762799454649754002571840302437267677963278763661901266989163993028364344529036041195109404866688625481663848074794828657077572553178468493941390119381781625493129496890960275841256900775930927211502749125878880081838998589982856277785000917831416589792141465398637382247808921470127388077768315647852398183567999505962555352597812889197708287374091345160982478027865636040671799678648746019753401007884597435408541152865360842640975467934445150065794668710139392741131405065756886238305765297720188363399642535787345750373542033594592290784553448028965995390038701372251943571165219028154481810879761829403158688963180096409296959993203643312128528854783697289909678408514272462338644712050723210168291797589882198639289386662695134787019963293530612955465307892285131638102207922377052320611786722801798383659743446939122424808413335823520731720465745668561299780627808022598383010390331714793834779661345442351618334552116991626990978412469452826641414933446436922371363610082114631935604639994999055492359618093927595093070713687950596898757707254027543398576435919375890522070176597603590912576161857329830520802784059350509090923967927529263034561338137652954125282042227430679304138392826690707280363504325260447925730983784083625324810870590674969355645348066619628286120099766492349461001369082061020428487690634676710230066255971544433975225515271212851087982987484890979756632696156564406584301359360875643111250478859456174055440262595150428811331211015517090038462398725994441797709717979101720237829608561248695135160149843991714900004485426809625135936101158826261948877766323474396640414643775436055497934433105539504923164333913790234286350168068173234889551516910670361028276329803441691536176422149299169632809973153000620273091778934777362512672957697174106374897031629109721485427069139540042774103967220136433383857547813229798523581845860619004697667795053235145951907246970247193485913522689869448402979003745169253658180227560466913103761106117998758279500288718662536774625921198352201549533902013642380444564660429172279727483613701361789977489820783538501357896532703248827118718284552281623669293150499485447706590055480575619115201443869480928022756353251276581214137328238814658484744142018842823013864784043520121356532221532786044851328743013257664610699548231532646362403268773862699004407916311626358743323084509115781413280036364143616884961887565233592432824024351704164805929561739631005261905634556594589475909959739200441769884417418168290295726178740783712335273324673632644962830173765854030574918935738282253172390768640746113135195293115256094794164904693901101271366360839105090351752887128109584639278484297839302881272549997152995606826379972572788108729640755909224086249311484984111745551547385658359221860762686962669400527444169236503080472735034476134800629327934634332335223819486724176873978790851335032033494244765741240984012018676199151050627201044193971779429382165174130469483815626360542154623653306799963993616202696355587803984480808873668991985051042385625775967812628071671603081005498593167803357843134507767676127529850066683559653487245370008054702114146229701883006418309079628950613538463648467752318561500165713307824922997644460309043581938679219282182587315399741382397535957766431644098555164956014990638665325121847838120319472496540503015884329827419062184608491304215163990958981698689554526670898547068931216742572222592396588365846075647530956734156320601302515027554237045167444684400560480788237383151115690224142573466236420942223033084406435706198476524479459233680940093854659459001491179344348762339998014758634142020152874947549948623819648626091012562584271269140729613680482284448965780470610286455033912120029859207678603781383587416918762441258620308363460481210687549441442925455921737641747841639542367762066339816773581845057907466288500194336894509669106714120113194018614365588338360609258144824173223877227826560828935880802040565852776054174540841278492560419555527440479824401415767969298024066816823115176034451543279901821223784291934748357431493011814230233054820436193318397852989114504058524047319905010759843824737804017271677844766495678709605888978147049702410378588480054585261243198512846805388044160749746617690067360580972971364010457419965729527974344899272121642648120308232480803668700157246431689248007598555276451285268228601751067086412668824445585496212542554617147978387738492339504140908216737655229222690698700418765434662284310507610262832736318836770931660998212970596215235684986782897594668523619057743880468324234601501590606631666115602742194714250089904628821320855776640029073304670178187845231127435767809564355577210987175486195450749985544485665176187032875384484526734015691102966145725507834126430318872750712882456880488093023651093904623370270825539465972399188183114996407653411557184463644903124777282403759359874356709920880920432214296461760300281959954875540651250987711360794840377080746582108628367894458562045078452292567198446228665069122263875479136985839035127914980213376839198673755736478656949817739802673636720152556954544860293585317014222984260132537599452090621487859117254200514994631707885361701342925983756498507319060700436301381317642190478775545809126633585660742779050351301966342163509681880113112862110116107747518384050950607844679001178444760055973480211781710941989378326084086712359002583713821599691767734184490528364338244075601245746749076531191189981630220812482075305155883772455388417301942657625806708083025914307196278907262056145495266121169186049647498747174593617256564699302839736941870371809659432247230599440197105008341058801736698591021508407649434971697264347914048743609627637148407409920911387268022416491903896822021027702626355128068807111107424733194509545876141453385666854785723658575888309456940500630281222474776646330069848144975910244819221475119339676282850649401252918260584309451170660730773360987207525885735913769975891063298903995729017323137203730467167953112120653162411133391494918407927386997215597005431758905725985459204063605023636245110308710103769282281759980252389911171061999149922980862600823944782793737179258021349150164448784092317095789853667824218452685108869595795268734274992945534843178043851551723663692123884129842342635976455711753944698594892865562706415592428896652423455810010550030740816990302377906030978499740971014367451845898872677665884264228712559541691543740307311382841879734490691136805615554042625071621789212673265738238661601499189082118287690240909929997840650755625794477222618913349322113205291441775139137169274126649791112701808154648898869403673126187855149720959324614796949688085701467586608169934905948292860394707326126519644184726348721075512816561899905573302571491613703009059060401163823839611533701420543716642566047339916792566166204106586290702643187671351863140358353196218734363922172698183475278489515490952974399238170930732634712444386949722606526171855940453134654436909815433099538262191319543179777114685016943901248094476474500309202590417056375714886925685715805370252844655060629914772520335120231232105450251740586551733924712266791390672489957075171071714231185201894858397533170037442881004032176301582494629481767549094497285366182922904205150955326320273202070413716446683909482453470860620621007989273029444260100521018420991716569607267626428041560401997109663138272493239760363103168757401611906905672823282816567917442575936874930881076786224153375030221829308160055947422184274151195559590427562978275102252962780595116271928682916604325428466218585686434145677846829391288752024062154783470426733753341002921205829174269673137604408810674197179003112128342822109412458186312208451158800478613314824282101950209316190280427271090868433533462746379536528894868805480184227669171018213664246854034262571024655314668518804584281551082644446037412047695352867375242831767670633120990011832208374059821706928939979673871688929557894750540020771729471234997142493046607648995301854215656573493206845320412305602401090367897867749531074059583446843835817892396856767728062966679637025175863692100894654278893383639340701140765905255344616413381086902621983703912364005119811289685396384764206691509509442634161879652917195869490355089661868484270437507407493978232756797700472001482928715688232979674885935537073994098400896601383519860004494443148560106320088597989564115534879178705697191077985252599357752035875572394829213466933115194963282170358258929303653017792381298885908160354264613215018649297241744057537268226242827761647268262034743617551340368703252929543394021299649094732722846876375353624098794790705813570322600591193806977671556614552624753592959752729887277476450297793122532357982904207335284746194712291012461817289519100179885213511167909819473840635235628602643589148190906830741096363807627418089119554140825661745184390504667853860559584688698684885003799296715243415734950445936883966760975573492064082791469082832516284675399990241682582729562698604805430457986891081358997383495868051904237193905103017603312829478040962421952898359822424257024171197181589436690596078937012695122412053405563503481191673672175706261320380727204965849261575686110491696456362352294132905391950634203251003804407810105261113393974956384757216450684184843650852937805244484809274615381448994966863949855137537436508088554209160472199673579574123760387786556974701403508442654421943694424119703049292949480591178161796801105519769497758603683864850626400973994784372531993890742799947166951763164438654196094224973197095533748211048507077205274292710556902968459447425697965042757761689563277261484033896810837734210500357916286574470399510325884607381971311473597707722421258031690792775870248994574419247513558166704721072208638303821717079728939512283273264594559560426771562984657384123677845014795645005939752750414483303829367088992822281035392081578375260008757966213888183379810916235701894920034937466964885440556396027254155097733944920538687754764453800155933114837949794042319109947425085436394305988129413794781023056616954412921054224020979411037618151322712767049760583612937398213873533677834118543102659998845023611363175334941609577274604631089931656377180284885845932779718397165594413807456140171122937513263118356948900856172449179945142774581736057265345527869003168385913076329908166843902670223749354945388047591253034206556587765812254409246118199758769168451202833277364594441547360966903319879558088299831190550378033807408016729996742267021922954543704395506619802558038600179102610978568044886834741650080037183754040442528053661630093270260283327802673793925403241770898497165102640088742974151693120387485969403546907171007330852515537156453237503393005858562727191813384608957227631509364844796983974060128205781853487865626061258566911186641368517531443149727472314347051558491522771982792257629170936573484174439700667546555380858238049998328006546206353420243563980505942287367696546246953716807327343128527458909898747723129412586188223661481440172405459803956289952284349226334759354411577832908613242288331686649652685798151579801387266504463308876395124199231136706860965871005023709892233943243429303083765537738252411847403515886670298775973559628323750289587252477118590584745296183888073773099696274745904798234660111200636818001935797538120176701983974488746830360295610602324042815241491057116868036465883825887996129609129240583332657556593804883108783557420057136096710533373875161171322598925980228938108153855047679879031823934196570670393007726184877691898846839786239934024943783559042104349526153630470909198178621321337117482939824509133640876785620710461666468145759556826116765743075217370837172335567332138211979691602038740393996825440225203686573606373322252363386678529064336668560943029947993402127220534063905300215662749815483519606870887414841496656446294091657465222637295638598439622690884896818915253877069337895662432056912399173334303648535737488686612880249137840539436505600521000377904408756231842299990599102119064315146976112382209887202843671896750356960642939442073958253355619666359846081689788866633376309510846199882820521282094577192200564141760421549947488755155330081685602289084399816966152707746046483788288366161921592757686302262643239115809637857946445013699260351140162912687644732990733098982530721981064187566387992368335573715087886431911928165844028718307790057732542411729065039032620749158275801167075852246094610736154235115239169282074067743321572142845384660089198220530198471707596726933963647303088917011146806307674306368550145275439886101502695190688723940007833561522898655769421388580772678385721410276380002479512893241655376359130992582169386063740773148597297882194706389318672876860579740421396459760929370787619062487182942530800524392085938151202359446939212855164679807214294889411994268154915179533900531547808922769609748917871555827558357051648978733022349615983903160980128855625205169825046148813477326596435240123041300993526710416148384967422364435359784764882722730310936848787178441438971290366253656756654371863451133346102956598507988122882441154877495928316329714729758799307913990633067249780129778912331486278949052568121663789410443876429105898704501445417688790987533910645340349758459860716166873260850013901845643526783292928252696958630083210321508731308685722840596576670599728100563164479067286572779461054657719888878829267090338715304594041029827512537591286922120791037493772821333044365262331314464363645145194061125488044502290666391615318471113478388574257639393579566315514300433928863391199773936396720413536951781407206103654417965459303095013232066517905531668902705837327106171197119180178331793672134279306759068223877486003250020107014855254635331320705580158798694084414522037788564775207998805661549827757640425242073107247814725548963791983777965248272792155511328088304318585735923646279853012221424128295700781083224705400900797725791562632054247865741671630113557559019889332703532770020969390262643083407070391290901530470206516640885519083858219102896382614364606141031382306777625448711312797646486760957350636711282711412666875903745258713506140694950811464576557992858419833127161712849461544173114583652767241106422133114320180340737389720598232236846333547823265762673806666509643598603775160523445979784100703236197291341054819686343078679024346642943946390051234092649093740068372691157932577814786017327440793332877068795246886552770972964887665060182554080317638031073439427453570748381298906940758628194874416210072500582534176814699774091380367145986289695780226396486053810353966478439070360354649304653244053252157766069970565731805968095440038157811600279229413986143622401370973359621373125266349139972343484807269407523714791468931292259500080950022540743868828919713995216487011025904653067537826858773601143651743677163396442582183048458154271875333217982842730370176526550325948703735723509181200385529680205404179459689990053232152939911600985933910925005985161921095686034377666954095325167558462622858261920231727386066704582793293584463124925999982915824219734520155233948004955326895167874911798885298542029855220867462111651348233473046821031903625940952509583267500492652780366977773095554327848899175955805595750204416045471025580616418370515946444883585835512042615194579728168847179900629507200690396685994369868798869869865965169732055720016402360412964225356222834059232530935320196720835103833442203866627339773173463687041857511902634557891893966378998717785194394820942950123768146437365565339977397318243958447606239572511685711242589204277598636226274959670747614702506182660933892745572105587155300995679558489078265750579601141087645550499125171326491042328154351157580069782979873337505343538819069661762508632002045648208572050624042253325676185500224115142943471158332334661821162404886142624410197610320542952829647613859097703523690208371254348492074607986883398210751147117611258450842371124206024538591270980826109152605707375454503151439044294444525796561987603565602938874451423288226132848569927679623397688896862286248714106333186755525057698879564612186716435827004481464428906696551006763941249147024467591711064809728782447026095547439037785626488433676077684496246522910382215214421217133884462441999663639728755547252634698153213972097975534367447460205015016661439195095069869366825324183970248925755051420985115207893195963978209744583750568759922688694681083543122956200108285635792543502533145846143125412387655389104532259932424435383796448182065804344862764500841409672273560863238694227715755196106379455482644014661089267399188971349976875035226449871910922884545693004360807967922592852886198919341998415281469763569082998113205567150479479970457728853361582780152941969444727826919362445943280577897519104530183435176496052920710317074601759279547054229152708562721503244475075092449704888458195771198395394891610090241050724605144650767353625796083049624785933039573537071844746155416697743885296490695131621211810043843768638298323661327329942526020719678300921105295765859867330549468315261502373852407646752905796513335411779783179255255335560118371283481661988056969942882561189092716295899492080386870214996284770762403034878505655034084819395646589795926512088865901966829081427257058288535946453969471555993393685626804480652377517050034067763569206428864715685086027234827752823969510377794381858715864861172243055650514495453904678718216348114246684792637022860700188715784332207994005760405365580703800993248114594906896384535415670225511027587794745065405822402876357359462490965261131474032183305873724412940700895696809978005464602878194626448610654436257648522826414444276232236157964106382838361539192649489405005840367544833061097579529409715920408225349266440717815958501544201576197239329057283047954276916924037805001272005431271153101554238336528544916357973239013364109554774366311339725464267699264832136392690208320980396940456963681929380389383273864628912670585753680863630508508138408410725772766664025477488201152401049279648475975158159726817179371917870196926282203804376751654029836354913574643365006715218754868339257962560942322534617694005412536087921122777479267216829436185866657100089248166598597727785059176276639789848636829253929898420858183054980098230480020301363347468754430962776816722183020558751168239269865450933750605238387130525421212929010803271626761389295663934708076631369534444882549443992122405922676334842049979604361522775046632201384483466759332132495979667126810392773628714603358245976089318852804215831177464145590691799761201927374784670263052599280323932638841248195522676451996858626854637656259959329673149006343013341158092295657336516956765905576415126310501144870834184421512734868795892670116955348241076549979448704937805899535316457439236163808342747911642178906980665846176745036621004016118334535860974328429533652674446422494310832378896031825498916211200187513033014293574387862063922834084012834348655678661836763820597894248667313919739914662450226007024575434628559134084194582971077868259940781168184031329993484090720836349033769728777315403843961826909773672452995416669325649547352429258852877131330617279861615868978631563731008950166420969857193090494235210909670888082492163153505467957593738763017414420696352756846298558107910686541198702017294296245326991941155787317857406650553352163201786653640821004736274886905971174583729336582168435942432936056552102522037143637033956787671524530137375154812783925929007156175974919762116244651604022497830755014927504751013988173539174238891595886073663963214957124132087255361229164829655336385863018562491333354018273858525439313348479767300576504182952440679937998731589356407765476719043506932595214098765733730004221229725191971561963006860642621229477581752269091634308742128110687247273425904050468319366504482927124168606944441791298985529775551234746586526218277940156980823134775799240686607816194667321509056600336601717230484491280783757706935948133523024150725673047421083949164724340034656168566095388387590613401910488079418829192728080479174627495841013487304861582983088322955344316106742218097702962059332109788952377463903990495744240856640039670895491856336979133803196679260773168608027351304911750060660728856934471060619980848598600407717039316237735663981856622326204826792889045513352208776911403256215557970787398905589302879728514125348789675301187757089830964299373367845329305189738795332162643517961865308541811122307203978674704281743261893836300317535543396063194163005550989362132929368214358646452180965500571018538808336617480228455660595894252322704424330193672187834830533635427683927191839765147844257451191802528311524356164967343341188209545937947658328079476723333270571090412212726500629079049640103772516262405772737056024221892913919883047493900572325940981005507436293625314107158153040689740380004985281757765437437712313543514524398094195009306312397307070362436439508791766762627095115985877668205175674941276012173289933716300288186102525279779978081522310642176985700580416963667624341878733841053183825437861452346678278051500240063148250836251461760742362351669661713538382951296535764093359861041855380267483488721071302701376916341881443407596194844267822687940960202817744387702042251797522860395361595466623801869196828675669059856085865730132447727906866677817891456552149608743015978668323255977914955199604271896519880478150761498910278630968000048400802270929678828450503757706855293396437384856052552686013293366482985995734133201370719990242527089763270431897300755449947381164434698790879211838290620554171580571933161772710081634058964275202948606111002965111602747142340866439093219043528910896402981024687032268907286281361907092313217525941834680666143092223294910257486701866865578931109663258814010330561036197653396308954350096627269474111998346517820575942928054485773252247448549304773723093059326195086676106540660141027300371529598429303734157968373438003196689288812732206268596038573681056660115878737389401838639801991539516358311024579509016848620573436790666326212980008866915943482603268113447275005346529387226866852442921880675380205654556091140475523333506861053162648836981808909647982081070748304543011630889798048117444747382376925714904733234279090232819440970028918974971642651469641655282894290991927668475468461085434746123026008350241848824864411462539982584904333377384043399110654165053787501760216979871224456549890702296858726298702288911685171794971292815525758762546607456098666604361437071766754576097297939415496870095159713170390547175750342023042423253898854019288815331019756061404606111615555150851698121398774513970476496094094641862114316331445043063395237747699222399673054140005902280829111077312578602475845112156323086559988431565457659668522570403191690760661723007955921832410850022540218614539325079621546276812702449879750865222040137095049521472862916471353895094405548274556616592876680052498523795394243260922404581242262723869779529653898112790000547319805392754342841184577211175292287305263088360935932545754160291112295061049910767067816468519005080815226778009659407557599927347798024175047461113087093322947241378966021577857458094260119034469630344510733749885713336807418164459940212236639619194629336573506671700381033049769414192469700217236706264073436226547123031615305226558068314162742966555268722474890144750845115787971952996826930892104728086271693913962919720925671224936467311287948496086179634904125685050609420301648860976583509810454793485484915296765634548134838670163433608677001125559627131078994787419752469554141168446349038963141042478985808478494371353134315868332657079691627488120456557099070123562139997577117474778002218594351444479225175087259471171774287606162720056474134011992569430610886695024254039399628449569051547443226976592323860984840867430172466193679980860014469542521671407927213447564002525401989934731262445311578954820583274722787077336985760850161957638044842603515321126016360632619562976886654928278913012715417265965496550285555326663627916911268047979754410632905207707972208068584756164944713815808154898737374004518533013703477376690104405378811636274428473491395112587415161503249081670352297887917792183962126100905060370589973629483495519173026537374296249454682910825189384156334834399007883360595695934149386568293785097637517820772739561701947876616389337059506427066630531660557790648848271689103234290266770591508370559672919917994522706057271208214917148846553770712349891791356719685553879247195289945955828346339121612890334560968004437633708945561184801852257687263376537716069273383558306952383093473642386248124908752097577132901535643692441551093066588115482384523783037745182857670898168347142074076016411382203287410887788142563291219514923116555999895314801014516633812218345858448060047724317501188238974208502966869558052420813060602212996985840736795021609248598141066568764469899798340269546548058423969370356284078496885491450541601617972035852421713600552282932501091215477669257271526437788320506653838388389495319647192495549677968123260416852430424866866528210188969770986670651865363960261892486339781713497603290066243363895309183210843683697062993591916337118941773832150928984856450934053084317705008119704233928868750539957067264670003763931720217395470068515696116356745888699444982295430694886698884180678967224527817942752183135750262253536167149500523173173796086310722132822524577430459566199594300128702205742109915614189277755364166891728943235963382702318761008162466070868175135385349617059617170982217265715922399645671297736843968545880209363764473307166436537278642267615113307929011206301339225504603267819464832940614821185905029753752684093598161341088509764312894175357936609507158436365492215076016562192006477540881481036602680038979061960087829658367444631701503013894742250135744490182638297839519298389761166503067821451216938584815814914460320971859944376953749440489756194619234296852227900998580474905692283514444550284139733145623795092026218341337763154258640346422469189048096212128050400551746884238523456572508593007882894125030422731552039211779698489974706851622841095566872783215765354973902236158088123405563013793091157892835582239771380764411143878275206199678494430272669062793159839391496547383900979528275680054163230135059328925983723432625782304308708573173454276776523107924505965449357566911325818147874149250079425899655731032719706377300226091111150994961823932819961160104339781033598796058437800659638294930276577647079533647135169206822985555092192172481007827685426498311543309648265399072029850946474033704565389849724757474541085910449819248163023086104383931212458403207274189489244943239406002879779536470766696242314908995431739211400020560733604025391111183670603754833897986284584036732942638264929681940066218841087290575827948898578866509038852014574778145128558969979852205657077516893292273345240070399072264063103929581307077555369815104808255852092548037289716001984224274619283216827305827043982314778336665591129535336098451819354520221578420606835188625852316052839225941816335491453370979189961239914220572068529357456394550560942000698508433441980842253850750354241662769265411721177859870291843004511665087478213966642944442192832437823363687697895939914975840858435686022655605304511465336008059507663228521974046669600651297249680331662962606146947629355822197329548556641198813006136086530684276904836763598353712344331823500274948284061836502056601188656384609014738780804219363090929357329213497432662699247157571871595184677682473347998972798497239490713884690786775307603162715190221911677875434483791975609397597366106660534446777478596043213874940088725392731058998334017018161688127783425097294434965777088644127243246084108339313828099088613092138516063417615828219864541124662049961720669922887905190453680062660640596995771319671154679065608861596689833121103164696593606313819780498234594444891888982489557142177121167374707595939172361460302549333864683040574656026741639444894547500313181384547710256912519278273795524247540630410242550982966007699598180037951649764679952540335179893571469207182629272502770995305463776643597882817655571750675094177121200686669510857705152620388839898954168013360526401832847539767262893203800547516830967253028299571563080528318362912814356471835878403676254086266528419953913894181171862081388586201585814849103049442060836986477681180349660934935754843023057792718152269025615994469041589247421097844212196575706644498421018606292851947420999373515957085429514045907421425622847782325928871621742987084447219734976495209458487023426738233523840605432394889320912545549792461904642578292185068547474194538271430947456191459222420005047441680188208246247595166101276083374632391635063896861448167075672408228833346064016134754496693500732229463142654992993120018010197225458677505225842711271059166840705014274860477214526237358209800140175402134708286986351862862050296811652477332024053256471947985677803740265972619350205104630274658948733452162229141794405981162093319563566549355197405707078781662587472197968280005904269987256143726156002332915919357782998744977541784038949202065582938136126797472170469962279413753077777441917468498889416948217290510855460243879814677694932576777139949491547708124742191260631795358703338823759278040263472691351221300339453240515727070261554157946490084379256656459231453409871536788706062699178663802379430126815963308696426624288195850376462766348053702935937548642820931719142149294832063839485036173012845957996265112397501961014815015108537583148339274459613264329117401011673459609517498840149298694257543457818076442366401501453482057689457011644033121920376112080158172261063899484379868486768505122578691566388913413509521675597668762522635510130660540002139043127165887569305225124028708364032945607266159879369473257475171901408226501260190109042217819279685723546189463611686165703485625922149233659995712143550723702540642774450870621322391268623550904227629068679109393804709237675989044221653890015529845728224265135394404305770138155872399883007786451100774657264440853216994889806600483313661830625050896687312839439736692024108392755292311085256780137783133514290851804731050091122965457794391088798090647492273325511683312349819171117363383687586965429794638897089221389959379074906094744387490002803613419906601629141527628275317423459414517184068308049758248933693534424682741108839141943516293557697615893235818986501315907145609543143363450970606382904311792272337458768298591445235064345507494755029480924310689186886028137799058164925995289545935220807514269610641233612193735938407001879407603791100174934254652859886576290461301202744720709460290783976683188643384260780533231287673616699371655516412706279717274804975875056747713184657178754538372475972059948128259877178626401601833803710985934103515965776034424146245939298314062025663124258751679667865278106820026995898831495628389708486269033342113373990851414986934699527616664501841798371960085910992840056385231049167721637760285048086529074166930124583052107401412276295818576201828782587201395725337695242749175561385321568815636418584556847597543033050067952104643698478560165958594869753382199995924883487728006923887498903925970830513989729594452185515320636794800512127128046378846952600090778437987884548497899454236729654474766935134605565863047321144709443296181735076892471884064250125139301346191364492214344818892908900813324648019487715521562202497633749428210434195523715062219190699162675949994917515434652994962473534218684294213613782482598897919692295969221472448069845614537795197686305665937099204411604964431377600633811823996197953810645896124681704410010630511541161557241326063339145638017639158682730866070586496274688452329230480878168689476404304077694122534913195518055396900104318677950693688176730868426466987979309689658265793815306711912481839774138473634780387903047340396945702156169774509059580420422398564725964438326870027836684633520041390140169731379779716881923973706467100187266708272046106621155986084272746328219313045189095635832560559895268493936078836999331439032013911513768406005553002048262358395298096613363485245270412495655156679999587818026187782803650441110654602306250431788451836197482427329899201098599178935388354419307877444573941066168547087037761335395327733513897012772374472726636275946946087632465406703457593363185096733714173562381327753198351513778992711071995244628849947448518633093384973285897857133606647347932614056564524561209035400949616819130081535592081977660409115046779086811342918946130454826208280322936184407179997321603143783635284419160723095955859179659111874293061023404718194457601711158409359653403930863174049560160653646932826085815619777473913138113895401791605559529107623631575499114490026682024010514764944197887642343382570855756019547895136647407727128736545036117020174535052126512292485963351206919058905646259523313075662041907154588751915893115558071440222930243462149538124902048766620953628259226484560762247742684468078104593339626346758695082433955422318926120440547978140446335774257576337448771786462456868891224967814499863386391323898027313126967478210292669379942826942604480334998360144602490200782421993845702958475877938550183203810670837253380318814819549558115282218109937902361114951787349397476150894279104609424061344727921910073834828385987643305999787228140565172952894746334581682548849091669568913261261641601402704706781642553087987205750414290097618889153558867769806322625550748628598016875368498686050739836684157195894036982091631652975467644208580465909228251719110060154776761998668663025686413827085620229105874914962445988406866641829437525501203506000280271340263528080978653964754900099358602292836454957857583893088080545679936766529375693300655817460892958115001323218028211033482666379062781355902132871574710806087921787531529895667378573109119470813395645588172880501412164979375294861807053299526532559709250832913300926609495676954765180378672203798808649828825620018116433605034115648710811538931847343520932494387097339676503199881294550850528342368860837686836744774187463230525281196943689016611036827794365150732752283769993633695943211109373775330302950300566458839784428065442065969304262658950020588503261987126429787812049282010717041581430696306591819588845541516446563858330595972090657276992004643570155393539473484401053712743495203246466699487895625201970170424247757039149410947603884599697114161139108086267683401581976233824047731096601949423433962316705490316139200639716075731738788623526094461785431838706857679904897943614342081287859152177313597472520806088869780296099541802143534587199931420725116335096531497054164105172864608836310305014728369945728312215225155682804949212384408463008710909298941721136845672481532026263480094707083271134873159678743002408954288450557935782156945971932664524979105448640464135506698675985375702343224721062192110100077875381627960374840671978061818958872336683000992678267548878746519745940644636299497483623008020064215753892059153001378144524081273240979950396274951997287979376329697215077760308450447569078476394469863532108184710517063920795887279688282948234813321432655764600138582121936285021317716617431294098696752806606267186252590373711718716767621081245926740453785699412162720452553588176385684382924561123490711585735410792271587510979967939102180056958036869377276573072749176589335144501474716390798555995911643451926680082408863138817160323489236692827056540098784620646929264067445881377684437988360013629502743388174644600496550469915978116340613944502112446352488301771352756127481014076510266461031481934399469116408041881816239545386830470180858515201288669544383525618106811072190381548745732335608401933578976752910331449673565963223380398167870225858820139831999376113857606166163593443701224823471511194926370165362965064959050890027181524163768772205801802866315506344710504488780729821073120555833078698422555186518627136950004411784400512572115872118427452239399447217894427241680619197817049614640889681397037452944997287749903156883503182931312632113675563950072218241776035284088353768759372849676494276930469155427528717898541522931090358388355372532385291682867653056728580344892022948347689605965806855527224269887424018099197370873899929868642872194373419018408432188494109368040721825631481157648958605973444648782086153206320586344574843648292615823982444003930475632818335078321387626556612187701989722072735911872699265871140956731877155994250127914761527225084104677728931194791438363726161780945383245072177240418125902717432218129128086872885973419292644592534557960137741028555935234257238141559553559526153996603958724531620994479739949309185182731342695546213598360732923861805796525981486926429681574403572678718888382458356292828281688917337671472820778106421187038563444081473262192713652213484958256890760689142500893817836401652100228295709928150608352192485262107616925666329458222752250459661817666498328320567533258504542352876199188877693448532430224983546487934369246650029676867356348830584511296179538965824890129809208589550597562451879897321193597155893991345699648033580808547882422667201920534254275731893961151791627655978136723088071902828920806018583704983584225619151131960899331512341909047168579657002702521802642765789701323639789077160365586407889028007969293914809830451585609032332407662598612180319366810860314875227630852062925583362593856006054440069470517478225894134442141898136009574399750384847872775196790995689945221572285852718195593968149861955010756273651603528932008110259111580689557297010820206749041167521205549699804795442103494659379430188958047490878260063514772487001976637771689486086520579441067561978750638010299933611704591539599504456927209643745339164293489698692327447276277660845953040985093681191668615493759862328167736747272457376404343967324699166166343675257509334841404201280587611467590079812454540650241546430269915203395990394306388979868697818377697394943658842020995181574006045084229361669652891896142220885694500260812901480418051021008621038479604837746846462758183924017986810599160916406123197064186870549707516885737518410408827298710088142301999048675084969152733237252452498267477229504097879036592114795155244987514349002911289612223206794407627334517968102635003473635509689169851444225733635825012925984661616844412195716561795772299872414122673703362863612758531268555217653746489776632156305032930057746480692658278268139376824519086700735356442950752042022353559421393737865552242208731375201938011754524741822449507355855344098785278231179424276037832719974455811005894647735361145039355889617395199198881350078850105682915063891227404097609803399517774121411579324576968887459684341505731264229250129486797648981376285193794790664760183251561580159510326297447895620687159731268353846305795699068361603144893893057502215954956308410870216765974260113390473559775058230906786272088126152409532380782638454844707516168485806345045863566294216586763836257847395317008594379006056035055880577510577393550061359954888145081549383619994260010348430740204713316204569611292759006622795762585309524650817005045280488018332993023528854061615691903236245157999086487640179269719167736948267588744930111238442745083376632653483524705280185106394819432549869413554742089565939541544033339770567555919324323261480368185880573355930158122477960118080535758393660541217761760554465579209111189790939521381617374705872261427727359527855629203481102790649777787076163986327792246227912506638837176306627594511723208288625158228878342626541320241912691211700317657195887358666690278240977641144641709584252611792146174640883855169106886411116114087404776420181535435399829113720307571039111634338531040290082438072392173990588223157614234791423345559154100391868532181095811863051108119833714464205315336313937449338260098842398335243851882682809890771206565020697701759308189239223306740917576120682582053045979131371830488626296045259473190180692452035826951893440361402526927595849367705888764939739042546682580565078451944900078128601280223903474725140679868565195139244641728517205860784378979626186631183177673662572526012418093815155823425283004421088931574525187917787698102543702268713380376927216966561849645982830101825666691153603409101331168437616746278796160731503146684637522097592890835514312101285579589660768164146432301212307579080894233086479762954505667690856185592803117397800409174204307870357692099791032629768789841399766816560746263624821107884072428375706606548649675595661156935643746087490442921584549782047316379814908445043820719849390536747182610537779103822833406766556008003103685996888802295236614034102024445274362272025202894013344057159829165614650123757184891220378999173048429818775333455521652821818321941578696092996041682475995791892809109327470632312199912750786832213513995809711780832292821080774673587990210832333202824788687928801009635631855146452973207358139188026863380664626147512595147162477418259887974814437057027438053080060701160757855684857314590940485945365508341587993278675701547723624723556282755495484542990988119814550750137708348093968784018556132577738373677093261833774208825115520379843302165151186483746403373733592824576850175304660923458206225383081410797489703880924612457327266253210692105334136444171700753865788856425253015999044018397923132347201331837425068472461285019667389698383066602550247604596932732918644025422056948829253379738284122061276114569120439452078689919891272326482541582933385129294974148319181837438371083312430199222088082963283863549722875825463648624672548653354512493196666560838991056740650523471369635974739104732982608885230304222472497627812722015701112980275881013727450275399335434208274328340159607426876169906740252239559730319820569439974304158315342223465021914078455530841545186520597573454294044247113863148923114292476112638406925116540252653408192161996910757333152483138304593293627410760593702405913702673523296641865219259897137163904467498315079291692434438676275327801518634508747956595975026065709369350883100492597376815717692010081535095397556157423171113626875828057420193940388187997149652394601647494977537232323086301983059549855739835183475589758691883179870480571092045729092518399461017519559907003363954545304174773933756344370668870134356126943019303077205233928848865716664421335796665526759064213424602934781478904238329826694146809465789017919708328356892321267478554266489781845356672564510139847358479574807366646144611301254184939267467116330808546305055183682893565013835368896715666029136177305686755993909724159750971629203525815919305776132626565093355643495481964082313350719617086737414680656104452158246684366715788465334771550635725039912924586514986710936263184427808999800886557246166649455816861101626296043908791566761712330105462296462867354337807045659985818824636244840057365961676141006817987575904816602991863980190184891395988555257600508405396134040069488828973302354923170989595097580886319213144901333622324487879336146442425325885448991830901329846391623073106917521966997664306708624185837821410070185887118381295115415497927463571862770055903597452641443530193111905320691889721069810917119730409767401885472538553615734620973222238239184296167701302470736155624371420819554713096830144063792143913494367729907839756111782243365259244989257891602596063857730560618075152264526447631882600833452893741910047334499037996945974030248298922014660597592416161941653944382537259060052102875403348770790661891498664506273109518716897824226299520665312114272824021059307455437446248265849419303707906746486171978342173468198064712633145536393531508045698657697455947727952843608715331984431347943968088674213061853725453925722074051521426743152887472816492870079869332296584851290609043713107890829540190502574803164356903879621422816351813653110748345167091611932817350337069164293075209367895692427436195580554541501789305605250332279825891761166871491932373773660502893787037907737996352232289167425895693233721538468012566926213101088983391846297645143645750170968855873619552038532465131171751749225745205194366260297786872768109437510852152141685432132445062615382941641527789571296527123415746411313118564994161655425529408958907541016385640774622920796413005986956946639657633676125783172943682979754770582630424766974570812685288232721246517038359033263213011770578518466702190202038586724865296711358905291595986400720760089234955922098853762239973152473823593872366532295653503232822043951966554638972931732168859930337193133522462954079502065750714371441798320272393181340693785443152578907396299169110648456399400517760795420396445463103421195744456616041939221155555811710395753563926578452217925691294360013155299939062015722450426355718605927911495844591959973566318606370299589169206755339985379107403417891050316906510366900575009357133325217207547396360559111255239555355717930311807336126098590161708237267813481468356893800376262696396144318940495255305386399957198980211293526748178437421798477277233778469836432669173155424519770711084982865024241955047177491233322280339382178184808801549355513238348793873289942931765163402872873307729565847595848623838065240716607420347186544739774217815847978951703459473014187386417323583934998692123839757632811825684295761457948649591177988444984844909726409737340167598936536697667596166726908007385911966936217912381497433236060357923810773911372703577371260723237020568137431761260272567206268767918680640703735043584455680938782004832950281448628353759525903934972707080475541053548592201913697005874492063001302725487707595013771411834653094925538426081924025260904675946664859497407876373014469729617368073847658521863691823609158654910728403123611031906374929115585361997061395921072480120932211951432930370489328174907879352883999086899840645569006470875324240482034623855860172034909548127551344312902348017259417638562350174640516377138422100207126084952428339738860435758302470678169568772959038810974812592381825023981942145639653019990258280456452224734598066190143307930371504380696174158986278400221626853466639919719246479767585987489984459407914141189729615175426310789715999646219487866553046001440703633783016518787139858821053332635248876762153080409141305771807665831522102543622005310363523560933764058907787490902675916719352681996503037827839739815714701403185578188657088885528266892261452149053434204882355272154129117817490396156607572755583298241542507792260410127949974010116459308127769608039854818229703458505393380607538531252762194578368889913946999029573917486448719308413945624450917978150699339929895904040635027354940591792797457038455001027518652738307389435638470284301568682119481252395900805115953764913439181435666149244642369475810620314890837746771724167686135933559644194736048741909333768154960090937166775446753422400937581240831600168385588242690135085677112305599270604659568958661291523768613411827741718353143840939802620987252914394831961180548826478919799239727027941447349889360969422361521738588218572523196410968328360347210841683783787357841757294827302878569341038355713907463123202373697332278669623025782290420785313097789910607688056189680014872484188146564491777571875508085434075070549103863918452687289802853987800947542784399679835843393502658183463612101709484943099412825342974977361883147605088653342301326448709805482927865717317030676595896946579711375810448142375658960149976782104851914114931288961882929901365522996291408020417514883376267761240788293769658129489664225336754900837433652809100616837541440182612641000249198222973871201622834474555516178587588559984048281387957589385989363984852990461414787736172215724309311671711832477073062636594881459216684596886223956528996880314441141019745940747774133896617393861090916923585782364498582673863444607237580742189888933415329938349761615073123777918014744838878628313793676970157912814766027274610815025360545464064713681900747549991501596832985956151948120062756619489567363418424623450429451226354974616382384779627496337656469005975362549432797309755625171043656907490636829705047088019421383729090725466418562739758313964569324689164260491034242042281820620583120679981876434063275366198283789017289422204892329940392224239481747597188237249083033934471647675467662130676564969114752426054460013525748410483048947187207324233433121001426136832914834913008453616117327877165761465813493075796977133987074961463196761407958387683900153647502091576065855715997487737574422151077851610034558557225917755640772346572978299303656665776417913744245525812178641116127114101536251853111371852578094313060146071528808214266845195840616466746459987076307201067107692061277784449722415469454206491404014858626716124218529050811523564463791046209128143000118447561189495990427394518332249548094568183609092550147666722833612788317312876033926206350410310539951921685528882619228609140036375530849963797562600131748472897904803764231063729064752346514192356145406549640304341693573508735159014305480165880197704750550438480958065071806167669071042895207648209116863144680405809801941585121660968737454988808455202413075133749923727625565088768965454718225184921107383939839035294679123691600669510416690283604911504356734670004258035109190130513424505558267833360363283866486871328480296469512272279310033693639988216305361424414684473375885958068431273704750544973674531831870520301043504578906521201709452516747364699194389280514012140671249146337151878878804110099019612144638011287694180931099022425465911971346066322877777051160595101355420667026739201208347514386678631039367588407423247684530740937582099905153085329534986913375449807647692413428667294582194838561676336937504356329807084031007563541722687010794643428478186135820476627982308533721013618104462514452240817036574305182604152603988012666728066356396713473762549671576525389706263375548519402607202722532444834121252679414916442564269618380602314025219379090892846865964499487399096773365426457328931570340873887400209242312099532270284090439127868442577557826514734617341615675289187813582656971944889584266054808320141392883781489695029040882427442831433388555435056760173667129023582755302505574248264908810657424916806274867476715555438505656078758324637873847075388887808530901859392215756549639534004619566735643271563765478201011307118900719314535301014056364787003500744636497062109382172533508769026398008231686853842699605642459709063792841967157632079875249998563906450391017767895636410425618725547181584508268716054714544282749311420707966114027671931564327767432347229354339714770253439593553602871433990502774356240312448599500018304826818589054590801178119917193511378093698269890800395107037649169973474156724285814863338783096131693156434000730512936388097139488049802222233427351555049397821893852339608472421355641333866264458224744373336311471765792701179784219388578894929711333404262710024949793207958225295946350494072643582895652112947915044186779180246186460177340732035507037050915760944168075392965340289084341216899804037741280332008977138494077991503106954039964648653172126264991548729951479047294911464436231583283553300074262699340652043368200333719962927871755325888404752669250785713706093818270967252532941645170901877437012189379149917419993583055927619165214900639278058544544340119408751090729191497784588976717664507565683842135150842577032033657282786870788770337953689199625742197397146229651134553748701647774022606033609791901771846997563964613259235189480792191465469039292581016441719755101904088733820442410624912171670078993788785907650065590705655961019837093072599190739822034172679838040381367427885431866849251905964169616002409683936487756462530918127697505282183698184794847532985856240053994226364038156004491926225846875410855404950680652431016773977786989152719574955105705065876763495052805550121838456496176422792795736236574523752467812609074218172452813375302143244290613547712407077859828638337543613029549928945251955213440223429742515800435287025030779006443469001886977680311713117681247363562248657234600329475023896490392302403539919543400775294296406846389079267362252596736290576693070692355556034562462393916092995192708147471351426403397603477615780784058755504039087531180884675714448258613545409141605750193055210796158640472292083268265011678906659972469628792556836996907035183112078298515298837349166779127841897163218031086778896002308347374329157732500954161882676485689042312525120680785712924291168161902384462654776091879464783123572505722721863077809645578726392011027369429503207375442610818575932473905140954099762566412594651923353504806233992297147589860649424166886777502989500524544166663192155808054161994546258033859768921591518546708311129772238259231715258890707721254423806508761464557945550233137154596883005213566391435117729219891922089845028426029004144316101192077214313140158358959810559497404340308031441693095540433500192040127576798953203678103682039750393767448992486090908088069070849300935611198628470809686876174116785975419329877982758471588122678506008675760044457201937603982602549443730748904084683948415847988991099987324258108827236596282628491032459252769398491425031319989227586307536648053705287126760467441352214755926529483840960727878331098241371304458325475469237114462011333036557546495174800350503369691416499325979073155021133197749126138755709913698770106099525964435848445315180213861706557653124065233219136887883975611749540289483949077403536867236052989534280680573005517892337343179109764110819376285639202122605999435711574742535413869325321126152627696505210900555026640199158293094249569810775663761156654355590598104105832092858098365476521055771488338103846109165524218444407410051338619192090164655871361099378397786934452943142101850287573720269374735328067136845298998025807638709708165323221453421264445321015371568007414740239311924561149886451194300476697809248801807750426267260378260556946286834308407581170093613710904382472613829780125422738855827123473758906072380515980824452797210807608436939605671268867363754598001471985445201316265705451083902756937750845355617937274971364950118076879089444388880685030132961651351154674259282519296676057807543950091715660593347086653253191118273311210105527033076933810619554962167513750220076879144916522246205231162836035272705705830915804285384086532834065958783274974490281416000395029671268408402267571335158512849049426279857900889687821525569011736060478486030508821844623857003483254729799749564097309133803583868555866648986670536517517453764706475042010646581204164363439456082625526290306174451914146561159513440291805135353206911196561019578929993433744499852285451991630539563563304823396341960492712572245139373457573555766533433250559317763096447824633170411331334053940655119682692269153693206773514270474799124461378244332096514848659329416669768834130669988088845371792024456987222357444932137617370050234839164307625920796317760239575016721730930478893895932862125891532319269087087983045387570633927976984012156194520027231735201625987510420756476246543982603822601124206501539268780766782744690690007837760402091967485575753138573061873280907280219069986534485650493407578567965792795252852027826348792785227910934248694072123130134965412580219287679376625940038157111237832563081813819555523972723744961817648667210485717014826303331193636087246549942005962845789696798930207142329429568545463815885864668204353686165981989763912865757037115450915283309453571097604440490035755538962639786817243329742821260703516041135715769971374166938875968918610594455448340742078845269394481629901683794922582199835799354089110941534348852643393548576512479376429703213320380324375845869975946990426364396389739570416337390149629245383701748700677232856829154304168238003500254609088490213313656993154448745091145363672346611579806989552364983271093673885742248823114396378051948435744586101240279667824549724502254104388390506088703841870274561834307017859363723484449627731801777801557394513673101540886593825362124907920943214060227371204820721920533836885669544862473007645068569765509793521641375153655227042895234078054707255600519301215688194308815921733108659522191559005303294555802667333061377626700222178112529172673854519926774096486167599859742306780420060974571674517277795541335137248414394642019891750724512835611535184597710729203905630780656558636489267486897350429300731397290450331150184364831018168365229408870045099134519557369212523447654407360649458959262756523739109445943037595809010046264708101434046668444682621729084772348175615799796685753135851245597707591907898010414877444358632717959850178529075708215072300687474248243465668699841620931722845375449542102550366300107284160334148460150092747382006977753469842906633823733608402931411403750240425538561471249516806812874683203326913526074214040687722944176851478850006840318594877398277965672144940011874639146189811765966438860694390886753158592989728876602039169128269910774974393666896892256246340992478708433978541496121022859878694887079017196733534175193389603582531687774371752508380929238035974459430867156149867124182006615192338427166708751785629820884526241234233547010818569960147404752994047471175653009202157951428573564061454529010571426487369096621010561577896209136415483286697110880780030599499445334284263204255833906312860018603937033688013423421784767393639599299271409651292111269578908688555328732652313624283609151972910527601996350593869683406956866597393585071145596028947067448751656201958836627343837419440639209276463308859854331011356982214475666858938085216976024030204197040348421711286236768531005147870713942931311895252687643384713467695142578841575400098225721371941072939531546960161021459132443173006466668339550849124310508150593404830787653230618989462091140836603539290315621568154265706056125637087285564753578567115005682105591585478782196578286741733642723717513841557019422301486190015027639274441137519766508341064782631045033019535186125079979500060429256364688380960105721477645370616753419041165690204824194398232732434461132105693951318594238163951976634120124038714913062496601905984359551055314235834294748316691547326925526513656349144519369678459802207938849137464281652412387679966829632959893516061966634028794174228899039000459465394147344262245502329499298247777414923725012735092386819305021559063670559403892022110766383786492964523532233591509114069316618166057731450332525454994725223535148612334926778916107948919942978790128727553601910785681387630232182630801174986179346463753384966854313175158114375496695054796051838799609439990861968949821878269312061335101770573541130486215445297940463278090782332299365767347767991972128047383695448295419224379265409673834913458997418055310472912049392719505105535340788552124606276702115306250448351656737294234691165634111346947283792773613950797110819900222891735886553495563296036461170132225870236163275040587952627050267574092356609028246718208978792032121200460699680186236682764898897876719001153976975274578977898765360815056917508579026556285102641347554161202002140396574886039567768421417761132848380080055498495477903815263179179416793036981904320418561736465937257035783852150944317159552205644426085420512894433378395212767914357918491950288703892233176280342649051966156446544843370707917833505011416077069925260145185979554066728571298737088938286715169530643492277113006113024425092013218654123438307680432811289009515195155463476575888949501199831211217252326811828563944417456090527377379202440711738749066090937367512519098034765563646279320811974935108215613781910466563487456603188116059482379125937950273940061271533972591093032984475157183823974071139400960182454040611209895278352354087268889721817468219918573839280; 23 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 6, 274, 1184055, 1822497599062, 5467665297626923681444063, 107352355547219728309240738200632718763571952294977, 41292108362251123748629117481890659659094851284775249117368552233074597969843382552660261881419122944, 4190633796030558456445462063475660370023232580411549732935269078141261580125003403304159159181813316714786760276116527715290180775180772918395783706266623679144209600850343895468159094912405721160224665, 23181894730087867576421035721859214297154879081450685339165174135376137306458836541821673946028541267447555838273525600197408519699212620709990987900422848935491820912525180203088167045343536581085626646635144589239355346643070401876344963500795829530069031281439451730547625575683092081522974478648405184581833862987543628977303379009476381604708331728918600794316685109013579153263209537470364579794725, 811728281296322353032533744808770789522012994707945469267471780128737895584590089226796893199845289606850467036900846604089067696608702017580101253544019248569800414177219550331435665989896932273335812487158550993806727500707608272084155333751453896384888476226221679911132128687618143540797622900578413171618275278182125015612159338923468253358837423491560144979704910194585194771879724184350879986495257272457853914984384743973908391066712509923422490537276117663980853308710013554760544921176157151154873563354728281029965008835941627378163034108860697593306948219824139552656380681654660025358971256563676192582396948171111404788253687344428011724585144961915268131012375389320700560081921508271892812083810344796489756123615192568891203770278756284795771283915962220347491193173277644657610278827550558, 2549709642012447363254544355863567242525148363381606915293404339176145773633577429464202469812656853184883818823648400948938406824641150598432856162243851511281552593010236071769650549392543333272536173443390564993303911529195419153858166978992276218881167268987907681205284932218842888581746807435480268426702501242985082629547934634093236422822521682127669861496564528108648866616212947754742355244136657990878597323376922291738428572783575842809011400885005354664677478833968346764059362678668915999368503936228112681992213275574495957562912715612040447737222269084858215495969425006456789671845872913355314839806559755638876693591509610533314088505054445803103829252468858280019115320111194243437322652993481587457454186105797077392799058329811367846084753786050927305844521829037931137323946832120145689485633919236580765419361175573406696077850765253800242411251284686235503738957832673653440865064841298431516216528684539512946937756570611999828512088317505048350964364613283337680056525715271128872315847796633038170606765631819965324890794925541184935819453783445968030601277694981357039342955977626149654466714575189567774510909364054902754493830686211744497515453299417423745149585924710719004565845837152277540145118635282708845028691103397298046492228496112221273811017763921518430629199434907233200417542914949729228221892086544247170744435163726111281065733299482780960602857586542332326758178604212807148606950231926948737413298514521940728591538840715421228605319510396019742374489279876696296886679707881057992540532581040441165030163621861426751461379622576323917566343275117660563735540566983553, 8657208247679131176073756203174056377039970430725141632268374533469765140229981986803144479370514797947907623428642848587660611830197050072285193987948305622488922078566786894218690306198332497715237195040074277978411993230429369127942302827533401113236051556650869556607776057581526619647452207803906990924513547517457523946310797861557316273248753146607646079338078155741170021972682738387964800619307602540413039754410616336283578163689925418379268991898087861190696191543189576014613457363781039052808626131994653637080219552966256959383584185355346343688810976330697923943483656328099416672261770308428517439583899889509927187530179362128729654679915879818362181655830250207057890444373369354776992900107066446582270452114215964696193726084677458806703952795162117926226508095130615836836716480214468733453390152240390231791794758061350699012667011533961479827862756228196242695750850769223996831935409359026454948273234676892942670224620180240866628073191321930796490870196026160474690057556598653809397154663336896294090489091638142898448168830682431981296322391324149660397944328549785655358527289131795726079069099146842053607633025102906049095183220864667753912455179539673352502257014178925255203815080578761355633521725205377565964258255705447813690524768495513556570883950596455609533098948895731613910174862395220277726427393643416721721345494004402869220240579496810509657781966171404082329467667044529434907457766847377807787891306239285509778233500841064831790267233015246209418733392017525736755324178755616726018113833537927339991929381609960119251945159235830842723006170559098419879671001815965336787844928341905004124920374030564883293711122715485362277055904957352992687756632676163766329439902320090836073348231726065111618915669241898365474961059579045202516327166577280993046776377535882243391745729454405739491507258644686697703066999121847444139090844857814937141433507888537820247688809277647151773286741953380758898149046382433937068012816972353981662832703842578284105356687714557841986699199136908745612513931680254392008015539604869318758255996664219537087037205875097756633859469727602254027587006845436035685458496081878549564540032705923657709346814246715924541017178443084459618948901156793017437179652400734552435230839036256017055259874441468612418828802471270985686523791877063163478728928054999570975198089804331653872045861841679210279846023983226971409697773537800259988138432355822728878174267901835823098173839444912475495378584102598331302600296605628664765127032308039018801130243903208214618340884843526354464139877293213843474323691961159291847174839205562011785314833293884158137569621812946026708921296938926364294680679266992735780469168743411118804566976753461026103079127122523578616945391156793883230060394003375360888559568230223692746485261591426503850390057149590839658281224094068200946396870612352264288426781023785599175712834167444967202689598276488452103997692185540571331861405263093812720040637703796241376340284788819098966013429713310495092870409137935070729689254613019336797634825428422210604911333618113418643088454706443164450118673432924726352368347870142039179940639031139506610615417580871578315005264909589848642687378330048113982887363231758136562589541, 238537333128592018657866210810107261547418602281537145214976607923184536656765642028076734596635336281075860098928721501184630152114555282866435698432864737241339358310307414816262566105485515106321545717681785770109938667067431603464918956280309127768081870883363065316519256582620370452288454410425946555479720483525282532096253194410446653911762592849787039822847406755430206444645154096420325117424330562982975830170819465828550470034084484105551858073320203065625711068218534628498981420351986292739896329701868081396244180534306786598501695517830911468018433272297325964549294304024100826839612939082184664612037178320185903101669998101479306294416772523507354295670180119643834627160202492678078956808381906763736935520543384542726509923459559765896597193526823629105466303283091866629438674490480700693700854393098593276292171698425004082389606029341477727923472440859268616929077058761506731856445653037162749101731209702659315574961254412880731930736039863864184709720539198528754833280541588979553431572171173627419770438831296518236585346939134096275851939483902200554923019694969486763081715001498058437041167862810313791871735047496939999747270343188847672610975570780425561623152111310440687965662710413959095386214736589763089224965799343584025446277439952569743333748659997375064212457947192664063026365479178722495767962605767230306052557732172235018730344716225403056657294981944591925807001381877701695637368170860140568983093754582720375170778417429604211592542539042656760368713878921510910401207758274867429872624397398151626334586783628030555807217821444552198031988002696525754428660404085273323558729651915615976454383719886397113557051156266128335013495955981241965360663790053030606726117424540212305655726037360578270426323989308104864227999154463003429801154317532716612805351899140913470527997790698484091227127894871850984938675298777964494793306249297994641282313628092145952531105784159926958131453515756600822478073925250059711568208010897581669774870045247768014429038255312244650369833384726168971405184451455950459876571473869731989669547918912768923942330471620741083150026049154122076681514012293047691083266270933973710482581658601528313637361996327755318393814093016386496620988356532694707696333910298673754072582555687801555246544049359504679511655965712440050868012965612934831586694283776515213613663388506981837622489308105430960791166845096691854837048720099739822435061383550038365931310385451433283937256270809987493370429176979834058744576214802724232745875619777873155342600635364848378584899495327984101043366147647495187759037870685445815935699774488028768038023578109847682810171563872363536611663386747402773617592976106396580516116858356038275887083586800506947045028530782315653585308740597161419928073925247676891964930765814611316431756151005405435757585272838475239367485330908129303097737694581076162151463453994084859742746467640650707172453445580860530335487428997576661785992140568176805180300446166535419172641262606049682838708957274715933840349531897581998241253569434742216813948029611518233503314946759906566298312633663231403808310275554634564197612057154707032964010054451935493768338143903533030067368633901735442592582811391498243686978170865645866175430933629309585542840270713822337194649139160294741366711105677695997461433364878316744110982188563709621388154651911088720196362813752808166396308234761663639739296973994185751476657884151836552039230399547780280796017585729326561307316527672690663073626912591532762360332296860101235377012512148698140416259912450029081126710247204399666232425288489902857265533398604792556447303602679096753409421919160021582009865383783737878709370125910280663847856203949198346568466827213966366432525276581155627819762083766111665977415231588548392761094955231249447308849584134772237519131855274648137843335465580636414897836926898052270843104272158232154363147045145995038176077496499198420280526394264335639673068787927816264368956724794162039649582558972346432928607350179414743958213777038964758796049002476956386985548746836815942039930215718958360579135427297554363665463671740315212765231561822326674308881965240817530002094454436809861389421660850369804067375559502659741262610416288523912926459679546720951921356433269280167962288067733301599715441526714203637152038882066322346328434370096602379342331864576978909330296513792716193145079795454816652164736786272188981601225987153473449677358286679240785540553426748574615289269839954820535144185867067597152577671380783264317833710722259245967386090362834276380737800923833444166157190382760662103078845884335847157156691484823348236653166345195045690965537023823602528773987535427872517976279172026768853113493722109881250137338016037280911597821080909153426922879268333524245446023533461027204506567968535959409910314097648509315649039107912079953374779455228941922000548895962345920202175442650603519030328627268577053886385632769779293299994785121037906337481480447768146597796822024722732642409465148061454513752586574155618629044196117502578757564696234958649055988883636178131265576590147444197968603655715073073117799517495228626774339295724711339192663087433579669494744019417648865298109252495455508749324705951662091368880708595853511972295954565465342828486613785378362439739477604438714221606053422908311155018838816555228596818041534048878353052911733981425649514426660218940999218672438022505482483548508224935885102821606760793404893892924012926020532645481390452168306219910475478777676102274979956199943287441556931156559461258479623462141517632778207524258084319073111995788715987435056690418000775164713178140733931215518343924510731471048163471248321260422220554927557204819662742634786681943633171734380340747325063524965530974130459718216271402051199056825800462983572872959342465749437082920381662656377784247767877022538201038352288835118149655159012393636888510530838289790323965158129803418495136471220032841890483248070564611577533232903340542272038068734431647152140720116400222590704644649217899999118315391027216834701642364482207750456251287168045851817014104126270092082179458840027627624945896989499628096598553920184325243568063338792895893242799025955633732588852162206540162033691028034239844707229266561377609543879051661599571857874210085305096563683489236710000729143347059158740143689402972093094903253683973166413084566081067218635682853551112245339952061551607076932424578560462740640193668512771089575020679462844433045859371941254213310905, 134982501209756040881306900194315270010490390649321619372502198692411125974869874830011375144338523043872711811055315541996743572915949773658267338651949114809748808403085264263891665725130707219271006708101495636329171049356311736361160988705676581416132099831288668580129136022926024218701494496557559683467027288721861865049001127489218374212438251808763790746408611945247934322949534404561931920009640720771746066156813040237106436236077285454130077230555580460561467745071320120961814117492612033130129041886045048187853708188898811095752799992072590240450521319347370808273046104272867810334593721332250259161252970826566971586607388927682605052101929712580858354001472203897519651482448010480905695159140384672936850961923948561388711033643175610039511135335138603008585267617942535606395866777200687040657870333232445958295559595458233461424627769163916144604229817263711521660133847605216090616545136848391930287386066702012730456229938944286298617874051521058341747365649816294784990835285865459197255144507859450496241970726683689695292230226662001837902158779388957613598545267767050999438829019474142129236783005052892263377280490591476117298364907439632860692740704939965494510777749001708986873878629665375312149833126278754100036782304587853610047344084469276197877733096195327104830596728643599266727425946311405565854746787710698233829081470782013626498655579271484218006671979077669430242567941975116332762831881664106238954492556893809057726602068626997180406477235137744583564643411018265440407162896100491063168612492876700517283214366951006197282474880471995884292477353851976269534700974716000245705279205976408833989990078085294129368860718330383963888123548027035063745731615161699464235832719754130559777338259894206104856011349078407433082956586169312828933246930285428188016688129097990777504571089757828207647363356958846718235948997159436426834730400497351308367574110585936436370684528091689504874697469702194090046096189189619320331084448766647694258652799577813606809971817825794587668257066578896485781349268099102566810286220516429431197902214414814714793638572155779287847884504178012322669145996889809433986750037175534162726577567664251679648019594082878730761043985480408337138884783644281730785210096263905439656937169924176143652271454604185411145733118823805585908699826633855216473901166038832957547720991861789628454908782153270019835627887920238519059966571412211011908920431085291188913042439235793018190533388935374482697335129967627161379743059988791861531878640027178315868197713162603396779242355911626304112439714388498113081950968653030123310900510150523079645929184430610539034710577360483454024371153072362703365845277089943076156650018382827538815720824442556067226872538392971443621106544475463186247341661427269080895277838575711779522017634994677202547720227559885812988525802513305492904332360840960514886457423646927296991598165724036769641890449658563826770675812948325790056992422710591118138086334937171859485809383624550583989177307812089879990193583083648267807846955686372938830109664169631137859711281852865225864272471739684329224287195298414272672481960013430534999203550923737887619886458685626896686388516775653316337475140972384515181148568601181028638811878533422823503670637186377800601309269062012073198857987502893537628646445349926691472923914318555044979728242986451698433743420396528122665888093269832855799814482001798588436416455554641387600045617591904047113945146825595012016623359651351690938077949270510957065898153308463374651359919524460175533091966583485871662365459357858616737886164290225784912843053384259790831996822851267559984032675420091276937912553120193368221736534749932729491811331349346493433004037260049216776325822185363208492648819892277806701462797140818417713743918402059957370838292529071683754326887079739458386079518663673280330624218100182803674319036125410111037144649926206319994014668811921853749948275203239607658485928329696241255666788706885838618905515309559821556266489475800389682922815663598445111861876379045690979296583892717492724585823333332984164929276675879713132102666520500311001214845467251905132721417446650077045803765662716997399549079147451516696786904717578439862373927155732935440622710670660233600922843776765601359782381523800440629608086811860857102257289825165929609783514996350420198950909480645547729365763532470386576009610546971882468685097746554662930096272062186187403768136564673289404100983096342675919212154562359921399112438147075185645701850415524396208008063033080652629766485889176509606536816047124791114828793462195232734552948557470609325895135088809754463990869040005251354553079576449480569697908549134983317410996158318090675113397523642322731009042602432098087436787001184909351544249330914387486009686760654031035299262354749670122025339459215009191561237644888467100905657372268074090868629735324940338564375178041184119035235269588524311296012489401269476199444820229341716420219787389854068651926967220497290022341043582854204803280142738575096686460984054206051488943594078853263119589415046614509782635342902943456796274957296874037389604647351174871954862093411818641170924543974237854246104622349232823103243773110253768336038097440240327868782961315777537923904163334175275731095727450373218655284738615854501922207389898464659793219612398907513718710491263831539059660289286682161754060995541628708169953141573176386105862610510399586864023440374539489968237373633240779835738260025946936384609541308737450715291771796889225384901721021023434400995022726279484701273782554987443633784420839348691990944796934317514859217493898507851232114998479463798968074110052315924671847507213986704230893426662379554945644861802860804748138595690617252341491347215037249957456688526612537262330943158144761391068408682697368910721570152186213838680221041664634252372193931273440703197588413393138793471479524221470007456286340239968026137829983705831989153550884133109647341404156165136913383867820695163474483046391809640901075617398922758478508588602039785825223617700538260470116714596723037566142390718455685293140947526649729959798266242304361156846051282526781753696635655490119394456823375979472469147905455807601239378064289145197189703650918521818378836478528728586267471950211391280158934862529132281254688326244083209514615278548699673339734885870658784642272170587333408281139241489062900645079689541841606086969050744699034596111265622335866116913997582901749050779424629196484353137062058278905890416392359599735510019895331905758398559894449214813354227173231937298140430478390664913735069862794568301777812976034867065426517354207017706065091553046435655713845641597473936200399911608795532660296816430952232908848749232192770053761672923278607198931242026925053527449023880233062621264563024501434326102214375568233739895243164601057432537535968903842223412842579554429599222884197209365473863543475320653060614603333020726144610857569595159311325352076783092089239873125478847649597029302035482235228222299583293273221213660984048153480204214357184432738376088686763565742494321436598560936277912483056138219533121181065157859905722003598668832351677903779066103928244740807694452555511976747691164973469446975017349047449715104914448398709071373983225576812520117473790653866279546439493108615246668472457718721185171723354747030707605632262917076028878420933321073201608307298020510223757496801918309286727180985794750597363102181452651210369006580227882167264800450381845322925679672935864499346457389843682772365257781588214147795502256464991397998360988379104519177129752022673379578769026831346622507707835985732294128614811152741704623153093271723332670521305759561801533473642849038661770161938165125271802939174030302260514815424924535563876012254182073925264542596572673468909151827545235068233998459227269434624724766343391198585538443622694239671990879450742679025547906350368292506874249829783494011617537739387007984210031218277104493542396195798640993485663997628960737451706415686943530215525580552280097144746873195170583612570610151467703471714551492901388552489747463075057208212773623485709011481922750115159650625217703888317209077319341595575933617796658914745621058581642555523853678903647979729340770951148450957976062601540710138507890210619355583659341184718726332109199130699299035859254489895799583690347551457636660592764769641447864174695703271026625706323163997429697959779193191276149499083685693322471910166365184962080908195411556389468643610603889973282225049884907527836580962862502532644791279404629515065729498238003479246321142258284061949944402807862953281235939829911306452604774237547341620029308169802367102721568945668943060519406157580281647028042851688265392432649303441790072751784881525523086808098719633696002358612778921092568118862545521636672105477372990601597195299686423782349414878535854677109236177016052653088433710377875178305533869961023207795553031075552362670180811220586451193656882263076532088415507636018873700107748403948846537692068826009135971895313523756930971912277172486478223557189805632279610113183310790999655954728007994413572611349900610360644903352677598118833614209255299860150943608864630573098961455980330834984150125132681453271366040410080154756695393897109671831813810919965578981185500292088212786881833986971150669810472345233987247758857370254955036000222015601030219496734595929779847642303036786308736129658122207535977410988480553402134573261618430394213236149312387900087819744266098643289897321072927649968650148897211192781254931342333176724249065498140273825667624079053754082575939371291723020868942308100831806871643356111336904409808023915520252063476681283521102598874107693285201299521256029228138470987294304109468619257182072007201276394516481744498864683303673113972100365323361717651689853672559801678082015135764740450203032755266915083603295202991166427801545989592144930111479406260689244173338753045421040085586611002750177801303648507825343802024729657725562358445635993186107438553478405462420933242118238557882283630585295830802241957859478135163664166061124701182812601926860910868089345314984320866438813777068492408456252543850680695319274731570671148349618920237979454000167012163769696742172346777502979415980560866830222419581367996992073560853303743913357092329756850574533080128364386860525482209300213049269887778379641027916648800733157584047746099404385608159448418217565411413707879440253820424417904566794913427252457373546014042468467401931436505318361556954907291233680621048279320603903841569588196798994819566408923350552895663117277498362983626290339134508705760933164528519208068609064122044307753336018032261776546765493735805092162701108740640991547583565833628035068705374115507357776664472984346308556682922367634109841499587326392902696430529803857307301788116185756047397039248132213529260220318501766282932285059780385411015012058813299661886907613514632369260442101710159228185618411713585859273946449816952616889109320179957754282655254565107102364119390973881041264055618685071576690117758604053740797881741025853417714796355875800651295681047109154747695228068673314392058668309332106177932974505757918958074813706771157489012389901840101240500621108240200353012518943950496353137616459135071623706859853674009561824040857322450211613818428650538397300725030536919146293185945758468989377903402491853043281402358811516195183555039464885523265062715930503873213367100459620092076230462306124733252937041060008223523633656410660744476607399730090031570275513286137998695235730166912656533803703975583230934269333829443032283473931658381367466954045488143703086439372452306944411137281637841440812915932479457609163802376364892212289341315882049464910546537596381776722449597968551747282087132634562697716676858961559383327963072129720843743800213995483318162226159511365602318212432567393403695144640844728416531131069472572906662706601348877645653380792967469892602175307047357515003580321785667508583292367806480222686425673794240687157249794704250602517839654135633794297818074256410708668122580340705040523679600207895225762186063295367521728521671608989824601243382078810916152511603648247769807029878675437975316814993040647243993238232077511521445831378273572501379337528149146002265625633245670988012123876976281233976689248388696268311492182967155175172865791150129819588162985223461727057482406896108663846513604032035339800701520943457592647103068756730625238585211538904010431760453606604314698926865545631089230942650711909806153048851690398470595087533599600831580332226116417048169740580581838305922663207142145792883379737513531591943847143527063725810796361601241082396186893469837081606571894765979681129834656079034220993942008408290033244489327792140529423060127640257010655907967708940422758412862879392361742398590906296850845846444491603742531504724397922503727071911618328063756707740091330915004066896530890147061883576500274108858116194790589517766900710225599433479425562933151979, 39734762893258779193051578228548950775006603839515356658451619253645927439028787640798962675962315993057557981746806706897314476304913893680056484627146298331871647456482102712896123057899963931687104389289883742938347236090448841900051775848932733104807441972135469998634591342817208761691876888060804299506624544041276245254957405525731439178088124014498672011703818701143025640759943391256855077456187704631889255842790908863649285885151871281291752616395592622396449329533351395872800777352211885755861658500445858083620448349539203645810039726859123307384371263699363283495215945069224941033066072373419088588520971348401985347281754158566239406148069844279563181406152487631430406036745090903226110158911137401302297342488628179394931143670149276396555255924935471724695299008021486048653155787542189555492387512872088826526270119863178858795316717874282680526262833565680593768961432445892043644604764021424608296040497030913146074907408030165005139919419859313284499515055004671360766807819201881170182934759377165409847139029411444335135377250119010835886748923691672806755136951636730641782903193200498898015413287520712888039072254882307374897375928777192840099036084868046994274737412790697358070300076834099599606065174021643599756733532417021585896902039407666911407102765383136211410742756335865102880459156720695204736070584290435977569291736423983154709097242246374041645281106063675891334854215908478106291923114918852325892088111799861328719807460677616118221543431234947385225962936482532189574661023313034593963010391194959670561629410988176805043827701168486836316484282593149354952305889602402249824493941924661188626897585058682096338606431569048815246818634270211330492176618327455661532717575496165876738888200701059593864708858281615290330507029700295626658873674595716451431610025707162659007515697876046202342177762664569245013543486755864581159658280360740545941722510399696186555980013991968741457345231729650273183898532994334217993911460347458000364213367962585462653243883657024217309234921489108451905200575386956803997566527397831558692644939751476651647499313356241701723260917885169153826400916484665712656429316918761158169105631654925498149801766948471122622242100492816507473204756944541431964316699315293493060506405806814781447099172358081713204718507085076174626013292313229591645656163383180524314157589754163376595197167942677445063990392418614178057193644094729546034547361487832615673422580993997648321658027802017061543503281764890246458203974808948008571925748279808579049257372565315328493418084907836862247979031482829632752144979954349391306890164015762821048590719272301080894315038015416149924861085255712790907052928228453720459091537447262671519365808016663738962431215752906273179492735253745893455089055338881028235803561725640559177254499397637784205716367970419349805406873049577318188338084890524190131445848529815516033535848346792793131285324183661466453831797383695561160463819496178051485133024935905108819910268417304779317159514625607577930995069345459934339407726935246639029488715923542996224365566032878856939317050962129132662636526098348222881084690782570799866945681837241517328932235689927106524571626557408307529301645301015144265964213251973446284412563436315023327275684940732985614834399190593437820793092434079515643540164177594854529554521855722023498089604687997317854023249626112769747005960289394425125338234989185257187408695327156034774469349075579258019562953884062695263599558199422421187054462038276208349149077251137630956774419825253779931243470882159746113310880735338709738918847129225594504552492521731330458723947301735356055432101664382740138438920760473142858509757138868636215661577017649680658748906928894531418646131873443102288074926104330391568958023382473539541264292000346602108854911745446237008440160356914333733170210309851288599252932686089343805716416955453553522901669846907426346189271369610794775282886895497068025435543398270684124794995635407270015801771738955558598360245465585030663691587805099444760615976325554399256353365783279011958509282069814996792997010383384008669278426466394996458369492475772450596164008008770344642842325967027865877569479717702265166187862063623419480298957242908908552743492632919215939260192174999503432168331342398824749257678817537822359244453944946152682872747263343925971788146798805495174381814052863568409231664070583994019376342501692682211426210561246768547669480502613256281196623712387224950906218087050533314101110260354603136070922720553128693213836324584663297092501962244026794132566411274679575569958901311138657297364709491299929686642843782145677883831854201938225846193331725805023408183428357822017166816911483849741978313598666002635465990055972295520564982281496225485637174927286276065696094444081356240184423739180225234399471268180516770986479134130506814989841944418364028255824385287845570754552377952103585426806555700242136645055811939482719707845676102456831568983178898570700635089222522776899683274285914618415135233663434098034022928228585569989513501434367699884095023878008811162348141920101096430357611505629298142180292901241515098704577309478071470326185559069119182277077824556197798850125484654767254987614155577348323639665697673448941301033148694435804065229130203056925085125398495092212763756328712118644788375050255532501744300486331896191252488315211142976858953953306917641576345379462594961620292728386551639388440953825980511184479511083448281437995903530483637177394469754100474051330481704322645841167474115655419639388678241848986115551538621701146429787907206154629589934363561066617461844769543374865497485373367220800822291190428355143152666267147156421331202839847424265967843645831729947772421060519290924310089566809522529126430603447523186851896400273955937654286090076118957737728342447137750568289449874893114914294379539408510087091854722791410964426675918410274123562590547484318194219191624550354982610241422356135700336967627190486798190828248160179068971987044074213645863959390340450286443163473981203845964162039077488318116303223658185794216586468872141224876141526317522094540115806200510351619035235192281570757281979191010242348404516390727908381058271580062780287896642066251169455463717652518079003303283691200736980134333454687525371900522903450745186253857568717302637363273189910454408622490110525690761993406925783982963760530106327256713432167985240593712961186381584756956168243545869639013796643607586848540758140864886104833548101322604026781924529733740228129714681368568572731171928098926707802635809042245035281528735143918063511208063222383486702493843271905065126032161096041820372595268565085193463864063030215107695221209600073388195135185846189876748247774984993284326741702966029495264182738531801746617380155223416315620657049556642877761726790367444438146320233945015652030079827052219427446159328646936215627849628414035161564418431405170787757633124906170651311343980094591575225648305113796532458402506145642671407784775960985198976773248259758894869621401263513663730863589908320078102399625978747426256917980166794996008607869904467419599374021020170659361539083153841597984268306597268587891805087812381961298689382987569481280130921982900784522992433204078570186330204184086052836718814282405520185096094900238709057616725837787556054030504273052074232379353629221206865488171846906624986965289935247584424824423341816884244936397202436552791041423335120405741105355875202631377004994775048897737839757679552318484665770631825671348033921465448802737246984696110957262492675432168166702313811068196338684777118133050702672894532287841416886136204056728958285437981040180437941850046134579267051677803588311590979448711371179751142437162754777260054629552665617315052584064683352091706656957213143702216379524144692710379627812408444181680001985299501136917916043415942290358207063375962219958066787558799264958605127996994570544218447208271768636958491918623166054404541803578081143537464273651025942819586935111865925658552921572695854587006139323071694903154720175367393608237850050877851769008309885293153484888479758881793712886889640873672606438683879628165810946925252467986997710386505153973332300781709735469454961324034053007359921148254988502956865355165045043716782317091464430446605904662167246976918516387070632304345117140463527963709914129487145896321647014269205119307672740493448774404033959577140268181314470648841885082967963671938449989602458812544868963329967439931230165607220486416490809125026770816726991822790592445258876110287352875030212450206513199801676017211505217483967237143841869012680232743711863843544033404531532930492384773082620339578225324884517772812578916255924397171504452882591598635422367604877465420065147699563918909333667608394473776158445346093587329769469502302364582408136953792299379949508181232437514708636544048823379136082228481683708466313431677066212199432652707513890395295064977141103435010552122815064906594018523927320466799837192401537437531793386077916413051242167026242212563901569580777516847993371006444887826949865198285788259789582986149100744873886470374355539197493787259053075385743587695052157235605268928231083137217201619456565622990536632601112498403440660303642617957180628555078696631223876188022803781391444367465266454420848384243166100294858010032149939100942941834922753074539614888777723464594086779016840245827262092552300007946375211347828550266288704801496419631953173981721444912112345040448555835394697053321515037669207607647144211505984325935911177527394669191219222142411557798610581043733475943636623467855641769927368782871038888105148455281758584393840885014222276215026294356457138544993768254052152813392927152080820345950684006168726941195578856198134020171224915406027104343120993222215526236962986846144366290049282580316201993650649584080866502998209695392663000728046070570201540862419296253500747442189322945543982709306274339571715102081979830769846654889132819248364369725212321334263835062582055635567615827527167714631603380017575577260651331794709215261958356616589834485919001546333479540606694476962157271738944168681836178865302019916332104981986333227360915584317569669741014604953982041253547997504920866730481583211915089683750932391833571987234698234925971188418251422308510850077523112425991469217510001273552080438997755605931468847360480039930448347782622828384745959129375970303697383825725899083232916577573749632689194345924315116757004812954928986123686638107587222304503486477111862725616681103604255371884484600339671495429337114443525057438155462755587598432837485861074300753742829509157798244677889445115223136174769176694972651668407574099280263760725392723034723006719466371470575265969035596647753841699048950762620987359728061381119929975863032230276926636436966416812677942589470033536285799910500139882128504404310804125283740997782794520210562335101735858440256425014541887866901566479735585741769249222490544884421756009357258948695031471459914690578882376243380329696199044642709242210306588301057240258231064486764641975250921834354074819106306380262463331537543036305142586970371131708153525587347941333418276491790917490685932787340278365659691682550788323951797019676570482833620719135223893211594782398555634329878404662341024074834172970112533273636723131660972284504224896778004440129019508965802353726410008399002685724102831987288179972235022229804920902455089928108149782754504956574227118716080524752393078726229477859601354634365565450896696690844842915257074071206633507094964901828054635067054758169830336565527132577538712788930634638659039006530343427623143444665521838405142695276617743398674659517003289725350988161117477463277649118447871889620088409138892598403842101374126376455245033368715694097291832314150955677928545695022407879901955202178285251667888034759087281932488501970124463872049191727572151340605556038696610969206349180893037702504081933207648542470942889310934708119446684249140358613871557326068040537342418420531154104717796094675050825801206924679532143565758682467032386334988589397965117289106840699023638685359785055788738243856639712345271022906525498633865225041452398577883945350852310239804864992191735761341254955461061072321783480451679107631876652552433477329186051701090737895233029573488611390712660143063596360061339158431613986682140721041406343090473850125900829764601009003571805340397748493688448732712938318147522334102995962428867510582005386271018369003165250501278737977941192093409654653837617394041731593235081138763679655075626992433674121469499787091475580230613918273083937539583123697872077369296151872802381947384198555711893531946020344595585108801561099302089037781498615351221104252297715164652679542707848229583712515507503703212138580321068011175838527939050117261059805531495462569144510463664128594028741569979672927547749546207030111718406875779679726292175261421473616885838913584388670925834847807976978264825162203931095400121527862812222079293056926678796409410429878712994242844848757333295254856527606718505155991309036097051331766908934408936069167959459078093469219112756639203504250337724513657265896630448471680172790345735299194588144672885153309034922432991100397142269708262772750390242377022180678068254385859169776651436889687635793670074528370294356114956323031238665805883954425291859327377616301009343800643866994217363569872029261495376637861684220426781160298534503783102147385392242265019435778999272216761720032467109108140947793926443360331984101321205838376552085718552325606190744149652936921554673597982365794343011749904602104000598703024792924333411232429484974693170989220482644619535568409662341546860429691955309912975331190371601493933795558195675772771632296650587450967050464874098827362353702420526081645032098195035606256308649021639656904056711460932249182979129625075543525684545486933128359710948777972787924296210347552756834114466256210153097364396611778311708703020675217110494956509435314351585272341693683352556708867066943679349621089791964713012079216950085421001583681055036211044122297827871924806147450794924824812406285722061081042298372966852902432959889680998201789193732720797314543227729600172051118437154624552360931320547924062549062683440682947674065283631929975320978716725173070673697630245699413864752770537979000499864759826155243856222363115299645410469187902737091652990328001775868159913816473501679716930428658503667195997316703048824740435198204819010541250542101954815245383544942578549904525565894750151438613029055936518605615403329055991481400915661909248031732906453605024348971523661974450526076814209403947057653889855188125184345000501123094753358555694781382135751030108482257073899781403494415682061959268404020339519079904856667760304259964717227418226036707192305283148213327008704513783642569821666048393446869809410651134778357562411810511653868582831696744436187346030864773108501673480167080162229376620297870909677303090202097661827399187116946080412108436091247492449002922267890627483721495578156575124794172954825985107976954616158635668391697934935076939167984162260096874171645672396195633403237366985296653339987538551566149909019753306961413358634017199923772733289262635308644288440538459728135990018665212663802927838556005385187049585493386292183277788175442954951644991800207394049217487392398554010989238567141883483428106733795512039126386626165070254099775691882079259362596688980015045217355697154655502088549503216829027481675485104570865776533744792094777198049537431194983674969985198136983791663003684675781109171698937695797495323484525134497552732807565141416588899185341061442450513740901842981962920495352305254480305191390470623672670815093423429448764860478732607563374952526644168694838078433392886883939013374411849384256335428057325489769627082298972982810921117921083160618896699872912665350191901100703971071021789289714121893553045568479720392318991089808442745274906924743658062683018873751911677644087938438481040448987130408272839947527974184172857138282703449963904992713693329278168212736771656364249800347457483617209658026844800446746249589019787501264606214210036929424724629700097941016757642066731379388557872154903747664063616438445471356938988676609541564897156651760123543344494815985245853921399032394012233933008612871461117049533713626011831571746013319021854712700769595820885012733005496046414697365259118755898769704940122575743640730092583044447129432358365437230079513713330127319895890451232387892459876064236347678072601313461538982162553463208348279646672548223619450328631276293245160358953775448320215406216762661925856244764461765708092356925102685928349730544433655491994785187950088067205833885637028456750254336887943767745802072038327846219256810542252718343716431078876505762275801192978295563133167805967569127336952309867281323271924063125460320697409482518398308156633733382179564574662561407075230040111159057421714705274279878634177847332936094987165795501363991472323085140624588285590247789872396339363948827149046712120667688466585745944122698444866218087733652149956725995853384843906856942398061205450928905680949824051783592243006950998485890446283966409224676686946987488012732446110511105371090058020095387439414434951537999275873947469484025255485092113955587254552826071822117555427144218709358564958565324961703932223687245945256747342150343197403258790940237587685482876776841644753198770835082562107924232307219866967657975196027961764115578818104182216896954708281850244583652835781173384122595214603380317491497247521960777488055678309931404672664677076732874144297129653455326736242832921843709620507127954579970561496926488754281489418307663023776763132326453503781461627849112726733051942357740252100189553045713726761165068405321336315750304866420055419152202105817742632050900460097277199992148240559930314468583418481091174806808452412417428259256054532292730010207794127066983632395566426737023085527388479810894688900527635756279901101324476908947726048313057813645076723765429087219174118729561986528333221802751035955128424753715287432715196151407225326633640526817935534932837705173480636427500115390998710718623044917815894564081093135576389656579748817687800797567351478921743320858407753060176970980540501045718229623544168798510872038319864818158066895112111195467490355447202425600444235280171838068104602759343854387975768576504928441622242180843839504697452609046558084678325839038996806965109663033645619282368145340062848191717211278138668124167775490285056120045463980195442423638167329061967933038001991187813968414046291493748291728274761904937311842356862375450189428686213306055666334347579407177453037074761131898325472774590964112764152055338296837678352771494975765698453051606961869422265616732705516953603056745906492160012250491716595602602820877629898385061819480536447589720831333632693141372659450475768908074328269775071528613322874096165877789568925577018133328508121057091162873774533961502502756265971645261456135965637415157363562354924075237960035732410130828900586797138728215025105595178684890946595539492049968830163648134613531687521208283337309858038616527774256475388346673930956883702955684520260247320093287258250018443263855406420273909257977722070408720615744608024282615502532711663207806764103584802120530477394725105783482567230345860550997019056893958848182868121990779634390420093945756654217817237935058627563100960297283358931296807894714573988795290492502892257946686975652017929675821434319049410578679967969514102905288951511687705691275400155558860231533423636465965029999720916410087088273384963605485242976544607133466117851667331895236200281682060939938568113842799336869756287710921582505161550128842695577120967228294605384486594287557390839120364161515782138740002705978766615151941903397755743632757490572150072732556726190965221415512056297331215091482554409470034947130156863230783515077316439924192680370307045076982920617596383048346036253444928263929432543919366622527377882588062119758663221756288645068261353999499042260883304940178191541402883259316065141087769760355164570507537265973966880587290161387356242316904365629003878136425369682012067911458267771531254882039435354287753143913226870323943476307139532548333421804510957343989350522796337115337519537641158103129258312252920285130961440983148247630195879286388264992097901268854295378773825282051698304182462726706410952747454623122940890136786766552179135122271368658968983779722891457311438660380111158586959478682422277006468216538167516342192152869959188999280937899228074072327665266237630267271145522110043370290070665908953952919154663775085537579866231253836227055654311580588488017808686222614827176993653479566011304130692802745979767381626752761799759190223372690581349756114687892361578564656056200837485620024078611528937369062306250541038944961512626104508013732665682201872295718661198885289156494494133547487779533372455131399772398081992953027705636758984561010052953859667159273198208436780888731292810898489038527652860808804433635382669074791037001223664596857659947277523019851318979246654814611443598618049188991517642414992885198612664144003227199870374988004243503351230932407596286820414430230176786361289792304458763269186722433396114439928508677732618300689218540541094223671209150291401099078628715263920035706371847702142627158727331131890111382904905775397018042893711371246373544716207372357597602456783771588505057721385884600101404250979073747756203033835514137876742756733115047738070296880728606378550790150304633777980722107517440163483921174819041818705712738839706771165609052953709953968423646056461397921580290466274714502498154222527464262905431758270292328651337566344011959824812574452471590049939893483641970839446843738971956397303289750366711825715100929143608516206545411573127354303298688735350897574412643863663892351320183785873541695272303342586773791720854437205241854900444302405694571692096533653316742314914799410909701429775625646740887345807413872520142756144828134287517375857246018243701007380353619966984325700410299228869244049431548055727893151064639506854699556057525708871230849300578255159586131630908282468094383859783968762347862859808461142168640033866965134118634477139780125155878731008986063085267472536098273347560651761747223698139517207917180271612957498502049690065402257931223676088802677428840762008356159581008945348229196582008444322546288928224595233376558621385921512085530045020178209615742140067454958890118714804544161516628130984243302106044962411560135727026389492274694848610557574384363391513679879315354759373415090641405376189654313487324920292014192147664310116721742613605912054924092993623746093553854726169885731499083359559731187522756530048939183750855409933963746081778750078607016088184175487634400241453930095443770578427761240128210070064632845422683066353056473035849266976257309924046546908266861547298434869930355525604166777051561099892867624336619944947300212409064039389870758291654069755663819654612626315388751058337430340955616809741543712025093209600069643275949359133521197195366899005790772470245918210520886505567091156088990929420236330723101999364785872113449707585380685457064300601609600765657116623551157694243642406523878375144112737199170749540835756763520350198677492184698372617315793534996442474730930576891323625369319455957207028497570395448188612502462478379071422039524768398425587617545788465402521228736353217304096176674887067964524061758045927213518476792799464306711424730675626758293181319998169537577022463116352426679110733278043290632912005082574725239937667670533311539812012292213809663073435807824367883538006661599340367840422035929922482499748511022792185327825672717366163182388892768343678549191853541496150314305201998725309028910616657121021704163708784981588493905435318426715811508181896260289734748477631951032718839163198440951847254860604211355644146281676709964672027944793804026524653021948049958057239686715641791400733308254193634708070483988139108683391437685885980729913562249009292035923508504816521645612847509782064849523735163738954580874094220742583849348716776544498189869555972296545745111064773315023079224790305617235914305037897490831193871695839350129720798977127459612762641220325663302841326810650170902160258317955333202690992559031876862812521443415276415909578935324265386592833344240991386403845080720696964753726145815293336893160273605806199210979127359517725526321015377036717948848460137221302919547024018176017174333266851739420675060718321439142127216474971542227300793162297899508899363606249698809200383431232571648950913857232789932210179420214238976778708636535768799926083696574659272258534507413002239784795390319160521581333762843245333362558970669093873397705329157361757407257759367360571107805359020438228646055627148266387178946310694418015795578399836540837540785159454835773568560808589377434704781333008575424283799434550462081449211516092322943871350212773686566797016046209092315065727204450098208502480730610889394518506700679809779406718510860573371347738600872322179610022063263012104286893034830622597766791721395016122730767465224871928429001396740305731391438169980536234796428561095748029736886249560428945040881815629330636542203048207162549917280866314511694044551328723764418283009567011836365901281983417373632214668529904557321420830163204656308150756530087015403163379963363966688239636189178647006226504874340977972848051167987983575550107042188964972319321131083641455951325668472019853208393645297514220632803341457682906660816252817726641678007179434143830106758203716105956015198003564206917201001700707785135052412436890011897697868754459570964077833485878379175494387671509933679899785428705673640016668384978572021070763957025965810161215828803862521320404450327677471659252594856293364365549446547608804078492256126562854304943484348688970740579255889449559517942347670930068170985457416846231120071890731513561232327517555312243493273598474747916218866162208000; 24 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 19, 2005, 25595042, 1897921045842626, 5925672188863354534581709072196, 50606481044495593096004275018733035430525296894360995968282540, 95505454059197529244425447754791304577401787380566035843786128301239558506982015744446244591876012985048508531549596348410771, 25792333382977983051391208981625726428435816866400686422963321557581575288292688471869514620401117147956552150025021268740471199502976672506323156236156311534273245257212360353809234319971873867989959927933311845247502576137601606694160916712541996176, 1104725723374458076226916229874462610184956692944458121940725889935398812408724933217692774906256146348956689871788218731316110681937732811403149400168806286671029021045545005517836613933167059834402107539926118169520187899609164709488095533957486480696342090525380891065425981637540731290110324812010167030743866141131283045582534581573250146222820916012478384652731848707765167804271552617635834620158113395731562888312342992411592048009623991825041349646703410343832779502555045157344797070229018249, 1440815710924250640014182790303129600882192219361564387303598300275037052028244982229637107024950771157524023033019609744826949261352296160197876971443025260536179354555025110042759926377150696333550868819852077256914649429387893249858518174568272398201729905007013535388853805623912253734600376194393550781333815153370865294272193666071965099736844648227414805003335074446251882750640788667727639536143120375844771768134512712298156377535841953375134101078833140964921783455890089034551122298306163385038478413922861205398399405457299977015651286333739744283572541854074810277183738566597159043359858048912264333051004418853501886789165838361490105686122924377565577856381127777620387815634198678972189296893835710348340108533587095517979770360624392457441468612193579735173496829154645292556103031573326840100740925708857517220792469681643629269846644053697648608006347842895229473921970307340876975724001176269969878294273127216846346472091020301720251865028536672004558851832579999275223765774029526, 3799453015750551800097965936391761754654066184007976720011427741550057962275083227144649249429339388500585612074731652683114413074323309432158859402674953523476055997079261392989028790566950645546870496673653263014897617301394769445171577906970222994030175065417979633351554961656269383287019901256308958391974684006679350957160445117270780252497902600939005560494811009473557898812892685357851830624375823643957328587975663897788218078711961757849251581772283978117419515070470327095871108923886963886855082649867270070736116837117102179334277252001654432462796492426269955879448461933357663729632661486102801559389689369820012435917628291385697012811086934562095555091063480764203021031014544659301626184074381243375604127125404794453374073651463872968593597322560745638597220528013154042728612733127287063993214190747672964255887763134899283888186543982023571471043420356387782650840315623107179195758258689578163162486588708594616061243627067292090105927954689786055442481970855497108587500712275434114802434875446137042379561547592312377767707290893825359025025469834983511231620552607605590189607280239919540413871492727236810545900809815225348881377380436829802571018807984041537243152236248086184589339736625237953322012444248698359658973750942020890871685595719948071041533867736342744821095003327389349767194752237002552116826242107041986980356490795018286714542457833408507845995184019659998052812123805560308589795899420556638899298591031428544698335103712693893521032395139997792495955136414231463106882768664981785205218681651523826951465314847892304078440354110763824836269811406070653819222868713623101797290449814749268233707458509379069558558966136915584060264622142481155581778791056101473214621431373642856983259536371628222194098824890925602904836877107649419316051122956870163242553767732605743257197808754515991586681195436246842396620365295126475197088652727858818221004456653434185186661909622197036079681746664418151035680317263581626227989359370815248861698921125983848216838151, 106455366824526980454092682084339439835215189331228136457094665829040671442114796631335829138057923260524217261863022401724702981160855056299958152168739702763432379628153402491109835274303751228194330772565304780840796471271528356224157990657458648369209326658961703428173574051358045833837175895859749661852940143110436888942917249670626741357621887600440724367164097594134065446256417697850239652578891532463062018752486546138598127898152992966378925508867493401911599603078130852680637850116446299487750354215072065980198181435134799227369415188744487410088362985909696780817638409805807825066933835960979353529172104847292819221528287009583733675247448193598545389293265798131445400388992647256994926443988127748823432274437009978354210940545874305108209502040483323350568635769351315511842269717761444466374666453501025535965650449168511322801115076247894988995580325400107216478861529502014801253328245343394154060953169670593262688427834373190921114707544865445518816540090161348867232330796570116829720821144328806110615731738323472732592009632034609113298165697713407622205499956957884910851094555803554397686966927694620005839270896854025188185834914343917361721149753592666364021619312841939783403325122090584951711094094152630074890856727481818216246834637661809790023952260199482904092105064191420866997406445945014643789708045916824926441265032553024502964555919600409918794165458331828941943047637825051904740733315715725071663578556802271599739544559432892669173064372182423381089887606266022795030749621423187050025369396674690751739979853919168118825724566528253287929517765150875525928182816475797230683765907638863735198203472827985228240813579050162143098854674415588212834096544901261743817231950590257019618528782842432481912516509683954481148587121980011601868598497305968323044279309830097537692173940428505395279633658850134635017347074914577155188226247485650144741323634585082615332290011891344738412968943152094344153733227382207169883106998481755985710843009457461904560575908203446437529690040829186402950590347948596927523244592461041630184905111638059006803996626785073726537822031008919133344992875324815232721211102435026289710071090911735096750590829438608225219350295853026541932625710144305694198416186830494953022538070348451848960610809193601248312027507256535281363952799810630456629245600586340898103318291145306527050839338497144933249185315122872429186442400808030659880725719731954191440456036901487066679297446118826466591605252233452071534979953767209275646811552781110068026522751306271394280475320075585393872382355468429413506571071802984288478798667775005873663265439509584804152324475123318121118513555657008296676481355042295625036751663275622814857328929424114516277698074522995467349959468483635470301891868772863554914594502108295353677958156820937110850862525909267486536750797203549334637326174189316620992032679875373250983728465196065695637872561410345998949429726109055518379326715093815730807011038979776566715609319366536158629621668894504238347967971223369770571707161600009730378851069302434795652337106314648251715984766022930886463101001924929382350741889529918540536520971210013489064527849643776703732926142777125135241775705493149821827864630208409559331803827156799551642624473537200574211946486215919028049100537487473071898601259562576157312764780223388580191913873465243878909296467983086720754433354916363797279768610600912427102981349703000794057134293132807751233413264473448124662011027271307193568436410922886004567665490329448160026845560791035188406668812148226947324113340427126209912633286522013456008769629413559576802874715706800385877644257567269436811394282465725520535207841597202486246510562119868792219042280052222287332200614516445280568753927038440655116459647850534243897594534244448376396462989696419138692249473317853584334775390249057660798343366421883921142623880875521384311380451289826653327216616319223824013130930833896024764588242518832986824398353940404966734224389054363484853172576041168321502384749994987, 12497776608345940183761895343048830250536038056912413786597310190736800742724687818349491916709883520918795384733113648289985476634993384967032613791019193140021665990032286475228125834729505368879742823260904476282569186762867862444095202892833739355770781706831115029005661299609287170317013203569513203207992585635513941594731449978980639370979143428229400688591151658686605656703042280824992920789186838910912926584671328615532791778923135655983818487188006401696386759413034961680596275772199639363034110222903449940518249632603406584321477432251362894399077847419092485530655955172515514449779732242210942990193657500608504708787934565097265593716502329431693680526182383148848512757501471592762540648563427268265529547850271408669700623866664047231579076764262827901651205678465971960765171687449126039271860754694701380013941566296975366270881697489874076800690180698627019961768068765627550658538590793395401925981023767075580625678110245891432228027364490370740045965555028052819050057176633599526208877583372034477312452668102395708410624759061406291919557599267430221625693681674756277887742532736063918746424460805379886588921622977005023870104832482297290711164349812168865384921206141181626197106075266258218823507614103740524821975793115107812737170485211827550832877123504603170073506128335695953220328850870144088062202523445127869987215111203473815564706826028989794482853633332253370036297119116638905921694964376112732646953959311505206959218385074890928134926375136988340987830456298039692201221418566347046835960624435902833929871318825299455897034344311131894712796927080791797808511228253224599748425469515402132681052510299375936173721350090635860685974690597410063642762646560563353655393239795200463766548266091929180421269785078223734840145876114589354137077528334000982090777121694880260322319560060929998176001044884369328494626587769693749804102688987566496888731197378582449080281206677233212963004213764743919525106214969757530153356182749282088192144867612903750574369682744357610808168164427377979259495461143732494084185529470557844132412214900366996112913479794225909593761409188407760767446639064548363949794457015422120873651189242055596791962684746103427912282582947929000126388024625630216061815107418250867134234839454097983482995550639453268146007849685086669756854334940439275816507677907253742759191240006833606215281149350122583571861177395112826884184126030119342924350489798387001534624035903265278315727462768834451910874251380477323188923087244329714930483047504852021510671190647942289982824637972477553781044223321113989468307466902936357292747896105893394832955826512053909661746469280418537973838244560928638934549536941172615155643982836014208759064650294706167444046621875379754004157831537155035872511560624448721621195298833573891500963467858400544656336624197702636119753126252536011321354093104224943457017362094518244378887428787411889508518233876865580967622809039635049765680132173637932876314005541449981290839870464360956141195445530151891014107013407694426485762620890861280463574973239036641324116242630927707230108557082151061772320220369843028248128133052846914741056238360429818373812365193778309929568636066896279538099654670403183090990933395715174713501346286748539836875646014637974659570313005760118810463557132819577627008887137211369406973480162594688477613884664649128593265825377844388654911907814937303864757898966240594933197840532727279857960438481502281876427733284117603646720525303477487800065541045340852060076052407025011050638667028943490145441036567808844750814653316670480998243043851953361485254419356641880691098000923466835526927494511050754506845495724219707113840464943787228708445998094198830124336114397210985546316029184830065949992768560821685437511160971186357264433123118622195006219530539323570371583335065924309804064295629337539950529209641176998937758519002159108225758410906921429185041207250905704245745054843262204973211379008329258172758949321346608714484513183667680859202201138776395957199707819114112952889253489560493040521302178293529686384333191241057399345504433501024205617782507017958188758056714476847836432230430694746694695662901330158861741934414670960483727664616831977436769142557074618982960417763081389077925618138990762005912546077784000129405848787741021394151313071083808130606397139933375982575413090674887792355198926256117030823225768996424659316832039222276612978110102947854093540118985864264011150861251080055794631732444653514667339909393158366006559497959585459442044185346675063118424926285914428988345946933826025607962904665588556425753000187263541483599502081030267860812203644817234721862273465326788909689752835568092502564248591734670941748254506397623687223361742743441385432834861008004197612659295956308431106664552317704112675097582347602779773351012133618757724558276203054616019855176394121544706740224286321103693264599697759956649394871536937459447663901619697585323272145584495182264630284720251625753861892775148815309564576367822641111099904166062152651868294125893779702369372335866582368638863138810578953097628420028311753622700651037662460626596257679838026353038667839344998418497562019501363308173521369253466203766437373805583410741003149477584203800903575981642833491591818887135185959927870669732897659821882780418831614282453710855796866282635371773464929232026401388638285274698564622395083774727836405629820307636886762334142024152188028040523294328050612081383676095877167939774453157928967867651758661121513706295000864608329079486875724599074188042606046921074815436842201986851289707587472487816571760794104264410631751934057638313369586096261300902861588095052941530085501445130456738118537154840550256400794089106591651844111792088737152450045222702134595170273698104245330549581665917666506741509048173951885576734998622281481795177154193647517321825047023015375014149406373294834996860422913957610033138195526730155891876760286522784261113847932729180860595670258391772268653794431162103736109237171373164061450496000162182583679768808563768978269314277953378574336594671615028512947944099641815700608150538758192961158606523857608916559409499614037076098951755029278346745993520226004505941549439252102761371629507060413198334479970615525086419801814980515720265038397174683442516111876712404808131050353839010405992360469639405152845320060337889375556537525161510522106203689288672715034506497447207294719052768894152545754851693199665577528324110698173292906522044566343872841449012226968167488514948447817294289634729263334703464182381539999787013450891706430065432593804454751827133860095728373786587521012105145778995229533479098854025116007321847732368264554230783660262579637248724627713324494901922948546002205284234115645391002901840478791784072450202429179927356239523545059074690550100387656839086783271127986906551276889448344984756036157932990184895231902154227708949186878166691452315563378828381468812005488499937171580667467882412559615700932442710445984026274094263761462923227304202847718622947506605088564471456522670823321950918801254800951444068872269740382265272494947736536152638578677760664988784111848108335725466566757332590228511773083729266447098487015995564134092759664344071132384665860072269109873909653569658877658772519399318796555866388097405725390716098492331866573611413544046916661448751850247863902714408743796466858968237548488001928803801961547410317836911358364687407626369811995165170748345016862331857898816127558002247636183494094402456468472740220594478363939187178980418793186904721730707342561948224537316098020539025462262583514286712738620236367805944299467915261859993004105579862129480399365103360255169106251629856785031009729365225029214842404690853270882605477660451887209039022777524111622190363409858906017043466645040778448743865613107876203129682045166628626767128299202146348451437440332426699314813861399499189570067116208056667248005729684781433867420488465758638892191066374917073514460908031738050113083073108018353242096629484281770427991915395200976875160170661290860207923476688, 170404369417446487942960220270018187381802577063015861567364249442077063138391600743782305183931765394488466598491521299954749846120732739873455162342521074742729974078082936248718333605207739170531490132604759322886478649324143375896735460573077991036549649862042219449839556547516977203442356146805772368861574012728540296650049749118385845194641163273965952090169971632401408504592581653156171055782474732480086316837393056054909186568826176745116733379470098770578412757756448535201208788832622992035735426468153356761518432431196394809253157142895986022604701480976777900850507903903470657473725275001280917462164107351851081090970196519496537525008065444485018040791109450636576362553078254253176937337370102888934422905473972745584530688982375668218243300558927067335224037350783233072670565855621822115648002261122838275828528280216589968286413727987186485419862063839493502690108869443749489298098473429276166479736292963631075644247868306730230806068557838550273553771725350024434822975291701566067596294796973511149742608678546758101504588799562314055697385300125651663987732429111141082802608463997133016634526018613426752587123259863543980859372611007030015099534570994343836033098916529436315159133267008995186667076047127045877956095326637083359527120386562247664107136676436702959242726505040965921881207323533658577497598121451017093379488163540830094029822402499584862317966642847694180975887657795494775268224141284976632421038924647231158737941629291541635398784561719447297640225084630125647187672420991879129797944783005220220314305600121877084483442685978500076273164191292375554736371722662004049240527008785074647238898163998616336006719918038568268862815561487248363658982991953525382066065085419135915125319726662099764626039393467083589259430985865406091632483535897293310591750280518298312964757689687451552835023952508744182982002111049680183629784429119369892362700639367252064734850000691991514077891782183608779544340241430214863139465609914323104619900316100059219683470451785189323813676059177108719591596887243895983171418554161237423395023817433465455388035896071921846132795064005538075803317800286139689206498904749354797850678808043720916191753712230173218804969239650717025588945953399445528487925162879469708665426221472798175809799124145743820260205162044329697312319598476617383057735517778511364269558665043900380197788814288996636497828959557662606839003195171766659593768915680371419573034463644253310521012137930933926638084833255231244588899418964067771536774739878730230460643311352882367431614861765791545574435017442552312660891644868291940376932263799395907796919339171683657942557363174948713134422183929824932320706612682260055012243692826087766488628894880919012302433132826643830094850641148709642916415017177028923381526309099180277874245158966775029327293870056300401226173585931386031892074571710906142954666914608893093144694914538198218448279881038333640259071813219887909737171267025289145954768991147538795716869325151038718395632243021078241989203245636379010707142718658273548603750986684698632289120815379622285023935670918316212875800652607988189407758782713148820660805249942606042617031816960381061734090742682628930347033073880559564792543521319272624955965479714677848209294715316122528517332817660092397195834157578701142345128706995043777957787520985720611634413743845222695677740557357722490654082033765169056634061133785709757137411659004508279677973337926643991543854650822018143752900734469273036362581702831844367894331819831596153983084920050364789528845190236086534757131606690449189725615581987596584594614985017400271400140899879990437573464229565162217881158002277195767082272558914381238483060342433817190188304314925383294069557582942372269596192410861158577770630798498432660900894190533199498397850157817806933137656454685957802962855531784577249243324945729742771163978754332512442798307259047305343110144674185901070301457185224202572313367911382409927139307397345467446966959411087936627152231610463686572351035710049108286302656206083398099606178110311327050135808571904027100197193724324928571866017552375316898430979064231638849781851796505774695809409796035843502436958020414442131835502734217927892229320778411684934389410707121638296747126947455077883996624453677130347532664294980272407862480091670558882626341737547242377188370778533868064561073420396134775265270154355172869277957959608058939809053856866111116914223032687440674454933281965955093583070013100754171090369459078737333036552943231209003523872876132033774281812745294361327281577813680071292824205795034225431245373357355758960496059034047742912666543676848601996189684520809161726525803846343030096050464113719373469929182466365424198870562584852329062223342753677692144729453232845445838491647126690062702906857246188292598185555053778956824017360469283347038213664236125929209404759510251743695026599142525287420862792069792712699454203176737712435260974339166552664306412199056906351994423883178869357403262163810096678209777618732911039690915586401855881508949963772116652388794507941608015979674354344232274343428669128055845178279803356109371485596218466923027051379046894630860780437782940078031848567674692415827952475099598451545392711264460100043769446944517059517449996407715892903816109934024720060151817266175303746889043756648946939876776671366165317943783189982835408253676186215843032067805355203323204535240273694896098293566636193905524305053586059316763721001109377294551341807285628000398455953805578538331123646480934087922293941420714898241918285015209473491306514901005716200398130173174835219001943644203057426436000528083430553862831388678251883688569185201721740682304240620562783351873470007366515661847097277772470148200705960606320263256837102512250786119997459328008792380352067952385262727098755903013352864936327755436644013437166430347477886951127626333401531881801055744028639008087180123873130480186587541132958421867252323618702284703229369824332566127881736630141583024633758582648440267336043283855606176659840133279148292049726971816448735901196721457054536241423569185804216110214579137466796501474343476050495384566029290713354138164205509912467071092092197696924045302846612842861470825373613186946567509751470648468045352535419408986260733354863996118721216754897149192139988801863297077504557747994087745178346188829259643096534447337773179575446077413042429417073615996411193058125565548855679215999320564242215620630850240586924941011121072724704393356379715537481556380973426337910805899577582033053891400264056212131945923526298673595041753199106682693861887218343560768856844857616856302821728962489429460121011109185298576007404666773196950419564984652727596394209488199527631923371867131549547976473721552632863710554850023076476111872376000418861953586422376936414016181646169737881908520664241353718240336176902485562365957612999228682574518804105201165154219758819166163855542680310738165317595750304111940065305204869314267556592737757110786701267882948801691760651766630785412494297850449968419084074711634487929775563216457878687608810229204160296939295226836067383555296682831824726436775325260421141207586112617068650157867753226744920170073200572128930086428308163792137847433900901052232941185991452550242100643992323655587105527143649663019904567567205957253405707240658470398625125212265457578852040684078725976114596600385006770522260328281690027105935620615677647182001501771843388875819200525110299864365106912752553855526220976893372692936570036099827554340632749794163921421936681533497927069078336796935952787270855267664277074086770901821787521798238876194622768758688348016271660347183589100602902910148902484019894810189167524245575365491301231009349637097243142454046640464982154798030879154633348170468870721288024948790605038369403128703095072168905394178860046766323362494886311346313025996822319236035023648208470674446897270012076453773668164249793174773304361040209672837047768665184041052508879055680987429690930987369552859661452935792047049829678782071585873849882028003368071458704867432855218436284437251465714725674410367354303223594708888813345917542970524767678974098844951100378377113675494958731339492620218276485164937408320400243945090652088633577976600044303320143199471114137320611330377124562852397695900743012193559768466594090408062043245559015426577531900099859203144753279278065551460701593520941182624168432904440942775794502515724052645975399783442463322757157046692267832606855496319712214231156135684511877887673215348604248948071983741697774812313295973192724579066602415214019701056801543595669142297235850807350456925576302949204582197631761522080752971570028302828705340794618394361262989879025671365597465539329502434854865448810685647224007995172253738851973000778845396896754528103124976364076909019014291917279982577076575592312814717810276706233227791350455366955903869102806444182422436265331293826810541350309294868567633000199520702421075753835791844795071521950577286742123632237864449962702144606425697487643442508965918775978454914201851134005003200142371909831506141766448782447690980892623855002429023657843655560613842758803521472263657766289361660325335542758160915308001650931203677668123480537473913435730902186305419501079454231223558976902575724787699603615727063097007437933612547393803651645468978231816739059275914426333033071608014091540996337468562284924809925843117137064450960600626105268710660972482767555588322851981191865592085672808207106793119809332526598390758614079776541899679721041902133602768292839531231687995891764850027147207497267202488773627973037518566870156340206442755230131746382347661831520941824015620655453993460647609344890029815197636209182855591327470044208270101383427463580575475407868394708813883938483803231850181748700288685577872207657188582674065911165718210685301539311373559569171046207491325203953588336616317769018622751877086490770811172985627983853735712226016895107912060909632535817967188451406277127813643606048059952951262981585455998991650588199606715666949861028155434028953044015628184998096079230053736760991514247472546749665071427699774222062180396902036716228709720811095817730391533288014918123653738038788777183814878635689442824104511533385799367283117687768890744606729679505839252982267582615724245086396578889752083337898979740804237700265554463166701447358106653675844019600449557902797915949813669808398748553143815021535797708270502996059702341106830055910417659296531693614528860817396090169516243964721578965658135050655761848008660137928105932513663072215207109203224389773671053403616951614145233603015783052822036013515051480970776200967832661964107786995435192675007712019820540252726774673623992473856493378951785447744250253012845456883432188589787926580492350698862363047163594455116663212088098400297632499008532672311802420520298183333536742443304197667354076276542585897620409692015833711830254788390721685539678435342303399810154233205989200034476229860213872837621561792537830329281753332324323362817559316546163103389568962281505070623354390358518050066182024421312331145352663830194017566135359027787112668907581295681883772358794128181002544699256075761890587281303838834558618868586530949966721062502490242025252176997085151298629032857159861543920753176703083018720652054247053719770409309093655501580762665095781985690162159621273353120176416347681201953015569685297332776569745599002958393446849016403271518631447169525663633305019598139596559614995461777409062637742060553227489311022527019910495461649895408958115967739374985400553910922833403843039124984064287768165008894902478611931124192652885158405679545430874196213239069285327263874086914710857368622863055234949380211144690529002160510035381932978255355711949636783801225499781473099474830716381615355258864628577553387149600273406430763709341050646813124669498159876198697373801111329169932597832162333733359806611716093085671277740643649831092158069881250939071981757911677147968466924311920949487999128983352599914802620314636070172626739345722313992153820037250483107178020093864692801361339753245398417960549044089340932623533615643083502822785322795272514783116607113897506730008972451429599526167517646690498460540718837157668886864558006264692885112174861780163696478465449281399139161947652593878524771520728989530220531626816136529687220419357222756380185850798232385862996445415251977772928711209149001599558986220650998032011337570409587818179899296238801414737500946452608423193475550768357693162624522376822140986387316408856895842962300508932558017345750535474010537164157141045742357280372517226360647809177857061532167015472975007747713285289102504304035260561001957633529458263650951616403032958149991027480020480051002611962466444292065625308462979507196923819827603302075217236904299164514854624726360090318973306506579875868587891672380623318064182422908069222673941345281737357519233329175110116231302018122561881841245598403355146352403048590346543275609236332208866762428161071957623451623320262121367440288989706154887516163992563623370457838519702696912937634464559537474304587514068890937118604279450191337691762865010799133374769604782878960068316433959876535711875097329135294972478144053292133737275521973877077816480172783435566191442137304402534165499258555392397178478624334276346444179226488822935274182116741930961638814332681165416696374221691100482993470356415488533450512762795820475621078106123965758536079490822744441096625583887429279043243464610282407506531700799922173783718831535740335975281143436872672326491274544322559817445863032077793954880036176934821843791542645886487876180661703660763701011400851200507841813123573395228356023667673230991302171763794402164725308006420328135977459209520380416290581973392402829715624342350260661237280308196029843859322124980536703151073450201559726683907486467648706890409815077157819042440543528397516453656942953380283622159345361171239896257223109857399372912008779963977602276903824940278983709463436696000905793174834249428805213640453717973325452309758754344237761079693951986073657169708786882049747176876252479242281322663101614781500996561314787641897375808558472302191954164999010916359940637348447331288206931357574146514539402935844263944353946322128546269996191244244990606017775868143883689808193796543448536437614579687387801385042637096831644684649273032338825462173125680782473263284452052966167227692796056159740066370589681115383248362867079138023382512761316428064649259171004748600528488605914537451643235276885175095022013204683676124437117417651479953300548843509641691294451952978802320616559000193009989466620543115799433795489388943228766583236044678570245805893118070799973182905666610486360619561873980596347299444538590673069904292850349634192123751104204302584327395652302495656652131806982666452590684173402227519705210355486538437376552677344409097811183387536240517090867073328247632530326076973329653295604502857521021784830880876537950239221428832910498877170434311337187732379637695001420360104197510071457743197547002581904908005941812036890441137617427971605690619127943374388327379662062921487611700959104264464664731098598787507146853359289331521106130104669891438786172362029471318355560861530075052724880356717320653616640115339126174205164027292319022632768777272241446683773171681434236841570486263792725079346876390938121458383604721688313405672806107706866622088356398040436396956178694100558605507324966081690976895821342060653743450163378610464107754780584435471223420245860654442558657543511079179679854320650103318581849085562946113808226848041609229767703546659676663525864372806088098844771211062734374404783551801425726499085800389102349482726433360419449481431526631262245962472580357325368633307054042710690024929818065069181656787064818801228734431404996647421651978504571217093891947855966875980097053906823943491295184904162044592059241597672902002054943125654169199683951704316832377764051408339998897289726464894639391945720338530834900402935656079797646473705851454287663312975002342715554179559012320134819280844745775554968040633123585793670502553512564780, 1958775919542192159560802589496676143340373673922080604515244779794702554800051464553599593448284490870049740268694626578448818120953934250804469288769429907305572734138833593132783606277587190694169092991292825337592272848349769507191184517433886717034195847826388891150428774760033012273498198324249493545605441296964011435222812860933249348686182666187579431740455815027822885420232863091285525998007691405945953878102282332709301991555217311442559857242286739140674528623535884091182545659374905393424027671557744728884229205118653053975039671703902693129616724960722418690474680236514498531608571321876423725033718313774686052826078690388913131611390032436185678223407769100107613115462653676437130400072750562970911903527653109327330125316545562917204322252546523327908581315033298621127652123384736274159960526359095170365516808277518167208370596695180083452073637396729585316488901297286413417818221765558154246486383335687703633719328017782503886446232020809169816757172420505317825391138296657670977531305140608484808470599984843988107382059759483455912285939456719615600753258595131362680667306863821851590656104409453628783744625436744286215007988582168130566793441909473621454254263831664465215564224812439774095863189146700958234079990171427746583484290653600747440419611689700617740986224161761607658099827092911109900943532857107353621267116793058011420844126776655236324288695025871601798181787651237485715213580111577792667289838172429439425339918733498772589013265543874003501063465049924305274500636827621095575843839657788650070835719902335709744598873159377808325549761038940996397183087526525936238430073872915972559787168901317069779547569911088157725016329729195517227535044586501185855378866370580691886028530226864672431191503327869491415789411085303843033241294224928141942607362344150949976587973740642655727557535371129293116389660387878784921307289237885330537101238930648996384969573575449380615908482286633474096739142936702359219172961460523195534364445251316999819630547676691294510451365294105611007879920801712521049278490244283794679572862854400630030541442277962819425907742477051324303591657316570822914339849473573799054753850075588628445556245187814925766057420397499817560412785540852257599589484578287592144287887220191745136667352118420899346458514274775010977177252829144728254272267144203488063127402433792025250677884569620017305757453478988958358730804490104796324225135138525296640223167453408501019340016086871479039632780379666208676937534581221238419005630102441529237648898655351063304745186177305430933455955058701005796504194386242984322779357602224934906906561060053606451980868408232793409635465618455168897114277303808861262368161947620843560548497139717420517417908689483217287947064711646854490861396122382873244790802758901805703972470769298100084627970069228512906941437124828121386926340477584250776808014377273402937697514302776377931328309978851793773557688576184750696895270263861121892254150712269642628852617898318964902163538943065653172621975045267559432260704082029864071722431078416072535394836379611545191830494026198893269402547022961547465189740604603424042348373240529642819475316699558515404237545323831946874766922531679404124211759633919738209838077918798662954126549122427331608231735801281894442818074380465829642915154799626687273429897682562643503481017088850275748715987037389658949750743990503528389823247316142026864566375245392781803903589259386734833460385720496308094276404706318541705285021453034403647498097539028775779425443602205719379115339604515955602830821703528875842816749647747358118824682438760478329826989776853817234023520438528905232710306916735087668050574267886101182450496414577039736138193811373294136260005880305592344824233199375587239827102821963741441691926081024055024705815572422028362059427061461994305655058300941994241237506450582421269390152512303111350544014878356123272700123220306250494253881129786775410666256224956076579987782569183142904809132626248084569601668339217602315331679983615952510885857773348615981756156214545927794028039422088147400261445029196739012384496437747531443452265467650657679349359062060555593068369173775987086873075098583379448386760085239406979620228092662900055370426604030628882409740197033507722086483106514680763433419092172249224976985818539182836560371992791909616348155538984227372573321790056938257080411381069959419854881391958683348652500472131005731379501296656958917015795951791968098068996713197111864004953735093378203248694520405071156852439344191454862414653362354284584137259639157179212363003388053683110689882793373608781047738621550625206462654542355422247033077046097559267380711692927499590626710708184536037577088440733370726941203208368635191180936094264953426828634004894832772235541390191881037325428840834428828610482035783008848623994684226964367758013190775039073696470635044241467863644185888244481516612900699409137307064295526891131673696176826581372095785923293736990472739783379513562284023115075373273138768029488291991646699223844863076299411311423742821766157650858929493671512236468894484777848540017269495903765050888667731120312710322322111958909318937033611580819193445265688777051314695154941008635498665020501869914391976365249937143198213160960956267102073765563884872894927695307326234098022858772795482710684601403345135889302014651766788476243954009197456710214638074442175640750398292752438529191790534802588672194439571881297079745407054036334034156087117323458200425193715021200881012426145893613912799907617561727107362852894007945483236653351864384467355862020986542910361057423084367309108434347929294925743954559679139051513566374847043779106762696317531048815298559650102201603518652157743326365262478861871677898919881586852027183686667960211329262765728648816834898780206033457760699278395028098755406076449376517310268054193292271355997690673707744047046722588443672414244219239835983122957631036315575574175622238114925802215391647875402994781748028715651179783521770966640717163661179385203036831282504925982849783823323629677685331408061937921388725831943914549090766880952728151696897098276977455956214367835849281343188066036290494274602790575966544177431712643391111537649187330290633867939843618981419318210369030904925224662312073435957226508387492967610869475523045944770140770950480125232199958441035228854614685064132657339220932069412904060256378047625305371604052027541942366179544080362293711992511019849556230519042858189036756691460973898751246437055105511139376583209858835923919627483102088164758896496621777744015153120068374821823693435029283216128917541497394464874856786124864741820382602774740832397239627455604170866736636130222262722996758813096747570783547031128131094480130861465976082383849554480212814291583865353392029210332356928235423814581845207102874889467266196750541164270283993718653701585695250129767225720477037890768575255060394526973418677372330244527792664794480966595946579786760910423876397797223794754969568839865582387590960989214515851175851831904594717909434132908156761580553613756928526605837954042778029423726394145159211839993092722593697890903198342904328192200193129623923092325908321703972013044114928439681879384626114798640102772091497029955249074540797666622573033335633722112963756021849669429945700766151684496716089053150344098517585296789989326147221457908037599936734986676222890871882522181504036715570919681436066129069729559137125071427087020597194148848430316000782703050680388286686939806270021385275873972498405870816945035950228567198815424639510297822947982793152762927224199598193665644311329091960677884026276261869726897038440106876500056625922615524470086783197942277642501436816137400314127079592809336900720143711076631561223181026733411662977480250040280740134744743858633485694767826549945784084327376252197117475841075260843201223426903735346856339788792249998240365296795663582188435284448850416748928425374892730397262781845034302183830491342781777170923443475235059023028309621708134978860794471862069366343205315887845683122893067539483026416802901470574284426739301578463958264876960769401595869891818318266513273226695078397521427177459202994204842184672105669754272984406104439527799794422295134525574095305692272777387009993869747532986615226599020554889990126026759257125976085663553402496030134703453134202921990400808230015001455613160214038504154840981290982784694240891232656697866590476387515227277837132156692392242164445547152126442799500408792254478169671263580480155164770655632937906885138138649221453589061260301582782057802884969039257046119999655423624234719857669075721863025221906238450019709058885627679302568602690194111820021536023035684179298714758813799598662015454600282023416479764329298702078853681669338176524637755345775603915638442255259529999511651070802566919707551167443962833723052167407812097822939685046921473224820142437527447515051361066372268146047578624474216582760857917796189785290472522400884199534368319275099398096151855844782577234760703571852040296518638222034209384293567444165376297888803816366306530759989093930704321776559535388325829644720908577422730326842860965250184883076074250795231511454078639367432666297331277559036175208882720544851251013999211501420407029644676004569702955976667796336855656156805837379906998219690387489617593555964218595718996853016933696892404229341557086038136963467992629586593506412097825903518927569021702892336197336729912035481843743528934635952230029331784674507932706691053914720470727122612539058760351012205413968233867822519169406020055800161072797835094633232551470450370857901360206208198844048902479840563737435552326435480304862778274627520694298688137041915112418948732263064718269716926687627523468328189470938295361058666445487594032073883562345187097186882188420921919610138451039375688194086092551298031069721205215949242982386821947585133893211413349359576599559826956571356477048874471133000064705946731992066320688197853548772171610354244229339381509837980135399087254693883805529220201178519367659949779235447162448568897471811915481366052051953413261511165277939989134761490103960427997820954228360264188416243090556280038149837808195586674380856500895639775499278482474568997510956423119413511175631258205535323899159934334644667442668581672563933154270677472406439434221573519056217001668944221369099023777715268458873044465499123875744657906046366063468217561176120130835110543729671551027221443732928849237040606476297592380187332489654497002835717268529538211858406681505258940059427332064446432278847753372171311276533920956081736824059727825922668544784217438886255200083444930529228075548951606789880378693912542974600824844525036950648602789750861610918676066511700154725881845935797233401916468458765491297774054006601675035733122247607180421266668981546377607723581400114787694176776663281648031104646935237454001453857860715325148901493549963557444090500146433336688370137289711908922212475522264434773407264502868709155913457604619393879209150775705910220743443636768195128510582069095697786213845268041529296545036924132537292041289867801764095941860292853002239936772826040674640402180483004132184324416896549904186134354084912502877632198722155817523972056632314642596849077085033518084909476574041654014053175442909307380539896074393933782569298081280940099684668376849870745404817550312272635695119260679669433299698728900146655340837029967597844758048892584646578247335024504455297705734553447399772537363913514020626173834641566061812535633143756893131448726182289013856615611061202207736656399692071418194305464852838395443532516864322184582623951860605204025273076734890855806162381691804733904083712603216711417984905450295109285370386420685238470113605687480460570688934397704142570959183145167631633305349658350325551830895491251815047770968064938002226353988338480941184788144841985603447285445892534357603694859010013988926516043082986840209706916899927260499169015077478370214305776938359645803417427792380651757688648375892110024541646795920461341380476853669823454525838049574203387354200364764313195598807138473971993536435094289533887511651440504418167399677093710799817835865003347260354954116672242573951968593662408059267022781716572321106717675000462122162096422579859692679661271374855704247378662649628655436817963464142064920059195667797259928616158419187149441029479218422913337618544315156889806772818171111125005086883286961971076467375569723340752102354703994979807434632333803192101005863935179588528871782721980840011887591265101505233008964566546221716452062349625191844933541056098808682765331429489311797770612906847140516654778622809535547442117485231625258966191726681490802005670897353567622789697252006634186746721995876517016435547620086897092222430813899001647322441771048252481872340347142375354852873729118607249376407227944877743863332565539072366391232054390020467793339929156687919721761415689815386299467683763366812119807103397203479651631582778116562683308570314870646404978438631386115167935704274840877708102555612160148990578105495951147712729490170861308132006259218063848074563904100134113746992575026623811749044353691499574458573456538205518256203189848851118270101823335520297348822848822290680419570434733963501562117509295951508883148325245458493116223141306729170636603813284848577394714005111999614710353701205269143429591724578647118435244450134456400020858406066317630544963110472979009560451787447670381621043027880471636045397146765168393520611247093688967708992808039433610944882195414722980362436928067048905917104188576041345825601431412064060085332441759616679463797369491408482443448286832623330203927952530079087299477538886620496337292853827459746502125739598125800338233549345217641285229155191511831125423559594714764655460412914788296363625903483110726930788125535966763336692883978640724160180214759966712942817622586223140927040761125140933369877546268214456919922529358972730283040931666980756687565685029235370348000686801865346515420827818488503023551270660613113682583727329376761779350378275465812750330201611535120084881240700803398901567499816033920582447239340902554262661909556177765315599334204470893487439119852157832364381176623586577394324361841403386376246954874670004714878094007368258795603918876269026500409817930463153398327118108138416489533594985197436743962750252846613898945758898517628965006526181018721199770551942721441093469246634616059345827080065577733254207373647848844596482019926112275073061113282055816660752968028136209045850470767090823558082364678838122087969723277583935709145890401077517605076708471690032499985876664073638596784683463257400605891034912566435167680689847132364143516025147111924900499829730484312383416211736094045024337015790053027464958665256055598234234801342667204163046345269658756292547577744347391602066491965673969479696384513221701838120292552304412734577517185971024650169535126876165324905757862300001246405518952185254026090255150379853007573486643346508214780435607635841288915528589646997068335917627826331560730326920478359360540262194021594831622440667609244330492828713145053409325058468975571777267822073251645825683297612637448115393138326317199546700163210792577191627526116867213333477560783375232407107357038033927831459784400678097446510043045861046545032675926356464054232566825049071316037250552800557712112509028891468422957231766269854729296211958409356415940838248707040776539414566818598199061682611884789910964213073453767588523909119629712041769391277587440171643475530630897945793801473524187329483172012637224278195836862323729348058759877319148461553604285419340075813028270939233647452960054373577651184094706256401314501114730526955062134536975272938806321691829476178511970183696124106003333240065284722011546207058661358411684073514046156349812523081238245224600084725522998219042998760564773057549094292256406658975491462711885131535356729676206277653299230658185131810880373909835080026648790575204677637496154188817355575928604964556113750956524332737969272540250118976011824784789952871027583293643976147613832697725436057630696213793598133063037557102503212328406962241920402392646611615119406360592072274618774669455511379701652934906677858245123837887622767610125471325007113461336541733065465278341117324516818117649332491557098510928219766549419817687209953795794771128390346869484076446849227480154791747129655795570208268888489414933159836790274988673143683682298035156039572312553288172928208338219461855397209290628232979559685498596677219963041270194144182751345922769203243563717131935980902244493428693827877889957714229173538690282220472572360875345301120080293293878750143370989621159173472009262788713623530166189352210529232271973734892211361155486174182019502959683845571974467950298106612531067836108600511271491292343655362716422935738576643178316422460702128618406336056775683574662249911850803744055342077496822181343495910162223961953472373501479707380652411767952460606140194341101574182831729951806646390892180842293270632069460074609980313838928716310552954317067094640479608268593363579787096014514549421268137911652585012411366467300814081347889308905762516821132140021258471486537191079070931905885618416856049896770969000527144638914750183098746124626783482606145858532575306184580227884424840079467482882847121719929524377279353378066552134986271808561512856969729333213489978638227350065714513638402504129119390895051580219178019740480323685868232235424453120229984272947127563155512649244599432642001588714017284027727737985573518215243803664642532181940604586558993677521158869524208372562109625015620087654047075332178697640435286253222229024882494733490618034407485924626524023734099004425178305869473236257338112539355765680360685519599462209016602522701311443277014024319850268788490894068534491754125777471647901317538526704925921347081262753527559779777335240657488957306166233551530388314340893663558455001889185906849404593417007087913662513959132674118137133202942895508992274008036489221322982526997864346437298109557322317584187480150636089363442185363568338536969835550184666205956589796893057004325874459592964983689197963064987231212923836160247387234113091395973736489017351105202978029247149153748748451697161085605952354706156978067471767280633327992892406950574577152213403226051994283553235572466937742400580679199423344131324862133669159652046740044944247285468745240904413551209934276687473226375445272099206656104108804729845445868831162478995370248020254092841777644011052266957587323388044724191515153310876185056389172012553770741852367812953458677520002554420648229661614430041657557203952936111863687971999837269548292217486353595623803188891957681785059194828541097003693226157150061391069986247727668687151868803357126455541329216275333454816323534319775552466750166672727579291209349404035757369280345181611060621124181061020322812648078467604615317759788516923255896289511409162451731260209252649498347251049774853221660022782074024964679260085147883511308884504903737411851591864744394512981943335343346789214064627858454446405263963098749256243012094878336513202843783628028503829278350539682763497019971674660666399132686316391056570204500448207606015372549859609810299437055878662032761612901806731248943391402029423937304255121778444483713989683876859608647092296908208100518176792446056858650486178592732549063706186957794027256975269583717484988825107502413185405735477751997831812830006934372284520645091272451484973383017943091478304503380773782483392214424410660053708028772984082861261604565568945887757464835539002371595474834064041448794200079355533248870298622857310469150516719713215054745759815804629883176837044561737991753409276335371388924831967227867200752944714868592236823425903790416522682295385914576894824076294481514148460787654494218698020049793675048017202068211950907132067307120944196243211037744623994213637935768370413918044229520009372438738658624940507529245541478693309561409690831700656254399118745659788427949745501531753409980419618652708429341113245595841285380231756876359585592776972565724384348361925429538202777340303925869770445591631075329900296680499266188558544542414574141162126667111329591524376906886023268947303090741223416177617159683597640462881894281373670092451125592753917260191606427092332551504671651186324691727470054946506107586010080485851001352824791708941578116734172118124421313475615640601658287711896242317524748342564199816426656227615217658009422860735079735562863755615585643850683468181554693932659819281504665456598391465635644857088933278116964391893294648595002669499253292993114963393399522203193198049843542482815239006965157068770750741292608658247190955963027823125009915696519313235924954794882154683396758253388822147069329181907234917055998591831872320376820346259503515331986532243342434576517843937387901618305836698825157935524995432881820319536393755593496918572953473264513121155488659359895758716283766447716588932164138785656715082607497027657307303511848753568647123341416174694888424033400508819079013921578233986404162076207457059079549756992969068004710152035943458030223958862981415068191805560202345897784464364276104048876927916155335060599086636209338849896288273624026035410873388532202372985063792619588870640995187341715672597576310257386103941129729761832724390556699179293370867462586390273037099168797999960190838241049174317690021009861664471379894873599199079880137470126286158327237933538962207990304132735506203234012589435367878224003954343294184764860932029559160438746515406957291527253977372459253602408876242047839237214750634881466897735202283780460122013697746720929250466942488934943465173614930675408495095769916517054848358008899514244157410469675078559269572472779298114134356762377256250385574159773895107212996876430607407229555981525480797762308524561543611834113009737425470746371602025206769776940575444905495948716579686096638998418815830140162488775161630433005675147678647712419230825042958075831416544664211791832113750288869096111689078746771685666308761810604277547398162917306510820109329712155107497014549257223025968181162910124130629432769842068629549394518382854946695265190604315398639191555378936432276336878004875278320376717409983345227695220600177655850740043581112675352246665704097648509425904637278220832379211313280678628664035431434300025342895864914227692601107032956748837911246162886316882192698171968894164487776472350829259151752435098499596877507450002088733075433903988239287581936799892445683962647813221716160259252272123405305184954566786930823055503198942672464930552702994206331200491135137937287146683758098288595203033275784046488245746917848673042737627219282456953878956324925166322845390202112671935033154601148119866790190893054511974448982004598144672660273076092376574296300604765170688343776885896827724941480610248891129278008384138823944699654193939992242271130282935731427567724046752512004708338792704085166574357789081573143647624802642980177890658465076105131279132991261108004908598457178209398737126441067580587127313643635759215240298886288187933539672980733163449489485374589047756591125356538113574761089628016641489390927042592114591436359000734360553353759359245509379685745035084867375164510437061837223353359929894034727334028007987161395285850776436626412960509058329209468338390889267433413656244455897739944750007339394638121310411631237960935374607031265677693033844003753532924545282185532976698967841680134638892828633051914348078979869946036948483618331487970569461773980497376707310983700485061632695790811511549084808222099865422194994119463483038959410117906859726225996464542107010461446845451160046314988756858376999468909826444914209799012753959386161682938039815945204060834169028740230291785161063963335111328143679087773047143636597046539356058185588776728934169578364894305553063459200627559157292887286451103172162233703563218271847508881133366046355884963889411090898907214317936968105347670861001692759997432363528469796135853783007485227434277898642430884209761462096770964396930137251969630111625574209522082607932611089059347051911701253023790459574627401724546081565410379338259860175435443492153330375829238587817158819344863629142456239107843712086121198304314453614454196549932184653923379454500248589005221674523500006159356824418488973653819950989422391145768769485954550967283239243504584399961581137541522464671989422168742850363308777429483497593163879886861670181850669706556143020903641550699620092760620863275198232815588776785442995127840791057622949733275721418625888843282067828922059568465547713615544821348468995683989536118584984588081916709517260141945999216678362110133597030890559711786205416735986461563813675649350326046511380342159870681869620981382917506047723737787128520854468079053449058570147054765732777987540397758452599980901474393749328367307838161982840996371505706068475998248143625918411340918565242898618072339507784292905514581621082812125539746721742932577357595202372486629480847694834244702729038152967258186762940690579686907636128635472875588406435528229576781976494945408918135999328371319743966456755422438970970429978527412583910553857296416045090281165416388982671791377873993349060586197322581471657278996926210537916693408970857929800897820417562018087013957184255527248204012459938586002721175204129716763206444144479550117599083174432139306164927980918729229225630269372476201167616130230618289713449650284201094983343818775265697999633736638049219102932164568398542205216777090018536536939310936297940684214820542008556293657515408242204166092648906679397766870899253100583087766532665587281109216899189216833742130224444804083687238689012323393209904760671439850846518855776475865060509825120695051855074991577615822607856862872848834087901773745472659515941879645707118971400998438336647255586330920455847015620293501137803827022709201471622248563238059988326814111853202533826121828190823999389117412006165941740945972553831166179390502279293373105231099679622478494618821321124759539776212719903033651898500373709600267509638691957186972509247933952491559988344932592377919814978050834063133307681765203979122150978722563371900550012992499612676745200364199712713751241766080434503972706818249906741484249920085409083632276157406652573010450239220089443716870911564903879102571676904645060058648121052761579778802586706551730169879439677176197388551542595826873665364944464610874749349106353174163918628940808304180887762863719941717808760754223905993913501967109473202088634817933581391098407578243228793919626597929079860550085963640714967253327772867699381898418721746127291874952460703146344808993632317506064889957181480944451727582138224705935911424003840067025890536609940156946646320190931403774584598204366149540602009104781881965505225365216048536957441406639454588078677496405307341435924033059085073834049367982488837689787225340007212227912669329902180003890718691312000297460626807311438285313807616352764461814970953525888621213882257108278297777849703625000978010952534034874234083443389833758085190904928599765391999082784794251903812112209196854594206562191806257570231670398527725080552177510057293799586508892778140260506915209544249594240081337676723452923675705393803985377836676011497592848936721858086206410076270795443824429538702374804061838747588992650893864372725892105520758246435195130977897779253049107816459610608422411629902283436362482270135502113267180123090357932886812955236077156748373519378313567159009805672975588852468254059028347417176903260151551587881622527963128675974755786604188219254304097771463369298703008710639366315437636797663273763391350975597017448190446053243262979820069098063572041976088001066951867160332235109573916729994784998954550730825023452624179406401514970750715865245093896040412810179462592654002691143971109176639921465032266582819289174866146686246433881005116419347409711815805863473651435040118088923010496201967174823897291326525211643927744541000618410563801353151030030800418309868191525937811398405947494054768987570719823526974444505706172137372545573140765651148555832178884082530186898060268877766909284696544785578682895019383899702687658183682049350295259877819947431178759358730377468022642286697043800624589254518467810830187539959069010030787894458888710699371179278028345071912118164635749190913010046899800084833379563577044434392347282051580649955430589094914438070549108145099355128611550433293635298105090838990700288995967043366877692170680894236084193570053145307418610685956909953708124942079757670439663982111146108682068840659937290512462541266813023612516792254757027067806112046296450300756854282195307530284245417634320261114939740075353892399864137799380181153488829411478469413129312438928730136880261571645287374362554007390605402058793667433497915537101144769262164116815870687663537884818187199935109158710554963126256799378591236857042567442428080654570592880641120373290876734397127184123006891059241044446384569379682783092882347443077888529826711379149348118259151757123192942558210319905667515305808921608124369537558215799164645420800241581303167370218393668120774425141805405521313598098960097871160420131380730039640412725109474053768575760395096514961816141205176110066592807737350021701910832633155801444736473644109189344082763823140065161415183932922634330394202209091714837730720037664770840280853672739568434653867930064575442330447383801505367248416527585358919035915546874604049648604027432800755619963190604931387729500710355539968957207149222575706796061232930461434293313156664477529390584327685290842899987682133923517264830396430813697899485296593945650826093238922792251702872890640849697501600653069352318386884518565618408037293808351097926950515253312843179085543390038478216867209612643361846974659729390669036267337759176943505139423190541510389900611357199460653612981442508230956864373513807522970138051274398111734627146834583587568982047581034407719238183315648741846809803805587277974792796633771560182057764044254162899529041555941256066935005245756933599547490833679968557974794329075944029643499865327356630534122233808858544348605630638741857634240824752548963750403550580838578100408294707233153605056721052215079895473783170754733108544640142462076718418383190092172270814323217109786135766511041174653679299988542817333046368736491816927360123404607393064156002067887782031325085763065542156188451183565971770756021406654831660538023764154521440954813227126840679541926787292569622676256674324475316461276471198840998939545629815765731779968339249406077955699723535675516588623050218427580820566710182529651561320883512391934744742674642082557063972100622391082018392782223219664196074937616238648064828090339183884421954184450558765288848164386488680712418350778931874652353588804053343224710878428528781201168422976241258549542927262467519461620698676265931822941468136990769043294825532615721243392537900590305197442245088685618566065173869389211350189583287096306750116339121046455750672252268041869552446979249210290725196482110699562262509993588182056387614090365612496991176591465286828305760172807893859239111384093132573167739851438048139962890490868238614360348438000600012231559410989587891621257478386040916505814566932131287452230126456751240711889568167707638363503423753265310649950367146326130687036791712403559138592232554793316854370707983536065996339524660551220991172651120609845062242638892171328807345061199488167991315722556663789011727134021594408945566454270424990766755170980207887464427787955619470546078832861714981579024550210652738896454267097270410427914618555023452327173650164846475373519758891610828703474631336193218196110375153074586157955809119473201477917489196572807144051808008771406244127268901538941658389470103647012843195606662778327689981844861933846769966463287965044876306787834422732858426601806273406138742711186950527409090239665431662701677234619982635776116271081622752506254002992870653322851764970491523000798157663604066067240332436695179591743116522827720412691754207657146059443810309563217931743087717793460691725114525306093644448751873211698264083944924823953832831726036072354870663786291076650308153930774716017261300328685840622657628079173958036409825647135784351860665, 11281472145480559848950952802637095966299817228171448384019597700656207665705071197443287391309849896148980732410292458252220366573422832571078052436031169956640283741948229828178375391913902939508224000867180823262778545886734196005132549815316533525164971298606113513679187788229219844108236853254438934370050858508941840839621369622045414330111203158696443608324618627389345608119709454240851157038066493932293294307511895490042600160063344867550938029503247414440559881137902705242411673218335758262680182153102867072216846286069860276229845560637173357878734688366354828040956293715548464777417191959379529254040379000343284484237557210268453156077192145260554854228570407436999556463726171500299220021014192916011579445090182825951356515118786309307847753065961011952801711315560186987631951305859313057814522279770480328197383270412313490022100792890460160367289590125585647810303687123528681363867072280361574394799000438158583821291504915629903415691904726876126252410479878980402504652950804773826272716376646456791609204394725069802676544923218585907047414197255555887360624528792924946732231157050361131429567427209119823310007787240788542594923517697537663508846324906585646534095057605566107789843167452018419935665283647208577146035104510744416813448526378366062731682918098221498610753283259241999698993665713924001884098280633474758865626045341168848711245720480825771889154172087839055125185856266147694842866204396733724864069568009276995899113188528986456694120944333419993284007203159894163393841485567774952592942388179930791369941143100255443974367939114768203310599575339911604298964816174973580522182103883263677746674973664948521329933001516582162145049981917373497349350685735447688572791915619906985740026490545291380570566162210508040189223031702252529644752010310913107902964082044147434103329270111873496748076091496550523672542032869922771469909226850838868404609425583459708943021407338630255290562604676775393909200636679805511820182399718091918618110334162404256801965900644511157141158173097089839695310227641447207687241329693926907821145020438069679982859350611278435096194323692547718007499444308069064382460174148481693459205654651643925767220590352455405848653256481864975681050333313889093131052628523332763143161448460019961842797606188561156251383382446296607118384420297174177961153981338519579603414663878713529696136670786252604779507413307895322922953369282735137191250183206006564037842216773610230888973260762845599161091042881930210740994455623372126614982001478750980822400376180180075418416488573962403450794895648293116773626806945955049635732089308426905626788969897810853473328084938969312707628034714593954414972433549572958941001771918952416669203251717843758835972332907504672002589288638238548708270177953582217909692024165284378715063076020520667179550566690415073804978993696090837356632357491178877011816532083706755363726197256552374312350867947570381122917014907171502377724845998695593910406780213209187560788979744833160716906293603321249539818281817872430941988988215181351487818713598852247248772948497491539341427271887288664425286288079940774968643578037607308473969457935837753764544120239044276445192952675255227858834260565061455121505541351435294534081875644524733982033449243263832445248723064136976575336802855460225466238599695402725920383471663244219912606762000465919429126570385229425492198212932669110258087227360006690887426518595057724244064575508151336605846564439346235963216651892828823034025170773914969966114147514535797421634106252453286187480337188987946748638445701043623585939830079132445372055365854190755039934822814508176818769475631997349068595081009382968663099181443803579800345317776943648963839597185383932362068202538550388959276833382440960814516581025173349178626534487909769223255404215470395893457730674944511250102355321093586388563245142081238983656630429457169473631774108736321736391273891261040623537113050426338550765246597866250893819936246997576189372899046347514589450163568264527328844949799557745902668495868360207247024293620213201792775487399790587778592431904154504524256914738532925925472074377267598875847903365195225790937737778658339687822361598822626527895299501338886411600466494366220122412603923703769384544084921022640835645319226905857038366193828811622974351694417835645366606376011770462639745095346833372312784650135300613374880856332680626587476132861428282309899649840057337618837188469124619006590858680609083367178891058866419474379037343323662714955295695998279416086414394965249650193063536923795917087305092376315233244028425420822555062387749582988079247751796027098905450938566430801480034255085238857376806797050547086705659339977730488893357835428881146158840877312302269378377824803932710897820380586839235248738782306209516280649545801701734472193791878825400811597253119478891522385146243137926560650901304942234062219158079577285338339057296986006838135246364511044428164999419804397251085062270727136256481929237826628905018703006971259866609108663118257032659930223472231725963291256578285106186268749952741159659746344550399491620351664001713216225732012372797444043896978328505938830043983832846821976255928743144261479679232439384873901668223526904833380951220943095921796034752227692751398889501127456746732348310817148910932665562331235528161464056612624136064122709131378372126897622005412001467825943091113955463351897016623890508662030076150253862032115339323193819531162642866237327409550913694706866685497835249391451797393264393103169752967956862216815111791683300757398197000619122041129053185998684514698747538999683619006999674708244477427079865077944224646658357947444385498616645694077656023932387338832640115764632684524731100573466056712918649205570798578664193878440685966393505892361319130067769763891900371906027187939650841347600847187211107452624727296691901077401471324681218324830801330019662141499996930806780598190579342531087464008475061946460464417310693841821300971470722240797992656674160819861700327913186956946531278278006717535751357923467046641722495343315898320690665663046890410934252043479478865825137317117417120043292703412698677696673763122572032264671734409626289493471058124069598781161873564997544153534258544516700919144258238504621853732373692498702249509642427821149574093333465649843553611659488168752484024134918807401935985804966861943229945548253116885200577698864384792445810877818545784805894974954589073725582584833313043923535335444327591358737329303763804582148478026646925560279703096992600172045017942455808058869332208692935482565156566562274484200573454098060559502559084363721916803727575504739762448072255940891728287570417852308719069646451486376211498539480162248497739675798076802348806858947992839125755272097822061028948589104437911361152863186850671511391399387873588472745365564941181858000446278612500715116502072794922398955178660378732278592178791209245817152180462814807658573270108812647908766694454711764239639507362507448511256704785142369833471844159654253604377974890055814721075755272141843803802492348957099482813108059241943295804581843707969831330186041579710944372742233419364391208679869897714905471519316898604027204484367715661725001076494419137767653493971849250304195907296807382895994849182335044219100634782435105185854639061263758950851843876109867407227363003252117681290797095985969588972439347382358859437088319785898444887893490878403128392118959302547781790506246543642679071429329631772290910419819771732527637010535369087992678989601429271305236877181890086464297596465060102551377598854966928863532638867337316595236200630129400892045044108720615588880462340328336935356545133820698008699108704337611618910239895789845231055422571206272902240892967707636317153594925345862872535463716740408478386259908759170114709936414163691470638699142150202054522169616712470004912043537203737138134039855774558359195946848366423213885421349039738107310535758553826252022181162827772121388364616253067283606698381591030093283815935630172512922991424274660624573125866823197297536407453485410691451147217891250019660685559691567970073351401818602767735699301027215852528085564184406151659908312508835442757368450893116275645722896724604554857658895841850166050106695555903857753986904750553212894391465892421450318982516324218841458614302032649864290398401743835854137371410468483274030814512588765819267277532826387716114275133317847986448417863691100996811747358233388388982686406866904451460575051716672838240842632651730051364170796277282627092018704433971657770927563474607590108071774276832151359914569920658156829676994667085538947105099578051909332657619729334374765536181037441537941268377021147955845022752604229456636293956855571239133394370269199656480018989674367741996298979621995736359605703207857460931280465542454196802230771015346562886410977607490990536411905991687452448371806235951781460559233843598246438981666083163690912928883835066365497051332735485761563417128771432257386202936999431681719308821261039556578653548463470372049513816578007474091059315402544926877525946447403779510808173180371308500904586746603486704278072308428830471696804687913931426797130699374241517721591686204666921776926923750286676744202235769178423136461778361770246260865234871020948507673143115889263994632178140249807356369528101728300221883267028823660594103254089600426510791945499104338838267367719862091888686229418459539630756922724760084830788133396865823493122689470004964074422708547107346793399317830929877643105107552751489806545672558018975818345502097895936320096087977171064718504001416095237377179074416994329851511536593098835185805339996554398168619752035981415463920884715618181784176896422519671230246360586249869148624619346543696080308752902807097484306211731533049547039169203754612406305521068651606478129286271438791617194510293103804015056819884732291143804200002374837029295575623280063635398472100536190294493870293354250763697459856464399723009520822149280156313944129469595984907679578661617350380410688814282370604047277749098674104207533435128321812998619319888825854200483837256296660136415308477322115379895457777683034123437320979195521452536936128237616968912416738437159249535464392128572790985804131464804703255199093076875523963853322132286039159767059358710658485806110820852272297332152675073832692445573924432150078992465856928762340596829070065670415777015468509938075800834225768963147737451942326094063596842886705838582313402874435110826516971471121776723911782293844806384761128553908077626080332914334632804874442867203196380143317923471146973399728645073843219495667828376689212216729928691704408844464813278985475305210426056868489513033809566745649427984417889263305860230269294037993360668823374351491307755002246326224964770140174170939522175346357850686023342989888963380397590889094257083383585318097585840705771165781975309192689596090817866732626680361082609848948343726368985448269909319874580440020918688372103370730612683428063265099466795319125575739365234939192723434962210184387677946667681904073590471409183455293568238942673501153895802548967531087061491068717817322239765384960478049343840908923126153749666941949730676374994218980584756564281620768964778192243943412627047247771240846767884172803680698084471842451441707894113151297277104604249844805966830727863328497835253012848891231786593460433652932014068555552197309094122244435369946518178773883711492056239459219165452651217318338270984656522995357861281591398704435099757857814849453795165506227565425416857825273581817147065106890616960810551832640857157831410412184443533973824719370088096564853629758758866446568301094545568196422294603651121404776319887367988867807001426704783997934069654754935031729782207685059697608114170481073951068080864887257190841517642634209331676099858680305097464617022151631966539482798315888251440201195485545401804021497724315088272976726334626765865762234728333646339483846451256696206513252434514460260687302206819435164938534794319594029239378650331519976287330328605839220639638766713594523666287214808099050361041421774612747727002145380900739799800006895474249616503176378778713093173220760078806510148862915122111244077255826021284487380569633567326642804739707423732597392517832660887153120434780307527040963061565620063135190784308950150478860121440637424565905263242102012396783285310219429781675874438537840001323608836272115099668741378723281955396628035273746105598259734633003259366576507186701287211444386615404965889720617567282461238321813674743919529046702148393861879289805365265188675178599164361221506491722126255873017151829078314291580660131873733735089419849151347981233428552432697241173389327714546374886338661432339572752981589702398682725486526659446154548648284400531692093454819537961003400743932632546755376185642202905564041932267957201427003844702559565487783860831167056303120651952399649900905053239925055433351266027263889880249204765680085278626706499072155974358861474055673556754856426319651817321357617080266631911690641328106122941056981372689280774549912888841115582866913800029177516639798792144449902820106894544291881696047835626910312731317632741854329330970434291358373618119397036983297302810903786327296939173067879210079035413202811798401368805208747476963730944493222242023377857413375654311908601616703554277997521504901175789961559294024476184499380096294493139606797654075124040278956535688085407838318884016876994284037533475472903835803253507997517855352904733672211707792749258153006344296059033490643991163921903513742496724194429865454486352442509149559804036869945066851800051714816990447235188647892748645796655393096293870330988733519281435457148890551169857164923810293379624639640533900622627301752536323988743759006453068739588700568861360856847321296172153329843118804955333740743619152336310313543247729564395593661653293384479515965287687762490476668578149321223347533473721293956746941860587768378617942330560382863060720365298515835286154985889174163722575633224239341015889086454366280731818902589897769599951183217053840097585159363908889199943083892885018294670970583466126191718415452419182314677339210246733352253307214745236513735484226812242091323219406771549149936679180423434549179300523798784089720764027283871540819414941020412773310361845649612084242333002345707391727025146048675847220338420037342036998909633996362154431347743982684982840808014306975164848327436035544079178263099119210999355929770808722600478457326867621572359095870963054292394546655404563012408194261262777517713507579168388101943068322071987350928937923397155760075283516059892357756671686966077340482924922176361711421968040132679893005670503835275581941441531024077118013642568676191831060032696800363966755575033711031217970092851460171885369635612154671790962278395256643185599410605139638260937163109714021847962380280391932530667645718105934766572713183422840385684885840736494943025703496837356346528602679320936297508205589324853481450327117545260963115801276731341150835020250586126312051090263935312063022051989625256357949956167713626688944855121913530238863522645242804952137078338082135851902323500697468704823680163088731527802106479363775019800086137216573937265644487609281451156664623115640740675121553549989901419363389344645853466719941496409093044647474855514963119624638731698157975041579659085547997482258589741348779014764126947304949088847714959735388543394060807963577072767543807723689902311614568464649479525833750695160473317794420272559443814934963717486370919050126915636102084653699400839660535738031719818889690805170176487300100237036217309336375663335940293074269594093280702225287451581121243316183577151161399832982486167907616793357730706263585533768537727169524933851034797464236607655273669246654852188577318445520169038435181678812479025924658572733884880989448852493859294717210318973236306057879128550949610231742891756520244981303957624883157626811931310064325339330576415106566542350687423050005773213214988728081049464216231779339798502814588971719661363197058189145750909546008161031041472816088478826722850419431306941814534129465475305542664658748463950410215031176263995542449939910344073020962482283068632147008979984868288875689305459266426302364644105873812678112451784503459821598596250909600351523881619349722352559798777841837860588297993776300295395961851643773150799584560051251796875806224010713661490538276241538468711890117867959696472308791130910455130031658384280327812742508462621796091726406742626346785191298654083649327125479079887222169372806040136420967751866023828558643700511071417871555403903366410305592747634577633731341827614754176140210375760216081089100238584013816917220425186997454903409382317289640917014835079426614213698000045282728583669568560262892860774547797732312398949194751117125494253647289654593845983478388815665844150559439931316156372836258711412948684648488324154344513357815065165756641246656359372867371023366924582717414908989107121003849165168021653443376700421405164742866810751590301967430638368214515866067052823651094192512187734618211435540593918694869792267780482281435486567502510282613156428368625312490538456787841993322953410188496807583540779426090846628904185928769876070019491679258772450962214811875020974037628085470629521722492515858610541715513993954899559025011085015890012939133195188535588080416298708253843517280046442528820047898848165568533361935308982141081012467720130206457210989267504085790284886022517805903260527619329185818625666589342379138718568029184251897796647565520777428852747122624477748104106719569713195613787125030197754559643138966658797348836326326728877006140110898995563139528243334674064176003787567036461580669478533172300072385441182393072547020977633770238798382123122531683081474199283674328010770621504953649540743589341934262532333928793701066103157673745476140572534619624359378913850883161548280134892795266191327310921048364976614956040052501839287704520485455272229188853815402449201817955630091441171407515438841869661437251893499740205233164609206349719344249379580207143700973227610001224924922302489449031273029117123695655682777568422312811985479648719385366257604468808600871997998700110919654162374468969062063760672537658320232248780045294488095179415888629334697645969407266388208107540448488389081052173552647916321422511704270488692748841364794379348098946478622769048374248112716314943208269370960212531108887294819291877759462446429757789583909228817858205474401677386668377730657155170801707444400608507580763075211023537138854460659232961818400085798558727353056238593748270983478100728596453387518959614181989195227407604983726276770101229111496663098008099383746139097950515786624283644953540154464273042892671531641101974227592820127863664770655168354369053814257063283480253273594579864850002725388352002369901593063993742800809491727502389498492054403404293316203519131195527692919450630110180006441338968356551801281572579267930331196517892768903118298057949268148697957390363130938365992697051086342555536412944241176844368098768853643367208706058222071800755427069904460324484172154074695791733691190411840852483525307547568464390204927418851503064375867862331035736276775063044502383630721376073973949307060111383174023519776146371606293526287806166540129620889791473553232274458814660623824428542558700466969976994536548605545796373675050876204387121324129910428383377160338251821675458350318923210624221955453121925052139179755344410040436310176530388876299870356683099436356650899361555671755129537509092974040499014368685924231327444483100089154469776813263840067026041000778206560053342426955766564412449008713129917918965788114660284075261325009651394343228139427079002585096260736166828581082716464902406101359150189571600599463425786701098008991133661378246672605464682807582061287222356795132529780070178333374081359502468677086826561483778867524681758646100945132715223971610404722857117299701062516218362917574212542381635980938100678909662029823438644583660475592193340327030816582605363987450078613998796699963225812135883459254626016006641327857462108347867031955348672722811505700077348963038068614823519826823635301715366550628901290179631598980837730546143951496285936234590524061672819822644920466421140692004196041308268589822130043720456240865160234773082543010101128571094010025109174679364189545723307213458469681662099440879262043667286339086510516305550725672428602537199100161930363516709264385170209585112632719141848018037548627302339218657335503448384925784221569069362607200391656934724211587892953014154595019786915509876058350542224973921602508358497906598334990799033242805907297103736137143443504179083650154951050000360063249994749828119337889347574427708681165147142484142259696696690461700950159387926553262207315024277968439063810864103727269106260540694542750303286297091031013269554176795146602208851101886597235246824194701542299259148165901508509024499486691350502739547088163623356077878167672078821018191562410617461574400933187777892448026325671941103347600827112113733408696958117155076863078053228227321165116773887949438326006276414475593014573360230422089419197270979947733373241522361424567586019153616108549071160823311407164923498111778978146494956650074282016922488164334334035606393063198255818943205984294614434478220083639076678844872419719425575274490448384799895322170126668503461082235708147394749513924771323359266558171903863277432679659125899684206249388302167634123854004375622720843949033117472916957973924398630895268041104783759612446195735917004333268650584989654551469227708623169848276328450485605952600988683700913251744063245587951383870766266392735641478629280247918635397259673096487251835250011064106667843234702322663583624689649752857999091185300707128605895298503361382686675931244549989698909393278040061191849028871313480689369876925210046319104634249737218896535938739973064930811364781966161618848718612219188018036442486247241198749656399060225704881834009001938560248461811465045471819960093157986010244566821250452435647298430883851192602946518058702144290556008028479690679257504856279198940419851180950049442772742708837772255038154119915759615000491389921462952130112708820460536094888179377282715120703691822617042228528519918733574690803820540210654145087552714056430965253438410417239655276856577732502261195568225787294392120490998114356234331776380850099279245766230096088458693738514641120603119233649372057208969774785899332391630127649113951208737601793765152044721062443151299701229852984574890067753133270770459137698607541738401738256169422102374528487690637114621764369587598245079250156848289936457740748741472382458138411913172979900268624799629322603794152873676637416711941758096816807234441151135057239985527484600046400675878484302575210881281649323636611968772657375812152436452723661509463311911273620187039784125160514286038420425865149919405791105037789085003746844155456684901624303570932049465751669664009840238293445834115650742129762118296485143721195773600387164785753499141773414683743904991043461060140017212254352411761568573065192201838228482771512757299894963441013216502779650724138879073321468334053933079518149277052462068984441472190865167794868899666081716102217534446004767501310838280350177730378860512989268601338484206979890254175477607327979464064083171667915809971992041444276278491323245840199617300918104064124791999343393576078568791862382646649178777983302003862709830824592336812664163534612718328769560134207883571735544733939378935875560229610783717785558976785625889417561363184011248695530005022738594566918588474030277295685751187324316259696099451096059574251441405680278568058899262417514387098752885223943433141867512167173931123110855328502514599293739869810339894655475225034424992681957018485275976964841216022221955839341615174938739750757683160648312805114683001853880488784707134904809060493894178767256707565822710198851240388337239770639665037616473341625116831133743540389663732100877506665863953904945714393215490773006691595293436137643477259070154934346578831551746784434454359378106833643317368998536481808693008662325470700363538607665569465016475238201725238000176256316786491540986467700916848893265070414684080606882599001292354671684095264928855363967877054731214257276643460838588997977057666153924031536859719610827797622176543623305235363299500367954472700020059116135360677767238818020079383556126386387374981646540764337600879948600004790664286831364203130430110147827265820217992801992273292848287945312719649891323299641874365585967791060603128054413538667757904496338703996405301156046785154008389816457325172639278323116973768181133516136691399258383122438086422761864322440202677211806093997551185075940260665659118334551636558071898321219489270777230834169534793784291163300846190453958309986856888281921942209188067313060477209634699518200237443670239611518812402682718066391691160782166785562193546197716916680954567496084519203813592612672486113778895844535151741309238727345427422235674903690992295444637989015330702613934832189563722343678403989171521594793364960084297674334125345033263757847090285086737375748533761027018037388946218561375122759914502883664093704583213928315403227158173209782953599402329943245333183970828540260707984322115766120901467443161257995127666518954263030180769799252401475165552224528082702157846804538511919527256867388308970822947636491710153451099794572289468947386291318149472792176022407751082595084046579890966540668791630565617689274512643843076210668837377035779339420637175578391622740214896536376024243754468299981274257811235961691117935676781856593212613719323734605447210900929320058644735263935569016833589447474376080827894541744783392259630162487666757052518914737852691203286820001034347772561060316547206428855717911776121843253701576431030614899983484160719104032912897513252576996551726336119324950721309810461202261717018099427246326065240277914017606658657374667000118587957053182403402553547090815016304906172271235198391307936746609342168709152954043083124775546432069630949484236096324454783382217894172959489905121689430589252982034161203206014864089426651366546989123889381972649079648509104817712311761416072172282809428871609721582848802981241359280636286363889310793321443839724890548950995802619515398773897794577756987788075969122418335269376860303689452368124654597364791833650386570132956997058020844986232665803617864079652270462158027237929424801828201438759908938934046023489433317334737361948169649916584413690028816442782504836088496678216584194063510733237585640375415490145045017103141884232140477856468789824633251197147760724376174082049831019599988700309732273998600049962649812032811969703083795419934118802201706330973977237408712598656049725024446971227274413020514663096541383262249002347720533616462554764000474607130847637854696824270709032512237876975467544903014210352967755826338823577443331471251354264655284681002492835325402159032675200240833901406594249747618954718853605771345287637734640835098770994912466506556860632906437361046623663316321966815048511735848569103723644478578912352824512991608590133103888571170274843743384894762452412365609548898236464310737783447626038128048967303779473112037122246083984352306873386370649309491664541431306190505417122146618629408662717769904050223421443350556458903124514745878254393293377478845166635827890312342721644246142779234592422134344497959739614745908066796390102120307703496152860688045054371346807987449865246712750712966802233358858484506231234171513508764074148673686887715585223591149945256802964776097053360108303870818212988322887459856749442236322827952647145697468140047171809439852037949413605148571948968381322520218469416537136953655770357663805598367310881062380807301708121455929327334215205889502983499388516755332752839382870803409882318262767233631565014912879246496624483925176328216237764877017450491160378202676566496440444937689843696107497817929053893235158226119470471486980393113439921782528602409345761514258544007122734505979976423606009270906012995687349683443300891557032063173307888983470312224798541125263620681172808863235920860987226103218775561152420808521439045216876740094828061859626806274517844530860450094304717843149809797771409576283782179642343753555311866556067213367251478645812016862372424141798545070318145837303043921609889355266338314912307828740154698309916055116283514447638270588863000834574945470583891897172586738935334677945104276612353534561103587672085503155881435554847767099968228757608460856321903449835783995377226537171683426916364546996831899028039000283089767113063147936559398791645716700106521363276936503924279929334865726069462025936164687976453737901260802045889426582575569550601105889738420573969417017688243314580354326577254373396667233803125102052957215324990382381687349528942099241064186251717393002327922703452614162753256960636268260338838416108450214630692918038328918407328398189584875005705480199713597465221618020525337483144949805620282014960936653302043530940104249716822211369608105816907209193372557215290351226315010123658660535909652518294564396380806470835344416639694555968595854990573957739857085497504624361093395946985228934859830804774640240843961386602933863426534485188314274298946253453252731013390410632379923064610402024785682183118109250812133734401172797281051645614797859760211953767667762759087542376294258007913257822793675618584143776865559772006012806815704046035088392426012140407324105596035394357560063687688282742232046706713763360776284363604042496069719672865348578838899450535232654277256097738364933225523995098481672759431387945388887119474165469804280029497677835719494215707907625856022302595287520825860909612840414116608300071434206331938793744343798378405535591193702209330589600141109681689958358883774640198087481765460637534354096663627069957610896376520670309671090782348809532844607666833752041055820347111638791704453142740048446074149598487162480830441808475818518155335454828507246287634800757024788406379497150311301252306630105186845223470598960181238718076758424180929265790527481095901365565753604767213249059882109796063679228222579780662851089785812835810370939811723154700772814795499517227629968115867727332139665937672730536703440446279166706895768630248319999599735962781958949730922745147903503566817149587774713579458559908219697829131396645854895694373112879343200090391256055819015131954135617796452911632466718597569925655804425716584977245924879184730516006065491556555658311248377226690529516088013413673898716116890404780130503910426560910358970897798209815907700412082829500684791713038705520837692446310285382381679366354148091559609514742032669153586588555930853528670149292915583334891218686027472898320499372653655148532271737734212893125264313057986372534002690123148554302149478885586909161986477273253534208916661640641420717305998898913615132227810430527805481403583296558304454645894045916066872827506483733830691954227647978554487203634127171715562560314939143500479158864162935179854961154370550200521477348501087845479495488191922914485471276979209968674249350286625686778903165968005315288361096353809294186047917732982057028070645422061535581122229540642725941663977247353673384294653415018344006280717309954795156535897427530198650189926675065246524373510108649357574203152523514997110019239220462916939018488821616389176279010602793611078976876507303898210021195501633427585415853277666227345882225999080662368532564081253150920310544927937070770083802473644180500422305956813164602263898833425493528183166793511304626098865717271502441570256853758020001400622165280921300805879570991992777627035991068721223426213713025259372385945736004047902129183423046932017827471260718280496701007176472419741775504464461828481508739042704571786191167535123524995641750045885290489850237225266624466426615578251158221857657710629323989579015728627478522736895631009572288330789129823752087444771591750476488925303473041836974532648671977485405872700636843772319139149134044125102778022399075954381610810508781964960654954363681344426097679479032805060144015679840709234227548470974092803616747002146286754925854757481568089776599628805314600902974498331272105716554266263435017558936354798016839285087967593977394818430891841528970767601743891126971178842945266462001918049590058537412150603322316781710911147165595771363121911877087830808649163862286995476554742421948040255730227110073717209890838566509315410567748417259762136855079733095589691846685323524282734410322717249686243076623407582835002881098590979803630593282769075705756783892339906512131575302537648408808281607438654751730983262870229009245423739706520516694895333072646489897513180110283213477852723948702842912674395124446736436580005627513370466144010152763227052597367356671208682916520093207521562994896856774210736328419882447140896906254185084109793699293539547572511570642654175309786685112238001191324312905205560843999018295285607726646546204317853023258114166857505392606221184546818219568623695518847585221640113230789401242470270941610208174454932147191102069897926714855117737315720254210425385210474803714339190816317549530030334813110789261550149525248006780766672038917754668101224921653165995261240026684292540132776822321397783256677543483552209917005791676337296967954401492403782516682165145413338703604315725893332230559772906213749378088471824221933670038784807606175202764571090741004350151503064385639428055648271214520655180024600715098264196936517942770074958974730950362403579662494983324899997567693039363019413235294383593538852394017995552414825068433807185104490101134589553801825144440303042709208165583002743704274841075927022143987074646103086053046759740718736560813752210283806433414473778358775737251492295704308825336242468914760628121417172695685615557041343604427458390995489243971714183076360238412195355784673243415967644821952149714679140085695409285165609737917356276589142844709913199229017896704834663838665325725673219492490957352289955499912216354193579917209323625431448086715675031160149578192610509420129663169009202533181399605623594590931490625260191202622066964133024884743365010370444441661498849524971788037496283508445015091641055534122817548625169472662809447360677880719509296930953669427220402033476731008536652631250604032482262252970480065702150743204003166175281980142175516364633717221619617234606170943893091627109054476958823667332257105654272760546550764344209572795243193857245191929624763068437836355851437630211531174675547330465097335607735516662947889753076488306497656785341836804932829883425117716605025006827017287963782670913243411636278473417761624937605272293291660583500408986070190763345915777323722789674220327013123817566458642692775498412620638366962958405781549446022493263635359003722269494603621597993491134311836877504325544007942953722694172332724397603709414893719549300027507226236069647658699171378322249153418525388137674169591322474237117845003598641173809002375648879071566151764430243815987793791585513815400687727467149360218095050716578556351669967749249632978864424202478851602461281511977477698232543020322704823614110823411520381705806878509673883863530500543269628027515349322232538986041389413208433430847805733595868419311231048807671360479991895479026418201100100179520215051697460669910173539820595330092572394147355089228359866912372849334164986932232878305210418066411725462292819282205270061516981344381405810156499603496029510182096644020574819758380304915845948053563668575265709198347376428954452306386713509716546759712107709832498430592415318684795041162395712115494787126132007572301469315317894873505676490395980922125840554919825611136428068363529841267310243822218415453217123746233077816171214689346883473637681861987598066297379333812537552691358042494881992940304520824705390494987373917356490825376397095399929241517258747932603485950815084057879624666325662104565993467954212385857998813114460437869320459013229914119877650351223988870955169784505014424611271426383731516383786529642297995877144923634135648594058197233640311106680467752802648941636734675181552411692179179750399776577875461816092017976046502303692614274308736146660002123063430365618383577105798299429092612080215489891496944808446647976239668237230234453814325821090145932332425259636436332222235263181424234946216546795079512504252592769704111848082203402647382820090914763106503400518800875475284336684488457391557794099017401320213042587730428022419079536988948433186754100876851276241500051354066474789750772215814126414413869573664648098163152760513166308904320957915583337246956663454422515697500040558029481895338050616616207353815111186453233587519326351319278556107675826646647823475455577174927085879142750430538875930565131177760317364786421318325041233601055673740974799373713496802254951618965509534656264853648721596216868539631496572117432436597571247689311079469231762686435928623570384994609849943773005557988182411323395721873419842761069813777249296743939008923845305287733225802097974232600818957213643245871162880712964523475682292634851946244943217200968382813533415686671573888442622238854388010336430717070915115078724741369031147384168607687077469554976441721831370731949322334398541901622297495221779267778716206476075168425919741481407490055217382002933100824669893011661916659602244371283963221158463421858666429520357103102792316558173787581213677308884862730923538398284616186784485549305709877665991858289658764045652572328272040497702640244107641871055468237516907411499255258742507651708821628565438222331607192789224203505237315140463332220713530265508198034014508706157009294601917546337721943678976475536564040816982505294885594956968296131882447134541459184226379249380311579347415968132754687295773581867523344307140432744336107295853929059489957151559271318192696798943713970634528414222504231369031001620707212978291432489115665226959441286520672805850571182179828112534136022030033751130055432867102095023876458255360985858648991169433028150458345983295588612923610483447777977043994781699910306854549904346727577446291003741449994142708643149782574978733706250787519648155575592396951965850737989365851461281476128772679147201228601113843315498546358661896070684482860464438068312053866063101498901088756840118603663046722062702091620041809026533097869005074793198284048366867561663760733182960017914075960337398442222544602114185358082624286175210737105394789447767417845238755827960850152310186052569675819800176245572954473402251113838544362349875641291730168301930922434854427086490427875689163624878466713411790133097380939446996893373738009349792756619928622859083868201141835310236103951331951778795165125977532315279711694836712182633307158691375654759161121566552810612748999170980832697787051952566264092173300309874845249705947265806511823007561616336639833479462822120890693724993821433787626766411952245259005640825226848927733003958222625528764552903333015805600598430780045044151323155574926595143905071671315269638729219055536195604404489398332100492293063533178862534774639417005408839048759376168622685010179530448631038987518611229879135763120763728277516937765940295827351808966301103657687368764912143209352920256020139861836992859385784806617768609853430710019748334509700336789432289935566197407905331502204725295099964164438338201464735900806537400538317053431735852363102205494122573455586171510694858815758747121750079247451571974295877552287550665289877987918201250953743447380197838038772317721418461320908801970018464301285585488224091890983508520099902180021967549284452528190456478258426569266458648224789168420871751531387096090864266158041753042206062617649750420175632456516875680277349050061837168548791205156863126092846983710807778676176845662769065887032477206325951489213340725288097573640090645256313788483323442683540581923586122297708035514755129380710818577406955212188629956363964196791400195528366045155078018982258049588402158128961423693453607285845081275150824933934310584011632123777639646238083181519389920500322636912719958614090967533666425906007335108410354059661443029495972338817118605762441183671224412414859266447609724427673720288477716886109445132277929154523921561960110197185135987833578578766321350568474201760474521768617932592449888348052080780688587510438823684118683159674452124411183823913513051870789010388728748911113035521168635012876365153781460418713466927753585271091065152898222265540175071270157533975558612126091792085820348017291047523713322196334480111014769192061058022258316866275154091866526572709362445359252108240991331536228798083780736203153633478934752935978704759492690570598301763668352964354065026237346413349511695362555525882027478951113386938615379128731938630420570678481473820395965346526936045317940313239579955419826444960152970091176494551567015880124601439877277905787350730188686681283227126236273289690764940768332139203795539467724566773409465823532929562498606938753225384568535693751093919192864844178701172191735256567073801415476429602941042467109427025709482679520025204871603001677009592637289030608211039729579182798363174631973072232338028689712837702305737996388029133025928260563883061023601653481637338462302019937282589008313690747605151561446644277863243477095212473075321997913412226463552497579359868679023604861811027612276581395861121871926895923281094936862880627995994746969393562357937877616627061173232124290950312789628836378856236547263087094005064054027234854616567790343602982414981334948898700029283522597345777243048285848056375082468745072304612990463270250986842040500095444015350322637015326250666963586916855643206086200623245944252854175209726564328237104090301377552091314664636855012751906949497041542496594105615774784903196684361002033269834943556446505401267496722698714958547222074254893068899416571052238045212744066858814717773224527988930923012347717903622916923901749701805140802760916422651971227636544166834338653003057965650943394484128124109941324000245625722478224974232731146470675763881084606362214903395215234446287344658914473635954087913365964847854139880953617048675967293733713420392228452616644498338500827186627237124549650781219993615969035808308213592722534104743790998988926904575178553626961160264527984228499556184549394180814066292869591809645987588319874954300387647176934488937028373318822136312343751134609303224459956158557970066871994789905612001061947986705136061060790769318349734271052594274461533410566493619093003148994738488372056888057466408785272587736804388297148764953574475311042338138273051528594302466979764935593846675255672272847723289918371639289874075585370086530306336304260899228613885965958461235106685574574880975942859281195256793547959762037361444361245844470416678234373475806942991890572006856972045281980996855316617250031687830143993465009969791277144936178233314858845182951535150047957041812060356986811455051696836517047949940418272383999646170264679215765495975542022123613752809056615933998813668854978296917937648661352737299324852201986231114656531416057859702392033227199026508720524114912284921488420214915119711175531344547189076582828481750123957672815213723973556549344157957146588972113888218743355829459994745559737256866282508936149222980729433090647418471479759747901102489150188306433537056937501256332244689211837476048012820728151447841172956533053061484980242121756189587908815687680488171808644988440268527321886789662786157243820739676866433302220360777489522512407326294660694814563691768932927265831600271134858978538853380153600338293919018303547827579928913490735404076369186238217568864059949115746714447845419783182328842523636618327260871766137942253314948621253850507131063049428541938374706357891032945604989424455509651861140257226437406794812951089508153253203788022217456796172033846931430836190307448146580523898031922882683119301769350461540447458354203344951832407667021402793185725700861465716059636247490429946643578028777735427251183079611960479805931009150797817683742947377279748484923970994278777229053783880257330579464025563964581519655389730433060362451227554014071428395976813932326986738123562401570154706975367988938491890460854708880422246019701269864664624821702900012356877814213528066814988318530310784583503517550750032864150604642078181649211336269380886023402170901789954395507739836687648257924765052076933191564886255730286787773705495187769526079875101738718230495695554367137933575036338320829160662563389768264744275204178467042422998224162128523534840863260813121384661390195152374529775644871405510917717128300163071501497632367294046826561327126549864197242377963819012122163156733167882815380924878524050141620576310731998697931161815381978541907531041600002343031114200862907500605863970449570844888783052377547703795366120523497572863910482068998123520393675577651887762381778909166708972027775294539406131231470003641975206063756122501158234540980588365328941411986815639879940930461205140499363298725523164199810486192711085672987935185697157467701865626507253307907565643315397390611754699858302498619150703544255987562012561503664749249090910472420938930426773735625512041128129198871963288125428078150736713937434672520660958417278529503652280491244373091092432947432481534660973113229264259077430182027247337001029719379920903104493546549373255592529530442609246333205709619592098415258152489562867948011690485984916137216978638536255947807189545736986212254696266129357843507777904705833250413453224035261956291835716168529550033858090328107018594755599837905782109370569579163681277248683343136753332907334573599578040580395693178396373238876437335359077936427772905187104576522410349740733264048057175237688374602042184293460132240976211248550790338849616739136205751324301065966027708124326451269276600004712745197610065759958359263197786354352373659447672538602316333018639914020598885393955094239106342845705082717718868002275245038439511398779790927383350288269438309708793197699075862087970160417402997305509714203191562469741729305976865644085751770367393831306943904403060142881817655239148711263921317680093441740519560210889605345133132177233526579423903660759698349059513794547553270462440158944963405337343109671296663639876025590207009226202050893572383935351600903180365201449510806368803062890280326023273038682278902439414709685624026583614577658416075927005002050501652832480994386403881009388332914935042054154426533523127604164738752640236394345681614709820549508682138602581903179548810806795936903085190354635781072429292283321182311954292054835413123303455291192717789467373229513249553526345530281947131093245438388127308713704337203684406782411731269559779432789000855097317108742453821465829648268049548958722896334328757601567528209062206994028475592376755550557895630890231391897154517415307493740406391007452641693443569259572900910159792662376723074991226029805828978273337764900852800677698430969420446773078459083789939885337840539089605649422677097007094015134023054115618320169170733931064836367469861825171316602784325696797237347418191666419859275790080420939935125562887597674229741606200433336459922314274128635514749666695889677958799109849952400705297354162035284760078627163655292558283370214685875182899322895948891555878215828741000905221568437683996105978251185930351100552860245541248504943037297386893096042794391037233845433603486397324437953935700199545262181889454176185232706415213323989351334474196423249406312840417544892130806936444442346405802705982758702996352698389582686968355941488524743840829250095039110092105755373069342177882116743867743286886276024637446651590909077724825492881840662958011211404481484507300817718952826095871750198943940691998661398768650497948838955021570084774165224238891274242328430463491605618751330793625693063673997649634153962289960884637470063949671926719773712938896045824280083873589450908180404477165418401468829000716968516765818745907505370581528643924337558300117964626279964748065307692350459105744976443676931079012247246284418970383611333572313002984359487649184529165946765137584579656691560327118638866574638913901459354048278280869738792567919887686807430029168099187513039272417829508399756063475429949251221479133734949502207163876962901430066671075343840177276060873083663613274019820710478092858888164324481824217648331030261768005709117138471097739222449543531213642979689992992489553765088708016094186988598219134661045236158107295168416301137574284533916703289412144975323521670701038662714093073464653023432376113047987097414169309535861264761039030933354147143784518989190485137618199315720327946762490798947731629039884440552125158069443887134468794746305552318590571825161323964163664124192264143297590101548682443813718647895252869257865925452365254704358453410204162139778409964102324697328659887070731585163278511219143904486485375743791748021157824830676670549135809783834750378045104469015610629620446358678143895745045007401627044890181303556695974809805983731242262873962087848704455458039348427155504423439015875259455693774041643636107044448094257336304465083891591564161928935221633490941396121202760622839198887779197294785780226922874133808569779853179409894580916728891252675787707943668750626618821531988265986070572117907376013207528189674735797978037288140021772381938463765354079665419980184983428787453828061168873477210933430821820020234176346238235265913962839980127986671252219002891684356977654455332730595196848296244162958048373168879342982591491778128303199923236975215107687805142485647137865901982083691254601545876903712558451020165064765014477937940067135328244877905108891297747097634999130553191434684909186471823260928066318786717976156560453529574980728393983748463884399724072984701164743185510238940381944083455092134909339700974766900841555998787565701812417082452411408886219935896538572073166030625791990862079644434063392904726035842213450947844011782981387189138434637748524179216004700595360356635011543115968863205495403166305160445601648838058004298634760522666159395918779400576109971567861337108894254389933020190346881956577152211558425044742219389792481485031024072411375533081892183519551291561147595821010956753165698217795128521694146528009113839031475183058976623234228065438413368777498510972403130058379492100578434039000837247378184290571904926041596302408692298711012591375205458186026754096607132407941951069651468381464438767168454798003024465167794523819770332362628793951296557701000070899614563983282226792737142575038296392656026153592133259736492228504513999771961250204873756240244410321185537883931629038054895231320501464048818668709001341356612122892227096483080604759384016407531597946507118399048369683501857502064095850384426948881780105635172118719215412153789333070266393606035471981113879359433512417816231420046064463342912315501272727381374185025628666592468723117055431977133998529153225254050761458282496123615953587630674761889263425592974107402238570313323985233866083613834561419542025639873834525555799808934499172519432754311274727488119172803333217237915309429909475871875335108135567970815052896721377180910698240499976522443551132211615418736685954787203646135209087810653401516939753795526899799147109427724510453035939926204278430425170432798341274924077515795594255992859815110402721937622479559311419080195187711254412359416907975212019793969653259274184344444294371535111140006530641305608422746540717981619256216954596915392469454443331761370181961949506836326316170358849751295741200862922603528876640464502875693412386193029547728805969072146002188659885901998394998479818758751907906534820647711008721467487661988349221738126218201983211715510768693426963073138228046359021013549889858707737324806994482769912258813368258210296021758261771728879162926476828589347792468099446619258180920886400288904905632212463852358324419225406017081014023410499609115609474010481848102108071781340160421165489787065723457751621150500534139435815762430121327688001528679242764652714040584178863173784113577094957860070138201331757536197410836654098864696892309811106511894131353118242286857530178887591066578623109695893391731015212009507682715521259315897398480325061349905883064033007648827010673229477108037200822063388701716351318260503929683931322775966586188421389157416513941391466910866404250397321982792117137887531443981280505871082875520929219124776811787520487348211984987572007280863378479252922757614107176765308785843190563515365439366691079556246575213712198792669288356413484754996004511980229074656324331647856987908348788624943250393422270817679768354555767021625315725558127826512277689755927639672515480040288330807571096839982887171902727048975803206078807050040591913003528688740613657419887802306049911518081725972533449166902365282125554982208092130996348411279364348324081303309595755307181117272910765276004172841774471448026509077418166523479090504869749325619889746468517220683566812607114362352284111136530292246913107636644266550546617437135209327481111645572763239046190191977920727330159816619106629923514742214101082128707561704270217663141498115834594283279902489656092073194907396516590316574960134428666369091500377745378038698331616053978861514545113276764952123813211156407253768296718732287640119864490569023128077370669940902364912202120313559092663669743708211126789257288074410118202213690668468605134688017408932867980708598163359322583690815651885539782160237700806002161348229468673911639355839920491467206018297745470995837725904090142395963288834055891799016205181195111995650731509409601936710006268393282706564952751517463850737460223746947715698635040538969101538393350505344936993909993745201290149621235541889564463544243913422831085667860201221888305499481551829528719650446834312346774160825576362324443163840044881333745374418524396259924384604962454183788317522796708734625110269432698726726095752346243019181392052810911657355266124619686378545021704349894808747843429868407861810079008810146250563955454472643464559650299534639967648580888479347611689261809507357100487788732492211525794979521097622018856492744257020838644457642202717109750337045675018110651803058884188402320884732731799327920598454384610221279355982801192795750576047556145891473958237076814163061896845162122647832576210678740479785464660523059304952911126760304342786877342908971601245297140642843221074952765742283064634803312500416295973047863704134577612537226792886683559245779304418074670176413343808283724200642391899399547650127356721914175115042295753741018218245519679018230491244479657248691818483179428337985241262483199032114398900531464270344766120177356653564521977545026904549507278367273073368435845859192638409247049907169643968345594276647407536796184456919957525351951439739309806095979310677509043578082224935865549407955009857348113675660692412387466201889949230915088881362495812068737485351663298023294351113899713801562580458690947196668116583881021934381440636554319241976717331690553422520588219790801864453729103954170558971686870866514634405948295602486674074941672713937608985671552014239175824677566353530353513344591038083344392693686547003426651052599029217204258695241343463450747479071043427392065889008118019728487831120907735220278572859611347149958828025933231199227691436650235566395126559810989899302994248648761136986939189934105922920781431459229820613829202358276311577850432189619096059849295060321902631606990608395950238419629420540231239595786119373153470590368979587676435568447710009222289770354841223614339734514937836603244408663603934972945864424781846664229776853713314904234962053896575170220887075528826750052685195425560692270564832155617453237492727727878886501060546284506167287001462519628219996004277532800017381025949217706800625521572362601115471176237819640237259494635433984647046964612599557221343894342165706878745495124632469846429172061452160390228102108767263546445535868234064546889624100360314102360170032658304768899723155950087620597561702013647728784796202810506859346431862616287332351632717010751667757425765160485862542393711577360833299387483283039912579027823219646080352058368596751165618135685959607569374951510503917723563905844153240479928686624911006321143526997911093420337618476086878845546680017185680354846364368551985329479536823043751449149835320743307758172471377609324767921123438212626683600853514823090815819010976357822936820923198273355005339274728552270340011626413448585648766396334029309850759171147201523193265969411647929149493214240418370035062061660635720838994356849989377750155807646916335715567185916920152656427590779580324857783514987099844042922856218082275998118398528335926659433961279364148101611011763927195932304325092289253011303147063508127714824321095248675208980598682583918537930605972502256644709447521152102936975415193301630531631499145028002233967788915252538915700205177777490133920844621701933625069610343222520832414154364913225666768329897555276118569633305687609508746389620976114006488627940496894669863423130812111683027528061173940082699378477031901598864469237939213266562249846475029624153287122557898311139573357434037236778692017368938338092715800816887364992866378823324915623389388511341310452694752790316728363046531142871909830913066120167786324238427659164263632584373837921586248121469115160997373517374201948113957683365945153255917052106479631297985692378819832506306821388283428089712786508789782498924651011908052442545668290836262133549319796998940001449337979146891537445860389654730166753408233005488163281460962389613893443131732085126371941726083531188257734564020683342695480520473131355113483005015339461643482255098491306446909490300435105015987989570120848663459604958651681518382307451439954631379580453327485778168395132118912906216628752372628941598687241622197078923246491293306507585481151765265350077130530961144240129856539516216092653375128091131035026660150902037024521733657983894201972824323926692728420736692271414718639193837888363664689379544798064546224438407505327963486799835610201501384709539584092877125525485318863232252306641138210731984950891156502333784095179586136045320412519105804752235501268431396793115884833865583035448687976776643124067204090649723728362505765054490708454372220599023563749047180178278185329300596079884558164829153138215324709503196399107767344733817028940845383825542887813096678148829952057270585752034386831240444833684517086165216628277250662354346061440326265516149695987779642439650363424790852411893328289952232755263013592467604661754836114776040157921170828422886846358107280018306549654750273172961833323752779297310414878270172365717412395956138227426093963540555517921140599646395724766653550553178414832701402319150145643885576117280144477618708601618223858110325024427098079676489849815987021096622551750020120428438120269162704071954823627745205133189724540959175311797945582590316078948529871410047029681157737095403556084728006088516816267846845270653726864697532279933133884383059112221199680986682156802114361665623182762746373551525577828176190827566255993882188044601096150193130500653192029362434794029553892675725249339975890288913756766505031828203690886264550261986925268830125693657858423671548349255708900909655251595879141666986567586281867889253423177654510456875276931104465186647633257968652272745574281139818239241509350943423528890255424557364896765977896371016539803731820238928769037191973061331139249009980455072666648795415326425220058404021035585766801476724613316773899258635085118964895434318068639854652419119330397038649075321499124862076291040690913298117865690138557553698444186257307638900716025718960111093986489292135631936124595496521765847581411648074044272965543614354619846960329107341111912739279338103335567283480475108841890272896474592446389135339915026824811008652113570726324424219215272643474064507449465343069556559474600962194031514274963856912701078168717505615084682244531999285698998820168419923419503289064893000448844475496005590788794366540997854016538710912356558979409889038476895574434048168426945777655981510499681648318154061251105173141527736619422710663731550743922425717742108839073408448733234006764850883235024479761898970471918090807324691590494575381101286458531557045017033219216370790747434756457852263048348549292965427968672879210106347095690798449593626738940619997835727100291055917501301573605014494313496844831533288163343954136657907519913570582998722974618119576394520430752600322624550280075935142159690517665755231712594042381766041413609675777617986843770700513003473626244445683131064273354302729812314185372408979221325155003611920951043629512896007559050624242426513083395507115926397554387586757818140056436528456211807677336960196350105634934778090840806795463338146875099293190982868960705051014001871007797312196103000698459170996343364382193538100921216497718208244708558941845768547071774747206152260682061480459050928767407596268795195664049855086474281213642480158340009020532027182010648285386511720062605836042073008943451494882373864415805225048621656419729597552742379719551952798420636882754842289828386683637695549246486747790120484704583822900235803459809226704280165965424015943619440896289093165993965298457250950605963211054170343089457248118098956032667874136192992122584098612387662961453076964710426261649900056082417480682131840875134268507085674970196740725788087023664060827036425419705115899789959368517979505350201271580806322048142515712085472179264339179142258730758399940715930537495538585124471847761222238630507351467131766291148323777895630581935079920663111903876885769687884425042876209110410728425836187068779160733625945168914800000529001395415784897919199211240478190084671400415239868661350651756046712380039472544303733755937779594162311614639822764967459505615029954602652090564067306947057010155284347826336536131957029041904884119702128597485860095322008522496171230290901302446640218298450636098233328122732747865984018382923394131116109868651123029388992171079242640461035377953634266042972469707937729606355219886339562265043250166130505136035841603210151638469090828237980854243757095051073105903142152151898395944239700898014562530940081071518065445344959587391075120358115310240954459088585873376927382458020633979681817172543955177282384190147035048568973183733477985893590696357815911338458212816785579184627206976120727034900902644067442827462039466480834565890382331648501076881321518585330279690378839706221480324988903169919562364796433619853299855204423100234886762054865001888572573188323041582050761870065277835513442633176983199954525844519990052046366350705025319072849498007975162425532111667518312402565150678059632948128833234711866727992033226212557918538634641655455206359771764783136199647681525415350393477413909904081403719690006512565718194840503682558320960148206607166790164194796260405400472460365762668217227981842407218031990999923821821238152507381451176171614660211878274487021918495163503574245551128826206939738756074789171341257450820615586510512189526919772319641654668127792713218095131728770340726559666357677028245807387752072843343252720361820954351547572830446949303774013909656234388881844107682616199863951199205334219331489405111278360501663733792688959790351761456106717111766391748962854697182610444327675014969961253872022770208670348663861232080921819354428936700817429662944416725079748281390965930702745475202088477917145749330577161380206806195757471610093154273932681602811423798545727055607257044636286214029184603348116272558739883486437258307987670591319366997676394931304462271521032976557047398114979218410272859016944236725046818293322202986561457764888419061741836009525328655145084558933481063559494919801156806617782263371460758840640550641126947268738575868084339933255291288639825932008324450669151596462851309798655952949726593115469422518663015820343268994256785931037267014582044206778361778966551916383790386217964414733969795535632209219018952336086925830632768705566387343436185540403443067493102677168629961704900570132246603114143580642895544946827889242114986993194360860256831951367198631989240687988174505496674536694856448855138321676329718893206255478578714860963224359614679186493106084785092417976966697199557509174345654526122313506640576416196448977477193311769516678252734645980955392167314875433856230325875334130880488715011966863084838629096514697024182002391540444597878977804444518483182781874625889577571223699737883874055767775238851598354285646280; 25 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 381, 1793267, 5739733411537, 50880874271320234457429758, 12198902702733892186076191321685124779527350023541700, 1109740725739713291274294881773330602747082076425195297781583156667130718401385930305170617114230829297417, 1605130681521125967211163863191959578810799869800641781322188496107784682804450934746516509550478330294620971498517836187486967355362741709788250377719381140929386076901041316873741275258561384794451948631105585, 33696401041546500298934767491744580893789732888461501381584898815917455219805863091764910833533997763786718669514434121235155815697585490910680284223373839819947934325509657102649950748001100014232212719080687477613152977493871076586028005702638579480584291578627389536939690010754468885334121659118416612434680289168463916526951450603224412002763256496835312376994721188030530238965979739070891118939199537944337188054566, 3540323253238209788741256522512135797341112540015963701542654029225973397136877889857424625323614917866977231158845048376827242091811574411426279440829527867908270253336935295584164208818116077749264740171105348075923894869126579489599963716387461558848235211355320304534452853000722786742549612398398689790536301287330216904164341915539613356698649550247970439885043582309178711628345981553038356030564829340404038086738994687366714261388648384914502493210643514413013803405262299987926229918336929548417331347832578736250358259065575809381467003464874140332713712137037769674326053952701612783527269449091772134465334947193160990954063497306506414949433718037704522327440408759218451737210425365013517884031610387438280324690108096873885598952202495437646207484776515345684731874678731861000350451925101172299072829543621289183517708824726427, 13039355687073126005250505463345220721847756431889069359483594012207271917143999132759773714773653972223574935080668293036942698892444772529342790795002091309105313191614768847418863730703414440711887019936701113165631749832501385768191552625562831150030029086585771505188686012847728508531905420306047399422294186179204426289305290663820877714267599300594920319459584803624776957708307896925712324078168602117603104929795107663590815884573517566624962734879257897216669153279877346627811065046429502630585577643176472703736683584808144230227982375454183946630179242024296608261519959077364919879978135200137128685877248914789290304603848767624257401268888960939750061836209273168910398723216178997007603080923350287101624174466211847840106576652413222149982072812814012607747045445633664247688914624750882730278809702243169719506440605358117666052876589238443934636248662790244525008880999399538117143828095608542997242309184939294046390572211609811173021146079297500488285287140921276373907036596109771216351052510265349473242022641220376505165646805059778415293373222754112468871387285609872538309180262208209022925900205761724563421290044816174063356350050033419480036552075602271379465551479811981304877516884637376375047654298796711941422387666100382261565100468243949638409550859886397959252307529776139641293206542573249812117626127388104927568707275017560164605549262565793688826536788541074656728646420771255206839937152616524603868822535972172280536451891845136358397245739189899594882528707495404589438392380749600547943233105802796307005507826421653699341998378988039651659619424585905262939660678556959770133202770086299528516714645510704508637732349506800538838552923957307, 755199423082123800700373133907232193246149240166284793009764574117476002870083548175953581803691168127192498445024461370185729991063493919976908654204847579741097452277259504969990754509285603047673334313242197783431596646468620717046557286895645925164865213185378327316413902668137128544375563208470292610931860557910798875040448361614851211246213736603226164106569522735646291907500097029824370198526930412814284471598287487281972209648926584541728176015334592188058533532182640448730814157908910317471928146439005332521871595125396305136685107780623280306753838436455553019269656113423712112496212425317381065841950155863962428819012222210320746888267225950480542222062015643218071610276288565460342244683371756800049921284325546691086397933191022438292964468797335056330310045085029622579422631436756248338031571475640418542250891074546468497224224096922202036645656053464091488469647752724209857363274478072835923049870694837535632129185230588027470223302385651625479826999878707077948744734962387644427138087426856161252817022558446783284340937983572818838902802081447214884266063467107284396368657606881805986314580263258582826474691996768630865055495837694827137703543641112920388468600744807087955423497751722257573487738236485587350252489974652671913921213509688881390242146276026259915745648635825657086607159561340612146225537210068206471517729518083024552400874199617883064112767637589424971143259843065775400961860224062862136978456357172651432293824870842190962312079996817678720719577915588155360408773652490313038082038669359473105147332453896252545556317424146394046480889284806524399286048791212995793075776360990138241613682235531651644927103256738829578399431701520641794552794230662544545654797484930467599679011483412696798663808912275107082325883063231161268052244323286259667561137327949209358937442676642150117289491785883411697213190494684951409351541858011391880251222588246878979654516304546680628489509801555357983975222397127893868396862539782478257046694913949151083316749522452095134774565469503834753011599113967797740471767734416884899548758711505299997753716259429290252907116480751489526792047536189378194379372548542916408599062821734894395356250632333717366979687137257872070324447236834253186488084115565549438724405956008175008555733117878049110928740822922164468863618879401301648840314736866362444680507279291991375970906847800145146081353530823851523450699585277331648391746181239035146393376697342226368473493568391070661518932491485716464985199824986835404105170184946138376674526582698416535733432176876078690659298325313742662091125640390831331680007053210685110051461335919582674372001227180252973753696736365111594887932963227918846263189189464944748154660434593998762878943400036408366062956439374563873162311594784320460761791750117299209780304631245711496128313374796342466686249462533288557144780241073360224090445303901746159624910243287730933100977400721336142170190474895261174073130691684506492139260883273719133363846190022702917101939752474184195161533920718834237949274438410292620063759085418391530406245737210589221267601552661137200520277638974188342200478217606443429376889270646036536930920746416364420533478639308643692810244968373196475682079271021355616275284333198198888013600133977221660998379858443800723497280915863081484551958662966220092455517328664242404093572687557727802646465045435996719481628207, 1564075859470653136296951848559716698162880138231216303462018361946861181945651809656588674769540832817543392506646243129335319312487395702259139132008712398201910268063204769668253845681017409263188293194839950645738767562259029945351644586793715263196618871308136917979069203274042023921841881806746776896241927401306814121594068868219193067142258623401572869036151787723301417710411772838467041032911797131295039029913012405772584351297528201254207880381718512826446747980106290867948334416631099814896913018153854266890993425675802975692726592259014085418468809969576296266661164125833756284432790698771618054986046224797835734379491164858755427945022881428438597788177956276780471379864513047028098832589189491559053656383504468460856831538097405524001458346646704520413420991365688750677735732838315585931840885063285055917407556959343544880537517037016512580740277288772281934996933359069226854035025123159472519749947655412518524791377758692272072600286478804528824086431761790097219184780736382236335253370703247708768526985206925977286070982749441978003470933925142769955166255171402114896326135388421867344431677915653487023602047432854479134788392031716281098604463040653537741930892759809752409889800184882216538851970401571046123026291589333125785651525043529989636263005718992235146854518873309627783171844265157262693692661354837777222589390003411569648299247972556120341474786388554188750376447470493234209789232649537498353963181424849173662192939540687249111518426459448855337797269415530070507549144221819275439854842531937906000703477516896378185548373390518294657536979142124862442175712070447335844453632574656847662053577623391533951331895392133642985086775167092554831684588815976408146041392718145749853074915412363897200414763812974314632686753431729246027536783518367368191719320977873970710772054576499994928883818431218962133119004756359488628409009807754583120655561004579161989541416961365354901085154319514031189964648151747376703006487729424766201918573203460508460048225992855641796790556733642024388711402495501944077258727965873827746952015625760830940144975287657860765808919138891416079415098600037339422637484974005848919967065935039142332870693495812074177506015653137500467541586890695240795443442365586737815282764812928996833688599592405468421634485224533980946146495817739759211318150655104416469210528458757332450851588375019835318744618934219355433395283328041313366796808784002585237035412076550965956399193314388223793360201998916411319763292585925193787536500006043416368279908286867251647379214404781468575966054316004769415657049996940814728149690162067693020132091920953414043228912194664120275780383335220002245482314938426836377802062151778056531086987809682033700987290020347589553191762271838944377763334596670169883411383483973334808478480346144738518788171153192994467701382622801017622190390643555405126032424323765050128792391187058398200527459796847628532494404419254693003917146302787356870569399082788296336431493005951920491335729694997565296017984858320336077689616617876306641136016388949212362012869768306162631646658949779911304778651251264484709406132201595007766356842584410218792620854186863797452649615347634827944359142052965246175958440148739606825060924067762476761615049370933401876188322645559090151775081970746854875551302809203283711210548774686010262819180376407278634010023537348257331462857351353647615469499424895891883513560964473942580978735268742618960226009426424026951201642907061697115428473947501174267949679881744980808277886133217680385527601193933523386011764750458416161664007905017792158781513899514908902870204567098766082527522952986357009340472422821958252520431563438639190172849089138033533531003037482062823503622779318151088908737700975401179043449189899020721618947224468612708245252054579378540654196619314626787456392863034235628388330312592226276543216996706726763865758399316501604620126581630349631664673249855613494303647297106697031531530937868108650949170562756438216236825258818407645657381530663638954129545266483695210944680231221062262888651196229903430400148468839580355000540960269728496949765564450678517878848764846420730762249260167896149665112310865710126471088046975221842311195742541094931400218702333255263642989789847238985540308942709549803440775075662907440937487113437885766784078329869824421388207434691106122683865541759976935542519338519494482118747914776249473521641706578658446075181652735325881329189341993086939097297243980560799754055787467997621266018646078320183850170431827897667042715045169593909302400456214281508122826534364913383447713626699748325812086276275302173581684019576663057999476389616296132858073214094328052583941867534033520015374241049924343547623248210918664933918447077388813956634146448770445889279279192813478160697629691578356992047549052203088803024908742866949547477605881460813603113144503464322517051940705595663628750728463789237551590160187671254079307927211995985370953671624015169898849828510961350700662248163821015486035082316630473092128463899006510394338027299734310498371264878666179765085958859834645289934012676928139096820730445738010990897316053008514227718712007324155008406333017869278552437417659845253278534686663193209865766542038813598097253495579301474231684931937439485021696922924474804724271369362858384932965553906066908483105494823483823555107601067158388020263975574342552602281994948224328585074380196501150901797080744773693241576217680002176746173331786431681013200541031259527925756504452905077607546146924497107199691916125036579378702449483617508169273745080983959681909137747412419785273680702346555873148523336182012646507163829830896073861011090117062798855261385471366702180257731714839802354696558207132224026316584325043876234195108969117292211439800692710367117014462000174326834129628448026822213233824322768006891579987712372890705520706103873890272468670109905933884218015804791715594447913311519454698616933031879281452285901711395094681365404356409498416292026198427874103113924561927078337711612304706457085264208497068852865081912663671551968470149305075139739446897717683678368039981069956309178505522934975390996337053255525093292595043429639222331385077188183844848470732977036571503292372816514127729773494569345290491456045179838755744366211444752307086701374977389015432212897437446581213796021469078364015662470653512193423300387246052862209228339487043979969808612098466847563113342698838008840727761240387787832210100301616535780117394343841029952132668576450740011406560578885649931656518049460399945051463233875313712093405850711650101958353282358434297001504874764030503500733280166897935837678184065906302644276400181261337559166410694796809252860503853367860287062625963263230600197839645328625126115267786569521134160081092, 2756731215379178282867445362392588186009118504788308000413273253250239629070721598083017588294247674764231975926557511814824095692219690001067481669872444161542205821221656618894897433385291573853646975812685725213579266967611607215604604079659172673842709868745830720973707946895335074811402930064216896438753877830054218957857513661474344524694269199213054247494616165827104696795755017653375193319967448076788595124286486502750583424932371162386862706825867754734206718937927553298518847530438612679377574980261807054267508209573760630500403872373878535579148062351608466867201947344046284820555184496673045230167571856922907821157417693477890003423642407163654540672799192069852394181598044128374483328166185782666503882579443943138196042213573359152139462248048688977169213688232639778195952512755279224214348724176208553070803414069861147785220023981181483556099369049805985135809764609719651902978536133205175452969259982145828972010020575759113217422629207752462209592216964006819694440444554105629161665985608402727646378267811212776750404695916152801532842403536928903444347401279584247521813642022453693580799438613972434525357855278506982772990968932698130928913027633342322474131875712260334192419451350687468354862233794341122789012818872054634703204284018770883359919528041283113579879289574862470472060601083978627269846694766588297413737165655460323134601370371811981247930417281311184699647388326280048312151553882037368405202203580520295021367282309699805483700561114410781900136132353620182304876132901180507027848009984145012810291939596394307796804413638428876094040613769513199200386964593413176783780616256244850424582500316604079290344996130664640418009836289897102260717639920471138811288597756537069737436496352350293257314511096339266459165543020345910594463423407889511600742964882198999199424686181805605997515793596739195770059346251662473935245885968856507133010310741583551163555180080400629636267368642212637962480963456284370922264291081424262365899521567177576288505438049734662260699376147243733289722645463731067690577589326282855871790281797110254209983524832527792025742063295089928077463483099595503398640633085812072988184529916299439020628837082253654143128917363989849217369545137303054642746659923714301755874049126705561350151855836411074544305611277398594224106981801949050707140260774187199281047424883733983696380308378672377212981217420149407373977490614887049331661024149647548154011799657808485758660599014056800517710050981720559411061095886112624468521539763901315315193639590052857681785539223906378271018152164690960116726600191002384293672798429586943849958167688007874532409008228328633807666709951811672815677192559642063361475792462429995248083123288068767248312917941974898195903568968967453719906229878089758064598335371820706047068349663132171917722390004688282596617204848005901800176374320143766005529095634485692714316356294238632468579264682745806310392141603764305665473971160267153845882647713107315100545418507712509209278073630011558753332064767315771313866042694209547530234891966812241597463847451198407981603181584848182260032063428742142499140281529359066010836328486263595155799720610729325456775189511778684615403915893400762502753155067863055611025108245853151530016863785663174517770638252314865527584622969960222648760988963864459551557454437236382662323387210546808356846941701863188981854229929229783182070544140120864973162561754690739171233023792807239635717881955951754894848421852081554427298555600743428647075156887114196928142522477982724457539665091535531799665579350439403507946514304033885851196167434193726481076360290954076188143736704327313309897672266983659285905940930766488228623200689503857451759698084170191378265601399048373679645965594829763291070943556586163729192125147764734645196330914825134853168053976845813258167305005263279373309340037699876951533916350223522734607659183907223879369539436405095367433475541608740590011941005280974946088202245013410462545234585970141749445289811411391771590198384709013019883548677492839257236376437435619910488542147429995248226980984301759488776343209660774436622248500304029658010528964968733787954547268593120752974146686894315279218305522230898762645659558153307882344266475660547623053247990996079264619760402252033151846336073064397929841025913522545041970181296204668170007685521004760891614241932767499331058350426420531788245437961341709773689154448206234129474077082157520900855860157388881249481477532308795133751967915519928932666775393595303934435919380327833543763423527489330429341984916829712638265123790720850773435842057416048867594531235971754163606199144414461238457845690514044253063495521611849673719766475429173713696655042630206863206646183108344246064900942389235407537285468363445728577274032881268892071893834060449302708015776289667817884537612273508299645269265860587086438000316443500778970709171195356782341350576716009640644546363176813862643597367994003501498404169667596961929365376588411388715097660919844822067474750412206669032249514926772004222700722736172895655174048545347086496641651695324554024154711393892474596155338714197247377483719739441811886672054140608876332221929485428471935639726449669616311212517954209611968420319032310255470115787621679508738515200616514708927062528991086925591184486941785558619411913136474751808542612028562301085935954611137956004923297616401689825839892511078197353484445592651911767738032618725145668273013941828246053127913084856285851912551144715074940326429302353152951012217001197205724318688560186959945299518480593506551577181857227480442703948978560802075538829433012360225514925667255982301892956601804384238246663487267082274571052406153877441647739842683546931753001557197398887069540590284336495405416991472587248864542995404029258477693292377709052774897394583869744229394308096669739930327316340234183021684712596875189375997317966334494356300219351226415226428677638726969588132751777535485659849387331918312092952290646250213051697402626469361025222377178517506574401221848138097161551094084319185355495339328943139005006801961234936179806569788633926072437177765954744003319219085212836778187820621512009767410298077102194561043076032425999036193519126886897935720867792065023087071239269781210368098056987578105098918889304860245567975333335459762359372487091176812992617914132059055071297518882565228549447803804242341067721233571623924752637144271087571989144831090082314137802462376536106861978053284581391897094008967700443837028018612467479329953015959199319410063279131229983851092157124356213362101314485410831568323872029381886605482693907203766311485720470978571919761316861899026279458428940266755630869418807731563863777328169325041472515199425699578673476107206908771564288692742336870476095678195955885177445495905309004028936826721538226652035360105289553651865646160759770559234292708526223032019775437188508794108865320886037572144755537232105912956639118457330990336962589603510974095759502552074991279214711538044644966647915949802054061767178630590140055955708590614471207246494828423461059825879700842200774921861404937149699276246900266624509218729380616854971200378351018633815851558539145639114360926830731423369112778041445685146323138175778008230944235034590517257091743648919491006359490030732771566508878912433511970798848386673905480350922144822912769286165701861499879042664118265973582753488245278176292944094085485905298076938920929667287161735371204164694977066868586414725333063818612846049417415662921104268548162874115967207441029734284150837054187234130387747454061258920669711610507963754822219423019184695951465064053312321121289975093124810628027358206480428556094866857975016997919155949657517506438435571217933857855620049130733907289042780484800476053981579624207528409058562820663329054466112062154690165336177783042753040087188152497621611296717264937924233692936994497665340916573220748906411527915699933942022514223549501881537801446856858817040725541597473880992866027736701615509267617273463369967670186854824019301939934042170418781604202727858620922252354770372140225046049889546958846664722038171761159961722962637701970011915297133064578083853765369585067559508872771877287199430677529006993063759939387319448703078162831951435084263939082877009206611774202926887895963597519970340614456983466413544500608345586640914835947091949100539091853086675722557519649821016198270891890599498665208362700865662021759436948404233883013772370228260722342945569509331042608375071168061135710204017575796258535564300057884933058314681570821874889778537642807067165346140448364875814805773788355471128716351348813138426895770641927293571584707569646903890175954934392946190900927632845482204064900356071912835931790862169573183832230068032708502987876128043895768356691742877413097232678551348168405485118680451879078069486087414412103087285557137949955003635734137701366948017395669657487012767335824365496280044428615606314035701377765523577511090572690684115051046243649394940464180414239309027165605941794953763002859720902088810923187428805294151657623542490233187968187300828123007585898571755945778894410042504875518758382452923748216436668970092546997656132630279678606582891520264663884874135326819725684837503233461328737236448939200858666624978546771316398709839700072580015862234789938653865885044853349390277177265237803019921111898440795536331619145947247407361181839530166260380396142110241001150924891197220836502341744601639629288435082325924962278257506394825946138467721795709100740260489622055734096673354813513797459242927770866227599538755948974244226684856430347392493762821057347352249762479010008194775195450755713109394631044771067231176645864513490783454075939549006902739073843554481781757392037807000503007613454400039981576398884927924388242247287379864950190778665924451475698816785713430804143480918324319560101842695672740159558421577029729060301652466637531815727696797948318959508642283716726138037812550755959852784758723240281848072885449726217899261753867562043177274562682108046261021398403572539871061871518280893416381951503283877387281023089461123868865294634124911548405937277806508609954599923288470822118740215665054315967384598515563796285460929582829983627808191809717919809675691533718441262557350785327627596533520398012129374484977154532854787279537262576486919832396590242273263370924476060943897734717544914574836386693822219407327472632982884576009510362763580124060385998164381105846916233542076936452023056524536565422262065317481135342338633180763238874729255759555568585054066092529328769661373526866946443634204260704596196020211134853485230352169309154417173705849329832246110649448217939746258207199799734548751092721516445942245889676130376123027415491559885204245756337946032158357154682129131194563793863421327269204247162477536387418886465583824416818341478936582882832125232052889315029997825720453185172128456303143420268174704876311740430604702924731695057395179317878138813158444729764881982370389036289488774027449758062930295106090537750425776296702197472048055517852084680945078274537811900854115175229943317869590153822128389452317201123536996878570306229821090084899778215505469897553964363137711830958127957111231924078077422066339146659521369720766432204605829022098827854659902845339943749326976406043569274622289328528940344689543150391050043504793315231293059022498382746557371170910113541043621419818563812855546041478404603063957370808167377884723753867836676651054026695398296524648229467778772934885702806319362213376326998839751947869782418605206596404858476156739955140708919033881842123303384613947903961662388477823431985787970712724441916448300152504437503511834447586789609444138859965385961072747824972238572798285824294020438929106594938957074400538683655867641551739994345951562454638568339566647693589459051321368879327249860285768517116856995556676340979250862506471629148193924869401503784553753284201120935999070537865221379720833503789247067722413665751023755026140422090833197578991398284512423226406722346921718739797468872197926884120366603452238422008944213792060713730671463226022629516649697267176846715163040698879790733522499385194451087673727648040051847775002930652548717359646534523913171207721495424447496489387594814332500235892597352338840426328824235231757288145456246600720713288569977254977572238474395808694684787074118920369642293534964497959033583910508092654194067477226060634734113239474831684674667015068472917870758704417140464093805399998020143015577155096628691759844528592658350833581031859439720694202468019411599233382268206796060295017360544338456898202821291006789249254594220105043305761171307562351328255140601518365882973296496661410293888634825461256961540995583659319839094487917995600478968658261941402204776098059037826656257958274151595657819876907367342063106863418842425461884848354543585388351685620406778189337122109765581356730948708466236338527455230335718452862350502949321733626244959686369440596616654652572389835215635692247541927366891371301786330087808725352771178721595071540000836419427440265985044601400596232334596535388440564066842608178333151754363677565900478290862389991266365975339206779253032173775897891787252121963220528926705741573887252711413592470853111434477426152208413137746776029068271858600332607671204384578739263159480285431258917151848626293740048298363793688603163469495975226267152923199468749782782600236339932489532446735512406980249949159933497311109959143660406134771759324023227920855055225166121627854603620304883543819481179503449329956209471838, 21867399191333470966181171506792517237473481365267943172975627065551915060791135629215115053542051793372726816786504192535061218978794139219724831720196078753800084549752459897611016606152424161335418184293239316042279651934350255238120257838349159671369869936833780058451381093279390592583642483074598472793343872155389782484186255453226054267516894978200226842615508042226478805982087523673252517211606974173017035704048941322531001366082256457786238060542161194978285217454274153584648516807990466294157705195856648244242956039454144652757533852803495307079014285095479033285802176782444412330513710492704185783768963572959749656979043751249923623690785555735244356286711858585580078976051907493357343653640039360247912096676893591760065614782364947919302429443464146221514721088221372879689295720605126753593583301747403676224160633864724977985518689224015276224020522984791616400538025601253402422044967027683363894936384065906304896371929428581910476296091132121244611007662382263138851094283942351743767551883620745719768239511917757813688721743633289809976306792211801298233153242281610056365375254085407743279185696142648435885001852043269337447995303749328971375324945138951451203252739396080577979959511098937552552335316434365307483658578438447591371795991455813906977209439889430063616115987003210513005898241153301787934812818303151347357155992640390536965433554471851133727359934597013527205583115516114449585569695096524127325288979948493397509746817624481978292280133739463348097525930873991680980708671471855384132290298926666898076196012763762922357869779931734736817577840912486507859233632145573474219287188653538404973825943765145038019600815333454075346411410759137322142142878345430590352618651439047865609332974454839182763292655474606533422879111239482542989169769016915300447131180700518672201329486493248507879656673284378871481258966865454448194848204807141431355962232414964776904023519029371935603598195746560060332923447932100619665395136945621889450634532653889380360615089314490241548651663447440713238580119799521632696534414795634422030901748199758581753541285570219971343854584329690259370671176592264007064283652103124866753030373403635046477059595524296315234648263231592839865667100014681737786217073778529197090507753092820064904244343324162946146062674152173089775029935122192241754527301192201146540613426261213120018382308742180830695857558991019789873331670257876943773809490474650465859261856415522892406597656351765075244571913933171061351386790511686869138058500890676339173817759549715305292922792494449093384614164988103928820469035264637467992579198993542644107054187748681730237889686732464431812132178262708071768953887329198219173551389367379978358094537252024852496965299105873463673781201601638002898374103730582877537117553368593919749180717150103659047670231760011705690021540839750055840026026455924344920750833225306712663746475196088634772924917577993440072632474046234334696600250277550077692009678628742746588442641750611365159926320982402716385589225321693366953213691830853076729305531191802817715033317736774312544733208812793668280941142131114500651210873322697690133617211827097714576061896345953329324007870440959359939532345051191371837314229577317189108354049746638650275798846211701290505323120441043043338361948305956867323863705092760426680801686965091910787998300940430785663067438107866459986571506066455061401990937294084249997060605469688688642936173832856045725459258232912577274693255962615569574807175008634202678402644861648348133425362908588745256678998077919531856123817380081225842224046665705810051199954425602629671451658107171901137117034635873805473304979320303762624942435545499594887282698977195793124706058037379476017348088092098995834049343500806527567782090004119053813325068383671984336857362497122735817458447996316357499282378731681813400906608710807535078728943690808184016588166235476210031579955099250556933858600785064532576751141972031840791290881550079569025947636470037841829834507307443882444014429364353938582523148448333773988625653374612700699442092286458131818981567049296597260201882385341661613420492523951140664009288877300640296699345225185950670916555092803301794242101635659721749460649826808415533260161786471370175949422885229360495644434163055408353597564353150886257632811037432917708569377451115301053360632456241853907989153758449182040187758382892095281814051337615418105806415354670284497827833664718494359835669931595676364443262334357106265136526760725314735523380635440778480329426362952662083579000658383467487497670773987003917393762795590850934086606434503342198740706431466392835806685542954131862130338004479188420598454992985165770589083319816105285084928647609661630045810839514171392890343912613285721930547729578608352971985717831297395076263826787138852284305127554667264963748629963798083647339289838423824303325830178381325675971003989452139097991742013717358900924279153330919333844524250895481447922781870212407191222115172147930318171632018336817153796897761441822876781108054065313548702881882225936162734958717287266443370183782849201882769995611814195808064078920366422304368531273870399148662235243376827585239326629997450253284833386700056323786499381501810721038388810898956141466935848362431538571854937342357667634983806806611255132055789871983016966031776615803158010651073022430981822375343568438768209018009518263109978140494027612549198784295207272685644520684972720865412154775791944013613135868603455030405713280165907103916102729021844357956899047353014395894356092425721754362316258869238190302414546068023222591316061080182533368208948740892454023138306546834863481107389538356969101822277270673211461859062268958076483529576426914118120140495499365812036054817679071562734526636498755126870357058791140658310361250417076671310441410808171446191113641793173979964933940949530938143723391724938474988656846574699729251750037687807152639804597239576594777558302355595937373833475816316928074127036507183549473134953445895517722335633330996035159572266435787629990082753881524719717484383446212821399766805662985800513307885107249626258111374358837253295740164715065607480891884615162920688211429421574676227954754589127333203261589107010300080810722440633931859619775585693006324658123776368770808848433610248108006834856218834673967989559800750745911476562023326346941026115919079506725508073384729964209129421939370345683825738364687050865025006402442382255727938741604817510225791229502774947682205081769256925675928724093468503602594039092152367927664054611399178234482101583458887223416769859856334909255706187523934632612815747432395541593013274701962270283633199128349762083569618178067271652997466530161773088753046901592753216434222937784674675598723285098503076170121814101073642067496664163955250218499341504042131628976856618514142838695776525327779109269276343217051832336523012448349262720574694456874859345153972432605538376795335727984982281978389815393761471353078145231801237817406023199530885133103728403318615367005262758402081368746969103365704520526839371249332053566204061717539437596674843485028438744834837434040126791470544243114650495239664011611958843225395174883577243377999692431556745268711650325711055962245569289880108097567594716565375923761740842297010568118746019179121467348615430047959024217197492579417353518815136320804869488614893219774709931462904792616361555746512227353150196021836674107266946942348043225513831466506846034075530168028682402854543401180595478167503286749648876346301470483391009719860430413681322831610708688861983560623900482599967366721035292607359980070210621249944040934148951534968043828271086989846105922073910108289848035884066633507458803168252184307844843103587064650258720593264753925076145133609829760418531466646343489723459150856681519582194143723089645044366659622249746882709185210091154215987593907150296235877521286779829543152840213317478225603181480006098349972127992906568752943766688317889440415276395888274577630227465208612468881195382001406362064836690326024852737899663155644770740723215932363999745270387702569877849488152078043523184267411124653977240779427728132974694655168150582876721678947485670453223422647681432735370761170734715684504310828802584314716480006107368141209863313257067111830721944144249875999217887000529906586954774468052799355286864676002953465060781685090731350120245752892702986762147603608660039102738531934582772693035349194132526163271444232677292366897152671478639722673492929656072993471242515161147734832168483143112390744211342174740418561535300287282627734245630396341990201654404439979498773495039776772795908445925752678401707543714013357286980264603417435862352910946644144055554100930664011520599763473787930124081734511257530057311320523584724134415687503412275963536143677838893542098831436634447195186080462387731334259736054537339407606882713711739257297663475985530424849186160995640202938689854376332268059722235372315963916565718993280927575141849900093163708741873578700373311420043331957086757311350858539371733670482310115730541181051426155727557846845265405798376782794351399201675381836433243393953671301525382332093250636584198916376711544418263179495368928973527241055753104639926269501333042844677270346781643442663775670677202698488533099367464633234117450189720104284220351425917538427294331001477576307948592859799961946961694818948841403427909212865210327579364688961367830277186137960176713996467709122806300959205754810676208804134667969296536739917259405403356282077498636789596092064141744025568090780123630971266989223614940043184807826790226961728083063753559385325250447894141451136392615490325792299143239385247380972272564562699972573545024471300968307426108594662481764150448275148996580441759704902806211180543306387717811175331462746632829781693975390602379431167320454418721462049161575972195050489640809116144635827391816657577634212795068019675715999166341564248405975415416941675239410023317460478216197732297144928523156441696648066800562063647777801914996089998093153686292973389711604556502578855862734689887651529022275803893505318390514806687059296831640014540950750380626524933364156448370005518186902833097110827447900366138579714838083226861874460791856358533845598942345121117115927908788806362173103019571971329919526263320419121714456709353488905430891333726284833174438428988692865796518355954499603894295347173633097200016735641455880284335539566897962365656384250399840836502098611780354451746337463895076942791084331218401368543933218477093205251958043101110647354029254538802662905027531258248204446506342902432614723119134793825201329443213476100195392950691877075046891393961471654600878277493543893149877302288350116361813465768168155593903922888908991357095594342021331606607180249258006734474353540796947016456319210745624722481226690902772304201397354303473639928604516968094239763347696627786472056480623089880040326198063272235784376332127392974583433121052044809214039897781954614654055581562566704331310003738171118990191363898073973621228585889919924441542057094701023964890460234698465123839481225984028637078650362001889131814749368503245557761667648900844154140632134445755306172119408525381210672641564341907194927301559621448846990105930175705098757795082091230963849127941978674130612371446559184598081656950196213108252105013521326665677162279916775148544311826913770241507898959875862535544029342399092951101266748906632430389593666944141878161651281326689275001387957558685088508445676992495022986058187083410840562740599020198556684054030878456470424619556607620531611506201807271250666165437172567932696541110567490978331009033722040637624413481377481199045144135421344084521654422162055269754823022899971744897859982895654768329994300179138066761276201322513741474997390933983633061957875694797682056915510100929573380983835346749072461650834750340724477011978839686674167673774360327163468582234146058392022194849307710604493997611026255739838068780682442156016546084696216236903954736197501443302463605837214959641656860191088701700694389858787992788261846169694759921505377057207096773353032923954500709845737616572165264783890878390464847566248574312984050431974732790978939744439346182012625809905356482943171852280581360326520822107949495860437951168191270995878371534187647613072994737490230955676505408309579573423523581661198159169351444303100041708685445575962294742261098285424884649334230152683823287024096605191706587230764989239719208368290378215065960790200125601152041753856939767517472308616272360486065897961149976688974295308223234689888529999753089638766459642538244866230857419203996475900487109404335063724220138939996014179464820541039193056972725215936152148773753620133383085257938456709383118862385871537817661467351929965956889107252024815988699536901953330437588556079359772089142176517372910109588090106426451566282169367045192608209766037395077988162976944478220573627029506253480455087997142819807061925006753671492871460040292485796312063252767728466869297277909132977748026413582418595320742210358467192629811109575382532480629748977827375806273571423776734864468261481141191565780066188761632370240259384294330285067523873122120551343366993983977580522657435677699172566243817506738166790406306305007165749124764740620399045743413182199695607306728173653382752289367395951027233018894267706987433457017342479232420934847765860730572088207979891352245642376884846022671587087679833187194189428185217505323333579474121674025258550552383946378359784684329393433029177598861488420937433872895474465111180964896276735080877700614250643230162182576790855870109811517975217698741051393391743557959840532497738884290775237079784961683377367026480403943378764113896657578806509415352358567626751803882428045950699465222828266684685326422717108730418334891261449470483943944942758321342803974204469921825132506254135601722123246120319195539300323004065596688086031417588176844574571292808826803081632099512720016655934822775092961219541729095983389426938442937584319984026249136758693166744708630124261335827924466945970866943285625327571380100797453487159320904721855013833059997376236956124799753705316297431958287889501942239868045034673063385053813192429550329453881926732966202099452121606918650713068975940823064043851581386848516354561015009971133431463035087995408291055991135303004311848605228337056105030475514818396422863522526383654119094320844257016434697079960131216271618671956740649867310727123727929992734590665526968808017365761671389590353304825612424545788208409262511458169824908924731329693613728197663256803044181957678765413677879672190846073611109887754907706279427816490342699515093290236680500334992139225226170217105768669653021331078029617245038015504432979294150719909259284464267832912160795792942764531600167236945614813214335072433549603617181246953908734120865279063715235508532189429852901610900840282115699326659019206099006441153060010073892337088952543569035376715690149806968826804532677301177613241252626604001869369099901328419554074552635572310958115845640461883198626069786977172057572630056129929642118354244488657105929479640396549101961025124912876463128496819524746017939996522271562835542759439147652932602459222646549706113827701266109238050142480030891653255371383168396710600900444809396735991463319596710956159674679992337333212988996626713040800637588200868218887449869489426452172640556355728051667303395078953975197662407002258117590474763311745715133614211521780298601697171892547054098818932229048905102677297598817952751631783573077369953328111392681179028291941936609797539793832962852845873477451981800419105225979788556108746586691238900711682142465734187712768298874524800777437466005706681187215686025374588255067632061733955509902589845792051844178053042673671863598903457262380317264968874034110005996179551360201943476252897179086150048682592156135790280763333600448899651714471956535270667128562736320685781649252052341263029659544364268152966049560097916047384621379224647392894644711192951779836688668880134311077831756082928089299265864062190060076585855834740760860761038694676087817981474316098086841519794178360403253076510701073390749494001353504927703563492028293262966104894331217494131606909728311833957841955424364724916674835792165520277654642049509662345066357865276876922849774183720288855942881203756872632304585526790180656451144646610691443660303918762207999704273046600062650561033276588033127811710916507448309520492821202198098155381523921290683087334446735424562185095685146730258727417285272180859523281995555161659987312643464972820501395724435320640252477269073821253279245434761876881320877203687455893590719246919217798806029699138243022168212373686616493524440978426114655809021971157177589930896527664516158790753490960487396457021282894132508015606620084835275886549846788367012578513561381250894977002472480960552177874201247864302081258411910098613304360649261848021805006339106097142521366936112864862110863731711928200030739676728718705538879693336084601737150616097771010212229740929101453541558201342654621315599623657892625818343506629355974333425753548866435699774259881182631315166551728426104645217017873938157817664256690620049102675549286059599217535867704116624164593002045897715812932483574017606700318397218279988149207205375239955261069751622057120508371783012274065038373408498880358515721723220744087674079376713414905138144679600222103544616197307656754128974293172890866965053419065314615326501432791501727414210017882472574530581819745658955231653465830837649589785976627981488880502383214595681629812523968245808849998983394620116063166369438273586884543750279226809869699556879074065510732078969637492847454237375768940045393158408719570411269108208393932941490132811001229947476780314478430753977394942425678620344945444452382491558089972795934601556085134523845411756201145350636114928028615454524652814970251350105649108624558658429198924319845170104784276680093317546832110141995846040114906851235951624458597577385525145995660335018025557862435416182538401475722543959937777437198783960685910813158735032593422510639829682863152127949482785392181261137359794678153765897172622839500739712212779766922049970478193026100858131262209064831791322888123635469197468282815507987830963914717663046568807559326709620517721719910167921618367025543752052419656261276315892825994086058412870227025966737753671133189169972564689372459034553007057980497372105128689594037157582611586931615878624978274356232321090470513145534420125076251538533059768729689035052122994927920391071357288568453654055715962288774222975988005566681725677375538752354181415420739414685398842036625872187310139563672765774532218917344308754124377582781879881978763112370357546514441994667747740493929911878540105973685897009201476618079692134849470293015678219907588991203643345115333129098692244164803527317099412786078348274989570774588317756272349858550880309897201135148825116020293105589699962255365957196557946709854220227468042116634916278860181906909629561888203805166799155798018437976814572382741261013041467147696700180052238132759780099448101139845811619104638377996962869243054124675618058454319344474318552890244632653952124723329379955761990485559373242609083358512037537242088579856587658152923947201882872595824178254663767457545000580071407653451839197940059352194049444464470672814662670007340684716372760945764001671044381191563323258295823681980692117986656497060569184900655399091194448251102959061053065479610585346112869805849506224505776766486791475722863487461222548704165632793905851700974177816995272551948989294351784682124185724338553013921225622961371907638814593512289271472913546337215995122416679520615657295532227102574079364883178312175860798796598620536333707490893155637882823749040014742402337553352291689276974358079689196280246049771232841821321700957129768629211456657521532543153937209082651613869748474455658683146559088879615432087839566372923936944007798435787593750845585207058335022561620340914362030460922712983133861876946266688024858754179384126676754694219762859087446944657145688881130255227925866193504189195259969757081283497131843556214091038577166649574706721587642797123109920470132343435273563305772326307912063651383335151669648721639904399614421394985179301376635647918001241072359050986296814053806084693963129870284437062868692749417637630110231694898154524605502587904336105897288879037180311624462310293359855446466034816915931717336033186443132870490432891912278600473667573114998176078408488653770754378474990314300571880487364593000211939362556997946209756555197573264442109852069591285995011681783494814657548938577237745815763433464756894331627899776580339307534895437942955022251981738620306420619548409799937569234534365997929231875969884578291873779010426690551623225400437025374565600797377823916462055783426862193879999242143405661986274076487231117335687007695755397818215717667338322077748155977815745782622909425152749730791364952361084706127904984507906216990744698243211630825806939078374588603324630679512510277588522074430844143604896264778875630438423604006591228673836203665238339177610631426167547605125117263486545344454164274403186860608521453374614646222920769781649719887591363659384967333918318691227512049394947215378818843341855040453078643996368727237724458075710479767711670835069361311857519280273694075609709621828870465842584312606982459799499252990788892803347787089891783970728586598446120515767510286545622142822708389049207239633029959901606224887497397118513993535335999287744018602816739006112911971559837528115300848262507484640492259660733569186408234033246526282416938297432495657926265838559119917156427764368002149636023139793032254214692040362074181838932709216200041918169677950052853278909687200534297560150839121172312860993122366602095821296234023927272398561640136224532820553122855361308728706377978649879271527506124341296176027531273394938230432629495589345334762494406428666940705444400192016264334367474188123192460820373140661756071584959399835998495888436877405401730282314792457163736257470384898258459058914784220066877912765520262743423916353031514923402221469129121556558792011399339486295225728584905491290404734732583850719242714896395989949948679813517231198081246824420593170877234195657991496271656443375636995578971871121085434626368644101213244607034815991122690554360447523389998738729695836418946847295391554850849350043566645238010348661295943816662490487931597143061391490479184255221963336320684513690684849765361779675202517083794603663081719213520147148292919738887913404130399571935452639540054832259669926356127037864808068149641293237378090795646344668849766935672309560835948859258409704368144578951658492479403158576110389262706638667355066966900561072144329336243867326055726601028882057248018126357790671633118067362150993751204327016492248479287402005673158227209606284588027680511012038523946205251977673954571693954141343926864500860221106587955759869427973431637671771462319896673501556857685640578274784380177821371222547492637924502092797160710802111846639343582853134196381476452730267348273624221040171681008229967045436201709745446299020388780459523408803697633135752304694204081494228556952590418112122598819804244994808122267119800032759672908107729619037073945876245911346572223286972312991048631767824088316529924521185276434909115329565695053357207948893682946359886253072227573294912952188532873027993534817252634198233665455131560580069105284622491106809346033599658341736516010848193926433991762867786846910391760522649806674397716791251954504807284907923686020869455033194812528913849000990376048916107729072512686017126039011829785565306646997982843394429620429416579526717812057117783036699035123883729422829117341533834256695731465117015886612217826029133226770672300585259387730110129122255799414231125236781021664831629158498925299485829174046607116936052999675322432232726813420726748989805950024167344746509682170649881025944671336729402417404246106906092144645409404754751506344920850286548351916442989820030334839253095841872168094814239462498128885903399027400627012749137480957950863306162048996408040730382928084201889515285395734137002598091466143488470395632987422817479236731723250929622295407243623732218692714384472098777892222666158649152754488356363987016858463615131811486277826402609266091919841249263916422541029333614732992083915823400386185774682928918855434872828256246112533072693918670724244311373281841965663966967717893497032845813431684562701392558747275154877152547995912970333731808187621486665589065643821047203834269119215116972110282272672175703173040514395680355947211222139869189571001871880457823412605425095947292767476967967154194532566252063171484427459435267858024305286367971958868661375442791559985436704865650677081840445940339466999997130766650777374137159181450780974028088467836488853823526980803044089662996158118334617896371507794495565632344185851483625067266526071600512769301134941434944384102099789985638157829948861739900181349374194899235867141914391758341552487979497716521074460719558014086683702191442624017867381723714466372543623584135645027068673797795069890896003468830371839571583308005153564595281052913309794217583854171865144764462822905276182380657442750777345351936157897457079592428735294599167070053366598412525410733310479045297475856535104548571669782818425478351386997853850785916589488170705531080881410102259245396506106779660744499812462438141064205796921284636428927648715236791691471936743567013230898639278521343298074600979598857823375740077792946050768872048886136936470862958764488352113918202972582480433451656324614261957689175409542594686314616872801253703952804765350497270145913434654323599085052403202575453486293488250227400541153271907164243481095827093753870450628164815037415785002291595494249566361472859983342505360141475513944357520473923223348000644475347119607943052505829852882281384527224959276886649135990181939026728914727931087769961497096272412815375397200230218260554803737723169394756497036780745676974363511972590327083055598207805491709362959570950205778715965170248048844620018587892788638383139089345603515030520860637516548023862981811383459719777823036921650655641613641365531809648624365919206024635679651277271166703397321166927237981306425854107977039511871142676546255723122465145282098365566983644110218854403085532265589751793168637967820039116482228497533286808310173208237455769916210412973999271877417373904758032607320404624721850638557205603961627820664139461309280454133715159373205276556879205986297226629033515484400868942516683181741923895024493041059383427653023274228129346818222905194549231853584697659893385465351147871747995400791167523125704579269554768146460163102988753930610490172376340729369975023490594657921180974833619904851200861430217001347743915827487774945518195464762217185838013181802878021605902496478421184899160367572940060408672147334573953958028464513002377426882672227314872939424880556110369911949436107706064113750923418693720921590738074552250934374134723159404200013272818505673830244096978585934001493265757511037, 867871876800349271546468567650156609151376960331249809354973109958791260956485701556496270498706133190878137378860204134913930732479357233350135212778446346960703927497601777414669722333209982421877901502574658142131884164820596361808425824430555894679489370136342021128797450651775142610287943750109653151764702039885667521144714863305743727941017461116038759237802336221138032861344189060364041393272184119663013330339261979248547060251276933799137621447805082531888483969055843115289722906988505318762381549135550201798192002632006788468929006494699764139898234245230510386205723326801363771676253915772446623314242486638753349329841856496329728502798049155018575654183435216441535187513649660109954874085076834569895130906093604337014346056290248111943056688435341070779006553852611185318389729168773655295904394778051841591849737356763191744203684293718875037552449072809547466604889193168468765241035929370622626539527473080212653512313715258643557703305107065606109116863666645226490087368285786121153033383298595014038939872103735598253003651199590981320978495678652023787271867694212579477625918309743816324384075315333459124438072699895687836614997873613314808484287471807786789630692318742772294415526600257270009608332315051649995701644111515781632296711830306825334789309763011526949847767180558322452048382840505047341298237781922303784003402722631913617293307206163240348398419812993239210654371133755882511950762339405853079986473079296670735415060844527621265938512841610289229548918515645311500769507381167421212554141250927424593093563178116102780118037200227888163582940690138031592826486837835235177744935158803799827049345086434908518244506201978872271392939549528661044998944779636908551675370652280985268109464796242014862187173545995761866150412438450508533883964870585997488040643161979546991761915857275994465359083812931936854000604845123635581610891182348450290346226970073388526471348759544360517300712065389462442472992445187394949803041942458850434263412932291835285753583508019936898167033451318326665849083731536093046783763144343765345210324997947067249612802133519888754285402090098191861323433012717757891352624098287842118160301849829056633196621275811486234104244678969606142805065841817907849487963650551165311372089031666200372584946216657420053270697503457906286350448343818399737344402421321591111289301129407135977277858552015285685397362452627320042380380641487351600387454785546927273697936028542564586456053062470509348277404108927798474017442812285293010984673064213544275661603478321783322346953190166207456442266944412768304124270018722404629649698424077630841745111727869339652827671289012590295949588180110565565719461626903270083496740606330169096241700345078070909962246050077755389753537820741939779559235216591494116274594649922011413101076058886597651037082273943877494633660840227587800483890376530253025365259321863659213220405947139153778537171327105396256632140453888927154401354506701220472787800206830498714662720926427148168880453077153818963410568398843627835317949970959013925693090795433493420183531658329034729420439947368580116779341507703144255793560315372340496805216914524209788092115315742206568156675054912490220681934170881133613503404128214059887064456778831952563443423765179475812665524554568171802326298583286364558483372542319041826350778085240452832069103980250732387138278918241687494237336216534059680029591697821859740210188194436995420653040641451989892454150605255554612178069225696325792836117034055263621121710112103645699814288003520016617502129032904628283753025351134412095368050746662157463279847230380397342117718203163554569712493448861647841460888410704887593838877149455889622461748166201342949753709447568328989735956939075339836379590751030044162317629331356467974906462569098411605487804792364148736754399280732340096740955798700974375762982088897341800158545989721906876977004371451495848232346885586244571218778237450415276980152666020061130709349812384316872606670549557200413368324589339942712300332269887400572209459288541757182377439739443369731905523599742403285887983668016146583139901534914983339637493173369627676449982803923904428260962930043334686342701425480435120403158020041275805654502760705167417304525244629950493218735139128452770300014532890810473266768942736744578229425932827636066257362970897251570074706043692424217062209731394170373472196703629528052474753386516032793304394782187203431096751875437109558321854162078544933097447914576035598477332244924442923439375551114731029442204679536740602051248283405909146690704564136465302466799170350846147627250408655431085320547740568593750269843713659304554078327717972665876041064841301476992716816355358416385592388903775960375378549889936076449319081220612471934068382536539693398978448322629590538937573388077718959791437871585024686889457887135190845281162082083117649644070612625888201146869164485624141411851376347918014760145460366364454811107709537172708829868993831679746459298645172309644384893332749117351706426063240210627301686529315830087081338299339260603993893870064491292247348304707023717352574361598074405501970399050962661631741052831446594819281539167033161699951312690518556159879145528802557823739626331354106578149328510319946931982685622442471610255449968244850657042831386549447061825016416157564503995885116806643652754108090516961199020783798826430478353876949571204546725673274849677898933150121684174476027020623733608578714082796298923089567843635815175690721582026245718570089022946248877922306081307489322341038937808957551550467230914731013290165147164415440626071668080148203682881020081512474146340093370971625682609929292466571380605565726577109684369454322421417971760634685646618180836240156882847018793499516423465992001013290098435269309471996742098212823317706570370207745104505089985027313381990717289944145167675798270626219934438777500924432258348913482022731024947384631056418289080244768322329466436789292554157680508630608744308440339132018820104734198804463714906005273777693982681565379924337879732927882154615462990019445669228890898966416559976900772405763123508144038629074360439368747233273925008453709000007436983809816399738941966378150753119812838495051919098228019748883358353831040934843859612035413703978347078302064786358789628465150983004388745736766711421231946473286216897934167045811593678199587591095022148778299202068576999877324413930203849996302842746741586007448213493596212221272630104551617665313840111425092798466462727626734088446584717134854641070811779271667037673260808454185293071074008813789836628842833225159735981692460591643502746182190632605447901429030766197705429728062900770067468209957401424971318526756457840125601446235303739486963893809282220548745380098325134397740765846828562409809975065742173423509817385703166887588970857576577660449913807346979028720574175532406766768162718013703589327234668971418340888232291326734160738810406847944481950059034372031565291853565827205206260506677701359743176768117706168715424971817360467659773382743406771965573313221326836032207164281053165761536381991539535123011448351481194574245600729425490316937787639399717813213085017374372588654301935775543949291729883367969362942210830071462381884806115412889237003831284301176367241963433887220937037247118959835949671392445668779726194125618705712093885936038890744317764700187917814953440635505083017341034632778255478959125771792386543993508076585726255178405232321334048271890312523717260466188401678975870340441589384989834495559642427211991998702709996889478702200446665929013385490264064200285963832341289390421687790457368268975224297024617801660605022146144635515876360157988273929758926333061734553465800814924312110662866691164550018505330518804453883042590482738394485604804009375014597760770861314179753012536819232008567506501251394152952289167800577126557002609018174313096253231481600669188286555190787381554093612244185862002617440519805022497312509500383033620340966244301069494062273126647964823993006557549634871088959187097358321498983272874178510248690811747216998116081396645458737044241026690149120812830511781322595484668378354371798944555429125457188958017878020047224402649410510346628739700982392402503371196559311292969624614680946142454292755145657103499955007597733308671038529825273509982098968481738287507732145049708573669065128663134883561693359376709967069700345127881375870291652718543329939924081727218141583300829418779162603733934375712065040118534894707154857048158561539909078296327153504253346949084870452871586449183814332743090728269468737447299154939197540894542235264527124429332703744896410659598884402608267689184236304962657945433778082988884618292179802203703215541885723653396526314375618943402139111695790619987043233200396737229453256866733644606027064283053689561949746932888234123435068747212394559887728140870592331038032536117247714249745809450761611559922265984951798595724087146418046790020408194547816901391588851299204897230717869325606984897588188337685307362313182974697463220500712359248561718702545664538687690132768285565652192073588279410978657918048136672831449244133965590641132883458720912279933407189488392116135737798809902355767527508148773887164759815347556916728457432787533068722025434268066214778981975241506680914501688064285988363401615836313164635134090831919478892725707439385029223003044949143899999405564007778045376358339442393737633464241374226693346438467703659618520234072077985536682071735736713919864397894233098922923710626443191712373791030704126001250082726491430690927972876214833256217939587289916171421242971425849230910413014990645711191556104537158574999322376033012416077951602417924400029174585087423167666848362949630295412354405842325852874897076882061766318724593087195680667646890216527398455719201662759869155914383383470607519085741196273196106805027052060113171637870407385080379837244731752760771012310632349822343408621159580167758790594293976620534170210391393680706509857522259029345355518199841491104553464103933686788923818207975952356362187768266127364764594178986417110454206655881672372883484246444929783726504778231714234751395044541627889753023077008914868811291241430440680529252716686727904901330374576510193153424612026984203450796549083457339096463550660681879718617654002654588394694989794137868909742080414307303131742534522582734871358616835634617088877138465760790447962153878120897868862731042954119264084333724326412758262683050150159027151402142031312990026301602865080610008446415157017074032076690864419981276747217471693495800164423601327086163496166811982341783908275543278836049465687223382105061813746119017218537018044083211254566584192997369842890766902317539227588245163992438229678644403610870026683333506946651940752492886176799231449927698197562581240316409350096358563407114896196013784637072951843251526040089746559695549787446534208147142815129613273315562983111984011223671401782127805082102897428720979331425555634724894402694448881891252797939461830041919437643029330584658035676143141037383376457266594082333749313700765325154391035818126090575393680221849818956349595467682122282506613247390723668415673908171613252691919079389442967585541888010230665887754327843060613133865013740784661301425654506100913043988763671411339076862488809444097231297575987944587083309901218243777455306246096156379473643642071218746909917061886932893880488547635595512427573609650680505940177754128263686211485230144669278643112556859492041781221225209011437751291349398253366784949128607572478159321792274803859139532201068912649261104050432994464870759695664184595774272187751491756503197043232184583988057720477109587609323973880302922333308607804864161763689184179547869784831517549602192585009040818883103073725959652387126150590838906947455317324045112801520089622344121861550817363312491329539417156722088342147442214135270067932634861492219903080802370367731857728412864654987687580941085350817787349527997644792177854350649540856634578567936059486824619870967833595602370767541029463940230836370846524526634681610321552262365426902886677778718023863479680347729236168160012890355019745996801363518942903762685743495008448240557953229210703220038320736831143154793907426520655916043550397558325016119690870238177149729414605016957755675010541919645430156049965912840213567981312118592991772386241947476901796957484955656527555426112110741919393400178615933582029363640715007905439374032214750837902577726003867050898358106734184404058253198544031965079046649034370439301928177057188818771333413113497089480495547251002933408537197198701142258426321067781987317754613333092205807689273199850253401896979771116425035456345034342252976267013509423505115871479957201206460669824785680742681280589148985872655033722580858630561198361889238089328397627204621267521798622701654683592537840904626056603002599749285467420838874842170647807349845152029627920610503441765719228518476415214622550310524928408954679216971347880670282492240707114309214948780514912625305360026822314882944134183018508529544463882083324866490598235195896234499091653197420497634983106559893213697135885117778385148827257461706451477285484074598679956559705477093540144275413350679873941087019622976660457252762214555288837212534500287442598864764797456449614386820770778428895330953979854010170280470034178868855444865168942059153745587918487402569047839702896052916031667817382831361899467404863409250448555151249005984075679781097257630043591926081416261100353507432477999358441848509648878742890254689298693320667426924225435670229887573221936776172574892667773864864921861576567112597319284277048354433063043221348574271072962743333646025554194710220217526758650902276017174682705120254390798309850892088030374043018733262319060924180613578953580897212246460048832364298653676085151400326017577460763143298993420157247294186991856477518592125471715881248938536502625189634729702018505774614679476633161820980465174062626539602534065301833642512384245272303758181847508471783625988774795156725016929430196183576030078816733847790386187405476367561340697419035610133689243334998161930185864465601135132971911043894246190123883487689522572402797782298724219340903693647779690889447698597588164028654320455290483847339378324975822706912595781564890331036630375251558315344490195716639520993870588475856529841416448108942025049864661379622608818905885330408129545571547861539332763135502433939168307030164701575689345905149789730895826082240681715166755210427237061415226540864331969626997856525729482041111396614486763727566340240122664513629100316929424055120027438647577881575691307902558069754391324224708742636195483210797036178387136839955794216550733725279269386361368540181666316655317549902651749548274419492972658179912697230538602998072360237295505244386407112703681137026097653379848788830084367273117117473254442166077685306324451821934923632013384828017880155905178590346753049405097954972384091754223104420604229801652290823276245384534789057336142447441612436526039426419258893937658142812945016490249847048434145435713692856745838089047456916762289539102153489988517844778138278658306171536059003238397925100020357423896649494093353303222089872382812530636194541669203211553353337979693234883519322485153521241636559662585686874610502310703062531930254790762518978273436644398089380778813531633353963303655000168289201356094422167596805263950208470848818141268633704440578083150759021206274167659886218838333171894732123408273835525381923990872343452029484639198802669278988682758934668125088853324420977854673900806819879062880157347337608222916126100060357162951513811133052543540403880451309464763770148599832905189257577353608478509767320995969210600850081606423262279935864773300488212511248961318953818105551647302573757724959353329065924984837055576571527573329504549287113898694232803912632685114352796389888732614425506253991449834191807149933932619253140358283484356218713919420802803731425020362137487214531082243153628776554618396648857034012051563934594620432738470278014242841998638230637299624987544932914578127674957335724728055553979164659690425880097251202543498512746367627998505444363190030451871567585527299435808878811065537463036198279918294595179954426118523893161737323587007089539335730584450258652283844994622871129155885309556634158140127575834958466524304694474801758914860696190594119307039122976068856856973512463021987798140499293104249871505549876958369959593397527817805175520877978054558735182294415004798793909268123551158224117672876952488573917860398786155974620999105525019676515964839228531140921532909327746256180246386676111380290375582044556141314201616854846291990019912245588838672016959827016593878565753145719082118760934374169626991187554182955539870190204938221076694608717573748432146017180906766739574172309291425079605201147864908512299636046248860349457911136674755836276193199309597308785769204749724132251610527503092747622543189109393745076637863372706494367769840081911460244938035102789997225756567025049745382611173836502942984182576461991257537493327669306271881714931517788739256024891664000001855428597078269331295514563288090982227591404851439407781901817640693565973680759388689434195487623446272749826912927194590855853131788242845313098192992402846402374788005929144568004213865747463961852536048882527937396745229025040665853085738404043027542249770372463622784403639614124068652984575349771957617151919173012085466625202405725713943568760231572239973782208600159283208363948957417730433520848618989397743227889217695204475042516545149412765103468189740536175963483890699298686812816756057681399030585931480739415563770757970258697361818321587646789034503872590832604773614717116837385211785305098146180801335030290396500424498062924615379302780173737348078465483489699753878838653152073696409747930940087421200782487565240744909680306818936682097378624906589908285207105570785610492017805804539568098802368451867398272577583767580323653655075288740206755193473393804990588590805652290696170059291004573162958315999277713929065340919156562381626314667803439862360269688655237904568630287576979460885839875324442506933809890188561188711386847980247136332955252100670313010780316831448696386350887348889127121605525134842413346296387736577725736580090315455558478038433579333138069269076134695980684051622934249036683623687521899437388579013794912475695317811216430959671256263959485702562673534675340180846937141766615624912719726813990814912547843790979506531277718113082828829774886980682527170215444681224084179232660399099597604647818118463001372291206965771587800701692277381052283506200818077791462714656924119002336963950507760615348285830092139056486671386536305037371081355011020292335048662678180767829763003972798269262220415516721637296783201184517439986706748104026665685759435369471831601362192676936886204834712854994284981916883103007530186924572718495344511096978340676979222764888585736669657164273179636015083119526772098467297204760979390922451271449156770869890598910044145124645758559825893868628699292623659763050867753148993191020245657870673120913978476145238199985500739513026897954440212699144341181526379753713680449024208188947502806695464340660829324883025362495443003429845314961164968527427866846437437515761359260069580950166060198775951587773973894432634030852329927239213662277135277357770942293121175831364823568544474265320936087888661206663209856702732152604829090057220964722132660392449155289355133282207599699662225826031994234189674973460244625387792259719225993313729270217613021262809700416359365949575734140601828288234715849488242365284025406402418355952196973815233243948203680786248039808746368806397050377793587374139994728532510095244886460536871643770518442142388589100599815142749703054747650492888618377182921154848301745174105608073535912639765910573247575340652471734987088966286704289521058794544890366009749195928646416377937360934286648839551519485608234381501042296776900783268860684572862413484901670738595687997126715095491236556926345767903265488313026653829356991683262463883536241137303805552864848145776163408694301399994029520540556790362029722495481269939252259250871081617967290074384334042699267999003728604372482938999508502521131243573359948336778294227773421327664771426328267803374288610899794919691244639008995278727330454749413365792420770658310711907763370446478143521245921833662563033404068815184794199325040683571108728007679504002812712944021252626867816071125253132432239486901040567264879426915465953796986448009636027605891679329178707785796232605721920725648913120169551627493006631809866041143578622475315022651753891877602468123932319912213966684481057853163548420623113600029715031608167154963520410387039986285804672000762863653380018451310067367069353453004889548761084063725265641387384991342084198641592928650599752083232091085317088865249253455792926731984653584634396891952869990885020688908392004610119692471718684832587141226292918091315366838820845773702518900688220583876952929125872431120675187870806116544888436320807256216716105214184781208955051155954516891807549574953903652470184679851067983861440538414987358840687599877477313464947504378579526945351351824557312151882117467910182652659837929742653320526342569160346197699358833428956399825755666609663717389146185379932285081565216278404165515052759088160842815735797140655496006496790970353582555391866170466769230324762786982780137885766351518195960653385207181189147908937075400272806296232885579440970985278523118717171167353693708755842309412524670735513565812523443526756505392807767192843874814284043581800258011432595100508974445632931420559165169667820863929900250760115534425007573629898507175871326979602053553732980145474647283327521106514857151485789571220072764592117905023590873751495324584958743196606021728398841395772286569434392832741407490853624080955179025037912354153786418098510296397308116401359336760430279451592877092205975118529202021931804640588978297529655473777628764079546086430587027778416291975712902532681493709372239948646149285453454548469340097020469072320491484555476328869602569967854280950624932314547939580859848306280067812294072464035121485733606645928968334704064662269711400113000150253165684855360722301772522182111385969281442718170714303137971021058905607785115892211585816513751960886471155572986157949197867730782989965703966975350586492568907432227158339432911745976024954571585959522969215408892564633289069144841351981709934366816459841757887861664140484669887231756999141719740130629911171120564918695443542847259060622001123183432339643068078806140970726325042153509173299630879768965604250463224263191527877039989012956627457063790866087905826673750511937456860285160852374016126750067490541343035388246620002259479904685500134986721671283667996887238538340858639338672570919166683323729950365545497007329806889393153730475634352375146619106377027378810244310851419484043584380480704504426841656080137992535031568628065898746684769648886223113569957920761742216510522234854146185768089374321696940655699658980029585807335244654568417477863296662945031072725089298515187173525762620504729219004185970497882637553389528214029042618417650736088204739633778380961374491925397718637084930086592394450124147330237088028347845335491664077111969703267963126906427845037702743703440488587423331846427516798218629765445545097789367000994319289911835283901073333623580121200898461915586115845022806525947576072646014469328844320616444579157938728151837327719667577923327617326976973621192723807818195891112283095090473513244656734216778173628175588691043903891613005383596906929135471988949623726028727825870382420910538882365476116990263523269696536744099740163241052677974749513160133184642314877037443865515610465500885609091783542556933040197341735083948464059348386439844176816450491690235093484835751635445407878400972880509373562765668443544859954647037848098349478887461464213378736066069142044757997216726722367987051891930845190468135170695003538432681989006296668799727250551447792934096056605619271459777053372851164953933689815767204138650377177455493859551286222461785097825565760815670034353305476191214904521143510259232103799262860034076142514350538252594953237348107307936853654763207367275264461271280872746325098895348301383368640650768514468418998827139353257929597077971616722048331871079913339023798251780535299437555301058858143491219658988997397590319482495166721252624510133676376639557157013517911000652432758209552189102574525093827750137252689085738719201741910775176756956827820449363058994045847793988154581121172643273671128934521031192996098881857043638884157946875390845594878836700491436486620726125256097529071156932522181908344525561016928681369094225585295302014753411100196130599631194522822785345783992374636335130222715940260090142132926487105083957188335887729537901625234038324988318186912695508232675554340508954195894241485783963127355020734754548593060628697646857283066598960771940952529530864124137245517439213785161508604563949801646211194234010761066041780890095813556912683047100443525740745058699082406098766222168550148062121408326082993722457207951527319960488322291214590759639659665421103807980764958595437996339651163910937231333952195599077174995702839290853717402274554586772492557521083383886095018073975993760804760518077387733519464792468813686677787080972671086505346711604196439898252153525731109756853369985736258671615825028727108000274801325260585631745263789755621848726016086095096939729417299908202207378180975142291808124132251026296833365244907744261767936616981957233960127935528327270016568871265457607904240411221452569908676545608930293354377151144657590914261161834870288058196617525249628042854136590462814206571287094581720507682446517686606254272602319005350444161769779506705336269553185834288005156332349525555533492122494202650404815762780452617286589656400084350447672816308092383726327100378438031994944583320305970755687409993054972818554168434046993884158852308599404466467914956694936067118879264295644574983249367095762786633575217026599325902364156671126111976572447097964415837417241480486345806848546800384854661511368644386304639509752369048902090701458472826684358672929767017812931429240226333623064071496833597959639542512531478705496219362502658396704911013232248719443693715137868694044330471977249420308338542773689568117442644511906708142101524725581254708438895457338468055528091254395649705674707598150673053497973481440775578925612727788948246819287895644397696005662509437543903373157116262614646407500211237338700410113417310680357453073795329099529910967381541445582622401753588267496316987288265314978438577035909248326919935693652819707652904380472581759990114349352285059570864387613929688516017833870538423723065892165458978025264008654762604919172951699186520390583136055386734969625085746655502580324594699763989177959670048133625800567135743657218043108943901860082448796332566310671502089489116372888468107874867244849399752805883572954199002555293586559391947602235171231593759915297914987694424742493714506270227024237461692653744062664979570779568520381218550329587097770705913466535891626663202252265980151865266343836707693687619921734860860943387799540126658680216263834633588784036410911152646377711297597965363992440456290159058387301891571041115816126600205836868237908592143034880338599472278346821930209340869159409966367460807375040733169248148104249626375530991685849172023903408322046361511439740877958236975350242258324589866100798597927331833525919779028156866596593075486727940981732533825993833204012124596364948228877195344052736488272918357363032981427868545128952824251587563941790061669898596788262966927492939950905964671066838088542957975025026828776275216298703245348421150071955856311165647230410383223331858679888126791625676067611048708773609071692552664795513586663234940109437432511504650927550894309952432869103702802417407477996780686688310836049412812968215560742986978647455138612732388550719562869047949364633175178231579069433524423675644834872766931417505982171365091188045739607646660744584073091586670606746543524629228036555449657084623249758551115461939488853181604530871326605484787677257930855151631977198727692429804480988615394348917400589609626779952316907877713030170481328283877756147299102360929818235921708310649586479019077032954027714194174793157115492522055658258270220150124714944357375022583939183861670179814434695811242478378959509626557928712565937715068381887583012827861487396525057309517953744354424397154813998783771516299302135310358541458297474725408980010919765003549519815377897657334998253433827266132911260369547937936776461835997882777159876831642949963994038718529557421960756943846802031416138375853951251700707195707897593213250984238706593798882301884637700690458513929696370393704593634500688320507990146532046695364320710073471257954258600620345211748059829983163440951645136491999651656127688125435579152724827202833105243627209552579359805996629991946370424263953570346099489540079375883673730336684097800549596745360085340579065956793012589854288378953939274044679887211644667203058150586131071640596534803297005658582343961459347341149884855350854275759248119911926508330000898759297159601252788290219332519542392757021254097740446069481075504773929615259761327696551289446903436931028102105919285099555520757450396510389239438511954921362082949133196962926117393462990872420311996213253991893697314963932155038778505912574003424554082118638187445713839597610792201216412787956694649035803845202750339310503361265861940669752780796723767744005596331659861580569392804213513735588531444347792012444345460455722779683141632521299937826623451960253418818411235366879840377302035399017644401854321263023272773867124335999884828931702706191697310850530685984810862936999015816794503832257743794132456417612960067340385316490450057925748460139783598472237225953682284057753726933323519758798187963439335393390000695232172334234975880357801796335456624800477248133129518507501437699446190267434438357360707172538067458960778355121700703379612849105825460617692638707322963577954930463124064304076388752795351263675197110454178239722683139894799451620746080965887565908074596334547839243939436769128335666875608939284943973063249164778212490908681890722182684636954193849282311838329431660622995315873078642220154525095345210331593707956558452430644326422295273800107356292705029902025616166199121130556368483057809048848851858638582830853515627066158116469832263812729008978557277853857783639457694601739678578563607445417459365600412116260408271079187784244949039896064632943567906272858410753138549857510480568613130208146061184504465993623273731492886110247192641367882782564595733303186754921151062346410229279154489898328264088220019012616580800381966337574803397150185827121867681300345346446615385187725872229300436872989645951697820095591738613306142046733927369084795074064074839997971808581364291671347909354101559147852702815936241185359744648574912024171540913115399566115703870012578651554232794828176271878990380551564966506622148464010498040357291145803371164453323299684970871642072897603762437439887209516054280963752799481722386558982077022862165197193516373625924743336784401049467595195497623525130075662655433488532090861049814347967173143269792091940720741618898335645705385333306937197358731116723437631459660640774358590440935916503800313717479504476754642939206370735965366943201855273768677699830536405296713806208296244135648337242675089910742424297510544943795510792039735386189450109123832081510015703527502344636687145805647873195839012494900728933557904327552558859702806184024663928844892465140255178588015892942071842192646474605435840697242290674172478588724453169006078733888978780153491809848441277326872110343600636384482155948560701729054689669192995842226467975352177650433404697199317374363378302525997205465919788621122820587951621800193347820177183372020477553876515184386700390107159391828988633568223129196675455058774430823007123553575014150932056134828532000285888038120967581532187442491753540439147416828606978202736480193336689987735070045564020211325764181245743590294936309150854479187055170663168461119931363504123801344367773217902066940690211797296782932374166211025094283963428085697365385155488161099794103730698622274907298613783971536105059167516350156214070485158597508425789735788650898953854177118438315922641905329050917684723320791930440832769105144286729919634038711059210769885062802907038288215041493156193811727813733453250331110013163308596199845280006299709558502429097823543876549178382558021730026780587179101722941865690162051089085406441803545983675743242213207195413858596476327780940232254299183325960491091469039427535370618639605719286313163628013572647484748120231525761047195412420109532627081488493592663641729707111063034674809196275764398552933279442640768024794475639555955453233961543477586401749971472993735140793280359467238063415416856081149226863435667288475055015852429060104629595043671192878663481813299678387898245315667891245196761488793296745275738408846185242535123222451536954673543641542825718766586982739203822828665628742702987608976483752602484508548627641605390232345570814583070578190497067105446645664715710468180841100845006086192723927484609731998491022884876016332353539723238972157628847958503037277750614721055441763206554898548187925980678846514585474211995019784810690973088181949245737682296836554130747562237048898411296889880957202283287308721217246122679360533573155402185758545302494516011482862264366741859420952146720381795665368887741796736852924505011224762867566129907817847024896587612196614242427417171958910275810865626873104434449500232233497787678164581383454567433898826475903342816459570772290697117819940831350788821673270197816247634273005169668110668014482824645726277798639022335390879693098700251203081660200350236673385147782811530572076009980775214594858119254631284827062554512633257741362819214999544844348913240616398598937851180926986837344863404509495809703063052179953038381354757697468974421126242475374928238626952252361944511576791345929970685037169889407519682005676344464801315075967128531027794703269191996701626372291362516878379416091713689151983009769376372641188598336648821482024855045088126362263279115798213021232924444041505207452886658533812984794376898075264090589657856594120775887718214226338184828101080255929437489677046021253578848928460122346605053809933994927317646202004249684789592947778139589235022864577278510415679539151174053537550016497598074152270720501978382680842766464168704646412171026408030552257562654872512687617629637884749146024721811515911172425792477754006916066118625530882177836003750246389545893098257285524926589757778672927015362137323224994903452602447984867737761419696630460264116650952205271240330888547368069304215754542441949747575809558370829993935594782791261455143615881582635723684903412035413912153569314579846199159011697633437067464982221589853945112160525925471614595012245062448052897295463745663775670556303338942441207629099833551990986982059688451680565860262155026439209696631823241625102615197328348746821865656299003772474936206260399963914606757899740715694448853510275052100308232346111814667544318980494770746177404504219990602495146533515704896400061244140675229153095049222299256097421827497510601092279184750739504975129807118881384070947821432340957638651293212816030613245854678577231125944361915167764907187873645835684484452494610523045476951824500871134245611752848022560183127807719252284206734888596113606374250394980470628990422112464227233468971197314848513942603588401945255453274165457389525695641615834946572951467994251647344886274158921967558821638635337300469487932765876561489377321559555592323431696167033163096199583066056262377203602790927733005541424179083693149697458096014343628916707536751037103123758118750733495184450449247063065976062839186017030172227250834054434802923174294384690675627589603024688827262171931873296842689482020436943003923516956797863084185401118913044688124179352675637964388720227781459729959299816370484450436326103520885064081062208089584469070379140139420940071076879308248928279940113898092557223400419983705010198296082633525734325247325227177571631361944524040648281214180855490594584609830279953551610257167804265400372685781332569006356759746656802555318379778095667742471577410381444310586639773435923994814317735136043649892613286982558908458706302526617601367981351159107036813312803480390868072171896465675871637615324606182915809032247335603532330365091312026248241519502857572619507934574635336593082605589795432039416489245589077627030769005250551199460406799506879815713902189341728699222505348617874068127769219534419795278066060873904999712952418395436634576531338689970672197248895068203020498241650968681227965083723157289177162537085785676620337815586293751267958513434588605344946441337463103898320887537941818516110072278665560213344498743255865371029387078714698635989660083821046885772633144831294563167701391602462123021786911258412820585065935596195810898006202775030070698684396758755998755846100321261713883279412024972122140105010445243331750610633932092002979209490308099986686989364250613301348676986677274961050334007054286105606615381038353867001377924742752967391419425710510427954284045057041687732617698054310027889830200716466784048653069019151281701130679433646356056744964697522268608709155594135004073402893854900131474129925255160678491539738779788065377205645180358292402836817345615107762550061942941864794575831802595754848097657835766251359361386913271039721134724681172220910460149845149897423819027893988946756343872423034508967113030707621709733576238257385906745219655541653763314555514772480462541882784597679575945468721784918139788525197258321465295419664054610163793753637466962577369959680448062563509825975480553700387769946556874490921683381315535482312669616089086097768821191412439895840215823818663689994657060039797270299426435716073988780397487881120622528432363309681149483797760963286381445352232771912974443280405664948699136849687713777118811019831184571109205825146198828746652922861564110758438858587410553939515522690347403238999235950915594068622388937018100620142507054528740922644611808602051633693536609555900543862364464870948428950839863975436894269811641541955411682264191236908524854592363157832997163944596339044493240968516379223028301368379149648215009604654703521014115544651259279952707356504751208467311842074352927775811271858367937791114925900499188298189772284884268712991019975502342301629660110412043944307388920718434587292414993806952345512755483891769104673318936998154894787876348465214793273091714730553160320672835180190249529177540666936161237574976025649603082442517745375378725864258804759473404518016652938639804687083795231452134435299955567402808959446016839108774776344010358280922249417931491298749016015156810933653200971506805913077627005874081306346229258406445563736211836874450123518442845325341309830760458392267554977698099083931475323962420786927860377855749423851354371620708926455651831905627781673658076783490882024967916566288000049640332808249767875143414705595511005550810104012948901740795903673040533086522696905713669951324798738634576493152286865707256164900253151812583512021569560963297860923899557998144219269751828182073713939933583763076834920873504208197058281376057250731068300946255078104632282289131039644258739259052070711725083019838950325333731455860116366524067043674283653674967143483928361434950568397702893670469158627643929457957460698751442440390467536938589291999206296202478635935827711894981955244558046852732909569422119842802647244431144347436192529734394229419173721875024281552592985117630989101636633901501313128335195471621147808012618801014928357869749018799639692809286026714508384962747335269160219798449811467989922125043954342952980967404529937203410645088461230445748632067321132105899667909214622679931785372237997832251235344744359268095388887714186449967040911832594709162161948305709416076016487824705952228408137787475943893484390761901295295550421887060647547173635750935140489665857230406635107905504585820420387803827989982606992554991500723082991984446449741682646681198971591472587004771687697635654027163503318477738890307137886805899027768292603100118461814654611773550093236543400152526286036508821655524115073904526948680969215688985261744041089664933144349651564516563640489956626169849899492691756634586667348301230809465226718608495112162033949299518384812707537714837920585465233457583198625474311556674357426667831247012335881268825176666837139284639213381448750683148004651506005786522207164930243309998006204190800830388373333514657657916572202894596099933947865666006385187943157437395493789751162508510638814105418734871764579621363236647012137257198013400188921947047017633890795389912875995798110573818389743942021358896211720642640775729474091144783325709650852484457245879062628240201091539373580431915838363045352333748339628554820672087257859793972784858208657283638880459354164643213254702061052251927895727557950950500912962444638835471067539462631879207050851176450526352092480940436069600131141902621862347318034941836813334724910132404288632652842552351437618810945949256610954192232952350749443780368862551178769615319474006438082862772315784958108051319193504366733463303870664002148274737573131023634123997999411223413544637741488555982207899045638265347563701664984358931396711389554904414688334613829133859870180585810736007865440251120059617542241890049604337232061317164475020034490997754677590662564054537815322320394035654757250693640402566567769645916048629527395337025412748942633010948420136983269355236251118078906617445319064093098443461172668595923073938933068389671305292355354712800603582107213907257895979449407278338398234948417863369708460118860019289862450502413402771637661783985348403485930317923125896137951634952557192969523653153840631572345318963468930456837412972902294484023901449806014799767292686351522387027310242585731330616886529647340943436147164491437069998467386426465493001723878813441432787596826047938245785545595919079319340955072616160746452141705965010631642565950956418315590867823244955389485006189531027875637954793091128877153970536556550569253535071297649944995302592147901283520048300612223269151466415512483562984830230845191929244742994827095022292010526879292378977884295966718955047291578372532870784163647219256418076184054747561354747232586569789360056805619229454777433928426668467952760552356080070147088071203349000563139338019522293025656631226651342936047861725485680775221870296964995075112188407179137908369072728873309800459018257254608642112912813458779081836415595565193391875491592260383964329710464406226786102742405045199464146998338228006298154470028703014414638385414784031897897345906389293893383495830898136143441807108927564584464687185928930161762308037930872325954759922227908756085890173524219553810067180682563129813408918188027324329086508868288077565074428585592456702097468955226144977824489028005545779195113791452103406783944064553246985167049990926758629387751808321223315020023493683260114027375662994050051587350785745903023995845610697665690156467219866588493294835973286307216837588420257680863731319302839603902435642123275045746166619462063441906048933839125988996993711002930126807715313598715784702427235128636798354760739090885910169132506597403796043690106843041982920750005359339003331629966643511375416772670932702440638281942783779784875992846232553395199155822519328159475088491574887802984007072322251471257609140224924226214581615149667201699521865829606723286855911842760790398833390518554944159137718610093358632376541777417709433631610413807184647897512442948516463369812386295296652998738756184685698499158359039327487670394822823829974930794245777989646875960580941338087243460137482485115632152364987761272880763784999442886880369249458412100909053310808623954440539886841089071954960145760261433589330540531230930540983003066893665564990678044586481305294095687282592485315457853321588011079634417454722773848825604198415864676604358425495500503356315554845474143437552949603346813347438868269192340898921045025802232923854667834312080704776379596639222698121611146913594567000379864044344955214789787877969832183053049651055574752046766906925800432945098376457184721670691300857412920676347539678330893137885942331683139915047077139560773079562865121573953515414658793484395211675506620495721924603335716744661853771845899912375113648530692371405625217634208599158537667475310506793523788687208651033218103468475084207236766092063121248197436782470608873024231452707171909033991426780473884806933712931547779129775702325838818677502664630494126387812046786287746064164961547803016099790117346462502173628109557543923130113866365706020576402100106732234108569869636602010564909428185388682219316434944988141998876733149267690667159844076542461406301970572512956934272090657438414911924442299762516902108548693256707250867026174595929994867166105876205246862654058566394932529397598149053368221500867316106357606758292050306552948329740670806450680284368327481371933738766686026290887997862167157822146536385294924892529406486885267833997628186950270932064618352245231938739190014895285513423342740636122524641764724830911853282922552617758224931315691422735606142141524084208540441682820364062659999169715296235546506174151756374957222722650173673627761698988280937496521439529761886623241415228661842117188288462219420605553946780057832325104078478150848371811538983191550486300869465144493223077426333403925661985755401671087220244169490390825725859559873430893564885940376886478305116608880501673539278264958246716292770393778702253249963431918546383239985346505190332198690059209456668659923324250741723819784621695111594927650355958610793272550079299281853719201825674040280277496240444561982368633064944534574898542272196240326063977804121770582485872361831455283297364983204620064302698188543277799931562211636390667612897815096890168904470490145113820498350428012817853991971956918750574453424759215486070514270401530062070668141075989404159858915198707641928611140796172151966444664641312591453927769828573279700044595956867995271478101092931953650901335516453636807008666754005505215907003753737811729132438346560340371139045811726112100080244364755896546096835175371906113229114489565104110572468577863777428248622985855133299625461228440342469048871494498217392064658465071914519384647291097089299709469686342501967588562187236892956130357919729491690176520187479441263240602578570256346177280195267577130456795361912267580631196813441329841686107593730548361963250908041418191628996690596478987138197437992634428511226514905228794671302531555204596140723686302760612398446906767026798404123745428111739992943692417813743496933554945560075293660564136341949191791215110786749860352906923130949304455111451835966730708376906725445072730443504491865512013369985728255996647386161569701954104091421680672018173070167493765572349600015798956049802354276004502966008238476934752396820411165452884490457216631509997936770272524274263612782097353219675502901338153822261234123367139223192340042261884489477195445753400973530742732027596583179020792691561027085141723845047137949210512345495047129720562936231705529886050218206783978782879845526792126929450796077446063888822069006806335299917041972417578325755335254697074625428409295858969973214953928180384366779137098121255303850419529032149200256706821280403555593471983129456244637638463438420926969117339707438497650204701217090191280177427423001689849527012498093104902870944119353532324502890220437727363308300940636674506263888584711343362363341115673851950495292270708866118156884299382510778686975555921556975565817591102100126525130427328821569137356545849653102943961100585518711851469232124459658374955044426160595026047017605535675954425576412634251391590381104898145575827324671913596401347565134344747112316643847279296296456092660332448062602315076756099350261713922244168856615526211702899736629150569874242826005196534411983586786297674495832552131791402489966056150750685058184190663947794194929054839896436800759815917638323912147214695973961123746207887860147037345908437345798409088746614106397145370609932260249038496445238780743711984802734029449911179001233318777720866827176256716475503621247524171593538772230449226060430603856271694322357414879720501268442446213581651142948587585701656311297974371598245866384691353731260552116144711508225697523502537631616698195358669332250990723716281539797550345721871677206150925660747337570517195199274272639475765094670828216962263746653192204465058423279966362453496871010345151962681367865377452058635870530357975818785727920341712922218220954151804933486419551743609236745393655934984138995061175813081706517149101477207469757753219763144275675228116481084496256590894270986086111229473851289428600133828612666557092554306977933490813913427356019427644508008753521555751721667633104469310299288466288735197359439985310160167636261968898416860401915847766095973097148763586977963522008575531158267259157624316175536415728821685292664969259994098597627139894437887236310678686570804180574004691869503983329066705017058998122922812320736812375588343246266430342857911063590179357914457954708471159649437414792475763630112754112526280566564468698935463842318248855443380152892092416504173539240328925192467882287640606715097855110028452576012841418699092473145207712181047353803244909815750462511540883130515208687503494234994852449970218326808879862600098479254958130141784471477183499684427547872728489892705650319091157529151009554332958825529257354004365565916371955188242389870819715140880369540891879590710679113152289305285320192246429754904245042677163108306317424007147626263272588395922417938004072901671954365182211009662063943675287458704270589479165843114555658029066399595172117991430109717470335698555751648719130285406874846345424301924363871389337614277271851373757555417126338873909923181095335889374035150744480899443351376315097713749396062607578163559363450871405545685103560478096971890153503748946293938946288922272683563922798719839143436679880349167611452383229009885112319794375589371556687539692317183328350536609880875323868778152395544232439211399873606286278572970705448051377097662587107167044579103459630253259562523238562010406623537435887728521871914619407029412914144793623582915152574371139415828885094215566389007931552190260814371462027413538020923980186147276487941289705042437975178443547682348100261760910771813591905879734645707025857084059719607816899944981412619174901923424869724880685657767207181013460836758425179658604453787255441985857256020088782475215281972204340445118692372895879783968572065547525909061318546830378230273929727903004092099080167616736069238597767947618566002219756105243423362382815691201895694021033453598568514767433416246175257048456465919419964221379243868980082847048566094695762630153879121508958672541936653798271951834345786232196396241800825527291195384434726748673665067104394492155219553689294130154242775516126015162109515197915228742806995593965668128237554568355298782301007383192597463950042746140947510903270063930867652939485534317072483820075500206824370102252907068942672792680984471761659071473701882470963744343174553089600761686713826892790963251051188728334624998957894969203078406789847783220978611656519332749300158777322697266253464085225896763167654090075209078476748266601100234278410696515121860662414848364988468622720705031493352928368265911751288074005113992889313057971266106423274287765275147691911020633211893385016727687130340833233407578627041885598856347345824509402932260303483297490080359577412606777220185872689046709858469775518950601555731886798714246695012116782727043803787439407027117708876352946567615086254384182791260136970060312680607895793451891148551885309339098774823258827852572444533950480193610707062469786407445737464193321369130356966848788686470895261918695974430899928253375918438304000945081945743195315554094123473455926499245815794561522057596609731537399385052087510359012066779281901262594495663805907473534980229281928432071109043352265196934915815505881976625020156612677953097614959884562084151177634267655590540686834786831126408044150537478487071252476292303018408133519176602674224784299827785590252340259257769323355099455804885294758544418601357978164387524356983205842331653449138549440090953475180159723633516857807357701594586118048404803792509759114780307528072203606306749326316431948185122925215330901533222074574905163821533621531908211838888446559184436358517574933339835067520407790324324252083845023076676091308870511092684844001585022370574785411260482973939442303091439496157209926860355032098859731218564352696443656948930899301429583469566038723692131031722901837207653112015449812821758361221886088703117003281859756311433246817126858841099540203020918107823982984116200951057492298878784176768678782884054129650889628577416100554411736255982406422911767199798613308397801708684924219466901854513490884426257851894629698391689449031817933837650911955410066338072136583776292285471368367362616164855905342419869823391914432530865625027945563036038057121443257360944939734659700493321781268129230056013640145366190848802321383196282174846216412744131085006763345417555127569006238882094102498793800172473408949061919953881244182039603057056531513714760201279437456203262826233861334011048242958011416749704520290153420370114082787197534814470116405083564381011373940528174050418965614189928621817192226372578040512254381014481200005379510518318455634347763595646347716937976087397171177755561756492505238760809804090005582014890121584910295298546290736346876281120943575188763789027353670718310842614221872875822460627247136410755384994704336568659444168273061319367382176619392036580288707623686572620250547286556795619241081513780226171958860767948254737381016541976331651371498753042207669379143989893719051741553836250527367691254117616144168298990252910930830547843942301889444684700878529061244116308238570488200826360548644179796715911562, 878235746175308039912346626791418142381019816999268512947089582009923923395674919161440053748326576439729778803490290745045043595091363259753480723679363493537375544475799788612720592930071667331187250287369744106708346897033677911712787082114648994388947995948723755543021593823012600651730638622890779055865403622216958582712459635490059314694364139445166402128611056613948665221979796079018097029029062878967189157239819471433207390121369574819545386842595853809192167705232516163443855887594200293898337961546267413687621848586402419764623820760667656574946403889331614927508296484616833118533084582101913110736783799545228976934434951606412535757257522826663966408523112788996958759298979381829148318608075872307688644170947187642146485185679433166386598772838467793279469330847895046314848492176562036501809932911371138032616469061867647166985268170931791560147526788806063584846397584633641415029162300065189859950616964119591945163085929476324921204969647178502019891125592935265923372726203933463343091604341084086028109854599968700008857649497120315853383008350241171077871838157520144337967523658373203300895278573170620370866093648441817126908291132201710341948696279486037904487291424230311319623948506706585551704768849105742443387991064483911138003942096110782936750700265050563628075281344554636369487109089967508077461590652483190840183955173399717148521371986143703500566307459326576466069688621880864937785738491284120783820138568029018572477629859149373069313428337741988593581898481023315368225461605257305621513692886885437312497108340692551375994654120365598817824017014331627869637876646746372606424255953226639828296587381513312805871675001396905334209512076215402142534668701201187904468457777030194106945956236995246540627140347059064866878341879876949501894074161594967345950360309426532760289275639666495111470738846274339206213790279123211635328588462598765881544038043206058949132243338537474928839784090738912181984664048034715972704284201525259442849825366390333577323264420941435765585131610869653972468155560357012144039745932041774142685515094177785880721441128076993053552812804221938744827323546190187930396146083659982360067648146975220162044644775169550752271988482440824012708543974420469580284005312535037807279488208474202071160552171635131789638813608664787057163487279880302026170543562156054268454591804599578493026364952290156734053579402085938032682776344843169308652874328700368154398747830042079965643417527874408539005281204544016062766584821056947222567770918623760413273119741521158739873025236605590508621465709756114234171814263283477724971619393109761505592281077186715090640355411013222236002886803732605110045249532993465198553814540921547604505239327382359184211715733949569327274524493580528313344292730850498458048499333054418123644585223327161004048033026284999562623612453778510545004397830075134319277862353926911338698726134278642599172572078920303037551856664529309929571033462080365467242705967619914982070654559756350749385829920932066254457211720643991771545505714096283540256750644990107418011232210817417710289738429066293660228213534801227940318379701818067328691303118486883607306249539610557124235492950383215255410384757447755852073494746651588403056256669332418482242543083401594113259616607665642728941478014941664945964764760468411645421346919441938647780701857674189865309347414274933498898023053240851443775657929240239180243771482370987946904114499146458914607171195129587552395930912645940614494671853466547801098515554896134067718161301001157545410782646102101801099056542821865940915808949469253883046083006611320199534923177744983338705682892700333225355064385224580904707774915850425637380752749343445221273862768573878123104462164087720640264608117254233358025424444764192776743639449173652446219640504439527630220351571480441109294135071675887511431532111121139546736826541033341389847412999088201023192145931369201587001941685759547850258697816590730399075229006191189393214744146826601336343310683505530564169874227768752403074076086723282532183966003342821735346341374964690450769619731468417940283535294455569969179542691277473281846673798461593712429201803110107456169863920586575907094589655838935021253100016638100381481872384800944718550210360017241387462983537411240876964916502419847789682254562811287789822909076828612644101682836140096320682598390356612063703007895715166589799246281042196510418996140316967214934558169686339164471454060298588845190042099546665781317606771008447583186265725414750122085511457292124544445550288289555128665020120425731907395006273942084987848543695674298516216019716963375746781042314053567167487139434678057319068264535780968824318215076014923205545385670397615043241133605648199428961777324384729639909163565698008553339812746509312618215932082321898086466122591841550604488497292719259391908269385547956563429496059150615603945695463060740149698713299987963450864565286336312429975876976524926869136039410146198317177546482138678395732355478037003993734480535925477907708474141680640945220177718068028362841808300057199558058090017904759661251829841840842210647404308792356722363970666290886400491355198992668770804407059407270577369953371829388301824230855514582261222803054731449400264869944251841339610503014042789204114214967336908339554247973094580176451673245510519411191459111946775434845441639771708382541606653139814482054983321742091754308198273381594827594601573399676428329219985875565682377541351671907466830901421844522739613811090543449298947382402056483593337145536491088143343306113206808314307451592835915058450501578730936898133943629833276933165270169226372880828884117267133665356968325803069653071241570797328981149641070932377856604573154118626974673926177209441529557597443063117044914092471473391101048650638752778390688605987415795065214802364134648122965023225043460251770779277198553127109434779829291083754900644435144694648989374487421813093168157718609361242000523011671722482516894196113588646363643883129922769944406438848376683172423170319699838516321778356170637801388028923212542717395164544194665821599533944006400278442429330378970826861153130376550194761338794328206399358986503214939558029814502626624812563942000044408764835929121603995061165989096400315693529227462422264750993509278791105243872908789454166885938702077520187797915953134517275235586009393098151536718516136759193081941734670622159341980660523297309528807315367529200933132100883480587116310573386990831556338734054850200710429634003811866824071066158436251797556669767668211718961413694656654613528833975578225827396607634082556543253924883957399784366797896120866962384264013723495257673532722068873238849167270840843566428173134176094953921158663710821987959101820813360490591008255940340897952883889715244916561096964555905272504834788413244027740930230108829680623503394779559822722508694825152613434726880186584594747067620283170234364777299422131260434404095829083176710539838238716350501932320958883647540378653153194866315205813951766311507298461719209037842592289570863521940330327357809664290260003927900506359406032430073542054039601321170189898615044442923868187114861468076954740828718976652974897886137653501316950416256037595573283421356638573205582491215663973458055361967011891772114268694306279430621038752546201426959467596435678996855997054892440015394648606180584614294874249526680561269713951052769408841386158049508736013738491957179093972159187292483769893784361987311373205226329135413017956363807203149696154348316974703175458744478389688777315470330017333405617014460950137298141997817601528187757053906533838654791150418669079337138983378222770479654254112066860003845265075842345617604616358144591446667153346631665966448502829083185452352230321888346259679844828429112103873182054469818909690459293268128971305655949926170288479059262215353070799109154731268775128987504194739678856927925577080427006554242641373684159706619296116166961004271512119508768792990546627399050200922307839925439721549497881745133128637885029977725008794200387128072505995678479868121429067692274835354135292241792536549259818284163825634469145564975445429633456380052687340870485849604556007593209796507030348249427086057562619861125496033364754088906364302660376370891069324082857364451408858244971128627462269924724230158594308031291191486524438440983930434377323869306009120184198883598924769671777114528273610134141427284053928943020498601598970792615033488080178686205027027152523398703970459372484959587561561822923521789403366263279571124184513169250585064889513343160450871423103591567306160939717013238377436911793496892419541794661387022981971629028895705104256843511876985746054920630054933920490269827560968459521445646845691128726146255348303850883232235081746403648870492342190678965026062231416979539334100924195117061018202025673828331961177918401061033583399101939311735201841341057869730169528842571728365444791818401828949672019263580382976095730822091642356632417311322955183703701513590967017874002484404421466935938608691996555260728337787748104272731592409565787962455801280219592788752409972877317755600911360102960116662800689130959917230564409100383462144475657738055286527608197211831335618488140410676612977305182645214195046312224806927842173522777469503120262923918822410690829607203042722664194818455896277813119254182509181992229004408685399265989360185871361978972403478930225344465118857699242223502599092115101210502513217349330748023960849229278418336109494646063117782240764020414084906324751161057738605495579351526377491884428331002609959566333810502885697640988765607927034646725897539163313136624590728077166917141530281343288420325985662977224558462054094604198992845556419776208938500924268023641587576369776460141691733894112230120187471514486487176371831992913819925007106880192744600635661085147953073962346437172386585114256720287556553780675847998632466948442609211540510561250728607109578470410208619128189998577198354103118207563535669219045144597275942321949508819491962838457024469161432827081725970713634302397407379139156186481446307608787840883639361834052505457024759180857192409046967479014701470262536115792250873484170648905772347416722910801087664794348086199692932186013917622719072774930860352833687069224679409539387476147877154705374451404139149437242949741288200608638203574385535514403181207895310535037880054682398288346268899545404830207735020626219321689694900102370170196181876742582036939463708238748200926745952636230461361186677226332743299023559940187100295784414294202524374005754096416134287182056630306369819304513978968008318907933292453455414697892160615360314310734276551034976069807113161159685355719136559756577515318956365108239129066230632364634390427846485222764799259097337499986735054180415853239783672562057054592138911143409458589997645126362547347617931209260621734829215265206429653060144965215739183781633000406848785367814103156145989699418416457014625333651613702558238585650722320706489404587498466401786471340093663924382474269658301571316546381159412567906360737041328591862548866705348509937386627779311256639543951622719323240038951998999281215327563053119307382146694281931532319653575031273122265514902753236140895720599053239392355217189109607616864626351388239562296010187224001589797530405182388267027705941392923126993384098878544882351409208743963681416959118973521521237366829490658183273715009625921870712426021441507262691270919963798846269453951195368740864712486239252911599979623858313322223876683291678458975237697669985899286049526123513754721387785290786053637096382661198849429747191746489645090127942369148598696528348641737496196957211294384483744243217865797400111085473192758267342829057742829285855293888868285661405601859378216642336583780809389678664921009852515252892655546446072906313279761040349136384225885463116460921112516455092185733780745018719694136140376334008549822354533914073673482413408196363419470596178055228349609804428781848947135497648654106738406798993114700324365409384329047920125380017676020703873979598486847935183807687627981813018889883225081325896707136206959463203377087025667752587220068261230575092116303452192454281462064663410576602242218286107807338641262071670217814702760137380024848667676504233879368008674183693204175614565812290689854703647344023909766598666542449153236821754398046594364554380060292272202710266907251629385260185045822223949482837130558911900753285465189911779217956643679298949150754678337720707646422153564465540795029759444833411481588638559679969423507382710645606399317080633911657713706453464845372130860920591157805656539607972231442970535724273089565431348827821290357035957120890771483784852537851012883343013341411559714357982460480394988471715045227788303204174267085235401013356009486867593896635022303552616124055851305623631180020092195394305067309210953530577853601694971850262364212313369940748714323544535786135092558851236749131243242209754334748054428664829900131899213061835360290692143812995026449715474203202206116503595232039842861346493068847143169889792648659259175357617430408345391752437602299503391594605535527718168453847367429210991264396046743116042479593318530522465598894593737177309400235100306120845573251113493701315200202683431207281445225486502355168565980219585444773506506583733982696687640094240746102273874360797208567959163085302972524163333028285549445120753947001760908298523966468918072220538994470600897648169981198586355001217711038516050230758982775373346925703689922790598742755045126137446578805924014631828925787550535993914603828564191768484034733318570588129864824995122747430564463862588806876860878595252237887174249088518306735479163982480038301840204569125841311002690274740797900769070654211379880148368711342011675901736751810078702803337647722657179257185194432545411259131095126324353184453092296368410340085786323525180554968278438484874294884215936643985699080373605169390469985719948417458604389293238615494038451150195752327896442844810973093836177771893027710658546418525869585019688387230936697065306681936159763767249449963517548030494917352599124773714147752505939040080233245096577840396420415384375847674465915097860096069423832954915476976874198149041714227843051743550190956598075355501360468391813494423523424401268027257777808284027515365234097528739687124674983322528943662403052315819889817434207748671879326949432818308122348701581708837367928355536793035133462121719591117351443412135681335308283564927967996724078531927941607860504098151435156804256333946616633050251642373957257490893203564278919851012900213812198891523282169640374481941953882152159668708853838042234447059804912045546876099779675482999809661195253683566118007683774995329008941789609487835192539805387571124257422833471873543420122125283582927899767976972406765566962605495914630221999944145278119560043383970095266534333156580019077472496091089340365500603008216580462939409833017393171454591270124989492295858524105963147445375591946475415933362830033720312275335226790999330452921849529734069923960661919577301637819168357591339221312282555956147506387203681991001892136492964396416435411483922562080712286660522905027074985482612991071215403554887099909819836500446677817676879356004830359415436856554079185075946165941015784998637902628534466232274909873746135163164061155012072280602777399598434513052330750078869262056150335816643919084197630063994577265988447905303335205589330519090466863334529388954923794578063613654035752344901041988716927507902599521633252874685525325070584711826496383425448631710173188567057862244981183379942399411310018946153126823113403162793833833839802583536224329151979877040733292225654129461622450714966516344612993116194577206261069413356713987564946065990591966272911030177503239434778659000941599614787211944988641534378342678371786351353220382846362277321108356983318424482744785417822213738870234850063484711002286735079058503846897925368445595906651668946323360426118276812446312244215150005847198069711690703229124663424741241575887961728020803824589552075502131424608804628001902919812503053014360883698451584317810233377504497291852599459318408596599534879405675421853910936052673260834790211137970666206564068927893427389230616061232306959075317121793509420889775552633128185192796647392548925098434281490170578652152535136217068751449864620930978084121389134568553125444526669439794311876176929567068964495090300400810913961152095603127609507514693147454200884564174877610388911595089117455704438433240208022849380609307358755028044657798379334333851808736341747934588409392986877627375263806289162782843235451826811225874624003934901947005026916195152117086009290042475739833357291488331484391698328145226206884654285180854715169076034207034292039912198476835621207460807425267989276279422677944375316812220191805492431783168459088097281754048329462325375477531286049659920121225687802487770094216279829061621479822696696986383463351063191112643839454325272511926052797966032093305914977770461291144931944380835221329658919146886134662260723786227230078826505228162969116092347557158056298486154928032456096252568422619962572476382333825198251063228265042829872311777144612113589805623880349931875775599773398332571537861476765181362801387834777104451299315959245407402822849198072530577894052323353514528912858119815329604891746163228102047565460864096924375290316499294114502782794715889787324049076398619357088283168278125764013551647719229576726662947920605873610251378642095343177695160615502126244730235079977036537011198111606356288948136242855712406444677726059725581141853375789402199421471126650237705646360145659393713369401878260796049075630184149721014140019413263870769797628824344713919923717904755263064377911630539142788598135474948404216901030856420293340549068735611771986022254782785493486680324386319237142518989189886219578482627964422071787187675001807769659740508489227289863689434205541147633991548747370140589644243908863279275851468384015831009361851612883194800926744009915146614341779463650074520866825561710278251379256139236828708537295152716204211495605013853363566476020830444572173647305236086428155234164911585133045116515227639162960012459503365674199406657689378572040208235313884238564243670614158661661735694261462932220592155742755455609150477012385385671851450407409507766483815879709402227847282772056305610503834524862003865624647717120956369922695305178888078775169232410319902689646031975047490675022066436347876028842078113215364853250710656004689895456534916287272144105672713090809715606054124532255866332225557827152671459489406941861846519994145430123137827353268846520800137986159547224479585080661428810838276997490433391923129654373423079399549144338281050785034625732292397226905315118983338025647441607969932791987899784774303218958260065939839295212152110551940699614574895991331128805860659423219329622033274988416751283515911226603635293863288692074123399461508525657020878382501261365948487307691420241552955253257138949347189161120321508913632884426330211584767049179735588831224386009527390547799322818727466942983526079438283776282529916070176650589803104847784984696037319958726952113233877629441472128703389344232860732492432104005324798925404310728281262480046135936245470791518218797602075973440696998695835496157948261479871441180966876008796612216492670436374052427555688090209787692970853804121429504139934212999745922725613168108715028332313477061959095676046629210696730352520310713187681932407313711867866298251834575061054031514132173186176207451655501300405461530857449340186450589386433950129233539559393372041009090890586096705917803755739983778866060562925175065481159858365048163179632717515460956505773989363767673888140014974560110964522216772754350603146605662323043008583824577726224909093127638636658154984283610563367238991471492578893802497410409218567707560593750164779586456757714128262869072115965039661150823813332709295472014195536835952721353824550361490005284032991510531849032581283921231854614813743996228847909213342797416295333572616286664125216032222243485903062362882666732960939428106939716408315279297557881350483556101141271940923739257126071409428950506662542329031983632485885753772659466184643127799711968765931037949207082947300261398266039536055873538168708170621438066520177629102029088452287522720946352648480868279952075411487480954416169908368650982843802153568176575426976249011296662140399976952747948341873715296195479792191878124395636719904516944103086635744157171983567546305909825738976353345500040643588466990117451844073712524689750526883008377702490953663881962101778711710211411944784310130198455478833729575110004613101986060978178804834789666916385787615533104333077829302185243724156794516577567412142104913339828782051912817885516589962339550936976332630589157425610331570294045242282160773490895502231322691524727151983258062041834973926875601463242315525178325595241674142809542375207197849633335577461932856379127669901723869373020666530129518000297492875427184218371895637419953706056932726897894771892806873226942787722288445390599444071632956957479938365689134372102966137249602035340896605891063275640719633705650737883064604168314249553317782916948706564742632665486966985721480441927066998170992916261157495698305968611191539693193608508409984862393941742989108133879177638617082366432192327059939805672353888258183416266684601636246843044148720557154584485322790224542829212468455557878202160921058276323555371290711983542868350538371676769325221993967007138790915842388008497505892104762332040400674158017630548020401154442616991537009705807003608076731184219073459900186503648740265705926190083226722850883030288739722148143743954146386886942203399647856885750005403402346418107853136892786139626226064540672982586495633523296051664315426566339314503511315242464144831936688875360835740549105649308213794169316866400914895733057561235209002824013786025395975272855266741196658271541180048305491793579502472123667698312659529422682236329785551755190825418950449664332395185364142198782181542313461604799768033179155421402820482579688454384375302584862399465196844789919051100176447225140903196275885871425369324772021149669212497436970533283065570411593320574302786071527822969086878849564827635083929970336119128619758153833830993271888065061196980172604065547058208800426267847212168840154074636740375100482705971346427290205402781610461652557736153200182243955676443958846782950323737096539542457530091995501473397962320243543914861052348502227427707172039809879245034619386328853222723965730656252369793929009675732975990887566569105754981588706051230049306148594530777990594452706002496047137190897048320036360371858368307767509421336277883010879620764199462140629417844626906505777890444004863178580056786789447269432220662177971440510467093858888510198561501321587859970793495047020315147268755871852141995866918887254855768323397751744434592113034939844908728658629402354262984039940484561906873499605506631348156431896052548112447565315452556962350936542594748873518692229169348878814997924476588528864577087548311349012030092827817802816086464570336730894337811816039668298687358251415965818513715424036735552474575049232271405847806437674428597045270101892151816431946549734959946960399745436213991847073273848774047758814090038718058716795654567158239002202293076729712501954237351498690099049398621584872635073239412315865676791340398628930017408389641648087906060614052470881519045915870472098277739140043043304791159758854218096125033876284831581832308262935061026951548698462070719165946022819687542879996885350739214694214517923614760376661647442787870096112575865624287777408570225242597611846279255122994824065009257761404153268397632732320775526583272243767284052240762167863075672335503476969320365818769700444458641038760874582881621595105797613924431239007557113284498737401515914620248158334527676601929796173106416639672169374394073242459658944075590365731446574870346559194220913932684226244901319904359474113085947353381000346915317185940129711435410616243000054101397482908502145294847178987362853472380396948512129880077525518123120512511533112209336435233803143518513357623490278821845551488187056115234435090276342979613802146070296416758167502918369994049203150495335891263144393148169669600160290777282186895661293495180039452170822780089120020442052452594333825976027580528947054549328779929264275533051508239029943707046136892360071270962924375523331303613643835466762550231051387316578434915220035963331882560857403098424886439423157480076436510462917565602243328182464359520455283580653617414496864284815267802185506702639520509627402815595846198628595982297911469921819186911128232186705874369782107435105929408443509216745052174786030693246925833844115596126313361797892638045988397546690599036245979411050155787947610160779306405672023276317813945214785802589963064937153999597874949549230550640920548277390607409528944042775553117013663178451086877094242616203531469718404593199866461402112494204960124787529287136397425826374473034075149728378565611975646901222633091607846394252355449334061635099306222783245742821058216673712784730235381342823653866738160526718442282029323757098668626007229473394133139624845490410864811227763384123357111751722218522733798475000775404588175064618794234182081937836961312665159889148003655300816918043011114712526037799016907832586953902427339344379736807303810643020972160237656601220508685673560200631287054910441098262401058888078997914051730047534719519383574725377908572733945437864666756996635279400313014918536301130762324009059278217124488154178961207684702938646001773479769180850258494309527756655203855628717022147450303832728299662449664289994890495952521208062074446832409610561110377482821784591531857336411731588755255112700202079103828023593743713754451264060375292079491431769510259635893534657982638914353485565614039549020144942342681700323490904807975268353598742658491356350869023897272545903805136363634044021520993419928635050755094582003909832524503094026605942069708139645999848746356221118111744324147011843171715661019627046882991048206416139480033312063604989736140814283786448843170745790238514876718242785655314696335009249487563670171761595822690251874427425661086500993520623881660779799990963980366430974937131885233053760254599408143024381253845430487964129564006758770374707271758314073357038038823573690749124771563895873919967721551864101240902438378330184596115666707112826401306565641087635385310189933023151285798994354415117106889364693863278212656675979007266667311522387821986947176645329433767664473412552333934966820819249617894911667616400369193509220588608248889427907991956730479918365200835702581528847990120171068836197058729013738315286522049436069105165159824671059703177289410608258927056043748368809918759578722219511753475824862231175476780876488857509123776740579536865795403897690878190588259277534832620181463587215078895077098311360269057376438589493941833775354149840852213661734107555252244427936492919175710214133906783554514783815055018942027541082746402715068816423515792305423833999792630339615114448666552257506468963097308688322014862505355406904801421765247265948198879089976769349635671489002293268836563230013032995995909887718756907465302137988136248465061419285849047615498525597689480505838820280904832715911269496378324044286126740796352675098944555380941238483028565500057666872400101490547802193872061266088152590248158241827939141255671602345996538151195050487310713105620379518993170474744068198481081623778086918266982602940870298117670717619857141676977595406576024422256462987036482095776638803147406105274569755792195055164579482767465090161268217112049676753467975179919806289930350401585028155802001196122845872869904202673161177341449220911403264795210136865058659786778689510117156310122623880722625861121981935684986649725516545535854016293732074130114518456896590614527895601957629626501187086687578692921665611671892325412987563129161568060454078170350680003087992608713503538317410147648767078406977503636430288559626531173807564937378574631922915829807172736670356618030236321471566540316315327742226572703087431391518781233158489769697402512577454556969403525863746105500192182107872302747471703660651691245701415992203632059048792866250806321357537663185923365532725674650763709828551496729535274666842634496478735810624359995678662652197969697993257725471522293273561304010017449829743109633222705821451450270921062736156238625591648890828933404462307890013824542127538574053656265628463462011690962124868016149690325980714721970562238696723699281569153814324619050159516724473901527838144337465729523468321080309596679835473778435537196010431281335611000006784796551350049405250974923917712599529769701275361431685543245921922597302720859822308359819288264043624494104272675109444696920896964782768707056227779394837568573470030599779410416267736796332397940161422542293887329048381401849661929007395928545385384507679488427679839864911531834798861888830048012987408060909921836344254373596189160084483099679633093932713396921041932305352237284921929315838734108564545568318641158206316405765038412534445457553120914506548800591795540357898465240154463393240859639952090475355310551582820190529432780940931357252274300773940384777341459643072981351499451323670820746420608794592867120457524061513601138587159371254164878795619454389379122341845823542390889922944994082505179509627824087183239130737755194062183384578089986404994387166682425431135652424383482660204691312252121271634491186551415416447459400556323063494942218858258887242371480389344014868701620947169981489102105783163171092308800145552895919054803587571352186592416720973123109335931601315878742131634531199381454526281463707047147483247620658199922664251636667651026685458297624245367512411409531415031183746331771115597309582336860168478724314390637897379420158976984162150913106881826018650232855580482364558406388665197056887981969498237893534162546500500356349230305990164784053870880007596590877504804666222869775337936336661989689473750271112526701704846825223347850021110280671938455223689125551463493600766948711437263948309462684827580347556457181995281691693494884617158732937507425060667937728190850483679122260233847963178259939108965490071392850080301658374498984250681930778878068561664022154139957988208268979852202356305570206507300621953245048547071961059434920543981242149311139986415914033329477604752047165683659211321752374428958255728130311298099344336925433970922867085827486146348572791966817049476061393133603217927910805990031317632038588958349123959104724736937398869273390019165588458675843398969842380767527735719068674976743729732330149149034712410921039858124479580220750801653993720006663337108176042885260340335518568161425906435106592032404910253396421581577635741482520046502056374706230280202927339990943662111184995679159351862681728676023997268941807127078285578817786751407491107588420986577039711298356899329600823871695176059476591709584613934159445420162443325023500659511923522220095575096302044905860144587282092861646326380962149722160810664703710157113549065591985972557733917488291259996188502435676081294934642921987708245542698665944615401721018545059645267343985218406495430394782259875920383777683760919773233381193395033128139829796747198999468226051964700097460129165768374052385788086004067704411131981927966438857614409395828310371596107263658026473927603331654279714866105205187849634732875990539538010262282880586050854620218493199352253399715461948003154972318680815828682481374790114890756293992825612065235073030882553711601758133597742995036898077644527906182731245966560400711212396895106581973077308658698993971780384993616169584160879224097899722655741847859033959395560633996356421165491316931995028713956267753223716075709447612618751465769065889634724334543096815720601889284195128531721761675319285720745491328564752491695665262670484688301546174553606465420011511665677517923619212285213420474039581983896222044866154226407639271746061762536202199754089952931990490260838238733016099806706157513304418623003809141995276270981620801280560567989350394523057466103279712584921678875771366859659529691468719497907770784504937896553285564421299273898211598196900892083505978360504771411334840784071756229170119503450795084890704465582499667753317215941257473087675835302458458068163052127308073855904517861100015572309729718262982439578489159535563140968662460466923696903600426095063394633493612721733401919790413449673954641863959191963092575475530873965784572861218277881536738001660574988197762866510591236916537210905866717206112504332228609447856935125110344849599015220169057519740190334393931562768338521314503050891637958066857278917734508009940175455547666361544275835604682314013977874373989225443592852280714301972216062524809891590145056672516969967231935880491425406724622162283348795985495360457382051482317192281005343162276493713024992079236050251895352015007373734926835012516017686911560801297960978090406447959021034730184120969144259859610886822410356930353941802547261020662147102419083305332277456718335116474356255452636302070796807306538167810492046494718390552426516659723980498475431228643136501927279391448221582919476281647451142615653045460662029782345441040594854954850264162095922951183062367950751685110817199039200199396535515835562004760254018426942118792420849614874667979096958154000521056302588699948293045029346110557576703692780715285825252121514563591297673188300469760585826714803187981432167774884330210923325195484626767708940089229715469973569895332626345688818937490549051051020992366779028980721326221117226066663926377335359973342791625666880996190167634319311129598564119045668089972868093574313801553020209813798566747722385016901491140766074316573850691317956637321033468999489991489123669947029562619777360637475742091092771766734167416708920223313463614532463713801528068873362795348057794100699245585733035543505741581407791679957959304987992240898421987940130046542271489599581865741977751351711242967809155988571004424608515624306888642987798066835836613770688990843226104038600497045608919930712280626920415902962254540225579515990444853695140866961564752427258184188988403113165883391136777121644745577428957764030014389977986832993896478699959006961857242167152682031741163025816156439811074520292964281513199423327735455061187151694766865683564848085813131770226589774853204929698662926166828067134817947743661913783338307647825126809314239063896653711990850261949540266711075733682065587607348917668597539777944527639731163809956027616278657631887333645920139591520787635161299194128530816631779141345746611639328791123540417574760513459039928746795370790793616504833339769232798251717071473717607811013692171447908840917007849356584162091443751691634961723353750650344674084905456058084656502897100544331475865807160162592948278822803959042670016917169987719715777971902991811348152471157188051093116435561953059569995325522845958940668188600199867235712492172930311910434070918866789732730768027990288658167709347174858463658767322332973754625951290089835720796524902016540137679111779461840554051017799920755766948874293097307106767378384029743772580283414013771963100079379224570300013571059346572630450666427860610347366823877079919649208337039868354994892191064862391892127352619771772139564930715516924631485637673522108354416598422343078051203921435108801760210417615489072749761177973321141852130876831343801861844737602501909276008604635412209109651534846835299144364869621535555781111972819341606685520077418030531072496905812794222633010687216835104814818875536419939818796614856589954107059258651559677744144491110816423378675163947899768441479565083840449774462654933613292138135231758156537531941424180304157847711754834109317859544745327059209175908127491278301025579009564215432279098318317396060371978206006934861862455151088532764137735517391090904187115866368451530858878523777176343744420414477447490599783252129170623078861218278697769173246554094514774037642655461390353193630971656636882116206211104826976296443197107565801434499515157346121453420674089090415736964047118433275059854817618973101870466912903026475986087751429468650196525758493734802222101464406520353344625353006155345537864564723674985339666635766282036348216519518291620008029765597913799339497227817302902816282026779093952943416056890296121797517754159009265492075415849858123158059850609146323372337912147298884938908771198232174838989827366220485006556270170285552159832481160475022465644216576461600031480453481294928303741589440484979706550129545503889940942126821959019665834361679995539815799681683582659187635880220332223631475841713084866516436002991326996132655773620018786852042710780660483587511290465045578575686453352184955341284627483561537657950003851726184180237395337648162566286409088930668006273834070036145248651371328893408524928060862021213128221787863492823663807675328732252834153147754807112468880973758949901152331042853820752714978959033078457145252496244462910371270800332952656730777876240452084155251825883515179700005302971798958934334949858418861369026384515202991656545402189843892075580517761136723854975442181268280727845774920533382196807123526402121697424341116656509819788414295315757578379270108937121391220042860833174958702413374213190573064982521562950819043039535146794112292761830730977002935361179641511863907195984560701592428747022685125646203033371547058324829884839472952611699280884761871159784591047118293571259431137970774182984274922755570239982668804960116078603174383266801941211689071330361720885490134401071194166517179408613985971169913309761576973577661446109245873261105068984760400691904429538798308241725379317515019194570778436816836599621098008881660727171795358117808210706602939707299115004146901236381357885516129477646764592499597899571554971300867532077760370133599244832554193700623977628674122046290321803668524549849299819350332870576872217233928290150791634862790635575897509739514383588899975183824637382385354490978362429940176761971564169961070960092216700416506723656804171717993239059022218906851562324089278104288043129800900324776522727428931216456953556525622034284472100083288518215823994701365475859765272443069671070241727024184378395691506699281291975424764350239716311832792590656375407535941115023347031832570019614301563669332419030753103042694693667563759418268894258275041580882298715870580745669197496461824388462909726124538319106884773919046717201305053967325487161693905379246920800481641971759469177308663207222130928500947065783680537243802223463446507604562752100676833478485127369754877645840228010915016542490058207267072263558002717487601087358807394346316050449997719532813949081180174892683352486672342532118598807818561054273614436930052346991531366585525972872140758642122153847573242874276811578786090637245018489413835248017546413769396745407208780192447288711013866236999348303201527093105591242949122949190236593682434057262206684313375421853492823581322147607527608414440199459786124056508627322715643038141893221530375022056476225610594654809673661543527003990550709336534259279693208107626957965617335319884346265646997416410484761356455828534849048343802279608295455672054114151495312478010252512888453809229591821592930089131265959829671488270844374981906909229581350919751777399069363038928973703016934728182023031563190671080503349444219794854762155306850528888026441416098129897116899742316846734595079963298431219626854149489604174380763499708269397511109650493327158181386734147598128669094187792591802401126278134517238562440122379016502562163154608176837337436567603692587677239056343935967694917009018564884670415928176036245754748129758624706041560110332452057172764294656085323673564589990838888700653000219669924230140746679689066715222820862158566964205722520889411054523674914567834196669979242561222546111323029977363830837904873713799048818724576852455242918470471338491545039731315677079436203369160097089213524592312958575115801866730312370481969124152997542488583913472736848868984293508748733403695543966861703967563069510126617753318239579958145091413984245967093930065495777006205223243342691901297562859218947147317432126093196798070388420370496574047199954556685533559804656921706995992356364989890150716031699387415258284075763558740360318875390850296460910747398477015362459963481252445495719835937681811386266053608698381723126956098237990602033969242595984511973128837130648018932030622790632752310770911314020721851533069714969386771169504331881212536921591712724228602747519047512951442498252491277513695883412591409418864730817165078408894530113801160656622066230656469911105602126000899194883215381963391699575432497702061695326537560590308296154117667871420646102020280398791685952791925215242200079979158284757354978283199231159305473897719056878848383420201738577574390093953295859855314687915079530364945663728063726095025575925070565372348390844768596549794304824678192732753991082080000832946577909093667076058734025210087631162592538750098550992270910338546846782271030428938501521994452426400244872452990891102671924417382487605386841750501687408798908798799800391434044512127846645325480640080357266930434553110234988509270989669389844819176165821880950165929229709560084457998472661231920878716657967201894656164929116798376737150541055205886848031697663316851232332528958989810999555090577627694573759557584321115356038937857003882665440072870631750519153890868182686041850476638832964029618906071459861417704249886865407417133904294659398476890934009906485582400590593263068851471023683129036635958252859380123078235381617741561966288129726237069744896152309317915460632498437819243745188212213240275333746078855440603921223567074017293343087500109948256466507785731898426333101397446849712532439973578481996257097993656797670875053050581483139769236207866846065870526826164243524899072490206537482163689688031034809650473553697230845154506848777584645898068696623619745009531019251215310075817730076434892657047394183391147687151943819342830631643851752570433538123855615614507503902539616180570453474974097629765046682522016477000494461762734888196302708037772842188537345657399407369353904959260453973576624469117559792900247066087205507982136492631934635965797997693140375647591583063218011491998032219927853720331309809538857503364110512532010504087523234673649701823049845390359944619752140376253519054501316897027346599410454061703143024248223622769470211962115187284470950580192739142982259399110053989279052170069912406650324136306229793807545638748861680673588689142441108547651778122239487194398554831663570284553614832981385044997738544702384521963305860088095263564733370325002255031258869739468102864108453097131355865886258099792769708086443862540366839827289831889210690120812858342523507306660993321548364961540958538523322445745044014542167427256858179359491613585510868412346572517776959295140475518250232062420446961046086738274207351400630545571816895459348105651306704547496240792074806865641962672003884984735294106370505312744664716069325778142650836873532324163768365631362289803963339738314133761381688429820287162815537734502664109405760315396290649519895454263823802010442285474506422781139106624364853095000491488647287651732373245735014048986231245332745117260677826506974600579829256677301606615168788941094350242859478930579826996482062979049067913735546673847922891377954143146673814830188248005650001906598911770873652402558982624702312927226499483177189755197779911264995426259116182519194893052457912122962907604864382249752364149822161155903862692905117327262773767836431548453917688331156044863610347910160049114226553286995239422352022154462837003599149582009425605216245624238710375751508243360716589514989144975045650329606008642207930829056347868324348453387075550850023498213821382802914370930977047216689884137504002660532161777848557739495110060095108656278919164803571981158008248987755984939619703162676238035100527747067541232310537811654557172484062883964778009687238808695377535790690526289975659325718131684354980681354152167290660230572481448329758370909935820706314006444123186504896263893503200328249957517364631306537433748236150310121714214883604403126116262970548665506940281314569766607525759211225926687541617183016601387695304930607614733799418919457616029383656067466681247734501414665309388980072267691403027181024162871518832506395629085323652816846210712021185676645713317182784749107409564669471936444342921622085363888732860896493136440461205152932874237315474932428145103429881152298166154063003528841313200680214972596169571112684565424353079955922271486125668188349697146170709739231710908543218693504377835256852065806710944674669688256141060402811902699878644985469137509261069350887445778921922119405941879593449573814141808739120483176763746715783745172660321012761626160019187066187569370417483156209331387676666282018731411881079947090836187878989562264006529143631467187328864442595279937613910554288221587379209258205020803403880215986102203701781564338354537909149006050777160589300249095970761918309637421232919474009552172342912321708131707481459049772460628379320351469737397862449951685884001586690908326194992813781839678855379244279311854153933613564877970903037114060557746208889253574777516658302206371803829090579489081983056146857534725821722135381911696936870228095755273865475561861257542921807361462172908803357862385540490832247476717793990974869441032669982291757596310545026281633505598959268627830037128237782935445851566574517382146457978861669160928088638245376525761348074203622677244828147676912323548614497585249135706946947143305618288172723924684805114429734602404830253816208780603029634719255455648288329413905870941362136815065805607517300048333050231609738548396029890349544945183028936324969189759100941157058335809851325335484770560758383550199122278527033828412936664533039873188067032020580959345007507899235783534762188278617657615341283112300691499281766706033569609026791262393495325221860692692932146483975858580653260282645445119620158018165305285219499154370397127248052331314561670051644421373273879304803384554289157109343081655506991871611671132853251340367035900423086471956390297924023457288780598564693638020611152131348966242122808166265932221700941347808196188023426321780280031236531247393968208372178102746033743960301603400131392440272426438563233628726589241724389620706567317285642320918953962422136225062406465327968469969012799295581388390978082034982284258775131142011374341519735597628093079691950789882023667034041009183811994086713543870695220085039956986202005185825554665630671975008702053837900066047113273042943219579405684081652867511807758909709670916549722282077340105348229743114216724126603446974117579375542583840485986450225727727335860677669840889157566608595611799674198106018184060729362747338027388747050519147839508067381851544349896930505685185927686193755554741867731314176222764575044074951961139892926164880401153344403051405687355581227665936781559190966859059068707535982645657162128863602989107338063018288275197609836198060267241142373593374773819989000053006291858741594013686958825087811490512339154883023494009712988595219851442893451630100824037050792984305241061832909020355710293339302654233394319779541257306995300389154117404743222977795808443681537856118430694854265028088272116140224997554199502648559755179452968028869227967381976502504345045312693030408655475972637560240800184581417921883125768225346790924764115956078450221319703386005273149960506665998369134270747015738431592938349795559438720719247888869707981648843308517054655918740445642782051418498741526603066576819987373023478171582728042582484036175483591728105439262552025100916366401016953521938412225343575161815405364719652206341309213510356112970270487407231878053697722277235777895527702342997667158628043186601698809839445445016515705191410640982101696066851427695419067749983968729665925987150168798332285883669627732122278396981609479319904100825542270976097216571422846727008012581761999043917172522457250092122709465214461430871570918624513824794838659162807072571878210315407795902129263629818549131790145973086536208162796552831782949779466548610964579247001865283297319514536063250445293131678510609869580736623472591300678594115564116072851106854621232131748635658897415963159233514547473211053262925775834796366751668019872175156632218810544760359952064502285865598448370974305170937531051583400462837652832704707522787013262576458665681584232673005533373327670859329435123489400042393944327968629278985116607167079216233647354499945391082383781257088415023210240420219993162401112521596909973206119719285341616193397758591708697556676964563267781917852559617194491716483263938951270159869194701231803463834684154842249983549783132072882807358701002107511867410720162145116090248802489817767922908222358447055413677958442743235240270728480727954102523276141354346416534684714386289306734188563703699846980513377580292147139610511724792310126271632183684177498052384571813454147503429435754974969070257686963952977106326197403479651333129751055497529233625186967227315234507571755282718468227780290988300451777655926122985170979854885515245173820123373281263494365861460536307974962373006094809506378924502331761027046337867165519451088319123497462158519098773216328819187338144572903634444151539887078881803383874951816283317142705991496810808302446752490738439595558664334096057871162410972778310962376193400336496701059279500524407443472323787615617169641234485288830220948087238895236836233975851449875918393050431499098441125534578685129081766749162820647767190226463529577647082902259808093662033321072430496252317998971599532392920421973498047228052271168074819025796520927869290666653886606749355780557871513212806778996117107860178988821694379918533266801540182943282350549908880297978847428351053211674392588113041304842319863141368184649630791482510147121700121111310898336594141166553722420611948036023248669031140907829008853732729749147026776760495751198426788711079061766814161626153892212554720331815508994701406632863580810883980876408307123092634775096081070070171000349219113428851529607766496097688779991040601293664639721514378314320147525711350816188456867269298500565538099323028188938699846595366106570178288218297152978127441343847986998292928317170831152187967856211754065550748008634315582691238306580246233046331001081926747513911482789482554838708614548260808448982231613134228379707872820608559063870070616457880854527339582777651093045511837433461281010413477321056659337718065033872986468728279480890904518285938290877824220325161738872405443299883009997583271075760685680546829853701183455520253644961989376882455783363397247110986937579068290598528223888298869383899408151307844956727583366018632260274744515211990091853471891516798715682981283069975307302600766401636851010188274246703007873019323652162569831349638415049953575989041616341327436904187615260262277796279967037656475257583929028829667639829004111124717519844602010535072535366881164438050852981460122866039838656256190218544808814844748137131830687301718906959422846027075064583969494744002615500102406477702309269598305539304051493303035971482133203221056298552108290535082382664894856537263304558964652605402211545142380307729276086631775056607071336780399355682401916151791023824381313370765960314933981987405345028072904170402448071864864191153152383678710206889731049173322065651449689042382836243143793122304016810957218156769079477805405064345174258277914168229032238669534940005292359671053428309187470722597422696193154464201830239492440035315642341169344121150322339487317670511031981939160137298085998040780037100945642468328222521715987892946814213828866118807952366685255614406827271449971743348054536948142829634828717996550263529258214796891981668347547685213968916861180751117815031054101753841707374312745882276860332903610476700366574060070641904866341018966342734347637072393319048337446404551146990118292495510264386569565789273759866660244818115654798946151482998635513902904627117622879016813385070177667434072881287238347388382911997910197552530864569078715073835559459394893882549838819768230221401960827865016973923802689693791813954420466152805532626574599894055617259144961385191205872291428412413676994711321278333619828191030839963867119805612250246539407962449528826959880652420983604251558268117075033228729514199988395356171199850125924925829675709934862693052638931323169444533883943435136961627097284612105734798990266787711275436800756115015494880091799144239753073866249276016851977736896996417767916199565008609531536854579519509767796838889913877566540630843748875149306863301323653977580990670563636199176194722360802620962081410727168528032521525050963284605146657268113410668342096895288591733975433896417380662045440822036699396396096674546079437449865041271769012293742798984447139174790610460733650911719577371536362633995834476653256130534963561440081077494670680989056494480602891900810786839257415475110856840216162732790029646016680759479832313821303068555648665009578419770715931951244922789017091930022955475271914594445079341222805821871304050175441861270573422779220054088751319951138642492932305424911739876485605251768784499115262500929534564488746168201182124279024932265658033096208518912419616042637850204547857925298038240685475863994674404994744064604561838233896149146832241839174711831528754514757499870103137066470741720624947467864578808814021356466930213673253112096697601654740335931434832475537453268026106253559305944811081952064489302998399799527102249652465583872485000164027093079024696981822110786454596533718404501797667925582499964785202328022207097746003733725020091240861731075795415253701482078655833987637057241111823517092130201416071621299196544394168949364665690914910389316214427549465025170821353843529523606953536682983139278021768837168123608229675992932268112361869356118651563442434064817308084828869395567312888590838169180287339532924733298329211714595640415733089017910028475124498540850306333001316979360178344313189211994470265057880244336298425379513985807033701736727937412752188686840919804445132466659922483987038473530961593006734438006415206640323424546747506403106297846464976521888987700666480254948184500744356295756913303966042047976241791467272779010656409883713192221763563899395063675386482573485195960892307517249632980670403130066337128555476413819264453954611508138470952434948051698933255678823654523032172541257723534102738416969458889177430480970588913955113113640450992133336543229640653660466435832729007026937679191476201747113606338199223384682305731854796960360487603762751704345914276889761615340461205541249827502320126643568394142949994650535699650204529497005865795706950004395076406110803423698360548980404895519462668787410756028941799198745607196388053279624640996015480443100202545359830334133065428028860520653669446611111689469519719725989282006247496126335427249398734623075301811838990174601471716778434369578491516948547075525516388506984873707973258272294511721748639352428391803285339785333381147599451068132090148639137995118987082338877289728412108803123224669312360204648104544947269411832194938280654058328418487198798130918097451684032870779099218424038142864749710473937679510581905418157458450102074646041638534828367182493707955746507785121926417854926609664978266416683170349566415911316778091394929447846447356588557187902486365530948674856512398578007172965126897511568834998764001331761607512939340987037812611142919097551919178010472051883712488816920706019294399597704525438464051746311645298418070350596239100980660932531736608511253514279806410169802311409420868476279340261277955031951475662303040325320747145125808399435558927825256657146290966785244277449763797750185176683330473625610801765381810436468900552954933585930252271056730527856153013317941348538094505051937521447822662280071997628950231921560979551062300398737345219615675867953607080561547239256710079097838425572403600833764814797353893834848734391406048183343677762231136626177751899939485206138623715600053503202081985081995434130993983423447556999734894080426305870423729432923001817647255302889200803256959606464571279418807997599037087883183897091643917608059843633869294693353768203513629781742264094801322175968725274128676525768036041060812025685938653765873281315625937702668990213413545795397749516381776743791634339290359372175484945622211960269213270829849569259077494292627268448601048706988892779721634997100634901010822636642313295109606156231541400064475891569396214920951710286615902723946665555084124366127111057504411405409459708497383741542540711234381519119700739725197646279296739571838236474705587229616969347646916347160121850874042000589891440149710763217045470620897191041373028524032299586617436511081530087235672184485741094127962094609185555369288830065284973151361739670843683647639100694062491285222057510054522672363213903408930609874567964210440141940081341522978442465807598115434054281471799281040937979122939896343188079018986061844571192146027310420004956332393646384792433688801374143640452349947566919369247675259782032620646248378650820964132334023325524858019242984512035005042840269930180292369160912306932132645842999032866718139436496830730531790963267168210813471591035719423387687091217727003284507227200117634118605206877874734743563485706767031501569048503453990372295540161694408590296304846659201686897309470970879558629121109501108095703581633526653858536587775708762669009586351128453478716525302742464798536121619628829663939490270407961333044995401928810607304980357634305759575476633128999051625993400907489445812111934919064678172741383031010480284489029125120550448172746943803169809155305604422713765150806029944989437620688710883170377640784359346874290423082758072440894140522837893817781299859116058951300944871004673547243678331006183766764335537485059664357067329802602473474520511333016033819077310377050680396686949459436299618482241555266043319858593645314518845395857435835594254281125900345204555574499572887142373864791916571521220290985930686642556915310714281029812290555237546319518368391899162946960010247288369400516978536196498521701036154631101527637569002762865735773386591231710801463964395817375726884854965045731591589221623527498474654129458304236379949724674344299357693037767697926693325903448236596131047664105705959662214570665435122626573494475557850265057891793353592106331863731513819012954493676097099820760671582120584595722826514712972463861611533416875379575399280670675467700002227247219325480539053733956779604203699387258152185000953585969705151541873306092557284564681816815703526805486965384346929415103501772950133085580494130093762851227118865636612545307682840139086629878469193450998903566498001228161540481505284118379341246657475030728135932534982128733012230944079051587422376250164824069708643486788273234210144954287101076940420261667085735054420789305643635812625250722554933542247514468307968498063014114527162750648895297801780318793017898620455572827326165621972028698769194538847268406050206534712559969064063305391457670748394613570981043447231189367038517266240264135298038970855966831406066214155649345213400274658872004601014051486059561873623704309724230176238882083836653100446908009636298580906221201688926554919395242611972918396176498639872232443604703006135817418891623253682241703862346848451161005280837248793593763735384605120878966642365607015183599663025173367962463349533783748864813904112588494630663884583093844475776245707233435304553774193101634088483018940652969694965432780248329548533805988300483788368570374134280360216988885989096925030258050671943629745336665281034085489736278159575967678585495572170122809283964033624517706462682643452806094360070755955976918356982043685411040930550369726123767440657391936948988187802306949929080766849928193372148888341236404579794336824770420609679107673874900020025172425249824030025498163802414254214006405889849909304537851010857787189312455781263877399626990004544443675219662906283752704154640234292761852471652114246227275251376049595433361125997621406256970945496944496693316774953421505351129901689076260590534441703193443178416689845753766354391699503130357191754017310386447303204133476245187293036747238336865186352908589137603185554517401687255346786931372730563418755186290366371870255694855608244375935928499958161305581905898994277945660058698372700686389086250646534545829594014253829944933261947152461551182288995530659185905542135536785974023636873522837738676035450031753639470120087424715704797699850600494354277273012395091885844414039111913972335435761187913415170217271522052673977605861176620463709891174313171213735548379147196216967515652429396410904739902085571430294646648981886864350776332556245165954179638936493909676535441520089220138013688979219285799786102493146754468044551922166782908540357756130644446160161836720461227721277969377565396523319206132574126199569382070901756698323211773705685706465576266123515984123027373546288580923955046537076553922596779621596235522399799701399540097365001510841113112197324353292277805781246244617894388038597414451537737376037531866062280646292594506731816411566845102998672605727111230748118917533758491328173990930974160980130240161277172341000783854243920625011541698385017900824490692933736478794172093266437142966391097055433248863857664621153576436463851493886984049857972691729992833839551759215898681420960942209040312080846662796189757298817428257638739858801460464216485845118631054200496233842711207209750236269281481959916398590780853912743111243517041129386599850296754404403753208931091330211723768969808937613926329188032390992234868874959119384212116499362717143767232618541122259411380786429026756947601726893661831907762644753047060831881613000686546828517309911673624395242447137918777861062129131609628960022455615368429873113785337765189788035912112190321513115752562909968953582866024247427934581651814389893122568224370367313820802498557688002444094243271434545644273053647259014387058796810170186407496471525087846450748531061532526448607278049942047934551567505284121539344996637746312838795966349375300050711812231615690075659367455804129186034771502573083291001487777737745462125073879422400076544905026703576648279273438319209848660539301147705839840603908084270059922119085326661264977589038918529042337128321399808370719068305106365270869407756446125654485938151876076865391287203062977639460589127046603390862027397490238848033180317255422792139174215984366021331021188766971766466880065708989270101844018654399883410365680850061597396317105200660853458487819829904694676830998529850017984815168509577126379686786108308710130804461184591857278042788782751183814749144792841190153592331430608705214884198991828882021198867225975340897594546629231734653604325847049045842767767315783603355249496194322909879963216841421881060155791009190809079687754301551205008853986150516153653270926348252846341341055454633980747784712525334475233235583843050490212240643911431943436692170883588640861925151177922108466230282731095319648866283847510902644239847260230815563156960303308142194111850680772645560073232620768918566572300068191974794780018547703376122044000212504446466566657359787968538166550012208087512178707636542478801172780815768062509916130203350406918555210266488708726757921479146680702120616158953234521127954612971002735390535145379360936394508491108263946761999931462783598673515238777470268868735121768842383687460309646576134829433454149280371054950822999363126885266330085521987985581837907940571155865452881612985048602228206281179784369732651043104877554627649187972846474052427280811514536414461140240238134546860746367507429845055932779158741904113017353552217309059039627082803542124604020400390567942680372879098208653192635687523208617480232859947209599767048177234491580735088514348460621381221645363522516058238472051453637121661825262487739650819678245575326145831665019236444885014406324614479560782832670258564744114120735563193118583562025421186224705686792389465660149101355084980307340531074537277274378311663471951293535063872981876392114514549385451777997638027823122642724962977597425951791486794161564709496334074892753066697317078504470003103334255452594663369403731264700290041218963091366225735530202746854957030679744949682805330289942728097646820167701042238984302009862212219695532537784209213427358814361212914927419467320808627690199311467770994956091309837719490905142960657930586022917054661782811221527883353258147814780408459446216886030239040421125748790751886237861319074287811299740245955644300799110867808280416080269647562137510706945718227680453058408845144934213822818531187141853616180928628158958475770913551688381667015390917996173257299645190676634558989982197954963604009360281367570933284515382740671003977891035288729853006115519657636803879982415472204638111312238519891874470407610547998269553272750669000070747198736041649102708744265978230891500082318611006366370655522037582790267188339050998342768229661252781193441828902072454971341527778286139865682336284104635144883730593379108035017316882120950208749257343777597682501915153981016534418803992433916782843825017132461491743654078543749784318949772423506304670077595919619006706342292771403732144982846436196834944949592710143665730093438235734249818606819364785482648048923966303971468733295099442459134396246689682419241958794292796557430350953444400430142277650309330596148768913516402676929729212132695989865183522628208027377905043595094500391517916153571439838875783542748250320970580016901032777045391921329413917745155049322155266438493343231187798359901806407032171975835138320454066044406822106380919633567667730015095267942318738981178522505667605160648754344103492441344046780467825938075718081898897115448580549972141358971274953199751030122354679568007734795315371063204034621951673896141790508228154170913407600083790663807521772324716627186556997105174860639121906952061519916932759551390024262663838532362650682509918646448679691415472419438536407984717250406186389964553443041219528912590409672125487403558449368137845092950768288504435786525975230100681711518584688504812887592914003220397701503363398189833208838269397888910229061364306802844475807031420907235104999091465056541153401960765104585214253811292100494923935200637783457226812390053058374999439191169170261680252915169026411411922730508889727544476384090047872631361505956156671857662306136585130644380640507047342998411545829916422297817572863465653437610198737567719597773714570903245388108376273788558222873860191735657997647584690379148764486378137280282680011556732289155531115036266827495872085182331509569701526863164214053645493040134201464460976222135437262010222033252428667324437706435572691252858827528333385449417618803941939157055022211704479122678348349058439676808264401236112445759687327775500679936417579120845981899708394598090711045902096077717532972006470739195822803743504989889270302074912152889011423884217147018618131659999703973998628024684934562753863786552009623715219898262031126492140952016235525147043005836981128598100749332153429300658467512482102727728617219757624744746360042631312251243022006333443883037346328606872231957536266048816548111889059349556334717884092733150391895485399017393443664686150271537117342313086528378329321628869343747663038709863627772721432733608130908920859194637341579505256690561463760349273333727834510234617435720227170462362958767854163783840974871910180183778549706090726579898278264030726426865266495942628610310158278200480412322631804550441577419047424497338069917432344010004342055948401600687530543077521714629414359487069459269870049126425558965741597334479608327253883954683914991047792515923169672061509447235759138224697773631303192956814139759963707178974192953218648746716696032434241451368438223352880410325978154308404250212351859154111524829291621440949687527172412111740257696945868781020014946663622584689614861645182604536253441150207771665758047079968305120368909863020819607690009279443999167552928557202329770515731298660843682081431146552458322879932574245335374948798696102132450349662116095496400723017707975218009797226969264686519983162701323144494966005024184281372145529449229582706658322376986762254879203105445553276695102990858743860016574457561023535247724307862609309085968459019666059353935698264021298040534358033046370298135288985979408276538516719230522379747825798050455406825672547962132776122462110399570469917797158441401963681556702786854711859513284394495325512341320530948402847123088513013218875639497690794246132581779738407195736095063079580182677882447204682150104993092449365959717548677047578375538182034328504710679266767940912170914654391388661303787697708811118844689610800985859747178170655662974952576965426326859922990898261330652475324171622762797556097283855327609552886052761200093796339573495776354297856012591422628693779414968036131985498637179181930295893039197235439820808139218479950430589317525056477785384904822119289040173926601126217678875885593964669048791877600289769636045562529122133061341050506309100621493831521475398792386113862315596798602718205692390377484350272687913403667970259966062119343254983195792805296240909238300099622119705879137869183257049132445287222774211762950414352566655507932439523170865402086681829649022297771661274473942252755061224791258344154086493952801627213894544598573865907391700241149967983465126753749897987111470270840234848979972296915275570666349729381246190662296841614595572391955030730739215111064108246413259152044264439847440174294362172636254463240722506393619267369191209839008346490735053272138941566142862461952740393113262300249713547186175226262018162377935970857258588911006668133670329368597634526269436694641347704288779721630073937093628566053805857872718904653540215531109293037840777917946784532788431907884724589355667161449142196826533760813499092600965961901604608036732647402293971938937034228556488801405361037455187802954125267878920237971324821699402966295409947587495164775543023038951923557751487079650433923529750590579667619192565065041959125515007982064868326013566152026136903751897253390104565664031999348562529794087889063843530388517645302933743516698180794786573988051260966409440314437730708260151082982004201016223317628970121822672894021973284938361993827481256522926079509382916050545958625082061054027574625819859194670055423565009706625165774778796978635818963792299024116250550337006489049986665317158837390916901300758494580255018790810517951026276106439678420809748888496920060169404391553500569700990884060273491496308386180527579601728281372219510095723704373721261887175505084127658875204806233921425259806020280836487314603408364978719672761741449270791353762465861838105166829875838456688045411930111466155340838252328526403727690962544327819405612030999483291417764050477661155295011540475457126463263194799340123529986942502022349469770562290358423715302568083274958107778483685115381985855285115535983084378286255451360696976079840358165409820472812703016404764634928217912050267247896261623108841571368544085460389924361242856226504948480180511667203368988207319240727980698309779463540221595918311086863536490613962161125588515247640854373903408864951058247972435711009609193025718496084059999384752679257542608902517290899897291280934512372312885051574686723291068610926886077213091561427918981346025266407251964067487678607339880766441977386451005912795849129132758238088983747929316923548183967837315291531163136270875469910102093965368272124961415533281837875149443203219055498674263997559596563159355500029515740943525914840843206383170614752662036819175407725595181391503198413975837664977749003572583761902833027373843587432035525127473750902717421820029952078411163274109425281050043449360439066658387643935679125833935700143572129575507434068694228177618121411744112943312951523498412987737174517178013334930707970403587032496791468051564625654322789320799252480831604077303225948980021521013481661660439039100263243515713859314680393098398289243102388422354077107684356538106554364855897063868369031488804606565126108959245719813106410295287928941627135288698333505948517961586629920645033479181027383517669801478595193744672402376745512067448317632710969320255171648439357854268642465532570094107148398825761184303743436251128300762293733902654091509295464670492864106112988451935142153629076882412015152107811080764961142151087472742832780800873479642532803958313761118497124355979003246802877085155191254321938239001647911595069226898214940196883287236092039887655590568449288136713908523132991947097797535995571752429497165641386026479179332030781603161960209373965869322206951516793639375485712327989559741328490934637315227794613027324149858242802605770338583369609619715047190006578488879000673378987611543592200618193699915236292062246825231697136065969075787012122356406941110131532797366227571770065191013377602310319581372519567567077081067981750734002978023734758980829790646355552863028362383430628093598408427086880279280861780626609079010002116899910739713743477043083994056630703496036702628323200942576218158833969387592458815939538829590406390696955027867227467681392518378888055335170917597540784569017226160079801059888374528637548855928624869255484546099553433995160602936061809202559683568220616864316018827001240570362229857338462023245829194136356523171333636979923516895884285619746158947228925306865782662223085854097828802468078310051160813687165400429412932966905451544467995342825459592398958139602229437255263230005224767121744005911601711797390144419209219136011879250583026927612198433741649747930606399524203261724000741268134828364543463858764060046901219484593397974300607253113064974840070467876972078934124030244728553464095071493093571897855594529942748586165416345462393908260580166393531326812659190341358768233413612056296205396527513349209360088625850989235100734359432207198742039092106935577929992826892084506601424988448201432823825928271254910977241402913938641133600199428980480370591533800183630826400043510328312775120618603249549735583712215966677732619382417695977755681877825416564874882636473574800762408972497724780478713868282908765862847548486195648029310093125764420896239077606732289648764968122170139270361568449433620823305821666156558839686930938646833871272451760663726314502428774529337310758647578847856745305363376144170735143014510855547175575624760912284046597361136710240453495894636623862967891894053334484637035650049937363058374470945183822478059506020406381588929483938254979361475965059111447534722646685095555430587822793717336772302589493743382523422470410575469542289347927638381037395180189794502146067766676256505158471937059984363734170569737838499926391640287316516330858127000842808783289088477688790885882214122959488461055569346637199137495837989435326016005180881508898790695588096350228205210649363177613784769283969052468880419815274323345467413844275387673379385027708794756365218062530892453952688045776097978600237009766534333659135644195707856660455937690369830076268501298921804003414172212693797870434234972771012949097384803270838154326099234445751806734911248013995509108259247001296241693739142704068750969579546727008247375284997173392244049424591158841181294097433773185035276029314606972312669822237109064772447497535629273113341678968047448713987149374468193193312286708214627505114641949819950274687122216445932843584042360623138076239424567617014342827257911556391597535231387885330623123573796274154542690738877213452935019650417801690649156426291175224601362919101881560578504791178107600229600735914089796415763070507290809877838985101150820519935248714183651139193406949332165302333903425997921365446869438511182607998171030916305845894440793862277501189645970549856106352954216845612039763912749424224719528180386196346242892937903042739984860075871730117025132768290048128662166021047876113103578854585127663349553818843147545903604549731045957394351285175905426582063178169136635496162631157363381724757909772628849783675831730908922031789907277853808130077852161225617826710594494654725912466824280417750420775422254247977683110064379911579230919094216993426597996698280389441314335738962826971566982746779618123829441925332146480671793320019288030428548805172279634219675191512342448012981638929306108199179150790071530845355137623773728005646072332608332439088198154204514535595756844039898355920051115562251063235610172100075611382822110412061719143108718501905249135376474882402902486139069277266022280633876780081700070240941470146988354977037104491753930746506815339611479456538455149039613778401270072296608015477400845802239797766427315252084868757461956519085372278125661299217044266031964123926535196316674536333929308934344605800770591266635339851542276519431977234928600918870235589414285863871787943078863562227803030526380977739097425795869282406439846478934710162226513677694529366413733214041546608236518079493505172291434124080080795096791981373504714809842067220288390523961334692285852326849974304523295695741247524275613265857167573464008503413929693017033873315068372629322090706510516376207136053078309725403151916839465540928443119871737977058301091214363297740368368053292630390768876407031993797778814380108288832268055446643300884111776894189959928108544344626071096401433203342700866108000179417833567607320041398602388150385116515173339241634150504870389549326125775625891972941475726435790823290130539201032616433209002714217146931821410025699882217372689156201920095491427488439871068116993853111052379043507810223091927698559303874588778062035512371988496845143560078157579845021636974901157020020765446213232068259732712896567836201739499436445342018167238003426496860900216531988270040925885063505551571097273046583736878967682328244850291888720318146815628677622241245724604532449240317858689964946806176718943757233243337286728190606102011872341668832530299830126217180195953641351066546489756383982803931085527710328005681812050368890880422438563731939619142846148815453502415319902217423307315877111412430532541751269099107411695250307350159264861283782982808150667527184162673984693203300675651004343280978033111530600238227062869711489619285999675147719021896321472343588880453992259176481078791004117007968241218801584322826323802756933876056136976571946241986131236328219118003897276884883637601555379000817746919105902985200575540413037711847859934459379701065806434749180667450380430308332344301287291716806695567335309172838555250423530560785027085026416716075884881907502888286132002100385960684140070632275106877691163530805369634014383918618903573120367733145388866025844660081524649591545196733208217858025933944238642232256203911020826299543479650309206306891112595593286040726474536753025635123962470669123074625933905703307131976959272846078288662732008973241230047024049809997393717472829824665144656006478786262030020881700897898865688998437131317110855899460947249054233289390059836581625649270998073999618556812815666962227781183941872616687856793179667177432994602220929219425830426192257626861906197747178701805412267930608547688861472585671781128954219130082776575612555000795268206413558699867337914335752677858093137239947689058425113236264513822265587208867918116032724637312016317925834763863098316428468040113585797911638295737816878144417102790372979912066440542922975624991981752870071273428975370699224005898914820952430044603419469351436018127868742361619219430886278559812362640594993585812082823833438496841269359399516874181513019197645089808571508924230213823529028762150576414185606129492768308591036320095337182973953058485660960271440844429492206566170185531779266340259999625019275386796614365045999387043121242600129177069536949843294361145350275187379967585725907587928204618978162702170879879157493712492579870037364605197234446270816908635581822125567676210249954743038119250258554981045027802781328694386685080703669254509901382530793944300461012394398185381191619553966331527788583440341749790822824395852308745981909752139573160962101462886853333202280395909172741901532827030936604335900622850866352213382619227841780910046077051499858849366821447275430341001080579732461600535293900110712340169845218209037464181917019646280268751571898480231232686560835681818902900921670629459815934713312496710231679019535263414107876067281687167485172062436665110792390146406430098274957722174561314139088324756460154711284914477622964197384457622127885269161226928224266848883951755489667764895048647870967601327968545511123347698351808371964750930623839459191379457947016586511342496418623534828444628993641536293513035680683980828593399258940439155996264891943591293546287614916009749635305778946067734319710038633026587968608123049092658891024648664409499775090705958559241362030453134543536126337616090225683164372201781200014867011766151081003730952663444335976096894856059071684547639320265133180617485785520999257475871452714687736921009431197579632962238422119082870884951253401473636591314381173638042401049761213939435883374152583380087947162705870124641286659959061117999054916861521415753004810840746086547717318212314730834861947794873933762212592933263896985434339561998655777519543300479418230798388693069686934178557563732017325995213074088252979959166294927191006909548069370997659641059891157491768550097182956560572657641110515018337371724742097166775449980781838414203896523404458465088769132275814829918523976619165836345220835917970928518623071637278434964534922447171787076690504744933654926683211525468470995690063205078248111843411830321853405359077745552627720867043151362261008024425525114584269792550387896230174412041288737008385519537248938442093605044286809674264769945297408679692629872693473038097268370063331175002478020645135774823208198103827312064718883354829097710539760356673501675061014630630388968675598409296954024962855441480444503300058872274859846681224257647009413372038756507049721851498142024733765326186996517334615571208852007578607540407685831095458694358712111273612001404899492900544985210554833973347644501750578734707889769741364787061206078395075197308517722915289414545373679561798168382563341201077573598628232605502994902736591173126911836390175647917510248677371738313067435196166763855130740950420479370486507304533413926310610005604295079870244927333250082764409147143005291958406926895359035986419808011834724464816428389132235742611557879449713963216024654618708580949290614187196586555976744424599454217147451824977503283597295395146760541796102590185238131152191089954279610756451384759020552281247230946453516107670039037841831494292243962442910817530233540821616049113141657742639411191339617891777768840701538571021259945387602978170224313916146381612034911370100210905640236253601623936407073448529146836750916577817531677211253390616534431322924280392868128266009618940018556191222640510814898303204622756463850940359444290152793394000162559001207576336310898511550372073791064591491776912103547207403601365247593351691357428994089675821524619216370691619716455999293072999744950423573006091869466312519649255808726921117607403577832829784954819294397891408908258121715345895290719496357560587598685053136193716051273499667068552710874478578217580755280943622987633834965738792912412043901000806782469800628924200418273085980351017697327797426949333222310407527952676416227466128187307057307329477440384630642820690623991525409006702420366515074704324018012183257485027081560552072635894547711493223510524895209544776356145551235364313927911317393143533184425646211803120061663339182545100326702258575291995772738296173169776287941220705861835634796625677976422260552795963932711255252528663224193401642698742785025900303615476519322928007799918604337354627493596373091492446487458121933784470516335537673776215849344858888424896309268635307700307211101829316122494137652806300509208445770123991788376094303381746539222519587451560676344224778482158106544277510547119505789595917153579656243361446882168499665200812507476576430098973295518023696499603704622878648527788981259804173081079997137833581748371885144023780985575435667770900563743464116718967949013297019264789326442224142212326633999011317686831339783194469796298980441707183787580075916612505205334794121983888705922270628903997422473859306237612832977432000758326183760112005098864673769610543348426041501949283048580008446350792770273633533476976051729729389717197638327496393432109493856454780260355085511841406402405538409905274242291772870029853839885967258270141386787018928005766246131866378917337857851371963784132076549432643458539867088101466498173676705665340000531947830717665412799865699192261861735451234957724440176569860585504020631410876319303867365527501052561465976197975936849253304839759994328762027256067517562398347790770597976400652669632348721537316094027908920531419928768288570653872410973059271393632697699495785308294246130502103137400243782189197040005946080883240813161333140269072903257693869737115554422632298244258857785701756637221375997737849775247475479973793690041993750310851960331494912870739409302925016125900230023924114175382449565299585060498057338070413334560022648661536224660259051971926580395463094086148572630553510573059673259299285056379838111237122938127821480138385520386125856157785808007081048256413383762752486451197061373968201298353720887998678691161227134488665715763277567037070714074342965551101364707795967726422142165962430756526131022884021095929635084672892185665219362386456684442780164616581836933911541257382100804895622034984682407217383460356024357215888587068275232717401031126528248380038301750421214983020084284396164927293982960969346463329129190089358418725947169150979069898466628910048537798961875007495744006051725290781822816955643898247021268883790614749782581681203031963723218654224254723457191752012144619576277879405139564274789292661273937465634909440629458915642590284648938036058592937064303126971835933876193877656056201151041732251396361630880297898721222783271007081110969589485420772820220590138626995077613024724893858276358706876715030733501738981553010156069206324454365977344179179618021515783762505913260040468554001638621644973637823165705641101092377670431615260880430093254066878242796789321908580143957558537844469937047939879324009624838073789806383508907731088969424424098988228798979933799872099495352815856167055768963065955935461722255199256636226471401029015490968547853479164293888634544108805623902645452125551545946245924448453738240281445414654251769134739381831892045405933268691031991895517507658897217505953649388939601594770566284283214017766719961715451967145060342868508053169972023229117056643749712295531356205323243070724117640457743881749604531118612333373508697395137465528497535555569243422484230301313283819221851714648722808388450506122948401263970221116442639995366321064345525182584072582293858816940723918746351603901131739406662635779877368519009656941634549765538219569006473516256295920578943554229136916893983094602100611433301138459159739330287514599542730002510832865219599467299512356286079537906880566603318859287520089826453839764904184634984573722489339865452757547687689435831790691145312148400309530124036680934325308592396252525208332316439053606317314845234181732967518639002756018831127886796507078920481783084751852132350579854375868666084674071688143380015864459581320920757406035226056353930236465719147932872896214265778980636299157196361716551384525082428042267181567119344968273831820433049867874919347002398744117634157199277926886248957674264126743825296453579292916589845730084562818313460461568895456257571215431966728160956240611017079081299758153163365949745736851309713092646105576363396287397827163019104077607855104214171248193081290947771561792433238690398282113762237787904524049859301747392912978983800539159769709876138661661195331947160529501505595940058662197029974121392600097148500521222709918825764409188429745095338090574853237067843372231472552966222139500419761136354610228579816832962817304050057263112964165028426945342506428070805931780595392193953023607613427651661050619538086537228455216749598431265370919787745320474118498249534200020786739412855427753320145400791938099886529538581801568162863142293393747336845509667149799041965489942220005091888917937106775435183921821108733002210044341923340613044611945158118982356409017160429880338457422586287153741390957168552535484401763680518801459029409112099358931844059885749493982517148744536723493595837486644898912226970049511019392680535999101295729724507309061689522823241391158238044430416259222609070923085994710699705189406463248392773628019624622175649622873067129727543890458837145227208370245833404020632040423831942814302529919277309785700180345410265231370243266249020880005228754230055158633082799732663312187144527498162866253428104973326871232328979289078760594365374701874587166252770564654976250896478540475149314129622176128592828513884477522595658786840573958337736684341889039975060836754150333302883593127691328392502754558708354424109400321472559433400430029526814193479403569307547238480187967543804036714553942506843013669803725690330822730229622012853948441999537532318615237730904431402271038848524475435238829047880725070807650453036964234326312475036134846452690423968319809569342205467738818730648049460387116950563170758493007511443020933156989776994767038142727959022963555296163782979793227930593976000324599261753800057835295010128691643031946638090779260222209775432195324428091727576184181927996262319644014553590821959169993136598709363041335829060519020633033171049072005312752142834542997490429689839099085952501834705204974796475327639381696631952155864299722873039264173176090479681458893508913237687399179776315667584173246234997564525158527308018973825313343111150140005246322866980614916798754069035781576926063186137646992840367884055394809839514086366465384738734885192839061879393444214343175157355096983618354504727255421904451762883423080329958056194142930694895493285873442267977936029957914021714494919649556985658568272097624751557402344688023467835076318918696908920997285097488294054223260079610081443907114679472187697615816914005113571960035688427633944410985864903667021138900096441556357838200205679273365082938807059312671822108731757207781963892805916304808470296312942420713994993706284968093660202792355083734271839016202793403555507102456834899692108655239266483616947965727698442343990388399652648832692145714985376171720801636193751135866799224848488716652070427041075767027099546458080452440157345618765749250106367527784068126647917947724664272856354301402990297559301839657015071237613456878762987735453577419220150307330662434593476121821058993362500084365099904651366967076492230956028036228898994970657747326104143533359102198243924255059467333692244811319669202626041309187045594748974105627735268515314188361322725780394132609349847516267361992737196817011362994225056891983499128003680245325342830590888416564526048229154853002681971877403266822788007961169172437573482036081993029465431708387088189279514368653079342880790038528498466210639981985451620031564566648688475307979966507263868302820201403255432567357085013795233798402225203560698033187144448051572823429416597176957598983119568644172583796268455797288051974361670586797511851907807247688383418406277240810197406113611815345211750078827186344803687996262736577330416683299643092564185610826358769988623402311500538497510975684017893350630531912562410646302842883795928990659829070851804104169973610757336330795985830685597603068635137211758016096333409912676524308295825237416404093092650444983830883313685696122252259097345187514028504547131998456584698482441726772123731429162303654555362893533313937780706755305950733125809550759983928545776609469249237184345319456171021127892024252740452451280187414548985591607987739229478839211599673071310025179400905932899676939368480387468907106502797809344123800151111686538814889397981801930078751634583585018399816926740014959301284083890530154583392295442622133916522568064033271231477506034095036218907324423470812241514632408198935851212861037672317676859999804955565640619912619079226579643146839762276326278660039813120429572945608906459621737051318338854619784069373932874864910242303727383780473412577501055131825926198459563797716394077668039108133125281890113698744996415920787743291025128481691939046275200841444618664905274082014301033164821045389694330515769176121155871001969006533723231730900213327695595888427402232695116549616568542279810283280627619436369288920928018061618568757125954428416915419622057622250140871600701024635213814766671092198014605739339268157037610994584704385086225759569360102525228739130150234715331294624323081440835984928057448760788523974409241785848167116274411618666406243000429411066296092335459085021458178680035511706719362185268340466639469578635319021914395379833235342323270538425968588418805825214000050935225339550359718603187941059017422490523279037463630874090446652520131151610093482656510531856352647948503868214778982678789775551276001615227411462845545010372504186545707943254439630947236512214690896797221778203610515946421098507312971226356223518952527383992777662730284180502070381502574757097690741327225272950957344015866955557877259323813939741713030535615405154004605591920729853314026110428768684049415924637550639785013389720517679240829992914646700396468401458190395303449652124915767344119425305490397252872252666286785622234165082442040860189922733835649616289525935989375466383948481242660204573474966508130919709915606216267962435634672897978972072567462588450568008823541313198878620149981667413033883028710886680861033821830704749220187354803647785568413053694004188018392930238174292850930749558368996094396521982259774318991497526798918624632363391147445775844188686622230668887470219613144659121114970826273647972858330057725831159369672447849845587744739384641782225065384046920647594429479784172303411451553594786517360866936058738545024225974350191950824971387809326032935442268046982314777240414292791625679853297869662889025576934341132971066073825278113368321104459295084468622216476523524398794274400411833344620597830847028541151403726235870704293685440053542857240008398522029092426051063743801223860539381962108475114909233279707742709458425588591625696229065511698826459577600745415476880634576714258477232683079722331324122273914249261191598867567459203374011758980242951523702526363434847049768537500031493769881092159159811195895417314067284519569460478713068961309079163721297805862005829787234408022621978346942233196365822764307470508134044587325696467719411142872124004713788974061766498725274240596481877145898135631877891280381339202709173073805099676199153352622768907648775623604660813086541204572320047216439577895064754888425402806452681177514883888286001743833801232911470303872737094788119091331650914633957627637335818536108997032855605418771943565705164356958883143364810141064347270495025262630899147419171100249034134061326525176046511025853846663384445083404049213363456705596794292692300180581270263112337891175343727530684675139980224377516873808762481594027534437908182791886650563692550146090970167677861377181795387752010354172106942790750104320065588480703122900341021657610514295013446391218891949435054086989949022105767689850491248771974948453021764752660102966354457932651786167793154506902885273532201174516066984069357130309036031640158590981810316250638793414185114681106696288143267869992537991371515597899652800485692309551129463500776643192058686365993987760689705142178943459336543366755053821420464871019274811745085462634463708180834745015088593026054404504513598794272363632665105983869204230462724967152628891427539555453349413144134075784482537983401459609839611043596643622757738796509951064842151318639505100261695063973288909137501848707298449574828217276309621420563056187471928290990638720343738018656493766690369983093730741139579939155584594779514682376555040575003088736633570847767885794641752330346388691419870874615110955204674413793528017618925669464980809206359775821195824594864504984894241186895589500582300427022257772061896428173719616444671473968082293442948837654369902963198086205590978325828374399476109356996421398477979709674644039935175303535411334013729902956020700841290106769744680323959969450812047198112301772247758000681327111720461402529940029790208553392143782457100644466957180208566794346031919763359179713111902191232828176182511661059097969062449281520856526771255478884211929679708683028429969049486880432945583143313959336423959548488019541416101111303753778243920665795201645403586393238932046412318722046706025996429982901556462855701001464036885873290151447756950537205969430327585184421703711182822343961431571260986445354874105342287331250425617582112100200350428284261094865243254996879417735230064687637497448549760376714744532402180681222781282840414455245184711507376701119338615249633038398240209738376648373431514512942720972870888082309140626201900883690283286216917275296821603095517289809413177114130727678426535509386769375077668970734773627372832401088364467903231575053461200988341293652111096948742180676394481419567507145095505264885025299095806896016714441799835647268348942529889578453386083613679579496223409150315831046713463406794946685214171828709158992073270424936253116809714061581002266782207407655340644451885822098432059103709172753738759250292898212613780379881021546398466527682975287882346719602201951661580959009398116074677685795078614820592137252720525636234181807411816766739516158297896242890510899432852081409917015890114743685702022943075139672036119585201036729374944815485323382837549569118282616456141499120357491109203486878352160496160712138068332757191977776456178324415741072209931389862415004216893613127253973541993823022775654772684199896069681710535906567637749611326003705895595009509334592539318865280030668904767630600188366707176969376712528011785604013870011819108931750933582454562835125739276051795808408148100534055143066569119315049798918580484353695143023244051307815255990131282277048848917759700478661028402786414640338207532872337170347853535275515862666560391368076948271139565526831669148466363843589131994730128433698712850628275895035775634160470311274962457254061346897841884301538510094316925496787582720543375436657416510962755352316279669584670946700017183827840359334601193564326962070709637290286990135648584676174915317431450763477531044040170909706797937991436348679557050909645203759188237521979766061945342277871514881780830169549364374116994736281953832525413057979242172876632883326234005995501256358302882758404077645795013424341603602320161123149363073014391937270691106025473285354345885673709687104816888335722358710830999389604441223376968108734531307633443691261730828378513098364081193913214499431051901238478374117743542794312945754653791064778911689763847887077938680312177519885830828816485236515720340254718399277033127955352976155045519571577102037676177858144498937022034974531146716023723690686234650815633223604194784518428555020265949724943347301009978647844958908739347290987011616589083159638837932802640802457250509211928913294617207441440130585661757588682989807842721222787710848499554723921282791009272138310695542729464966520999979541645070662495739088743855342288635119313233379233896223977853189092494934602259095527655108453015191051804376308353355095441209737420616237914462062477039281041374673222716470793749536059178667209832222132176191484007301883124425892967269562226824379862448332720886444414104525502468620469246148810488542227947977264471852172919695085984605879690386587457165813416633249552608653945467497709260840014188605026533885772333052353691155397174692033764702188668043051288443748675333943776754600292054724331475552576543033918916088070264787656516353327034702132268064555511221054167964402289460234172068791173833378242068939497403035267718168408775025664000427977836762256283000292037981202722959186438952946122236427286493236014656010339332409489081842290776689845916733888875564949859497509308422359681055786004669364063965451169162656930735321370557694043841765981803962155120746816721253165602115774298399060203817187945701929434965707697789885824800790376489501455784206490240843484859908874003731040320459889903877963338135115988625244524548936254862080559003924091641055623562425069400252747394743861011274272881195872019731440523253351014316583706384521539440825722710339335915269416516638026289271913601021897185101759974881934003734106663877124714711009268490518117202345967065120552640502132023201685015551406427879581684962570924314998398311532199302203964871748686197602823599570346016259419243540567469390993936066323181105610576676473336212636591105471987288080163659686801344786195270821081559639068147624891356601490322871384724851191110607582246047224402970075563605872274450976060106926468344756018030656767640821255738392108684692738934346551754440294098147678906205391421732409118539469226005083423838473537977875616067924168812462530083587344169966372944472480139175978282516395084792566193516732740021646295097060849191200093250968765757336634245570910008054913052452008722076286092339451849967405354047499414050217404126680430513898554678074324830652770932536991645208411543346132182518082667664789922922157853006744249525282367757166644593570472856272893356392413185492415397425080024484199081464357636329223348122338766697784186556826097924568419161167087498443866448112076362258351423086506944403254879584665303774219891172815307066144623146328553533729980320260931307882250945474981737835779044045898519890510690995166354048584986161269829253775933781622296837565018750409112452045866222055722202368453804872817987788931219593294951916366709375404996456121993124436294817634070631685653905915874925256570507808666264642750948188679497140622712078457106415907181194444137564453975203222038286822421346720844814479002594688135175165466691178643625275921485794147658875756930560021995555613482256332934283415032146580535668917684627949635622926888528386424569019495559462312305967441915407727946229795534903042010847589827728265889805039209763196650260377900635562668031831272843197890705928069335268590125419300996794291400972742578662460397605566133798755345065590723445764159889471396129118450873601857001598189461501193816803579904382946091563757111300366774973995454108312091068591744459746800233914926777207570188668393711766364055037879816432834096619422894229346025553983463254357636043239940936748585303398941017012518423227231797226265495326407423093526859968086326049667452519730293741047694661877297395967814873568358607580057380654636949844517480410697630382735189881438977812878251860600355036781667688033583853241377974896845081807740335793454429729677178891774151867227414629706664761360739351920320349805031894106943135192510541082306301417852506616770964169030911761932193112208788729820026930723048225070974009309219425798414638250670446703066339172320436530328334828877011874527005688470184070855464650300930975203111863457318456552117205117352916649583533259863260837341557568217061668597451633894952124889076754088552927452894239891227395788035094736680589716733928871018687823345710595108119224664598080242667196409384438016242296996026891857471953380927302036114034379073884231691053579615470668197162732266487597049528649230835969401395940532399353762639333038291597365232696363151017946313797575871814367926413209250308537424397785666532737785710927447672931347620977630156136364101930461238710908555785630127925296789409878440147878766437824452612158399547501089695038662365651384346913147321254798346847984754827774780446058305205921675945062983720257711163290006437948641789001015907697238359531054074546264122856045507569591405708589026657057915225560331276907193812034890380441927115230776328404133503731896487079343411342124933212812076716193475395385018146821589905719229926540847399737910493740612919081184347601852582068661054915598989200222284255553096062243388650640119435517571325417498624976916767999255822637850645799630842240231756030342072137163233376146670934195703381372375098900665653241447629921900859676169490643290321749618987604632136754354858814943664496912521031826612535357335608852087524886842282223733793158025664725935443548000920200423084665441748580979967291621711085072689746515703204849690301705228181518435598481929508254587154218924926647766646946795657973312854652651449418469055249533712189929857093805258745948328111620297163942295547497380394941188231420413683957498467419485768495196303811159607847377023549516663026063947031876998896136002293330575512943546732407462944482194315467089418829846620028223466259370972118385737580278131389830304016990733502599476197130345319015917411319782323952697505109531329134196575995524112652311849621442511836302621051710856192550675737016609380997202765335572961574033619612970789986512875838968176464134948552809463951810155001891922956040603372661796209589613366428710038656616507120769024400193602550157003168086539163746240895869077408868911960498476258657196829598501123206162739267088860720133980563607174086293704088854638449827541997021858508892509427307545728625241707115687350750131723433669094984550668230061679764271449584872526524117559208403764518340570071398103166909205020698664806671125148752859473157265078412862242101856113964656711584828119059559369581164100622548130611597626516166195207215968086910727070358138752084902340594565298650167077754297731753318105470011090770460052424048824283166945708400089617189767552055584772175999458569347240402212087733483317584603060629138590295894736930461355970686520974093933784749760000321508554261643582451815324163761839521719637081804975703116909855525528063384021298176139015924268278198458603758249297096387704487734438314876047425306656686501056007243107572451292407158011733652357255536775096683694321225290132617968914309181924747229893896768204444699231845155959700979863669041737564665166258309125801789588865593063416700281249969729614030024084868215073023826524336811080567396374250076223765402827355254509826752411075058346425525798382325594883437100699020847427205991351984283483369165919637219592229886812571389867298297887928899103053997566380916712172791264650874609612556928669164725216800736633247687857107111624439728139726605914406023039994871920555895606300405277858540584414367454560155519228852665669015584210738542578926584801956120902336044927267290126871862128017075316102553279973232767431944201139621728633400456921900193335403076382491313286877077609362439078098959269479304358683978201515414832340663438104980528471280387692991128325282643821320220135928425412351211187971288368691051370583446572003954121628266316324519135080397005031430624242503339200693117804555680818293472508400941459035192766503579319827350834802949219666926394265167368082281282473075378622483516732408298080170020149651559912604154103324603614556324453617802334397439145455343611304985047573272251434496384352508418668616584691320597932779601055715435146057215485902643942227329265588877667460826206167313832864228416104221800577302636154042461058246355410450476824831243846286431543232604317248740066636695188838334634681191979769001371436719569806401323298895536805502115278387174794059404420769741537426090922693323547589008792117781078476890011212349725010690481360851388874036954600136534595924998515467098670323911012906911596393394480333697249274508019909847407522054479244040180213516694423697577728314947612699871129592435726434659213895989283802412583155173064784238981271917713999334690825459259937021532501478258631996032804380569347870375434180232980292704261396275773997457688877046446734012894250564571347668588734837644344482983771855186852669531523449817957005942753010005047334357579171161111365288069724707441920800146091584460253536638437203759475508872659090760345739478547594501778739616359224370194168689331368804412727459565716266401064038010459849030834914783309009555950773639152222547964098489204816582118323666482381969655685601678622327455755202031683026510251259221151187031429815762192178903338955115995465413657809416858930322329072680893102915281286529967920755773404034915090076, 1983835690580918337840221603348079298317116299428621320997883348120095071480589348535084259702660709919325676635332984694195527120544322219732231664539423091697129214708154601569306025660319637735898618265249628177675255066343493018591583769816416159516833788053640084101103993482042770049320324562436944200945164946112191994997997672107430871005523119807934125217700903275378809974772887431965029549247765635161829485892422976925790309380827822195545373767710119047215304262519584396181151785385431650729122011506769000583403549584254715816194044289931701949494074406843314795278087971583083376398816350533615251035223792144399178699233343610772124059234990350379954558847779558619608745007713202850988558317177894701616232541925792328535727458755192698229045119812597263519099333843620548195789578151460999232954409565060068738983965188356189960407366378104359082456501678181568669932551901584719324281179824057304873719689663436908917128705903369081122138723418037225636053124305980557222643132765494376372779093512051162680830387566965878637473063987117005290566040460291860285666579501110440016235485701809299082507261648034545301638288386752377574614673335482948895962737353855877016408958580395467228801653095066502153182890404134392038355467536574880850623369644757011789888234372982705203596053627847084862634554106946544122413954470222549647679748976250486005967807737726555752678221147797943749619735457222392274083362620346549606670177543100736416109371559924293266901130241752119015119759841873302291038163285197072943176718919901325715126269990966227880812770657669028680838304867891205170509191241826616660827318090275255451362359735545434083351317815549236223523475774316219856050641825873411125065502218788346400973702080930367975447964344188214591342988093206577718737995767997432854755642567483403416596363410826620845302471044011303876186939930233877610527414348756076356541011094089577276534292363162029263721144589314773956614737155488491771291060680721139517255965878236105789615737613638912332923288091484473653293063174656740590576141418484155114769453559853004188984853375265944185431678119447215335446209511676049475297600893462066599282461621561679392622414881816795118152194595921831431946865733373754844804384919488981440122294244738000012420904500827466514683639589121298757789446711435463715902310150115814103241789926675205087713673790123176922603420042398616628997372492202793663069116282413182062519419045786637299391043124776576045150639481462066961696596126904234229289297678500400427508820284422794756295647336931614634062956087599356142179469563736957163669186002177540531360284539208450633120697520257395640733891034690149876154799501769029720792117229319167685396836144099024364123945901756203145650259065886861766142009974098831320204409844686106833531969011421962664858633069323798864653007511629031473834920073340203605844487140243668209645640130002127874059812657448891007854001085191044344412195769358540479694164087638951192033065310246140252362306316406274549353824679587462501775995748720911424057050271077128283742769816088766560302559026506358835887888102603731098750330512818298291919498513159319464310890969825149251355874605027857397123175543740056216306461208156525801572300380672662690970026177025018795166248822686709788771262410791228794664451187198638844783377525893396017945393357711465148288046772257077245042433193719413909209436620945433557089180222708615079633847448838776286405458131773574244370968270692096680900791452459417361132261301365241258378392234576916662726132811958286629484184962268296743873856712139054210118760470765160584887415650977616409215047268417116410840625841935581443420476088736100010491362392989710911388286642486806294671653945866316190714615854584442409392839871335669112329265815853405636871724921064129192743373901834932822322033858785071365554579055336597221962174352427418008311208124797305297065360818646994942831685202755417186273940086079465618125129774871693586193055546799887488398645052051627573960646525658874851413528004304435017916879689015772581586809527891490724425284969663749702682756398774686884012598807194568409164137238961554504216368372067784621173244734747248045334565899415074242826256387938174834270342436807206446594567070290834766596286663487229135918711249172044738948687038185126164929038967937898409724465088181398515402959329298797731594778550795994771279121047535295992515881568960009224188926574009272692206081744049755980475273539093318191919879436062633255460341549158626845742274840653862576296709226729543645166948562790345496974643080209267198683959043577387115060551662672410776302520830453228976873261235641582378698187546210467062568074373728958199156370922705909720962384687643299511350417797031152324020945737718740345211243842459810338259380332201694973365404050409396837038525487313641048839925291068967733409619414812803647353493934724063707888518199483001013338511028018663543526976017942164517656102043362885778408171713630886569367749913248263802527047702965771469930936902112016341131333304120080537243123469413144638071255463954211100972010334945932287095398353170376461105600334902351185757686641641605994266294698282433629429133892626903154726502514730515591235571166151453183148136211264318069453207642643800759071134362365703900892874127589534884422601723053067142292347548911288630019542739724113806303993638318192255038730357665728318736806604535130082631633368531974698346126713429998550374490358643101543741758933960509915525288783970216012417426136615763878599499239190265219655106545633838987811915701278338328805450526146529836645884005036414551622147109550367227985461676736992579744204768554509699609141684521629946085969198721978219641601635975938376329363220569313287264045244639238054798252216108030838711310772790451584823113683217946635192855879215814153881602987257257924804819871599749545149644582967135371007347263607424460547811451192779496294407416101743862451138443030288804900175908450522784951300368527639195655074226103822697172849511179644988051387682271564234102691137298684377006582409676624378097602393609081705772449667753015881902182461773786982529753803992102092299657176300053859214800503471059744568496492738098225785603076967615088342786427116183113995292520363720252914487739512448816387390965790853756073788992980293689364229924374025298805022544160272611095127625976171545679846277501100131738155752320351360315248755638135617584388517487130862940480439917340455320944049423614420963448043085097386797430326320542487777020596212656947206118085906604419048740871489628623339434028351731972796050100190674327588274862861708175764187545578776861621755387675267475741711501227634829064838042914238581369549053748456964041084110189447946685111781932763977072601319481857531372938777084834492216618687809755423884007285114666158846943953418934585790034690259549740920132308361077880755789742553235109795128236242791996332676038889807788104038974819039516385820840121534469312461041149036352232423306882802084863274434741410290028959371774828883728946100952763063788018065527847712785080445238350938054849074850030923486537275837893528057412221679152305210814366850502689538278178345331704498927236151907353532160489187491320965469939484913058095458791571834237712769542301815662246565569927051724841964788277352756321823935255414623365585785032315100249187487152557607644614741016880962114719317340907965026055132929039782214501467135267817097572582215225944365725306500442860239698760173316581722018735530791835173399461569962495641552900607942035362072974935221006474989966096803203251535786180984253262590023960338687248640463897775587358519498772879706290853506539238966013539105829749808972717501879689799743831742867264495784330628516572426034105240994113715978765884363535599667790851378555567039028468445045202207419772828551308386535537761132002615008340565245249663240241828744412761858488819267624009856851132008233694335098728012019905611696461341816694092034514623877458920129729396589429022345106137441471541090673484590858239330751992781319418600083035650009790574863453212888242540066805443005913069107747140247838836868981382302237000468518807760232775761647016839185785224005659300746000329721766799641434479618202191890573400239308164091777051065290843541197460230372644750693505367323176144405414731482174856498577139087194436169426458965749738675069591027190542508778051973664359228913802797105181408729980028632151234837701277884355577630633109425827608140488353764310759286450012129243939559197376586104846281891288301415089369286046544829502404144589852008501834638325613584538777912720214112392591802118859976431024720409310586836302997213574590643350397994568151059815590454686180033380378356279310853879747907156317226918698496513894100880891125326217716704335812212100023007121857196068186678892794313736038413606005700526715181723424532109141000202593626130122493868449454929611735175818650878881924939782512457440740172358258312864016606564265382462264448214564319077682808209897950343962377462278444510089209848650429044109474081487676983434390703148890992946679640628540561619483878679955839786666197833115494937711563750176304022844858369651941062156247886537691814596955356206049022371872052424425615785808754692475947087872457342570641553354641694028033654594292155505165137532373983669516965490324047928694952113011305170107179741291942785023320325275513278824936000742509946868686988950516218274330591517301641303339166249422039246853462456999209865436199853201474804596875329227230874846349627963106031358657213708753838304103007839211422128799712952197109933300919331264957423254522973709335028022121713272413316667998319353290434173314066807133430299057498351330201389005753275144613293632605953095984834432633964183863279148706388603464051350600113420131393560543409511696302583766004893123277521641020162480899891510782486509624989133979488027230159874593492642688130252195464859001292341840176758247280227474779472153718320196166039349640088015381881354440292375298551663625329553941014445491417899841742483714920707333456791643261050380649112531570952168112138204076277788349595930161896806201191873417966011514730252403555394156892387733184410992155910190976186294174567317106274270495987469074526237710561342284620685561231960003444087556888330968144768185649085052295420207014825100477174327762289274446724021891355777518519284502317968433822241648739597470618871318557332398595726094658482096008174410112925878610254723510632378070012535223264073638698516417262314468169243293314170099727386654861386852515525705013578594206530206738190166464101879722881250025865731498325435821155463348751281611911976123804909233493217340860647733308883343396199737133163882458284387429063308162323580923421182803241587222505932695557308507143182540574607639134861487945041357571736685578594303313240821793039527152891514785563261206706170971750431170209569775276432192258260141183615575951448789970563438499858053641161420220968567330228962866684374967334354433788582341937576098996260265380218777460055456950263359840756343265365118982606117007893747565540674502790463446920283238958931131910365237975590105882779397749871937498228518355158832319366881256276582156383423912364504210059104394321027914823145542122475116095755604222630671662362520233033943872881857118323522334865830281969278315124706581926468345679453913458468155440791299080389949349111219608712353137346987803693089222157629005604673552659386407368218219291041455142405622816846515885603256886128989752804756767130948669744093108935782449355097797420269449021001638871649444195195292514287038041577143679865678901781524312165717284146855946301095728947810357514644023352059045844094132768885073955256498672572269989892505273832436135448225257021898246845093376787296233885228531401380986899798789619800279766867026159538975445058535469388759574558230721149336850729333905612826373446399056628075646668879645842844859726577644917691675909651475922656194351724978302296064319938401319909213868290205392456786947280276808256171710498459525542663081820528408188634793252375376989744964649078902822649182032400636287960953878307780609760396070734328174681247867096165025180736862615542327240274352371596472347028167494866586868641154144675990743614097007137678211468302663986560801347816431963588292754458382494973183845627115650567755441605437690786486475702530930489976389466387762932794773575749729678223697414821609485302697985828054773426961490343034463078055817425179914400468952573109755427924260333415665582147318870902790200834501704315695677946343935047938287096909530992305820912031319615159750077687167594402659900887133901670490135725515526685219558187443483571214663861681799421211316544814924294981975159237931470852023197492329652108260866550474498503837586653151332893691243639588472636269253911477242331530500453449083236854675551316566154063512222563426967940509130765657032793633443771289661531168015034215740227330888269203851857052235809900015181719659960273562819397167666581032704122107932051765723342258453691946884869156696856043916954172449847142066020990308746450816895847798082627005485714882080794413375772890290135454194685950509450960702838154888589701099496773724301985225174518097538579440692217936463231073587436431081399920814499892830315898215524483144407067799237057668887766138875137187864824916552040898251686965372653716377814203905066205496566767865339726910022349870667250861453501093383796661713850503056347154853207513757933975441805348487456785214720009572929519705210099856479733324236301337840242243773859653827741824275757847147345166449761268834547415656063717125618095852593718212062026934386604983215389455318019171779238938389381959276914976060517419202689580953514368353109496711739446249707019001007276342716552420331250873049885699492171849610736426842958093675950355309949334087819164744552320193440939904430211434821598273681976522252921909908651833624194324983413673636754192700168437023744965944545902648631266440848445598798906424271217314185207620045556837749110230079924241195676036243052918734891106443737821369530200724005147498022519020149219817197166173455263740617433511886245978920829628268583896887747640842858989142047353060109019518824629656038965751395211708386403705114358066077970885930288729297960577636676645844758822311584415519064144842964684164877680270539719153626494574120031586759073698901709607350701264975984418105177283865813492275387520962535187192209223422656475277346859636149132033112457486413805037903022227929606959743200723247150621793060431274334428347198731601810897771437928742891780507837400008925643205185475072795813168821620665197121948336614310485528629134322152361283591650677482805187867770349692212748535619785941806345979808618767594210251792495679700001148056788262354769503263631676148465159782822776524561809469248621717517835369089105654521839326636162183162701797400446779098396199065432976541970313091815669488720334352630910641979186922052071623165824553191954149659547742944274703880224757151068023425473520938519837716736085769857688389366818371586345855185644411352877674888506840392022398850980322864154232907886613960498992375023660466667416482896096677555247907160711908591308835665760555315506883491261364081956512921401372248217261342193101142501825296214028178768302704878407461321329250606656271492770564658413837122369606367795564042583125125333448181717875623929536804282635450008644642353849018408867989174933218353694916369828023576472492769680203635897368348391964813004713240578651538984594391998116882051771460191694040747163446394212971421019934543106823021595087016754968451100128258232302358530414651424900490015513147233326357121844497207372695330178454072741323808394502578897170673008143793605556618550302714658245728584879965100625721436939162481933421198083547736995187814605511092654085183610123940878494086580540689052777281882996168104613516680885420883333833893734280287674331243785795564347140111760215907857264850004041563790086238491712946799863587329181751628883831003108967611949827005883830644373113345575695182154627912130410951027408266027680682624299174827521903600712352434467007312958566376938209618595871240183918487567830548238863616799781726614447106069127435784320949190994289221994271468283725624665890447189427021021119226079234977311667441272884389612641048557906936233695505120588682943497717221485476331228648664389068734020542676056395822301976237983757112819395508041786514341221096233155718090007034027709178662790636093036080974913328064588969700762006188619839470212770188416844986314225899167893543043515632144714440808704735232738649032837421390923211747594796859921174346317797882691848344206631320189516658812999807252516601833314421234700568825204808171832817438127357591022395438024785216063072471526468059368119971926242428731204939327450681940791678975245072600008125749734999785661546418948414168423626750723714461418037663854384458981020247396651433099900920952746058904415161851345564522664618357628430609820636544834385731426599821959761852350579350741709537356023984844845366861742439725768115213506357475592672680051932023858972919124230946808792450558560048339458666866306727398043474019787742771699841975300768106675038404446949609468199266923660257410991015298021563535310531958225270615177223786660087470081496181123290757445806748072392071612138013782837734593570010312407097136033757077827933252078224108024043542901872714620071044389827497176127521085830120025576931921830147570325096364091440338674831111282183083575500925444428392083567823275079805973422272633125247852654719364504459252946843517510322265245204725136653334557120774879530390589562191006247769715060870986754539587986452857396351145451042201301628650194481115634602036023134008853629897146257979949002505524458412594656744110299946460351069870638610312856063789302032594745553745399008832774378239487002351176287907512636038985491787807292968384172833481908283353548138841635386971747778653264811596607564337519863516562910933066853789883204229482172018609225058274262571545400387868719364218660477589980696548118258098261338116983553216568551854374758280764758172894733625392626392883754436211220084752120487330943256329379526691287868765447566043021447828773995807628201103329106658406248186011193179231250472507702938408741567495550000597447227709153565002539731634546443776481969247803648741308248627298731576589037692403242211074256298496606315477682637781686081209108501432887968586203502145675610647130656710523482166841490337115675997912816059834211152911718894040276698811685817543428383185338902039410448606894471999504764689957222432774214734932108169309730367226869494470534568497528490781098679916543073539789506178410471791740470254796646694323389257169131494296920090004459862209385294706700780419115053824408498107474796274559577043624926301665483894226041297974430176470545428112698266114547857292791800203096324050150635953382886283253963404308433921424503933754891243299004219338399821207089845343984786377489040081769892667067900454764531646996142241253950555569611614533588868589538822886746156278882275855913437051022476132726495297304808274739996996401529875424813175976015370026868819424722968850618032720671599779469717679107129226664532611718798213404916872714314558635420468852279352758021692756437497656682719293782659458901663278424763980929585090626488016257742620061651568823388344452331662896382384636037714999865482541176523539207778295086827747028461855229167635664500304126722967762593156418410573393400869220858342517948455831123317776873830585692596777293309260269262978958380827391857452518632474891673352975116843978649256388402593633634808501837994800122860517665038663666526124016258395504807445026106585427066628832812120629305326633156920949419408905931289438824065133750724839098941782153614749426954910638919244953459477649208557366679258012447441841532103085402653295702970071479419106635110348608592234310103458457467579103410424760049029056750477608480073885531404756154883799922081679117619508467758527465208151660043895745437098869150642888607320906716269518210231279719140575836186996897593946365053471619320656972034744776531608758763192120938085733132949039492896619380429127723081042699521835382357577658944901255643765524735198539958220007509976754246130047252679211230358648973460585171015109737942639102709652928081862640426212339431573940421097764791562947704047742485907570000622243985595300996240772738913651948786207809886660850883758010755643154881821932028988000481801697573091499555740916650854673368200223476674962496082802193409833960436761470265716737790881134402567973606520844427182102189097403870623757735703157456643318201724629009798582425735419712111390733443540225652086315530472723949056309563050537284394462910542061304700198225770995989516115303065847782516913503967433132682039114919560145279372772148729629986757101682585630810056726737472580193251967541549832564817801908093277131524360749541724059664322769460081728535048323140830493425894796520918403801785224728069937973070030121728426253033387498516178132435117110632979211387981074847342726142802168887432417752418306533263928448583863286369481739184791140138904202259801998555403829435385821808143850854475428264933777377061295796206040942768425233608203129395273469678795531465101347953501261867230607608244836425902894757687980590108695810454891922244085703181675572013386843203167316772631389465455171691711380122230045453863865316103509416448208274023217232167214036662678396054018007218557147795173603807689038251677446571304182934368886241412668654392025424370264438172433156000487887681854289493296112186872231646442865916440624290205465881984247666108685782274168574351190856311162118721794463353088716544871706443963607130713166370831164943133902469409940358126249353594138441053721232472038329700840559451105398641998368878871087301920477305025448574318604450635699543495292821580918049261978744463782101229929354162469703360060772732089304026886405883877508261869625547724442178818738273380740642368560006868620542944209260130349368344253241079040181650601520031131632295437283621559494713057838906680473799518246081961928721370568769790433897388293638363818242772021594379786879713111945782467884441048491214419423789964698467566987924190644095010605890407539569495512404989901304234815883483899657828625264941852357108786143505325746394462571687482910645520654802389746884202968909041781791849600300149601572037979545171069959754900056466661152688451891440114063205163878844122300940109949562965784861271847637256321473671495499975165247506452747547517148697532424355956298581006154726564901552293303239876842550023133940757652677364607249496583346560533869062608895057701552658121721938316472979984666523715204849198911809600012980602139198256592680137255531376684111667989428755268054500791643079063744669801575343131322940806788080546204327075133842571734111667462017871711692860466926915889625498899280078000378710825779909233013418496061495831510503530654935991760154649685609481341458233826208120838749431506733482074004780822570745029176949878743115965920243804480293308584234162058002194723913662763123066875081181647865487082866125038676558586163365667465587017167254034361238987773639891059135119070118556084477685720193045093686606352492034055503143288213414628115207707885331747458794590681129538435836027625906538609962992796645404282116781732564424344030942369514445396444046988299450691450298984469024501660913102404691109438669643600118495128489678524677147305956177778274405802042609645304001983466611345110787110945096670110056320004816928317023652873253692657675796832423646268451576441746597930100410028830757472076026172016381958768271969258978949364602402577207287645590698478284319040169750270439901191127988770797254728333906837274319001739849360243500161479350407029377479383165134930823335380935720392172047584134679351950615976620466535215709929557667723091918188079538273052276834990397930544754680557514831288432632450789335996914395793001822808277037594586159390814266940547355511298523277260614431619999198542951903038250450373337863020956282157648893706615250137330938385735143088982547025049879288191820093550592891037966443930539018209500680693780390880066916395479060816866750649402578441302642837318210445277299482004851777152347952155162759764859145893224801561533356961009845595536471366300928401260019089073863871720217214526596015925927618146405619593683136455746275332227532279594706132701643221404332303235175381347649611667945499269196703259718309634768584892284959101544675238993325062121033021141472579966925725690266124089902383823705073954858401420148442225543191586664122878917150064899022584232198466927700845776561773405789352677605067020429608269972294096018278152543564539600000867554251976458150335392396508588284941012872031336172940581379058672865358504156653888525988369895916883511887649402658898802629365852016059873244384538344715179394448075948941727612804032936032208229711587608216480452878950314913441347782177438777230908519546304051455821506518200101348977832712994765920331717731438260959361187639533282913301096494214402364178003982439900632982625283515423404241393044442777306412708383094225840281833259385534650906304527475214172074446298861532133749886604273415565446523322967464857068845301914069950470579233210726230562050271543586716455705880876834415867418997410071126021023013275498683251991309238644358068905239186595633718550593046147226559023879767520702765999962949028521524754802057324986083863756422408930097238279091548920494391596946011251161886722863074632412929750620537539075182401406212972211922941487828192706674826668181896396486918870280567505984722376139312234481576118340847696054428088719810817555767650884050885281380212711537088349476421280275018472285571148239206065768219501850971745851000029363549121847612768049690421312441341696308418367919549932134629168570984767572942096022776598919235390748996832239324346476304606502546628461395285367210401391985424256398888904391748610242373955232993264247886744131643589847397718786722649767834511435262187416481888185027448036519845349829742826377861623033033402552053692927148383867016382650847334073371051790981254701883778571648161225404632661710597730807239617858273604426130585451432588609264475333493020606279470814517900417745613104420943041344644339876018260026125326610286883074177997570359188336195070407434724381217258820967924573514609900790742522102244950159339061906800709718018066945056657246641027555724628766275123158151622193035363840059737493569262041097670077337963529170333451061171695132227426051766601033142839083898823834423565181130025993107338064395812560620437452704473889766527614799803234494236714856231032875969128148083604006215960913545344970865255074661478863332938893747055920720331580182484946393130142089663720610803883756394081587473352662416708564167800487754445510826432845545925421078781218880999688225406432269157906401962594943320534119436485351405287702724598002750607335826444695654260017504463912747354633049393579012390119438998939950740526797434910535888333086251347478544219208739221597981957745765341896478847765417841547527845052186494980493938658155155489186791273022072879305709213073135537609988362507275224024000992800169316471186547292140096416766800363617940938912891202588839259294072350523715659215269845629873479483789603936741287631961083648962464915593239585218437942979170594995262377715318581903138633784629023457986661406267683258305748196780866033933786444707061007925380556260615240692280101128006827815492853245702069545262520054281516946526665501008589964125178715272274368335106668451474036256380601078917747796679581020802975984050160952575178337195548481336386346873446361581200447355292857260744984715852420172102374086109437365109937497666463388400874674206902274199109055901174774645674087295653203464128555385113870615153233578737620159201492626257934696201849270012503865375828607045134720971135237699459462243401247209885287571460721701451246739164556851541526541765820575477073573293998946603534355629965916588825782875477725960126966775274230017485660645470721680707910403514929509401508396003522377987294972812988806365848326922106641167491892064236533286456602195669097027204293378547520156379555110393753772596367080377401239445773464132309110641353455763257303080140016757461068448678856191145358735395202661080804574926815980618100527982285935386872495547740734158014085315704519491706392471220759647990527582284331393549956643299682425482444855314327864031428189871590421998189160090124430891462996204181036542440340945793407122305996236422742913500327299282211793997812209961285989929311890890599032274978427993498959044933727210920221542010176523953700983566575763511045065962727948088577338076497326244407854553597757800806615508651519327026438399766032085853674409993152029243870780541528329067870105093585345507687693968321449185994235051931178034776324820453195910468461621678827690576225449684166464908490667953824233303387810665486309145524646138508825218658650960671757248315419573843074920188583094894210175592898159718213388472570453479300283984222131821862077255566489768696198231362607112762842028846803392785092703230163926869258491864131038771610296183227511704930993995254523727166343561492321560507209834890095352470853771336681646303906217048617376036638215178688581829290769210335364497560235509506880669061387623226267454670766569405886395125882022849513178663092936368944831038804377078167353146933871500924843683131181971173336798709529558296878128552307800421321995895524882178761792793207859863699134854690259426859775996969927628664544304832499176653220122010607906610025683092177278105285071456924377568330909617566259588389377689810636847284509607129096133885280035144422846553805240025694465424281911603384288839906377529976205976541710524785886021092578085666132528109542295615928717252476937030972259733192684778950939852556113972397884172511609748390623416774463615718351680080704870627126267555380394466377747093353939302886603703658284925729439086324588748706623712516845957001345551412277129059590354688964434234899558277419446624222776661979570977082503826493089454719471408731392186687893361017338545228363980052170844467813107524059911246281751289996546499152821016969092716363482302247874804613240553243363887589756054137424096701668503840903753508015536176721628835165865390457837289849898952675133203177783366730488874257919142766185305956849832846112352819592756054833942343251869675954283058261282719606502807496628543684059146983156961840821970005349193878948762763325644644479746708789751056625009090144509283153379767208505634686606126322103192977203689153447290522125463226447535336002251510653207620195781650505301379747114323666068275839756813944230401113333476114292214892263993047796068307374565337018289832775425198495448488962562340069622283886086969108168572970851058018588995813225571096601775102242935473060770532199446645638478622591314748934351194240202657311413815522421186072162509196712765208008771390104687933129947236980797100070345790847540841883697169572361534935358587615996196547086936387974015206060814363879727993482961449225736742402033741784599256831382976486716110592417196456036344494994418862296723857446101427005647986042934371271769810341662783121369614562932012596742347969567547229526196244057778190412219491356779049995402306926214685340516260360245901097298669022735790647200010612616594634339034326212086339660658497727904048428309208720284331287556779287971842988676403668367515325971897991889347934026587455800076024976996607152097599852980947867621434891530568942119173476877498952574196124387494258732076486049729836449036289171030933563916533907634243472223498633718801763283814996261453277852891262526265715914396826339933719088783097954464638333276805435013706664934085367804398669658375753888864699199277439655162039899384563787298386825468755114899179654061514257328080572055639548303297366103910333101488409165635447389346370479910716845231520856972805398468288086676397731330442753771958826964708464288331529457843280824406696522270492613036896399196812602117953542878846882626942857767001290963216040096785196913091528940567757499075288175493584287218227101900460939700908837154358536732933387408346501207545736020448026453384429411682420029472126718538627276427130440729905758223749526449707478056309836362073152343100939879739387374576761223925578616340143199670679093337915189449683295213403414515739031804191971930538500099952068707390983144523034070035717634155061167236426145563536353529092680646876409443474496130560183469084184765341136056632272754504865380189524336815916668163876699479860902428030605987776526444872764706898734026201053286373381507864449468411252101957058640713830029854359539042081256357610972601329390662622180779005850568470187063034174857953499646718613469726216051560823101010208192427377641868907063712042818493778146546345997832286676108965712640989369969070811378363510819275180563804136843711278046241574057838706770259851760390473425230156232858964524507682171075847667104747662342006020371635549489753575323885973490561158903807951015114759081212802038581743614559681863532229037795279459313838425862947817545913698177788491228789933529062773214871490958382235987192255493333139023812884155292550578545162039054929695973418598300593940715035784988453209856612733636887899127002418871865067011165699386450325935725973565753903904793161550375955114662916323193835400800070920411075618103754114635065121704365590401243372709063782378770996674653509475219972043628507606358561396170102091682827391302093426327102587399440870073773639998243122313202335794768327995981022437938290432141448069168703231716432539154493967607851483451019347432235886129917072455028248813132792966855240088227365121359546648043337781074493439010025339812319200204892912983813779919727495348060406344366401468530496387350131488581690808604271051330239483432512406603214036180863169405891056058999379532250630838825413705181482958425281792564869818519755479868390474646437914757540036579772329366099676738117100305247473231429006932498342593687116424994234227058754334091913076916335075744046526503826670995085244033169392400139540852555612677989785153222294836523530233979217222293509855943758369326216553767931588019204130695444456635076826131173202047776655832926573118640673326007324328873748136101073102010492642647361555566013053259288624043147949615582312242207664535230364439446777342330808058291003314771169122771087558389065459575624506822076810038734671026600777733286259273022281593750533584808139106140654847967757008311664718677485574618838709387916201346660872454819247071178860963607320556676492503369260273520679135893277798960540554658490879132594876118487794126619791026714983818868715860513493326714697523103342507814527093548750369709681856001776693394580390061080778308330460797566933187736970357541921898594948769372324352064784605476984506911518001558976150973974756842639198027693322794065507069228915355729148239360510713258804529201354988269735979017602863511292839052455120630144170556474224766606921822882959928893068073281373410346815132974547713684783883271428602457948142487292749613908284866017542269956730929812630927029315448599277120561535146104377579025231998013425971544315025829317768099876509907078916940308378115577560421758760740179746524113262700499598864714746026758359665735239881780981220084845727062773206432548194912542222707438943001312814682057597530121335753408713850028028438753831937100547678244462150225530042254457961814054872464590247047119237250048839728793713220393552592399655986074480527375683374961777981922651899971099493478141199889003359802026907548749426216552467140303850261804477495321288639396088656949219653623528844514348677531432525076018864883022454149533810590327728688833268076996167402154320798957655769011078329079905341281779773236618052846996564287596687480945655421425783704860421077635283808484119550044228485153655976781747797110455670805995620953779656556352923125105671869689607939025895903787061887161587877168540402085705836693927452919141707638513638056068938048859283493565324146287340417636903285568582017044964676631585370953118811841778627058320260494203724565685686485900118420988089913962710570132164507599123752107512592694822488515718219210981990244138232835260508684840836208324844345996168235760982838459823533003573937046572409131564389784386436622093813411458100251768531155692312690034909567168447574992233210513587137754667908808937818197723951298888129540999005234566171867088959210976791737041058200817643193350619258097719518694572622201350042648630019248155418611810515993261335671852558917122844496911429638545387229104099927757850746914742335808764571936536255965679516283833059583016164462618047135173933331724024688195730867580406715834751804589875348617489758882951824392082075138611162070191922836268911162268911905981947473755502163482551136881417329125046832726512331038913065234395682467670018995955214427268847452867727678260843849904665675609001172467398506284413517972493084294523552208883859244937812345321652604037367162998413471928243804474240645278908054313015974158544114253753417697062125125184591849926227349688035266886513895034620010401117742647529910733534244525859601275535087160509966496674910261977948368312912400118407850058575078205729931775904518080309765146242549157245536414664703388800588223184366512162815410655229168633456811029400967184905713548620824081119157558635928169272143322808711231141983329372986031310118343417040542874666512022054360722694340970787048455284715818637395937519103546287956039500475246137744399964317850136803991391178266154356956029698669309649701866340204565900886259902776730224790402490256735338287205115753497261480993248501199412650438559682917620272714020606382705992389688862311625982918394996865798478161607218632242428838714378303921834181345077143707553637136682944130366510566153016939448529838768713938047541332107580340986225135489705454192164020460442639476939997052004059435605589644615410707069541479130549113674181573677751942235253915539229490189475337218676258995149636527690320068626517024551178677933717656281552590729915737856648924582694010096873791861625323425104508230980825099004016629480299212842301677951468005922444316849787430613240240584124830602790024736065927584090246323364437812881133722287027876385016602219668095236117253337080868844933607906458756342409245162307780742478084015887240872522918322041249966798280944377787685872584926022564558792085815911083809270614436221531553677361451220536600160234391882781799232214872998837271925769145519599595448852958607885122089234432224441322130112513754110844653723471024597161281462560447789353779361285424916535120531239138218186773389463201446854588202726935829538956112588641148336693771628788738350525431871959369056932904190603167549348470987297784135061557526645996586563904865815477373362211723564840895242717809918334456553698040212935812687468637637159927110797001879526562603462752376012891033010030767673085371918050328483136563251268086219047468424373524304966339431790376606465333884770441320967555771965537919489028162065397323110541459375844356062423308196944161579175674035304840914098714565843270883081507002556673258916670008996207774175197470969883401647771187039226780123693313995559617263951236248919499392877498429140458625063665807712400527240223796685122044624324783761043324221225288286105629260756648676132831307962476621170198099094128592364015446935299182125092003912246590674320968116687615476643495173543601406905983225908854151651235492742430592564496758838648590168505120783133780764376081604445889583045098694114424367123079644534861429332134427631341779986407091757529325572912779645745295302640123599128328351917985490661658236059951006751236247662579503675056946064876209068409290831630372984305877019577167643718852342784896782001298914873176201592310333548769955045062232874191218124434348416653797107493131442702216350867236446435346306388248661402715904460742305671086378965607786015199203982951629574868501087914973292644012373031671700239286392467501846053293679223083712031478025219443043212087906763987865450155628574021159756896428685255900057535868277329208810887096381418046610459405053332999454362461946373545779937696857010978355463103851160548394424253509694001526469746525508213400127053459344201105483862013585128658667164545773794616662216891253818046558958093982922772976042724905219481861246697820004563401964136118538001351312776626873252312152398514923922840239939844012513833074640847235692845375874128855843320213162918029403048708877262309391330447343379552894568581805167427161890345975245115795696530857799298724001525887393360176313075837541891768723407991841458581178775059357383139157048538906141213864194526196167523969138345958560758050966546956465109743782795290863880620666886720712071655999910594377115311413123588444592764992535642235885874394340881463113854574612231760368329071962300994428831594043193603708704497048007734041793384401124308954797823880530882001063000312738513000275395446285781806532530656880845636951741189584820977249502756954229020305797037378138907842174212888790934956046879005750747394384658806626275872725231071509584125384065784366609457420092024102581370456473466312518663571401838392747288368634954823727711724511634201327598103920170039997096675953238098132007561307869496493074773024121512996710635312554212295333166155487261045507231217450534372077477356139370851094948864594736990200933337664088572040006242391320045228275162974753790653385985446480069166123283569240502264712083751043294565197942895974479940217077461090729268956643573215564014073620643378427784591983828542113107402264721629104666459577523279414547755657716868976583554702213061658405377030531886464742552904648452522310912939307438480592333163277175202469585630603943983719904695100319481898202619714688337737681607558239504420536695218217811702326585243807287775805715352114826628732052971895412374572150608130110461314587440466108462353159126804363440248967317916866784635259764531612380634330627469237269809094226676097104635249227699170099193969036605271306269123011501410193389967787520798122507672095835190604116537281078367422402709348632576496778627186551989757170807674568718420703233386902221740196334894492741181735046538187211321570678634528213323226658610617321857164837518035337399619462669581063809778946611133513609599491185243717613193114186788597988230721670020553476086827742630000369506855224858048790270285301233187574788606986733049597764179856981631258473722918185585051550711802326465488201298623568392313796025574516004777282067062035844862925833069095563785409763910198434753914713931160599591064351868726580616669128228455163124100791983606241241363389692784696821299903742427446300860444215879154277356612468210078155279638510634149320489654139688428924187796679456432042503073685012276271831405701832452045225150280781348059583417052618334816276581646189779648927029968217139336146391409497650900898359187761997112147777588070770965348726712707681680965800882013581628739664710391591591327350287079642126332638902871220321616366630888468117235423394829272798253952025114447302143208786862485038583957547336446979370220403958692547308644088384605070593057681788813703407737726704443147303370261835916164557858604358798631282010373077296052966981864251510584384902189652520726616775623735941678693299914585405177964672111337034478740904172634837079826154305162777361641817937205541399396593727129581569914953178282401053310242485922126701244872491468725561009047003524738750821865421483726506227952617211401810822173594865931499801978791001760365330164651352058588088499888616688135919800234671589311972932475290937588825212690347967552091089283984723393792932411670172904492694048300761064319467983984021713131088516254877853325297042210289561392122946088476719114122644814184106196713687460126487239813982715841856409991671718094491750118723756481424384696688147151483242592107321104356776843099352344982658538877618384293284786803266927280166222508533891083913705869201881028134380532421165060769936291342534188416959469752978843538361003025297047142348182816445121103904836319370909049847095375769649599856312821570962536478435003318597312060627764960663724495476736496630492425818839666849862637139830101262766818703317416159355976215180235470655177083499121105731778446949636055130249439386799768089949384919719886187264027428653351283752682814484292228871928554164443668002108592039303536086353949342608402767590783187479429005473690251348311565866313678721097407850664753617764861171600956734223194626697408671963845848568232063391666864783557207029347206787435637098783994418330729556317844473388240424847938353053263573264802731592117125555143045074848424620760091623334706466520552888202519828157401770228542338732813337752244019403170307349944994725580757879743492469101344159573784964836455382094511220614358981612964517552423319217765219847347005661871976477371290383163339361929380495882531672488950759798315059956372551328578395014650610691251237378078306020116668408342092800511515535788176149288614181756947472671516114355947219725918732547090911573614728418807805480441148937620167553605107350511318045907544885159056557653725307721677820388570918474332041801872406253759588220154746843674718262256406228945354900295188664581109620505902341084258708964809321169483967208989615772461734020689938055319404153248547799501083583305120871931485036284505565751552015148728524059572733288695133662211946979400762823080685450922893957864223253484305720079918187575171598148124967852104089275748669944643322657679707857930945981797520269118291740875445837960689542210980440327414272254614602786415886289727465257487518281812354788262312775477759534628175777597394389030704383592299122077371121799984584953324485123148840278081603270942816667909169346402788790332583068891301867711806459585457897432140323346124601456474439080726434708320545940809722354486145598908045238112305607941960261761150036314314456275520228246919612911355268950382756880819166798444384719381996406287633824099993635387703676357287436073247011064424128681107997676999677942141866931923789761659517853615474602756748615564861885367963848970958977661679415121254233853075016516753675919763501984024813254118319821111699118736358434353352829311742913197480878016977037481323759379009183869022192503501644269064354828856846932815345116454258018154019881754337321445344812956910585656669389779708068863566079431145646327765106969774171221491001081587891417563007946842048846834023679343386840384196810203770625046127622659859985410945686064557311624462693523604202775790170037948193824588761161926794756246271095888199386232540753183885494997913525783867494375996832242710128919489074421472880086764852550770134716286570894637790324604699884045377729541772878206217997149473095386618147979016924004851147883319281938497974280239426490653486589169907783213284099192164008624986802220162862267129902371508664585988634445773144823144453122026543231528919047223163292311211372153029493156755433410770640907682449272901632405468870590089294800082625068714179652440352208614427347045652370346997215344355553955888416457476537940699116204909838622010350732074188736427523249882367260451387427187341204564443157858026973601317488890558474570204749207681997359419382787179624448152245398067029715202518372266630687202076255840758818349983008720700686666295868526871205978200411732832222914378177346328994571685901801031254008250499122388309929458968833067394094230448397915046032838419074744581086286269150034273854073898408081275412483495962289524592505785777598334990886175021752644124229939387556990691722901127694870857525598221653168555244523670339874058154628366157779785598947246230268530961374303651111101345401116151687233205512302799894615428199480119797525361611329449684845243076521940887998634617980931522723206891417060454535653101245262467399300603135584885582268694160363087898445986486657299385811501551870668842315764125965234572683397179293344823490408444577540676940624317065924548915536633702565491054087115755547157902389599128178000628889991857664404573361764293201288449984682589747813379569626422541696916317742096746379743067897925260804602891956812343385135766927124641277004628053275045378153059822288436014654602703519322228071019189799830544108941565332686246166894824650793651153633423297262953707669028896415222433486673903433135104742727227570276621872084929560321336331293632058787310925442732768255043498002329870149812686517023750857581994062958075197562715942661268953598755806449737344829335713151245860897887492092431861180386552334656064365278719019244066148744612093956350029565239859191173945612235374202830298976743241664293672893912432702094032502106496306016398427153477527112015490551266065844184449961042824744397053289790352006219414079988921804675118800872112234930727988800840194665515780032308569925379288755868222527540720958396665821439008677730609465638895072224976755903788173204860161355985633051339474554589544822338047990755416027666553166981124780658592377352355751358343245532344212590520515663176080797785101447211776130108154034607989684386653369817600442471061187255125187999106634158377720257960947515919190961447202780556126883423289652146247994752841935351972876386292967316399969915200026318781174276014443170669902460728526911189937317826590733206955085607697433681167965089575193529452847557443137566572877811699960166947045749546787308170828764581574590513673464893987030477050718821109669299382675590732650053778864787753637568338995260135713902255789104806896869485446123274533637002666893016595164405850458944631708117500100994705463077099000739843110809053798493259097647214455913760368999836270206707902133146116374486116606541242446450191130594111479557826952719719530501363009141431190868985882925939028023450099745857102616205472956950392820580223246299273811609812303127440874349940461558374994464114656756480066943089187910791217351552323876364216105241303443871685590352587141721167487362171263076312722020303978112381691523304699346393396528376366973069528744069448529771219412005323298025580304116925995697172053027323782806980668356364822993127105622451674991226692512735626547374212853122740582954674778855473481733516240628129051184688831114123911521656454738018001538693310147198935327612872401364703705031104302199010351662657763141455618547179211214037086004154073122504015874726356641836359683340841478952768184185788321798920929337068572217936955023499777137123631799327818642022013664674981226766319015814780992669067352346597887298834339932794952696533289886953905020301266032804846721045648973532763731557139245225504917943899173682294758834246761805755766806207781353349291040345142464115425331812509024003598491002705959069122580214217742135451922507216843629435498835491119970612693361052948918018645290454646898001353016813616794550971515691230434973085825072066859591079209320886960884301619237693410613314124559765868937006204431521563646283385266285799258982835134378463230624450588992112166669093735770511134107018778686190760500722050724229720433925693570468983896460142015873926470136088226016286376609434549034674774160289254056959458210077669705540090120347254697759841249734024846572637992546162656615854505879611055857178712127855683802497645510917743853933645748970267488592446143572342437503170116438522300551112237696118408164835296457235516839720923562714365041940929529229830518247779735783109911939316766906211485548102458689206171991604390654667044372749659819542516688405491428619500466917721730161462856922259287586439842835383483329098799237062075351430873729327120450548622700054262447835318202986171362257801651372463889423826588306246821256818331327606410218491484098150087693589604493603354587854085219032211781730696102887234123096420423932445887429780759963129279091772052570222422883598914737976443764469270253031216186083090687908527469283056435055173940569787836732387540059776306938357957583432887023636513819610363666969234205830151029057630462613408575073828618041898535249764755460956236384479183845511882724020201283659735790720103126495594628966932711561721764782291987332433877388378795572267340525807253677637963567470450530518982342954517279715360288821520657780667486211497282126333131076043972529010932560645148753195229389691045872612076739911865524937415095327221000543607995946122153995786859426937058453215021787291385583218544161002152355829806933399578714555440842546334527210474721933574782784337866313528140084986777406645029117473946517530419037297442502896645486487576255302864074793057643006305928749016640907349393715686571022623238646355748124107272738658402945622504581781964944624016820611809290482342711160568225858006673019489259373455771273595871930633756996261400115765369828057691965217289168808723372488724717498659826706124482687349623799017782175502526584808583001790766706081054897062186280223845761595865482412672414596683279530713032600008966647456943682950944814616325930025390250957412544199212743968439878992278152525260068952998151875112344144253341593027920910933211138486079758979670045607967956592406201683301841942902784180537483643273837092119112186793276612920314009220800827844909773395657837356955659784676113753319213507566522038316894594804111077535635968940626511010297601246182621276135294199436891577968395708460061235777649785605104109388004542391959090587947354124908674672714184527857583265359470774314905986999375404841024497571285600194238582023001698317355116793931240732894189287985479590560007039721220703531180709375736386713412824602435917383171294668173596155999822460435423271540731071025349421119478561579177494324343934363927559586434720065085076126571020700559013565295808221554455107610246587348546677127430433162273980843011947175233605840646387467530454013879080357589877099898469615264891680848302840302214402019914588745775691694466792227103303483982936770519740535665049461678049861425590044944604874475172721860383010647958875769341127650832175288574024561041115345227252601011410578469058204284656225251642837859001432474850479435199692953225611553735665933894868622372366018766725566292248335303405471731106270329547245123153701253327654722621086056480237335440943839678639503663786046360857887294346760325464349377255982838549227976087994228863390153654974583276327613079011063636118352310746464098222742240289283103991537566708728728955038852168294341120906254149507394381057211810574580067093575087938132979689347706039886803791425281133077011212875636048517532573791321339547240443809618423550440315913139739181670728119481107119805935185068290915683052591535120738067876430423879950968636702097683707283181435050383439594250315206313456626193013937750557408490176927030471235667977408544531693826679710030225357224705511891755441870744550614070141547739097646272667538140907299790435184907675152718203136645969330342689787761251155818221633533122868126714386960330620633132412061727022913701866477759438321975746442648392440821036276855021554256626529074916618007511869189369810640151121115363931285065609044107867738390901414303423987007498745340380684594380411259337802136138196576592159324249826217029335669426739379692164343918839909179856684080131849851455535612913886594359992519591934990945555320442343846793309017518269550917038368142491262126166825049598369562218254743956538926385818105128131327790889907920008008728071768869070760843604478195131881675869836458928147516864743439149674168220488046830608480313134607770704480468918397399534413879641633053365889472814425251797997060018433326701724092035425843141930120511820054062722863825111203166720087426667338196838609812719565630581040485356519370827717821790005987837311750084965726917357746218065863975217335601758553542193039457332930295333597842252564130812579862379765742245793187406006441176044074442982124721553147927935683519864112361757204755250652367261499283115032718335610059168338398117760159788115111595955350011331053194039869775220837099308592133140127087290968821635843901525994260257299621184114845040082528202307684410284703936241962941073961651310157887358266087413187406091788799261480898682743382293042433530522516499856776420193918621564281820433218924051511209614840255601374989283125256019661083208835637506941888958718875594916051446937845317359713029496596580898636503970799179656183864836306213149593516521944260213619339561430777182479067889686352798235517846277463243130818363185519670716224407447243009492924061863598134666362727121713302393263378948466565205777930195846589757271294314645966920805802797908208673378138726563164243962649327152603123949187829657064976136843046026281399194911829874861133205978630229368451161036361953401573587616308646568602174035703146687043000272366796044334000139338326285375220352089955620651179731620253886724177623299294537208345520976391219334918598495708547788447188923684057424753143585404396802725900462194450504535979908018018222173462597492833441585840354619860027593699405766940807684373393207450384526509971014757504274582945315479712168934911503075566024426510729885589933644487378012113064931346371144530658390584614325710038142032438484410065372824643591312782548337092133266866681166557252459992331424527702927202206028975979762723197232926400538847147237110319987635219215855822526151173620832655463658825480061068076796510241627035570875266423789093321689603776328251026162890983114974365393878455074317756457449750116055427434500807469323611604882019801857950110854182839419399170992768893616962546710790906556848343702357876552065584556347598249224454638846986506478346681293566047267826456201151317170182825458559097662204590550207495853456308761590036540374207397739192917122226830749679007485592879670115149477665941202813472799784734306020627810938196606584018130630706767324383358262661918304643425530757891214644691744172182707689331512886573012772645761233148792579263211215332837186320133707771647870200186661742542294093865183037905766785997962605175700897495738224160237002654209242023938359739749169915029276983846488218272889276446340955757948114585697368956514913392901757113514569205146681561823148003352275410068808627019217770612645634380562093826836472407049293672295313920833867727695718312048345871635926707435044507781174023484338428421630915951905029825614016535439500473530438366911372123929370880928058830529723101607372899312752563486561228469121978061510289684269820891796981840658833687679352145379079372207484378262597551886840632956322980738954536651900083480672527387076449878017456221186507239020609650592261809643507630000563898579448141670759162542377536662390499268929843822770029904803326269217036637050030632860329592436177862389904839374376067648194581973058157270298254882685071090788356958586775071123037223113030650904661013656419541039783778323638098356495222076758915503207364597203188508686391846163050251276374655732991347319528424240122247452574332596134619452256034998787303187647994347064417833543737978220198486770488641554815853976016964475407663946091764814643732043090763875622963232684419829819709235581104272816197363885695366198347013355237030109262017209903265356417296016720683501562337303100452765104232946116779161990608931332176226227964125107566202817521602051527295652964276705296512636867421557202032697911314352364349796848115307774892522521414269725556463410934866455019147504107188982891000936606258219783350077637390850854459954931639577577041955364421091513689051272752211579275361439642122139572673330011302640060714849902936481774645830203534995798032436826104649353752238871121285227560925622113556863569238863612068734276490591636024886362223888225397767447904601064554664634389151259723935238832363488601086054545274397844377185871955005068267202883973205902640396311888143429582253279946748884416435175246092664805935459942726638912696321386245797304722374645976273320418475734063720888808828789998579502977892417424319989077745619943046999948292341189280010824051126971248155363772756240563305074563887376802312784988434830995912312838628214404136427704949484996137613065058163061705534283939279875987297682324044662482818562391637638613527264434603312193497119831291448268456046007712842031419590288852655604571619439585244238943764525612910253826846538106330862189010755516271950255716342054107107432064379827371538753916306795725546163692445449797404034668568526230031220863245066159894168911659094543991235178129547321475948706277897579606874954492224798418683698350485797305781652350371523381189724315725214303627681533807200190462838425321252274383984704879287290986567700212906230730147503106470393048387250728433703012088735953801275378824825579776635503278239339044919276377659744535357870911282928759235550035433681528204012138303033056267351841616483993282373892840428746340876929513127706598115940484722949295701767623343997652325063580185917309788832134881990424266602894560180255135272749179594954921529325860808409040742881583837425370071940632302975838839437482186010760697540348028124782233026524855720510809547605562289382325140228118564298900537852080127682122520233272592383598298329751733896303521848404109066798114340007700791338238321968534655042016177304515453495777608452740290963626176702139551768898858401971272920724785251066178783637994294618863477193971433672672465886192150143632042047646185058615927043207460942135123096558595566343782386227581520932195572663461800375456740178157382385447625129039735946380819393112241020633869904382392518546056088829409067731545593525352549874162255941764413268344122919073902433144517324221087257292862902729762247254585743843085916162632936120910461711679686515370657295457312203143007186948951715420098529786713631482341090028156780764536743137996765832389840361422572945336266768784336362051559023709205848204233155366376086332375686592829156500290367023119863272870977494962233520188887822715686053868008861947953480347550148089796279550940527036028992869246059840126908189824531274723142566956734090224193095927066231709282989480673803180592031155534163896009043271974239008505260129947308204694003457913807296737746425257521907571127642578605731198014837989624003219665042128574793797551028008852781339659552788405600332046958696600787260092103253309792007190710227504887578870105307761425246115333925955047612738771466722324462497133373859141334785647728268043440015637816253051851276627073252842562296977569749122128576685030788351469708860545588515417817496539536720161765688169020009830568029229353627211140893853924249077145690846347431006527694688662243248591586420911452746527658858984128925114331758085659200349774523866208437151881528382259399041077145858895933232767549998070994089429956704286724310816822922562731565124850674236266199924928811287439439909611213919812323301902697576256601751747777037288743417400324699403874454408272729260826076938183819616802600030536301401718040351488260399668968024897025119438653208043309758167757357377793798442746741586223287221633459850104861945470521726273455814993728790406597049087050672419635640298880010354442713249763673766545230660115744355076542858811812373149253850101782425879415819251707340351598312441751374177691423021582500873630617317408712536057664606241670007233602936094931180138423536638629945702257248375739508023276342380240148293093738786111535052932166978227577983283163016409398742952802489018930844887935385791463044548976458916300033533863544588028271808190982953313574826552987934820378047959492648667029333642708234754983111340524384906308255972125553212327980901204627987273706049248852926349313197498116981606543408022225010627669206026789733928051165130565302493768386490894133997021230887155958412866207971338024057636778794938270179636412080274121741921576797988242133399436483020753342589594167021826274036255794510740373426479402290772813577233012888496228000983965118962091361968293067335753574723988887376031080482468827924130188672712312982586193741670457884844196276240793457281570672925305984258216049931860958795052360734024345069676294453951930447216507171633696954185163417539740567937809100114344958587623823098831313381481608097791448291195974967906653576789171275049522485864256242199993819681064061293937813053739163625813821515930204018794088132927822055641976495701930299377357349110588580203341901844543551065964477677948460964388414741999056624183261077132324446519673702414678454349870627735176883124075410135694915592157966779548263665057908220047527185786233907953753483149529909601071775108526484196217720721929798721583879816250583542419870311520408494902353072009908449254963644529299864988310407788955947580375880030216267663976966186387535016136612138369374057818002168974512076199616569287851871716533089415331386778447719364844473774043373573357543276462115740337885124674288332993882232580998934041878981980979603203790402703650179579615867724465545781135712449635335446905150805344897981782880453723465495680652188529227822419192415699235898078643095978134388932476099264465375280757684469436517735439857318996695865101964384688441436552626825033134188367862128209488198842630532028790681143660756123608317107992453959437352499664526206017818473047435317296789588003552494001630371070197167192932268159247104045305059365047877022255329625768794131035603143285109129670477296748047175300686384455837826536359579415282789482046844119109084475091217889306690365897405170732397802666281129839794407254064133221006944936440843155709343408152557434308556914459289491632312700280131561730208322808797676804719759117571661609245545096641540204842172589119146680793867861612193265887770263162413314672819114280942146053838032661196749644223338088998435851169349392342321270618811717876431390865766383926383879233055069536187722466298607955091307446269770944218368920870977792507997780227647224834169749852063650587280595418423550452351784308175799934935632291142102717256604698876126810876465007502707457475042499356983878865851043158754558674362724427890575138702519121885271802659720783453224940713859323600096126382744621810561643567649084258754650870681525151517959791705570922200984720007459221509186314585305314837521919180859693459016020057768672580954862436513868311622531907601628698762961754661160541962156723836408338893786957967954904003141801333408884995966005547293344424489735319330456235053671114380429682424422593932068044861207591396959893452381167704352083424086919293883579637339977324764713802906591277215355966751520344415129167321970157542392737110524059477379172153030654388695447015619942366398215255943905945099774474180250248281655134897132370315992735582935523517282049937425282511393575045126051536790109114627969856256598668087682824542032768415298916204205669795161106123868383581924393964726027893756064056124387376401888268303838188842326663245232414275412759210868300482794192932412819356396635324330993628512223779942106142653444115024000916367913746453232609563657834963145395481766382707464710191416026175084878482241700538200908303983660353522319868836176021649149301617523379695043446923335629405365299395039618083228157619418708832972238631095742448390898016796279340297469283370166061805511170740907379569415664981133083750377086143084904769745046961455042568635892806338904509526438846645517039876942172169874219271642705972292867224979456623192166984546279640114064133993911085422103026491122347879527370076742194174539241054185217397971857071340481475340220600375007302911445511271600109837673870614990276146993377597918241997922898399407432097054784007425681926345549342599992168961744973540669778760405853233969802811176363983315899451664578081052449825210351062509870311883673165401230100392832615263736851974649565149294102122221270764834908491408514101478241663063458532796601566213657516296807959708128558673419342964807432275038860445893258814725557006138356132126513778572459042303655348702433484913649071906813079113605739082699031019491288470639444695711054011600084100875620044679720116662539054123893244045477221669852792697270726589308616295690540117948025765866819393841743695079856557972517343739299309080577036786701694500189468925917066235457044212533230006212529797386133340928797849880669310721447071425132152353335508256442022987133353174906821769037959026897320744613001620044960690055484857674039869616978683361273590402142340051978474268050545696540813082138874301486732189859863932161596230072958111086064868308142885229339141130987967104196788115185875087738435842230557358301372480449767531826402012809726904222604013710272115495783920151513353222067980139235678681697337460503438875176836852542889760540465161536656957817067802764686535163467173784186345996561811813061294639714132773274982316489522409865001723199582899222464522003741748108950231538159235099730003409478322700248333978469139562294841248524643059588746428907090979694166316982081358488796943752549457131952761673136575847926376755740193291767339043849250586611105361196495934803425508803412017957693358895645800662602475140605140299358086920636601234057563255978353950079959965970429533720786950280383744760781288134571033533077373652039626749389650726012704068571582088900043258673301438720110711636449898669623451136768405509920073358246841872424613480092576355297311959104937116161031546631533649068150438042266264587723667837937492560864697813043322356808211087819005307265508880280669799790941101864266403428273833161675953300193688701169286611206444877010912836539479174822710146976960513953833449335000003583702734675245487022193785502140674834555885419125671659566696990687314918394263690114033102254022874491290964735398504681089029317259425883281660417449854949584834412058957318736196638622148940469091331862470460605013325888307884698728768232659176518433929222684607070501343042248104313639156865398148139020885097885559850713351528868305903360384312292548524974495758665971861686098549823749101783165123125593771428716277228799260759987810220165826754288970342519452359128461759665807273836411358161066608726088726520087656151322906705713469743909390409068581458161009358232989235091651212168856363534436416605960867183665337358916644627316272192268309511800992765995161056849115928308669990699327033940767635789775922256615913483040653635921542905789876496796351504875503547850473998224607040847480049316077702633476764306196422880580011729494688034269731264397099993770297430408169170909461881698939597517765860758589018893802493473726341077574873422058548027188410413183943699415545965045881793587355067166746500612843621214431395941773321155627786165780925183800922931293495861290032688302572368437211170771188808491963491115829131301966589641702686275148987910641320009914122065835908733375904154344806897251134684549537527766048110596640391251845532884423949910834144282056210256954254749359783416710213683243090521660859533433226743122378776695477051405253121315202729742134258767990469651388677584208556074934590122894275585872003893180641509650901609664751220275068955446130083329600927960027607332855384688446634414408531401502480270294933210982073589729698893464206566268722658237725650718244478932821452075398541232493374538235469967093016090497525940803447544733113331081207181964103056369214586565625809471999553094066117303607749634309342611287650905137859110893018139607210875839986364293136293564639409923634281256399708539599610258186456491616573718868883357950857435413900830750822591361859007576870531940847300584487484696157716699995989662743349471561381986010160865507844486839723515961679404552666401808393563382503571890228546415286380632250508055891549330215153818254135997897799385473813173414724171573849452838504025547305275762429091118738424714667905432764314732571625740864122145299687654094000316583940034808391743360245653331463388633656853830591455734781080565100887584935444430746613713218648487057603149746890958623842708656386536534675987638688458356788034452918908954643679486678556866861960722886202761672157036457885038965296397102450091446066841688599007544273758169201573718203228612592003247746178882406940773695153209685749308665773297651398262958918559209239698967824294130717533185456039177594224551460948532272936820083571565652059482948689146759628718616007175866276943337284913773909049570141570161590902901927619196254444512913116531711392779565179135835907383743903991546618108532110852457894446235424342402335111495900386127361124055647737395331130607759228463125475478268239366813203088480352287516465676405906060072380748882025125681184358761072221682228780154013130902667065344223170690033046479644719952545118467432994505854341591874062119110230772924371977197282148408440777632971202141307925749139286518325969013667985380331698474400172506576645952764073210327445546689927752417301538353365667840589348384151975737567024225257611769963194049852448065969887739343741241911913179670131892724135244428791473096165410529705362054121075590410699456339395193518517846257836834852419132822667000202001215724286155232346607391238860723395442527489948215868719190977942825146696924025745924864273560537974345160984062941097866972217806329287373201823517725302393659847386095754244618369124002479212933700324178546757560473085916498700604316339864166837250889839333428382011838207984304025109954875793378664701890527915722288156160970482408884773407981753643947631763102171064964455226749693380602065039808509416056121695013579567915250676693261523157898470692733584150992928818800939131408189460607708601346889021586929459620135426794437499092336973317673083960198410439169627512620827787286682639064823693624438010511654523896864020674568841776511973784981812493166026830189640495074180494536011606936012528503249655287093618932046072066715151198738971019320850615406119038693364918843201405044176687170086617922896416487606964926148329226572918534092889368315648690691604357674614682066881780331397929196122849453191035613250422463590285780463814829427902533915250583790880867058291755454694551421052960693867567130615369705969848341816300508864153302029142929783829146078463355003861904900373680545921397520622274859652414377550975467975574953594433805064871206738279549603020779377571666304604938113516797425379889559127081687234471261422137564640056282057991831054452127242045555735018207760928351414945774127567946403377556005235259248945644734024948946069892484454921343864504971825615801810625458200489273256015525258194446179820165805507722440644564263368007085481269370870493300613420735859447506224970184688520960390524363794538399471841427846526073757197921531926753652154810753266860166903429682204582234376059769257627571841112058158614540914350865343411651169272507153213043379715477474617620056723003692327659306823306813098122981918190645401749965189710157606150937476678269711804633407674393322958943560980287655821321481472908968728294180488419571285930127181605579465047846532286940885168975878014209550793694510778084138719324321446566092520583156338034908141298647255888119701411512288777329724495999237011009582487136351120930714310743477089296901765222402286809658980198401182654302311889071742669833467049602421241000588256585682913708389251018092499094027310007014168003748332467158102573895556509044585733727924397326962466824541800481973386472041025939209187413980114457125644561950306778796135690529006689557004116495980201203895389055125133201441884978884054270440977074844328203983749629268997953059128271268999532646993690265998809890585333081662112556180985368491405148605452863266516101102234295968162067506705628811800395299610690869504985766075974171631285000015831692154945340327605524382783846211829367050166126568855974407374112246996893741074058149536180048013511400567933135261008628769760038759398078913847026210618260287707270010371426886022178639829254481279070399085160673311355857790213104127436093180404103494805173162698454935896971334317752386847812875559692469940535176425128380655568839997319512678753973524688926295845102523576415595031837473785830474103671619655176308725155150356359177256708240003712239826902169415911191127623426296600389798994602544443774733344649654711134245248311427125560373562738733976157226671898968805937994895277498746504792726724160971930197957927162846961082752742831766993740143388967685186335796740799427817739344929065173178233190411318779008735391751143490846016186980096656094167804014485367316733514610195006747550774086895095837908011972401779174506515135267628934820205473614257950190159071679282509419438055214467864133425644615782480083881449962634137012781873045912314049597943460210923231820695276702965013783275194022592700542283748798610493094984087096691630590963050360667890040055104108773724854494584916935879671004206239356235568474467642617828228481124351720271934913961232742570219250670720480576245412976132087156973585074359592199021626698569358553545255407603780551804487605453719307556365010710879257997696749908085581571675095434248314601050486897263704570997412229089315950583309142772827713517580820779612677679196438169819715666535621211067149062123836215224971555023573618693160590181941165674158438726900157516426662189831448729073960113184238007385075558362358765640670506712702691682979210422294624719997039596707570595626953679056490858194144820647236359535888721126421382622518562468248332137281642910318924205445055003746167538715298533233049712148838165054464198263254065127521530474232823854161148327503463234852534256686049074880486090886050375524815730356634948592033530072189933432046547312618561990598187252223479677303422944101596997845076915614699653407434757201686231686042830753605246908137662017210449657760341030558903427268094192766097739364155419648872934574944289284160565392980287754187596224324700766825923518397913761607308581189193963135047041428419522750393334645406811967164617441686449258944613217347643756825876331531809578226254031127754240866996001025817633604202039563527532980838728475640676119630146988709971881996211672503360303464015677742216947418224619172265191093534478091335426868118859870309987179177908850457937600945691817998030336852913883359567374068471078801864628121880542959472566116693402507633731573191763584154898076209699341744583169849910302196299040077131506635264737374322375384689265346666515218728424008510276452424283594808712895348786262918638214600903580038358170666272327350065255577549133801030344004977235012977831116745398770198580032861360929639021987020730732174390157231033229328790415956781229324080560102967057545216947639889493936727427290969018974909843367842976016005651137426325790702133444887348796939243550643496603406352879545678513790969220880638842242818908347094652813789680772326773160169382284055244999126759334457978726175714685118715856185383551923174146065597495140406674043106521710796057880801314179057227428033091267849352106585268442640950669632437263124286056077427984478959619822302737939618422016276915901180210217930666387921225263847984510883886893546906567377071575305830441276828531218167641395764361713138447952780174985283204029132188312960532275922619807661923148908598522190499987176573142490047646268872159126166344566927222846332687183057388795404554688704903728269259743411447668222833946708632774478734721186264110628157892532593358284661165929717601537829841559102311282981332255426509079868301986266144611665362006988788000197765166428033201384592100720249816974920105276750950056062163800211879783111340067509991017184436964732726157050269722168963774008220078431821755099491651248382572758542334797816529128296185341243122147475849777862773918347230688786396043784191263199286950318517509255654808134731645846789040609267304070588794469155293248773548437837161072104558253818411618250604760229327994265161530414025068913502094523359794542062030419634980178581209251271038083152124677296195026262348456803673996529067992254830021423771217287048083852077608268100662225565624108657306695254519679056292484522561697852418334617067714687693934746720727473254252885830283552418449400398680776481537924099416629920943390828032665937855045624806127470817235792153214930023980468618279870770926070553401835004844695360171094403529582315206058505896545170986167597626802228166019569744662751150987590937420498317721739438303634915107981560610309457953070741850470787272853319214108658619592410515611117608534473992345158220541847940649321528189869133932561987016079615326152179525476772008928689335133273775465048926505208724563314689109615207749309910949585201107663651147653380757701368136197305257405366678246367794945321927304768025477543795657524527200415034037092341958149813915516563449476887174493375145262973191582346245648036872664147278927793385229289964587103663959186526091623550175251936677595572607391894668267905125780394172398321415059123282219170308021583706238889736453032011682620772738403399818965024326768380426905351809916872927141139865952732509749978961765257473363579437165776498942883399490215855901822758197723851181480386805421226308474424573418503302582270816844423611659981476244331772278188773423234277459808372576007101727923541744854935478209386127712330298436757983519007031942902207084919300286599084266386292928713985257157151262607706389733836137279599592717070612730351440581869876978028147502554343288419505241118249332788034641020385838689939811517985615677428649252252493861425948177387656812036550143018812675355587954979145661794969213437595866420464991784267549295357846773465807251757093325731509945405774495738966797878201616370600180588255370749772622562134837991506632220219046594420646205220515272110676131863038777103322103575515554905756704583376691288026506462174963895986536002744939415985194324769912675937024585086417926597294236294216990689563845436675987416645518680716683048206024766197576877940295879446092095491101908872220351961275372203357766423972307809420274438591717230458728565128822537227505760826304956950072279911678787628820338928554580655924848646988712525260741732539562063879957281598649088049505455420427541597067836757249659605595398500980700438885931806746691507210585849197111714420319302947348849250669141653852579405124980660795576775681530727892193148141361708890722540472489732295298452136134848616801564806415889726960924079563285366617769459035144044261755843791323403312353797623663670651436750168740800447580377458887969220948771349390669243123147503063227233972484339094200855787434172416243268038121959857667244047020645840230640571062413517099125484576763568598083640218716281516302893924697884543024020718695412659258790814820884142539949792260223436477058687995086273943725370926158832614863081886875709247154015248940640085826969040235205586645422520849940198347494728643664264556480997551304749980248704688077479647115382018821083375932917315139589308232317555530320944843034769771266000567152260721444927891222331263435509081846588329227602093037158580316653715580293716604995252533922278385504660139216413070689294048808905563224187814205739169070821878623509020844177744339247723807141499476580720639436552301091408758609574510349418705452615809027415299975710939934263378200722205034415409160291320898201329497567356366290121815168709719235911344090021507151233973501674895891739044858771578829719078006539003866459410364033534048201002343489045589197891113966594331243396656820031673068618530699236165546030166870089369651539349217294734172920980752402385897013206879071578928852169773262460302417008214661296869687116300133679782315797742515144220326792375934762896876530939006183480920172256816658019442979051672094574900310483155452171575273592840805283154624365490811500207200254202776282246669158429344798339119165696902071709680456961847698286145490947158321622301134304482410274054270810789417287355134821497124123107434256389952204569493082909597150940481278300155816806786904236878292801176004010196491419147298438890872322799187731534720619566268747601671778548887748993866577476573481433657651126282538598532337871299182365803381678125941323322188543976856974720735576756357752426000041132207747738827338633040536451902447802274895360562939985001682187007954411136473208682035983553847073359194657685293980795670404397906369134696486332884197754509264495625581368437382240794217591305099629757794463889099516164477586144264890360907663851142144151225675126277413591004002017810786505969920611596998065884861337247239196275762698312952147435408326788539526193643877944133069640252494127761603478292066215990358319880627390741740676460639433738486462966789313856736512632373370056636896329426380739974202944636597479605551002054853555734515971918407133370947329644543477680469714306910693788135599825158627719254691578944256401221275600472801894776582000965087759239284988217950339725558038953863249140269144589902586901080123528084537345712553209069685780848445493615705854453848413103941145201103167323123075020944758989446347722960491999240771848899918095642746938919254480011302795415893758314244710091006677672294948775228920710535705079525079432028301850753922388972987710858071891139747038026328299836603872544906356631206226627370703895700534518448758251159375727764671686699936855060306673999824779663422814757528260299355751994189965799635438026069098223490014975178693750636677124584471853727126778841695878693288206798015500937917032247202886716037072638068544680702773549410980324539577648821089091223454420747947278589885551979100764038670272009739299687450245343432356418933978181918338235291452119097872267439266241951975674336555269803923785017825715593483231314617039402841966883325994870887983661645683612546418196567785375055690308661507909597688223817247446700828361141331100967140541188651170374643804814964830518922968010432699269590156398421360593708562578582688963019548063167871484670135957257510982136538243841730475280109929361439211306738363371281405869647414873540107867622184505360415543068125055293084566651534270304032870783108655790763095478120060089657290037539578069071306995407245611781110352459678071081761874872616959125913373334809117865645644464770605367121643978288198309486427682667955507168040175437840898226324804038247497699587227134963850183656731460435039089694179103726882901987919862392345359049984440094590811418953265056343557871854091488493232514640974882378705387993923396194062018917599969938936019583476241919351511879569188901946899357548106394032530689699753834930779613966846261555692069194517725502736292735722573314460912449157365404038044054097199064616310121731891149863984016651482938080932489331844393638146604315536914794206176112324448024149921460571495778938842705785622918113658567643080965728276924745031857397067560392036283653090587363210304055742366529737402109691636067122765608046880705909855648806130235326201204982848230389743139733384824714105837504977304359151056606629311193325951099801710953766062349861293405087789405501083077898611581225308870204370242841331947710348148023251010817454545372052768642582847821536215185327930457570024167115053022898015705704917900522146859549780661537692918263488366669615863824633875144909644619346045775967939688520626377473251511493283111238208497920229454618259835728770772023132411368973935849564766057307999824629040391117604662181602511695761875547480650230289816218233036500708216057136370779372981349482400555168668294714229561115504851443607702731152181014331829775723359514654287270293181186097753414868201784007526508843985804845612679756346603735949735457974897588138586177473400229539597013296376976078233288420626178292299243810422425474860481246823094652046252488103829813069687235957886348072656299237340048090855351281834687377896562394026381934637170560403532014322471359918836968768444835110573596448002011339073975944035922648268837047231589203860920807001785600999981332904346349160796604868710697238239364999140654556611246984162749245583877969783356803863896349372451817069929985448536610985329088873371019014166281703832112573508418477559888067443296742398904660135582810807823934044142252646918188178605823065016520655796272666608244712050689037104071502251846979429043699903746397203200682016689458974042649444897899438015373998652483302644478284916408375436748765879899916245195442718797307229655023040739720035924410845215514495056798006408500618733850711320731020725911995391604540554721617707212592661494709091245473257466277060381867784594632511947405840811146556813698126612156757411169595866916149597829843550719665790245665662685067312646502589037041832018655035316649490274821172545549760123691939364084071964904507223737180827812429178643072047123559115539984758432835374245025383277293627326309641064290903947139823243423792181556457391021603855508364975166531684395874804146870102152175563555094716491503908210335191497216345004181628245086313428357411308834201975106036522240065434568419062472677013961819869801392591244785115301744856086335410820966957531886026702061736781012441760106877601199280264090801036313072127850082106705135426901113768784716111419440868390147419746485172028147569788177736116344406213687611726398288383824813192242036850062090267840335165958618453312157714020054000590448300088583510808114501121337140140884284545580152556099814746014618474424372974612208793712268108532728842076941507746780294657635946427625557247711197444678512160524232114192074195563716849320554565445100544323690448653875808927108504008169670820834504940677650972690780187757794847765398973326208224812101290599807920958806850698621066923907129429815018731085450284081613821659960798081289510106558040655765208273165517158415104790705749804987955088790213650591548140946787341332372944109653739861210856136382098633617961729199275698695101909508237916332462864498262244349493914374148770457996791196785626488766424480546230357124686320310397075960739106437642218775505004346077578943996934856547618511861483417314153577054109649446153968020908821444099843438670464711915706617110996107025377646941952387036237155483112958819228961280932406717158468485976823736072668331078166247407662555087068484507740994583838454451537087539879233604717594864579459382006869547066197201957795237745700319432003971441891203394633699261396820409632351415087862527533558762328149522814172510795787471657046370699368162206905899702588894227413894066652462793399359959146871460384335801054223691299129557343010459855926830015215449949857764112786837317971784628932131953402416050591685482727237336710181655274584888961370559818489603299358979186098777431926646740176659966306363164606823084696015143428249054923436060300822102167891597974217137548949168348088893072331333564083374784639496094474693312956199039009366335613107075351996297598284790004891238962889504969766011763680520386211573188615300010831261054539314119174160957217570919133620789540991210267130873186123617908820211495991315749453061484518734921187738607434520930307189422787670844645674815794064710356734651754390286222095012221621011139467045837603986728824745140159357989169327897494085503329785503571138072936507181834228927350150234251896646939597140446222755751709616692361195133028395500330366305252193459396510113943050164894198591858441788566145780779300874411814971014822473815604825347701194812535888568558497109533469789035414366486986218663224381970599922928187315625611700030645627696492110241615723848092280687116512202476758468036945208073431971114697541099204817296461762148623326723828406987515923519927639198696609123951632097970139553197798915937799562192303530830412434590373686420462959637625142866895266782980790079900213809968992967861747500584996044964399432003255647631193186257805479691073388396140877326240204230344744978153844418312827165719021343771614855289394365419288303533153185569247700585144850827575550225467508179498052608439805667838787664396287592152644142519587744097673960977062487368632906568624834275533718790516525038374814312425929453111550909350564233641817696563376836144741834548920723945301148343767503070363703451684700727260934441862014353182687394930647787268416011251573270305411188060498536129799309867672589593190962155842365425987758088564095057785946813895358805826611845393045655258196367404896924067177333058410199477342298441475369306062851593574040802789773849565551710398640871483501536028430837310928849960795645916031984073461198371602695042369188257553268076125854816093982993962441651346059366991424177826561698584250807770541511796735163206949472044802016458150897863583674810255850545878626503181602764961448126943446547613654659330441841478120320758720914285784808971702090615805441041034022598879046609579368509565664633386380829116407342543068240815270253008570311098737282147520711594187486688968572540780443594022072938967435103960592132206462614306474699545949815411492328368132203524880220907355237338405322432239870332153014504457720364208821377192979322095472898080292526585901002556167081987528118065313696927138484662058627205008412354066246675332358450308715071142202836685101244486815156454068324942192827244575445265832365571705703976672077394209050787628707736737883538111389807068297408169072533465570462429328222217886557455585914827609387110578037386876269356941690844980178827811987898416303961991079007542306621946700601183920954826147927773111940294152703697723788853714568599460797794406431647270227927178244500580554713913825187028140449913872537193292465113230710152948420117712774224314131062838158192482063712578570753981444219951523655304637854425819288164997593300734985707612666891207252057406198644674052164626961757517866230119786224245453645383219479607720937611767246446692400851470311714186166893835864462080335906765930420985463924471781029048902232622167608158283393023717797534453947886599669313991610917745199525379481089471414103465693215978542202635560327435428696645003964414769600056718022831993935323018414378576527553792026266718402984006170070310739701032916912179294911093212165348137830002339609086020490352562388779846775672297779611543742835638661745103265467803789267056811333445914929062105088375765796313354562191630402634402591851447725969807878891311153894869743757635587833585572194785759864698143535800065140979505930688097867603635028855618527414847476795052166107625929778159075134289945918597909876548874417932517977104210286147854971218541100418073205750259132563049655130333959646189267139389844143392326681876219241269036352085272696621965331130021492704616585299176010581380181247491089980874842539300473870025525980377383637433873029057726479833392932826270980387123177584557136857138069289374748459977081034163790257518184963757248315646827119110564561106837772260489203425195327600181207664334420766281441987669483643398133470250382713802688534777508165516399561437385754818288705391835089535512633970549109396901986497026332348217031044153444612428601176735309606974754003273805945737576828035645259899591988049341394584044138156071474284116796213205461795534606245296691437360289100316341928117542522841663904327082761130065095243261200936176888731154432608541121025455046519341866441233500427968174035601461161739220649466132295074819375972572100427301119241910847611939320521173360843297556888138698373834661749470338408880050807452690783951892859425772875412304505207525392795538380110464198239715604737788520213839904812559957890545779041219839210239245273308351263515525146322436820216072224358471517207634617406874113159711247523529584403711690050517096919756465376254729903599410006166190049494885694936992050995649784305692819824652719818269852198259173081318883352432509092831801957658687784194277361458890892034587502509760678839189814359843521658418478477590167593832483742876227359748423529375750194164556411266022414402289064034434843215300564044804623386176059552325232462057674440040580887697978905060042000394225848852044479208264227750856702984776600368131429820220709470426509121084555416483742325644832458152245825436704879654635277117297342377183970708258727167592369528604664775013320237276336847639792841903728711710956942809798352846694633334806581648054581532572723701208131259351539171201951431317221936238348369664818416430816616480584527290401178884241329406544035391750495097818893698591670543964858298963495161983502442937577892546413266492483781685149392625240788741625288589524397471241998152678871075852326056282560874856552596567536215365767475868949398095353170996834272416024335419832574681638367372433691596101583963060725292241052042578952795497978744738430836494860278372382444997238990497928457003781736172504299641169841489460554177902545221603031945561466663022957802173638116822332804834418917712873053452983886285154358104205758124825375670941999726353755841114868602492038118373304733915648827666279553973586050023362660556645480477111327786262332624195889612715515786010762062508390990481433821834204382252304588544031208993053037081931231771788529254563458820684067499954145889776491845692366932390428475670604007186859181213176975389997926910423643278598570637845495045436594510027085835086920309964457985422412206368779616757108093571918472264291140314531412960688465011748011660730066324483719820906132936279094737115048848825547086316159434623772821475590128606124557197928317413134735422726786053544697289352451998352996588982752719916966361051877685514260430065971242943781977265247122483893492653044676187423005343867755868539186068081039640424241511858813776390256573714309702040478997940169291902996251577469484867458176717170127093719182090712046222891932748276180980905756741788812209857666689853122494311367363289012856258221568946101714382356909925607061642649943391183407901503037815053609454664681584452792507367362594216154064000338111339106942808851135966890527725842633761648042045554404659234755913933561071685181841665340354976294124680450107604018875061089692403253933015432461093701499732462862131817339266264518348363490289438806523311396830865672971915112177161877172238923891019228146678369513449385352905633381337178343297061349492802290408117323993570273598762432993410150088797610322587315122010818313419013791477600322563897463073523691467675805970547225015238200629755772459616803474033120232511160393173736168811297195307214445962562287499250602891911820839550654202200612487620503782274009655334473878942714188023650854885407118172701736461677139966692819176161855073197310020731254060575528701116769250728918863477992593719364174242802999988068613006086017609624445887977564311290457523124977480399706732602237981039010806084395750689877316991268386629849556094787686764019494410249296389551049026454693695627714261326627436497199945409503322959775573137686395408186442994554628224536096868064198931630806226549277660594591173246140491353816640218144541022492768825115510846476457994822046453590787893349427271119088106082241998232713341790292156789809631260057332740318870425721815244124515178544370681506575870795944191761500150698562696718371014554661652968255539073961778904180059214777288326300986622139026893571412799075148704383920865822206340777594812964290762162925233188596990234022662035655019997101569067577399834381726159664881181444575094470260510643151805274504955657545539693105827587532047102169237518163132788114641599774604940229713386403610401498302717115984032674719007582031704883069195030198998313584554822239051725561281238526221034763659858024015382435227098639726662341203447867321421438887494496432238930224897032587615478808960639808959800391325095544546086508208324700424372411138236827548609980915892777056189238606221338923439833228988836846943884509910500200084728839549364427960642057165790484547726509170568774522091184530662163063843658158100766753627117570725162036614883700009782994811346861061450696930672733621958235257456919610561295490132649750322165876624389713003127113181466190053531030698406310436692058272867788587005395617781253216220607258400597091070782473470703535754681757396889916935299679887033654128832346092909080369458262608433193249623714481744685770235748767996870608157935993908836063556045574963926893518572823015889084085933853454734273235526949506350040050999957207663465621896823594202167291373648703357244402253942181388401090936277937169944472103325604101963447819382210669592661183515999564075028442361509669040327705139278717715727763598889832131772515264861082432937866931095945571041484843389951014753953741116991153231523933939721975403889836820002596990824756371453002772995042662336841523384683644732173125915954666724293218199553940989436506890610088843726017551350158449502769823888235654156032370960547644765769675474384070874315939848461862202995389803519198790663850409037239625795514408440724868638367879832893269318402719018014920846126591038237690957208504130056502602866618601195062179270750329950110654971098501856468475434360921415258133245570463265449428662272742564608546784911597413979512360814761704398526345146084290910207290527736197861089856139178116789591020778967233864151452427270088133432744555043511558082902507543479541595960192763328386271599828404574632805019568550474730153472261022767606402530945014223824095175844074217745001414323724754505211630652266082008796534177130244521264644294714753343496419195913308537180069120302657098507415955987476101773102080656935476995756415303826461275070180776557240257965397904126301407946721644782432527028598719346140846755360302952579899505329679486421476809877611109849216131913142701725612573299109554300710020091103016978592020801552628237899594818531527368241081022610199812076647186442131786740972488176840240114160366965424685945677890615191609619867630490419062092834232751164741710680603991888666382386586406978710092478489624493533208340263449912421780260222841434546902147889726044611862948795805941183274615863759264061467482645691913415126311329737259854882252272128580506347194238292154000224872511521920989617589814933936964691307130091562225032483673898413848519004539436334939477149143360547904527213016177289883090110810444975506326159210859025305436938139273551107025447734982436613022015863774956321161504329866817997237365365965310812362712375685779791462722040552021886762258298917306119267134454840505812265825331554811751309953168773223757357129359828057411816737358642927061527643150133617320039966241940781640334103647382416958060699363042963639383470190567297595078562783069364172314272027304034555242987779796837530122269256304250182744829505961179799340187496289575716702907811344398457637685652509729071619829925231008221306406651043939879315532322087614743251962566610316633483679399330333182874052635657083437303055085508483612718386029245926983062594606973157924032158755868396125736714452474242149178989687876129861211815564259701292778139159758974507058917835303827275860322685513191832547302353927745163790809831900196457611858574499011301644526309951103101129699552921309132702578846200820495032074873093725171378549700450701246945672106643802200894626780362571462784167363018006610376374995409059783221444214152271649975163853742282543137893042607501629495177572189350869239230962659310830573710613473998073400095406903318364649638726390688965539248046601527422681052425946803023115141025171105551318927235954319402572065024892922345763121514650428936109539216895256276440542145212337812497538428489915822219968878272152980849260793433847907124145125873949015181660669824148362403272544823389281397767602347158529875761342245343908269475964796379852343506266175053958382294649788072725257779078032562886964473390010818275418615532092453281029889194534232130778262707146730655252425568063434474016474935177921177916669365196379384079258056634098437674022712563526706994278800045566633546522169755431382267036710935549198653095489489937414131994097770979327311547049369240565467287223993421400083117449183304312684282599877038836865738127148084620443268775228843279736036109886131760146195689752222940578614096016754702082965063025219831770117290200499104248398922693956808167637437887151000169816323147177146935920778966283973368197587807085319776838158878270127876561450365117444967410901490308641643416419130047344750440156957833529718136597761108681406963053009595321126357859397381515132061051108639184558110378467995725711006971479644460359308962909959166970490926424952239650035265749962841602652028308643342918087104033448595381805349287206598449203560396907263226476211564807900448510388175967285700222255084079800931497030529235066189653950713450899970254834170825874507687235985330827192471679627397803235259556011299149688785729235780306329063898941906250698578630609431530917864733283429642630028281012613606394094880411505629658265034482153909513239512843937141090647777323652982694728050949187429043945998290109851123487387577961076415591079975791091357638459145150095135266067313485308376284415067629657218420951682374610962432180543248789103735691509084560629029427933636652524255135582399188623220046217871393451291871777076115089677055043572649385385335528190450229250752504496134151217614691782869290826616705353342033409828605883517075669947209288698065560368501439013642256236068614996229399309725144620380722744446448910417974815468556534480993955920175107891188280798702673490661404309901493230106300996892533189677115063796045241305455930299374643005905616017097881441150530890476044735414867669572186602804777441810953549958458531012775006589611182343746970314821369036361256609630038099157135884484958677752437443824180586828484845785077294008420288532209812848116649755712518199601332508272019093129803104228590038264498029726638582745628555711718867641118725724230137784602218533968311227708344424445066045241076137358433609895799296321617103538151586660433477290325352253979926307371836906187121591568705586955499640242725862310112936523648247389433879793588626123656639258771198243443676743987924790642069174599536258109155540219796703530376821391134093901461847049750244542779901803896826249383678461702894022399126484422565155963041893296451467677338335110893976275897489324205758104572925072607718051271250594920577097895923345023796421867626485210483952568644684845909020817768991817649554705222458206807154767848798532842653036130587218537875482570255379129686661331276103250705933876271238474952795868060989469511411500540453271326994061915766807786362825384315701146944783722170672245538142397552269315627455433102360202181863860282995496182483757403235991833073458906401267533934487831055325070655914200802466275460155761158669420113141272928049930924604854977580496998204905044126080229346695756970000419762365146487795690541212197062281852000679386727211080568250979226440006541326643101877747853861892765871440677609377256810568908056765907923274915217710696959979056171345674323749006683959531116970682340406778595184300472103941803196626545609822616366723090149468035564041441718792561288274698291741231104357414949314507140293693374633226792060892820971624363505320290113200492582788434981274077325904897707686753220340618138424852981581834243072380838416283930536180465858478606353542553882252229025860416607176651793517099258517870654580744357210962354955159553167989229036842730915958151251965181943008686055491388785468403318042196235359681202157773418127381582145859774366236686848620857072336026399822618241249997707416581260789303729725871932677154252949680964346314870752853653759280612117782151207320871773951686121188719965345051165893981376490647184817740106284406608525544380560023062266899845329769862785900029309901365861878248333146407417121414987036873557910687294769805922753666884103765142140719157238926168897771810962064019260147192366429537661672771107512591203892273623691094100880426315039499330347227369443728045639808168437284779408990966859783902953655885324476582222102997897125987814598812001115730556841972366971364756538658184156709172016941602120744152561546360204243485262417240182039685610755023552846525835371202336964930414892545630236867114563674937434202296276645128944965003320333055743914343663661430264631517962321702706740525252681955212344362053232080481791183808558033749429828057319546503632724346029209976263788181997092334802069735976722985585740790823361990663973879958426002406786901579668078744991387898394312066755322603155072687626769513189740966692862310448337832133613048864637845885827829653670306550272006523411409591994565381292149553112833482578807496983213792906793403127277789092659004811733537149096293840340057868759787806029628685879546145536784512927304897028588025917971736978110149223857962630817403549185066201025524331419354493697200796816516645570214778578182148365591431710533500380596408112345190838443468714312566739048112748012579212307635981678933383145158284573567053278348438210594638656933895783685588444689991011535937546762496637205831638051155012468233586294534870624324089272679430314026151274103026403634066625006018651168724928902688405109874434560897762397849506454760756671392909746139439914704423547955677788194961287458288315631234302828220467906513092746950219775425324267076721373742721123251443818220791762054568338570915612046461179689816277238100532356971227542160220122975952443197400126133381771916899234128675291952702027074237630646231770679053673717389159437586299182287761511732304523071960592179919333339406185694902771198033568517791476861761666207920779463312538209992944624016133973297418431345072716759687648876462382109106341935548432871717605929676517804089253574985138779147988969188771809642284879201167880900825501238765048772398472060601742311770467468734683735075350836110654202575367096311825332873152254898755083486772896149142431294436792031575511643290161320977839192634329327002018059022605571290070441780348989210534029004020376582365788832149088543369519457439736348426319200030685727554308983776105175141760680473680797391353684137225684860969909825221965567476437217692910211973581603154525987037991921825628212149083878980672294516016851180170772939718758459193506143915798083455297872130844665412631725701706825883176561357433097046183299444193045205215968196341698577672909390419147883182288337299393987092575461636338963522285029559109113417299476631816518827324998280004069374558306894078321440695954873520050389711624164850090065608941813839130080318408457719174219259883771251822180803351219080930423225634390081418300918138197133139899241392819948660234142845001768808301294866653022114274328801552433058307103734043821339687045730559587419078012881336525119622896599567965943706968037044795755447682390002449801112357569264215877601966635371554986169354839989148625575125240291114782440664764305571272668164975572254830860313538969528646359312183200776650876867869344244882406704442913053828334427936460505222954775605046884572610209326324027200399128441589820634353930026164470488155754646821184836930998571861013672365414055042951413137759240704156322115429441553798247470493330083635624040698041698743350365314483191407049053068809885919320248626681209219638874037316500616609108408536749782298127569536397275086691408595601063778711989531191513771385719561355977719578681933773084682901138802525429392362636753858418754568180721023669074670448331379539320871417126647613293529357223662049034932562835246960422152172266939945960088855447808881900035719294041705999378502299542421317895345732429583026388549472072073389716872151888772268940550418040395907647447230642763133845508428257838068500921202657265293354893039361586098086007234291977859908143423676494643421449611413140058839380704947274218830680246752247081870378612022027864691934834321664955608073147716371865543920923539810722135161503158833701841528180396050262928240903637415367709184509841068661058347736835999702515729608385516906310101844734886798763157135890699437516928690088366707198512673073406516856655381885931133070472060886230185566646326942793826097936259067352999787281597215325246530481952513539578718258585348810333949638190040321445009649303896761288743532630606307939122302106453215899260199432590332576474352350380975640900427799169331727857840963889454692727870139131171466104516894162941158839201547080131961661806098015761392823290350542655498961842169133932911446351700916210823910083935380584260325570598241093351289024058999980885833195972877545718602394625215138982422068642854870232378240596003410589260811492536189091239189377137092286304275440410229549352746966307973955705272272147112694984627520975074545016128022566090602651208631581478180400399340489372808256345950129289309058824614142639818490337286568218817062015981108111577910484969984978752230336765960268683572236023730742869412167806231277435313181991893591971152908547284103193404826922756431820116519099355319306247667718556531692234539093752264877772803880354737575831721720337511303654575117444274491003055528583985630858040129190202919619109770406584541291469195972407142480162070866569902277855635829419086637709577659755646147507331362099749096051585405179605911516781652220125264967764100582725260568056427287468877103815875873285520462038163568260695059696768350611611901387480059070915986520994184419302070354095023010483246705969637543068990738062492269369437239402765298006617263511755408323984200619625957343991153331812297338116658418310834146743013935683967232101502808265844648501263442947905821742113339942659453037886502032067249756138713762635844017138297651288582957897657814237391065683886035037215731952063979563095152268112729497331460754648128683312578880265066035936449981397303140039872525709723762612991199332716432268413021993505600628998566405150401704808092981934688055132964832704815154438162221395492848265857684674820029771891470123939229608551140465534839514629574757015495640346076342662588357803523823818041840954929606806996463765315662446502302300826589056788679601140472747253464311805874430295483509212239952597469063915739340103297637093412272400348127147771564660613953657330708319585001817660206342263012083804950117237499529813092170010475465653718240730581470906778999269017510226900160013900063805671567560887169344284532475140828813178819771450609413691029306247343626798837625021477978616471306563466824324700461462401474044742677757209490419821471569192877838488042746118549256940873064351681579648959995734964024851980695803214930692099500276971964344416901854402977686180655401019724111578146508921637029703999055158328623784938928152053002092295004435979424447282172027806074263481113956666276378603974872888419285189915917586025055450025292110352840857849331923285723922745418504523125104206428675726594409472396097967142231077332846248117403427238389578395301947880818596342104494686601449483849198244285926210905963951379705134985816819496002674917666786099922770938416239048128575729431538043892918121695260141039357232531123565465562586435009698716323828288690402131207429769126451395728391708037536481816935638262351291824796202175995475139820282805146576833924478648549806831887400464315282415282956057871687355907338813329406895592360809129163534892968557168535139628754195281483154392567912693064745291258135436842655690507845761675869836117820989089163935231694711870904047374106386099639091231538831691696460174046032727032754549901068503653149738531862129017250993012968455268094557439940012366702813934091748271940080848904295945241544091929925930080590938466146827729966585344936976189232814065048255423102021207846478316298335272151911958545196455388349195437107032667984156668487496946121592720352208354301973853116238846995368389582124763855497445749297217528372606410882844217895056538069598051539351761560963336899913761277658635488821038116765030995558882039689615391434081665142715152595930268281357162144596489909771139240724844750749040037364832790534538187437180244376812380193584701438212166000686725109776645100931521833527309357902704864504987595255023811397707479699715779357992445954107063425694494056469796069789544397614557898220097946276789259340696842594266852195778748406189119584199881267914807453308475161949077707022813120676919380268591545395755274167306117618821101729341891854262860436948896778001542640415081490400281288038375374666205873170470169147094908643272033156696527575506155540102501269757176579225357106204247911043133754628023073478392907237159243518671590579867204493319740062699112440661578391406996964381505416191112384475979095728434641225074114402288180073991062452830395213053419372126775834974111652925301886766636376106509562479129616814769765832208632908347161265796093359607982360181761063262563024012791907436969360876111898965835875547702698548996575143257954985791747538519497631155657864142795312295285842628426190881447891350573602325204779336969423158160513923507171271439060833179841186275196288975046402523535958277388372735604268551583243424071301974484408069330787742279739482527901214990215045293353442204224188350909644936819706594524677193939292609158761373032293768406440714203569289701145665506452097020773627911633330291623307038873951840889385030262882824058854785571664538600520969567642551497959870343281442887799061693310598638037429657386855379963012063539028952346674289312397798098588208287815793653502654147409385988751481239213740256000178052779165481739824480018035705114651456927853951690515817816867088345129649587033565336263673363868261187828936913910648880158398950145851186372004177002971702160575457001448541146872823494427483029858653261918772396828392852376323260408797427139703498708700683900257307552973663749588046464458982190536641648099236158285289968324496689236977888805224603189314191722398240583947172278103552668626274197299317075385521332849243210803052219465989762607051942467580630916985644041824348261133999135553424516311108437503699383553691418804949931043140066232224114991925553320648632543940360522689848906675333010013970128893559636760055109596744783093543747713597706397527382279658050123972828057882280251493794979005624589607130382737640471505482808306016790792982825320528497476771764379472366676405376752469704098834499022397672945653109468826053627763048773717119744246185500847272635463782672564276462192761372021127313383477396414823997734618819716594872770632522057370201297737093115841514854919760910213553771854982256634213759284897985390276838827390659424330808780140474718689088881948051968915287288675635162034985279826652669274431135553414727883331427782452378986578111590035622546880312445341126659023901359275741895094591072502131576257348758442068139073322801208263122658332718137153400917572891664206720420672786534806766868764211122423774729626963565497540907792463815511668489785934982075866084998521241199149684078355618269664343594890114443145166832158345322619718458300275074274891388818430640353510892163158491230647600213028034752422516233624542080005377316658486500115002344886553124451792359584040657969521222676730195218522132245307626257861087926702005765258197865260135380369305675516153081362480001631586006120193661398454313480308522131764928701990061607754690046280951860807588326010926705489121262231643192357334698370404671103013829640625856104835893271975669706450796719027854875178538271169393162182825385850025146446595530730562882364485023800938443199506958961412124361133365964041016716072514221181986916301648587875166833564941984602789080263120799394515371834790857199263445937010754177665532915377323418247290121320015425935322494171963397845273513967590657114188033933523741975860564064934553752340309759840789817568601654905504339037957114450276925520269990122066130349563705732567902415690869800762352583298189737430817851222097617516575209137105081547801700936279288689762929904618269204546543135100279821492449118202306703915031983898444624203094343536100651466857693566351138835040799548082813845170146926723047726818266246891090852419610082158779011105681733615092110664319462194268355473206825033046359108096299665944014755783143497868054259112449794984710911777169773691669586241680321975289376916423061275178756351608961399974826013496033685124885527828280206117067355050606353515769229406593338840851380388336819264555339011930640659173896890390981960884734036009918352479742645880049566726870741070879900188106529577584946682285926911171230974722342713209075275948712811194558490623236165103329042066121418748187539868052919821302314162873952498053620501435504354153846622740171662270056056297360486146499682267747266644649945776533727392199451177975723390180002889516847678040377526016019259069563872437096689908759837994435436799393941486163512028351868339841225204440155525493729596086586087159721941170036795770550568615229639697765378732923743487127274090733364272146194089126104993608047900522217517855080782948375178218707158870793896046487207139532932189514906157046552669206056590057110005679130097818544787798749094417053537248091971907732320126571511404890825555794301918964626620964843577601088879163299018138202202546508579567058497762969890386091526410708532919822815253111218930090478044342747464303428741541107384999738899042685505028832447023314989699077878275409045977643098588797534624268260820994109434911684895057898212282657031700472004919197582504898786230406854549553328208144817188046495997889535769323456811009986512431209256902104636889317470662055206665631742004236299853709280447522332555027591883566364170639942706209518523666216476536548644432857642123618695090255891518844351819064615470461298291709204825520672432886413654819639312532008393342903809951974142110113078248025427590436013636185346349611151011275619573042176392204991738612920517484148139130652613799431988051010263051332353559446976470617130272831104468190351993134477362883792797345859018533972117467642445038704834836784714051164281912909765125231635614171304262670736894830829235108675329141283131223506211312582377832665831114573260534232218562753575341215391402956345103207106940946578142098033551639836233833311442922989963639020364334778733932854901758970346370274749479855782430254224106549813031859619274509334860722058083972853474681280188092767854051646673977620240436124301382241032786396889415261613206973855108820690439502959920250515936657047409261436775251919619163442666895315113558907492532251965939061206310209044146740837300537615913842930271017522664013852554923234058154567844584473210178205682662313852691489680622486157662377208142883943513270976910028823962311229441155755524641417727313856089255871791151431842109289614276284244796967359983255029433176928545452470060558848228890531860560002955270404226521722812483158854011100762602557680636952853503115411286776133837942574367175530924276207344718402559266500389056135704135044573747332215800485035930784744227991920820056313568848834941074568107184307852156179322201027858171365372064176785923554536395493570881774722906533142332465212463613855677820500681131737113840720038823878142335373733671112293987059759911682883535857083425190728449298353793007108146591867776652767509483236878053534941610913039850793254453792350872677695461850837199733480706878530930413022627871421850251071332024812282095466757383419161904335285248039904925914026927144054858208083969763757710808048510141541080634455973083288753263676009491439309967178338511289205406752438815871206697057270212440863773999744727424565322769620683845845445097351825345831172989412404762263492452373985396961623963790246988813626387629166642465774565444734784021608192182923733561014699722147652271478270249684970706249833076297653927215385804016245026550718185405245368836520762221366763964210141712693314914628178000896379526121532869917824801201811178718300541626539856576568352523800922970896743078293547766465905601669476570326039862249235115184265409400120551307862457256110807939109286616820939319267437462044733118075600150774681649499873080275989846689665770797372276072453732589984573552468029627540587599515230925449771744303462691097734360058191692212192349117289812601183010688590980811001517228247383039552559291351133024115142988480863005892852495399759776976777811144472089688799609635120437178732323507066087019579566033684412329325267877100518587759568121928713409645080532786397961892976516775465365320445244227607404092313246401618131505478547563060576965097304059975935026545375783130610875723906632836970730695485923726969240001100063197349760253437758242468462777493358512919174385155178856564488769791209046529696464430557460363743463925532447633906888855954604123047522072548291667303551998355414853501562717418201435165000981428516001543574325490596506393972600951782174773758870033648011903941852321002966611796946611027068625566432134741255575160553168236388797734299905679028674550370478425939687023001372804968490839531008620697954885490615132423609290303940236221795123530711700092910536614899652671001787461414696742986205243270673816459463930621207702008383632289276709829651809361009915850765330602357647667103230997053671149216768126632104490583034221624090580026951657953271025204387630178267916077972868851609668206135949211183175704800157049636055065819692824061378004182116311311616609218815753063625793482108411567649223933729016386173524823368968074774892509503986050147249300261990438685719541486549085758498600237293486681685760774845546567358704894248556053975395169092642741599949029181510497818586618547319021485557123370744409647435143150276094191427540083421181817134048630846836679731750597492818720910933790245552845514468579513099673741820806825918114059396652410906343701899023122209694063461883098630981150292517819251966749980049618705243436855479894494047193533246106804211528068970492719803462968855924111737630242207928303314583090332483608879547302182830110112711827632243444269815386995830825377500788782474321645574635614134402675511857774885810557560458062321759051553566186480685731845455984605431396287168904794456675112979848080029785573477331947653341955644537889284586683515807429564726828352147270813744024769374115720413359230005700363111664739656772971337512168552857926711524788779383083905468288250370439792706708931655844438026447830913465657686879285709626685068870697797168527371768471407146213740478319209671368705195377281059220463689462572430519660986484829437235308158523626224521853017901538450223821969137584333804452838253881029580383809745797374531924674773462935216592105219268878577168424982442225821122800850521692175009872209603810487169350908375086119164745261226904306257693062443320713825113706925342632774345803507338081676865646957410400533702860921875762500072280103560683913557106506758013150470710315884170459080853200720062228394394114305300974596324225544520345607404403630828998717574606402570751132360740332188235744084021364120405133190787110725675871586213967012052650651379563825278779420087294689701301468028735582761414909111669971014498575684932843392065505480043838156827007566114854293411092002184196347020103452846688569020106865230250196083328678304375640186172590035942729119457609031237563087896051158348704621429574339287487693372934028252995719518693142348229262761270683821857136724988545997966241338024358812110915339741211262100692899405795102609923935795294749631935573169996875955802936542410107780770474712364922199553531088959123427838346538597645981103735663875429671472963779757901406148788756614749820012896380260862019298245270587171723041333306139630231066289119010387302392373733436596903050301320906677369818523088765105411875169596075251072330626054056370511100209450703399003392481282961187766530557115827693493140514112020635496389173482487393598665165793483282611549714427075905828964687653323893714238302490476637312367852946191127279423743119133595918369772428799218600805752707095931661452016492354652888699702451184734800711907138074468690514727476831001042209633713065040384680282843784092412618179182202953070889793608517981005915906356789631412157817802739325618636657935005081590018250512544005623869316960831598938097448007485587848187885720735750467005724110249034227422527880002394324923046552203513008529764587522201117096836513699661348589709832215517371811936201403233676421229335314731917160313235509730062445630647835265687153090577309558316574969766872699148493007836769726146479583161010178562863633787690755438041538555955238953187006519614165315985010797888270478877431301290777944352278938790925476531438099798208148429045403970335259374904418452810966349190267362835794540029190745568012600229306073194664041106879816547501089146836454552033901185180494839786695631153339200418666303984076079164356470363179719493917221102629863783341970158509355128822910826595343511038117385931852674684546317651626041368826632378099077476232468937360516087875377801723720032341693646792147050117645324144955313384902965661609403031487199850046022243743091449547082131102172286435155650854447282358671146436239023989710645433563870083040130010885015873547629324137551504073620642610941874173304464423029855420533283553893986806266897610963139395173563238510651561279934928595271984361423589109833452764934753214636289269125989318362694584093970069791123781139659134273616153634794207405962458314294460622406876661485409803409391679034228246447552092220663787437856184216878679822702973991980824961496502420994871726486518685263275389794506657357568870124846136018541630802665619876380680875288306066107954591081797699221811774169087431048102246462991652052350926687441550648737039287634069571657431301317422654207374614762629141387482598946612970908689561331268232399265144703336111480784506134954822045794000096954328834562422021414121202394678824603414644413411247944702537674053643151730667360669532150879169067946399371180985144218873744359903083926391904866801173744706948545342869025782620361276594767100848903485949916718909700163214733314552767578956057448581217734244308757059997712118687701380256506410885615949761957865235594473183820041324036155732082156797167251305720300387396044215075252009393880286170935003176192764963556626198120855059570186554147934668200004164975531667476586151891858520673456600405443069299137396782897759387805210278047888375720078948061707784819917586122214794284775418689155492074679907527107793065721546997327358122606987176795296319945118807487854495335899724467368826545586431578383142917393443206556579184690127303054835804638898977922939347758184391549566377527524428534170822336707114802862759813804289259740991157794030948625724249805466812046570640233559192818287261951646302425935474341323630142835106728912486004493667245929800605877944904252728006923017960102997867675702491238906448143335385033566394834224990699764222266846525459571598941011248462640282111411312548950464274817671893238775279318552313020197500119933561437505276993526357260471774035374465720210495885767838857324940373253954821673759212610665623697935827482021677140211986901514398689171373311846402449539464785402693609902556029463140963811950341642987349225337195288810189647061313306164757671766462470424995537665588424836595256690588640809800844748564552163975908167007030298751788006149342821294901623180378942462880898824044702846248210704509233067378304037280697174467560490000010854433312398203009099996884165970991096977246925116057732598061124774482094081688222905084919949741134900576904386779356080540294510967202374734385032451569219120692320253687481665141265657263607069190045977236846860143684420533568060793079534468702141353366560049895199197674869918440501066278633412433691997758880666572903024285239642709270745269997560852975202699767093932948882147489121773545089842078651114396124243251614238293257242114385631107207001243065274920289373704197564472077831093810295675454514440763918300938908259955210957841932473239179292193047541833528097523679695416243895317548884111023083404558752463888193273761356466902384006016015736384359219936128771228293301298824052105327966400757032620507014601735708148322952562173537640472084194423573426373523284596971500122690912903020467961377359412778145751152643193445453021584519200595948190842197218553743025234295737542902837649473346675317363705030131681325801223780106282962814647645490394211287138117772706004259190746293886153702604832422038856740760264678705361275300277963767719746686725655890893983849315029737461126531869562646163645086806258881051119743912396183869171394106518819994969030216681434193705423586121761479705250252092149143047539409371710337809546314182647455795791895063843839644472655688441633434483764604083995563372245714462570758785964470984114091070449419498206758852434756148666490474542601842122511035497791628981317687914386666911040021085493587062831972512299992806880242045679459705937918850919991838887480525553392249718238271810326317464181441272308413400794688936166095784701221112192271707530988840639330003874985284938372957901109611470001156927234802260926928747428388753194648764663724487056579965466397875288746274233715612863852578674893079998502652790453170771730442036458329330272299704992293187200757622670564787725164665366137912843305257408072409141917919454150261720584557396851730853770766388766550897055929091947595156891259248818169252294570859227346977840033566909416589668607311592166893602056265500718495043813085499444770162595642819076464145946236444582871231893948318696097261363543183532776070136714103685817583290099478108746302048065869406601186720907055024223181435359943465815839585253462366987356648589271715039217370911294839193465740493467028904859252459611439140376065100307206619514777095159152871853782999919902514620394637790434074160291208808078630419642226233866866678162551213144612884820369904196983058409312454586164042434643551453071960115579538869410286124696353300096375998321321138582632714393352484109890756479236227094107972960644233966615574733267260587569732024537750903724412174588305239182171695859871107671047572548061117986280224503006743268594841011140162733755459015885447473222942727054351404863115664887335602276153467686551746967516535468138089445311323468668442704252755728494532768587239305852593381429859920109471213867616977443250120330573548797492186170044003421737392900555279938642681865560912263249224103859384650405586370764762213064681925793007411601016056981371552820442283360016144749513333201272635981161219971736141320786936492984423898411069805644212799515773280820580733509793394521918654600078901562083440078313885518706516843575903256354154346138969719790812051624451691453587839078864814947705233783791061849293852605590040285741259122206487015112311489405494636957092846818672047273143116230734734594218833035803923151868252459355430535822663249798217678783461800679526178513658252969645704549596529538386089845397187017482285178843112786866727523488187428374201967888346383709605720093745783898007212121054195167415372510272997983234242511240115462311914654996749709406481081392646634073935991442039260114260038464807202368267439556583580785986878109982968669069234811163957575386505481157251033404035450637689660539947272443672658666698324355745026156139421919191853629112375809053664986868532874251791543247869222700793966054146104886025686593916974228085918308941549863486545344042137317677016190385862871799697525746568302044183314299318554400109775423011432887459425528179768826586028946301667394738938303254463992700314201706054216511639878991661979072145855229841116672357153784096230400844285269990250597449946555981374489235826095785225897376731568181909268311285661015867555438478971666062083251200356686713908844954948961049591907470084501653331665465553902961390749833829965916185819518808139844422178004161586304122458136415390063206952066191811678270344601430992522245231121727550345293359842443206322092923365292803907697697048207990403197696624559061566011325060452018067157804599382864007163722443240727168123608936239215787552655216753775651100723506107790581260283999139449924228340204530677915184168542347268894498612590774849301978450977229291998975159774082308051672053440678395478215333775188036397401635564292268614295370543490232639618943646111990265279963382337771200702213217370961743728015092594555059560582673587393817377737652585169293652339177751793698893510262351656951610442040141071712189367474151666490556450678075173360006681334320754174296441090065218036367317125280443621883833353067286050071247361380576348202820262651934786836801859495351121571360120744198518339379757465721903077845680020456053507790801996859614789501510993618007018327316858179430021309162371464492520021849610251000317117510056298683653719885056616071594668152608449126001185038111947866346801987588173216213918957368014249169913581932355312018003113131065964176979126395812960611425192264316659118951728228298942016073785418902316814820303272858029783030138717771159138387627782784728087796906021049983610908628784229033272965508397485929846943659799207161837342828032928913134108972151789427086578553639440905176037461705154190057174209678223512414511343117740568873643410397387910376568872039681441880794704083591009423846809985062106127200561753639464263028573185224599334400379759102761586716475580856841847968767955697904917045421593783668379532056598478637827780153367249761490553766024786052108443495560922908277458087429885653783681597463240664887265541307984233727747573650384846580211943442620642307145154977896200492940967105909218043865841651300874451512985448338912218785787496145068905864112762166573518751408273140289743255324676015088202184589496035900359820483065814409513927926522118227059398520302298002719535333133960490609361307134936134501422319142470603187141175414729270405654023550020326076338220542731348869061638700992800039925436905676937527233267914718851908416383325459032629079421992827800315358363008905415445242776635043414519515278886238354047465368891580540239609059589763278421957073257176541111194448664453515068893850937580912072841295040578156098586709535318492420171904998962018544306783618767632695550526901598859780045031485550733107417109954170860286964900768346159368167708596394273523343680081276723711322756297942271998370333503933394183350652021100358232896911229887068856358561588239619600306699542846494351883976629194350977633659770491039302422075654096316222336012975354482167246249756536267122064403692329785067207177475219359085557893113413660625519805233082593540499339171273969168272309514466464220871431158017574423100107946885636252133783343340372422483581564846248360799085056005320673085432765348444967966003621170402986793251643271921577696343996396531977543799286603062662313355540430748189556406913640882706316708589111417451297684654763819982784207301077284074187817519164407358732050563805258750410371635410465770631863913730458892152978962531848740281195839914746162195382921528972319960097392775086646945104012979196096790656820349429187880336298781081910671699286716198293045588287846851340691076102391451611409586935687207182305716522397306471517028894367486284429788990491812305319557688151131663778098010755140983392167300890620585747983758409889119111706722888313049691522242771629331048585951144862745584614844460493364046594357371302829385231898843592196452594698640255002944463692824007648259776037584984087299485371076563373275572153246347976959710817864018129994363895706340715930152620822379963263693208252738291873813003143155983873343377718850701252633599585854368640040033166143110586655103399790458887043017134530074264826010337164266313994734367316776527134340366773614218077842322066594581714083723180628757163260262780531460774987801632461211153986017316503421407203786914020988007783067546148364405801688554975363094087052212192106269480420353903157247709031717780999857120036801979009447138753714126328623163665379973668392183593720705583792316576448355925459498339526910128206194201711282789191697990717889084286806971219132469545099878412355108467093341951574300733839785833456870279058748489395418195250811174035039671820259094933446510572758113119285589265210586180905437929837998657808047705592365044774265144051721874225476535240905106509844792369388076302037300530022898762428636586083834208631669602300000116532972362367572450242724712898761379846825305126127913811220628400087143493781549980243012796447430881053483952454535661044657805257378144291219841792181545868300142933179776261316706769716714996904248910385112428562495589426772496932678084547341642790018369393632959073959685043818998339317779239556668048138161184019030573640576247879144771819425154200820127562045516676806861466963083700370261741348081795342391071533982276664135152888081127862368332167938895654485780519900537854782005783864350459020767052673728197387749758527841486091101148488636236110360567120917618894309479872818658264495446603852292401840807532755858863542585413426899439940122617414730739115368328208980986681730821683511540716580611184875870416744662061673864934735540356129350354447191185910389928485991099553369291448270441520545931718223614644469201949119212615273616417483154328906786180567234338553072996869121861696633598694752679803415086765286665332181097961276436668012208990751155861768298579212957739669456812706009892792552317684913942678792410487913315991446801389334920984849218603190082939424031983010350376802089799727157461584936631559993482906916770515859341258406353709976958164087873719485766111465213185151889840740586904287495950813282263118376020622218450125851148681141412370255893092495783506073812537559064980879223104373441638463260330989397803047657471823926555133529311076178168006655160686610105337711764271456138030527041903911827292223791549166665804775463394312258112919064600134775591217980676756831412028694337981007118836472813018900718199199182574688533018741101250004253844301682735208195790365048108607363482311280995548950054886676564432111907087318972779756006102180581656509343219827629907900693542384036553434072932844330058783486528528681369905105385264946407300836803933724712418628910050559981479029126709635218061882737813729451210360141125843476872724446184029844536702545582321567930913627293256561800330803037699585566130779224187808582531252311139862202756256891750974099838177149797513147893251560913504735012136794996938816249706721305187360446529037638038357484029618421952918031029138695200059301353403668904107339723574893806746379441191942190117666000477709346968694853778166278437304113806062286540990067110889141225830489373075697374780402321993037916260614677543211250337947149637998901448234632436807657634805151397749303165374531399535865039904657188240431083788632329686000595129530872467868410547620444966709899226413714355098890226733419208274959849661581710382429124646776215328105394456505277330346796771245762776943226523784886886366820752180950534362530347231769348748535717465383079050354756952222119888197933221594687971985656481931987667792700392911632085926724767693801705030465198778763965133227927366448857238048925035157273370654665740704126120907794311938913561339744653829618441244892147697810550415447147467279757286246424185208660274815365478187136840466189236437106230437743258470349477314753383489507166192628624306894424913578084053923496657416160897530899973651691351400755971535390920640975283494759993845925787749407877939645191243046347304192946733409104366951696847553105050213239750740250722518248957592369782907232492405825924199102154115078217897492536703591985588335023370230378272603978356110961312981682717495883553539211955524446725967048909143125821423099151637807234736737842138900791003076466457305477691685102420224198210785791620434675529111395642651659882643513333864420935220654515990945310208742909503878632148553225811725350555721858503795362418105476481634836212629208960250710147341446897324113315553289890374169438495898237528504703506448580626173093071382995872700903235451435651303714755253872112187940705760668584052878309711524511153100332196487312611712783468773396391520367781105190576955933261917093995273115338989390541684619446462377201434709487615202785196489879369355764078283893913870984590047825603115734352976260865802938183683445199073581331924521877364461004333193731476901817445875340344311574036724790672162449024271732261919573359150882889608463931615118216442812295085906207456377284448299657421167664511021071351607036127921017626921771161069264535483980988634073062952554972486524036815437579447881775550403474307263037425775731964329918150099013881430010711053438573141352294322029116760225917807733453563186603230530015918973522713402862719352174733725517249484547314693140563117206729848348902800216931369110250173400574738748942770321641445682730369849683603974458979473811054448404045529512754667889423642771128076532469521821391291396959783471202989877736889471579800486002624409593166539619564816514616112111293886560274238883107934711428943562599773820769161306945061991665578202378788043622017282609598194652209167064089327732449337858439046536122079644731737570791748641128004663769383632029462787869039928478298718342931083610086468880965561268085040281014075323928916566432736495110086055854347462422044158903307083349915238029018725531390644737128779831523768594856837526464872773007142676298249992019051066059537349891552023140433991467257637223404204986640430516308810038770355486815122528244064563081269738062065224380332284490976344409255367629162204375402007764241056622840624053325598686838948708366967160145872990056724665703085896282195676145563054911943721210311568203664236716048897872026447295628154367701362141051953744487628707838977217542093268671745948455761599089111306246999645399443465591789689904398505576841309708944360155818458714364175124299854978145814632443327167185628891153131576348612660608560420211246153872270862845452828205752117510848146469382953541118048523744538727329865771083592366326107401750440976881309995058222893009790378167903207270939988234724320832372318600393029109474619622013883009727449539252828401456925886600858923931323216646370182935694502094996594836963704440212420309203123266557845907495857837625632142055594529334119489446364543829830258278582801691228682969236239794476196134944432928831178873637252666540358769535136171118912716448677529973648628544185291807884087558535897859093399563519417748974347450785683674054847432145411131872565225736309891926976806293706055324790405740307488061701550642199793688504723377002117412333342044699348473758729660777961174517437720612071496628743850422667448846570447045699439599885924057914661603228160854359550204248800745598333862582056680665490925513537201675441884079254105504095435375961884352602090418567925481781287640576481625563391291620322568313547574173598245792922390342133604968432276822199680270386333580171959114144838838957270336047266447193748203413817386057625334182160693388407273500299381148356132140792819041655028970611542467427857435775642981057879614263955905649945364816272612338530219114446402613648933154449158333071686187125943248518605536654406609189278850845971389009542288557859586788736749150649829450001374792351759629779820879069124015014656064338939481452875173830954577524075381548236275052606628536616377144412030387113918836857994839867751556966708524176349742764045872257108760694629055376595913756514466419400046938720698444016076528934068235144374562693973603200833579325657975686051450922505704027325874038559863980243253983757718594045742005835343299243707539566746128177391055710536998895629419013902307539980557649268257362781991373622887729864056190666729373799799148505880725068522241195044037016031910449621557114426399752453993069985672424460341126857451000071475698429547124595092099948590520901652709938152215897041020997329197184004631511611406457611950307180628766419584422031458128654423172969143495349816602397919762664137536924484949749722632837834597786861536421560179494264320787618968749475414192922894583585606331638514362153565374864229885132408484756498871867903454159144045411779034573474265259048986359674567777201923722110503142455454426732237260114826057002187041560191177708414519334400765255220775762571072388534452924405904309667269009311111791104299977569311621186995796170048647216978863117774184472660104778161781150186757741767077683147923932353764103247742795791744236909084894918408710960264169074311950253131288916857291224064011390470729824897244023853268022877642011083493114643036971580113081345020704854036376824695909678100306744952164085021523913521537915262933145656531328852585384015244878449866936495374614666316497844154854960318272825453657021663069758828506548870302722831735392619365721489787719276593110681098765369820894801868969173847964828837758324006088920963044454421609778603941886445155480059290858339401967980062587434221957376459260571795091659344831783496472910342025721496812487791233595618812980507509517841633915735923272349983742644941004735659074689708668678961512312304621455518642626066809596682045320182597185070268207672055601363088229258527925938800860603924294604601009919872061684644386901412568898874996360900358669118892641380468465395998745181558836832185177840649727024041004406508133380489168926283857461088969525924254927252086697518958008597222328301332955826658790781940380838552732877863510917626891806910545634034913959992615690221754851195082054830826485053138604391665903656744221129898993991117990553973209290572043122189924090354599899103216374622235987431538216766470546138127855540370417793077136003406434602997166026253900455917285334509619937779822526416213443556060055328111741273999211223856412233450962364288325613375026590003630860531937743186651872601691585812000646987498448318689423693326191053768279011567374792893437661438208574044477252043259709912677299204664625977174847842148532456206181259067398775593041836618686442377212090318469683258936655318627783313754886443461930276221220780690458261789931902802129145682399480729465831368973484692721334832572027529032219974627481503200216029174579322728866643812890555245506821569546839571104969119764167183353184100325977697735445112256903950650620213286229885901943331927998495772427041381816147999203211541393739020876550847080393350590021141593990018111248158195067909198878855052342289776778377071802868406281918719469913186190452970358817128699934260960193356017707849895974709583502430192407487621237815194128927910444517320071114609747552630627032461781206568749630587480123408357789268277832314632889149173246814917420031867427006908269117606054763127844412018768535164714061073538245874051030197752093161914334402743826178535897050484172989041930508200795150812065861960320678532678225905321363084237384511585157927333760045196435511975203869046647886099726197620820405258959987463170889091221691362661951828151374363084401874252973689142404401133535847126849444621792352183336028175450206794915797300116569225083577401462053054903997056129024045575019530826140083510695269075216578934146968189835838481714969756204212917115387447297867663812056805934547092874079024822048995456419582585172215681676210865265469003171926790095423291433823344118379295404934987747358266384351206187939220202805103911726205799509182585415908914572368041324953879318308687491493686761331284389348084127034446786680119663664802088694730179316893563839026203900274508847402238270458542115133773639902944336304081747969527766880692844258092941823247813796950868388293108007910017150597639730740343039037062208597494358173707830990278068297442672183470202207890918060315800147547483835355127554494542978228222482219450423712274522720428552403759923721100316991543278093866236938010093306469875744082680830719147337565906070159522413004906164202553430389677079824349099851399509057469282608665810522151784980158411310079249752684077134557890356126451039048473625451985830435399764111295159791131523182013173224035211583893153838069677586811466051602041623686176504557471932687368880623923528392262508234605242277988686636830082765553090963475929297747447371623801962036205048750849544722754411205547087797920654545444442462490824336886272932445970339519636463124658140627308845938070968731303155521775331621626149331360970743289692417527350497867489087810693034178303165221161367825784836839773034991713335028732261697944087439598923571912616349006723600576918082125408169410648248097626635768486225713008503030076119215161711044870675097188149132799860441497757449176650447740664006670088777046149860911933205981304733440705592679954363892328078615578611610746344245273925959748381017594133721399861043997736116554681914053908118625694713777003722972110211892622330371498183799009764397534906918782735564548698367231723349326600429468109336027362937090498378534513568017914703380626430303613565102390511562657318472144081393082438468888520223425365501093913886687944843756768364644470751152649791727269558956446950381678486646439855292766022420502237694116909643449300287672897673690257960793299318482480922688780989241799000765331338879644015121927717295013809364090292968428193050925265333029960944477818793148379803928083518149081887772422005965402212622186841126241145533681207070162532907853236570048322631559625522467866685470574511999576812453558092425872661843713625532239270026783884560546956630742935338340738662942061569881149669470371832912082153069406747972362236616462175626161650886040516932278139456346748369842166768036016039417637297600738013198377945657728575132318613828377995610750525369763206065402514887499078508497745075144354949636400508770101863572492748614795586558324592504636246091901619412409640575364425757089914108197785533261101961413305089509971540773209817050543795913318002365838299564723670509283046545280854801618887011240755554280654663998606707123595543590593616306769946798268868989012244102346760085564612653805533420183620724413255893046269348298622382269903572595121023443858534637569488116275450253251765176038666476256744003780332914706343685317474060570701714453783526782633149276558695817383223763600818785549127226433398160849024591616476944155389008158496336342281028297512256005743272439176588934699792519481249143131863176510835890883369875940229452800613670148124339884114577249417158922050191021797509863570091368441232229309580588163416766365222050070135185631029607371747134641630879753430884024962286984538129170269676472475666929545564789231733024197416488554578224641630490057862563428644384991291934619583628313714002375998666573679864060074170123960597863946809638673292484711764812263413253892433906474589396137587214519668747337638192064595395853985736432624539009378824305295686028630493366023540946417177539656931363784656525671220640574575833798262859249137090124584236156763498002369218044737463393860484933481160044430392895284174373653792135034549738726493282962599042275265017841125236659031728620731165765799401576802970261709326226811627432866050065039842507153670694378776451269797386630929809815347770809454927900284463412938543252059997374707470928844336930925583791385357142393844343932560884168075289447664883665127931991982915789180132145359407477754439689614284732453439790439775325043959645965646033471850269615430596805271640001008100644693936770965581287605963877633621460756736109472008992428011347063179871094058623497051511389349233920186310271561628472711145808504781359054184105911329944707101021762217377205966048184103602002947687465010680578610590745090828803178461874691547078261794281201803819983957399430368271601133302228717543195854495143547383844554479659535203646001006980063111232905765580131158233712390743328678196141566783234952467777807402285965707089455994581788332025677499535012695784157051901108486608384315683503109612883000065449016240407196241993297608453487261419845733437186184152823080890039211558211435626594068469310124524565182983428614877963203129324161684498830225521771963157736831527517364263304410946683408888684737267375221863863241945976391812649235503105905544853828846234141923157864073745156186575702127969184178006138581301312243328261252298122646939370550193549216533867814594849646921785628848198847785279918994531247834986144616148406572130356213869983609752692442329886429980231508859225713604860929973004006471303822163396797356689248115842728442105679841871339005086290945814434335292844052556107786784107312096358970184302451142295691038552688295169191534919693745031387572355787019427637202242395773126452310616451157888109437554536641843883229397098304141741862900639990924075911059342209766058480528324128939112803904628184586428187086475488623202516149194957447247813402444978881235607291688375683128310917411565417453696235472268915889703695335465374147407497823210869749217897000409715262884783408129495391329058248979629329779517421314195939276708483797104616648837597689434889312673735850804868988693515161777440039852107010768176300470640921793088731432439236450012217059988660258339296263806729314963138183663817161026300204508781462080232838769498457040136708893052063440368826834819291417670500342906147890549357994004815437106511999532867386326446364516171595502711758688838677661732376869971054800815848532566362873130709277165527842913643231215969463988745076003491623064837872437549079264958909556622271129517635349250894822799680208148911967094386264407438029364413077203401697882980994399311516603389388570939829782842368883248139466518618629102127835481644692959925564426052749474113238895897008938870352074247705058524388746072891235883335085907664883508732269365120987175877573791127104252436708912478681913967157227980302331503386644510327156571795713299680196445799623191405916338132652549446116966151466554040069314908218650153367236866580455384088729359230564927034121608186443978490365205027574456237388578417401432258018039842105489379763260921684240646497280183595379679063886631216582509243898740775229683104770810321205156385254724698328345608382006874551684798989154689227015118167808675005054876152463411270808462775356962033007616522970861426610487268547768756939464503241483829510130489944433224821592635688326468804911669894527645939420317516053813869374867120110814071458116523623155584877960496574324991137584667941860067276555273152643052659437454812232934869793556896178674191501715594717018784586909416371092628852690876354804493527405993358108056010556980927400395954714290079790314434574921910569599624537166539376385035287467612760648287679024783109780849559289572963030582969886710103234035642716472730909761545316118394316700969183015717344690221548416663473271813339719761376357541935645919612850181242193497760918165760198893720862144594471571847532310222945168359573213681394184724480351863377297848957065192099374097190917289909298446942323782331278305483671026831555204164987960733415382795054268895665266063015764464108052375836917484437568742076932027460717635172357247367196176903241058177206634018564804859687090792921337639819115451960329721720976589291055248943398503233122493406086279418386653103285098921486862216693732697653253449680139851063999028678826952922538591635972389491339816335913659244964130258065017463812674994952283798680087819266812104797846240188912021675506218868041466354098249573704816463882462390006977189067356075008093391175908674911798867577441176289931384110518502606707113915304461645862786186049437001962377503451549107468894960881868389825686069362392326124179340270079672957146945593827097916390608390838149371243693061393859550874287614403331344324014905563962639119038349657288281047200939465488106980071081001468305008328445955644647896075844495932052664324049741032363702122154621762464745709495726666417180180083493153597740220819855496142170902055762783131436663190241377260926990243716408631851356912143520070452161979288016313465615837155741125015469249000097925954362013194496163244324553323805402862053313013359527000934152372746415742851375514333478989227298712065635710840286520534642172257009969160657492539597602716143094899161403224535580193784413904339379011723636425775206282601043253666589117479574007370526894020972276380574959672129718493673817085868113265013661011408326586736732406904418959782504743552746106144908278459207519606135927917920731251758765154655526417782495691680059473222917212011570807536729585424116659334444795266306206162067290336458804951739525646994207528735791544111794573759846006738964837583664020516397255726786860158723561234770200109421577460235324452773318314914802421207568782357996277169458744603882225412131459612859339964919913648929639892676015885167285125544251076133111011293058497969105500039300165151360907287694319228860787775945600381655837226651051888434187437251655169247110678514507754317514070023591146992111723131004303700391072251645072851316173650622205868520896324948425894236533303306230681392957956384012130770991981572793806866524809669670405387383041990561487346047810108281638221562233373538339007273704314524956941596317144096364757225371629233339354687021877377637731935126858525386652353683638736346127332552479316287814587839190879254251833492131355288274911070809797119086803185196240638695388669545235168204885583116893515961339730171868016039965042431837769926718667417484880769382487327214312837381161295391544491888784721945600615079912123030318826633789721250084728264658557144121597349653975212126475164781403635174079406075111045440860998966238638354078545702865641202264688853214704368922561917164495446179035612218674498128426672584451407872192888212920894679317007709212615125797077273492856368916144226254582429101656090103158594367894435930210741853546158880831984898054511781794439934229201402612160687281573729163093703833160024396516640050251037682721245818966965877627244445237862637909363414611022850888673096431258667725885533847805974605671414697429330570504899426955809523468895632199503127807564629935505472180660552732252804992925782761123122097460052693423457007368529140086892823145838952438869234739387935117893682377449943475868262730070326408976404494416796827692520554548244028544453813121195151432623935381980361482507427971647809548987631489695541827610518913322624098510123803218685953333562320723947558174470967072947522815129287796701901900452736659486730199566375383272079704611208646086252699011320494618886840360723925641511605592296965442340946286928211207809884923730827430027853103571559174530583180588343403964547225007097072877333077243566555331965103559341007019998136616503529505079062985332042664216616762770362797970507765657405724575103529603700729346533473486098094018242148649168196966111334582231464099650672384068712821111891338496024233003681370384440027459685687488151526070115994500444357210601906930698941673119490376384276783671949312538805590365179357079115062930083336636433192301526846182718193526356696938855021240435751998549607814955295552262410675595567896856268088220500174240485816245179844692183926414511117128038619719235723332199315487637567614101280696695287274108885037317359923022070241993091921683201600833752729330162614496326500437014263636017580582554086346826164815903928293741101183389285531082546057579719579418289422336821350691515925796955081638288985047228668576268941187636381909014426507303876368772987141492262762635251722641296059431139257767952902770408574793129141938543768072561302046981671898608648037155797170736105794143943516699151375708778051874189997839595902485937814277496049804673365791747012231545960913935268883016270304304423617256189605894539026000897943921250558994597921838614424980415719654856025848690893609750291531458402565165352404515278242446304487555960501799230884805286981638328816175220864507632854534805216762508566482930376775459286165181697728219658128523009382318943142591551404911798357266488569955846524295235433287457154703294344398666822632919615535217448109419997662779639402566556914832126002990649523352279707953283430516820232827340340224035955331906472839345517381457209017587926328101356921326696948745591493216038301447488269163966040498864618839582091423646163459123345259132939640208527131969907595893376276080735838706182871092158276371270008235564888570836793360150311001806496667302909971195726921601032853612085727839021648519358947370877062048421128026418969941112512252924885743572316381880976133923893710238359757225489748845971302955627318013611347969763705228722165063416770765036450835048260074905249718180029848585562673451119307143035811645380019959686308029442632821130689686229355554102156961869362924069112685367118111003170540159373929438409102361902683581559765642926393108353230525927943532152133017821666174798972226251230063790346158925817594528137753412177405037321159512856765856263990091321476455001802521398935014339631777536539796811729331552680693288509465991138945664495860640984884658199108422726267306658601223998050586006811075271417260864557980038853210584556427263372508154528042186900426531414579230352799360740739279432184138002789809642527284519034661031700448048844064391467217936392769169084939841654763598349069250553485285876241647914252680770434632180977847035724537238390712742865158687915144007854277969964987048846916798461368951676879247125692918842569725499216521768144272194839902815461997181359323647601562412031951712674339855365431826704076019885221751483989240343907447952985553328742658780919335947798410146803606517271227962403448020264042733845656869100547698272109059712707899555683824178211139652395982664193384715878538965988561279284578220004755022553292518123411602316215696172620091726733017503304838233261655649067451436408081340045509992844142843454234329028828510285276917698847504351314129419512811678584182855595838697962084517538123676541294601794725262935687794373587159965444093527675416870174110882948295671324333684251019261853515729079158265742926321026503945825918418561915052327424056327860013076972884473153744792480652774953917222976312342722348852439100715331034342828725655924366010733689560118011057999881884221063830464833246057470046538892907478292614602423448944058193976134393699240239563334381181678900948163707833336417811102688173863719226697773757661827496141805753352753372952338862204656429310230027230744707770396031864466613938692182893106526463994527558928682417838894789593852133071269734434724028353411993281174098712455406666891032768218857064989230273352943719338923950024267901931084625006034172558843852527495958172074554142572448724452301045551117575399930236114323665586673014352365619714134116361499586543459744367458333268224740135367782510063878603136148691650951626473670787375935482419361676846441472898382539013387409013514916388340775699712923053230651576267827042624271407321230923314392682996887143037022990712532713340353756225959762021872009514242991376144186276501361874339055520003372782595956191248052171953127388941504557151067134172037235305441026229032671613222348451106165376621691896861425532157679373378475707108969866298468537635358941767820999178239282768101984566266714998865323789910030648181991598174125951806712452767096193718718572051339350936120527364451143222489113177049916543056601188522340097220736660763420755163103871436619020009733822223501460968980525070658261910483335221521520811753482426446947628983568718880994924958685332182863411190270215641744194791422508392190643121977285250690120956945936399074656625119488081247187999108042316267548244560069820516187029033044140743010342862840940787782797686327852789200421731502560151196137873731530506665785034772207814924035897918963911331742098092846070886903131741533312980327285127654865610205397520338293101219717274657192459662386077075897911193084785500430324834542816202886285332647977099597972133816766452279941375203912616659848667034211997662798783304495752279213509177621770173136242912710439904695251152594762435446457622453986564275104858349819592414505032061556563782632546952010303468351064204276352792521004195754417033813127758154025729026090062804433219490963714763073741395125418485164550825277995273412677447661667390127689233825410313913860985792618021245024404751646685344369763768556187627086502265420243438822388124230797018397680739029522423526412698562393476597963277736374940079906742690816444767919944592517776476462460700884681997571407313964256928306911254257980433550616592304782553444474620699620003494310478468145580757497111760585411348221780147871864107344910648818158324194282733719301650437858385102322012432414544827351482758075496693181824180600347308821689272561687079910931736633305388754868632884206104948996567797182992293377943628872107333144161628583344699585411858253798073658738183834266283942956914719982548565674382883081082027677599095764604656668177658382171107112139791710007423139786625225038808769389898321504420841119436959243166983623053246373732796118055092443280543407386365201927242925785276872962822236018851614671589890188203576933466707305030329526906207031006484000322307696755661451492644016628686003814023601710088182402845263959602557820620587864705041967137245957035637704563534715093462081913170349038408804570719031432654986532886087336977975732230009367400376237566745157081288919323211910232784502419629702665840773501996136936204342446524712144301692047178844563917868631334728836214341173986265276961657819150763093819999755682341058622990850441131000703503551730324531598932665537382895332452835501018198846128608264020782699802020534778000350147627108659144816164992817306435362064461774634651801533863839474994017765813709010364054964055792258961904107715246695100125857639362807591906883658506447985790174858532725477915421849009923109684569594741579278962319273815647596461118556280820132424059934944502665240032179019143044478510818893995202511862788732053210823586756408909337225479793124922144201134746141892465827203868628031224922246255439678968939737123935218626776022559098571957295101674423132003289698232406872818021037317280813491551344564565849730494531294321300092845236119848672413921861950041157920012092363092853236072784763175975760656346189569544434321621964836799813835230366341974087819898338583166844507636877777210321500332039337670320417142788364337796635770250496128793394650393039780910279340504787533232640257989202699817584685585791182125302548717076962210409168139644415349320352683733004846621456181670178282640921852919214887344393265098717710773808633812293382210229795403702859696507960917619840313295660826085552804239911544829732411094307957698652725484210605202568881709891503538637785541842972168175579778282044425149260602431951013548446363113049761201911822521324030806420485461308477301731764262040841433734601324742827382777905695741947486749456457430697482384899961349751142820406027719901407204897310702310151272831377480582229985515720094488171606462532053836036741401652145299587048733788376333347171218090092289818884656192381890083408999590060542779938379110081244991606017554106789228040197905171946060368983531089301633113628276583685530101393965438272934601431348172405544500861494611817280751461227974408713880949232623478806345687825641853074746477291564046923079378016868091619234433575794612147613110808292025999205702458811814979979904781450695840483806036987955722312638040831190711704924516940739608739790203367477818685658684597870404946766248090965558722449807688674611474350985614699516308991093008696362107086009277383637115920558705403439465462291892280073960394412470123602183061737723456249119993852296686892399810392292423127491920834999325982995676710822045145650114824566335931337457368483070581187601742284208729425668757987161685762003754616071542021813433827690008279808337427572905752664546850876325471892051089889103773230965187966762230367247035763213103440214565977720591076020271047530016883419662299698562693367333596453205428112486091046963996334288426387012386531054992660403502268189817807233905330581940333102177807686517836806602064940548563363219717803781004687142610317156043908636944536525724949163194175404118358918912049194229893234678435552359144631999683441233550878029932430200949656249693531876060339817318163036562164654465107671321624288454224427190810510668646631677182932379697833120729121567992280179336880554964294475698342501267570826160162089960985366181828747391602673355291054024714337984237884371050864492774178065104356004053202560442916854793924995652127366603573228276761597389643940428845923466247987243795794936736950367835414289016638369153726242524782969138567542797414353332742137352708075213093263775152912238114013561844771827078318896205057558363037692798008324160860442086182012355728839134817844993548524609660727224348467530703419014151261432075652786973916123917055967622895507183997664267837661350471095925636346651427640880798946265391498073314628943671158393497129584408647348939266088920179306899316238349358675031122276486727436955300655985367254641995716796578680499995282352904796265417707002889202188132055498191586804600769838961496053168675071042126701466523143933922603077431507149127372012051713007741271450235985784186509778214177339977939453113203595805991986388901546547557467687354869023051571658583141675455770920296303302992860906884305395940690730900280630011302428988870015505651004957805802415992897106164876609729426181545846921956748438859844672227696154646319046594429340730356970238874127106202825273050208851651563488979052114244249559849051789633031025888002606205337994965954168111966398935432850359159084585377285313103624798180760776379505414115355629255680117167390037426678028097964774205677913875206659305936364486016827373318499589546495073386139007924098080008553733314007849626788590198414695116244552002128712907430663965445698286902669967454131922769293246268515209313728803141574035063549970979225634426198422584147626835580115689270848659301619907813090783082552946991542806924665652955291241810647398293478906667748365293806535309384876029668474689771140240218049967125055829342093600342715784289799638404155507000502039956542166998245439160097112412788158909200599742801264139861076873045884443428084785937813145774551203853455846684536623705729034759148344970061611101618697430546749916445319681272578744234771781984905661187362682150997310374512000154711779991361697755492815521934581774954769409184162003529178763647044587125359862668794196928554428513351560501721620971593936263464479294459129650745087945950918317061607805021169698784004153627139867931225922158660723758783892999170142787499476834074498082522600317642824644455172335625878741531641704778301742957016763727860610787474475097944384666439283912914128520142834137548915826677417825156411509026573739222380378220368578393968577293680410777767100692131959197426753397412905184902567283066090089026973169061403199012461404888530721180430076810443374198020948341042159547745183859861382496452373705064733458421827279522171543789363330468273725984011097457015173515424839299439095058824051481163744221119274842164158184771112448874413364682373810371707912400819835400152795063375172703771222975593320431621222579476231336274050053439045880814747817894343110873118271686349037465264908802885922093569203546933916715979781467537898609034593221131626094943824719089866845992230323604948205497756579044215850103269948793528911368884105579288603770277039010047918978529764503270872180389043853715041550095995975867303503055174323322986568128192288565954764865016002182908228482722718590692698937353522378794946189734208477775582474484561003247571905109682160345400688435517097961618694180420998281931698984848328592023690851935884059861325802147972669613069348520492755036017273136588912329610490913556959539231874041802809265026138730513236828862522817022671176322781624736723525344284299033619351011926784913251769501974811811908649817814078010186610318977958251826963164121058147266528053013230235530471691827665273993024989966913891508344678625023661823520965558724353953804272150668353483054878591857636967775232379665224454102297994700150652187251514323927585982585196966051502783260670436219861903837416284411466456033575307338490754479474492819844003628654412588479355909577417307934239307451683342844049666563836213935118651134140697265766581491903177564355208418829483170427890217305231360562869271840552028974610338642309000829022592916114202129121349454947422110495993952071310193537387761670474224684151244235300820862213295907069879142764790694870879724792974667656243550018532439556328889051394576393126106454557197461955320967443470031211755837204591268918855959655527359254749685652773733000490140031855326285839856080645950799454714127248241791213689167801368818754962942712641633814985293310757472867757567197097044773387542693902309225324398163552393396609650716063386105095576741740016024193421201499968674784498645762302654497009899951651476145061979525211205083577426714939656229750692127870101197416964510523167168636317852002796236811961142580567341569838257508892893823220899866172796027913761319109052354838299948246145982209034263624483144022772510282518889682441104151042762167967945901102019965510377553963744603087680993043879417655127049080651454478272004082761053278349562317308957375753006874967264711248121543705391398485871291315024407816404779541865091824508074944293343637002744308593954333705393142645547039493370555193330091222394421961790000813692007563673941800471119272278534789640702945223412199573181441143077099631315423486334994623263361160438592945743183932420954607676322077390277936263248665160323182398635892043186047101791524207989133360712156894482487784274219865439402624963049329194910510129530326513351575742489976521254810824865767245473782286219750225755636480482208887045407923208625324308975153303260426592086661403682222150771923722513583941903537203752675319416707081528507321110408440631428316416513057951399765374852946645818955228264454402119676524239621399548124441252342931087760079820395197389369194626191234622542385709448109322651714303469164556732121935926175774189160631823690822506895424408967416320487348076628416352045110313293620586933876880357304939277347886223057225411546582173960071762788161701325863824272008714727116595513091976108020099679755597359933230497451556919846377208896159413004587416955183977678514269937633460863813658173699546970350394001823625341212629070581309040474843963943897862535587774501470791621192148848074091511612278669188373267155114781053550255138531575389129228052298259285158928367804638626155330714611318358264986964002924127015294888584987106633395724680992272431599957289450047190399394015108905877341830775350504690390817644727720950913905833425622203030738228357562236747860281026052137437717630324468616829984599508249597771986648069355298120297320285936717728371162978971049580016219280424221517986133794274970103393441788102000131474710729168815095750206721429125591035224606585083854938047969507479718174070876619810405285955234299906372493496442111528519298124165496657167353207441055800842270165266579560654818292729142289561308582657314239438310841260828833745340942676850357408618894856775454359113196986480293085635543325992596042205890604681829247786220502816134856639763461755688911893326774741395394271255383232617710050964055131917944012221234648631367406233803770133922748770798317292542056040105475087744628055470643914513979751681224998190209386190490309875525199918785977812021811854894953524612955721760568161880551292452674717324934978520750288143032334953809348948425661987770094209987329344843625798284707260252527218796896709098849494008272448218552168599851407656416334936706439840783954759786849632578537320240302315256088228681376823070514030864272813481215209461167995110405995442732749572972315008504465094078648009831963693004128140344906895842167985360929401088009706328054625756070834289794851201324082190577868753876346613468596520436390223704448321809530156168909168708811407343955815690513300567286641491373635217680855217243218138146578615113817715978303996620231636119054840725734012110546574320176520648197179545674093909761740767620737455767356714777682836073221786721809246430119209930576883272283635035493307504402979439905869647307639430378491726436272188424612580355019195847467348773508120789326509270707849857490721812455232677924541466709146582367268526920745042646164665489436321861730179117895941003420107965123830145203272125242237005078505518522506042659785118301239275206540366443218545265429345523908111939029410003898071770776511590508235771682833878107249253322557294747133994717267909443519236141456027938012050537492295079715611655877959670904829589805584949979949350965962488366018115869761542364469233818156874445720124415698481599919310072104462335676255745427793287645357396273351561333352251865277990870209890421834569396501977697120439150645789992744224376690396651014236202623297035523820796480035130052053746531931675490129043881439775647939985409339516720343662372242213256281503111384769337120237143979373791526528384573511232511180423738067175735433907060053693209267948499636941990144010359114938408795011166290938928513135382413864538267874961777646721121707158430717016651891366255066904258240103672182490917731622900272567606736360409863138176302316408616216467204813814585181872499460399626612471645735372236803519538416833271220144406355235105585540139034014061913415522671172137373739519967261570023954621023880914345249163031416553327370290032095664967073781924940908936401080792666571934393333677281874587463879492664261269535437621870792798661726652634346313041962873610472172330935113264376424468267685496309703929321526323811424073145475926525469419297724031242103648927085781814277607019664011570370946286033580340553072796090138600359707862641381999489495514365949382875127874973137929570824305552873282424399487330087954007319005948676654414416593249708812236108661485537675540920103116764002639759418291919006231963701454009035136350588297080358627435977386206864729699714112573512647418168705094531586346495709244818094894086001596621275095994761981553518803485087804341346328511788764794548710328901490579595535953320313636928575805911169243561059452271010292044830744739828143535578238703510862818415513560135836132931056060982900169918022596308885934524369258426386407599162665399737132360258589642254177741509390350597049859772456609248653359705259201493821090865599004318948926274951661232932420397608888219087326340351307604559249686703433403971074166959431270849483381000089672523894849702057796232417174924449809649720180179392253462343188998343280673249614678958119870079752079257935843559135216484527502366775318900658513768363306049166835598734248363370788667089530745560143403194695533442362981710530785350688391100819774230394001861915144529625203032518914000555213872329862083008744108870457438793739527752505906128761143491609064284841053799598210531382572143972874584508526093179690316986501284678138702419081955287954757688802099724146855798649604413525878591142089333795209121174516772599704915541186996987437462896217584263602986778887030185929718576777833860221293976223368495427461436941473051459074836393468352392678621584090373095871068708810263069559526649993287422884279212107101110580401422665541272160149422704755837549472811476985909724032790639222515880453170743604900402296715470617879887380581288422405635757007732346472946712436741528729534115712530334895234343165663478305839097617977232631794092414002951066545730143447822479555227893944285927077410295878119240178224181713318668270001873768792748243648258376694143499530152314124507120411413646163364919709580428960502335155056405757304158038713811977237540768895602678236428989349066704819091733603404915737651903472085994600110461588703168898371375317347917082566277709674342657464037041646519696720723372615053244172061855342247310286863974411849578235104504570256909131180057100320697735014540533100110428013597213637372049971325779985681857233415271098819860702915997930269534502152059524090601260059374710252317396295458578391182252264861215779067288640512786441203962404653232393140527091958582945899170663889071435323945218177900415208829981636845153316856953637863989873239244893080143622185620756272029048435948815807077229709311707662527794217255153231804410396296263777403131273290034681630015850460683050378571905038429284360188403949526883897466598732694746269960442319298607743831917016783061425419244050094274451200256557952308968995184015395425158750188054560281333805843973804102337374766838653603595141377528873554923376894799985048970623868350588042747676736016175832066336763296869504157686555087576402875321738275221953972390045706112555386892368604328821078559954415875450418026375654571382732482405940292381155843095982492382413347731409368838938813575883565408347547848910175407324629192005944692650172334397202957715355887118912898859767100865371606999284761112144834666589814065759305062563975548798644401891450990002952512943236289093072290335445765926695838191378420073028796650441308670874617603256315919308079893281113523222800046214320160816214644647944280811316186852710031486755247421038138644760371877858799929010201581207400057648816230717321055023914661618488530516507241972226237278447296237346885292802389021290711326454080013693058155761580843651324350554073817812858651679898513019382262779323285269841599169640046675634149911854086661958132722459942365182188016934440277103270250698128261009391428637032766926549776956198920459882636377527195838104130728132799198706422759623740816554734090401679034104887621558032384197047190389759174880021609071801145767877576229353946911785983534068236253730119591148299264456547318181631038112678502718621036664640376204701539213964342195942455212321715924724010265196724260684056410614231709834882882650929494777476923219069617620796913759867795737650407528013370529923450482357482874395260706748012057767519223740850808094702456979574120945048522166285124145423791691658103817866848200816850712700353752444424414030178442190852086412566262986854332363387141318487663966892097528104340317014443022912372424306929116405628509736481365485426023933047570131241981536268550393199485776334910365878870478374716461195083208139657844768472036574268147984355766356199376833389632296682998777198334937726423361629826850308910804304022407103854212812704909047457586736548373276660182112868072909354050565870308044779738945884791665591238921382861643831506311040374295382730722953556096721288527932241638606939853915778375243619229107297216226965498422778835665558735155095864177085805840743032004702717910480355807245141292710995929379761119311985827305579236523872740694322906321238627988025080649825067025968995171609492392878149960324063977205306633048633228517396510716428998019731426022957328029202077913388301077625655872191896663078379468667449877319047671710147857995825984201322523695205435982528943549138505481426123424749965128258978203008314852904446530998154794765770757410574378126825149408180878268215734339731845809974355564925261549916478634343672969042040668754523823920304829877875065150515465540372861377888928485572599120243201272982136872084558694346552024178162370312074077170670890249669933511259406215722751681826590722793723584473367864729518092507660764952106442939524878139074219323529707894539520144659994116200715436118411822883004606649711719069823790409746043999091707490434998552231880308421333086241184760562599829525506835073267414390801137796236672544733634918976401673159199200118583730052599094122594369328499860503735269956679165364632437621556219771782713390754245817549227225929321833158939555538122293610862761495423726828430631466557727143080080758984170958108250919749733545419321907827371873809299506443298197707823951071162622930678450770772285389528326619092862766067264794917938880774933559060439682271942154813326874876763348011558331010503027635837010892040089198962419208862959547954840084429568851204566319083549630298564523847255317030010283339130188583058733237638689263013299836195697891995927912265521605503229756765139897800996310761041639380773396815478485404523152305115730845846259606300738379483203905497242216030495499794310427001346407196341061721309411559789649236555369345982780575092485855603840417359873663369423250452445203777231665965033233824220921535622322331633542695489390279767248470599037847416531848963682891190751619743533477231432324448593273285065050898471433527679027646293746764616665058399481559679188047862706850468440299367432554351795545305092833909493891249614653043439006637279213894746824229893619925903866886000217226739084623342874243231712773167243241943967484965254388839689601205623464073557988594837270492425539793545883468037104777545346362217635604325666444819127003987913905786710208222973257980654900085364907524957479452875772056486875771135187901246572614094837991915720688676890530733453763296669399337736509419819111951936687727833548237933411672815196468074890117300256559900106767930655574834712732942823179938738483440919330035744494417067683907528934632141251918678033271576933617218839890084643002931736662123087171942143542748533355224538010538151109440510031826593234364491649311325999837344484899892555242023021188215397968445424840891979204998818850414888350810329447364660348256618325343043370408501620927010599224270078112029403805387830779452305222725255832611692361520450589823687318482987402469830257684724656459357206899399845916603717031235229355195260620106770720840800421512410370969352536394475078042983243394863801750920846244599497335440667166737869419687737195701785779597541800799440971887610088999122430112281818181957370443730534900943187174543479401041346386539079345761896488148449428259463281532642222145812595713354346617480245994294497830445903608312811807618867258017480274426362108329050555828826293724695688054675485008476104136860529867378334768625743313916584015362216662305449502217761864723306042839261488426266817720393201285503772373308430744087179317155781266346991628435359925954180172165574655731579296920368267725257461856500326708250555041734212232931044487899065676255447737178709418208518561365206229227038847419367863260225997519647533014396382617804369656058591870942645453444272738255173620738366904091436372092589892441025528050922135031511690973396566081890347690560405934655661980634020416178146391298435437130989882695702751490792144109127514777552410934696562448086988600273888480372563318474654495975575028326472077166022907329703632436247941746306663479074230518317570573765169399852617848370501474485857273139884042480949820912542455600774668693051158721080855994875941708240753468217063361764406655625795789103713356149946835793620595603919078017558475539145166670760132991493474761403241504370539670962874081184782741003389581735954693502712906473061536014965031751382546970270039159391065841448330681173843086490897595015794397971667248285766344539833072064934262763265597046875373189535157243088367320863270802724880190044442951304803050744528871669984335871402467308598193057449095259971557132367579273874134046884651336324334874372535882315323362304688740250189774206673404352391090615601300805034302175764050787763913202522996513567185676393989267739019545849836841728846974358149284076002659424006629255119739811857650392126886715322362902922017616877603316498094908346411001138985931881063620571283350125174310805576445674285329403536629495781434601606516786399205904267092278962510745291101730906733735890250131081964175853270320273116551801217255677464507450491899518492003646339957330137000667963514127673080005829831683145805372029730300564317359693177739609659068540051986934082876584591100199609334151502981281385744759923224224816717337712672630273988555177822475357709718952540437278082745312503596586512750143467673737014276151999533374034263355845312455895377830284506876223529349102211918375190656539169080050792882068570603145893858931107735735140568531310440861043977431824196523785869601353875495000741063677206213169269392110806176938183541079795639857766342031483494876048561431416041499093150451067848024169098749634590091509634184212061705857534814452842065787546483823581997028381446108730812549702525650095564556945092302552840075550890686060405597636209353872624135488386165510120150396430279041008649908768065617903996842804128613740403566281501442460894082320376528407817778445565068630892045402873135850849296491249347641739941134446513671295128650319523804912871080994499460308143114039930519061768093495031411704971939838781819844960170624022263900806686784126116748751018785515119630685613812023560518829629782959440343062433401948315677066592794645301566879597410911554221341568362817098991132938822824804176946794937517655552741806921837441896188975490194761552327791292892623161799433601922845507410386230035599208587587382017676506299022018152122302899965277334756628845568979829963104150330884116376135918190221674656897537786627609966487514853625331837248116417830054789189823477177658820364654476317928697495516280868853379133062471162579356546807344560398980308130344140897849567248298136046690742456694886581106589597893358866282979903616455488004111792177031743720841030247475590134354838292148950980187764218551948076379181489923099246593266902664570037663620183516852063259755314682309207750730988138147679362626113160337764214844156915480686294119228690977633585002553239858120177317177654981590960996681169318988461959029325092134327789927188505828436184013323717694130742820528653672080861029049092379895363891888798192720282285316657691431550426165344674486732732317268734074516951961078005670057270855434217931644204503643182605110448146075477733783628292769196917499092484765663221716301145802026339476357484436398959209145762407883236797383843977426538645977267903106760767655523391314186397652753543289168222176563298669592827505253763393162379517355105498911581286090805074856152686117940813404605149276031983425648690418702447103128625178041784540407262599851961065141211541844908183332260690239093513111979289609125276205088992166084665629075824707044851345419491352566890636428542589409728783689660271644536988562796609573709589698781646935057469166351225632007365992403944458251582891134278518553483908250399385393213644517848139664423425580858920888832373329453181259430562427580823804451825852144285672297941205200471261187434071858748272494893153707463359802344766899184765740418349475046948977228527106517287062238816125670193439338393634506777672707707872295885801104653054309140508959545732379358415734725831545763202812836218043394091411301096372774348664016379833951257776126304970691242877406062214649706227980888425738789583565719728155972302031898039749487014883502981389374540806537939656692716116408944438420171355223993133565689425351361386801107671440540583725967505445241332167679542705565331587279059989763355423736255822672862650385085365715772187563399730230888622612858394307028079576894169415969538275513305535684383686162323721479614655698988251678172790518684600239339479847693691420758801764693699446143222291199732889232505545018900868559356852868025872689929462807456810986422410633113967166461099890739367724007213712087530026106558884583013482891954501000775891425707421249796894781430301273666021966862691131104799997128042761440694898515565130133828605434935071291786263351606414045053850689398652789886572653328752996131293553607656209052456437528766949353564507847489610120567329507321990892268538399435097639651614503844934025412597032114151862053224007190492121936835952830037212352916357818757406614671727014437907186090693181490903171233452550912639610878293707269638155898648220721062831984382962865708743833845727290569246476407997503460072934444007051634925000584735216427995067531285387710144272587203055764365425836281215704373548719494440103074694253663523062099884521303939983449276315513730150168150918138354294854034690138844798567849537837823681195291962028508450182522790935813200838147105306987601232207609325145596566777024810222866041384980637738098044195426508268750396378427036895442037793757632309031692133903208179429017417464920387062219442936905934396037997821398907160302323142574714225362641777516017412854543722869922237954666415551521902672590335433738915484986741827572577093967673058541621285385692280745731181693263477408814600584872233039157565332216948590683025455318458883491738054690653631577889352409038183793254618754222582213110220872283907280525806474290949659074302359181689220589083495334061191147496778657365059871529266266251039668259118405997713628527240936405173421971035941730650176832312247904868837322280419119721522323295024237755363615995815129157147833176447753808665750779769559004390047984444257260028382254344482794620293138621543306527282577544064258659048519659169532361259987909922978205881381561212459027254460055342209036212089919578835792026519415176657687175222817320882481750065572654793399778116260602370251596263108678577122686651376091239724592758265723057084909208361154516725611464252105894023103292980619563016217801120200722909210528007873858062238473375311914244815871009361644488175052440167031020180062531631616370035487202790504876678612043759565172573233786487925737475623049610428347547952521180213148751333444829576126804322132010526315824325270813548214652954365484445789254312386175271705380294193435766356843507107823835720174451178919471992013477370933910992128942393942330935850334439660609610297084490983608132087882007958713010789132275098131076019954364320866603868247473560302117370039695791154765139833964197790297005862784216487956938478825574204356883343506068341240991691768899013556856937199164584879015902610630269157018332860249397841584781313264970086051975744276190271854268777908362557379998994372562492464984202694782488516584998316641749801842734854247243879216173185431253039364268968186065718681011572528755419147748069578331015115985534686000073464844602807186564415617721141373380322726063388117022804395110898650173656703940939317324375267413284383401046846814387427996781713835230697499317288077018246869437660319157595317619990419459920468983198652664163038018917142121140659629004565296717186489997942617860173776846215131453915759304207678293143370477304344468328120924834472583271662487667548911377514710777168096155463830865426630476138899888100662110288383315602867266026266968111641795474642629401085717981609051155414652800140918871544125100481637761536054081438959560220530922513332439243877888254844170027792570854901692185514834440104402885977650276561355915575292909034714201991322615790736980562089402848959445087083876157673147736074036905350877140036390383890140908422383807542311318264394403860767224604107108379315311017989513800124019574372459144378755208236651642865518600509029755319423347074779845761279583158993022599401057739855555559408803956685768944577865555873901811724544900080619750058648208390752334147586101980220019227006364180653708531943924572122353539247859272111799089884713181495338573020213407751971895654190110380513497332870688192328711031029392945174486603093314174126340175114684512230765628742097720157641567017958586618884807820887201734061369804665399338136707868585782355542982621525115684654691880639574403582040916828844942925426840499718098658654782737209710617758523343962601072029024457129618355199511583049595169357962348279028637430037250309953359542033843702208663491753616806914205031596819624416997764663487355990170583963945661188271613665528224986789983264163726707517216930122944264103466204263128645180888928172580825574020580765368532621427607153995960010877049431596653028340656767031466773774555589473186204503495912254152470773055117792942885762440983345858055589688947388008244011365102783832867850641046171308787919166421571113180100667569664195629940637970462737704930204336605552877906463754925649572160709266371645846499079396947626774481862225572129630880132841535050775777340654049143620629012477583999450979221233177475106812990516351284449184107159614620751790054566594538209762693286321361336527806963914025456943305500955565469979939785590084817799176907152150530527832630848634865470049764976897885467452830936601398199933602433318316863028811624416409563918095843767998840988823600599126422078964335422495346149862577577228943620112613261317222968435573284464918058187516589280917688382595804776131579772302918485062871014149496454152053086929351344029289917226723695259946541109590202681675465018468441616878452911036621168874096845393379663545087681011385128240813649299650109687614281456900639470267723452838624209566687021975009387091236122715250016042823481912691806571897731168425448594015322318035669784806676202330125937600152928428835930947302965954319179059720945403793579667217049154006545629582591468769797284842668007104908674110739025700025382238464874848127535570398197178753873634219770665611823746363950106598139684993105485732112664377861948623147721391562940582885353807163725788870207270392604826413061300295823834152628643010904879456325240974165966965690141617570652850588051886412252868325407784338808483758690535956926973283357724421509085107372526537627198436508942487007877819996770640139088716971102981876160954648172157032601397933385282207398949087353378883065338313206892587446314124670488431134119089954200945237949420077304400851613676338491727312662902023315039074938021430961241570560073792937325247595361467195244844342439462661203809336797343853699643745539936165522257905693474508858667255272170658818996255186219788709238795657891617889114950727367049222545418574161868115184965910922388147782868624902431725955786309828637911736480518879914195395733686891730092501988636852448676955436582629014942219047520221556987983408325914131454576934911780381437529499113196994333336542660354772210887351226615785148238908583659944422072848614750311430211858584633533988777151065165230460823341381408632238723437830866582834589724719223010910214115464030046988979335682638727029169208016034884682622337384914657924967187348385957353872634918577620499931294579761373291921605812974079258347127811073934188798996025774186606380090898908080597957377063324293520710595804314007247109495434109129911465948447446540306578969119746338474929442830070876237481820063545509717548714240170489941597566710804849068112301130002955607127352069037558736055249631892666108810679839255084729943981627291919449948348615846690354513819251744064073779123177356515596347189604931311712398654062525829300016856958235752648394042057960900650472271420296303607437148539407425570969324570330380612246352290257862564727854061435265351434917790744600293676615734501620147320819071741326192932570287275234969447983785323694659836893704786606914483227990490131612172593892195686984419115176005139731404654965123830014904707087491196340304152073991673058622962179032745679497725614662954177001134074389899813146372460186097081021878038684647957774339198074339734986430818354171525476473844238734361564510794455001657182851279126677750828000038524490226057485181554087979393121431310408443987008040681734060760923593950879628174824375506387346013587372830135908090525289959214017149641027488656574168014186163478838428844886760574086634065399458734862314032282182007748874724335367829459018835001839395539115996883435271188060972851094235528339287423203832737629972471568150623251714778332923170657214057719983469635038134485112716242169608139761362289502078079588796022314553003521954583618219419243237258458427479707471539326452302288078528392381701481841213700872494721795713468939239881862727459381138888516464566716215788448254103113569246388124885184266848817266119931967839828130498102919770176725382612700512539153166033212062527167419482741537701967132763358683105002855864884215426180567357017951221334010451276653027850478423250127999938434773702552327600754699187783927783856868240576123295630025163820743946313578520144166025927592371839415690272339925464067097933898103404898292467097779204585543526817464471325491800839570006059489577519811632111495432735297270981236387312386073160804527327965249099995750990100723271530425688355316107809996046326064438946835817563782078748081841778287959077955993123047273225813480172602489620662000251037510716744246097367573503301795955448817520837150833535847152458877633902447466128166406925535725395101063955848935275575906037810538438417236955021773766030486015907379350374531070910899161170921586998794675804517518902935488743284312283619917239774054487816552801785349882985189920692766465972362131900516814138547031591272525350855257896031214176853436390477500515337750361012089852673700265261843082261503883918539032322846877448283843884563962541237771815516219378532168891059350891383151320732011495695733599592331827803705280173444647001529012214668627695142181824832513158081345417246353875885677248012775811613679908756182794291155661683120586540650511630908279082393842876273583986852920315407348680745605003767630880158832755962239265642577735610468765337821185874172818636530184797995689233275370724546770747797913099464172358845689700761668421992267969787977146651499243673724922522795036959740764198146668871372187764786873433990960784748379971817423159244003109265928016345238291954010664381508478542120928183656189793801985399070023594192356877893732914937169173905735343839238683662673010485738893620921482859922346974852878790796412958777578944914839731962928803547204436177551221104975616601119267080754358380491427770612150719108565777138397646317377395761279661872621215688242405867425213420631896943802453822095201573816712218924200452989195561713208764842793334295186699834664924550355416204970456150852472549716576659418748062711880573697197393646815031169770917257387260744758488052762132287924217801733724575379834083241023597643491020990041938060715703115073374528119264257515841413422703627989716437205917731588155780295957836728618820816575385592270111101302338322135055238234070902951497006314547863703397967234223146198281055875523324371967656163014717523428235454171775872785544171463073940773082508607650796135076353134125352061122598846210124780073455058882434660188495587186764428198304319583308326208693924339591293810126464782250605922973999821087562594130563460594106907861359790138840243786941329506933565591422987730089939750543048190792822641116538153943726755970086965959574420890827772296620573071632329740839689765321276243102082291828664106225518814166334659071746812595949755323689506123889980977847524667376734562881131710169676826038377275900550135284852547525943470764414330576430200758785996480229270153895816175064688135914760662616962197899624903647993882649896032152143350969779874046151866785903654974895054362692869836322529714653758972847879912866332840089747240294139784878168049043005934095114723694893552723532038780073697565067076830692570548915534864959415364452552671981894587817706722768828270029168943511060891035882316766810128458369899496938827228218669235514451289598687152572580160096923666912668834451108495058594550379746135828548314322829478378275827804844371584014218470688046670494149744639310006600730677567787439464063820712437172367086283847592372945660635383495115677366078162930082302582544584653615561085836691010025410188916113415633718150793051338359942507146686048369495983085199392858909095698089441896253071375761755900533876190880140340269444842933847769146428830515154713740065571499173604860566279213776503375175509680769342296225932553791180841050952413892204871821719724395276800711966241390139214115337471788073880579884827843189908177438023794481011400498345871418247682149544311945333773215466282071863631726577607574951732135609229678252035266390031998146404609734502660557179258932592851336909326932360353393064490930914779501862055223857740106809028733527656670536304872859635904602476668451726911154512901040688013910372520975601867586834647519200853025297139778102683828439346902637356194059213556796356578880040075706593880164593056978380354050689672345680953721979420362593617108052237346320695517525205774231493515209361714831943844999912628175885058473935392094019337138827753062330919513870513839629603236510585471011586610582331480089984162599548036316604875569440259611231374030451290611984172694281871765006742339829718156486005614845586476938627139500278877816165672750214036262337778677505512564637519609330786957053442863796593918735344180479139790118799217456473931389977726888087861059139079844006996270680486816826888661908768851565702377779157856960041172746143677490877052395169879973688307320652816563919937640280129538379965983921326139783746014934858672517087941814555970195930212270717213081652091664723114573132876743323932065174902722075088032087502007268327811354886065285970044449600729642356036308052833682498566688224691114390673684893697121506475830211232722452510245552065902137003379766415209475606634751754895386760250034955996278025052242431397642886816115619987445097621100795734924980723196235217981656450744186733932397018475060229283767151268419447799253448734881393644913623862623816057960817506038964206869418614138714522467873028847862112592048858441250747379108305201257339364212268038605486956061853495624892589312224679235843910633954667720017334789961899177134262446267146578712778028771303340833115367698523409474413751827133667232472667723010442454074854112485811775780925433887100318754053811897581453858531442184309738254135744444294093605760026426943054042446969973798490109500427886748239405456965883311641271375459698373170096759388281828812449785056802355452661572710318843824809682837244323971074164051768949908771653857102153553465643235940775836836444352400604758016627173867826148593543799777527061239020463101419707415454659380815654113774356998721125549488728022839100261576050506272073295981751154178326632472072919296397449899957600688720358505308078185165331518940991040328209795697485323173781996696509260859654021876293853228825967086436201122697804846431819980390744711078627918874027395703640252852394363737276162281823584623515199309695896268208030104290201583567151310400761295542229357499305839288578151118228664401373472923109458976074764711566049387087389553628383348680276928507252491972006803851659424780167972485687696253736774552780034819277989733681992992668361925340474012590054346978791772241301899307133206331685093586397749827412696309043133119990607789768443344110972643562784141843346453378764036846216794453958932153628426719379407801549687742049880630655115177103794923895202233744050899620801610184074005512056235789084025079768215094050059179324788339293562626489638172852053297734754133732059379606676896009679765049668691669221440066063709719989605867360762648129863893103564295377844686511912541508654790269203410251302373881130255796109335067231747657818763801215264892697383227963149560107913592875141188580062041020657145775153175534859058917636479014502403602803191179711057577012712579921469624464896765155515431265977860469798604751325981666099258681478051260819239106301113890387582014006248072142594793593773801560621398448122700023980788751730059207921619421948452170170940925903680245264645027898483003083311403666926832444782194926762231365118500003320449357200334014520914809376213320468006257401223789514164383113387322976734935863345444851974566287062504544304406780125765674820799587800969713022411227175658615602194884376358451351795886789735107981708845124639997551787803370545092726302800717602442455212781447336484574653229126048015306955946556828400304590931255919296981410223744704613239862995235232792901866418181870704716877148984519329703230383115503546033893704963900333906463163886959109178679058702283984585659603089764328626886290809965139039166531587378913039732684897557732414781779586030407362175286284644804219118348640454586226303608975867121351951595527475083173249527279053614897093924168472125279965873803599933494674956179407850296107367271260279686566614360419162991200560949271472490066549650139600169690685516245166106400120813004496720196711025206400633769686602141709492612724657032855013857882364055524371951442460119478527890252820581878643178789861148700673763070351111671390424072753746007914223302306083380084783322700559283167357812061072842397404552943655144712116108520805186368226899796223339844793469131343186631600598235405708476339287817197772646295438313956814643255685000916733659601409177442225523215396406326868124222024273538135689779222988869337075696398200969830149169938945380946785812517038743320006953477305941716439514753694794607121231911422412204659229212171901203626855594848804972779595164693009252026462478313901772573847593959349404593782054164115943578664357829970215061198388121930941430822031862536056979270794133579762078131520026904411364806603799906360289527515090909379843390222870490674965599684980327895888924235499298186555426186272568468675315396411467490690199084551484591495526415601635567138005595845752095955759204413898942266813224003984654224275925976248789387470155570271729212526864959757875948038388705268827462768294151336353248150658807345376603756686706442639036892579249121103612471423682720379703865278574984282660179520201163068020066164485567726282626186238137031103970888420531108429255039198402416461889293144384416218861569768713133347749482127576617753827961115474023860932221009914080496844071487912698433312336203780172847255932087572462294426439108925027979972533799234192538395090465017474863390636443639094780264540262697198180556777421432935798862091455729026327489102974003749193742503636080554565936828134575971318343700729999891863776996280991650577240731621587568796476390330730579842997842406629257419988527762487605484647552345944448724523486353764523153850529845316493010500589995418375276066229273766704026491983442341679857879812632420862682109007678696320466579033824827520249801832793787450206648651067662297540698734511814540807710683961916062429830880152100395237642781704861950131720442773231626224965321082546763611026194187046707886567184801853167040291669430348775911940044401186598363016808557335522214442694041365738638097908377858165420164756764667771994861866351998412198892208532044840422915786657387333686400683794805305985478753768436479305408666104960124969577370496046359096887016798997329936876634171812787698330951167823178460646836455585651950078848880167322444855981184926486124457555581419396487758747363406971124671054677651071488212569558733994170751354259498230877807896639288023742622615626743413936753268010392842479927474695674867838837650654607896049146065878434168669500481861677990072008326006984417334380618393055200493450093630875221827425571509012068139106754252150849590524167045398460732806436504058945610744434389046519933110741689073696512044877379620193018825447730721318347007486795509956647992390369484118608422185824002112059922173943462214451570874253530288820004358682873805304306933121099020217490498950354049857188890960729676372566666798415081423603076024859346109249281179932113004971459256804611654519049400984724328453336421648376685143645616904168308821225963526999828500556303300171637524247976945146292408882593998527738247194102515670751570147127566587009526397989316398777383328570525677870343040764238658892155140879448516129049313649241764687716501695071484391673660211291044066570214046153446319069810848623445897609347703447285113573511517445535540179116144209666164094670912643015828023006821564177939579875564846339368919590055534027403965182258940407164586924063679799168956090759467193579850316384830280714296726777448410458345678928790814876250344398946893324129032121745593569549211286615023774618072159730677222563495860865719982205248903871154226649059131455401389218774944798631613164559476337814962730519490655482444478999001459947377194714816504475163908149563920005444622278179819780497908305381641580667361480561609835207897701998032007328743262857055824832498995483307414428625539276914708175885195243989270857287576290648072950555504619934846483251903962056193904832787259938488502303892575954670137879062803787350784853343735087574190843116169140009027392579060093639504821288753207398491584002285841307567933717150484065430046662670440469248435812751603468039591915889487617729971101966623906270933218794636099321252025634445781444890851527172754924668182869340251233550470803556055018342566995827630288917399189332014726658298106237832708282405113713795057079876411435311118540472183151644628475835490283898295653064024238528842151525723922361385087945753400803942106118167238598306316577912944434364846658639391228963239246687545689406858975773367547709761998854905779878428544809133730449229794430214625012510627198180059584731644467122966755636981146833619867495598920175982887402729633332741483904783069477879174486995770145461671707520996811564886965914838593118643939752987679294826985826116346577619988362712358365262511593230128907728264237005405866456005041013638661461933290806333009951654758764508771765750963522145495134318825468125702133824739313047475026522341900216344355069888483211232753069806606296927223377807748195815607432125849773147396907935855565365204874057496991576181628430857280352278137756, 6590475650355999754192059863029226096105494470388559194576689032952251111803440547100081604288102458916769377396715420370209494720682473247638667371214791336902296214672954945869190994264098195111089830300071993282808141374233825877227054852549921754125668635662547222623399173336590148309649647817697832924980334380211242273679534385671322228290181804517441793388840947099666200517051714358514859931359659824616344213280425630988625958331388238649541679289877794288381513117560927973719734600316120627564802050774862496183442704364089712627749025637720846040976882853292195672096035693692145836202909852623756697022220296423270567020398457377545437306314161599271630615720365838884851084757132632149293280278006372529664744379485200407477530730090427439736453393208102851658699501625033487937075977801907859620552769985489885035636951125865778765968381438381017204841826729713378120210431271895620411143599738526427296172763018005442604473108857581599142356524999084019210950704297776201755966352058656258691420249458778040660825717124507744756381369733729412399364076625327385914756701397463741293550298235065901348677441939348997004443794144849441825201691451498687196162898909954653384308500377678565923415498603739847879656859602961764075117417162827947216422409570291596194017392055158381094556435411080083480161188780636499671565631808539459030997475260865255078643992527787808268475527627939121553433213144417116816619563130816796428464780202882969996561738554365597709839384490344335807487762980770481598313299387601525355414649579163090205820683973245080426107222075329719216839332049411961375000336753790108183201646901201911210739389314917828555656652955385276083361301473400788402669320383748302179697597932384353931747306374483957991373068479137301718020038175049740907219800919390755245974200448860007512364988026737004315976694082894596044110202545678295896694280045344985563262940731194473615117912180999108274130680190207023156419086697590984126765032947084108860785747901567456101605890268942358470578064181062109476940558267381926391683865864124853903209060330971049716040256337199095778433824610591469081182666736934618984776230695146454227190137406208882187617901836207932157607161808202705028244800961315061690698178421922890952951130122626313864288355559827229595045897105482329515786777617267678495854187631801859960648905043726884388365550210633061267448641516989956725372580824169266639939441192546195351103644462847329988153484133956450601695487110677423026696846431385221919860720463955784378732224456074031562497152963508629313967212611190066173838154294804205955649401754408571005421469179040091964667600453161565746556352605071082489436489371284809431819269936868856940788757434943159923193213068603677305226035247727186257370175416884792241962175390406006487958769203105208607801674883945879167456347058659185224034086182551977270886882282205247716987275761778815418718227414183872205841677515873409475493616263579089678416278501743054498083041132913833937016697319298803711474499771271588121270740261775842082117473161981850268605460223749983801224395477925294836007385441089536550047302439956105152204075436910947908922286489547797987683488888480350474045409091326647887692256983116169789292513395776389479171058324015947526840441025420844932575307609456590534963989104735308101932478044334482588224844767560516873014944557955107462428342414219771707424793438117013609705529432870137636035937164417567571537309964811703677770424492779932781952632952477683147808541347148220283287454932370472983546025171641341395061818148988378821718942235800871000607533678133081685488916982960609556272224773735395086470752056628005748487510603740267397504641073161577936975373003363806495075598626074110114880850122361186235402327789572634273012632728651735824574185831548290208010180127644829602849266912386990845379463373706542792532672576106580950502290414749062080588616599377088718417361754837649426555478874814382895078531441527434906705276566448180174667534009451038807352371735635600393649685559813957468566656425097807251793124878322604121273094720732708848163423591583538585326035312559291534234161075576998195957234994738212468169211026586932664467673123795456101349094488509640692582591848316949678771848534458140848532954494359064723860055890459053436915560612835196740563319670086764144407820555152617056906161330655867751594676474484474990222182041624371541500975001056061973816139718939952787467131884243670326494921224218898364074977495792456466405976993258381276832393380534740604520752660895072075906436580871690964579333493105971756518350672372831182107849100960842772251750538184725687160999842646810519161819920038405409652155713067900558233147707998579677318245047500825828350722107291543496346588154754778403871161955790586591012187077849151392602576496928091411886208031562932839397172887158809153105622472839450295531270481722719874455718403395785754064176909540371634375847992766167410997038800643498367325670135397589669608059390818923713811824863999661915546818084763575101630996510238931839335329081157740639194168809065128282264706658728954242270947462177287379095006482204678396807439007539676184647635596254463136073400011438969378032531187491434497429138188961895333167142382778480928755604895911618897936621246021813270012740786370085693207219662032252037596723046966852692112579317969794239622732612733939908291599634577691799526111569537468211566863545288383036078236169532463286624052351042829014755289818681158455123937330380582679048774759351588214263453181321825476421486981031161200132450018451074966259049696863469472098175786162546480854882318623044901855993967683469945099493892184397687618942000348250911223833180931434681302364089886788586459414815144159305432128900417269244289660784676780559168854320357517217873006330587433540232251627727630753619269712943085862085516016253040236422800548558205216277230735464807872747131257368144055575777389575763258516377888289284586740739178609399724820658299002097730608294961932951807557568686400884422945402877226855943921944818330559134669073819844437306418283897749990666691947085451652383037486975458364855572593620994289044112690341813340385860020153122907178553814702754053418398928596724342556433746068866707357189963598740257876260788102361317091808945773144899816894184855803128177467901005511824973116152119713012265511504544463357281938215894505337071594544972744940121192480157590776844738724107021502399996742428321942274335123947303403988873484960775599283092592095980872415346399310355820534291741244420139115574256076895608499180753133075477386519200928453778311121417689644953463068441385687393956031498955900534345259269002328507789973504350750130888583852326544095940414238584847680107419819357099294222794540549102455508505332470685661908400788802062169979310727554101845403830134921923228595589786503382414828851484738800458083496899045585717517912522092203943095612270182688580475274415709896694633633887411226792905901575978128200568498735640580236907587657470407684331222551231194986000000422786225910159757175614702040179757432772645576703575128727261749012271101535903568799130497763678233818285925612121682218346193336035815227125410863127835443406547738695700642245065035811384931609376438270103919055844820656835856401788620980182932874110684550070671206813160483064476939466937975817254702046675584981050017897194057090268254408052817154891403745594609945580233470105704246591947566266727874383377680239714990936414216384011715234321403690604528862484980256545546408390123201526886899087234549596445289624363932879635056937626694166304790673442196985032333186410711602065096157203891607841646146738583740216570199387086914596322263626392418489928080781268258859681955117575412643467392354285001113908816602400658017618194594990783429559624519318936558803755179030212554681697408686170978719269297341023261546988049720428339862124059905001525696751343287463655035268891280914652179123161250539723772171233716319717110738005339176612159367645636190746975249897721730661252821720649598437186683605753945035681455940432198411787894724519106311291252505369733082821527812932434245850326440449121829854238707069548278676585989802235955302980925339765658169993746951930344139827198026669447725061835941665871168553579883294455105536204831444654229466730184409859571360322759692334918435315215722259326267509279955738132452028445761054693049517307004891004734005145184159081660952018175748880864142512640436542540072858704782002145150141367707232164529927871838712317434465799641773726509097107332343352125902686603375337644199126836737289936247976641177714330791242658231448532785433781170015343884073034306392066603096806547685441825601435355530382628018366969410926168569867080573090442433401164421989446289028915673648812962409539095496082190957074182697373092613694703685262730498021730990932580723036027413969749019875783253902193466473153361057887154635317794713572221627000467459418420154571755399484156367082267171976739951330756433426126626761507728287305566916648387660362439233635879433980617610154082028424810517933704786429820979486500910428190232930102136588658628264232695441402691536198679111316216490559879384103430948444947563762908479007765378782227439552669350419895301553050764108719428639990803040111129736642528316087736613729558954949310880622508879625190330274740610117376410199107052045990810624418347609920746548011514849455853502299076402882488606668768272562351972341540673891060481842258266991951233319742959332273895914143428784648075922357864902099414008264423899516742367880453808173106809578137978192777463127279707806282094323814401050381814988886054807013914005682667808402148160533824243020123841999545682435571087522037158476899801915820792103225697480514062962436018117785468795699625882745922367177830938655855794211738704939206718697828672672012728789319328993720909136063872763303221230428493874274173964817923604083876335356189365260356960721753394564820504213913760527824251305073987911381427644564010432504168581718439086180531195366079843642334589848130851805735231306530578698528866888070234863936404914191836634778534280119865481762140231919993736248454577088092465875088559689250191054854322403738946655995990781108254726306924538382281297050783425234429203219879062319887937291085969017485214671765834664619288151871075673830626117028856330769465024522208569362788062815404422664745948773071759054504541439846104898350034329931789758016903582700598120157970731277293748561319793360321007819064723783948598173464597615541892766692080731213886897241037764320429754844886885659780364826647164880217729005275999557749583681437225034227185235522434235451952776175704566918842995906433271054433041662633938325951121867646198027611576502376489821119645188160646256600580772214200478661228916040909111656365677230620774112389364877211847245617245162058979144627330841438812021021638807652538881380957068077091288961724460560233514564712188718216965620503988539369986116715665072410200118851939499258349199968690076879049529315732016077956347163545371064947301705895492157806534350878418306570187663273543702308888846265520420711708605001237200462319233336218649077098267870855944588427433907069914716287447556528090245052709341043353775575697959180617274737645536237940566626407091804588425988630015947077388264644387851490597166960538906484746769889451740584327734211899946403654408444125745707741463127471265616655306865496106826602004730171091104254411049774750229741056651456865146921396391003902453473972637708930022118050647096408008503549804458447786305179308108527589158399806195951950352846011025936856603309539945833190060511041555643209198734080544203193694656448886674039723534987725983014995912404802476922049608174846074053395642358166759877097344955862939668119102387248489861924476705663642996664425781942665284775419931881258020340159804444127252255607393029141304163443908271057449442449135001298242016165823135262989638047410657423182288623876543483903886026561557093114712986144936285976531422956316348027633730504891807845529050745001988005006124216698776319382354166348334083662389484281319345714654582301033761597319599185529548024286521338217213890341592721399141173379606752583522594119269678073941633643362092330447824243431331022301041725215772614484939713300113555648204698633131508032292499942103940188540681411396164599175069570998882927164391590989983890574594303480226951316331330631632683150695158362754182164029507534434327320527940027954436769873137286461494826554506394843510216521618279691327145849816436766816143791885109339459819533537349544035036861218175445998272968713342889948556893319621250891999486866202564407675615761809328341760399017760360706495163178315335489327680088877665273211246630433419249686639690835020296184638841009802473428104862865864723182366116935479455610887836651861640861051847867089706799175642537380264873247966814765414048239732857732868044448262140540402894954810351847043734596695187826059769433854727685431332615488652820982645465810720771657507255542206213790231828795069982657444659376561744024643836182323712771399472080375764014898541926717811118855549583829089233021305620947437259347668039467898439956949484133921309408411567686215658106727860812239186163657477471924115939299642765672504549705576416686359996599136436473794965005677652241385467310180013748174639635165512531488784638462553742990193568103566698622770743666880849762474958479982180059800270425594283980451816758289010123291572786259557438621024029731663832597652215557448528363205061705781789121542660894905136918361720557875543005879541813576366218675470344340042502472873280136959310722739602562114989662724381874771285993471085554037426292455661049702077132721690940269743024663264888348322344951760557219381527466264322222711063078775854624884877036818128268157064114293197038569420491883825089722566281207496524215942962336637215878413130893061855907331864469618278471305359987730158457830349645874521660525959326056622857130693826119304158860119370181812251669091798629661390173009389336030645942431539963334205167903497430288412190692208567194548081297138066432075058283010093947153206405549147045138532097813203587450878447621326232804662149521554652015983313019758269444194733837139172907607854121333357022999421067817098389649763310542052963018739810943695878942264881783504206078985100552611376671553900030743568335234022329876424850302146416057877008200867150741246668000529804109140233674981162712249615093391201474656025804575905593845016623773471391930893409058822004302006732591607457089137280855121734188665360185057594145728702139286844118298853851051418668033043711550334522029453955592384105817254161308944479068587332108883375077122740300259196819744770508863565710531414188754288097145455627605568228298987455436307033421900523555210959706071348906377495338344694778731207934463253521863038416148169803125793183813185888317128627479764008891312315385624334093442779109172154900599942682741711637908386517848045601504617793191855274358667948473612108093949114105409504573266164500077851993656909770633918013709865528772563064323321691221819114797440759565048710420910975670969899078251908506455241104097492951672767052688776020814509466644068053529432639106929053477740608330165020939954645286308025329108597050688659010302682061736225934114209141750107181745072681576873171933010676919138495758786369835911962134233289464510329040802127309977344521122236947454757195273419452938699853247477734047306032066551923852016874616841996786424054229267389737799940697486165070280282314527131468020648979089400958310608144725054321524728392245039244425006203821607049432849052952967896994128272831559784424243245813972837112163665321192325248801560306077059884873636658481543805054953618083949265258035130482273270634669077613919625759426777246208596127275777951443641523469356242393186751140533538567226056718143839801503651268397338751492289928731660682408097365071754560313590066701381655594682217575322465481530711565607520423136205274310083001513304438654546003248185698135018330600654989262383661290178602135350187544198375484219400710720213585417248830860920817675909440578689223767331613287917695561907907499504171227075844803777555066508114352796595554384922573768389704634452670172506114512826792810981021528551222385679978367009525625882772953933843337272947459767656416424860997918267370927863156780766925887708291847926128128479230471654025521786245556059815698266638094875115918408624050180022260354557644900550572922573692505734718066231525797992408571691163261772907602621255264331778269129969671060899549468724336990491272817178627476681563319309292248338591827761941292145292401725482593592501611692763758261978215242670881462684265882734136370255376454952465623764190253327003986958118547022467860545722234222942615889207479585863056180988079037719419973666969602566245637101814688931114227255470071870643455399279935439826396132699252168414465344524817666118973400241348599300299162194638208718361273407114926416898816950519240919292781780651775399342777089615743182629328551137974018396244332463965424803301434982398310471791402737964301938535827261153257621704499536871896723909928655186823105890524660849185474020776085809375568649550758116542654723358101295261060812531573433022854850861585527811413453003459612241197072787743728903734627270917039758984467277688823715786763503179475025367069592927436080948474734885733619578268645837340468188661294245435514414840271055476991747698324246295555816378000952324173138121937121981754156846657926163992877072185925996470179435762843550131004301694114377051901151698750468907597918660705735048735035720677243123972346084900386607401637499859095107934201323359755366313272804009439824216628436822134337461267403129370768209186513495498084187643135971190591995509198786188096687015440413500884671355233708983848441782191115525271540420342909604980272877693394933845177221658811091412738942416071091859657367065113724337734715381703306051501402823278576442460762614279336983488233094779059411282125723717234807279176664963990175737600053823707083309830702160294167461142071947281387582991576269266526752024119643127393433509306418453790375650294495618945533692424252378749934557821475257811523191818584899327148734998138053733314257495380212074771534131521868914078075866720601870022325313596319415882996131069847752691134297534596327540789894209097712957029415936107890649183085351606132631040539031417481109581276264957271945005814185603566811088198889009273730162244193873366296171332086790640062547633224043512555606149264832226774173712680474631881035200688773766754406716457101286494665802360830321481349894477264771252378721820309246031283551959765379584408262905000860817527318336775640444395507595143763929857430243494480782919152883700078077346517043571713594829384670510281494673544575735992932078548800970820792839268175413704885384480681621508555105552758627757053007965184112381384043456666552527165499918526805167893762446402563937169822203095942221739250773349531301359612422980466264115684602469809590670413424192144172228344493139701321632304872824035487380280295671885700454497511963035248637331536944852077250554026497003589615838344716985580378689916750768973064299137449800443543763198836047056991519097193109454978206843750913490231410576800433957253081868202243651874079134750957046255720598163829637802566638867207229426831588210421853812445075134688772068964649899278686789797095828278753277908734638364185817829359872540350394903783800055905822516340630967035017569407271447116953210173079188988965334643776563414511683008914314995909071525593618259822769535699951043884659987792193981614319879660553163544602369753892763027216584411645579865612344107945031219937722723792328814154166962890371542336711457898215000068049670708196743717049546933407218356680880081017805186834234190549781518396538803389972659657041608150081262623502521970198927104201732626769167275054563422913532603940028990096889154299759493671366077891669406829569482495741560021341876920698853136049901876624022400216989950327697157163674045594817304419671973644666400469431015756906686207352053620649172879635821638162790637025636055564157612767896081975600711851854348083494708081475502357411872464114474240044362053175638608320172633488527013889353133072538231294228462760207270067582006696077044737267036058082977037510811487172705280069098251349253858447606639214296922684864317442689837683241127414916392908243446872068670711462433515439945798682689192120996853688950133266484414027955264480286597639504646874813041133339347141086646873778306271632990637985748219318486288222284862866126294196028122931600304075248863983732214961209761101355965733302405229376771726255242920787416776294006672066994558266856952467132669637452651614241894847481821130771818974349705266770789565717284684569021290904560057377898031657809017700518644594342410355114398581254968778669180361749576806660011895224967665784521767364219950846069853759009176361352028320353404334884347870644045819119642756122836849249261902363994265892443968055639735801567188785756040147157867376666144199352046817151923401869748325451225792547127129389553496077669065369704666531193584943199061102324717046144154110658263783325235610631540610115150626249303085733661868437936418969942445279627039332001128995219583173475107314645843671823946265759737693410138737739583904712798943265061680106044251519504032968130907161038512758463340796486253223435130440899115633393850549381757083408464267291071469173691264889178857072285649666278370553306425667239783027055242510447214413684937069775947488501230258865917752852071170588252416918933479769543219384003602923553478138550150674363492110464516120824165673534228942131495519144893808088735461047271474082949190525145884607744877185872032194764453474338160800729703170929713058952049031086681893882245269696490725949787547327130829382110427337919801866217330015801305362835329489348225118022191609771250808867829215754646448591391773388638368143732089462946659560501180407364231951996377065048632729816472011336309881326016241437463835156198568859126923550987548186936824393324439881316917305505453909630972110911728555561269913214128232913872116207430748732827352999114753375174179123153639688992011699291457326140765855054746703240870869586717431150666107981226545838905536341259801475140892914637819688884662315913998841023364785916953908779222764977967117495927057523329255366088978841855687898389903796392577108297658779435534447107842892657799342450276864283693029165985914666203233405855974177180500794402071548565439779672017062975712545559845222994353556251908015182589929565555073496575884611737520132718895581865412406396645963435427932710102532669865660717669848406063065153331017870900606101929832491251031860772569299735297182852600084298791789354612263283934111324825143656469254572228441256258614514651018979120840912246820821025031515556371823352662929811716814548617792552227225854483127090848988507131092295963730739719890562560738398973453526296991191255546535508406012528268360096839942524204553082143820363399027831726945370730860603705582780127104571767088619699126682473262658266625924681382194416692487724240365678372048399263940705153642759561743001885518363184329062775341281213408681972227689069806214190853282970533765431292486783071285247076372560238468357198001165590929544144103149234471135966191694882286677938692575476658367230826833044699866304736226045048594319053562668570715493284607390893830752275580945439221665018953695875176971323170984301652717535891677651158619444235881897244768386517036426346942215082290068943673248200114418438960016029862077701491445727124602954541966004706461779278123482602023166376700763025305580158152746668184291225567982159347505010962827015449658597390674983880931417373548349033977386026267492982487861011342336825736385918755404840437780889485620911302125879450340750291422925416134133499926628501977306918293469358128201341280736828693500705450045721474934230735723891872131813410955151709339370028463419386686549834363471440037058251148084395372532781980209103309813128048811425574428253129837663863162843267689007557311780721792702203248351892707359544617073852192652033466461440934266262820844867441981679140661298315862114449084714527037650931081957596845003246274020800934228607019954535405307582642244292742677409657168920049266861926031677461508449321363247095123934584192403344037970381799608932175779303843361057756534623988605975455569399395051400767223793361678240760204272097134340495607848125491883209595769561300947146204925903824982866764540408715619477128021787243287526616386922817826962867985451319689629091995707422412674852913378092328652933150236267502763718312186317555090621955882702266673888084054850096948127763494720345878705581522656143761978316275419074495024074365932919204555104288172874802587457152981453030653504756183941850758527105901317245622443595539565652804195190195208868514395783764697054078148943751648678199433455651749249950631253294533160821727052805717454499952965163315984791311661410748040551933692727310693409449479043152272581935369238294851541617898040053869729996259432604541048765238838450681564561266837779604432263648051746408743264046507677066222237575068398298729883399084679106358434848115963435898439504379541058463408721367473762920150901915570743828916675811766322528100334437194062688287511999692727480078240012183065966301601565065991648107371572559996397859988208980827056449949959640763106354244456435009277289570297808490785380886130893174588879617686022404756725877730147499885503406534903538281263140091854513912794673905473413790917910449056456266830407021338402593691106782024283401738083637180905092136631047819587347942928562042328547349594972486576792790402084119487091721343709319444216016414979688443074976932254755355665564397580596975025528985931727398087352395930529180215067922988585412942175535072021259217597573706388175705525016873845267869434105382961647465958736479104541571348201202749657221242470767965542776217321568763035022712620128850243302890289566022568563956163264155206548834587636082764657930832445647696482970913793353609595142609075695045664938943488570433161066491856239757348749771272524887299897369308350599024110504694412965971845894810951471279948401435979167444349534971019598359979151341763655120132420407188429990037364841869711172220298848399917677486316842560028249296776200919906602602985651414456054075870911400529881081085052651870815851602149229286143023290037325314426340446472560475236366550381162397400414297487011258897192332104472659586932897430552219666963248419945445331278848317078476067558196924193572504576579969887336836198648027691458627408353886264180641134321070273793582023358748080116702001063136356128240697851243682815626650200686915094988196999131565618810843764843386454854061637745326537944555559955348319613807534961751757491266807245852601378982837670179295988139907635120835814565070465197475697635433826930944016032372476703350787496801722846879679273649231967693930455413998468069312380296052119321690659269941922312600192352139680468867758886991109750837969702744266112687966745459787616432823164508473690142353506366338634773185972927957046042797778375317966331158262935517344064989977821959855998071762947614448581583146253739247752318157725329763384742012973117068735960205022243868542994114448896789010030323579825984118910875157674966310616574514747700975380380876820972092891166254907859560290190690992336791021384583365360982839419890137334447721258876554029104809492285235247426382921163948188208305328934333437856907439912957439021383972279365262199002308848989664043769769525940860653774403835204910167244270098524267348002818372760894209931186947172989066210373447707426039063316227189721553101859183467860994337853440316460527595431465338949240065345016858069751494979417677761097692458376025515914524219076350009792373190045707173058492108489949486499556567557622481730629625755243316793357429504523700199639588859586047908451791263427765165175800478086405929144462188946417620011613136990165073353495722724327369768779923983054300401749401393131416352010387655129637483633420883621117021391739318158573459580224023312776667132794428650575160816634461532762110486913176120692814827041618083546037260788183078214094485733689358253318903678094698727719879357227457482007564029334192727494770680052368992410674408420320591384582003090993639476301293448551135398791399595850759001273627792542946809751144402279808784330044772187474646891367136504970978169276866683467148093605747946640275249457631628424683560013888940991506918862107465198335564598697726593529047278833971538075134458198750704966984807945606373134941796545636930699086872971058601427582013127522357711596094627559254516203613790835991316319763008662699517561623871926071167757171519461690054625085003553108360305366064332719324471443935113052089005267477622855993677593192460540526127425988901260994143412673052236713366751504050972618573677210351234224461423468058200099966494983578617654357670679281311944807619973437684082464378301151349353846527328552844115616037511767397210977862913175806634840011591862529849464970258372897791513816956951417909314878886545157953760984382193104348125113030576351276811114946707327899208947355608007308218786271485046575563861718418764018231714246875774015186353484879627209975734850712087303815458341668273978897016008192027280582488631519570424306226852269101365010801420556820410356715455235155052195840034542429557494145569396754772485278658566009610710960094485656284775089285272613156654300711664285640578704910814182495173083874455470009705242358856051015912774460563451705794750747687638744655441171657699995351647746779968740128224512694326253241466472721949562706567483023858611364199393059830463112711671967396714257926444108654575634604489062697485243159454124337306704800419428115711788471762419721120783704100560831938497465842548517050531228505943275357654649682587297300526905929917900525042615490873407974635567226267930426857743657231620976906575184494157951910744289780818241894091157200626124751364115371996381250189157510903595585825993597077436648914564024920113165032465720655303756469554131294244913240475832407793516383513331446126421531295049957092325973693081038637404682743119851846376167739357013215469292180831225374783237075035259493802698900470311102224959533932063796833637533701028461533065270395443375903978862369420156220060197493751946925402202933190795840942911181057838647503463922797024445448140460878762486143342336209602515881539667766636344936149035736953631096007923229405739446433506954630904251191681479596661516103141770724821849948302516805501613262809064912256601982445503292650595956975562649440648469139224551986337347857545363202086868789380878679039890179927390100113304610613916667201422315819909034807834070486861816583849641126887820637228683587108745498911341979810813533838686977836584009546789565764244423519048327385210891781173440517430460633324523414181427937057933294303936340268868378066291249191085133213854106259151951342066366876462372348735502004381913830612517495431650610413733353064007336060498762279106281965435980191810760736724531466488949764948401856063860913598140803531956850779535467643761894653025918379443507463336934352145025341670958839029321365165608961461290240383855709296932995693895294183306054773050571983589577656220931600153483604953275504311351805060113599926790136678746613648957994156314350343087406489127633244725384998857276344955391112147586486345193957876658422283771247418864868714294036609314011107663480763701386572597109918199646204796510410927047927672199624273715229286167888526297552031004140793685072340441803200036236914838246738698027108677420237677757920666572955937570852511166525748031030927123082504768570584266970539540195609093126942272906125169541177147463104407560990701722534175500317323705242239956105496850547374779207015832656256549554199395130477469785027080005972017393500297024830783876425251457187773762876281334416370385058230318277772985837408869919971363315013635086638438854828167659714659518400817173653757349363892068038401437803450093391437955872232329455722786378739349708137485869890274390298655118028488273004188959167441750482283209778403865151722496034504401814789493836500133696212923040749998081009578704688279234675756231414963954845594111620164444881014164810585244859124576599804853676398401577127147842406614739997486102654603401147866603149286855260001670657167021789790172961609392206502191089504594063176872604826099240134365384437840600258991982802291499092888121373084200625958624338814686687116866453099513130787026046392544811862852826956913436449110012454223202583963600408457135713010315413937571837806066618678069945555185986274885223230194650871293408621477329414689731834479605521371598390528260662835823848804549645612561107569743977231041384525073410282600022418741986864676435646533916692290915925139680677070242648594464490461262249561046083291032103887234525395158836868913835515975774130883734743874944025015793710456707735557282269947593820234005111671210115714825387736494132894045193901857651788439615770852872205371248429745638540179078296902242704508453691763527408010960096970449814810230590780716014912096295776734725144655736556361441001634712513783605771359957446040179518849416574042905036468312743079766878592777760287655528789551651970066476544092876474650804524522799310363456686814027959948007548383312090153068715395023010007297794887478826283292391195024369811234676736364682148731498557555414847184688865883634994796093184745662269408507661725951847501040281991089898065613442265508594268019919723484022921021986652695596631785114157321759166232340726095926512333152545549548177065953096912923737167848072783013375164159333543379186199671632736687829591361969240219229311671672065472063124681414647124823228436546569045282279827175354545892166097792670958714000630114648419336664967208649988894063098642175567699627101586428241162826348144141378300110160462983944821804759559491049047455250485357567626756684751221205377017951059881958758921158857948837389104990281982729266673705219076329744226534266585090061371593501077726624473153201358407633825659406721279870128574601150765208378547284346234956444511472864411636197150652720064333367206032475839189138372482416111060799148997505511850240997002001753519806891666948665547114585394469557532428464596006339450071112124938549375385959608715459220415876507310385494364086088187908598408729689376146273132757295104651672754524517844322849535467524485508443348309321546375938986011460989796265186877165517739598222668188931142842119771312851934642170131916328613354895696214587018793262643068367541353349303084126532255687493386912076851011239205865237923571288995301650354708059398027811717011554201945381420735187455078148103250051536818647564700532246790200226624215095102199938633439779465514819141748955454590799839402613666381358398230780189460405294943604975067899518918156097022232849052635196366662832273121132264609839421880570902628399362221116769096415210465685148837522668086770822271196527256533532966796414271258448234505538620120187920622752254568547875037244298350213422103517094370880288235940431584949777367414611697209969818676717916535840511485295854570555537658411946527814200030676659174157897551975661693440592175120251622698928025659345937366845946336654506555393880436120962397569320542498121581863447219671607594778039935716390051923240281888933258757890537614829125088754299201417843938978208757484365197487948484705313690834321286037445506716573408448098274024949383696329522208519650116881205513908993987186440032383177956954178069359205348083232678636552443171311528419724460427546478117132223812241880846325597650638234929697991404262341164255005338651205285444656152585428526465861317824313702733310092437986159416070211742387685921049983760833117877658807638981426439420683837507504340113199593997257393257296667972848674868698278634241017451091409064418155202454604375888816756065552699946099438783855284495186786402387930523608087211811669443020780216083508766006835576373507259814244965755326978570064121181182695840335232230070780818395551539816941096093651675257241106102099745369445306267062439022926049381560005207309084281733453737750065736449729612043447823502969289441483934961500290868947306986365152896869410359563254144092506782527408893789241709410173460334662974522212446702827441069930119618426937621530063366495554735908379713220298063607937266843254587012863892603064509309443229117512023885824523351030285852270037344552514678867018629790061202917941686810132257026126230170499262320810626439105248587493583254523456043835982020853736016048483810497113188460640076628936706283954473049870203217438103955990796068034414703041495592315908597521111593872994959665831816023012985520449333052814909535748085102578109825489166469954126496883870183366450748601507503337396722760441536543618273924710346035597479291629815916699269088182831564578542084150705353841651479817123752385182386258806446357271988302480521491296384511421337852248004059472105898445875769011779996326524392475707602033869635244832515483657278486139143392363410035280663623162613426985149061953501161679501518941299369533213603865716197258908287678267076892732927581985192233765182897145325153393404147222940767461018509671833449595782695403988571396401152599310643772006869243336075590931499305373088342357728920654136035597555403273681853930017231238212002110320199633923781362804922546483795966871029807370977070130567969920729908437781418824579471077961546323671867399670745200751816781452835488233367062177423062719299909646873217324037197301918066713724925805789950917836892171119641480286698570996741794111435240297406208825920242969133993748231275484355448066699905298222035598388930076731337105799654183014465343037133127164392588006293973019698772441228884655040420366744303806183163770625515148130018532935552607858664595189040958483837006160966217695415312010545843663762958822066207904373018680575442728383741041623333785499324911714228353717635628381691563037383703329750306470793314266395521141532282133545626097909560442908837238851887309347342790945679397598541060503212012597816175305219654474711736780564964631475561989086006555264703496525662025281769023418876319584839766131039961306502799775702187670952770928853073930010652636894559928645042378871028346582122957172147922583377251435140833981487010309331891501245037178262540632044664882812899660434701570998096477426417784492393718159022697927293116105976954311175366148872866299379918105315564198580331769402497668977699400789792285864668501821394978376109497982418388021818347547595847371611597993281611832192068041808957900508064779596381696674240798328860580350112237139891153876311562254320198296787428023795178434270380697089541294904322856215707954193104180779654785162657936359364442289203701047310243833749563887867613249305424026906643113381313273751143203438118370327745392041498783428964954753323220787998905869828003513529530794511244724162607895447570899515943806815883437068696056264040440309260682090233654085039036825462601541951408328221078951632026131087891661351135845596369159691255117756498460501613058683853178173953666702490352540039691701409011884475495296434153627694572645121830148169529763839809059009292217929928163944904184869914163951620198127502832576498205977878912038021034075427897592934758325701903954920311448522263531574156882639300907280376170464493640837724872179156323529033361133245220522970953980279525988800391843381366895735746428084774361009974577717164367316611543958253834804207315394662338727188625732323838057535457632820035407219993787400391964136616429702433786735027595358739895950358258827960990069359463108978192852966262868267609593045198359442429490708643432261907871810261443585722488649618640930939641616043964949499019391480468966490959698923233544145734585555139640734303359773823873394783141185340521726757244330041833864942237959007563127319617325241924951526528498200043041898230754446525147232550529185999855252017642116607817280378427580865322989624679354805976834445009352483540620440098019655306978869025940473969617689528583775809323685508158821135052589256435557541410185627125012914506564255813498441704832789006129718976951437906945414217807018111622244751025812694497709951476509099244156996638526205685411683601880577704244683473824709449604033536910283734488617086358676374358569827616490256691351499999613928055119347338747762253449803863222223048522555899738373957436763949592404928869162615114063486003621528250508024974177659432021361842728702865708435953959690141187982431123815048871511360098010260853842362029558582460946417064252746121538950507200788186796792893911150903116302339145479700903099795567166406083456548036457100614497366068807185185063846893386447166969477982160253604925341440566569651831058184199860430890526200989967161776980776697620390311024928748816878976343480972403948847406715732425801620727022831055605105272862893280161072973395563031138687596122453334449666965352998196433252475144522826214474768969123132552937809980238279900406312114801341617515906432229599056905677404400497713405041324590141791506311419865322569673134818632093956043990006211403981998802870153428811856010220321277971021666063269752541712021624106034241924375929369427059314166450501319569236744905244522298560556097870899185447146394719285824047315065912991291858941901898685301820581059748835630220219737308812661568041650580977510116213596012130121948075109120234903937626997407468313789327358868155241083331408005419682892224660728707908774520889393160724646339760640577786295570216246283498398387470406333114483555441948858141864598289180324699534272487414527627995042944528548084169334300514661190322033273233450768065874386507063720474142519637157347070708488390568518849059585413760027860968174427484697237098676620464339151177637591203002192453740892682493851190785809663781913498702633113877557082608479666261157716382685820175559328377466007573660434008203782554912486244800508098121644700503791024679401628367965927176948746467250975276456611688061733370766099372776968606261178222207336732300799877823002886830453358393757464458261608069822823345965292218849841042051295303943705695597408373505232911129446704817640863289167927504800748272446331030130329138755906233037627644390816253819002774055765564312952826940680645992422957380370597785860077728008799996546646827264551679846749114802446948200777633106620890356297086479222834695314214832394606549589097693683780629917455956454445881387126033531255107643614155128573721817965763894143477718440754517448513257704617044227673308779145993815661160620572997674928973030576103376434846406232868457588373144448424091614820255568562462913532742026050327109736385535109797264572222458282714276284880619244601509446786228329942165693385199202419926827814777453177554971025860720796900507623087756445117727777607440955173708073897818038127275841287222744526188620836110377310310463722143788948442694828156363349656268263270385680392411666609427055822858409515938091160009447908041383815711180110616515411424547752708581661255414741004411682305421490658627590506112823979743247292584122581420800781271057499815950532813859638063126537474644135945507973375322087362834816794619889242016111596658283096663323114316095930694080711430301834820516506798687031457675642321347580732509765262734907037399469761400264700467888605627844854638939978677582016948593349791265516585003799191111442395880473870902606557688151923975055253326309170695558032338908900489199462568163723761164257002037111158828933812401644650659984675556920779617942942165897095711331103419248779457152640971908173153516234823357440937194633641323975150936590954490407914733457061695598858376396322465360021209212969035356861541323103924980251424399883226399751554268278676412832536819206819326355335228853223275471829514272579533038409984994932372482264943203971458865290851142351397898072433020770437070902692994709414306759485462719270550866009805593163285739761037980415835666128833038058297342162486406637568572343045180543293678151233507594289945425506215923421865754473924683538547136820549755150491720735380358170113813728282137789969514890841061457088298065187122209726053145695494955521394740516330472948272785534493847438015543076977224861471471934731247649108767989258538424300857318974748440415356049849559382471219143423372111265027299002027064539955454799726341362259305522349086272358692530079161212342086777813632888453471026062589598677008813001354234605390454115393154134913562800555286277358402977367612398508335029652811837394335459072325551526328882864564967160560217490539090464983334722950694653754434861678625125783839324693557675736178168110837705767272104844575374938209258781564495476581436177021695188800317822029025521451743163098121487401881026696269039468365403113402883191440253390293913801255369605311407522222485584546611133582564834063285413745664965544945608703127752306090856788745198895961037998181919920735582537252327220144753715521781252999213767885785227465793027472498733539920386080677258110440377628886666804171439720510664631571161952930110340725053981282146045613134498302266877909571424499424145427068276382719811774841275706086518476718306191298712145785174954997079912678673060381412069619357163071834292666739424993293201702333098600329987078613294908207359677916820649187804130177865321585720840340476456371234133718208149703723276193920273511638113745666255087290661872711511285947375635013874441564621011498517512275769311325467756875916693652880616345573280645810933716843340661075927306737357943084231155675191513380883535410406681170212224407217605336247734997718055628171675252400329226099063962543015132427376399505747206788687166691975461886243171879315325261684945897307451627051652545583740977264366530232380426216433067942288588276484519993428529450896959520913030576181099691441410632834889124647970213495390548857617361240798930503898543769398742054567535054262217446386220812984659373291351048750617471815079976291473786717130523963775316292686829017650228807051417731272102420612980809534734047834092581460331799731472695703530613964195179234602894624674144059388717237138021312242256383528570214373452913270098693307046389151205210489086646347317893446903330278660263831946299184789869950567967388833762283695495654709869110122361300778783350018742430059032687458293786202764041678641751112910137155157992332699193284676403625660715387879327551166799158590520167451240776324394960646001096742968989048329414877965878634605315622335811577236519169412110925677555891361371154887650384858315532068754077549634574073596977563873115680228062279809035491146948679002589082482147582505537473867540698861084481449158024246958944237393241425140500283414378488888972923241786865326822748155916254017330225695600715120156753729143539984184291088119443894253528415275569159678431652034800639729266641685857322112414064547843843973592065782736006189689544965727632979452145403733330994485451951797904427252500404379955067474257397228651633739586971801031215815886515564085277823584776712901609835981101317484604216569104791230524797220531406950185279175337029771838723710329635462679216620919946646871956123610898484961949065755625394637541042478510142898928262046117054228411685990724614909761484917149379559426697412655904659121660924891188479654058918127176707811418916873633452027787987888134524963429756677015455225470969086831128364056198404174522100333687316439614234216834269857560146251302184652978698967501627479517553842755609232271966278100671732478506942633084028219818638420901680961870290316670228281538547943679399905915478925072565901367087947047322780798333688240275175145504990926057948695381252836445680066251165518222618539230358322332424663457010483640803665780586285417823562890239094176717597170200035433830938280699278242225140726537219615771848300844628951765335485922780146741531314395069979954834691330386792017311700013737024171327058740977764451196391634144699559731717608817769943486005675823088320001042602867271311641525210254502401217921057160119536431401445271964112500987259200339603593918869839297098635137125360237901239486725315505508541489804933052755599918594854163460778894671312199565735435785457263862615139615458049284915014985739454034324832880224587082958552153162660715853508056080727547341667989539333030043217982284388720104388201624687583720562823747876078982970103268391387528771871755195267118639788329089923205912592388614349271001100633482408415672441348612787508585614774291807909270314966871251802970868348979151163633909552629397292301797676787089438206310169033191606740775254411160902125727536283359570577754330152905537882898755754436329125406178447743885221121079696826157141845953994693587936343277547524530184592322189393171690761451724717314739062145265754814158966016928039776423564403499649720975937306648403520186810495358175001303673894934609792680756341970140860440160588406684837110446114483401818166396475859928870001638099450326430469395231211885645807968111859154109301019873629262549872250521880473663081729770008595755692063764942627323333681214710007207045702386084958701028321759371047360293437599322763724461042972450018951930319195008638306560623509086906701452015522449772954675512598598388129541397829065022954240525356579983040931551501775263005951152970719203618144888077401365641662713321290504840382384724873641629259644040566201430644673803677913169508285033967984222440891880002146539201606211278133999022371988162988312094015192154017088197153095238087063334189322448977808209278229193064467655389277570316572282037017258713585399492253275712706840459219530394898749630482654883758272120661859842328694340932682889501915856023077170754483751512807274271885728075237972633870026628551542582666559241926739590226871688091746300179948277459921413223574917124698003292862679071534483328267595036495962107684856201962330714432467717248352038520574605014947081793432920724959383281567763989901064332898891582229994956027003540612164077283084616668309777919124385339108857470793072842739221068112024013561942203691618502820634224224056186815224262502937901634027243858140311232720032468976331732766373562824566603987504171261466619259434309081641214270081756829322067146195630585284784859330493128775018719815581630297311994804230276144207007469769477833595413498097958034064708095034605278935647638024395867571189301618242820787461933443956727810533817551664406437106892810802767534796631272342683251869578993842886821809320427565749216495786642259800837365242334696791055749734373383113558565507160169812843373218705850940057021655558327091817155944959185990252016982865746926763889013978693718492946660817967106856462580224898743179685737962792177007570473616359832135580315391567625188348356960893864253853998795936771097905113199621951102405485128381217285104542526756585304516748462398593811841964858408152803883972468931590387443961791561886901380092713328701201064736343057075573187197871979581532999632720217370546911933296240920238308530853085071707859882185161024841334940731049856745477923456895422926083147967624406200020234426813054789218740288951623163206670753199018461462644626140444143170683001551235405234787793990042257518205095598175709867024366270718653324043427720566680918014292939254175312812721360610213329822693632905939733954872489714981505410031753790004181822333461912604144007713704567488643729563923339259560533997529520877299748205925543065323141982594091289526360478717233878506790079752532432796303781307802400868027299842834341842785660011474505744466252562104040887413248508109404104655163039556822350701034987764355287666819062233710848638558348003029512372432114209775584525031133014569024394970430974496651698627120451305150425462516500594979161934587302217530301958751263626694778306567853235569736788202555216012727680458241987599891783227355015327555509702824867146150823199090428985344513291073166372695293407057543646036582380901172907275442425233518798365239468019705500473135362741570872054138581967226416465573621635204239185629636155503465095884925743928269323980928285384585518812474877137887324518846173741283365178750780518715440155498269159543787464340103873553236394869454371506766862971884887992673082749842504675447847808859966260650502434792906520301320250145275243237579236436928272153815827910672470299841106680424157273917736074278563222191607373737667646189052536560453183818645506580584688720654492175322403120670745799121656757655739640014123279370734815249654590672946314311379253284618248967998949729055115481657456235325585419839647196677809707984170808144213500335372426127317108610262469213036682322603835947270527647147681328041122678688198582104405231419921039088207272673993697023171880392283043500692365701267276958958168132587444057404471713246861260907328265286988197525622627820597388202222273184146406687285781488949640724840566331297011163180194069952233420585584253550501063500732171634732968259660720638042469055619313794167839274654997017245958313948046066185721033466991873885167621844567501103691571816076097566015820322613458424033576671041473790001806404563460374354110072544224435693354361102885955700680668373000455414570620507346401252950400305902055601447907243037171791900231210036353984164035433100241563071395835615393098489551466558243230590144652574435901943133988259536591626157791563000753145297349148247882961024487534609691754951709155097023235950204192748466194546855788919438939330845047959875294326798145174184208184401084943645935470162467785231508189507643812954786292520769503379212893168285470288850343442727633104538552087223245016987621329871468786633734858822137337814857177838189796272127416302027137805460541048670541196424067604629593866453602534064600891338639715976428127844908195854127093644936296613178323025624467828449991501173869141955517621525795093177207874213773761032970328394624637625937807853400199584027356905073487489189209885057046210441965328260789478432850492206818437914747720493536252521103398072859155966142471247215746436413278317701248720838468881270373150756372147015813338782207228601938050555653714472846125705177809316709419278559688508362159622261583609584959843949548381042195635221443778860442154233201224811152036235631895935080881908172626498749513385607292734221415056582343802244248449952103479527524704786193467516462795671842083568754899299943064016792686374867031706270930677468340848745115246196968583703763263480402467013335183467142762412463416657494492325884005098018141174899484113465696937756824015394841234375911672863611067148222031437760686924979186173069826074315974401462770659533654147276891113338997808822324523041261672382018623400954656999674164229779779182540943751509177638494478520824629782052237883826141977805263761067810784027410480954032810936461676387073606114519702960831620838784156899637475499406481794178522667097246846216970411468748270957370782946324257074276765120218330997559787567554451362338359129967164891711088562943083880396757011042193981294084984256253475365227848853943826670625808572698997442338604763288918435391972111440227819868310008573769181713028318064584209154817835459006140849938302577796261969919477688129838159496986785135296763490248098147020886358797833529991898920591323777780748470716655526034409330000590221516604906470495010553074260343828901044783916977759288390247812010421601646843424899340559851512086949750733806181285642979014080872479107720869560859808574593384747553123251613377453581652496760017987411856330976733133490763024509086379289095203471939897002736448849818760097926194414861767282579485008452111761581118091340722295422624717217308712498884789579816373424573139300701657399773374932612303604473012983465375504460402260738819459273058966945675155650270000469748706009396279331624128023180612912243660125483263165721977790749094946778796615542963181195669569590607355044996177309004815632696264773370105890268276854158960157559631120258852445669979750924568638864384618148158194427234709271635484898431722923330110258459864297686517809067481661298795717707162834029217765480725489504029625114361800322022188796385010908093477553302592902244804549785260491289677931929474993810925555662363517304417122576771719592923579475276980508434616865287426913470580678855343899546010193894612240158035209556700347047821103752551201817765951112681202581809967512800698442531196038039673117499715079415169181783808578524725344815761312135780306161179212173001584482418577538173866583435426024807420423574354601898375857517524960756489515933949150427381410805511258257180139513028094568308647744910054481666508103760871202980290414153739340514374800780523511486555583321823598618252630216576748650169753870006937285440004368801547641864934946751142114767195284851973854226560167129958995001193516143619524218431126920387300204941571084689521284266131826640303925786429052580488838256025702090951110473402087743584839829481041997876590737128177286141526126095026246080204264921319069771016536411134528194600643819805509105669267691727363916078325636809285767833657906965961207233535917180743045485643237986662808331874662120839658796055046772917884781194670814178409570770613475826512782135043190157462205904516652687922876084189937649321956477499860887618794294063163181864994584045122012427147102961159228460562508216440376101807254085689994805185664383402173932461621171458280933804974172535071770662507230305790616538959125132602305043665280731129201756808604747847535606834127141644245347179724092699559484277850509407634354544755341015566184501799651332173786145844265264025676919152106310408126715529003038201915675030064244751625219740446372315352744763697773029990131570015601161131782568248923884717716209773765118344263409870419261414301611406481671825410497929938708660453387578761931491790265911942282591609050680583722912883209639482291672060494388304535834855740983461461018761618429268582008669886535982481359157734180961803389332015542675070046186631952056201623620719183577326483869192563197946248240782971774108827370850660351784980719930955275215249498693704841789207969601296037201740248723043051880849760632642352557126959006127655042795713428801721306922945667843806640218670695615448689811121034297481213698759696884364255308207230501226030275000856926930792100919394316944077200091173953387291602605417826336528386058287654342004361255571918786494468527402263297059317061841935475948085775285014389118373589921339677628447506769116360105433480742022750522729022444826958068502864160292847734624299968830379672827672558751827696353965200524434253799813553255545059675511522242783614468254208736823311270623438977403376117263854942596902961455544823952206694214438036254441657141690808469443471735463898365098821578831315873982001659626297260476458983007368638087863651754162511279562982649177849299678122701425925514727401718159940077715078021668250899810736138098489961118969611116590840056165237459788764126616164382678552158468146845253911814815455927187021422224730668903037616992480128368712957812821771803404674728029964710049638559967361533284760295931978329898935121916896640321124969820963914300959903755775489717749360756003210636640775452862807426558086930317439943801177402072079944166092682279582096035639254633934407033474661660860389124098597997931564504369811974256897188213024367231167221668042097902303030366757696474875486712126737642655614120808703886036611229657537415564086036193632473952075527336848126457173470529112334029252374497679845149070960856271422443110262733797424043178223680484185488460884705918338592574233415284060151027783004350111166943444027064501163030564688546395803611315674098039734328104940644013200308645658111869167771606412249539308427642194240922392749332343750675704552098292048533415423751598796599741497115475897310199637490696576795852572273656102183097181480002389797449604421073287483117336097726023170017794678537517686306355400163340639567238886319104639626020976323837266563731362996824996060392808386699536689039275176334736585648452222778269672648138404639775017085085451927397956543883449173801806296135072391891335666773013224705435334464139404447387213429068646195974725960537106525823704128290665960214240987268854024709734087505215422624319908801405902920307349197221525903260621777358528909764104739615828412804096250851954395365111097668762513203400550638694709644546421184885550688342954387678282918079517580906478201284301092471094242678069922808468411363357027589217375247989215267474018590487132157120646478795406777562169368769277000401521066427012566724253337315712127885653623477595139310925174976272905930961958595653328211326485290075907547771456364352425658147419259613384589834622527911110332404459693940287233962509939616602555564716570047547478193609920667461358898826205149837635019662846175827700882856607026578840049162229622416276619909397207833704153874407133400699005928505561371894964365470581483156367834934616761215734236060676323660826149281302991282951467010386157428914695009859331589317819194714813779371911117383207618423466719669255042205846184589336113001368905978925126344751791862366253889950179924002093572403439299474746777149662236092306744184024305850384730819562737825322433911690629791628704072260598104187583264813963761146576572402358460406616451408568421435038745504717241192546768918921172569845140263822420749397731547224338013083528376095589161132584577490498291461945331452070326435490877484646277837993816354646907321846043168129051491516657387993834146520051106341940475046123873391436792523514301015176722121728548577265283918290836988034327457318781268427504849070427591208079426475259390577266198331593775916614831999378258271651314332845952842944615435596907747618210656717637067957823870378684827342844908020650593483409935287533037714924085956391821791422203834576811376281970825938198260870059784156339053306521085672790786149845283610608612231262529226481295890853039777564801084074241765380519952885193120060421970089312461279660000617823059205500361077461391294727823823588952299267383373270439280030868823228352608752353501514237805913287623312780196878357992482080748792306270917570240878601544722752132249598329702019414123860242813355906016506105838854439690727922832382719583637832666069443912311215150658485846301753233511954255002637745279562340879205260873808373581473772510910934710896045387226611158684813555778240495513244119632870697482962710068037112560102823110941153506332057389300904567822775237663421666923110536055414965625587909563695680777210050938045776770088255770925494993601914095568472717745627851851079249020340524053780198997002299154880846199901632243505542828360669507441867321811042641339374893753584396638259284628569959073783807046656717979327266630603639152183363205083304854406299807482855140337354345150003957710620458961905381417162890464835138805270935711813079161296883841264400867105704460219536064677770967118694815194072788657103417965393268038872523453402007775239335284135537936215492475830344556099234228174534679794716182583919259481580435275772189016322464197013531956354110593901456157610817546675401725255789797296100878896999824383250276667189165301577836768467094128651473698371642840315881063793078160058577683213616903344755988021564371506133569351568401322002444742606422322280001637703575361577377813437948182033429157873079600752283948737855371574259149040457102469555991892151031640735551257384833412837549075433413525678516992603952967365531990212514948967457897424079554568089140411631478064049251777637508795945521783106916745093794510201072596597048967276036142537764236148322593222402294879846474900033815668845924322836987790963393270647877265584535874239757830394822667763722454473535837970024313723804281664879474792080934050671495669119277256554622701644038389242634372083579284038811955639842930884640068481876848731607772018122298948163775696245036700090819339861300347484833149083306547407359939473120394115220370431000082794932464035622359751018171334875424841425638639031624131157904580826522091690201492534963511772773699601754250664901343209032934816798215116322515273472067075094866571072334385796900740350913746916774058387951370537361416934169747027979458129507051516095596158549869864017920120884922495785031958779380235506316459425291120685401778248109007245925379444317384618552440372996362213585617097623327109615870906539027193996725699667848416992631562456593449186967431893540986996801178020812256851206128593577806624242318206926669306831131326624811201699483894464531381658597080978953986386846118415738879999370970507482410460225126965094971369108474984788235274319356563624572364678829507295829630426339235740215728298423873960306599707100766144463236960740184360778787326192680736022832303401530837540873946994101918066498823974783880550759516878019456452545417388121438718781888182248081066184618020570359597557757990997158113545276740400733585253892153284681117310141111653648337716217779252898769150325831130103693450886880725914823209305571018884938432595304474838357391929945026609470847205225356635528429661302436067454856297312880130558597120742234439732517945340944851157870952585284553742413342253044179843541392889747402160963263762441522481306927290047727980107600870046806549363510143684827316419752607914446390110139150145000715429048297103436421309088714919374965837060072755333938853833190317017677954227036497161891729028125549173155501843011034824493745039802713776098961134785590087986120677848507699413581428399397338426567020525016734991495998204859706944170965473165763239140585995866868167740646432650488282906689801112427637192452252173867872163922413664425266263772757113682269627062401501526732907451122915613898925904460605807449514697133286106657634330113128081808568488714889269666458365925256402855704904588560741531273068803402070988868212334898799704305509633928782820658611338344194769494327196245862595652934250997745191511283265940712570856977575680809216030276695312133109557164472435118870273334757255227637880321243060183096824390416513957218885482415445014933517437202208078346992073032226920231136816264788449784378254047034559497604670249410290621832210533666869393931855575916437505674412589257196068300658953864576599293888341412808721578032217993017776859778448887396349500423628106028135008884338876781378615749928107457137511874471311335092783820365898492720112642664146185871733584233918006813172581889547153407108520974136484447741226120034048747350861535734778491912465772360253507561790413987174178508481355748272954782674552149374081254902857821240045255563489496124225498695936548525766576364311924707979226650703264073393732424900515583758874073410350894388235385833879864352500777217526096494976791238646415417244255691261280905749203644752793221736985049375959441111000632581459939820259202339515928924139927681147196945361008390973835189536673497555110203733715821716994645173828632995892037512916743879701492820907376559775379624224175186170239279378576667635789845451204938263409994088521598103835981409214397841681903885055191589147369664672489222424222587145567824091225300140304327182730387405604619103176780660492385468986619941063125391098045761285236189263099980211017934441111590959352987423166379862035340950300739299074965795281568039123858119849383735225123543359668336150739953058597973456700478800006067603251774154156762382106891336463338782416694741294019149583002200630715211481262704058703683504171959137281745004108735796326694867001096630552703787455602674225361461012306599035246783316717979478633328137456105484726384858263335627990313718437893326495389322414742110136511326199652412939220651964642860781285500809134239489248747864234188055800667201873796026126351016777686867124198930841030013073513154886060816413073180321100160489626192068382918767109736292930955572066066260721399222198891644049616221347526328479718275832173150492965786869054881981741742061267115053726676942347983568340240943339132092574499953726069229772590963803745829163974485652238659802152316014904631415818118362804396096848238592800765592657952433179329880592284922917111445057269610052048010291923809281245655080075357823799533180307492063927805375084217703211916357081335826275943541631842337413571909107016973201048654247184615070002546273961784633542330975562750166083887166393065516764076443981864359240838897387825191673415247851010623548733771070473253148966488502310952509226385817678346644951722295465820464508395072340679620627436745028699534355759796406028891567780581758496617329284435705744690231536697517145638882720567450580530882268232994295390114625474426924287044932524746388984476169141774820965353522480562675177416179409731629655015162658160152831709336090839408075430651511572949455068228462534762708599374334491438178202331552317150292619770507332434770598733920977480411374115517441839967217781539167733211090369877065900332232848693546066420692601584146978137682081715190132974576268682045930338332818797491976563223875593373137456509969743088002754769856139626781322981806473213406368711431030811017458032580855940436813701526742770649656043334477722608223484653511664494905926106711077884919520896942935105416549373923775418929601482330906547753025146434775617658261391319025221044047312035784272583324982190338178227124826799739442675141781116972733930331182038072240179902507523213091344784757215330182575830885702200155917467415823795984779857397819098076066418660766957174947137679580876035537396235436678332989183235418527467897548839261605876654087361502132621881553790490165348318126101349367312384462657232041905330534072586496637597887101227669249186837426712315056874563562043586925666247500706269238024669929048950804126199850106222746190015965082392420536431032140057756374230629014953591852199102261379857275108814675351168325334642804205988769061163487380439639417737538384672837982410373216492042389108371130469596962478531527742158521583617586895347320455577497457225023700407090538258602332521594814699724658159195348651450253627021455647141550613589972561879987551386933666571143621012249990275891218005800908627233191481776044826162495008683790998714516600819144255789968062965004887904463191945687901460156098100205083316534715591800517766183906460000791696303989662161953572533340761148138304552617962917721456588773606811384944636779270487509582000535812538738577218741360819978205957890047265900668588617180107978665183157506037274398135678128864239322242633064267918562162962435230144602455671660041564415643063270941149089185504183623259960884168190088691798348501692524215455790632426291200086080301886818027047708751850188710029539558600002775170680518964201016969041732320026094304625241884604660999543312086090490995444056794094704722352345054756903839619169826359665517570019996054549658770179482078359455899702758727109698301881940024174613383936239326842456285026093482232928281428875560153586033898188833057477236030132394032850562651110926832074998363172790929214083548324221163628480058685502373527594266478182760047351804135648250375917576740759869630729219030727507205672145848214598733612625368251412045658218750170740556890164710161970443633889660883582445859642669511616624166046120372436970105115818420304708569057771979627582641825914713286335051208574717830410487888614435606977370674733530940390176655243637647504174182967749276069202855222398800042869173881534328175498226087247612504261195172318604505044604031108092302711447132771520639563247191360131102722549243542393280023997295822213829203342960913587026605535296875839395058559417248671885682011923009617428771920995641901250417583794918487944533039891367046432102832287548404254658810428424489558289994556073683762780489703399130315150656790712356997888591113028622252473832118628933112692156376768775675375356568671991880040506547790947386099372952412589592295962989379074025237658596438768352883316547233293829336252218786208592930006534421536705934173838284331892666729809053626891528914443704947875798460608769198090534979890872117743016644687217198010752221262462075228459980164630128776167783418034767365882514148199098494420600836148254741407846283206968670029253739829389397624229362856841211001776122605997589112739464097445540381714585217450461129991764177829753503653161139221336904321288421162762625941781725874093482225592268293758861581355511942673398499208486881937713579789539093507229468646592961572094602210321535798446948708960605156208348109419332327414808217267163762459417325038780739065496367043965732861219385189171144320134316404582823954971960794100912841120419816088658466663391148345421740322297451713496611900299869113592755983052911174513519766850555356794707688089854090211915007221506860433805784550784880508215438116296664126968057363996258094518400935060904739414104495599410191030986220262602902624490978378138787321727398875955362477331624771260037013287779855827023846299806536469314969825175655588847854934166705296589794160383470437316856854201839042309680011554550694019181689416355410674080713599096069341448168417428147489142071247549479452773385489047738144453433954861167571901572017744195016821519801055919808073145852489455570056543994001541661766298978181781149573450419117690885398356671523827159705946674235331284395892507198138806027660433234709695533242836029272989926417492985652051625598224401062223158959175698083066921178789715355645096453688480927160129165157144398603364455161765347533810450696604924643322055931985468274374513251634549119178721489716491444165155066984954237258883418487099094540812233650589032260643331269041067936687847059935568554199895078165852867355596416976840818057258542335467585554680667900677619772726225623758851090497857085912656118247369117865737497043908557206448071186390139029937675733780929205837516179978284552619109991051378946620012249323898951444731342121804377358197337995593673620189004627077844494143498997902591152323137406285629558483368046054642256064000967184041584292012894965560609147174949592187906191086081021347530937371883543242454095831909559376914508620772755650628772736425703008834607195787011015413035405663873420937124556855639899611765269494945353499015824795055172222177119372295812048640265775858838676581973221717784618843512589581073986054998525569172477239974221812527783314639860432041791120431331218815146769827874774557675732275500809631688816224592745109382049520083882659008955513472742444307330633231460244953116006702979585138883644125715514248431639739024772734327542058729423774145190326900143884366120887570965167586226530090982358869447926604966261259164012118070282030235870208128281463355711093130985391897192781983491679928328509494271328389079972361758503610378146411257275337658882530185713202210148163270170575534866203582842868832632016786737125386938310321856484652425865324004078236222112066018871506250491071023829841349163967940083804204805314751248042318802419700814527098598123169398233695245666156419518192698938397857211404383149141317896651366180213745988879942116285959053064631031795642816602896485153093607432939234637282953621858080231005423868723492427682297583475063585574260057136830266116812280475901253957574460571373963521376649021713438601847925462825615206422245206284601497521383149006814268527274080975851218991974947020338727515625838397310284588878752736121147891671113636518669807906134351377623518026172301014395568851042068188857505689670551150918241032814851654399948638628953602813425123729216498914453820803331813953222041591139868258823743199341799445158354997908155244305463731122574295906375424622289952221245355145398973725631209537692916604303261094815501120869883360717604404479930231599176514196400203029486788781755604381170836556599905825021282533304050982809145021059625798539496234952094141860308515989957821355885859265923265781111124022622309211709619733904332352239636292945843367869911934020191398627977237423282024829886501863253766982943086934925051018962037781945351959448240451245489124491326838305940082730978656321959558676474018632602340498063827900512526012458869449571186731412041251641306210253886201224263243650753908979683115859379046138054895570915186777491605133923688591362741329824809841865528732264191304772021801532324847619443164146245776520655395054296207467311298928095473616963629029975696180379486023299427412950495537390742128439984630596802304598883576703690393754624479530170412382162016576037068237274273346381800895550310801573412853670916293503262259320085933705724865932801364283011151522226948386169843410052223190257562767469828952369063315770694172852601576314388390410212093669510983095337801904078530657659601964785693395389308161450581961808033145232552974137468148715655363957952146465682641282259266600915054409617830841070130296507999296295460365411090374490250614409063998401339707420489868071097216963998690512954968646560311110806596130643549229041835121749771465354217079629229796019120252940975804831395770627328842082790859564414198565586008026825238229651639120638302203109396379240985849817615225049264003867415285405232558766792564504229972479592269650706182917733981578424239885421278387062776404964219629848930053223228630551514094887259081547613022832444993626595178433814774860329178636335780491940797634249291994332622271053248920334215086188464121831977070926825756820600450350258427761567870561467275319334745119395744573600700764412069094450757725940289725632348371843821902357407083690379972872548725112934251655121402825718128110795238546625859643058396407260168685794038078223915328324787010708570028568994603071206379914526596954767225808863087830618018673820263209410675034329247583882023918831268894273798365263991008447987286567303094674908478510214654890995341749836389549211914114290206118983546567253834406246607288152679423530974716370113491779688446189500762693581015667232217545283590629624997187873800090852107694764188849904724629531949737207134064567480671914193360954740654295182730461592221205146076350431536430299299375004090093907271727410457968983198101972808196730775527068255386671675197048608315649913746868464840469201616165477358895069539357494184033491923911355992933859942031798677159153853614996349901944281279012285626151055712291256318150728381379251111844301330857906194457187524840445720733151159445150169585531888066868584650340927018206122523251607012092538213109692037677530884051982306300900801142657627612607661989995519812535064931797800862590970397416348066569307006982627764879854625746545968841496870992676113633721148938085348120400224701424086761967425925486413979564541720118732764271579410681875292609268298924419331243644716689115348231547663302589662892179420594427595328527154996238298172117260450995765949160071815964672014919805830752676511821808788593926411771252458009968458971092740256187811833653201574319466628077452610587741673043411273765743177639827027355961113074176702939857034445772702449290549955630702095416446337615008360709232554912312873290980259182042561466090108337485941667783531574966735178513412032452089876719677925174231228931988400351964225943186507733369285426283687380368478626292275178264934117543836481077900236567708467417509256445596960593913973273574593623683460323618225162650886938150287358588960820254215438350659314012037842739050870805905883924985749464202594176819839491751774286316436063489907447872137521308911674301158679411979951447218055840644133442136700697710943010470161253519980432241377395891835787695905108506689430254314596717292465055697187491863453266793209900015506804967000847343867555095122646661632115788211452504950065166688121924411069597832313219276827999890187612088215100189315988137497450591913846697126090793175047350379432002641125037039087852875444861505125579132088833757222716228806159980183962508978029589006646683429851413213851736622552045148004517892333769888197038804936905427735106038487394193959496385657086434385293158484015372670442721347497611418179745918697839734251659659061870906151865835176156383911204878824933466492808919538228566891246888686042377250681828121023938836076136698953258829884968630898392907969172915799856381059304768186383584778567992556846854465689983503181852683866103872900517711383717209152219696897534778865335617008296743235232684713277204436934524130297169522482739082829545150427924779821461008758345052764891245874551815421381629282344050828826770856988233251206466640672603109119227938242388100583742880755615836243572777985913554562382211303098501842835464351720530768943798580268817524659751437821665944361805293943922367800038212480249088135834320239221149539195192883664711907764000114361307585681802409378081155183213751003876631453778426734217997856090598476342157340292574718507912243880118229584322284977966915583394578239296699804541053796515218926768734669824510084371679127468119533159841347585688756083459384967173255788450563782424937302046973534473399971592818671606132986950144324238305440583304222167966522120256996572550449179264795224056884063104504549348875591826406741291536570005077948335823592599925545129765937304116153762326876764590168345550055968636251125453872390148006828869378142676864264038063698933787897321266508616163486655477347569469558616204401770641836834091086369915675563915062535287393940972632852196566468334261002688339987108389375654545241354774718768464688648458030405328492645278702831915639812896698641168909987884781915534687280212042514444310892657038756047304040259075629489498810357186143001880271190098545111835136097200248899034826177740801451927874806351881373531334403458917703035243779933305955453741250124600559608236660081448600983178905084823027126817121148697531489209942090743846487646712946489066526539937004507355879252812873065623353955314454715849787968302419290408671020844426540795918700006697552369091675808173356152279229712017510850402572160386315780806584515133147766363797616977524957811732187865514311851905848757649998971672909911375207757843477998836163602227247643183338756698696158528697184468867426820443916943501860826905693929411520038838867425883340021398390289894615640390485910895540829920935446269524907426283299223852845365582821060453570601908268739910890201356253504927562849023334703951955848265634472219357204435521470986167492986459631204807793661859476026880798239909038672036269542390983310887801076629477083623636951418941457169111269352401072360826766193920085042205585626680469378528936744548898842825820990169893151284428435349362065797046331660546601310654930669092118881148280803925148602149162897986024306094854092558939371135769000013872959462546235884188978350583862366951929233812382863121812101095260188646278016210566378500970045150652890853629504781732892346999125691026085069008959401591445293606352054415861741703633680995855246116651366148570288916843518074705349271415850023232637371353824973274528948763653494479047605765360743346736072034553058057841889114514333898243481888479204783312102778411381154271062244129979974113050029698856273105444968498030887982568013571990013087297472000711904719890115221869765255945074859473280044694143473023133065893274999130435669470930684942738964995768779910979907062941207035849763685488917151257795982395800009668704969720560252788235361448514088751000871143744562414916097990039154800207383808964404553779346782885056292847691905224521432081662483180206133367592196117256595763328823509826249235473599667708302461104316009595061206074631024159184639825173759177568946604151666761629979340719289699302089240252398112142765706517897695763935146957007740293200310858933311748512744944398767051153459735205468472968820056505759240324311575176128429484744222284874543765662670670547178592976430355404744218769421336730354455074219330131591168011180883173795296715866881211249543096689135077554171978617372892609272596732906637787983608099624957755778447451845179397342412515547991389106539071963934235011682379608512976114355507560641052584189135274245500461290009093548900815549832385366242882959442787263898412962854812334384298855831337496744277928259581404586296662753748462258533392247056523449568627519747576356234829162353134494395822621706799378349912938474482340460274716686177320939580384518662450741309953580965383817254232230508715241464162844147341166944086565065008662619731936967395161814287290438835359684801790715621010534943608454545789014695816222065182366517808623867490925801181224261626037382552331181099997709166650637745947277697580113028695896463813057953844336616322497565720960041418556800807616186838978834125330174420577308401318610327155993706062251377103185578899285432078556964589656711073287476503226949996410580596795336448061465334142217009436229961190250804971711155000543960534073266531038458262814367462952788163793672323698737900667757595540585126210853157519360341453693235666996144203737974421862479095068735632092771147573692022355757248770191105649917882985388639404838646277467402058664578058168399843627575087002193096777027562208729905362221935272981148399546043567893723975779077452930622140257422707039949454120016600538836589921820494132251983888449114680473789313851539541255039895808254654100720093839083872995787943430941434719795050278312960190126941685184297384506157872679704988179838431857685590409940608453919471740212953350792867548313962726796552391008144237510033019906821542369727151489444508947115051850157079866097389205446656173093778052932559762875263794051236336180349255606410555876772491667749522129574458620070851791321222764273935891605890300713182321271605909648749587046851024319986813480248156285991402489139251142654876679506106382384222407239298497468847948498600331736359965074922034951430839114911479119656259594665630338553184883964773334257875783260499910128348834443945413053223963396910861168080983190164841533105080749630367528782734561690855746710165351331715396621205377776802471054525944969844766687325845842847368886098364012269396342746743226892765122573818331651722327734017929250045031193912155431362948378128756331609925525007030174385184957301233797799962059066201721107653769964166154848458759922289643659954524316911711565400421574957572828643052278377196312349189720124389096333966060197086681972652641047714477101925411138177163538165884518508893436289153228525442694862410464704568036345251062520031545851876678042448951902733455184261406940195791099750894280989654817068357384827857677959043696337753974867922099770042641140386962499838230971230213675654439120687871130601274608141909859034578278705594224337485679147230901968182932802051702892160939404951051817623471833753610987935554792696687635391810259423227952320950717468657613398816631544749666885888423842862839362761702096024280176212526377994546652911922493189862931721004171216981677778540054540849631307727368457170355761530226875910405360319929513540887270296643611539171166208469037492775171249999369002454791015630224513870947633626281203910483169992789509752958164968531065021982794762975523251979708745633938343667344998087312077690845910264978556672360690542264548795823042413559419967845386176555611876079636197489784378441604444860537238620859264316316335030313552824196871044268119046974934394686384348750193099075590267393980130586202638368594324813012657330916047132893791883979651246417802073301105277190989336157365744253722743925770110010369364510220645730211432247101171931801139419076139205395824401483769686660853282018689236922421609449413554413727324229010669549536236496300947137255969980965771600812861323584151925926754854320266867335668857249690387850492805037184906072423093515753940510336090127521721258503249652342468169068226474059862911984166140149103182209430919547663995180765987042643590495486719813662120357240295769092602784571078839507488305771940252634610607132986127718161734191097589462043492003018006990516334266360121665590301163217939192132764411044155388083285070392912764170758381888551635668503772015819869554283292194942930645279038226983030175840168144725694128319412383829079691941000574786967291137637987331849830824664303080761335758826377788407836224986751479731961541494668016622216773040626781034985529792193982699204741882126849696351163161455150988036438610148486920451681026334492801873454827369916617810215021245568068594672542670249125723557393466074138601344685760171619922834980079195766474640161502209132953560677865429356255751681716496059822979379048215859957997519747557130527443471953809066460010380983430368283980393158129494090620586144031678494808883363712248645204624435716312019350582406486756897449356141414788023592874615238669201628038811370091539109159020636439468350804463089514348923848737308224413846257967597967685368944500727902066702395111762360948868573073792836798676916492828204960163022555199903825188281178540603364476477720639517072486073457758272904086866347472448068461744131594224196002084292291484273216132852989978807595067473914967152115811237377767827081609748952565848867478494842189816846625855519720344883618093183647914419666156051235217065475196882786677748705226913669639948598692491306665201468283275839251033659573558188289846274683467896072879114128617984125390821759336451473475344036761780816756093023156772298777288601482961146607920271377379136134765045289537634248975249263539130696173758504028069249106208897856281969607276608423378868342086623086492174270660584668765866670892818227853082065090186822970798862691206712007870784868288568685288511488326556770915859523415012369940239148757021328810933775349810084961012898366997734651425830638241218976408190094791374064734947764282476410861231923278816197424559252180078431447860495879746026885698863296719579970532818106472100594567649246890196005558212320220974442648547255428248474473429734335648723861947415173400172445715959188138822662389171892752176445949272505668803092220676374822887462096905103130204100779846461391068149974908491579507243205230534219464452330283472468949964140934310150998868082476181088661395392807084652168530938919052284501032016916598935274635949324714810001851044610063859648598209155012124972852093568397932131599291150596637829771774822320845726004929671520690859881056483440791895880185581841654654233937403964272572970960789466046608857203247136820726200608629676474725475831689121989516243404798350854205245253916748665659301010134225473468160809404123317423290058395458157958791596658679282309770272868483557102538006080623909704470838409780890918540999658310798064911698064556753508890210599771556400908198359635702330415306281330037161045901557899508563349364420287404415199058624088356784302651067185935599982409444485865232706715270734913968706429279335858863271124006204352997161217989715322145620640325585128777678523517470501589909195705157587536612532870568360170638499380438507425529871435203934859668564887957177239443847268767927683217580056842520598040717607286840419515552970831008946687438483932883252573580638876113288312341312949046776047139300419306651986955210911876032963093217033344316017914279632454271073515583024107322149474881177069657571651302597285898435670237206831216505869060213579730993469163441698938735935371028380899109034652644035234445069961451714527503152911793915931339413957962537214668975771407320540956300508347587510257302744383930862526814508247316008130585395740353002391942069079290593515279073585422670561096825743129825447601464695420849573213149238591459695108254591168602306263353641609132370377574134085078606430143176199452380151468065088202307276343534286934925889847057664168769312426556022161777333329629717250470286204125920375557204692502353267122324987172604367924935083560477329443245096871258307676660356665940071035926674441940399056836638806444823460036535781459574474380173621444308903507943000133494366506499137643703682036091398425657180056452168293388819386760589490725733364855690661701283330965103788862409556539343799651985464355463380900664566294573952258681324984354815924191531544237616259506276894200364213350439976272153069583859884120760779575043982180175998694756426911755146153342677867291075145623923362119959969156343103429759179241097506789755425950596199334586382503257157325676691749981082515901321393582752684010273781541173612390438696280538190987463178335901819090783934318983215495070065709721705480078086924819795418095424981221246326855353753218576463134265614830138760427627947827732903516860894895366958943435899083781026421600456804525793014200411789567274049941227041776603976911438898244507347874190088380382519612760210698508703385184647232912400859286164596554628123504944544877768260988678912330532079532090368736482232275867853820238837093721415441754532215628281078763325831202067876108131973681763130180150718475262020935514585351302769542055093958326542184298663462277091393040080102381529086613883226548531131361324302258445084576184471229013786230270447843220695041340297817366260584545780883715660846595062924319394879050269650095409286158996045990001570856884892287615496684496496967066067341626119791468543605045659771422096266372381043930744094278576633516973469607368564261431726755433588921338333962345131838284730234695541817447358208667672246508940711561450879694247902497966039364609700789994769878461959827859942842312862051424615830254886430950058476073514436979816432687710372789698379251655157312712854161085846206067524288100148200110245150402535301848000026931641525441585041935593890178171285373391113532513264325055803297786876229421532040209974641481067499711517392691023588502626891760107772879887035024487610668073946178846247652262158809834761374539607529425570946951337560593298993641395763920298155556113885679636580748266391375347438962833014113164603776209292934938862898601260743877242631770321315006958788415119739194370417546793392422330151507125698147560373999929002293616765778113915886522450250224692502522887337324812629349762469935691987400363202948862876411793653693140374438304024820893594279657398490797377050653445174959803647871373410004279366965462351202014427822251534570868016219842257353581238798032306877691537492413861653455798397207978586926393277063629171251507937300525761894836436202802851100857756747411991528541400447620963559989943908752336515165511611870190279516440572240321967098562724047438070951390557601985691894595222829219818045202361578978959071542935501529017799183742828866227673185612325820658487068915246016221490140063377639407995716344350017796729992444366299088429092905231324707513876578254534422815722213664648641577832308708507515389559992206210209403386997061127420883629314256847743455963347253935467648319614403703321977656291763145415722463903655261708539537351187580209767047849853132958982673750552189348333806133416336454792436402195820900772855996685269034784316713925563370148849234405157503158230307614884796768962600006526767811291318611304633560024102058867227814473723232406650403352923547289021602257974316322014993543826200608836077060607962347953150809018041808977897804313497437282950538398944653017533794150158709253338679588270442949829484702306987753409585397675593477701334808042301004630299556696028437441663343721895934300200586574006664500200628195470085704855044198205882286830357847565418875445898813351474042586448037244777538465839335828785909786268521048375676867452638744328562346204878709386217133304497720604441601134959903498880584226876346062500069925202858076837289744075555288346311416977442704155630867453212683955580161642193081132236279580503539222791359427442765812021865201479800483298423876479238487321735962088593365943049850950235119997511769582069080224240851662314583443684511752703757026110592525298758209264363461917818369068740495601810404392630081296029115494298040100030474406567809716411055210154660434756102133184715256563192031051372571035440196496786485795390344723866273900099246278561266541017256978573439819049442454244992992510505288782508227055844525737855897848113121848158621605782994563482060633311089235248504146202636301142443402813972933124993349614015736269342763065929949478262175442620620140651093903609142821601499530600439375743781918394253790175665931675492758992351365437689654321164977395129194266082572530425432254151321242902366063568776652521787861168063790968554170733895523076296053005008336664624267407488449701816600929148460048276993296986577210085526621297528313940892726087584084092797092958165464282629208567292535841329877428867385471035022739374491132659400196780196903724343196677238887058370509044170455605664019772788481318374559780202346682777349097076907644790839273297356025493320425932557032225554631506716443330219040255705872494687934013447713691299725948984092084846770994816764469708271510037206019118649807796148930410640383677327191699205339615950430631141965649213566453384203371255935058662834003306240840514730478998107365725972084855644463632480165498328681692158511141741918427182099548758945447369389708971551852458274008756219454012771193561434774930533851054049753504975007920600352588839536392472187038735914649456228759861656458316847805910992167919636865524006840365348773033179030801713210144835193802795324788780438007625189232781529572729072971896558285302526030951079051564911417868791992951985450966616673689228256785424043162756930709500178165752207048049018218833638482113828575727372495798479973777771466573065607745226372900011250616360056371868024231987010549461371838021645082137873848547330852737801739808322211837535751895786763662566979322973343964937978577172764963080695265464386085064410184470184498577073497440650498637831689240522802251006158259632889295752751156612497352195321150554007046232114379743267162727330594205906803203752345937838705669803697536101623184373567806631362778521514827924843519478598518878683647667564970242031512689585212041909257702357945535382288715942641724531070518667127040572546651170769030387293535974451961953964127494729105535093031450336409213967681129675431080058825438042065669519746089264625624256906034927481607674822175863969531697756593616821451233689596926934112240445109630976863445595635762768331562262700837315725770186575342222454580964089221597253692794117581882610928271109008564309240801582216451060484375710290538673392771429914227850080425100609460124912811028927478347172328326004908451082018800698211712473681197370111199461378772345398107524007353711927459421805716587408716044236263500998157095486383412518295984516155548115497238347565630776497056161739038956610983797556804718921025324314156664134798996786493164778494280710585926130991083023511194516129337983990455833113802653209916576769002655068269669791722101024660574049845717726292433780056646985109947009646613871398950501955388508248899840729454330021102608424283176225845946849827925214804916383114891102952461890525823249373373435597013566103991889339472981295580246408372583697955592965491918473251802903847584700362866780611912011152300680181636713895393512911908432917059476719223494821139432390610052665654891658929731522979226047755877990440538273920730111659740416985509534819700485972791607191694021031036136336936396889862161501842386646671642816662945266580297829682276402578141801202541893507337888618403860954307041065770185362493349687499793402922095646861797275283029798128944442177263999175121456605525037937276624333361997501554576861430920849996276530310056119521742638707175217263526375999981106034990618177291253075723358827240528784075696148189752675111839018131152311724057989216750896208592045703990690629740366960660880280165507960283483541478153043022225588056619371888530790540249253844882680970483606179954810190859481841360143605307929199322917543105966887879444012516675173186104166087073135988161153639373434646971765948822094075507746792563686044537326051254153656503632961348962369195345547023692348395536668706768662028474738585341713889161502633567427898002414245230007764523980160182445891070396900966662603726337986024306981794435826548246349285269997715896526097422294443440393644234103281791623502896966327899176020013732635353137210366089021208134693616500475223624283115829635438822380893464999513997058262996360590874478508181079590177192398562336507951939434457824574202313488747711644416239370681301174719531372794495216251857863069455428895748972761649464988834532798488733494459073116651681469170745103637787396391370190652782295193114733288439778924761949153679913110408841926729506779124453458017482208955824132747175575704062620586072418781775122884386632407134133682835567886732686322391066179117326856374825859355545848876801242703491778640755283330127077887580792430268274512313572359245270613876720234394772681303165187473205210117117810380138348477872757562817364816355203088049874873738181867347410759144564507828955600810582942738840040169100996597118382871321486008712056644611817475247868173999087158770879878191996271121361005257277273026828135764746816769375932249162057521184234809023740866343811953209522659197130670784055435602919554667781806445173462894702660045331967707308512868776007326462675658832107070424602028671194061263207755202709653793621068781203020169811577621740576317669387832533286277614609316132338065230386670200388466345678981101086922825549567614466411584949676234725984635925788173006757673090123508393274783600935189955902702227912557662658025166017519064546955594264519621285206133976828419673443526801115902308816859867959433962214771677974545651025169849924860303455811681079916202045479138453682075979567228066533908182326216678693887797711870099856090115526233790637081431053504942977132551381350589789862837568427580707438464692524167386733526710292004999413742561286930266940924145485146380687770527420695724988730048669808522947451165593051733271276034969557111577843300116929013998502719236314931052909938098522316894941579393286972234714303926843609770044709415467226043533840046210519557613431116624821287405747376621036014967561706005652998434606093835663307498395049151727342256569355224670802983457873334833916195906738726622405130455177736034272424579708796155099462319013000075141092853016143503951195021870535346004104197342362113892567335613851903940346340525352060640194940788509765704708742776963460093436147397727822807102797604106718646858996150942319516058727976842541151094551865448821983512664656457620553572838511671697398733344984284668447777684180965114726331415416400187118369433938629193810492402851932907348213257380969406364826645447275989334585170004159821449082629056993951149928222011602435484383556886413250781774282246801613116419258626955162615698538254390959000550619813366407908752865855033573903323846253584236205853391370976458152561720401753474061000317692501674810176612610560719416589692290795221786849588322260552480632232884455638892186128118460385023696721668744110322068719841593272978453401132667648224602259024132886698837973305820865528785547226438053318342646841873614568542801691646530392237658146573977776600363074725863142913361285638094801109970228878991840286724351571448344538048798827566079985038412195284847516336420371385958673005758304713172936261516082718321176698075603094812350967300566732683382594159415256977512342087759968637853875567723307177321990513082558137977835289782986665505576620245284168202105327056512950419113986647509220320823267995561668650717533215980634419539395134460772094191382450856371633285895618982015770788281581436250450428670780547794454794193884056417078789217136084812816154781233376905565151894369637650462028227659514622039141032958485696456691497196150319327368419321390388793541965590954492656524021590130896054822807671056202708849244429749858765402505986991819698793437356390054953052656836081987068772359491585927364468278715937297078336700117296061848540292262834801567217368887705908780153500340709739251203818315321130176318550216188504573701419101547889173631199753899349061700604637848348539945527865379528430913287199760469505559072062776044967718184748601075251368744801285235098736961537020872469535176617374379448672073860117179841072193339712512796319696862661279498615857800876086962636721905316107289852722930276485986404112615682795732537036031081836364080278587762899201609990736086203839673329587453907065089750559489658636120773582085600293314230912241251255224620977490826365953462379261235659850773315292676601785109903950051125408216609209407264655231651668913089453432206751396559339594650488959685143499432203812512363601937274463300667168772257760738961290810990101974032206672492072362768425690168226554640977063267474489071089144813248329959660877097531689557523308284463408933389597788062313599211692904866908986902296466870723538812609963915567349426240063668811831781266126119045583634437068918940361499146031278147146922616235459205652502419015547594355959506794465975303910818578172360757898695467825619855269256917914720748778290912161231351307721945827108622379377740112559005892923297470619973175337708606086594129795558220333088099609160302173244889675256818251662915809964259528530473365094314910814728592585271459533143226320224442588702731728188212326973913793435713929794269850458589388897119748333183252640329793616783073495247981279961338258377593876366299394537998354279708720159266439433037391608945108749385679142789809491934235262223183448732797894649074393560318151101494908863620816648126565727341557618429271391010373357228813247715362717679728457517849433821761952727351427727219062937887465322319218785634567494502590156401540264527648300766060087012418237232388626119990643985047826487544961637490918735542750391227223586012592777986170961084974439575743426281314077251325380199444944562556138864998289990533903547565647000375196850730722266492026956047800348304984252878641082722567491521408349430224799150547181040959461952451237408842968729287452096688868272697814838105930884917944542048193688686647456721281961119011075806297568838505807174780122814659669304678882627209647372556922331441791743857464871735659089535996906993682573475408202125809100267606056258623105586247984742109319560366989373895534480412926955123450293742104877607428584943531333231511210315979550418369100141186604649310253770623521986835408274805239011129820515844806969761249138149725341923738428671696918582381484001427405226032403699770194916473997033487575938040908823640672064386726180134046355057631838537070684214964363190222652744694162735767986194854716015270998804437764193836081051602881343573462945495573207763011815413835625002586737746004869229597961440410319349906792468184035095537471956362636909986511478216388688299961315200490708358189566963384373885413840259172391694231302398164109989448800773102524805725136133436217328860399313841745859486020259444089731918298072716521367759890142533562041161967489863932541302915541893989618517386379287506975505221040426206799630639900504781046001662875656322278804326206742279065792582901722737305603262163437954073299652928019655280839066470700900173591426460931760545727526736842027731729891978724886910870496833736315421501642165308144589266476001970689896555888786614999241337305696934776861326725674087906760594870552063687447065258374731885581230798662340494200128131220050192860032861042437374829515237668765672167937656832859126935927841292825527225628993140627019098104421879044619198643259010028384972519080231133232746313492104221331260317417238797339754956462835046599956758199615285824768650852392165395701803756176047886938092256705973354491588881102668617449641135951397664175210669264253035113631495354038146336399061938513260000812690196196136933375312333606053353354560005730931712929014290577732475251461268417342599124351483754692515855074660779021414747564402520472629421474090868769396812339379976241507981786502069246356575648596530775890170127376433673013433266942056851139539083926928530892143338428759642216228919601514035036243599530753435403513416186205210413038286953823961451234498469268298030190149931084194411021459868631530025249369617241903908741387775957274347964831059863369852819340820149219221996834593563376408091777380639977308523042779687166429934169427199619819796241713909057088164371168207115981784288411817676828478508112202618393753345661947196462518063800307915090953018537698496177422978151517186554125339875784672589440105715219900600550722767504981688374311576449934373887268831116562337526174737413386135201104211238181756829272084867150108642678766815264106141751465589465086903268248183973211741547175959354206995909486212390048621024400040320254715481309468789982352649873417616986493379108152612724238001365679932916787812632296663383560090617825506651199670796143470468346861697838726872900968724034899075842554424933221503216890317869413276583824081370008770784060550665283422100270492156472430345926098299478168636115722408720715252789935948327152653979518203803662956781764623716582056924339722195730470523877346466942290747333738007245890237266563917042717451893056633703301574216290619060536131050362273928795983830965168012837252100244994781000605414971038609204914149094130991248493317478443770510871515338820507265744883302375646606359904753546204678140618758201916783990545157137467157479850732497130574099026068762814205312556369272986946813192619389003415747081345165022791126796197361460263390455502091998255826093994482706182991268538713440623021602452388736159408950681352186717221929902637179127362189979729205044517259512353920805947785984530652449430085616709748497971774186848501418437863185388576978705897775978164383332407489432897139178886604246673816789244981415137324269772518419523915587834964562248286278129090202078213554112236260441035200341893716823373634510220481391729031719062280445186228131261926096880290863051659636299217889668493248216648713745666823207979587590109765828844825846458565796988965114587376840220642657000056623213825988449405503898777077431343041704667231262530223092002505178096795584614432005963929638668871486062206121974142260828102214675548700907479742830744059782168434312788892082925928546319838860711795773242021205925866773728709603412089919505498231014576406027511721575268846025032391413015602995963942298930380635904169804399808411794405818349143190451482839735721100407227860459102520537486106106659700498602984673751276145819328152577438248216543198711369022400277790206599422386126754305420709411745485481533833639890820794665153279844893374652282722174789672196918075593002723607405443323849637739881645744801277966060561335372007545794103277827038669419610177126733135753161748901859204627320224203159253739500712677298378953433182211649975021091593259416621658664030801693599035979018793559344274066278290273286532507601597561268016356171457161590305096864880727986884794765469838519372452740365423309663251967015285043969767793328242175016085035041219693935087410513988739345172527524145529631638049937755330310072364596104317428695477929008122092407224277171360173583770605298690236486763434355896326986436873824660733997416907956321144128360320484234751781411885774331111561714277151024345151628362270925063346661898972020712745648001823809942814039682861311373120805561585328353797670731229116960718473814912672735193116812811187383397785121518599793748280853519091969102247216183179356570366502692846972546833774570952516120459110778913988609503624695630470130417832602842768133759677991221309141390238695799835941219376632502250538196688347001941378916012326811371414738871381353076289223212996690334092971532701931010238296929294327332891331405196471562616561276645404650236091518822229980934387820095257504257438529347455836978752369020485813526774958950788353407998773911925337437648174230538092934461162682789334862089197665611646490346185790750752614260430456618001605258740777350709125369331495400280680724422906248351731921907920899184478913586414543033956128317526126343693126397177139441141599222282458991489173225914144328096835158163662963937299961232143192639705472803593859794597513641422603716620829947422304709745093603959253926789871788380490874522146861879209629520932351007937468527966447365308999100203888132025674168747192640652584802476975555284384182328900530561656482636023822842095679113463069503222971938008729595716420330194352642875135172086387294696098867731536556709788681208907751935031582164996017821272196313429164704845100785779664247559800366655304610109751636793752415384992973804689649189056591429556633311587434896167045140432770339253661329172485328593519493591901666360539916703752118792858827846728448861334138792946357426395579558124043309863992559147811920059701271777603094987338247058188418031218075422080819354886302400520956828113993298001251248605353352329699650290585944121957121348799904031044465595960706746272478933006426200233592981750447792705798279734889358690120498283286747922571581826953548146977661681189791207167839834358668194413657900856257309859603947672420938206646209537726783685830175067014236794495518400710136152181448983956364496200134625503326471338446907961271270448803145008428052691410915056952809972126788706353087745154925275462716521946191729143960942076181993558723833878414036861104435479309031762154118940088108014484811352832511215210588102067912935732894873361561973905768288261859462189088122176960745350493765865597271806901825953998628082729953154459701684229968088430519512338389964844009390480420909670200291266154266623438393574296597513851486349971303991262227450643144486139651966120757308412335493078884771122177537523053195294190448610353862388795128016528445293132192252947047999425517040390507127200697515055333400430763928500833501496740761501837358194467998868384097795699254957320836757077040338623214127769364886942645523970333087480733499189150305881843552521597446068561574807546639792945144919599599129108449287810613489948468374573035187195998652385175759668290675704445990303444687674900785106292669275597469536731886993925721240686636841062870399054122975675434026126920723259431907757043088995551703697811368854874466685315886978127329593526761820507769972350541249439202364906712324148450881075733755035290738864332300138100638270105574177317141883163959090634663774314389919933888621439298924934872626594633856827436460459210993786794082002502214133411094163746394311227835890807148922863788374909702655419804259466096384975326488253449868678641277181641613482889952078273985999382781788700544675323659691643215822113103429345698893131285672835972903634668367282644682242392607996518549285307835451958382187455019371213475122018652485511166269823218949877208778133441660075292135959405283473183868419082286568584830828006481918519725803524768705186055336381766711938321931525761486107564321463219490847045557009785438756449146579050153888684798184922114141777047703299945033378005579712393983597071549417746100600867965467179028669876012785847184734022342040344684564649523228815639345069581131099273231400874345669012807158414778741605861819723557983096238573013952484292614821839316630979433539505950579857679747735004264108433811611943641011775390321760315626993759545345750011643110366984047799914510820854866870501714544930238285828548644812633409483018850887727695747105317600942359880203458491942099296516195610168191606635643785773831189962151462532569939306426977605288159167902258836447055606301655889854234156283715463527462172606897097624598654109413507534199281416452402340129188190271214859900313005436929634763414628807255588531599874711322173206175387685383069845680945937748063529824795424745638341177502431824109648453215836467046611495600748001833649061377152927636200938588802206003468149933422903465034154029771279164705272315693848695380001614875448228271505343822823977584742798401157929225329203097792826860893668234673956912614580447460436241540773123792087477274912305692369519256634856870198595391788022156518663901392284122186143829831856406520198373889733823000186165299122189329102015488763424505535323612862796131090205968559999426937097170534538932505590954771314042230140145599605416799547372397032312346460947631930866113505381022479645565850458586755114159042550853370489510657525138704771430115650456352468144164016062051417893426904144019357122916234550780290709757350790270153836174297605833182116640124106126016786579475553414988181896759960441702903468002887737082228488185377914613057480211283979718616944953341999754539861837174616588983345520113579339262949578564893114880581855321900857244661514480795428392420621932318199762596260928341800348698849676925920157993838876002092172294611940966590395549690140244439864914729720887632458567243845898060672864168211506670639126139098009930602912308741870297699391434918629928109700193530513737387590731452836948279364652178005614905472381043066136106909942586720361216926399799621231478516502992171930178455822263270279519873098346681758450959649314440194860085485112239620017636051348247420280535169789618439258512101224368993260826414508022428918221257359991787718775122027934503406309859377771657105515781480510843367307445552820762284706313187867097041893639877889523785855257440634621821745921973836478576181450355811315854841395967480844778580552702768757284427951258394478679164361268850219672803632090849783432623956392105375645601069385521855554805953571467257577992746809447351240467189325015119272932124008718591449641997973451594234054634564018848223117976192238735612916783961509006137959748608180961028242217476049621413428179191654398037634289867392915498931060138551786552650055244374892559277499926861832285739364817625335540573881454713839192347037693833798675336127874127120188038708846075464555709759646174282644392777596206953659181741306909430476850026045308737375210526618857625939937706322818613859066949124950758972581143053376255702057316807232632507786025296232398668322239469005249711053303631529987088494194531372131009598466404842784247927989617915722219516901096710757011852388046430336870220554763769485534461786894052526184153925220141505027734257705647918515656361086552818062096141922254125743500565726865361785952005702463150160501423961221190290098287388853024270875559600171239328386046979019171387709409439748089750064506144067186634749831253868588876927803525492195444599831996806555114244674382261053245351808592540411427845149609903303551179938022442849597560980616882167391147652224681415884309588704788578928497163472484969881225443473371905084412795075204424612775735775344510360165864181635638171047408061139604517933974029243704005594890871862194302414767242353010087815630649041371562404266266074831669653511996913781842650091825938198515693800614792875368854767960323808739616399109469072782331436248750479537515265833897480597868946324424446435510703766077640969139943293227322407588756156266270164353227976555424628163962620346564971748022787405872903742433563860734933510585306940822114861245794417364167984769074874006391929102234631248445688988897833039280700866958521015610371497064548087359238434136457389622403401276729060787005339815426071934380446112732663609587957475993185778233406010814789940063841075378042332249316354791446150574103831654145398601456388524701507928742935720335758243704382586984547894321748299480627854240187693280905247120519798420225149532895002503103995707271229494411893697188077301726159321905952063874478707056684521039795408599068744407861712435670612028179919854199724725667551499820324025641767339407727385294912612065170180086572382831670053220023728547292753491800572806085310556374647125973869275872232931685117956335415756315463474001188151221144955366709292832418506989589050043285238661903981319661118702338414614858466317311010939059266711025035446631030457466248200913324352343091468179053468390002210277818438228788473999711785380618089204490310878219350084908598949542732710160100419794780298161149494231961934188864232247351992795340636977507521928266035715850438275350446429865592731669562700132879904828074043451829185686004465301795904609007980754252950340730110785430627266595904991760893648812251018116160508147218368288644864871488798648575997343432743997555516577331212085019228782148722627622904932591088893027838650665840853088737351558475435061462539427045882228129939277504142531100169123414649333037142661626405621450955292220013627945774906630706073365389019962412309412774840993456611923985917736810701430638216548458813490701801464056645010572070321781095152827087381287556371980106635642682362568409924450802671993949971357559859338536802192107106884679527988438875601066166879874874181632096653952368095298091908973354984643141158389767192331226567098523756732354934720612620232127585239261599477244306690113882038808107301571175560829618065567376401665660471154962825175877105794758731278367662655268621422075305469729565750036993903002164824250950256619277912767464180327717257602836437806669965045013501037738265778213569475122804100566310273498399676531682991806373094642260899470471958933016791929219151683495482008926769023440274018134847957930836465965150310876131169326000236513758785596686539798082285323473112629178562448203921244994065685393313254304564115823888625300299976429647654667789656627916481713238940755772545207930656842108447531503189720756100543234405940557478883126745892043137508998353669084482211761268254833734438000059770377610432556012546350344670388812604018085378450011603579758508156307902955587261626476048708088627851075061076166815554943711005916223360765116062383110125825660838596708774393018716075047940525698285073986528652925644184683938265572185918134947930515064024424388513223367767977450795908901274959135177234159932638770144867087416124835658282967114099962029342199217692324520617617312186512482148211097103649211886506152572976168851590073980060244612754993452658420148899559772242925761699844846451835296059810998913386663849341503755260218381080795720535600820634727853874431822071576771530197489416449339951834466332972833220140288115644171925771583451112133820962193693380476365479899976132208427455004472916561213263187510328543370212710589963054246952423322769276286724335360202779982691510404236301523366818995319854357750310249727574312012168366886479475072669194849228712565919548633559690856849430982395441191317624466118901384658181355722302989265597651035560891811592307218535913839867900678743942410873341391197935224151132241144454212634096812775609539337481359113644607950062435053243219544414667248369262160285537305077863731883159348700813443112354232813337456856723092973524761875058853636364505961644145620543785902004921531055886225007237899546637398634455747708285054967909552115769232666644147443515028960453730045317071555817540335347656879478208759956191958483809995373753280703744241081582217442981340411527880177222284335434347087509501165622113796468288353066312012353250053021416934544531201645497572196811677142470583574729282249900171727811852913806800154193327800322088857091608404357190589898065822874611830908929802186734575566841496150685263338529545416166235071176814067822909746342252793781997294190867353210434755396545884350995178812220974215954523743028144548660095881970607087672653594112174007843830943197863261744018303709753736447019202216437258700652017802979444452122868006514620620445461953832501523294798396418343411788665788890660949548661023797389273010311329952879531826202250572302137250025340049623959088662572938415585395304364789736667244725788777466522438436583862395406856309338253730905399307881887203140834876964775457017256319790757484359905136758909164441451776249595892494911217375679578946791187157431583664400367950142589400459338583550273024140418544306951580473521895526975252695132395886309054719777194424113095824931552728731858695929502214668552976048613762506043618902916763992807575633878671068025877755247387315594428820787355516689033941203000924018360953205831741842126079783897899314845822029193712473452077703426445850073907560541828063941687048953742081577440299277648301618683228464111294714557161405162533035562516936807354308981998103675752156666879981407120948863900013685291105128165120836253089304511131587965664466281726823515372398991742577222557004771457144919317203096945574054703558022803322208638167169619265759117200721857253518307866828330939579176578285254336705386587028168817384820177599119703402911302454155440846311289128689513044677218461414237085415233995756699330969956181565487444160604891016663988061036397144189310750594781761389843819615404834677001914398611591798996003361081453122558602305409487220689701974665428514952987172632474721861404752110756389965793086370440924594590972187868808824384345007044878237744776231072400930944888423654525353283357758678982793157657715287085700492489282954372341458947781759196641536068755030633202251807635689319094161815293873236969452314150296845709106443563073538600555552071023929000611319775708961036021476442911694929592788817467148797824476535571447862848996627378344369778461166083246045973543248728834878705772069721728050629751710972670214416953897388868248919141339827253448797367858613547978826829883978619039213534881702905717980299112046292682068579128794875820136453913779230300761251611865406219659001905264294144214373626328778139411104831313980683667876479420114938445750501985449842410717079731237453698709883890726195695883524899452673146086584437458968701657684182753653944130765936393658006643912527179155885909998259681663166329471076399872676527624078866334962112137893800825650275424766319800178175415596113698289050292150881080701184204036311829424206683617425752561996239289695226843177164907831617730109619331411335245729651062020371327536757585518338348012779747245129432629262743898004965703297244879560076680578141221501195189500653928120703986291074617843003923986371849285630836658475892020271869819970918593438756700313906500569391355213602058996397963421060047992686783959040018857587656321684583784656328315194967453703885227707517605101293368712816568965869722206043298078093870806397767398406132346934233729191720844023787330672887019000252447064594650913349340508078343612951742427083719832363769927948836635268564332597343629992813753195565572477160158228642279303566457323966633757548323170181639098360474864316606022809072789089111749892544451562023419736870562919149207276053169661246540657196706568418848424924175762576801403767921621103595060317105483428177713165759831282262052715124366057957216522638470389721023384701943081386584127484771121390350041187616388088555372584966935324806950572141942744362522304241897778211785553212410478485636701835391197107648219118027526383865306521679498817693926966365457335696537105282452987269935679495833216981014704183449925310877179775377137432046502057538482721908824864691684974742475458858349344099787919515190827203512607028335915895433322443194201852283216344028722003702820157989516430647681836126149833796675881428656398115401302445221643342649189398929648904428070434123390830087181503175232693937062172197731648341176209437844706262719699861404141018624966244617571545651115190509847966186306711077748286881180535095151950053990512643154939568275565373352265525546162795437707502820688168123258670469830518604643112809455933300022094250940507876951610847491402231316581415127693106137190306984090101952847675746502223234156023385623911136873152799411491631820465502563855797127809917140205094330349077611179422476353684288774764051639895225944983598774435500419098084729484837218268493957668034388910961957521323297733987583580975761572819928987740950518984802612338021717771655599125645907574007195629894798039680119559992315837800840813073647999422047861265915120440028039289506871287350859215135720751426556185625684278364586828966049463873711210503216463965247776418411289298844413364554723880168556773748536097555424436021763224745658269733843192243988988612255099929659503015959235522649356078652613262405697399004494008336541688580871505951713142792576100542799152532786753890169045615793578800999082293742265265907792711141761706250057465925557792771137161797844193986970436346358158656545241183326063893207430566731958999545657646780162352444938463197697158482410900951059121548830405696254537154722219953386744879967882892160857960764992915382935688528930455917872806493873807894444310277526562473136711283724285408586941721964708982817745332331481266072495452433431050008152802931881588352501448114165093590793500820435876274990302681996020195949740383800317583327615253747345247275249304000182272374852619530484058279630083318656047858471996882621165582305116277201523774571806188997916919286847872046700831241032697959285861107805067074334015260654903275313723576567169059890178838654709997933555754057320480465223381625900276665015647798438526946539062132100145101058829674542853042505807227528039989892918352807753802991784093615802026253380078648180044394847950694358493487592653281404694998774779598555622044927588578596795115392654839090736379948885916603542783526743318055297836452980484472201921328108186529197270207337402389210831809085146585985650997461326184654049058754608223829786813190425148789415678325129498157570249240789330789918749422050722775167938315077761255543244139673645889925582954493213223813326800550751513784719332715351100222905362128701544579502306005668257214674966872512297816911253926097729518786572369510652290307969282161507890977473793342883071402876474020681235370785642140788229222054850032061155770983542739206784765833979167450872161562354718752527381125993907745679159028476089131692995884040506736477169069027103652143012153431967369106970896969123524676228395926381405988930535997948834860143075805284110819121354707209382236425381572067568097215319483945841596873922669379963579640131311756973651464152721076325318361202998945409978604834398200962201280083522344532719408706996802600821259872048891375364495714122085345887035169787179252945617413914583337985266042404213063091177623702976029719977497306552503387752408324184668917521906201272443834881229839358125140689012648905003303128071619951846915819336810938216547802784395220381363891016602542105868365363027114604340341287230242076354079598881823000076459301378779277989017904763456505365826296477594576811203069161495999927992881882943585347148479499465923368543087399472272209747972117190636884572877130603590720540512671225333722187486332611608239541753336870899264294877651476682767683770717189997672875546661716043836922758232890876211407679886663615100276394299446873443422281425108065474914302077666373794682253817469597773411658910272167372591398232422817705969692222458581248222220943052178911244605195254162012769866198565013372528524973178867652517202077175986859802994463329076193727192380001026870750356053600991515656849137051435555878958428682964329552289831369957152583838605761683049418607574371570427940230555187531317549762453981127526560548674359968205715254792728674158847550045642981858475984427796714592083866322417623218262866813912630303273354036125292229083010552583286982967110647791825379629193515880568248524588960839921459221053120665606133138445067612598634491691062145167911387254334205904990943828094648367502831169119123813029141341228844411019380297983739691924317522403719615250760365173209602198505976012673493645803279834650871315764387367694818846805932351555263161489237842247235114133562772390942868329692323493030188359529373780108474715007282807496162005707389824391399173116267739619085081338803726210145258707160461711494867429405719638136825517252007136706616104202346268678548231827635694179870963046017435190052855683956842072185886670988446315249247798137406785027611933163382090697822548057155231436936640728171551472806897198589012065728826925858678540637048111937706027303971445790225120648649271954313049826772830606338467761337927434939884016593429259183806984387856909360960480290551445572317858623229337359856226661768858315018001119854139004621909789894533096873292396935969887112882190725295202980311424278061446017663166114161605866421482721235453489221625166314901895918088670340919050948018148880403681170008322336731680266833590964373648180388665015458673253629103686331866202299196683536372788652601121887682614471819126027185899032551477457949705377112837725470115729507475787621462027535528113955104659651023497583932279086786048551580231819116460317476861533058083825086929999282340427587787579334868788328136627856862428167192729271657405201956482602004999019025536187198179703965911660947395040028267679181707582240577537803884946790408431994657439607119015825248564777108903193209011823694591954836660736146662156246842748420930168247651773769976520614794390413479269624533791215543862955627368121999950697390011316370029668751192407209589616973853830888927892967444972188173576511517811013330133528351586168882988930282725716841523348762653461113753025087887553931402194334439433101017331668763763287361670971002848761661409298352396017678182615667811248542071246955622122223352005507844300890820926632689813587224664500282233948393829718150140130561015355878286736067286205417831756293191129160895856853092944919243662742985089766448332743739951533721386663746304859465120314860331127548214533546132878578410861481981694889853106255069183941700981234261676162253919938662746363279305980938385006331191549450441509996180715484471786804804691476884689957893995741232874262819829026981480062994049219707584716613052937870222521809478927177275668090213390548976436935033841915406363315500757526685288871320567364369259000914370235463405168266233206153832285480170432643094985342938110770993594452890031629502802953648516336118896600932498147134147502460653055838535240934454730967577264268487642580423279746558442004116906951100852036324357963845261780866112587448713685198164924000594201601595403910255213049001857861544063240618763466436965187659871145541164119077403777268326702718120420194106266755112649824264022194292881246852318402953932520965887179817995408528258202056221807692293334697535243618436980428834671721800957515095107999108596354259944412073862884647342377175233091965042095312428824234304529804293026464634416568468176772122051003058005708943945970117562322767190021883881645880078795858289537233465630975238088378960299273673619629338514395630251032158836617811640638419893685728045336203423104915776790162131867534444351914866689301826086801977245987355963250506252869951740878796146884453869239088058396520129930836133286370558698879660333927835399334826147480664048694630061022379886378698361086491422542722790265172681306154965121339397581384075445143032361344066673393766541043481974607441963968248184852801636177078213294601826259762599666103893412347643820108444401470941646487943438902409098102182044391355843286130654472012165632708767351046451453429649927619291712161138953838663910253519713734482316864977501143852934612451415188655058398558463701312418966344369853396271747508340654971748391354889600760100756633255856253169282864347983478640935235957827946126893751822630934882171248123273272800385203864425814324117180809278750700536888920968131808184457217791027200801606463739001196550838602921974080114387593749509315698717834883991901637426195441303019442568616507335107513890355301441615647097955506620165229761273998331515607467171999190510565677903682959976962427984680685369809498054542964881136346642158168603146194211529369946306129744051605840143630187355092914754141067002307748534778186431220038906047366006113227335764935665681853741901389375919300521989411855078562471340760804461041974190071942304779344247676630722519760583333416631185169310358398826324813309757144052062023361010520774941130709374323310966052916553335778875997837157686093414668021587742112944810540992942786678084327519921316321255848101998214683805682951460208335757797237520192389418026539700861470559140388545360380272110709220333553208699389276208079112209024213455367393608253725373061074951970004435251455227606910154602998624371506788670198920569050647156288534355740951428782990907712051240726677778982579298598183747764137722675608842813102231643645758296911601309486136103368725853655806063317811250343197542098678488477556993307791738513029434733743193306785509104862419505480897348426628605623193292102418097975806653357193479258739501635082408527370831270552827595627033343545844742015573066846892438664764817143879513428230099118249296097282418039571325369443610967995031241697841804583040403065364492635634009124995133238910818089664479817800381363685241306858930946959362552765478959116856039653739073066731068442735194860292520595684578613000211201289399111053575996585154865964809548095738307812717596342911843009307477535001483995546401468908653429678720669270569833171738293142427434781505520490158163049384206211496479668884724788740226215294771626563702003262411652001554188782375910096857514479338332529470532573644224879099305514361368494668660513720723736224054742627377631155124943396573694082264125396228782989383937891065577615977890337515530238413152315288510656172428382060955172918151599116682345155885088955160783594048178528295637554638477472184441484179624923995160934126653459612031280831466887189738868318939554332012797142695556997397997178884958170069479711240218063666253409203185751684559287553725399305995084825526501280792066786671530529326845562724066936169839499859516654161387967171462667074287789314746083330950649014635831670304999425499933807816614026498104629111839839854924863477122987111483559534243863985173080739007765009974323704821462582868696340408470406737710089615224752045508099980447270027863675206742637760675862848096817016636147256221315808099063502504053783925089407819705091173295352068605341785194950944193101917721115537241390235425785425426236262180364918457270299507662985114628444670870462563255134430838011510752556674535844505282454680170514900166832827981861197864365022712638126016609458652573275547728578317935988047633664321426493282179785837704972871179467599877310704576185218355182131202044924629982951812681698252894319956606926567537540189869448860085310055371976157894884040874603760102914156533775315914158103308480507107020384953416009777604955691360727885014101701827760294360102066322765989774847325388912937923585279231117439426348274856106534813624619195622285573393068201889330389945900678727886294963762144778558547821620493332798306292403858009424489268187605367387961574065841207039836440880405685145027385621530780281624098642145328098269159553889711920229026915502669753377012116700082177011426646003121964076049134739214641579710386324498355306944870873266159733616527305335100069552015052603287899118981671624564727283733712161549769640666758626072686291295183353617910091253495172160571164807722552345383756932570511996321638562242290017883308236323548606208449567442886238013715443082391869181582063963307666584984470432499883027725004455379504514766892012244034999815743196060829531975960605915549665515234804251974836415375867454669545703468533498941012805956250962376773758432349479701884630774475947092118645265457927863198959189828239568294085910343496092622434798650248407559810248356052716884209850884200721974457099203426729626209595035447082603150899640639056256582945550235456303203491137583345905162448114162309051472226021302100156521795609370514329870613671469700738042616613871870477271103147189098160139672143316049554395726126279727202002453971754693950578515312731199078860087635274624578140396908236190561441827783543705305164917197835542446367158580025380384974989948309701108634329055715025365680634568421500065476614566390332622683946677844920596728784807358177054322152343265824956277395392693772431772342104483345168720539390977561606836126499664790798668838064559690058611748336703574776796593630564837026117353112922628501549339244025089828525969254797314912437713272078882921389285199038271183192600133795169780780033531044825395065329747538711953265912410618290189137072748581242658150611377994137454365226334155284974829253817027301298250738782671305551554627162649998612678320594911076159351037352636359921564894661908679053718590537745881985059595165867515047002782258994751077866069057448325142304468315815629199547240907986323680056729284308287237716070851601520203606713605740213488866329794449772553105262189134129751087388062690562516732678476240687470230161747289471287100492113023375502000994155512531516324128838483785248587959854198503565016108603710423331575975634493750306920382343352556689804406147570952139626659262940683092457476523214869150399340395193106118293765229710632920589139056571228260607741637345132080257876115434657680241288786795940861730460139251411371151564922486359589702413968235491613297343283211187968158771219222966501032053979003680989385158064226877896587111499175124296205972450233146110929471300269300291776165982103355344964538728106941290582813049919158752267093203058087268010993361795969961428774223907006197804068589079421587844360465315204418892570391473050174453189315836415785502772203134510200856990846554394044597283140115228205337069646097454127077456276580722984920008717427695577272333524413521088878747083722645138017468367453678650264152266689669818235089300613666064830510384232313912438981171063767096632680226353497967213659750164080500283620419675172328721629881155125323405930284876068420030586601721244656565611304440660810711632905395245493509611789570434174774314128920577352977809996821418729800856350204486902157453132397599712061549241380142564590413712245181716909605757659173330721207862333259502306336219801113457064203788772842192035597330191254542754641175416718604694982093942152497733788686212244480955047694086046555859937340644470279132071115793063109051066240565032578725548301157097115789700702537433320754272422670254993879663311000477205828016230037272374213065723845417854085151119264821916133747754995779976004370543405600726676731383752924737387444776821110339787747806721669955804973745741129650300529877899683639072241599539099063409546799475991620114091976531286060715258637986081405285398910844276848279944934141295566987403084125829660625292915528640644798486726451731798280735887974992564813086635820067615009644626033379351112853187529819868122069802763705654528517174392959735831218743834730346765963573989228235809963344302614054477804748161425746449228349051658880113562032060475049017685757705913674121493888952764896852689343289608261940043479197943987131388059867008424025043486721643573155694472846514656791454188239484159364297737821187675339753955570217243104751867401273291346412994877907530177103028546875783856340681893583781035375911236192459346231564069756516484436459951619038685837857555067274444460303981196270858183441759573937962270926936589323111954871834331410615453939430022020886194916798861785615395086147994752283609974096206743799601419637931518111225665673177057620846148262105525295600800005919225888422541880418141456081221156353276035238166998961740828766810588656449449697846685342815571337799835086840990496201515814639580679585832575713221649859186336083201643696057615721339530730696531444359038659385279820691613317402926435702643767483762720512618772515051194037532085268487478680373162327971306090371679667385663446251394588123429391536360961269416970153910285364571333818224144117703590701643658167315979327330543592573713947420659442042077881781075137669463167460951902075783018000079603576439775826301155136825214885602173297807628245246260820339836751778086381961396289084065811660635900254371865019258443068901654278349928009662066342148704909382647246235429132479240590183314883285007241121916658330930493725620072388999955529632616827676456231750992928336038016479301427587218762489935036587019052417281278145300895490992981070536034371265986076051336320656788812150343880369388953639947544166419871823955937276192808890198215444146968486991012334128141643592674561215398324761296601305047031772073389167027755275140559120295227000874107207152651298658480510130185653502888304078975058050324911516151286348859571548786951991289855733339017537270722903881879398211475226216653327842776222987248185104139201481945559326524387310825966946658786692502687702907185020645540231545399672859219860755925139952497040715823744047695329684420877508641638779520791602892240179388767171940634751401751312529110670724436998878516209182336463815888349226369770476770805967197539586341510105390491454722545373794224934255737293687806551773781338916703209762398638292320333019732622195207820411400083684833913705202246278704148451189449207848192744809070870483335931986837902746499048890258492570126573447296834238511641020091401263903784485696191764259466659106942818760583280331445226891719862150154943559886131842944880957708803696868094715623047760938640693692416226331458147970439714048894804518800989284469005370754022676564335563187643575100650409894385659244010314863880007017171799357071465498919145771446529695314370065839263608990630465653895992482595269709702687439774352212239801535700077445879833416847799779470156402394197295148985818787807260922350551391178414171656764696810502094798307441914475748835832997507432159900044518896750701964191722423324248161180132011483092515274512960012051838625170494311288912747202826643504700308985451063121549565616491529952531214990006746801679495489299919431985113072452906330999518421421970850373472587876809326705306611733662645212594433084448020029822822471288367707131516517479962210357614173752381014519009462634084058285075605025269480477959384913090220667523927446274380855584463541828185454873096228091537556341224045273596814938937792474916667888822286735046059511177982186691903841167883047829787276840849252546878538733989216112650432019253023490691948403628332669860069964159139175725622570628624743116834718676764042325576538482918714994433391972036326382490267957772171012369586597174670746811050218983880746746033166285879458290124071804974930756331232314443455980075527171032014108758488294908160790251200239691557991260937364051069417591226658476806445006025532879197000571465683034576656567998972598958957194307281017351924543180239884805512438020219586577501022602302932346595701926777792043665884292399220148812272826819096839029313735865224312752457119704465875520886536835471439484340317579033947844569827625566120159537658937976069725771469500024454349802362465512399435960753968073461603392286899520876954679885145478894686528636477205952503918584535815167567243118973843095286545629825951465129528588949078123244903205011486235184276705849618947407188448567742359320864835209592491007494874552997848223816865007863320040907094725577616789205439732883005166229768824098895607325871287058663800465375650332683245411768967517146046798844546056145051551895742600386193302618934249492834957378415466750109314391818893352432436870917877592682269216618233781769990367047422598903790519352936395122976369456661882723453107156056462272623447045449363418654092931532963029895739537465200112528473912390041005495914606901253154014589534182740526536905505472265712611263292118109277186688472998061639190227834452275897243498708412634251303047905527424053525905638705687520004656796661716768443990580539975847126568236959285392005438814940108881801982818733200911010680670112178058948653627007361207347224809514021605484910994684867130107477014000521399328838807557822449170205988465310260305472064414239563057474204568931864692850839402543702652414250998340064054464188362014534432679756413169972616265046018878953582591864931091590390670666821926300544927520885574505977711710496935334970222331255640183261344700317981126355553923832399621673544301200560730913184672550981309925456510564026266765995166103340213367083812717348013153631414712940185148534189487454437081984354475690231170026918378776271949076371568303875275833127259522210473057337423172362631441910201245594339577304313317648027240595306969522502554468591199506571781258954826769126257838047481461300226940555782608309525842062475083168723540488493972199926520371272664675620564788573394955984048981919247578803324091355803071887656482577322607887220318179511215815640190395120885855542018217559073693439802962006190352432297848445453284080448623020042081246407720588518203392483023803362578014099346800597519017018771101992951017976045341023946060534354053628188369907996425180831850169621441243093315097054456901432299055751139890583671463015759153829932360498127259176482526715555096279726676323530136605097472167178832297236752154990777493623229722698076266690702520157701087464958072227817401452557167729998222031478594045472186590815444187049365822488540039371183063575426527790138980865909123849702727598931832933146594707292484426495850007934747362339117605429099971123364404473935505249570051291262768452664107277585259661566355506164239471163274125605633766866333513807525350683479438875474808061274060737713744667448469608890806163469632478682760747365109785931069792214148898338655777719132733198456786935019294749165613673936210768950303183066088504322136162743627544511960432684225368219132669504656339645191360073602608604827837856884432056789815781177700088162636548465690108586686625784092421712356401670526061010054749575019409946642915723878021430195511009971610447667326236718781465130960042256602388104702805288571304493336523105709401650843860306604094215061592839768096912536821644958692984483691795786172248308775691466967917876213231089256499708932584082830834992385304710821108655389373518754888455855580521567089951519745109526195480441657914421381202062482833540790299280159441517115857110482908856681035205746382430761215564320008191083163230791469778842484629903899835146985931270572152325151602678144186067415250514243740255956807369658294815827644730916552972958451677201457615882806911424878406620061906238327978110172568044507765961550837444752640670377702193188515263156238552619370846342674154328080028104116930174257029348654097517912115266242057097171341371572216862621575516506653164214223284992231557994236185329001835519732671143970437765384239912720449397185958946610670023787927839669723515129672673211368069133394411884896567950677845043763001811005936371746435923896971371668051767661662387075452086107261998494413932999138199719426029229562559113849735048023330689793240415976775034503566703075981324718202420201629052266685486173734860360194575197904722066554286347322417561789297665496734404400140834762871038726764178719312207978090301999263900376763923461069438107807389696587133752387395487146441407054870599916039235528498487731056342492983625120450107560568970764098991895402602551182689915767932971276421514918989520613782491206048887376411687798250677216766982328166954138755010921269241219679933282794123171901261943497160727801215962511994107599977299622041954429776311928881752364017347130889183644208833553186984548226317736351586928758421432951914005095594047507451567439136371023268336460070398780828696050557573815369665718074483196818520065350668365205476740806989773910713533679635433833390498656699733615084271396732223065085692867227306216236033937532210823975424257250052532604628332898066121896390764198455016790920840862051305184289591362733587702378971776347129302247899154422883781624126780612050368178886837134860753276549343098943322531688636562450464085474204060259179688299696372788251419602492116826148172306087241596483300730064633640823173427223969536764811456288235943124821879950148308027877241456015040044271815844132327940448666074904798281926043805474664322061368137680463765838016454919831148008408978538555838777986671329619011297698719255673489222047883940523251788337206076894591374229529012038848167647027236202060827955441806314647870895069421600094139097833674929218436067023887538385179985843022745313449005722472359877323869641201905480289777370471787330822240883900271641477111580115114765760517032891738364960590205759635025806368879227668046012985989236472663138281034338806046274484832298271966229508128560223531754562713886942252993251712732910095313115007371881821473061911035402383631258598736768396910656271682934495179722809687524464406107626037768978184667539995186996482825834037717750845366789401985996442692642013848657443571379592768791664951215572184460692498146011280333226555355616358254703087244464556415067858212490413042772118600539320822750095904622409483412590834952914079520405567775921112694377873833007563483731241422530916964349435167604168358531248196748152434220781854348832810180929415421387597489139965684105734739979727804280869096605722743688588334764117062751744125603276945753249455990937698152709402683324384053701023168361287079623414206222953575351406817519558169891885206186566547588654820144946615022444174835155315116122311595305967476221901388981950030261808186033084513425643289802866666992230407514414570710360299868016710854622624577401039282294019679433454400059390933403270094781181631512985402604408594060426645240256531505195509253999339145327170753759943413108872613313905129903851813902628536570372094590586450998826519629591832491236000887593238446278143034391690822034537034937291505886644656964252170928232262833109380374597593397543430543024885760300378991364416777430040425030473158387216320122054029467669537852925685944300152816532478901065469976019993160148948758533153809082325245874179597189673297238273451814929811133806412451389977079781053806942820084807633756251586493344306729251214663623017297061797003116806268436651814285017256576119222961512264974042625620982818516117924693389023328315440240509894766712475007287258578675292704638978665081004810288904515423587306223409175767187371850600781658348733420647366673080215090334650458645823638287500466563161942594578403345209463261970139916525600251452009141027311976177461391795558335415884313396978093645192919145194412836577086934236239002979939791003176996573006674723197973516112209733462771516266478449918549851649154226466407454177628629104594705326860388588966771155780522324198849288561132158375581294938091066522962911661746009692756889967097774574502630891610606200254217644738289754371998015429403382980869143170598882835862317254599170892995430024374603035430838605797255798680205665268643506537918050772541458407683480935296692591346708971956678336134707015992528200372656262108819362574755055179864849090197126983877740459220565987474236185974150320759931380001832725839815886059098298495198029389497256834826317674313323870780462427773164437394689494641727889234906130089669065433955259705428292609944124229973595674728727386257970397494619546900650272285815626122387275398887675529936538975650889693791299179735790198429935215067980653419249849329107416306101116878960433525325611587098969681805176075731241507242110351690686684113969722521536576820338413547060753352983486154515765075767170442510465756328303972226947304327000748592875960115967657769000398427739382648688821264978823899592084788258119141523396792518321565452358786798400799626580892658830288517956718479236852933084117076098904415982219650585606659698054940429131183256791517622650754258400394641904579739873491473546286241953893166748199464146917624829038162697837638844776130364239713451913376672875658178875260885121526116547359924818433161500071386098272422305671144421392436658527283814105168902501775297512033722257916357954165237279265794406093322188781423999255218671076887252587377244102360252690215160850903808445539176854053584835119252205094514738179440500137674859744598501807796924134484873388074024452077624181730977025968823076553870992348981441017353630852391151911220908847694739825427755296003902554632220604330295611855218661324204058032229428830873426847546318206747546686265316467526734447814631192190230211132141407409384796538778083584129234757591282601377506048268871833531568190903624340209127834080879772797993837834822215886355370684110003730600841018947415795488706445700318077005194036080419227583482044426564599666127752728046524737690155493110356051083555565393971106917944247401592242821583005271429987823038540683401399584447656948720776282853294507134852844270659032611240729040251829689390503191486825037140337696415941949987966559269447367603414781805509963456516420557813931746450512966061421069618607343724688637922180972989497469649947228763791434103663600280334706519274484863788576882463494793451482868313666871967427420862393589737201582814228955987436046695094268301674603330222801847921394975893120554185891996586517734705841684823040918342923817152688636106564173908547128754936381511474547139127782284704183564959196639274649612378266733483520861276100850634487139690984107802613590645687834103927780834816484068871766160066762004824804734665431971964039645335234702406588986940797207922735021250415012193748549065273137085283814520465009541235983919180030041211864484667530978088980701513661971799599110731336097631797361473484082999292987345227090601510132907680021969295669891892596846091525046183534415026410336554486656078734999779531180098683320821386690375362428432121517199626439878435058783771476553046867175725459775806990434335396311280315329522271730543335399237094436365047545488710504333009430666176736123479589955330537233925527719718048664276683861353730418172137795140310897466034416693179472665433018036752344349675483284633259498627537928338462178580580759277479951962783798071163776732036822309176777535410342552750454464622081457572438273720773001288930244898808719068988797865644461496707610977771904700025509949441141732574100849494930450396448671319695612705926097591739011239870345772229633030195918500653817144602320848281078000191578874082181174531687760189978368582296025538892301202759332048405934403984798424325738943914420940809067934442572518043341348183640656717182452625668031362506065109427649090952221583195382452882359747374235172572078728164481950130707078510191799715038023506284868665500574998657136489661965270722473313800231226371397894606937021209519631628326778899158657962662654102199303490575240212653571635473692485976784377757138989861454976039773503916225527119265271510623588031876412215155363092495873225777862676771970755212476075972229829410228055818668394349002434202720630179898125376786303925469891550235600473643816915876702396440483916589736616859337167319434688320613743355919563590772749711651378623206409052827231641391435608397048164906843673286545479398879814305535344686334240753604135960963898084009750096524695823776738646792378294703988035215785839833727477160656543639426302373093880037778277918973531248571347156469637203349727042691181534938623201067139631777374064601076354721007850389756519711432854516037323173556301176399911731013096713268875039198074790664799414913559945534398266463337422466144978386188382001822387069105361725168189518629679323414549643195695804772229596680417018879127497351277760135322918652938621212510120506887884919741324023958900386709658458604191960495176003375830048238171016958760519265486292517488164806214426013459926846829686459522124495289559230095929227529168393926679750821604733928069861265492233600242106321382388660547485236976100637279335788706532665747048002365836358019330786294240032556839226418226894471868945602619536147947184269032008980834543149962809314084452576513001286189945227678865098855484271552761345805625533137142604257280690363159328561366926357558853687890320972753124771293579665261867365762314844124205613872213043771411581264197275739272748560323373543041943908596945903152589004620583826884215492023031519169097703975108986259696976386534059097272372880252805930045304956080020300127116303985683865098309392896706198691466999335760613467558904283469824909393702161668116800390672547305778530343452376413029178092942343049172267524073417996524878564151236595406431025825026910909464621865274110493952933901489225867044290531654265195059918562741439905650300268490780621272367116107945216488169422874505001561998120840062420698579058900948314349245321114378912314769415216703981216851501490273390409879893916256108393729388251117235695831625999966324755171155258188862878245274608719700669897920449539553986745514189851448208636936619555178778733864967712476279177510903924769212557121816901435507984359173264128813112017969604309979964562854589457314627903489650153856491639099427990139726627266399745501906380642671012405979497863291158823609559996323258629534109544807666943831055737736625614212519116916307948028908769128614372156557857324708060791528530899434249665674956924173144926147185535909865750123719441170758748208208860830001020551060883716364167391940727640814398312197720032181532483396953061899404185958290746254360541255230181058878555980352364265202032313346434894091359071480445261210369570537068660496778558085400301549798596798818068866133069110361464493174191064135035690003806864072674358406598959856743184243653683642995278357453859078977090445081520477311870709488467423996698303801791511246541986434169591889410471301625206045136537669321595171186666541310977421495402859400388336934528675101172676969553251559169619027782947295466492964231895159321413727720833634169299478457002952063688632308249479084183830661759227293481061435632579720566200001426681393249382632968636066167745776917641693583039420222000622501375707422839032233178025457327850549853248703943949820065834884645447373492564301126428170251652720767937172853050332457397965127719555350062583796091379239856007540952040257054043173724027064231475051514651923251503486921445891253158426145179259740736029453419239026495897308552817252888393638116857659441290933745658744072780675496782263491133815519948775712225963790091844578648696479035626359956407574053672095892305679571153952098638313473301249389965490915216754483746408988510622686578540061742162493433269880071509966578963105444270952527465187044804346452797078691137249254939363748720913738394465453808704095231121935844745660945698398092936404362441298347024018671426700312738648275215271831753002256946394472990426749659437183047065013276014508247583713131715367984659718167955451442102453589104523346948070761897599751263372436292361925914860302073398852570312014610960727174624305599088719996725622856022424375163419225561548318449546419078478795084581715133832660925088554552887856531695530241060148322665416057844223958138585141322687993653888812625789525279502051957578304640454480082347174505244515860631289092275861967119854398840277752319501354601897976055407289304762630994621434912359323152074577078591462335223597913069015212556077868044251738839633339377173197509404916527150707248610431324119814338948901120371136182514321865073299792744440159267987180233363237134002138927874462767724991926380186481142276510453698593240804104276823426094085632470580553713413653473800245445269404066701165451216622692021722754785008703336492175991968923763448146683099196713504742191917715060045426425751637278951666065940948598053679913531768438223602482699942506753719263602528921142522564377212457568109001948826057177030660374733395461280760118691708497735829115411916941102070674587870657136494220482529757928672521298268546920208111099843504334974398018223872310188922142026837485922018605282744947045408963569426372646554718112281229365560546964074371696514625990393792930576784254937817935073184556002243993952663340387395748622166741555514304500424366416431267552332104718659481543882648624544437460353107356036314537224308157588073471245231106540254265347669459420427457517602426221023148039953571977896843761882335929483243192367498997815309279792619900338915844197309840210553477065968269057330798268719583931377849945964495030303086574849893826953289408362060417353050348817391215802891217148228181716876934314473225259049772898586686645655215398516051493704193020044349230928742515479930011281810898459923135044400909687112893236341362835547010879821157707803092531273286596422426686556738261582397356392405759977443310628329806994813101225155499788026494574558587684291728471002680417812753205588586102331771399624250890771671376790352241314975385998199090287293387025522821853311499964634297668546896075741500054146722329215562750497307118995019408600497974184005164732465680082579329112127008112108807927482210424102263738539492488518212906934811100514250991390658651023871407711418147723167095288676429576689047306496523990799707358217442247969341896545960912542592837264111152207565101615525880998641552743049734628795875248505401115453259024611455420191477178514328844555288374730139321843926849578960782791259822874803755710474457531518582886338748941647441991685978089433207949270937946324147479183412835227498091634644134366160890551458684525471744298162660584123094683061070784334669865739142305710534387964142346289400498130597607448989549269043917317677833097615344521495056508644027774851790867537998608526258501166970994231901952535472544333354864499358173146958155764398691110948842987895938733533582077453838416426518483089206558924339501434714296622713912936540751267610337287021505757895658334488309130909670187362612405185150689309719920170646942106872082068366020249974414234282556751317655568135380042372034809669449466571114001022899683120494761447234896310710151979464232375943028766756673181898400995242793537962885468947970461593072806157152011842368444196937928754667477239227038117238859719470943550441485744751074783306756063673190778429726649563281698900496274182346022908364909929435847193081539260921869378597657349920715398189757944236973868085349526669544275194941942685377852062017271240024409108830797104336524008359441767626399066682075768813560755143372292574417085854496047891483232830903174167572090223021232555652104917751341511444152925132449700183675902106399352146020995633110116788408503356989342048663677863130414245797174455520965412423458505925236151685494653578127258031655835767357429825294456270293958974110085957209713363406877934817639325945083219556468578320356139437384419741441785322660266286863769955281830762559550620192192975190823725379714131879558564441159880274343163519409989754500574070816687761834519794507311420823761179078969305604324252132093954686721498059438302598708262329015103028056621841775633619360428960722646354726565364700981309228234848716441520590986825600792945649851785107174903261460773020542300052594526501979926604829898827260903909749718186832590553450449350183915619153355414786707638461625525620363874019258425923256935007284358420510872347198422612561968029948610262696175427908930163267437677785445578075225220002154376791716887381929096399560346360026130072718534418363104707787489836649407174935029683965481172540279032700270712559112263888958246749462826053745843048061620344221833152124666755834614336978329316440600341269846760845185212186425337019267887940939978236048266545295807978236366129750695720956033786427201477433668146391108227200637225922649485557314434911667664650115062105066170897439792532693122315174425508039422811613385123269628951060544634507224041568115450299719030366451817893977177278900588700863572476734445466319966306429102166586699295713987755346114652940585238427277949607455732690228247600661646213545238529060930942026980168422499720955042174082505350506229076955842360353682835587189508746229620002100558863513259273856573476160787338093062377021546079583721224415909570904637481260622684483023934211535874909369098540391437465556083010149730397525915461248393568720791898935064383810985144603502661656920055469098966018761191850736863967877727158794970699446300125475020212175563355433690412183202719831691685665281554387083029850350249467943573789873951568785299223728644153045421517883632550747911476478955807936219853025035051286751545674929658078787061454833928558723414791745271629890658292322245702230603544920913093436535435503605049029541640478462528495261083357260200339613959715441529748008683675834889805164230034330376621796766208943802513617237568020099861410759447783215824997346492179229075397523738543185790642508180778374476751790976007856244361100723790717311080642027525172190414404282838510813270590487447003192496310837110597606730638352029466597795809297035978843325389293652275681349813705601248518515435446693184132449583431650781943132525392730832269665445262767009669705702258390945898665379758924653671754048559954313894877051069559766320315253480277696309674544947854288421523019330235826973927780933968621575959164992868326314950177732190185365525954047234021776164323010816175066970912847421519828015705719261817352395290044228297792487740953778241156228933225713817003178763270387095483760691703728118027592970282028622698208830655711013913599448263868971823382525774379749506328968724040295758952933917272357880087531626821532685045663547434264033123175296990569428729368449526173231232221027966946998433279932330111098478228258488663660177454063377251657641332621936237137415569035850944758165705346691175691303859689168716738505066034706226914159892170187477458021863903869677864956653555925597145978181007014551534671183426352938075071782977748684210693733357451705994270072697841277993049840088617235822279416323694801591921544977253603938469108446809124832099991841002124536042192434189827982773780732386604301158456005244320818367606829776073612060090560726575165245720010215845260926691928720350245372460193606279201736584044124347739554222326330033627056240584706974624190990935495619810118696027836090444082354933313270604223803569499152919796837398429617773688313337982267444488635829214284110087842728914114369532662579656753790084392828549965467221131636729374402717871969113636675390371853962742142033331897433699630417046468861826742302388995713857714990578048398317718623767532861123066817347864913963000525842919955650190831616166820945664963574517262070519485462744797479657623138088764691364418095408901806910029014095290961305641740006118260964273168407202992153213332918793501430350781750297977150993341722328142861427801660253041017965673694468238402395219273086918906060953520902987550516638913784591203368632762757161243601449130948390763791965169740718894907693757160882880242737662259546379208260927221231615611237630489111246921574617107065100663050674800888133585179354711989210048921391689265864009310582939834043498464789438949808939306339654085945366895636589377884928030284588240064695174666563841170100214985240491453633822892433966297765934987864781167988414987444744141431577522991894439570670915065995292201371912763313882583290620355442308497379753662580079170727738805838335941019326390997294660291968945160527904182119344693759282863751298852948526872740133556134662956149829083744918401512929851481804156181166334724589271714521542580153306709801227464804776607661307954879929590512421433172551923974849166305070863972388033060939176290627548500998261583600374741723686480602563766292939423356931022654274564381067550890910102416806337045055160418317551066511313732084073837937661275018078343060641597696361133085648024406222166705906168324566838777622599356149454709407053040776211311264975173661570758881365916889110175740622626933878106988473914342949199762529902104088218931853015269586154252380394888302961347231932561040922148678436882373255918792486606580725087141401033341607063926713050452095598438025524898586372034589401870534127408085417414224636824038719087415503614708474131273605744136745667206985849177197216418275295245355771895639096897214044157891591907973494762475446778876989700020775257203464109459455237368840666599418897418826566040054716748995395197158054924278320783568766784946477776763477065469825722565170055008860106544845728157291488540594076026886750416639030093654938729119249701612796524340686441502982357547004846723670757156054387752518018535925516331303856557723593402044277687780242167129154440213993977511348554924744990509286737234075436113309647399876992694000575045563515798042694171837925034116334885849619387772373330005613360601167195697349505502049276530752555577911676647085422749762863889087333255106344195833512107375812798865276455607178359373986622406955030617467846195794110097428165311168206905203838160241165739759380681889461032668235522832459003050226900198889526803648970210441868122364708911217602863568009811973190613166417724348876384749807961839677285789320409741841156348194418012813205903818158586860953020232919095286948440457413172021789258560331431588199453131327011747071767033434894493590211338833705165983708628688601562439865599416459825715125010989054536180409643733510447339252142397190516205387274950309282953304880766146258682298813637155867696497886073389067337129933902762757700739669355766505045938929382253681487283651043280960147930431195569866622664129398858497907944091954088185193481745425263766745418223596400268326114338389713759809560147667881354060452160742434388438957661212798256858027042954011551951204385358602500316875082445615569237191664355402576670327852444448068516307568986414287545976893237680685115129560315778539866509852369234922663250134140736398683583368372030273882294430778383640527499090632986576235127196968996135454384561377098765749978473283850538272335332041105405970806354570443918375974265225073084721131482432891246406009404656612662349525630977488886205111461595993613807644539539146471745764632330682799323773881338910270323005260860729317180009444799486747172690313408465815294410396653066212851140947350470460755242393304284711950889066782205298617699607448995288088372971268164094111048142161312722714312937057782205738677865786378064170422006885526702650346237865251192411814818019010599749473332428637060998007879950388678164450440932803970815842687256555026549193328639482198395345007739604839926176067798258469411400668564737096951669343564882248142144368748022206474779654643712824486165496381628097439629663090518987999472387294512176792875103173991997591963499278300417010533835759011143026922599946045086258691911652477688776568130298168451701973465232077504933442468912131972527817184082021698116709282246721160331932628988052631283527389042661626015922222342173498952214778879033119961140708935761556757854758859070122058435211978144917606215680748394659628670337916402690567146303044906546974114519109958813362909830249989318221279746017042956001020187880373128183696330825722936115174778859495428224699578640695014005995567457866919247176687979495673161105291209375254313779708435922635684982286421946200090944207512351154251333731056680662021440189314695044077930845572294868548153709859951487214282300807977883892944310840508479016381060589180127495426817545944549739550227649092579666730797544581322393688594847009320654230945092466858799739361907773682753741872521141166655220172313743045878243564720795969625424461580858572159411140198061035534649677687441781321805944484817032997807660099306024619695159464217698997503995358525208286043583275278533736217246711179488019934427596342139687360514922104137531646292367443276928618216379106631469714569945054493676733025713490538587584084515099638487260238250314481964428528077131887799276229321354736998490828545179686729059879144802678251107492291945528540625295142019414438611301177953498317483024955583133342735338050019665575648277997131207997491098315780209052069552839370372804568995958953134728498911163323553089767020085430488632523798754934313558944713460529154474917557195480689334916419271991432531657545836399257580163792181469503802229211734304555386591545765062727068735207950633482016925301895973992308406275200202978138504519827304040610344810820104346785418557629102143831695693890619570012192229120314043058766770126761434766416308197227712264077445083663488057980293944122922684152945045632880230669868489738467275931380599218814459016891079234751895596979134277014774520976391812442726516818260746391289696720408592018190105799593820995754229730903689380636388948605579873681145560962211628602912745291523626628932224826030564316647523233043826100676882277592951402764800849051122010686902035768080866345814096931850825419001170134700135903106192302827571228332605018353943884547496312289618424166994046083698460838244431970163832797464199948934684438109544349353273382374269398760484807138931816874617403655535177286577884250161685124685672103353553171819098277049819490167100581794773141529259704757104609235813853218090572091274591773734440368307539157251656644685966649472409854144656553374137191423804401491916294753272977889662173808183659984377135408756390534945626317884092468260143970512400012594324503083995187342141935149512785641821057561157959861592560090167218904556491558933935447239933868860848722381320722451106918851334949971700090895588587902139825133283795299289879111887960360430872997055098026579617120548049767011090687049637867883636809231670080958354617326476467368998823699979424642241255152291272618564273224412835108505841781102092669239692314205117752594132094760413147021112727869736207554627627921011583039461233872174593503047241254440397110041125921235075128219696452838204848339399195158144950862286444786323885127135397014646547599383713904251357754116803877814560812159714868341824542438436311868653381061914569040237716071174926625828173115072125627268155647049161005739696795010829248116023815762783183501070079806195911700011808333348043443780434561564393524287053520011280333313874932142985482873062885617697434386287238129344343236500065963838190258128931122160043221285537516329744420693748139806662478888397947796503321996727536035803465696024786448447717482697511125943627333551530256479021732282465034479838188488321406523403049084223718692095062071231145097560110622768554737799981755016218109173083789296549458389410518689442578153220939377248227360484785897037180817081469307493447007095897896301596539674761055483258009812436751860161068699058882874657855475321780566063620342582732585783073417990396223402061939515245517195584218803317878200565847208682156365958507267898897887954252761884177668222847441420441925498361190471782484273003023462472203665787153793596005199079763622552332566088741579526194879562682866186905870696716726104331926194104693019977280437038034151689624126373525607586455529353930230901004754474117321093921871096148045233809888109874566512299282392964892024594398660524325233467765618977925000797911778134674899324353552445768460167331441414371733740123801464011725943983376374465284132959012690536022295267019654672773708083656339934790082895869780112341992939591265431456545833317130190543983089117437101375970499670470370226334958378465449324457808411458114921603067517620608550720542733581757843158743111178031050597683198995207590463793856893239117449556449945277205231831075884264332983546515270923100390875680563800611571306015286497952261708692690500057148556846282725677174430780045155847572960734638618532842303104615886436356134289489759425693803289758356692186748521999001801656119999504207084244753542621696997160150487820831678666570636480898149455745361023838178305827014787331396999713885722125967693304493761481232579126961724970331381161347974997065289882736277167777849536972427188925804514645054431701776272059870110635279789478476385911797703523522477234301983608696792301826902759849085824309235194426311465280561514980086901731249288244620405885020014203712636208128160416053588470762635366928994955155510526776775724308207441298519799821780154520801784902974885292240694594196045641004004896115112779192188567357917735579325427693258571135630006375517894049762293335572785678860814001345133280908247882056688025242810801121402213088831257647795967129685791469016288804009117327638625800820108442308183708855167282825161305978367425593584618560727853516317546174981852825400844853987145158059963532709492788461773727663335641704630202322154649810212612441515233129629704628403352542290077638474086731758455853672638058454882696001890883054475225642973415205215123286833016774385729252378512805532298793983991841845348789069637805737567920929243128131017727918175704343997995441864025378034265790370499379487130850994369076355739037890469981994214229106409104327166913282493309171585010984501750954600036611877025858850028213816412657656170342124296764693223233774811575170423306337022421682764697633896448559139753155067719234691642028641623367641114472711850932315026021070741921357681587497878341967097060935567829895342908077807986772124604625823990945715493480575246591557110631517805414360542478495888524760100114065512976830492348266041550655437762818526691875947404965925172443532818614869170854606533537986280469794201309879694211167311654056611385771333651139140535576159847873958875948042052324173691417306584445661700866546836263867153343375263778192861884498639500955914437383808237530112326829488872733589225786880539240361794916344022967569419241585491017053272420715192696407745577591372589439696293255195280031986487083240215148087354537393523635632912806543209169780829925493576946039327067436771968022507364845331982551692611484177352953027876844958635112266536938752995970047857054479492644415489211826075900627066063034115189374925429953085758962449205727180285336428345715482644561301509614912631314972275502055648327596172421055854746092689918914251137746857987118403353636444083867161470701413443335374917548620175805603885816530552813523146532736944332582903806070204200942791032470344615634633855124932706779366903401105585044059646429416098539685951389973903552530155409866134916163383325310068462500122902495136758736125585972765249449674426050237313660319433474389402722875223796767754218692892520630161081938249343405420175272308021205687536012780033750197242986051923584171009688576614850416842779614443545004916942270816966163239747501167399766244140998809499333914341077752786501991589529845682534857681869198750641555854814004340539459380402681081498496304783544722710351171568395644488646660159944755783878490200566555903127444493010999266997016172531001896400469894010256336372305113199458156557661890994553175702123660646383415484656497643221125535447414699989664658086469409429642080519302572663650563474256217697906441346845419810006916816729425352378790381776564681382325092504819989169897613616643774950684580469533387151230834266004484852391687121473172785780156471105963023663633892228020373175656904148768336539907266613011975963633021597651927601372188816467797637805340950255788575628236846278862584751047689737992413295771883103389384419518328620516994998270215159185558102484271413088727425640524527734467454726273474909484617165793085983575568771778607487067564250619248857817112351343250702610782352939684726761712065022738683954467011258410797673899393940281425361624590926251663230734502535605942018996720399631859264517675837509038779610843630339755562900924219529008285935378313750436378594504820049254175463005034746809072566976687246178325588886853906978155427720214299692189927896037103188242087132841133249266981199058862663758196754410493009177949512340340028856868410512435022171740564386471676967789393427707866764978083216785451507438787350884684757683207322987876613097244291563545451580527253205007241701608520745302620834348714728737931880681625217461564860259812062464791933773470246843721714301405032442789175159411988037212495368915097546006373669274639304747388382073817456231896314862382506398232326794156552922024435067270219445869512654508939768494290563696317394966909253587940171851862733750616799425683601797228188923318021669196832873967204663986555341647661555330100621884488267750140960224688601294860118015360026442257479571746713644724299918732573095686004214588024498031415522785936830343364777045211008038432279837667515927402733181401005260130472879560057707240219144475062409280364865844153350720661184723091024068930696815617258035741447169732767580090929229381920489148842732337456922704956688721480688586424171414526915708110224096461857511377594392871140222388101649519414513024418651677120519642627452745979550800841729712845356440730514617117244325560692622090580420522414106595751022557854576502423696713664647011107529229478063013126089584024134368631154979687298662862519279464536893077891973036845765290589120402860417350087171790333998203135421294588193523008173206336066027607882845353343194102615697754042250108728148357591846091992724661245803458594654090336380880582086931659635640579415193628975904648499179744107009942067371694171576041750965287924401869631300647089599807929296637816102134312987426103641461027330678292994762959237780068623680302783205236579553903434437642283347057395238012568500368797671159730129429568272198497195554583970089512620672955007681957840902520306410652227785254863846713619493621137925756153335160288799581251362018259102401105236790955054698155147470777495522248833472356276148039220410691223294022119850417910830331180703888896264929977960005867681802565381820295318553248188996023874421086191520277606021695797202463423191221372957897288934487964253052393412224894912804333098246334378570254327686776835586291134132657832774455534853089988399224411357785867619912149163497034111336160624860655014956199816013800312622040448003154843229581751615325335166215108992148471801029527890239756198102396346696354564847521689816680041457624103611447604056348411652492134932226948956001309661134857550122649010080471602543904986410296984042158708977672322319804749873304214200167464568939170706708610155400488245172062262223807402145794601388917140883126393137891840023271100177153403811644495630318328028034240404089046780685957231580774669191661514190396361444114564984880930791914572283397427547049191372309706249485113601839114924184869171219450896325381408487746476114717147933107294403548138610165300574003311534328150184565673333701227547074913162645641419170016928436017829004740600109587100749655992005190651845001675416224912804968148489186804437859399703974473637385128226259596534836742793607968183613587211965350281975830514027840347609028867974602771978803289684527879992357244874213719707540806421390218675821445266729110031770049028518118667385973987694765638747138267277278262776853318574564905547869303291136159800696409398640339068003414689540308623476370843979840072966836569405945532360308419016266088689751496673692172834591836756289324774446181232038790492838660397393866972609548900560800670601162179441448395358092002248693832189398821472009949173797263912173732329477664380819667828381124479653414120751481934813782757523398804800730856690781439071631737147037950960740482074110644444323101524983503439946386300969061618188652630681204699720689617038646803107089117308657162138839590629027976032544493189820394653985615878771065339829640378989130950722649642149434589619592796833689137761570951976686390822004536036748087760195519500362322498169306594409151544351915972534200342937026254791611666117035931189631076313821103212374126067081457222479703853335520876985808797171428838341541081676835084274461047782543827135101396332896145791917836967320250063003920503710520044162561754818084371366100536933096175395951343777541548769762575482989136441278728691964276334975679723120576785780348749711083575758410358045897014040622885568339185994813913542196076753765794767650993403085958981431989817900215335671575909496238735090002229877045247089027908720788710373382169205786407216807700454154554187202390203163622887700808392632917482646018185861610149199193515421661815481896932916770226285241392142402185211280616051309940387494586500407417118327236509787947619382016557376979604611127326487804022107129960267467171766551919478779852557948566413491312932124682128546582399348554310490883908708282170687349544349914449866769647327421776487442548062620455828334746101162642632378013442247861661086482754180346927508631249371677238894431757317908192591254668216152969321448149086516175680897702081130259446404736287519544901756786318416084065201319998436876075590758314506167939605859085926018882293644039439485350698406748241094596879751996885863403864673542175742128874150697570963689588278687618404172374730382027099165882275158515052841308394458475068466405308897466243227735873012749995432481006062199994676270863914242591321976065484430029914751811903921512662269316144005080270954869033420759023144177784566395550868601071636082218462672544438355166283768264872866220497159137162950838037153613693198323428956266849061723041557068837949855390010672330132700298755529874190755390961425210958115550313220641225773338384582290393539456935349254487610324844038814701124688141095612911736692546342947796157142278707240108626308672157917488578582873117964948489915536810451896674650527075984721224575480177882429587522415617901692956953395785246134398759624717255453998427635597553164338879830123995210381886103434971495989217434076306767378586560516075412147811152161475136150551864905887807537074354520118701416376994803686081210925308699277594850445602230152760570909934101017271805925273382438444532745091063232881886295591876156174035105309213652138807425298893854037801484682985490568456374466608536639853946608032906073400282852228527977714176246953293539347697246000280904476014319271900795406808881987971364092515429802721934514481837542596885261413925395649481702409934545050516043963753651822903666223682274440104733566718295142612422641163395459155901106945724462443795591720122329678718196597482810244206979889786781732781593337723430071312365119586035713731274139717718723343934400916191475841277350611461158011327535704227072217913600814959822765955130049896585782883964501571256768422685692530265233220854013700796824093989287808910100311903258185806656791562034713352628227153915074831429030982789017522381238273808664885277262060686685330120576354014896982895637301463429995159501041948664549467012086638363590947317773949293106695532217314918381844485532318609390833498030924275863358915457269010187320166589057217238094281012905398821410351479201484428348972610434172288012402802492719180499737833618998904107150358542885833574041857626201471340554246975027762009711739135861952492617254568667346768995099898240614223568652290055007688941945084095789846831795050573710224714369421406076375515582547607931755554636528167111866907024237680957953774769715369009530111956026528449534221741637750750471465396385252058317605986644884083229755242100264235720226062833717038227632454744364665892805291814525604967198023406535518624417985287854488159525331383733791813625637505938957036838926643310342625114106484009440823971143199884712893725550144919033150544244392163945503723201856852441656602503502264733056398041476682743847090913577889143622356615229522237801731156041274353206747456780719777760091542048649574870415877145036936899728128578671816493337493176179120009620370238942584796950253093882744782870033851449920142050250798064677335336516716673703788358255851936851177731130310191311502891959905706479550229828514518314437567906473087537740615751514311093179850614859677576142521341712842232278973731369237120517386943289624152917613432193633793214449641546771112918113707018280655459671303730537962774421731712503670939003932897296534676419266695708915457077535510536881683746938448753202634508396347893306622135963927753565664120960594576576369996069517509685305233572293172731768804847352346349026558308015415869761168683656097773410172912208240312405380077475844746563149344242463738297028448675076241019852217511655055075191691472054606917270770588521678490734028493747909765250714496478854745733051743723663599659841129644091321565716135575911381491826850452655390825384649403833131769569618540971197874575997868640154188465319405850135214310466962630810404818142103172989494931183449097619566153312159482253020478376382381597793700160199456436243208755598248348766946281817894823497059150026920270358375588078576909685400874106144395450901460428368323533331633264042486595630211231241575134877570851027100163951506335979799829736846946016020762605578529649750061680638924779520220072596383308369135401525344737274852564838130949585358956575381574390619464252816269076938915043203230386886738287797335100022928988231353008468995651918840050670630242410913858222011118014663399365263549693121866285222639743389186650706338919156242635411077317790513925529923764064975456760359858802172734605335969926861063240868105819443368088773790484775153959264285657343043578290462136394798500156734772590589550073143274969467557603462072130059055242333780053056716621893604360370714957811893076051264908051457409666361288247300215363373964533907561843829422955701292864267142002419635564368233118337876836214468312660641481513006084828524138275669794563458620263983882572714458395284350716922778328947265392093894342150833567170924740249651304938810858514602165231859841283940145567318678704273977798294033853821456610500461004992056077522805119418063905842154106880921203117318065365817097672557454785421756338905243254045538408022179704597300543340855264806715814270957553038649636885807458947454429854776993301417149613484528112558200687020421909529655428768749758215281263382117293864373456079489521351818630974216445466863672162820480436714137459877528294666253736643494743534572450061191780682058320598877850410761341939981661739241368669748622929234775967611360884592798083146873854196458314022469947126090070929627507402955128688804271606417117688517235403230221983432395982813951101852714183933646493161561467925798693840064323906003108390354055296483960396642770925080600003366587849450288378963646369154127894549439370256661552462369218012429631046547799390458277786736922767865301226742434567368210121910227404531329983188477095552879949953946825195444424148161398135170516387056070507367891345817627846897184818646524738195501457712174891502078293234199302617518859268930844123845256725270436051862193557752328088954250583876467995373606975654117836014047139998172113367396107881859975607709826277695187670722737778927967560042208896223550837074581271791725564872870817465905414790129865275740362976680451302372614844048680127918487300612353917535482590718288501359575718830082227664282468235637075413437359649043549213850132739429467355551091634340551898769456768399395649713578891063624206774519502650383649295398481036951135693575642944744555738415765291628171156262799039178789114147008606112150020674527684435711553377052486011455652579566786802231524013771396081567976124275075184276135385046541229911215246509186576203374999735604440805019847490807422356013256388120460555650141164767187093477600367201582566155833886767502676595105983179504765899465615249519703284200044688760405832723646857359109429413220266455224596073527529848887628891559760890472988273319529325565144483206580836198867967838504548375455841375038385516959454443386074618089916691784229133158080019102043809698814214522599619585496272327477134650534582228294167988433074848620082847031455174209633510461786722667023288583288350343608545600540410498109679411671785090606359418821508596861260193941615784776500178116305096012617031833792853643705579417182479985174590141623039319932795903004597421579926379024826413619452705734109580569208966118816034101813155746548453029940285930109277536441653072739009949520177694204025692679378622447413856051347257145888344103631080181477807007484806694332672073633053714320152471312834115817651748919921457314423684198347873502524815984149247330735463974478904434811126274564829446938186290742136099565999057662980389335728396329951091205099309887760826538305068025577905145792559347683556486237686063868378536814413526670313550972593899421215509750109440207159768294211381311051804255063019744838839903119708304331997571323512578487402303275653122990056065208764939666636838453493375827764757844533473178928750110643731960121242311810000719714526591441588008911234482773178283621028750016399162784960769683101858766000842956999910112937906420322793734771021035558296948117370248966616895264053673293319194396914907986858768031028998286365884197719759507026803440874338370058011719923815958460207870862613349811581615106123861020295476472178035884039591219378277480182060800072524478238044486612844774131498633777060389153752677297196550601399239641840929934120977888323446164277359852469331805653338581142267651608137916565994971364898213494402247174265066383508994781961330320311964413855465820232294892066427779599498033106492503972856619551265227100245145705820329778286741167373663650196429348408532972131517478747365678030120804488173124994510991621825354500154456206580928182359658258463625710768476919946822612151465616697486724212206388560619953397272919579839247380832062650114182864672728639197152746187337100139613284202850918137629799138121682637484557159818238485999027878375715980769276221891640215150212409974789737501341732576047277756261762201949213297285931630599983689384219914802989926523707535099225697366281601650148502319363943548813404871501539390744019432966266116110132501206822324861238743306622377461395731992512778195670297483784055462124971718082503584208676936280032623351203857837697749932253887078643987091179430063377016454506073489905562056810206813674620485904801159954996371867161001237172938082451991788022570258410915934777488986000500350692816100083893347492916885241051658533086701048948995025901103897876595166590879053200668758903983694387137709782094271011184077872604214452288716532926937976501535541028598244784649320484687386449628791616569907890920199603427018686447452535373752344226393880261634892749842244725287099824929362074449484211323675187511044662125054189736062406022600051485004469468158434954993044041069483305701509803954943356273202247920503228426415004789748573260055848914384130307564660358405514454141597497066445980869858765013802506886069942494160898084736267524572647211288061330246094159426078162383889035650281419140559965451658730186653346031068203443605041659018857014840471373775221780145717228571793025583699200040049458772166319393386008122491342966882466326696455787840764075516602165086400214333417469694855787887371853012970504220262247820001568037489867361025853768585434974317334890297409166667864918803121599843572010385516243724418872266879258480421185485541802940289267902784653492444091158617715224849988630178877498871901468827195976780672377721510491759031392776169573475096286252493137148686829436338134406201427427710104345222866439947059762093365760493411128829879812992413455256684111944515151936415700832847242017135758323689867613686585419135849813867835794784683753246885635781321534074170829338861978392454092842058362432200456138240397497925201462486580040709121134718749079765659997273710941152528319844316207167601015880812078876341905567508748485565816169819875080350175280603310724739701656530500943317160693133877168501096366215189219247877549997888608300381161859087160414064811211514606606103995398276048846857211107124328992065262079441976161924748770854688033517987066775123269540276904618056063093027187172041758237946326814066341034313553463461977845995398651845869330562923659486341972133616555271731842333651239919861340707510440833883274141331345048378435707722316743596137693166066791774087463140330286148218062065853729416987019345792393274847021360822451602593477063244656809418152604784224331846131556953495527226917688646536633844883424626297975991759118033898880741807826412890997419589460546659241637286564931058434181962329384927234185898266142521472868109612810633753728056320828323061005072473300571502552662748882838991501958384637351735569841659343794877198704113461597739045572522633821091343828083422986299540854188907545807809817066909091826528837905767929073338083806633119247238924542209267744474350034710995635537827501323957483356209639801659707760143261719715073669934480091511166290595643753510085525864733365512784136265090252836327287321823653696838234404033595944571069657544211445867966764928661226374922403518243687066740550227253895762831681094638554271058428493979831115435160053993858092818438913772564608666877368275644762873620456224932187615001700760280227138665931805446595200282279085312593660535075374892097247678241448402107984724818023946580450874176779032195203400227404081091218572731699747460549237979126020133692035365063917334488062281244324311003758396107053655112577026805901990673193970721177157846515473385516953063490696209640582064225281410285883418192334954000421498422343359104606285950520808101187018427595704184605614979469797109854900526365057338608228803986860144592921959232671993496650502650536899899749925308581217486864121550455229113512410018376788955828855860660362719484763355636478977196398937100670917546150363745539634098215724671375880859556545192130258335232975901598605335938706392932922746074253004658840873610485960072475480254180179067055156141942828959581590326899245573373641992468747048358732133939201008995074296584691514347098492231266199090471273266438572702849160656159347218305150817148884599075014384896410206673855030388019768748813052600278805086895567463799709524066085471938949497735743130293071722995423092366442779485155479996372643559194309611908582101083392675804388992993028532522371734533380836048180767517217608920839759741598323322535075962074408661063782829845979636683390666196052374452322127663790941233809510429308599169937198897610442482765833506529698278475415181102955871788682636048846260926187624139982872658374607671094275851091484777850695346653618986232934501903782099969218377829424631261528692923539618226885594362432033395557570379919139268433545267130361487242849550774153431281185727903336640410788072907813020564087080753661528768791550246683987554564384101468501153017320594492121947036907486837712310891511771288074612348794589165612733849839118085177652361083906648106388325564487612514750139347827543060387744484663696766696710191724157711169691614932084165834675624936418375862416891923306058068869109313057201412616536948331503304177946241805387981741640542238964579282267423358012191279008508739716275981358732138556134813601201879916414050817225100583933984517068911971106917580771043174629241618430351568038027840240708619579481696345684563786930059135466303702650262658057642062301737999949771612531116857325890546595916508887574429567984166711146147286451799876638565179364506967279075277267967788286709862931385099346756425554331952123724841344315956132264104321998694113122930674940620417591376175570686800442312752996601340541049623838549255773292554036555380274700706496555309097758441338497566432879396381999763737306141241576908786726916868143499715073155140461022571989061115960682872114100132490136260278777779115464677762749224804781931209821964742320590679297553994276114973839600690728235876291644173905490217603151409621204782689600549723843257957398207261995545573989260754670952782440452448097565914221748810094304313145222677661806464678495527268646514038507760599709867400098993842236233044846807146685052279483133831795681063541370565213716158562019862727334783460808452599764917196289713640753681753199704456524175782999376958940709510749889999946504846265251559134065094497846220442422604452570589165261073821692492052867030329983046760423324379815690974992868931230282002050610712316180878653415346725512071348300898071687764643229029021811776939873984125631095964810721401571440430230033382444887945496116590495559975137704802625715515721638138493937154419162802358635254834830793555031207068217079296438030026831055405734675076060739618222040376674247391221498948136780293416784012536461595114796615367621549108360101925350083002167949368213483340519754755605443431700676588816739095464135982093720647354176660152737915961205513607361777026229809645430499701531835984119697435390528065049422046046874863251147951579116379116421422124301510468248522943406337133797797116908751894149131555265626374793363222392369709756812905869087626615760156915510624397282002234940021775966565992554946634864188856326942884231522066755191518621342739753413545019614725458246506570655490191676478809833847816758476997789348132688625751069540006860772500376547674957716642074213953998777205843703321316869358063808702912627473169636527059630682645087047002199615628318940323471495468063299055690921901850621389078125193536631829639319395906399338462032727509287117452028951687907378416313155803471797976236167895198340120527283415654692863408623821054927050554508575108078771852661025224436598188790834666416943990948913930104119476888616249641380523015656977176030669237358618997103697388586744508135759861157447365522435751536603843329602880942913185911174271813360279300053698662252746380522422156637327442816337736842446219836155896085419945015478289560733215892300879622170819478546493780188988788046143634063977664944380808161282250029236724125633556522241209089170133167273813342795283727115059966787256239233952253384944983649634029217255035727406603714013351824586311623217903679624954925676067787063972463954837288380648349324040691769478785926682771499912194020372975494130375333628805000695917988331865578287987398962538273547228410174511250037380239474944684003495836394836186345956806665457211756629121323096789794465622247278568152000130344147015591802522541172718064835266444452208402454675183129180501575834709078253752631310767796585561591047245811335219062934021738814646135708594971021395630826187213215350903537886224112285698145872683871509343032477063929708271793438057873589277130699036064141224041553024161030014603604423505554438260959902716883720682311213113464143084736122294253413923072568888653383114089144729953427025540342444529782029876687169471766851981915122496939543418212530211732791216826509953505473849211814359620102509860148894538913223458577131870227781973737748548931634782888104499461628519291574154664703140643497290775850493367877126905991916244838767780345986846876841298467952073179213986994765746778673998459293950661318892673861957496696714055845503207232921369676740642783389857070387861926819775607354070010256176922986812127641034512997625891754178803715370547936336766367209450992535299452660502091531460961683646350979941186457583022921811609993414211240026440886394639080341209780087690341898717524138288318499869959624230872586434597816351817361906009482128453147100055688077501868980994638609422493048325395811885681943274749178852359543800157647907385880807419060807296519760193949504086513891714451630990304145040203675583721702057745814054814232145600639639526853070404139930500821267515251006485011327816402875978281894182294540486145455256209756464136662912155555169674352509783537697159005979846399687433174316921331494738906552356022809264296045937476954177232519572769977574116959969094590949255835873885980091217121350038716708531817844480638325659038596906652458805773112600991885131761069391144199869713869376852136529585376738411509000529522416470825231813563207843106606952973834877600964807027587767328233345623917364190950220585908758792754803308098390963476352948122572571124943745077208330708685635710494831909454172533955515615395663573733893078325216368593526646022479817627944343337334519829099158754004018445589815817887317356523158087506038078008673667299998133306517828852674729304585468942703550376889708404674673507875812441175360927728625647598635327979496462132536996239593928493715733264622549286460390845328721845357076667167446771880904443320532378751922883826239739577534167060941341243730655503842183959863733455792038032927173666536462910120339954676493595385568659094808815695845259685909000188567319711359411423796402192585274687035595704497399212269016310118904575232221677439069871842593133802207749758519093728750441277795087673964316478532544703520204032393904900069761224313854617296957488673203217882523938880851740484782094307499174145618154792792758123331041610002025658969372143983871040610355792443050187842859690627996391091558209845851264912066623897655283418816296602010032655789852738587818622427566372957182167165551103764546052793036266355322084847407372482049040812158555932263509736542935876341500351269569554963223204036736727217829194950489764805998733045263344082591095501208665911936710080917994986905685502979175851040173974475072878605786145575448178455752572783198348520418893764537491016976404526184084780438896777240058078485396764891687408784988821394171578586494449757831234328175821992920490881141239350535539627850423007708344155509873691581938000528339573055211282107937607912846612323764211231891583299438700763933729451888851820157407670975272923089596266094509326592522621045249844866665810131715268502766698240965544633617549518371789508553626462369013634986618096861003611754523418196421463178693079906525967377810522517074805540373119196988359275202488678867647156307662590248215741885652309911454513789295503039440997983227313295485685569603278374091970055130136447849056794989895572934226191414054906966307541210776529886027587505998418190303586790223359034244207920911990364016527367936286832182436957093138401956968807813599973017612455963482795639128053124789430005299441669850586107699741848266029422479345060288227474929692112467972420588153331561632311617036910065204544586871261544063684322789210069434103126399553121813083866460494943009186437733863929727131311990698814594573792008869002283067614680920476912927088514703867735820677720167220306860693065728478351276125520789828763382290852467220290514196619478683469187642169850271253169438214584373135024755482530428010866578609998974466422939175588631332081314496851424170804405759450606333276928764314900507207832632447473884182595298164737901154435791540682350226294023112608288837227915496472977560299258608861417367801802865567968574243377177290088840823435030327463737507391147043444925176359863681000969158222140972009142003100220933272959349489972793495498572072687029409559793658600106871669214909607703003093404836919507699457168065494812262444810048100668393006367711481959310949460882294441316610181967335744350913802620753061688694436985825191805532451314520943307469720811083752375710095595035841660608203369748136205139099331310730811143228498423708770108429567488346511464459947786560430853691932546874667028326517371266027773251697493659402737405704891921348534473755601492382563849422467889218462687876844424245451955804633854653065251410089872339570738833946099867835392989428611642179706961692799601547182167030625831065261389216859228424312145544743511075789439371965995894332476985464224146410698935374201390819068888117902686601129981219236666954472220659585148156565807061190575292684679391112798653344188404238762249879706655302625561826905170058896685567767355160141892686195436317064922150807255736101300580565337665896665207657242875120280657022623799179841818934507141107065155978520294967267776207465427880028948696933226636003436535663960372425612262479494666530423531760363750461512302401101684823663243963848952105904725237581202827216339416498740925176406776743176301565553948036487018530666403387349905987279623710747183427333648517376387507881528234729794377364417093535786265410406635620901435867863795473866153125063689796421708437621035530231819931794654406235621458910436088850586385986084452556656571806845789572184100618159949755606506891233473112096917160332215365619200709819884662901046326685540982810374023328006477639510743641548467498729721047744242822412192827851389878860814682456995396131499673705839258735466184198286289487100328422830434081116118330951205820527411916516247397391540882322883850310953609405650969417398071015943110952080643573065240140964243328830507227719460289046683520194217520828477635054334672541653150054553709655616753169555829104861389912082291845408340344873633722186768710106902073701153887753945146323617894654515057141001675741097262051172432881935849000701993534285518558187942994456793538343275185422101909831424245430939503752661688013305111257378180956496939544176028545902064191824252601488886716246687501050108250291003338898715957404168839575465884426378558365999972435021681469613894388854684095330943366235905664885477485459653754825607918727622240237968659696278650980196361792787913647956375197944035035236304773319538318952530046725334904712050511774093767363690119807181222835978030071771631810485764455706786164751225983196095862908871785638640814531824927534777080077849667460245469401500594545486402882548742690804745362703384896901183491779616278912491538184811021495224888200031182804213403662357830024787207098159893357017210505080957267363793168804564394796293385593940729386859365104167851067945903442390216861107089276506510614202236802586704363498626674094201376215948154255638786525706157699832094506413916732763347615130059586907099481704617053336548135711355107286163772102398177314531519980556876111038832098187709248091069344070581127724908876715310642483077935493473762942389839312234648843383393944472581252762919286890822248102841356866694828830979167455821223828197621513272688811766637033417390389649738028744668680543122152031909914502577162505078833898429067260814185297670185614885578922470295357972238229520946939535447938227031255918728051225465465565827388232172636390055075860209148806535130210626644350134508570765988060169093965743106956377093385631358507269421134967482277949670039133442052687284080374331667228746957742687094231350598786116247275188183203323878031294690339940208791290689915392586073965832400674884896814695559092682680947691310873160431397743020736529182141735868373079834652486260561495605403520178185557250747319563605783289448802969120086007455705066580979173825135019280990003210488411689716091288050502706027576732178761314287692996387232481201586740688405670309810113223546986463163532142164979756058900860596136502166346670791512935397019002073023734954091584534443066671107155901153731362655949719876200395525439020135607850342625697048055843779645970375708813356988712288942852636513539436129003254223125826557112327045086410001446696868262476503862711108915405418911999245429022332280239777300799312273709222107073356788822196072761809229469348719012913044242164644768519295339859593449381178430213780997879931389230477650421550704963338334488449132989206620190798460065642023577404675409866082491633550706049798844371059985992948535652682884680940499470555258948365105902104133503382320552292181834475774269912759493490280460158582752703471771716426658475335558041098999399039732589530320390847315131184479305260762977032441405844854277116786608184799195062555128258175367700547115703965838120787207237044590941191040915541017131608790788552133121369429774194362308692069058450111381053185263454163317070488945716914549336267676307608942708496653542759453630401610837460005611906340901595650109325037623761610818066458997780195487066491694098182070829322943611331636420217564616611922910543498045056764988863634460312866260513235541804018428454644280091046064606687705260970237324284245980830603659391142958118331781505953434204028272128725894031785158509137477848912983752325118277156809952097341986379917570117037972827067303983820170829654224639770743666694369935532505345428431059171167881983051617846961593665394448249351490071176105806041512497155470678607898834386152021188081454988055505360957533490140834237569832499925797628100087959245248082527536151845601053956081547568540572156874775937628145961767339944426133738225224536403328503570297686971477658613599612236141801928250031833077128956809616651989640182539093276594705983008307045388270871937894417108816639520237003690416125182568641600151438099724401878576535010849359773814596621948661981661651617408312873876272497984937734624361002460528229154457028529571969329350170084671226073605210488974914945906218285494074975639107033430275660714937496976479273210253333406144285874377789928156775470054545082128229897579424970054178601407453976671180703757162388169305777114507640452351428623983239089671005906156243296641347635783239246007899560951576833322557130052465864642629490619334801083149998003799056787826690203616053208620221651031498888509801164728694505668121585670877894650496145044062520689845100724347784979779293087155186941073985761139188449099536243988009987638632135027807421688838085332916336252653917612384520419008611595461007690217273987871513275026051241846709504956335181998059813749585244507526067806479483609054364195237141225975027016953316025707160577669617855593226559073749099320325645054731969781323483811586041216656891835843036548022201515507176091295619691367007919267107474006723660723608829148558227538622520853560393193985956924563709619618127031258017941593049828911211923322209078296038024158930384197190095059148889928623927610651052531022568621503630182528737045522684185451286411425084439377285008337886673521214712517015230179413598330068535837433114879580480118388356005407133687485464356264090712903643453673469723746192554017704819259172747806444250008537995214857265946494001014956935968965852841313354906590234475340124035475702081334829583091498443150176225482818454198448490350017899061804831150378428135519720600217863863933063277256779367455526999246986826516536832336524859159008055024161044645445511383826107011640972320778224801458109015761879151844738991831162482430020857309309300114115729037620187866349544254121219757795810460876954168119693888284818068006658112362467050534077280080947099874162586200888006809885144487967433196511337650117465006023778074290622823954499532482384727154999349266236825382557225915144814806565580754689893662464958115782960926678724781962495647368537290049985591569280476444900770952806344618292480694628341911906694221722060193145500364615312539704899072986669966982416005113929073361898412794425815313898818365568791645891794535075189172978109153415808011560968940306302613964039163260647031381518521774594472397210100665898332198825627820636906542512295832954136255203302024357453436497877059146479995625726736039539189257086405649970831217429847628052728052057597882254978756868305118144064423554870381198852457822708238352743279688564863817674957389788298551932904227780437664136335094798927078164041270834285094815245205639890689192112453856815554519234660621329915192858523690681085509245928828143497880446076737498779752980575617497367708872621155326588788008776641178651831770750533196360497750463089380008017542133341111750212638025684428204142131003627826507882324217089917924574077868213754529503418157027349010408520839852420952116557575053985033649691198445145177906551292602626447221959070348185163457729171759862757131804562181625818063220839268332439356426186965411871033076128274703674650195516871552860901577817132868628388500544034760636155653784832711097865064779952954302518321786709479760742078745128675408841995836230997641510157745596741817167102565781345858029693292016485057535439260634428264921636257626190575019569628220616337391921515997660385010702840282618773923300411350356292667945191815671283233831857893451501414771205153923719476478486060720063898610826326717171589653309775311686354698311396629047219850429576478113579534220015351125897234221699984557228367612947474932490765307839317425162051524818834432244593061793864706594684300295574930919108895765804466208792073131551711961148588462070926350394185665174536665964934022318635194423621477713053585638861858239471628019582482282774618254060382607969704173880988732675481303703342964052582097937392694215306531092102929633437008525664114570560022081048550973344898244404724996367015976079592950659676402687720153574391860035193059620039645012568688903006159551226591294325842369359436419879281400204300922251982832622273761936126698396350912084419206932261959742580724304471855189041500377443460141254017287355630831615991773302437265220504308137178659251061965683948901665883558182193047437276775107610622579818680980569649938265687854810895010318738043069840932262611368413100854214042943915478513370401385904903355391197957111029212613157939379134972057719950457397464270865490418046703106345118804717306783076654461907957936506131253369484452867053272181841416560130718090769924695225883229297082908334625455665129118127538070487004258032821354469166226699173032959093339557198848149288827444310871610353611943036406365127817136112558424876925686720052932369781191394241650985819952824011972118481050248229885517107136609510175316661403024133753169903791689423161811698687096437342506281451874797050206159681313358567913004034532188709485777576823863206053186892156533162851130026358763993888114929321715840862805800023365974303860188612975553337838045311366711492869585218145881351957418984956961956757220410118589158550217830569087107138819484060580589981815204885732592348675229552760745054954822781965620221489347844019767222578849775358116629391784258396658726476640560678660422723183196015501704607899655482307727261834132635125279019478606102861888007188530308954741273244941224539867709330992004105646926151265872192590168603851813944644898812266101542814557876780701558478373171501821812646990523562186211901164796785182446339375650632417836966629807017125851932628401642208157605225757459601988183099230420631639930086480883665980028257222243432011829319267170800151486649806997746194871629279236069448845244985740874312985055938708711221121910223270135490829174079475898268424477849208723753813072744533997589095949758066854943100114641830039901925703598080060938280773991688586888151363606236078439188747434129567915007631445604021345850912181316863964601227460605689672284845476843165368527662902583735235147424275908113862944636809069432291375443654633093851146980651026590643915517285742329812778287118738670779103192786387085143866472916754248058847920944574714046807873702366081908894877487653707965718068268923553041927498989442604126018317115708906218774161475056985207906066909191133854115781453794056056619668103720170343088318945560454958135033774614404543071001422089446869228619189840949883440198890121021194721012620263107427295467563151556811061531193800586471130724257699699020692355737760343110309673671237769362751409575098505545094438961630814336588323103468570341382995369928331151391918765150662477921521618676737649627091075700552046685876992565411243588305698486459655208732746612907411375409350028129140093166511033349659573244645536917350182891758204747588254630009017630305691808226560424979489489776182993614343827074015240786834873201086931320586222295232664045955721503586116027436884951481085571601238602228693404985561726320520812843366879948981856726958721666579380202002146727452216901919313751991314766254552869181704815493000777174466547933633884163095392586462473358894150802310883277371643063916341183858605903679390325188162312167085405597055258299353204712044250720362706471178613567195818450402482535121521768174765970415392081504355134999790478645564236162073394661271890146070322139416335529777365702945751986422283003799089789686503359773260425551928401682937979316735278051243248264533032015254101654606581178422328642073902524478239239100751475649697294750246634213128730917888166058352890032664328394827389948399677541341853680867423581719677322177860829573959877348678527784047608343185662336716021133296628230091609489030439924435609523561467103419935183030243714938669249012411336480012143295808599405625416433602524648861241333457788369130356043818500784914439537141665473821460346790748009340742661610336342684808200494470747058738748521680810328955161680093576592651921095497530492988493702775522561760170784495330144601380720640306173648969599096998933713228217628717368422781829020445392174134395806559468383219470401788122441472801102754848591031590764534901101059846989701831020321610017829022729580698871690015230118497632627849079193541842494365382102920740602783022132006714753799322045755885545570184807526506384887665151784301796678222301240538267906434646648140383974957413054609283695804342915578264629195017004716595652755303164841554886313670661157181818068103294266085117986804605288322125314630232971135419517094823851416011159310953900740103998346737317218074293083767945155240294208591402273558916619380729370123798206961254535420828960335192746844180611588119105673433768476213209966821929190833801852576246994139004592740931563540110089032895255814390443125875475159212377481366214774407343374320602028868163267726249497354636162834228019346916501391257381247429663426782492588012355304538114669833212670031392590345697515629192674925755592988826318664695692581871575193474243087872638243523505165392324796298774033918294525998583534005274781593832007746115032481351108513360449380682927403326663690948934595043608249608023107933212798189046579093557950031432714798227564260184198736729328199794930045084196443787175633722854285173170794392767318610572402156007259682140784703420319729842275713479856019476102481773057536814829748152781231351618559535350326379889216606813834283593441507182686380000319983288227092865791807067862753042996793219947740673967336084665656143163998866749258441301778752348125121620789001491477528618993230869406266800098442902678450560830256474748039852547977614455258327786939389233569884506293509658551151904121226076857582084095609433972440693641535183318003252546927478228764593996929411088142510987315640156838140471994781549918068868980173480019509559593248357079171920470709646914089158184187076720261541323977888433645494488630667135436020763668527041164265636116474802465185430448519664735134823514603185296921346849512408765303678559192150777793434533827865716661911645849078649814250610505752653041690588774699210072211114310700179751316967032297642988178211743012684886764606248237908747387921508457149701378389977372402688438039765400907425033544397244393381829361800203007584308189417730646514271105759767947117770555852292546115184544082994996462102366042678635482600429768126039102158769219789759560595474646981337630561841317405527724678612247228013910709330485630031911998042515486405490118358506443027938864730592348341535593640339133408384867662719925020142330719973507261377804677786957858548685854662264123088700030044402198418645589722306892777371416931119223433971993946078611123900163168202330363464094516899958619124902360638697410185273326825141226958245924851074770237870747027778347830743197379147302050155780174961678810028956842662575235714353605230509138783690812067372549866596230809350655332066928089109216709750085583841316151563374906006724319904863394667422215879556155721044922303168010842573317033870443978947956490870558628780617799731566026323076903235366162680380604238172072297828939825753082532567587604530243043010923230084019599630565211112150635984239042319421333874479958838650554600707746680428554224499045656339033699706533845877005757143073788363442753393738889356910067347663683857626183865519799953586798749711211162219888764147101834197354793156825776683192094137338310776113120871557769155876008586167261569402995171309350872968208649471311954103316887478090598402163315815467099275236733337280200190312079942358880302348367096674759070451891068178157705888435626350782432839173174909195767307703989887726420942004666549815658465914778031579052161347872273324350837059254030192629938414794961732836032576436248983776657603737999404155631992959175491643705168905419491928508626451932464267745686606984991760752682894431462162612088815770336633100927149353649468317585956324505075130631110692117746454012171930407561739893783389241712856406274814308539976858939339719130444736105276259076359120094859369635372912362241680948817395948640299850189449928517761415022364732108987097944529177492213069242957908658456997117711750814369532841065708764921532110232462887292848613462431754475070146643789941677871428707240293712051464903049527344193603463590678135315009709566263613619382645681332163476094230559860664458581819006942372091416130364302190776695035837029060867282578260669263337234567477988845319594110643970449544804564267587368874020548121194563023881188630903489190967583772240567208605771567381371514293678739468636628828447440985043309280445283413127465441010396424134308621666972365885109286584809706603646335660907573365365191185738859059108371935623126277959650199517088543794379340282605896856745792708158382433945139213417236013876851849092455020011827164462164291252805840749206303220609966292066594772702006995595973272685733917809958418888050538680301511342068690332606509274233055657673162070425311017968947340308271218962821409673551405511586077940048111451842181334730528383964865290132672578269523764366439955119859975122216521714411337464898367446623798258109662492714066389945617862938334407306910727312212587613428129077346816732861882104623925523367972956748489929857389772777315708868765996154438676674069374320864641197640593814251566530269933786310104969012856537066849166050943237730754671657733584760497796807937848246770187036510153028399930637895598632940597034746845140702707999387929380385056878545641472141279383674169736303133724931447978055280577529981450519513374272811372279628953438606552858005507897538795975274745256922755226025594469915076982407711385401164555417642573334276161245414812317138000497904814022459430587690642030973533531273540382208336718519599370067329778361761669114789431131087177343281927967385686434892113963176878251804096008310443029779958557673330598476585627122279555917354137824342621045364269994773688994186079283330684410262372873108496160886743949075497757251269851693722053370245442768584550370142355962016209990720419793790238244748176547720359093581998879342270714731255972006453149929906283175529849999636985360060259996829244522195883562995854456550141185712260006592372056300753431550981322060408229872992140942135102693672422432637114738357017224571130856502743664875243973501881496716158497312237324643189608045187938466696868981020777460893481800210387678586903795462548086519638145261218317017413233925748749941464293195729410747773665645141329867586823206272969489182341764659992844150160620607718211231162762351550055669796419172699271095489542075477572878300839567782292878362074791252701080084297077434497053375003632383701316980729824035086942806876850777312762601563662339582610128330506606044198362190857422148529129808841106282653373012097897342537100708822456639111348817697276021592298499654434259854862631476346769455843237897049531019439313767102895539233057121959339925681011050475602166154969766283539460752905795799384498570037517321736710683961098213133353916634907735879722629006850801783739658382668365476114461790171041586375018178390006750548876976008882504412575334540143034878347664611965559659483230854520125939439703232575749278316024475222900057317802988025196762307596509448536802849369691430114505775254298601745921432943023892404697217858200592852121857932891919287416254717121269522981068841224801016017347623179744485239120374266140561217148812360639521632699642696911748894690765813677061064450026542342131937033982656878890331680863853333986719410007609357468400686067268088192531900699556006577725913047129656059948224013654916108743029867742314559012858438174998681963437104898986169613144537394980347225011792215002132238394150846314906634874341706332668037660151866162911855057064297114154186851503843472690311930306692999383703100936221607197260828004986316604214231028094557842368789933462760349573372509312038238111941850787798545862406129706761682338762924923417913461614400362963650275090162181902006767646130237011241450282133430216620562903093321342771716597178010450589013905884403043199190267018794970357102046192542768057396814605772457954430817200742996118503166898552111602637020542001271621965440129232287687120042415212695940781745961243962415525721552156488262811138199739497500164683934338191334316999315694054006008678072065861192865042318022290740364241419579585796272152138013328596303164877723420219862482354650225501318376421658372997018342190752643611597147712058770977001166055036733339999676667696199218781047329804866541629116341745126891050140622535532255123650927274544439627967652642421800351996729232438566633239764605006337143305871390073871103432804485495513068847669524236105509760107215691174215404558777121692779194180634377081372659856495955811318586199499230019732219958465289207823397914081790952767469141816898463019632087188136198930049000491137068497249896387256876864868139286874846271036738729760504870371679205402725605069843760872611443056957599439062387374447238905722215497490520622284566155799048802513562955801875044657572841947991157782182546244339762106672926322466024223177839607925652758523001542648321685477160841638628508074019695375121433573294098787950711559623919540823733407581653635023413670640691009161925232649157245571127538327830833354894494657172369499224109269454941507660232662101287807461235906876328533249012013495565261507192103913350327775659468417493005700015198835936839909554252167893658393300582597126342638422873337962931054399523215066034830572194355777639112431714271307239552689828942529365118256340259035438800135024775177172767620185941108708845900435805323696419427039844554816353603239538485433938703453142956153834937436866607281373908887188184063504394224925672472205932540083726479038698714435364148378013489373942225899011508154434916962661319604272219176668737227878928158559234606769432028302110062035035619175521284355340650415538894475676530621165744919044448623417446468456602608169673129257905164270906760585989316242906206639627844747534354564963477485362216274360651046060561568258114712315171371591882342006399021444050419460270386136238780444407955067696027397871993999733462777834422257221300690410489375244993982073662187204372616737508358191203561027159039102925665233701154952515145048320740738785077162360295783194061219360672150524641049583159945834610870095929597359653265182748666793124537145297644909975132594640240288806260705454492760396350853754137869392247028368031585391598594476184278568541568137997380463634562125043595725334083172974281471921033689233002015655729811408761010427399280500521373873248727982528219397955074192981819919521369530240931907996559309805215312477518520048766927658415193601712430743538307162423813390685809932472714082775881387737269913341240117445657500200341258990524843205408580867666472953049864653554867933156782188531871289195211036393903253786277298630598121252482300453610271559743087179476155396890485067342232361466140118677121549845514362522336507508922682265975359179981948996780446876065386133679936719932764072373620389312431633254821452711446268082423034212358404259323591166548622472725865725241338806596845275788527947035096175075358055710449396999029656806118561651662845423302527851035364255040592975255395764239779934359161185122018140476181486193235608011437577030043890127926279421850823517787131616617433935022301558634400718140322306236342081467632216061695028662328078610437083574459288789227277394282794560916874754494495883361824324091372348693553476359670507872730034583892547699819520254481370073551246674383360044724550059371670851150295068360865920257070362870610019034668343489869194844975523060933747103306764564479165281266559591962984215370963682108894925450574352965849009907822435384907451006207914943694891479106648117368255911510960660208699931731096695545725620660962001116551564545835987604597396199395502473174637385407929577651738075498966914595094014724936958794257482709576133967042391400201228033034903319964395128472665591863669777670604588782385128748557436187873357447406955595810507507921487085271324272461091022227300720330681637086178504237444565704182395524935454282993626207919240189526194645107743501720437210773561945770568300821201876823130941692913507810019690560046731487161716492178809356456710394065970305069630152097373566077103443833489681271526541633901993340610845866154792424790255078885700392351556670693373763471822115147749353853122733839905358573065586250012157860391454168243357061631794700705748110817683683945801292625531060412988758860459195204084991782447529422430124018624208158861517458712629978260563391903984582107046670159287474105287634076059398068034568289213976499544709832216754266601850165632745406735217318462612636750480210575526091710034983046563449625512483991110488643971492350489906476000550749006157074207903792941931485017176844905044921733256838919709396599925892700501906968579685336386332357678324021818191273710515066743791998740555170847957880123676625157803832243059899012740104392251315740060660217399208418430716791174910952249725904859904825397490196415719919474968392979982667804673619545965002662042994316976510863858634400368177863210175318114352465345376285907631693604548432230707701874922457178418645204869497318425225304294870266962229040596598212924302601688046935733889727092878508028286734890550797294663373778248732233494192485294694795465583223389249970064620280400994931363028787439279095560392835691194998218410780242266056553471345923977661181600824689516087478558067618919786086212737863933095469000061447188768775306009323253389237028939946980587920222512284545628721989471099813185499953267710139779123087606732332545263220744456536977744578289045951441643639149123193879408694798102540430864466072309163875512670371741570657322230782900538907342323853743735138512977311994526725518407056916572250461924186632356128425129786216614890022864906373686123825871847544695934857770954928721443273975079277053522470299415797687865991782442662866298211899119109499419135519397603373747697320745747299740114700145955011724037163510750961323492711813693793545854341889882506001275329554809603432450600650378644219049594160119102171531169160665550072192058245979969883476577328036528198500449393491217216988330420807887383095364497513072301009802338025540456592932654827959416432975163648715892266930613305666697986476131879684624105407825535300450198284882629701000476343598142288879817367130567545553732937681436564915873234665263512648807712547296137087634294910967570383581236995108079188970267409278496785362163608331501392604433469652421702284613870108749753777141871535116284338416497254115209421133501450258596527753954188655486617635755845130041186916050159500980235713084924530296560595398708960450095932165429999807476516485185905928863969507413088229290409863338812378853578511121336047336803079269822151609242387290795213764953351332401586918574252998009388629278613809269841700865214693968750509119305314323968392542311391308247997761566871387843085572477844678715846152645362697453747078031929288013083448114740490279065380357678393269380168427586549627689681439378175023248387962784177653845662522255122185712487322863778682794110885567407785091525367598419787586502206867368525189924061759273566619639502483249726136404094044885129187336210078737289448874174261232790282339792440080580564093536990768981538140235112808020607039707051067934163406456763307812135649977606592559551792665793372627765668620958950014906470733408824571182164137911908788331178078899855628876674290304855155735382516457980346942818781183274993310873837849086741367513667159523786232538963844054206525625244098101750409785664240575155375543662262894274815815347935748467296415336491451189018088251908514117686018038071328322327247057411117991639361733994544302973158961354431353896019356578102131648161313367762588343231021274626030775611070808196710383126880915081718819397030671932908840170602468156139286084406816471587674700796435721602122366858768681772566477421891080424343477944328113734373122824279489455437987375050615445960070270291309853339708508298431297234996639841955105241163967680832427960856084366691145623543737511508993003629581267765371138946778008611601594688336313162059595900809341842492785700383994696278181210450869146799592643353204278851151272153131507674696459156167179010307131955805390119742743347778280966366847964388463707239320668329722595081966887227226900267271663284684324044917196259156784552078518768363220369584039397550461545574707234433971158634428764655508897089301524989613118332169503407954447585061213697816366564768669082595723350543137465531258238343331203984551502516705926024783020764441566144598656333812110319775158623523392733915035622740407950120129996495061158015179366429386131433594416779013623246405036447178304812119850261909511266776770679666030622026091682351891216660640220101506782766340245114089207715801651295495289999707041819860592059251762058167692755405635388200822425545359913389040894144294818526039111394408252700735830533314659982287667770652229190785980928672656339666617645051525095830420111322032826539151901160449277726306096355507524542576009934676759559818729548421652601946865461452965257162908302813492634004482875737745753361751043095578005192936015721174210686945735901144597638226846064664499653564641125897030535131229723560959973401423395756828156781861401649409676274306493733683710466268082729418954537160888967071146106273148955307776936111456370456466779078194411427754487137570559190888404079622003558877155458782216344316820429227576984683024062187642204492071668452041179735512070743531531508471231912656021529602043353908303953448349427284830595348910160108016951275196862146622390505328858228827099380606579308633401174409934733738633623447332858276628966730372086198201197120203619204915871667558033385384620888424005206457328331365301170615689633347919013363663073254178884414259883414579781845908820668158958681444068657143229487991683636977894088271726789408864191491466904451635516300274423058485872506326343333017003380574703449349943628293054250411428217709048441021476851879830266000173934982209318374010328593928803549673561944084376738114773585019249839354601622875313922350104455604234074536444843336281878292376857269841686215026867171773212698616237243938624257147888404621094607774282742075112964306871168094126683876701086585487427263907247949960181993519742263167528566748582280791871597806981743874094563673526485942736699066143100078437235173883851651432863912610687780412849991597594517425222733050681783794763250936963757462389277766574351176214766927560045311475131582486513657966851531131030873191571641172117043187230269738472582292743475394197251315470283729335991692933861533635946443013233503849631650646227652221030938760103117491361191595489541995274881834533823323456735990176559045502032812750656318371250822635095429555953387605932733791532930597987151133220975890553900179251557991500790557180312863443093981082760589878893050740279489710849764999972655979526311052411926859543704743158621688517597282842401026913892189080297746410527046142552571733412964902809370074655175312801694901059338287420953340135083603390517595886879303757574889391660957661552908491057902534666616707754473792577342371633085363593327735851734240880800254461963767303481751171929242027705812601966363933495978607310524049515242985745857592829655334263583013104099889213247726405140982739798779015706797598404344581328296873828848751447749126868109008232529478310704015980951699501487146354551743674420342442689054366485446267277932570400934900161959344263672357536197229338318623531156343363034802499415242854506045963601470630178793853443922009818151833327343632537059223917208656817770164392108382046227376090999457507922045497391121254950355381179907006778387836866384219969968297453555272180391500525763859705396607927043308830916751123067615795864754095974795297059603140660735229659928959903602042257817604038997009025922053073534317284575304976714621678231839149093071094800233656913952447520189708022027618343474711228185339441056953905600219818430827822766494043598110017728449739555805419849965245031541982411747431957805054516669827285651239983581994269271712522403962462959026741631245698629752715440765578033296954641830548564028672576912713962627018647668115417551395883697470927685580107929415191799925865156051813387988025395811497128178785005229206118855021320935051380170592714659693826204387581908952559759566530422288714143670752514664784324853560162614913546649003400967461778649026221722244572707909503288654794556427803227765677099740919476186115982162766100221784242347701955323732981492258473932373619657973829681141181292849062102418771632615883884382351758943649323379786824037368156329572510989567194159417618154106907233672596338987708726507634030072497463516221856957822744467882741130286134135122492577615083732592668227122696073750083669510715797883611383273579811679101491445892650313539337901548626694294387068848996903174045031510371312875783912131039671756537983226536781447154480798205682463396783702863894873778683633569610145494740639414568604496736103855761823031613482536765335489770273769555709515506022804043160924096573206528681625682386057447732752033965538468561478849926709006073415098525858321684569966683922457273667226855924905644697633837183276065851324932102866971935916042967536962452898236946919594403464751075620570992510814925389981991034524100549380336914025957980483112756012664868206965180852198643480804358458214699785227331247929285225745993217867028546890009348556511550252799496513502044768760157297385796206245237707572384466678912346705868586686385051604711905843875465633229313353929817377393503964204587632340112517987701916679587626082074034947584118672018337107775831858673422041858752572602571365068464469947242647068516092295416175497084143902019625405723505481289496540013694568454897919526728607669445662406283089028785393927430591691778630774409718485194710076449923993253682915019251012687365046223719798070710116359634539216207950604075312827116574613684452699846090905646235680141899399946231884463145240321116597195055290984804834988576917359475391307685573801700049834083603037260019036900907216291585612803729510310494502732261558416597149632235266778669139022532412635430455820293276997894249688927840977829208477136351069123965762074968057968307279089944716652368847381768545396313657842841390294210719856770726654839081296058197558483464766492306174618779934519754752767205436900105043224633625827418981260817868906895390826524790800441216999581770232984078977411247133054483624177694238545846431276266016702089973104151598344954662534204982562217782133880143637313021345592172635311843918029727925843432911780968673173281135216346210973185512634781619704904020213234868057268443725702435565067499784324347997982549625954628243191747827734139392803455719455692579090903451107039063142278715689792534901883122630282081979809404506936708689891351636009604688741035189839675271238883278243495169394861407830348462575283364329924725574142426608395628323495841013993349245883760610393293585587302295550161003832443043879186959738720997322391076620266330870840267170448557944733103467477633991262157439856771985649366235223705098498162235679768734616060950235925136739888369595131940323386093732844070181698662724940162496402587692132180761777863303769213154198324203435892057373290261286558314111241368023673649509776267531482332790382733403375819016711830755987512431954387495489231331364292513390190309901417420271311184649946246879644293827812202983127432417414164565023297869563068361484258280093938560847193335669283983017338043924529825560706079003821153120817235727173553012029966807508618967991937293761512347419290971115044971421656622228005185741884936068427925107118832568940983247037824073968658140890656458814488233420561229038672071759207904804068554299230233200576423850695662392836667961889921150328407510930789072616150382484976562089140410494453461682477147372558861745114092328485531291399220666569030555595101303686165001025741278433835519548253468453375356253207881393723356140400469222186302678021533918076947019813386572759348941189044409115343155311119366191025351183619863183553923116751639761276039668044096483967530772405961265217035787703218438304311867870829763674070832818210988665657121751211184699400791256524954034479596604971942076980768341180232849674038403294126327959648739270238389410624141989346853792050265886372816369421215258467208838408362425844845409379631553989923177961813907969352515823258629834396740066604471896938294740389380937732433397454775203726136869030760958742319239419545747463091871378401708094934879691860200793593676388398723750082380790746232793472210736210335191256012108304394026760763749998713483464424988614881745971774117815497892898646423828147527697770814274600472025461753941837986474271350895331735484777570485899917404304486054177386443753057797213672639245670871246997541542842379698188483563391168670307003281870310387330315320789804809538880178339571606431482767666571684541751185149723870641629474434753651642899894331222571107208910274220090918313098596677193480506274610771573972331840175688029090470442920785181987680234891636999046270358070604521626632591948685143448212532550880667611463740526806941088826197068982559287388248964185257832479644619617552886942867894904122325502375241719773827635374031506012626154878466710421524563629979614815669624248554510374673413100963676350516815575583752728228557940438209602151815666217797156681526223899910151712605433562743002850100020518573872355982792878050425194628939217096057702071224954754608385456626509991517785006944427979963249380388752757011561614988447580160770401212791240061172446911265619065503075864981761830308735009778822118075022287091169473803380358375190578958875433475327715193621364058009774645021504135625728345156096406429381724201896960030792681968761731810036246891626573745039634445452342273999328949208133070384372643375294671396347869346491579315242047597600696677024259749148996386136333698931708733217718847970002373812495705607999042978036067797770801058526978668363417219714818020185734886633937736513598164292411990752612507954265682310978670200486556923533179124680745261567963733159172893675418405185722262823634036574309297705849018426060107862249417859044621887042328101523422952609679451461816321603380902869454776066943715055497213106919023033194683424269438704693624291551361408027583617032897755654396022511273762080001963659654338428795455272231423680787832889620798878846703199250872188880427001257136741836761575086910329444139802298852896501403618667834189760731123706376937993392985176602488482027974922013199506156838732468548028932173095154497591622236701739398158669496182895039546768616035833293093159634164109479015386680644441921849754651172066658705263796562831330178857644990292452361727966097050694536883381741591529686860938261674682668666193990673823175718473617475856020722841448205441629710422597019370587459081879586423912497032925329075326279818332806201780853755967850752228213915446608093308349448118749908244809946007011749805549514791561235265083749649039267838995276272559202389864938725442021523714528691539735032417288446075443761320343091659000102225142595080396371181402089884616027420147821986024657998283164290472422097491944213940425149011039301888746578067245083384370326268071985528670301974888843048614818730616283753185896968634660381570889347162216222527646980617025958961859605138831803531949920929238909921075017818809669566979416230882958139656809459144100546469473200251858483446053348328642332930909062238519402653112391975143645708325931715567413570885062018389918541211456230458576890230055134202586845444555322921279275008985490237599044230406232120864116264180203822058806151308774369245162052957477348962812525330751283730996630518628901277374436231019655378669955755591143486150031762130548937077844403864225224682484857911302689525216401326221343286342663684906016201293843150340210597436157325633632172793616316009886669060219582497462128389597227963526232367173676650791725862793547128917213583406052831955495148222244551029237320544535168534425988297630326273143385842766334632442227111693006984886740876021842181927408534160437523392835392149574332495677716241002237118775083961079575397028623880825061425897040244271149202577485300940018684665973075348533965226103348793323630698180637656308047482017072664511109402142172380457907326720193992326018894790921197716081883064330242850157748586234348944319189574830419120432296059066351072835471846401971185361026432444196040844819545176734145311159126984378978267863770076141203613455818214720164274283777339971748657050039256995677690218338223964115672387580720559603853880140720160214641620377860870099642167672522605051799025002314437894942230396943418640751757283360903729521083724051807628587004203195505860927183471914524884271035013956651928286086066891046301056402516315203428060459415767756935732110827946517328766277340491594280653794864043377270732517572259703671216600723251250044188697547253302369700123750957181555414782969335879625058117710419830834601973588371245315804388546969839440882686743214123317168963752519976761024681954830326213485759893011749908879279639719553539357414138920842919341254791885434674636174286694230620317772356451624071857654171337893619154186245279737236900417906980107287826772994005857469803779514125366251669725481361831539178081322313063361567926725512596788844405020988541654583570788713100925339238713801900049375106928214526976974667173810817723913714426994515976362806694993164116565481845069264635072377426859346565842049349587665632436225640970134827976300526921212337769014566635428562546644644582076516083884580610618280883809906001709185807894557963921400795373680960486814948221533018127820667170274525056137473392741098201228656695968228853977648199930110541916932717681265608938757007542634777037115880754340571152270206667254383289275022665939398224354585274515347838889209362128506521100527783388169979836640025087510659326581707206683516786247162383465056991141386132671915589158374021554557674776164066743868455302834578865839410914726235764154612431572586350126463901960236756622806830670620948202653511297503169268392339840760070072221658314874189735722559190765018464094018597940030547652060363873692646136431774048753015274443339366134665113213189999200561111802175869304152197368173413426143101588593982083026191623753238089999219681619334765590276822858650590594968914640992080358797233801469167642178964209942207907536843784670718434333527729477207123805859148975656118262702966358431232367254509831749324919459644747578443027018974318291111722106250164398545730428149082364400660944134440928471346160371232874583802905945293908255148923374998207462810643852543555797982180295507170757607647810761021147439795264444717498307392734893534971865350974663030734577779054322076158011978262549747236763879605276420280574699585621602072172093021100571776598582651642247797093926815469635096853147154315515426982969760221067317330956337860119668547251042226572970374134527887543353223775570572135792956238567316765780403353856694037527066392132833767161017712401625151015543935806049379797639640688269678254732868540732403459163448538160202899568541751529320155002881325077712700966747031378422217472509216105053881150530606756909000688746472114740733735628408133954028000937845061237557059342121915917446962379159059998649149787973307271286045741482471555078397560663880443580779307537967053640199347126151205718692897019337299636072266757010267314418457619700435578867778460213701910126011869346736929881310649378464920167209584612220538445476565709417934971192075206392848211506514799019395050428316992170002178093378083936067308738385499920261386345369860309508045871558941408704639240846125619643073503752320259288335042726131246290589793001807295280397175294872555227439408943254823333828038137911060546972571437876266860155225245976857546698877960141458269532678829756997714644176562097575611337594519176500749180099892144205399676900935159054415066218836623915383912615954756639372710916560023772605299197823078657430175582372369168213460171825323615037606559053905942231597349166339998328560978030440180279864552623281708782122547407831311172993198947668030772119971086864837902374505082154822535653116793819285368670000077778479749215610755670523429722970060551693307773205932781517504534958751995897226659225049143390929876299462737088291815785149248028498586099465729007380969172176780176360977819247376792160291531825379672362453670550589701575574857198323347385928032905866989404100038534996741831235558967860495707180299437028875041304839342909120756135049480898500688931046717713181450174893635977857711963971381503607378078642145295906574602664788016796550023411627028089492836369801526972450893586074186660365484828683603502297777505160545360424411368345616891532239852902490481449206455300682461194777631877323825989738200364762083028758250194476898064798185056683504805317192973076153583931995556711392731653055982682856490708783080605930819466305198223266302022864803228852177391951433245161766173670575443488521955174998984892791888510910932179600988495411158061051086350236841540794566141660096833566010489716331297964099392270236222013314987588179049543890896925617064434142951969025784485014856417756615073915810091965063442226356478149867769202570596430411871709651771049989049554717487414080026318999746855859242853837397804194652750340862174466859371024851690922955731439382751878176226754532597233963998921042772447035563511999852796930247708623531302370847887761400929456291790467228484491462508838005220364351037602547588030895085231095455736212200675710162446453939365826369944478125231369489503652820555135556810993101098103781527142643048340244297938334876600680928061524546143870939637792088387272560129773230532643225183620358686359928197493343225424004896220094710556530331904718611075274980283553766457728916480792185476426071568206037920430163624059243597824872024007451061637775099037250336645199466820766040998675684956587070379561845302441438916594034691367972277242521447648501701436675313070617085032425987438847358542281872032080667105356955111650430392352882013867665873725670688041990333128896362231031818889831162126851704870521943110302062752770307198350748458601367820963477239255373955672754764355668567593953358015210136102164393480806213699852169842184595322846013211817847282175977299387826169990910441182802867322568743869063216045870681067675913742071276481529562385480069053561804180649545787339207976938989024548384936583431773371509030972126795816783398938268650313245759484217029172027443137353304881351091392553763956813275903629068264982946855356922742082835240615258603224813089293087434169607335613231871225308062113017283478083797604704103336691685350908952912463029069889415967295876411072443751463880417467353268531412219435859845116266118775803124723140505085537059520754160610214303234229771440649093220173114241629122434469688434564599155633286150676644672251757200438184613496540961655998864975389537682667655894374919471340086927703371806832076223567048537911948338412763889275303764537261475045786469559921023219368635091700623311361332213524038504658026628390316496155435228396826471179960382150884149498718986630679961717479527848822763489029530958891426583160341767507885665643701229385177234790153359122995938281018548105252548167984364596263498879363494812170485424088731762449921681408217044113497182898385788389526766769892183458759106970101055285588961079977013816041173137751664594211265466207262937694587082094750242272010989059786722597281391881425457148490923163612598225741409857678436662989471652545258381937113167072768985234554318772250886995663609663183109557475924669247713179904167802225689572615698354254886307317707082278877273541768463348018951053444397577219696243115965530491651683288778544078292442655328397746812242294585191034849054882570291123736833992626091176089357923109632847457835914085887147159323441700535303482112526307604276496695673595252330641063175311875191269891973243555303123458454539869261867920850201226825661245608164797114049039807550482280467316131521247754030527239591132560439260707660483676694517070851292385238170610781160070555706108627000068630156984870662417517086293880353517742549081245431568741232955653730202052380462097205089839874893618579145376145678286582057414608231959312199635808809206981031795339331662461936029004317074844379502180660448278964514552575822898585795325821917495319201368525184928730472172853011815590478658944045417379642860458808588880152648321413959525774201692756842263643052021528642580309601401964256781571371136218091066074495878861155570294311430599679019490266191230804593793805962599409409436422197904668989777100260239261232640267527741370003969259056462473591053088891001427846855207717612912911040127967544941202098536000273773964024453885520421192303643421403211112625139867880660874110380508225417740190981329011328793180447320366710721265495522639865896132205149336127638412806866558071206382932336611669227712349497576504764510273064570723631594693284630165273864419731042477275603434947528642733830305243862251981769590694938422908840830852424398824864442357460031183335144449644734501325067476246735180365668696130980703985524524798987128313913539568812494736544499589857802554510812471492333132011849044648913616666600930929107106582134359491339609900039406582624151504540520706769513218720099511848036571221768160113068332982510282377612417028176120791699759932115102528644275901258861369214014755637443605200585866095102053673018437830972745441724478654996037494577630852597154954487137363608371015550449113694223904490164980462880408031794986299199835541647223802770838990532506343175648893456068636054421614628853332718741676581490573096329521770278124729943729383069315238477937646853937825203379365067630333150978018565856138193501449268659577619339586385077792052412979844521868174608351724205465821483231563113189803544004385292038529184545148606826587211959023739900287000937371946266529841859972399792181043737925936682624708511786071489920330145945571327755203308659275996696962961721986921141579004857005680194758062479047845309817529964681305519761151587666858799616505912890651628187267694536419500199231186017230877387002781871788529874324148663443910154894322544768957928046715726198588036735925860723263737129102287317554153277422626539012835419286875005618412605078211262330459494467408800095102406633587370538580915388167871006612015573960670060142188230155943255181546559165028766023072405239363441421486016432455097920718488710465778841149870959350674997735964747333281286959852521036369228978377698713911520270989669491338374044157290788863943567970490520707058685994926763202336943169692753615157109556619141354365243114542998953314241589021684986777553296373475658296309332172581108241893238938407135523301162725293586352240718923883812913885359277532101883467989863625796354180483412372192684457204928656842002192421811987979023362122196000206837771026474132732811002936872011483682260808198471565991257240020892046145881811929814686498368471393593496678852414624340247618092118085992104900436649159292390620231626144643627431101249314692187990079882833875967320865827583105560260570474537452756441411188492972912497702199735854513092633489615704625499041739734802703980979763813665275934244621654740273150341518628735442580495304623976409492292240814431057254156830011711967605031650898733126469547248381702486732388190964902536045134242807317764348150853495670055126695172720370477733836521434718830303040646770463074805480146156444302231445553430940407084062927127593374491326533040762836861510615893141138590327161173592553741552831001613542479529096963216316409747479635964913468004898772805603181926645880302724349785551042601432993414698443378429548095267203011500786457965885787595293184943470332335378096955188458796485202373331505461806898385236356129962375949877671153496458373594359760235482908011052474966280026182554908697911392925377323107813159673485581970910848903100396582730874698714404933109004003206635280620840834694541215053369595257203543365147266538511873258887713667122519316944159892971095544980307476421279915687733770595782766880357085979529692123809505256722109731447093948273592410902949089244443197071415032674118255687703274955229497024348489792814276774156807373886576386676544549968489709031700042958025519015742659440736798883015247273684652923415615962788555544218368474970599341978588336525787743100470760908112357783265640406769232955627533631141484509231971171553006229134741648093247950058549701995730847004150189431602208554438664111203153510340006472273402754947599343557476901138381753923274677984259707746836923191468246488613918005565329154982329633468620177999303175993461186372073729637857681733866860104809535795156294084844095184122157541847111961805506292093470420095467724104698700681959358084173255556919889709793726704196355916385385649261904254567565152845793311696048322752422957731048203400999948350299582018243956718347554742537867495136206480468616161313429549650178284509405911835933133008817105957522438963776126804236313986766469956576743975828661750478012638270276749781562597702208303492048407262472751996818171735673751648823744666255980259271925197224299278364678838700651469277065276362000867215987871192617957003327653004523951061260883898981220562736250377861414437369163151766994258989564968143406845337602427128356515764067209055202496327763231178586357665542426958266263684509772510878633485591314827832651459056537158986524460642518208665693695926915165934673716224040876583699428350611773816325735119625596008410944198890664211803353208438948392593441350562636133015151644189243564975586326383525900562186687502711860960461577250749788442530633850517490140684957138817720230953470702834931305255712349044849167119492351956910329623616876283228818463262890746005658681985690466600432123530265030995818851424213893043449555985507551992635571128218085501039724810335783584060795418425807450689517440509489166358052303713880047150403820576721359588784140553849377602278551790417637725799601652587611801464592091995703830528675250453374446878693403275764920344969572099238185784140942669950026321620122360793485856622357924132285113086743365676598309625380940933059850722117634234148114968518032981451066092092183662804310812540831353203449226680227098205948849120314273523719511305513198146600464497020552472524203096508703925368276923049889547532210852637398121656158171130746211894159959758657902810326229270327946646691877947427416898559524580593721858866743144440062509649683902918394911149268402767229459439488043140031964531481879676987123577166325440475582928492223075634840439285266772802111266261562506186067860764152081481861985975246190071820204787068319595407040141577664117789426403749413742200575173430865450583400250408964297464556705803967336856353857289583929766210498451327495533685426783942761392612006920480063584305411541939272547813371993941018390130712721954911794303080772192235866697627489362887137926548708592062118852240561029761172584855146384732550238242576403958230235277160801264879675929110901678393381653557203568529912768206387138545942494754402067198745315016195324554045328159162094279957824453346942111304632486786920483261991073010603108599713817216807443648698995837540946576846318608569473381686309483826357773803036751032714165060300746467885683237279793011925114660773424910258812404258633012236634141287897675685499137912015262054936269916439519433234130392957565071536719412976839209018178265912597560752959220178415004480758047041768090566703063367453606950726676551972900177773717009550474139090089101727332027863831531602692362529648577381679465632430834001999059828767055488821712553592077766650444502221300223587260984051635927357348337422294666954804180119542016847172415715071694382698625561079730437411197345342787328184670347793989399370040641611299744613889229680744807961613671919079074628420933137052476112112920385360759350041687894142179279433178011453695181484248046670453653561979942198607121333174944747787972089922621188744003398641257947965972074433472550596140642829666053773510552226311655503540308324622078366203219317196916490367682273880757786011367694015497562574053386564367095501060394680158848702818993658628957207114671402039968615491529839146295683024034387650296713997581758517780526185534319639528116318954333159260714549143935272268760825402536044392125706269747127099262519491245418872383379877280891943292123056301037483720506073857812776450447103383753597305554704396951506590761333592600476573221447896856467974530670585030506786199069656914178623461731009256214534268857035381605375025191571662129897668709585818195881190003534922142207015012148358667551292148164025396704611047921028474761455351933617687626034817882286694890721545021262288758748126593238356936792457230249663037272412581096062303337111963391748484714110635859460260390844710052171533662715501842874491518548181851963685526686125448326646895071912885605256987786016511824300038396722561204623977113867939311209730045667389642062259739233885686582410031873249532879532271051057939106293407029937497082464603079478163772319505402978682732887727051495845505263510060356242581243190667718024367670410718796376870759292990570988540329210174487629296609218245836997751196572267432963955744238635821467458282363235425687882674908902924864858389772965808051958320370905949270913544826327575477526848881285232039980063372217901494907018674375878801203461625001681782366950047082933390836868923103255951041570470809164523256926221691285330725482809007721430423295821158248391304494413223112565242864442909059730846354883910438278105109212888081366440005198979685819370302133271201930232621269861859328184721129102712315083286954890149333041551654195898361371007527958992527520102086681268086672257521608223045517069770705669923661124534445765521223490564690794171135012763426691885703165352929551625162542844858839056011731160653460864471087871327488864174664360390537958584487843227954704839172803654247242982722829770041458005864265257471279773867160313686933451279874965249806537258426318751667836353790238447559109369215484302889126966851632365078005729904283374671500456401715243898257407559381758200393203796009061100057930378681364299293416870974682377686517130663849602344795675645328013523316188689419769782256002585167013982001792779249395573928982661983651225856164263492614499960342148876572693583899979816380929740118511390818896621790032916221619674297580132363935478106109296942350180796035261761369842170976674614891087486100960789267941121349485510786394564962595717628669590749490486530043392085660375128525230264028106818667144851249280139256743960708362368589376451715147832520248278522431666241327756581763726437418787970846043972331055625571086894510753164273426341192189722821072348290820290289664768819450223706089014170311960241212671606015428254099583557014789324787887971747970917736689201156623942211966591446141533083022721683339991977613948567714999644860488922210383596134433120915623759988134281584394134297158099159430531006725706502447310613164677051442711289788589149357872577759215273847335238992581955651195556319927009843046763049589827046703312054536006744544390202571261979926057417557106437262546372775762514007529601947076278541934761648050575053224879435193964991511492021476340163599228909385598956306416136396322497511149387215593941486096430995988291803900388153593190078875326587869225348557253421003848467662791623108354905410828360674409408988566363006218304983593429595484324082360235475636658743437995519832980966340163110953257378605898091127879648864018457687579252971589773637712580842224712969173332011421372469092687765842307925600715752695399161994361080387805270707145811430958034851098602057484670533494111567413547505646921360350212643668460922279784561970187939652232111490580789741559383712402286250792421723822706185089679959332951984652177867046523431864647860850794117003005321224722029449795145549511614189119950392956421712531446413526510324556979377868588277479848922620587734950383995713224905049011913897555871775109504035064639084745572951088529174933377541079886062442828427979182144155539559733335635265968765892195498774602445194853211014373616592489199719341266879139297013211610709112995731330982366619420962805321271865705632178908933649261293285486893309948205833162605344986188313834654970654880574885671284539683231855746480955087742360842424196296082517642336556221637257945095141603038578347095761715228556098081604002896774555277193327715222226005845573747782764537820396046335330379669803389809706543698841111497525082666718477270990251811318444194937999426708507302545657689626812883281207136191581876256970619918719120694444765856115708094539353028622511764766464179736616558328984133195586028343697843459581741462996574379655766168672166969408036144236092586989960380567739855318421488027890390755330465166719615155251569524891953426125251086347328662341946379779356977347540963518862953483720219086231398013209517963498180886943873861336887027197953762228154385462339306485830283181354225751108080173032105728998938875715664568762511749924706884305989347954990078973298829637579332423161994896927237696653583797962147622907638247930971966405337192179057293811921791502109180682615461813245537635948201328649967238848927528190973446486695659817942536319019024001951186731721035059134347338959959373922080524949563378854663378307647168241500185236040493118736613349113120857631326515596573524772036626769980120448795413186395978447344191115809711591435430172815872999887225365231163005731018685077192608376251947047066228328228581927051988463848765802849083800411363708536499047619791034763646603730892512272842735663046475173236928135137092839136105702577277241839212447289779078019419826981928299974176962044318408398246635899675566823504193139469543037048519303909959213397832862124486964715990503262248979423632016490981804258287043535048241878333238568983709228090558284258311799992583759149575892539569812710005187140277071002503495199218118830722456888225308216002243108801763567438130370368906751700731633619722065985867448840277483772439486282864544311765329796023112303928692137428654049484358462350915056789046871037164177051103332623543719280261792472499381980664859453040532741966089906735843016263226253091513917176945747381181933576778170155057910379306425569495143756885968177316722841332474474455371863641873416902864934290829455037116426127936175229909499308748530881489493368786874152260025463942640227186101575559203511943164045097222464637076418401945724561277407357802123679784384169179356170415803545357713466479944376730644451896638063528457158910659183142775686594618434246329522920396821673693096439616427545052534090709184940199951467118443079660017588111889304998585456597882081843973607647011244823805772005622274207569431914789553641726550468865352539965782212760066108202942095399611836361929424725449918735851810313445927879744928674369480442506092052736542239924599484631410605240625713839587383952784109236517770444522600126551725361878764166567741932288738313026715005289176853969993680189659813129521031242916474847054580292009183231212169101299247270205441540861819967226157118940174234929855503023704664590907175125449551897755785709571341088506026469291189555398715603595251847652896269645678546882716802798014202620750718281110856729203450120816022836283200784007659704923102040667684749739910102008767122897317236898259085117378343466171817528553003164665945089858518325068948908933256901637200389240089774981676346949435347116576751215280678468096492420088345510205073956944060295011095527106606043256740291712226666873977317123365388812585738259989164538053139394660992521995936521602525751157412717605215064297079650482578725870099991229838293377662182751654887292083495692705275581194056327912600256171526963030301134172950897077059653884785179963209741646429692457394645360877451228921551788541984617480203942340163234885681824103625867617415930342261403653433108953551750450370795956012878145184122944738073845036050663174839059899262503430156747545179643820328865622833151164882542925510647995417655930284737816564306568347249464091622863984899730755059452516119416352450018882179207080661141052115954415441222613020721012881875685528032505493782901400343533990387656962572956796727993755633662885999057409928933393003031010919645312939469872904574283740984538211986512173968733479244130735842405460933503145398981473036037801284199685298910062253344218935243900607207928208084158236593151827200382746098801199494160641658403383108274565338227649135497992496984360599117614882965501331857972422949375844452952119633112005068720654163743461194334712468212704639482846337229485679271062466907338618028874322642074208969869780592603360378148682638948036873599848633375561248117243302494677932635738784360906553698459721214784404464147030141112557825698965962869568460496702201365132125011323182630089288493739185851377646966298307049779591402056443053494846634344133973047171981002789458937732229923737146194227865132634240309700671892892207257929488357456972073735331992309702635578042257560159058971019218738041630047010470285968892408089853943126829578724116263239470192747179972694025829064264583179663124741294828742169544059143654204317531009883865347072827906229923846525900693972318938095512618737157482514397664342295604098712856333992449316664173683007474100107803124640265933338854041924276279548269560409613410975353758593722427607479351122207977173381590600063738672723507690859404501992734044921541108529867708919237536771529712773098925566462816476323496158460716397206444089922308973838774739823517106643934373753010671630435034104925911513224626684488923147432812795409846332538576947255670129212549814762213263228707923785807695216666060850896184331585236750194511441261697734681129552099642776659950715196560291143235099435764112692811798749144811137305870939989125871783787283534694587504275647787111298605444719196466918949673976860624838698343968265159993435817020600950858229267820905504768009747218186627597989105604084930760097103046018352372313866594370642856642269739874872166086143655985988446780963103244110978437537818227950109188331558305738499071231344109125566502744090034509534417063819546313049918750353605252117294237418283324518461976702122307546646650100466149982439320849383489454813399262751287884317593145896900903491999710748699136368133497841158423572679763000722301352891324682906279711858624948250555564896483343744635405823970546647646339229246002182438754435388512560974421621591738314853007784136444519062872526284623791930163445427697933387215349035719722614312868560227110218242514661644677441031535059625567058007036691399316537409458826777935284029734669637031383421101617013146074364434815663172828400683736171294068074355424217968131574955080144864067786002714396935600655522515862223749290858592051553378739601233221623192776373462649294082227684254973333664036014512623707314295375181198038464199411436662350541149431878151936916669538340658598671079083115172820832967326597094925615222387600028215284387540134562864099975407919753478557677852477977730686923806291034237941223211817932881945160870645999944986110317892994638137003748851790728400820991000539112845367611316726585154201173418360896192313114504493259945122519028718386644103511711822651908392805616388929285050068726460155820208203112936372761790708397546695855704190828984423088267958772842446013335197670636607521415285821130702172235410255209984723582179874354967986562313732096814232765812428554857582890416763741282757762805247388219106374866551334129975993862890442202483519186025239654857327355525193893212003975053091982837461675880546801111169100475855334880129817556545408498325008092632120694638336870677775912399362789606337609434627349749599443241231944055267745116589176698967559518337039140581041057004735760685627301413890362238337805598536934354901515710439864660545705447891855707069474903784481261683094634821857866563949697101959400121182174232707553013198725479665154371491398069771701428731362528356731606365066361888892224440890319866744807269813023539526910125864068324121758631775053020102159595806561919755920258189438583623973730505187405320924812890139805403660118896720689105436974227622744085697996167229335031733615453775755766726587048358911188654003259749737308421707047341856257081701952196242011590960400109956306899094263402701547303239963323139329565379124355036514607463813234355158093305694870291404275142316563313177400608724844038144937720642519700905690539442827262762734792638960039024974547922684936366133011797793182047339626669332263957542509119969788560784326216057429610569160258907142143908448552359058440536296939215982412605287920603151228711729787035428037599265863311951815330346836470471203998959335880994669397212653821591060375952544441458345042257251981576239521811432379772196451476328938953375951364462855587740768936991499332403525769253314959303863077999108247318848134482823585603202697740086941641865298886820242972624480274477506071757720540158493502045436015708425898003701059263316749543448504333450538205055909175098473175429254309984801884836316516119617512621639120547943811333326562415210986703156524595059594540402064431051504493444952760860941107699637102268632865848881010220206596990008443062571148476015159113473583053075133155508655274335438790979520692892139731683457825425878829196424970125927613209903214975363750113865207289494325524403348362854163437031630672626230984553426605629069849880083363876688861224105179242090060798336254136444343971203115528192200620916645139253789447665097724683699891212947230843282532978346839736586660799561963573394838870698554967289747650486970879475500616487655932278582212543028747631041214719176039609128460406653732865831073937263028158089817363666389371320214255745544381135634187433642876808504537631626967412591163410243404640000329222332979215220360997123742084713303355079894531232888103179894864398875087884727656200141960745761053715567567426336422707407885390848816984597571471352073091904506196506903551955599221257183558954589092368315740851541756896709755177712107905036128947668888708642665665061927400461934204568371271207460528819890366065425816518137524476105668467808351555461692172479507770907607580266202227986854737860083301840969345331707978764099176185212804680454130245373695821617554189673990203476730126812914937203701697400590936378893803614739909622552692208928989506455454352838878092583029814607458092720544645289150979867724854883410870681135740533797004655787471645469086769713881860612358706107248436956231986472175966746476672622723563445034718519261788455321862434314865250776604905854220199081237657502595842098830791698745636879324685524811787006704220095502241959394432253535295071168810476057625100194376109974660240402350867596350841785163377487539649931157997527740190532946550363852771760126042966329955634887279239842940454981928202903633144296314056423900437536811118673991702595174078272472484451814650169366246433670369071381739095117434852282186009173666254535905196429635589745425001187203737918644745237458208465478518118164667932934406198452706785904328931750280416697651893716124264687618252755061533472161358382220437950890939068002403150416037165964438824010594397040511850532540563579577311988809846418516381262284306471675429894054311023081858893900399980361299352095787777378067653932428665824897279140304303920110922347546438335295415580891233853555116851549436252006373520422351614237845119423593535958856559837047910872160232388353730686778213114272551552721773121330506277820342966654655101553348041720283171491330096019634947565001981332702964877617099343627730305949229142558992887427540282919186637795218949402612608887542741008328591505377039416069722408846295701009764879907175224849274120095653828138843337772100637779305487576151268200649262734223677906462839160428176261346217871469680871671445230785166304398681895464347513330174858401218915109132768305334422468924606167902849623118976502772496437947290609998476967841468240351011429582545670277510162810208392382671799863537332464474888371973827152539332353721012231233305160817870075731465567917473498262211489101229433317123178978458707534181135549888687022066420340744262051913298940568790532171927740753978072234988586478109604906504265877077843770796498682567522022956060318858302659459458788689628752342716884802026363663415185065596924333522185702015220413443586052623147359529326065830074371270838077169888448579415211614887321988976952702156811888360003821760038760719206522989784244631331214693006004664517941995983835467598910990503205092114621516557278488901193119325768131848918460953245718261771467545539270853552253890400672898361697644506310070894614230350288904993381105129672917523899546638539250753523745117333200124413096618142147831962057739495176745816643184729179623025909339135598739612218430475954336578570869562773365148868591674949890776690154814875482130853233386080627127670944487953606503797785233091180160560330591310195996839358405644890803907681950839675854838829349681416821272966753799123721922377507793058100351248120055149566911283423813411401958126246348648008890697245250150911672826958142507168042310870993642924843996224281627156596293793765923420794700478043368440109355415297683511094329669774779420136442291269397345186316873453331100027846926598156371148772978388872323379451332685319165071102348831150425261024286095003057758788627707071375427243470496371603571001776642401606465400437536133034695727264638012996333577482048118556654933206742282630632957532549294816617315440477380436067962454914781092138888329481472911241298616421489951961427006383952995990874496090656206507224232496098779292704354135281255239796813735588790730533128530767657477497145978108073705634783897582265549802803518716609495629560420794025976674157668039633029685357760826567723313155068572049041731915846529776956452838511893260272449035550911099122220936977749833547451829628313708959249212704976416081828742321501617641096924248061588420804153798834153772397879757991808944255869373505581873622220667316044490268112202102021609895757619777963438101591825523186071785228110971225030367828378667838610323929509070611941573660485925150007209520145683166956571972021096596120193827450524536766637866046023801349773494346423183099257048749910692237143531079726034961857783450470245291416071757745614392594856548265768650951210780254546884264820558300952846151276651145955059859616177279749948218283758834588724583822571285658609128125878031974714348673768411104134301532607204798286570452735338673073250772035786055582427538601408112936846121891791399425470873464498751680802621712968671088988728870532970347031360400942015039389007730318638507454748642190965995175389842838934936478079060055118965879979437349635697738478265890539268401151459170214981642214204353573035430076499382719855984577682930222668416468578818657196499292970526059735336114798479663448874135478736239059685922101466516659196758678258574050985286370927655536686974402633299587816516077525675590835959358381898257379960637735669384980731705807162539331502510935962313812182404253212499611790900447826289282559407414805534925494851875588983687533107431845903576699575467768668141934868913678274511785503588498043963530421702617391288237670575280816407532803955218463814769308585075466711901940522679530862331991772505872798664822857276576187964863179535864679493882015582835124218298460767035376345177582061132753649682397797555563175757111654440153056856146597439226448180046203748895752378354463967283062469850495629134211126229820094915379563586168588279377260470248675229083616408537613644683784376211968708328926266471471418403802412791959777388225066704211569845196198610700162383625673801377563260125736642322745579994839158994701679308920617521317385376133969206914225619175062783517557090574974093581687172844532894143013083822016595922180205726186039008676014297126924146049228899661437063536227741809378559646877176755427458790109129938103534586099224624986403012370365852734548795005129277886546712702781130817395354048287811880280336780705264737895551708417470675670615959376142640848376150603843893930373022335228426700046485264052385344051493675688581977253274472730137386591463880759889892899942373881905084638510550577889596106528781298175794501309945401496443099021751101371094285215987328218093890457018499568409918793304421462144673245628251347600893823195832990483832224295809006806597269215285035190464814601190076215804418995065577174735298592816892778561233905752759442978481637717703959238719324437705084805453367589764775475372398170062209497097440794951104282200197906313007644885933031344541435361368697389485960160346403115210433705627024254903463180664358589919063165437113521408217922629328762862151172364266995899437118360997545322698708685120511974384902877684756141735986291448146135053740304569601436311475231430869823076109217552252575884696410887871072945803579543033992824483861411939659352353645611018626485159020389550824626681239947282305515413224186473614307267379948468419632104910600536341947702318590755813188944782324531889682298844371263724543630105735842216659206036073288752477941851971935167275825775489696079274229723837766131957516490035251897589547028986812634932619032587142494024734385424619472373570543812258630159279490331854158950471764538204675397681893146704613902566637243197223950014899765578422419844123444786215207446808815306432896410885179430006177741613610374096769021142193447938258488189612632399185471101426053378195018983837624266483572415024975092353479366340071346687863529901953691243108650317529531224096130038765033199159795371786273691338368639027018919120049690771048970739136130036811178179121286280193173243892836728816372558778123595650847790556203525335675791654363164912531806387710002346246148132196565686501529621205294813606004412577444345591053881720758105919304012243481907475665901445316380080081427176249505231648329871275398933434446582681544647981033427257199532870168554357631436415763019257547636085537420783000376768270145894739927963885924809767673843731542893177870064757736718972675579738807070345419582322749543384675703257183371086586220080974411464807397792758185983235947715524589659163979137890533890346156437695334857208289535036195894344699662008132768411965643431081541726144861582060538026122682558704497426565597290000333943544415121543668211846932721199831201249438516930213050963686068503906046537582398556547196519798995292241714681154855673176054361933200449731228556762843427762831621746925280883726359703642911105870452989550179774498077552908868957828310581505832415434848145188218323911370945389472788015127388838214286764902477809900695616048611596250639358454033609062606057227696897270091348613556885349739778273036873419690405085596091578545066590111237901867396465467743484171867436095543562761143482041872746649794858056024229306344201876684800963118577703701519163196248205636938226693634696086491355806925340777622649561357005902755569020689311392707795196163341769191425099887699801431127661183639067543809237650405340680695477073723614708053226208713496931509889937370156523238883796405855391809555852142865264669150525602642869108882656650079967140699240354217449916015571927058456344304050513400875722225181892696351220535202832855192334692184231204236977105741592310496593746145557435445079527576146620462083638139295067573297249408345777851868064114401703656086257852061924563505983498160547112078367353324278567733682956916784233983910232690403032078199171536157573977218050872043287208209453441664533153359038581465863084181010408391395355266048439306795374122749560744551706847872435348678607074708812835994263914993760732529602388166734282967043020724920224993208897183479629045090400588448589388937396655372096136047140793526671150676159482463128374644107664225700179889576480844892365470573698449366425983189154834777179967505148175632832130274125735264410609154934246355794760413534859991536582122975937430212974026869324099025326969023228521069460347489552786705667223777831269407711259905515945160743202382705798495647834068597226417184457302598856709169345453419263532970442840934838302429275622364089437934935018430818233456546006619657873713809419417370738508447394204921879598148371402004281387026205230951109473351411420482178955828257729448801368734787350316872846892546313636521669511695682189956710179172841867753521489843990979539596889424662139651629996513894707474700602949226783000635474369419957895144472498147591624102125935168859503200996156279565845812855297204579718197635185485175106166037013243176847504803341662924155313851243698792538491004311339053493659513948276953760083679437910206257984133758002350187359290047705729004493770180574023889554130240755833651704195806586973344027385051179617819191410634377122488923205616860374779273268947662786245255507014183709625131409974726830032888340660713437699752762388373276730813837421564553846863283184162501216104391042590266627447758903152479493955544640808255380266228217679807292862776469303771897459004063071949732772890166924634159063250784499253690959895341898428956267289932699731406837000050190204239317403068685120183566823526616966927806133344494136782709981601477131517664044845827247814999278319020615676437025680631548431599110458198971145607460981052093852286507122081776407090048914565128644661655004774340675222902829782923043206797028685415586461503544372988727943437637168280009252933274797324018770868103367616201626212043727185283574919194820093085249720669302565841775700275893821721008187716626018457824560667289970014707564738085721894129190396103263607361487182618411548341969775786756424588692620736084970831399107144844675687891415737815261852730614123726055608416782867875591531583884976603131203072913065542424927561148179434786520068487604790951370106348365566147928208522734876363414213710948193032149440430786201731218843179510879656259880627310696017057307048713299865380723158484846227663952668960689794739072913243215330098750657776875231087819753755847512712967537656808431858188267991217353522945903425290875951556077632297099607740194946203323857831105010294914088127452020351707142586968308580148205113704461651166328755446967132190802491016065133418157280292530665712986018810312367680916138142790807231222831130334940057021073600665432649518524738960328503854736357676947007314850778968234252544290514362411301200925986676498635548259568411856278197930066692756485744816133860701876011033856337428423187815256514955088296043589964972843038936054838968827644416568700434752580868270111776776652331195242674856716835063191489462381910364461958904362356781146609984060661451478883870405774282698196912384684907539465764224962655081635868580189275810726933767651381566013456631378588812495333962548474693843796362418456240798352479494120479491279353217159097778740320322271707481931192338105068131606135812748006969152588650391844148102267328055418468200132264973935507744015196778697853034488494523708400755480816448976265992673534733453930209424278663755512749084120684581157631494627652806965785603783807742674352579415791228669834056471874873165207685454822821640238798633537591032510324162269736045751305366880995766179238850874603022820450790497367701877953659489589781008489566361324310614774447380585032534811327840948608872199911064761658810659785264116211043340192119582758472174783181764286669086385672076900698280216128737683670572217877508781251322126564420929100060609052976876077418221168758838197237396603463425555575994485719879071195125636259838169670803970327214848354478901616475268678865234355583902351613172458404362236013618801445215494987502482116989769339825324612623089500812618674281550662397532734440365572612015136832622872183094542419479943325319138407319744222388063034984504965425475836916686433041111550947416773716146918186869915829545602348448189092257843408328904284668362653281828021032528465801469081181886917558072314409319256995481844622311921909543691460203236380291251512719077388436013003646575905579552516585557639819578889027846764696348351985316786129801036498100530110229286207842056864962743492899298246834114160260034237390990098887372067755049069365071960689380160881808865360401403215353835708975549708286811350825897319587667525478737492777959200873967311425040110422070710684614921085134861738277134811259077044324060956383073148210818821302190469679595054924316364005524450609277944122698321173552289064981134464747681897272353006480147852869542178310647812186403867499033175481381982170988059004170298094556804747378283173339057452778929890666332797556064936302253300216714326593209008371465036112576233669599357924283204573975301394684621608611807552697136203019109916586018557630091223334295987168559358604854911864729874294063675070125083855878524281576498800860211683795871960215175885057151898137969246300312808761554404949446342367194846517934706172442342518749973542042922813032279831048500972901844499793652469084182314631606130571996964173605601548499726307119368375730993238246240679747964185997698065229403795073083655682827497474370823283753704031069161751976000755889598644069143232772737722359537708484356977656461569885189714513316208782528103431654490606404379212159718975619095606640308838158767488000860758029502008375937030541971614369812451821065508943171386635892422551283120475328112521127781329858626128953562449964329077760331659910209022493097276939734214870003768097907129093649615540882368534479129938397766644820582141094120238394498353446535051797286950709698369832474048621110145856845884260174419024120739686049100998306498153283640687488588507048727972588302814674777506610288198345590167961260450412481135700384207408845404409014613206689151416863240775997256939893726153802400383844966130598698754638188188072459448422404982627205778516250668382558881176995159906814832612113605033559933612859903780839726053258131694387304926866438058267589558474297435663748240600168773952191396967955519529522016741326296113863011142915221034536635155660037822805977422000285574971523949299604284780097277770194297935457009221277811855222686623358915175180768488382601475916476178520756092366871091287746163076011699941871246065393447557889385387945723986615039666420891045908917103487174074229673723285302212287932646673625074680116122016957000653467553728009649804324652321246496509579833578181978554582492130081701233085951581985489296153212927828219015267184262258829884490815767643013826813466250852344359275951663042400711296708056689488875356907598834746272526220949773169351671884446605134044850297890645709092698324935967010003411756382344012000184989017061410171240906812803862410831693803097865268116904868015200926745566900402779837461913145893601358248802328635554524104894968758347776873935597891244896451580200482340296403352047125244350467907472769218830194141553049168241162210812174330762248165474995092927496023666514274350377691722206244488618245589391858721528836526416307275763048992676334770501305752072666352246612739466355643449924409231751696214104203774183407165279750220110526682670402695954387546305421325360877230695246203651826293730157665488501730088840707337199031286623424397558256605416407847354524571797696819591658470348879655391237566956662664591066619661093666015802288270799039757226633812150803294893637420439810136816219942828680602873990505156399673075586935478698480912437295478516012909176888520707114261475183700682676229443916179754465776775645066649756532492612618340867488652416375407104278690570190153200402397770711509599306016194115754184308424776184145611995395659531196951045557420923760090282099331123920635353807188918955853229089477087695581797850949364701493672150056572960062373351690414811440527291929664409063074381275482243330465551952261902553711688583447657560464278865085914959920842702075088039009562588894405961958130557664006474177226784251668751743006933618001476774218807322500836358788983808468058055189660774962864875909918080946412809051600980869630420980939692387776464446152322643063705048927522540388595805307347571828390644733404229493426530388870425421248805202958319288484001950806110404915812575331387099025325126320002040181877178027747509710925083933953155904291892294485662347717837641728757632713298364448645192909322713376929547247437317345859080266544844270151718598770895930117618159336081512223631770328134649331691140185918730427480477102251253596295608398505754023917206208319809562774739450699244565722397033609021082882836180191024032125322891727987440665548271729877936109263847304930741930833881374337550870473669722257800530158291200267036482103439252439521664657937662801437210318318903871881017961429184081958130628608535381675585741942506560609861730992404169159513092732872773484721150875149608584145491545844474784449837231863027553590289482053662279134664631489126276650325965008959431899740724852668368233911810137445444780952831066678667365688856086489344942091136184570103881576869088773016723179656093233838146321528320592363205789761675099192164958587854829842419998434018695379841312455593145185541020735311155524515211027136556659110390927621142377647598422461141814159922495687725458550894474706586226006321314570346226080491654467932442595363104395994877674040063133902496993304052552086119728014689713119111861780514812801158770992329051273413712994690641421164961414920451866413375432448154279480453801280433609981325031415602945384725776800504494822930585338711557048731890190701511510974097035128916239208668367012616546192491268631018625677752288655255977426481007036533299312004543811481482776543643726634975878346991640768639528725551326722553666074904805901405028092585762903838635584500712193623042600359800590407720454980246362881558423947226143596062332133036041645940941530206356776549110658840165178589093433072084091558314096357618030156207734304346450855199929654495857924617495531110952006570053528876269247473769782592730723255529377422348863607855881290378927801216957933827106288718396187443758628661819655163210406202780591760998081413594636602270000047415857212666629902411896987654626310459569165326172026936343190750240811504204041677888769778223216392554332000269053406976973849740804166908795303928183377619454669451683872442937018999880623692282083197110197791219657775921598444915891458071268581656154252681655947361675587775980384182751010070177621200704017662979309255149904986581093223692632170286101521074415326906958309782502903980621877813037753025918922635159392600723775237334534551589369795900806458339085085077386283053836656860006326178409824078262867233216402250280249290298267491323112129206288924496565154660880151349943092233404700659657692544864247573478817038307997210987925775811859570174400844089573476098163798433812731707541191950273400034269360473628010225206716425385495600353631500565591763388900042238359000776494333817245388636926450374066644228561003090632610688156999826585416041921156756452360473290984581858756605108008356544971821155797259918388249609562123338017025015290852078584693122231210136765619697865289495040320335237326729101978695512493945438045674999141003623817880589978661906052853951775611452299906483021346808947698271675227347109565997049410251926510625494536026644625017043462238414210757830667800301115995177935579953541087775675923083331505612330863469618913981062506946616259330532044481880259498668586746615625264390589617535655511189554248362983758152419929011855677009333400650582555728748413803480727739060709055357444781654063974930355212124083625852871622156807730663029001540412386406515194138025575561032127727204939083958301852518786491269930333869468093849416617611035708607774000581792814121470140364289433081352881818110587869125987540782442351604367925962748563299477567925137139128128810073541135717097837380011602811464809024796556012342865345852423678422540641019917460822592536862821173641529921726468960078257179471708704103320789043216523271376697354167401186321558726366311415997191534892495770414412145802536982461221884826896555757279315795170126033645842885849983328505261452309502140868709402501350027245339108071993344965732576445130859711259713815747495620595589531046610125117000899615834512981795641438892121159254158911148152916067938256544535136244959296559317313692965963504149837119967444092127463176395425636977227166857198579063793912843828127713157105317520129595123526520672767425039866489696700483481127813936757100279750567201170507942343191599070915551516995163755865509474488608311661419710335610936162991618740574712219410027348742318780964835697006101041654237754708793130788819599130748057383910656950059208059173738261678645643892813217420366044023630175577589174287161738721150469078276088795013637148385234920937858041766284566072305105587227604272360184337010490827793517969094617112264562488108120705302622617684635595326452615153613208267130652302778202619581266860935936921547469585383756624586862287183511580992223690342380115866488097952675795052191580222519062876912621835192931830677600691132852235198500450212834146164918865739009862633905946049255285634981208165484491044363573833121437339532666811034975285288212335344660499849140161576938259671745326604703309868629363040659266552408469026321828042790418544492062003452244317662667191229190136610549394274403291584370262343084453194277519259318982471190653771788962115246425770822984619104554079323424661844209791040367617473277882108043367207160942762357878463466425272956054290018465930004099997267462603994903217321802550052936359564949987925811371683176561231107279904566877446827317773270814224655567457148205220775086696246690295061129376717434414511276672796350350824793162809291890955033906625326316641049990425386025469780289814774466666331506355706943442287863849792278679468331545902252817982019702322942922004748070337478853747364021089984530371718484561318170232405423867424901245814347727848073762460505912411542370994723451620436474672937125921879059601538520695281935205071303988602845652643238298370770460683140588671547889544996743179340126725148468563625120178748450943958393993187345556957512251893198730527632160526847053649611519851603152318468829513358183353233395369922209419083607437103194161003229269027360934973008735196247205017332834506522823269744791879603229303793927541655523404264616409351044047308742988712935338482319168974273584489885587314135097623143306672806069184326228573006495179866996205258350122137575794598633621057776185957441160490111077266412799198981121964415514159374906658422699599577096869250058560165793541225790995874059915866071163655502148339519624057907108162390285153500626473909931449867327514427408062333334115286660690798334721496752684935571707283379482496829994696167241872026195406599111144390085462653731013294156491664222445360332508719161384826568872145399740063996030704373216769082982080555009746599732023665188330988891158290579477775951457003317142776776555558212141489360955976100374106225208882122868434847681443972385113875324433880328203496739978473292296995988713234465590637905762501063598927756234075151077163872764689158363598682907230349181080807999913215464668462409274298039198373131158835651433887492616853247491322325868863958655574327495353964689947265336526525843540856031001945371066765208327942014213437447778254319922109079584346134248514094711296993272209565589563902811926927724480348664403214111772662281895268049634275192942649024016486954415463291856734124346635008342013160459194038847941698764938586999534074906105232049591360533533341316444368623922241813679793156303087428408746780376154702021296837624229036304955302796764640759797123346688940663752339579574878648825993409464529343816131746076685375718310967725782786468874055314523522785980707160972917830499150447525851504205513729849964051241306603410997256714097914305652506710526509554043586484003084629974386088359492971627784752742220561343003948220419640576072409600084830111010563004277668102623912474165593564543813764058998456039248080883833482372592240853459753592087144576940330658220402805872727444612130992198934654704786873040444596172999977215363862910162694123131239689728222593937781907908459679518119471524514141039072156465495274461370641355134452400143202348140317594667685849119474215731989972714673222309060216595385460134239752150688198415596216499629470312126786816545780166647992727491439891534468597684809122008546875134658720674971050763755685122201329748697157607963530164688848547839883529602196831678989109206554388498444745521125128974281674216003066744438277890165159752134852103558148628959242070506958399272243588835103659766494743309272443785081213762680231283719477715110192497580535505602073538728815649398693946073073985547743612932068193185014031000122884512642197309988373275982254470877467385048668859870372023901694449358570759265647729423692933532416970580832842814644504460395019401130650770684815441635952553104116311302807554906644980767103323710360410834856289204873227629121953283326796030525662252136220061815189500416213195604016445811491622427136391314933267586239455156533375367468877517214230091592904107490006117502616482107601815221265518919888572739944503676302528349090057351705346708245389267089163178365181039433953898239715527616826885989231831778537639337775586762216765069338019936507175595795511348320031234884785985527364089105253572842442494557697490685555045498962942983730812564285608562503124962918541710530422995341671540897637150095670898415177710972531908745421125426642889520999697908351861278438666159022236430817761128180255307636865998045672204082040990883395808637081798042574961459600395489010987212452210833345288062941691822275979732507439129264348502458523544456189618460596392007770588071434709738252675875402604668945609048666967764710111125573540455648079380083896205513979324742579451782706383426959369742474588362913335047249227272436481179255121251724257855072058810763314384084783226048350846559895414446725416507262256974779928387452970442994895648152180677498117096073087537092712853445018717992441825572583477484119288081772983020710037530971585608776925560612298527895217607929019128198964878812113930532222957698933676582258783857380465084428474983608488509975927710529154703971770696231786321175904056046040713837815983392355311933252508232645527297940929024035406941537811615792181225952514069148367169684067280878224666401002524720462209335098050686274421456566379375656834740514463065539968875968537048452246060809287417192434181557060135811148875836848097292073274897464528935552031382994444537157767233627892875473416939180167189024758118586489261170870455623461758078742095859975458593089806137064929269856555048421810213706448079325855205659484575186472648396942573858947950349042017064455045951730544145846517868567922492580399454115933073806579209333637126376659910404900722959301172250387470381549543209434839904108497412632572653705234868121184919034482499630402251836219496987006847145913049602605626003665941947494396262480882715405365173279263140110038224449334155563824890002688994750224671811715757841277768133574733852373071400612605194890972297860440326334379512890620914622783227034046508218001619568273395876690344240150464761131087577668687256136039711137175376964336337894835113840024574546053287214151855689828078929919630905675067695575537299808661967033485412953687321016625248270029241882634434512983396144756734420729551273039140677813445002090542482662311919975319219530447360003001156369642004282100389776358436777287877697151197976059027541923082724815584154217386433852475269756996376236971003814892238932630415196208064116090790640676643239881818154780542400546814537109175688650444643500020120344667941901302150066413597034083861376734144831578446127186028908773645283612003789498341706007136026319450545454902639828232457837878608713022650218158477983786284308139445795415660927621721982345334924300407759898689036228002283684822342370477242819675663520105978806075549661560322215841456857709009658304015517998748298280987123997744905290051618494317188454038983508133912139432438238805254748574483828300518523771305021910250998969307128838707049259112476231573159318078727236504128679302145832009755243886294672832656994622942505228583057924536968647976576733228047450311718486611758773861768427851692784761004483920047566710343963699798560369879330164610346190942343039868783499490288289013571017846333007482572251573406510595523340379618072798839994952109457826261925247451086446450060452733280381201379998591107432912394322931393276231675300934753717448796528343371120858113933508240620403762164714812590310893730261195524913362780959899345088348278439663262546430120746829070550690548363830969277406720195002016219171266416649661246050813742985549398213206604889573018805621968240766973270363880328105298155733515374619810857211292818750672670326059657842592890308396690296147053943413794588316327553402409250591097377942321639645623761754701822039059634475922745462474106941388354682736264113665617723340702277571323430282057114182538003129947044758571038117587937541248110126548273175194697659551387423853191572586797491578266840138015434330151625392632772565533436843052324260012582875357639562975146038005936400743881931548807254550411114762198183383931460204594601362017964826152277125676350494379843814435748831955551645008169105835541655096931824535247005049792497128251388974024380472063328431525183527698968402739096606840033071292478858218464320378312115355627697864358872127698451592841866019482074903190814156641818520340764735920577434041071840360632466440919804412882639193800698738732616166808740232785406623273389101850281443550083515863157551246866180995825635755421357103869582771411918573533010573352703619422422451170864919605257592913510859841800357123484715315308409824072460487005411682105108022319297392014995542526115326097929327337032243995313160131738407245577139286610430788332285321169617539863418427512937974398686596887326895379223851101897070661824479376684584642620322337386800708290971017919544617528968359085870962435712624158803410349321004735635170357490157689303364342466383981447902353172339017640140711682496669611344552838830616685711603908346018020439895820448669550996319905542077111618162023534325648363966474491323196128164418989031576434113266964656515659218623844962783586936942037599856871844408788526732993196103244658782917845792013036850237330720783091679391123789878799354611477561918363182626397689100629316136281573033442453985985488811962431027764651332658001579909541018485330852365470829604932703092533445843434715335059178229964820163256384204524276982883896923489059803574020072630895228879329040898243575589694904158497008990666129802186148070265516235028464330805806127247830123952307603553966795897711519375709155827605823366791736026051749383517811375589550135592318703852101496704622072581001897089578885050583783673027451458289334304421917410442521778443880678156770135414583377995999118717782339584086049565163569133389697835108643071093524336119480912774219113529466781599334252129490376772084458390292212567701930299699341276936057385704194289784882132475302632204430007747999499236232676414711911431865881158222787417137028086069611934344356681758359109255523240363770834173024917078151583045081729063346162869234984781844687781330049104225269798170427330212373415511107562869674700420000247505331183521860453381719999027710415144868048824846645864319085791785595991355794121257240706678524386704243277509026894355943645191474121689241032079662046001282338274393538420498792310261706968410910836044280417512663370175369597891004415575279976969017451484717271867436331605955948467167148763711375803435491318608472998806457865935573183101724620895844802171780408453524322788832186336202865805062659998777507454011897176082040703661826682970686383230143242575162732755561638732878637553892614326183214562331135612933611624322605517943146633728089131332077571274446961412107135051007784850850879500504613435547283280972570158829728379314536660309952284340475606684446402968265796928724531446021039975127514352052980168798280599594228238959088434642958194824969067106450561176321094905939555068699424659594879510518345882386600868615963037788742663536238408034743015539659647957664876807570973403383421081779169742881706023260348578100944403903119474215530726419414851054899359330288551390972984209427325456250727466358909476817466465844813338316381503504499060795556375032014105114547428307957880437203776165816297672582771801862296096107336291575410534273483548738100464974829524810654902376853914217924326517451265200182405664637715034636155555678194989351394413397390924380831042422942387050475692980088727175381198483488671592103590620509547745637947625070144246111502474245114018288334764603835025251749115939642853307393768442384041778635619336969863448521070317295455089241536193745242586469101892488654536621767687953342364657480479986443423508766410171175113233720557341462380554183645157722088378560353005903596957361676141025694308180891834196452051200725135099372800232938165563518176116178398910977996648215910708475864824469398495138070769929005822741522992468205797347779513233430317389274514051412741409076207331125645251043700418427046870241067974310900218840414568943930138501390120910834975170694576584192361966148681938495230157316651479362939806288797121030692437538374758104367555849024839563939458318817384203313936038146465163525715537551739595207922656778608586674599104514585726115931016600746236369363065982134217386534127267257527497334476283670271145818288168773564418376710756806466374116949671962688192876575015414898074858133742421177575565178290496733379201258473910907792986441728638340192150969245327693222510639284764294689717766728349777371313799775846407550759205350089626469649347765342894608377451381664608364457933107500887358201035337259545661719969654043740716305719803017009228929582342691708562438212555869618773982512926859848555029364582824857434249542208537135280888442481452084527674708443230767874485614165439421553423855235125677276812724214056343146861037479578590914285233941588827019959146742627496124591091969146824625715800421437209659847008715938778168088299729255281439462455958254474975674814711193374620371089142660445017500016263673076546015459617613604542622173047822745399149313821779861113586220499376229675664679286692454626375861027183613623687127939250154714022700691572693651375409259780954234956757315818600618436510987646242413747031803605397328336957888013739117473692523070152827324796509243341746603229854627072332432843020402160654036193631440337899573986883568760180116633877539571902592112138406969739834199970795321241232552239987224009426684990196356589707773738905469648557599301205263039064571562873400545198506519809752090153548331784771907144506578553196994670208899760026794360308966217764677558933253777728604386437409837082151110864117281286200940298775568275570072097228105744493569739100961880607050782286359472184067668980717389239329145260686002510820857033439156753057414406930203589470595374463452584271079474777026244246746010084199202016509698758083313531511005178605065296089502961333058765860238681727447796195180868051735747441742433629539322633304559996697190026115755040749910896835770539063792436221809834715892645074600192386871485084726395295075401299469159379626971328989532450023533922862392326812351732264469740602565670503054516517901601533984274334595712159939955565243438194801606567948486344938381538298748758696318989467275044746338484650806659665859715360565801413139761327483399378076839693921707048997845757786792084774069852213349450162039110921030177675481361911633090677843590261967612599112018636219573647436224936198297320849832637785060135106931781585371648030834220450914303229041729535727898572493210949707146397732727895737408105543535447108357811011434844527344940207085201049138842333024361280252942284731926953628544360404376214857997021502605161406637038409459411890425394719951350167431135006730687579092805252736330071645676503029400078573466071334504377936613748732087245218798167160974055207541530749094511946002230627750885155685557977769597527948107405159368422319954158626406665903337853604376140771659443108028522828405073065308931553834861364711688800110975959626426503935811043517467979830976773217341462409806835871320260821347831398444216184721242074909372401758654621045009353289133172907975158910026454983307091254986993034745478357333806510162466785035032454193740626799071239551364825739266489486813360845391443252055782535418580728703705898612056171908437622209205787916895988735921144310021349448343398255819484158619314971073262441347311458600244982165914532017832199242380655673759524649019377894961733397168760200061645885426466849620115816447276522635579216688530466969772833882293701109976013433712514685879585531991767444272385736933129970430284095386686413304351219959514795976441334326247075644061467733230306793342785930207301325416600097678827566122182831048241686528692371826183943476477720724421781675460105460056979603107893171169967146034080810109806679049187449354361803216562136398392185121341854287613392470646914408729474169346909345039516220133887651112581578325212576372778358300190155117545453705513152845176012121302133338826520852154490620797781740731572606016801353051180233293725792311013802112313072213875178572460168713573998565832741155113604692637975141968700222764690487678546478426137063495283353347783628181242217277037042656970997496957669455351802040904816510720360898517601447299738528367439034243331196916632223474965941063624526174432517278955177594995427925856332318455032866930390917285827056951836236473290245147726758457959851581092001306783755937254525441888007372430856542807205179674906298939992360563081848601043579604425519197911230947142810887701799224900619416830154054848568980068685556797912263493595637660030060724374125621011931366562607213596742879917609965525747219789363262807025013825096643200086549804721148271660242671213280408203834326173734594463697201713212467050319461005681156683196570908595150612615085111276521465963257410495413468297774122030299731999386072048637408483844424456082652255997616951926064836092054655460748688196561395871802434909212018145379426664512616418408299500610122341755472478164998177382707939430126324772609425731091474596218464774678685071689244101671502708248114663240753475438988279446659829501141686850892799402621812493369975629402027995700709151181411386213760379427246407090974460256315993678508221618071578502913266395399942452614435332458151072313671819877884437986492184961591687189684303381706042052731892101899010163992539913914742204625305360405854439343368967187933910655152645737623859766175554460945122555272281795861250224866543012918321551865075320449905307747795766397195782299157394096657414244208420144268568536218146828229156097236586856928799379607291236886374910860109119376794400171575945030026170645231648369476667592103077588684744788282730049804073960654453628857940925909550247763828699439163313594557231529538137230232796039094377662990213872338073545304239739768934810274446714117396255452932236193451854201450962290970000353786767698056706716893200889249446047520049750159999096785517323335408796234914369758003287856227794540774158916938105199331961892784398055432882685834097982017786472608478681941888944618891037828464280065925589952479846566760631543500505093727730055774123128542198687603641820344606474750127860389907796089808566639411093789294559588834879363740714594254082870389455120579354017804574428986793319981512143241519981376242582608581577650334448295127814292026018355300077343537934386337563372552694152259402195805625578142159840150081862969453503813885530956598966337752514042402830765391960912940390978861924813187961022735568010500754161600837459491364921247352958921310751744495434850734956052696302222585141143477554856707456343949002757992568203201857406095042379500795177924143286730377491722254678799807102891353734128259980106387211840164369380712657207122788999928122851835197243210295409778298581445558622946069755973945088314810432692568457683451978295797087746621820333343663915295785626819821935404255153983303126560607866503775668362525343696934275884861587193929130498123527365399623678768685307455637521115137457047399980539033018697177065063702147708846602201247359155338091731631430456599634208679550772816888129146131809844485844058605090675561596664830822433048541940898236285906284165173592603889794345891321563375963231476407839290207338857323133193667875510803098848045976476119629400198650467488056835725948279111976144786662046507085429878113408773817085179285461400095903300546190469708715851288194893628024630852121785558302093308575546800364037919518751642083839958329400189550274682431253340104194529079214172365263674010290047207279374542668776298418008238278964240481033735706174104723321897204811176826307732688261430184862467227626039782719045945961678571484632665476852250817286149504052046678690258858519686981286519776586188098279798141858345211347191051875432813352717003402323611514962979852952568958842052997771625578725508909824177021131611895492015882194563239779123084610726206441527578503875229585290703889248112949417770303364600690558125591706243006800300753730298976264324192852317192455088123084948165266931910271338821542580605543166924316243418420715709686534650727334207228473596805615246838937545669128665142911597587918104427730029050442733134779076633966735375974773193885878553850779096528371406725696455080582737749449675561408773838715748314916005242646006651058778350555848641093840071126866249962623011439540060957611761525222578325696914003301936771881057079298628777512788935231687109016367555084377060502814724078395694868642593817782977162112113428717887635067924135381842842943150786057771991970269601299128099792789372207178719584572367922738728307604995617450294972950081487472129079738484586660769717476100726695056116509005484374352281122448557677586272173224186917828799360409202287141017065239683579623220951983434893969587768166275206030755439493375237722551962878760650709953485177923104373573470291508314159200049037287210826337808554516924379669386113489149336111828120824001459765926922313218628418058613587284527593661484093005845884901059116819147185468013309641031619788988669892532158986548757931362752035920423185618341169384977596837019348635793417707755350661366750279834841727076258484013828014889478058790686200752647570345187893585495472009500085527969913785269182358053810742521085298999966817478673766050409078697223483391799267573855320054765470820709988338586313664403200570140832100296062865671370030132050692966524978304807396814761323614744718412985443359332365496300775011138485129970449189158124405878560324068547804520042611068875590376956967105765330874978564608072251205382800827714923923678255997467508692956510502744407395456086201121510394645809683312969900633334730451141075816658785510093420943125975483892443293059106460901233239962025985995437775176722463688006925041932655274689645605988425605816960614416640481008234167225148766049565836309573109019375474874067719009791474553990806097014356391109802615400710762968816811841876619872049997150285219688108404628982634455592786193668509790627930657887032496962636429457874810027980320973955599919817433736574426609585921661039261034062736319741106062468686816307896447061437607709642962868223226456824654241557983670417532247243465519494935863827560169410492464690671280700793054066392259530462892825461713950652566182664669311874762399165919477426474170376901469044549540235727077696692986395644339986485220983246856970137835911267645995895756702639547632225196318910597587581897904933225936750666330939692899974234578702616290485042358707035322754756362471901975613963343339673366599994167049090890867811189435960593218790474459365352927936644540313074110651247733050025403541380941766177810381307310064200100782800837305711884196994122659368215782190356456672118339627602128742503609791123782893273635452271548161692496411562135969517221672348537119556811802264977046192308535446578983342662449662222490292396932430969853236579809380892326690990076484633659665933035191624103160976379436890582930597491962305212502930843782995884453712097779927758932611061786063949581632350549161654747539065739024837912172057334976602908746010785706237218216565943902219098200533757198843144714278365805795101600981945972855472102944846030813903196489073668458460742964437445193946204413810172938919124844834806293278833105277907449773717750499872080959641835840004259997614084644364875228583781304525612658034522586700020100718893228336465007263032850228839267761994742427541988848542077421298810497610508007119929156257790430164375428688825730670561138074832419268518360866624625776623068321046513719425311715433541154554050542094425246948302244138988945979185886938043186789098390422083803497703133617901103666727188276908564306154024813516588306794053226440660317668763571202360706724227496637884167121952739609615651498415732546120787986968205646810820182206710697232051765822589639142542916361145412731586110551828100180087804719130601922089471257787553703210202100430852149423383636502851991215489182775661688076007847529852143047435313925925196077003563957764776403559015625896710251041092878201742930206374736419410308542470178185434402965674879282967670872599857655530361295958230485643100312029520340216825900331036627135335804717949559205772007752777342830204370622074318090610546626519911227176234005440206645820538201484815880091618142343637882540144934061324390520357230903378079403167723493113389600545255597532654629682305394425430201129330427653594179824445353965714619550471248531148210988720126358357976923494011877025042351330397878841438855536955113869154039111741154773482977517431286659707593800729528039144662244142726455508710194932207886221080340778473296719307922906016453798373712467567219117620308326719907522988017241906280059079738880376355092766108750758619529116993360792837214922367321444473000048365126305239035713952865556933435216440113525018011324558412537604202948488879009542046147979516017233306044213200108801405039533134751687429546764287731369544794550876052293522313953378096585982612262073443023715706645513083887850790103278566248425139030682458394372974208922763487479903313840882784606449694839692798526297571535681438496743132767556888154820836496031735523837165195985653339349270833493036041203149885728397192207895968810260598738788674984897701360517893296349957575984690544146158826170910515434281881753483123866288152304388336974569801056972842642686997427181975769769466227893283935057228119776695241172216086576287901847779791198702626342622122584970926550601648808378835583406130119982836461748725788985266152525882359844948671414215470442233081975101216446831871627059737302945906951450583551236839431812623868268815374682256613392869342408808805896049533709126060466746844231543645329302495496215821750664668314269487511493344815406942295252317490261943589122691099319605258937150280057247419925789949698221199459146663896318942139365759661476968155423537048153056118807016864225376208637112974781154888478589013029397751766431768310515988641799061274877981920595358708574499569087210605257512983064800450157641111656965604653945950583309408365224341180244985017980033010138880870618022419555551151911910590766852716868228490227528161996159642281060193818277516189334079589737206187907495155393795129688273274173785037225722722689218940175035257133327034096604970712482357446265414219169075729895837771919603801904269822325231688064389075807477874993915639941732057289880296666491921371631742534343244528054861089634459656290578809327865959576593598472414209483411103740644193838935286558499087245617464396316745828318027339087254437279405996764180549117616162193332356858770029528415390091877936850610328328451365566277774761797905849923528992997102211732442047574847928863239322467296038664650563529150064939232617493889520180487183146434062764327685180662984236880400483089566709708799666329196819336962696848040013313852558272162969781284147003995800867091182671942718148833216328701061461009175103203175705253809113755921919252885233020669122441581995550582888438086171062278419699252689781375949988000764701815450334231438322850135181409960968979792192271501700950028022003625782460208418752898736923588932733961083597347738036398339972667774106361960526485168968847409483554998085042752494531514027851743768674347183742329451620401774567666271161705295897928622828633749417133946490499899199771747494743100480949519840687090308028634733028305623369198358223357038634048969031815198531247921253833096393501209678300414511257786613869866816184409975575702203238518948410177165658093290782763912548514602068986993644567990020796881389437855866628802415340540271722345660612576415100000717291368376341632759543448444970435190316001387999007793583803856480865860798282297066547293509646207508586845799462352973771650635557261130274181092126919947534414630153645601597617704128941697698054570464431287348721003896451736224094834619290354183838282990102799056620751641992168558788801316062146581884413609879998267639226854870645958111604547872654561667039876801716403883819393651325972189066706183483200634008602964482775682802539372221040829442142692031798584740905267428892880785379992581108148647635645086435759516241055897350809832543762761995431032038219959335093069621721130277086740459564912863892409095234872224383894184511207383334618375182949557552485207480093163841294965626295723451578200828225162096894675528293671979974962440415647734680985611115091865128690614116096768746508120320069227220139854439113986730792314847753186459842884932831282931250926098509064605065880647394783958217930980332793080642599584314760322236129530126978381886028904740651118279952972795631064970333553953532115001715593115081736081087381700506906714959679016793883509008301050100026748968441945745065379737266813190637928807367539990893077125291228305111478538538645086091611562417436182374663659526184260333347466208691434136847056859509418909769665019501248158657465705418314158924038739815006457319092267999430924694269970088305412171718662742715401998810789930158486452213045985195095660411916425216005636931856428291566036932059642001645869069409490472155502457020697567501057554479557742447509786271184124530251100419158486400869697762636843843003812576732884249462332406920129209772664881452603450920405550633996122137195682212297641671044533760947251367713014777902187429010155019516693736252452381043808284576712277031624580818862029502402095046259601107414683839057473481134718577707567147180563179624293197105041155080304374493540437265250531419799770276050287344581953388170383407119622456182426115272643177979499623741542833650458657455244082325119469571638869359080521261591716848295161711324162074220873336592376085438744184374101307322728685789641324630046097076210688287983915654505054477590492279623464248158617441615929666353785274602474843364353052568438988329009308692235667708067941984681763303527188351185117046283346300383534909829761757855269338625508742869001264870945416075727081332253872181208278492300197298121365705953788955318950627688499289419567511187225051324616847414488216689307696431340264731771436094244305554232045305593410957886110040836128912919803079628825212623006630657972699751301275136565969276004043140313294999508366237470738897817709278452966241821497654347704812701631647212820340583512324105153270175358918230273606518401960447125397767127222256738933494580521922795565955192299416832891508883325942742890747066366566378196813166797747573784962905081555925679441465575640317054836225211014800321282960717926186816335137295976572852374725716905485127370118022720454394571127199949857514549496402004024997135764211402730860235609922917376372486260555651025008325249376102613786540986536464110212843216727888146131587676240834617576615325264105593775205061600721290877436886228357458031751223298449322390806398581801538009547262151179832659825028151418417939859118800639062679673591671139637306399715592254684458367864178732614491961410572073083111079922039058356947499078942884125612701328526990068341516880251557339219186499141367038423078436351313436387490469615736806834315652019101328031102103322987834989668932156164777118687313192426645914775422934612392330035211004649365912548915907203240685364645790178991714729465227916753070102853454178956843256684231774753595751990971846406648490915050406317568722953295336501295237270253944497636869941359036088029452947319803284541884832481051481868403249078348977472717614619184348414435643119799948461759971873993361076427941522404452865920142238147350839554349373116791097897445028274043282719555848057808753611946890305734009565384117096946865633184500729816792818414198217389560712503337821096989683765033771956757659258254413575481991707129905257622462242087345982960471859325544938289950251352139636597578024763691304346513944994264964549746875021394727698013205301080749626325279810625085339573634699916464884424372580903287675218549922582083420525065907842736457037631022611927908350533347046913745639820575121256260259545730485168096502866206616627572273800417899637424497156362624797354061642843441737215414434407671058563560346899398444237785228014157270837398286298166219091208039348439988518199018536930319137175442980077949575864453401862134274085059358999985084038888515980068603460893038796126058444408584539712409878347978753095114319214843300036389213154644414937621328344794407860333651408658004416288234856508476098377319302038620794961650350287718989895117074086487617072028182335611342683442921007935738248044458179021047191598616208938636483696036218235195362975958242703927971122621302646360575230377084047693715106166421792291877859465146406344485024882881555096542885057472205822093020167725877819991188473078302791064653473351181541187605031305678352277541291472232176011551012224204044998874971648274854171148368162456631278230641081005314667866390189214332866940783151466812929641695175384948630901393111357112766959048901731349280534913081655778915043724656421189436836257963835915195812663036956525701280087125993531155518480603157788537035760049676798585046481526148473726336542579869631883210362854439793922572788323913062157614514024359790953197529293535631663299467709893774227665241327159041984170129180489051306710300592901810304780227991730613456077230987955694664650376430315455425444057945852007035253012989110732935189157631087047253185887458718400804841547009414260982177401585504744633138668405926260793299124065929118660489272448214815734776319201996046807762653290754888987946079007439199651058641359834106393334406350560010177445181972715530044207036201031122477331134722882070435388572973504808296738042232163616165582201577128298958744297396135465694793499761340184554220430433104928018303337215149112610000014234067875442565490503213359180835577012395605944809245517422548750698252347022853813932864215209585022486935773271978332261841656708426852990991013958753979534803432233764056616673464364709378897930660121748282979461299326233630227460907949187761468449443115300296599640167342414883232014738664630886234493845282222309630089542673639363659563949036479562811339293621162280545600826426429777862477695549526793393791151386441101902503677327369195626041272036846149940595195775841343042184710644025318268738938933787610400841451426325483638469791511670316293807544768607958175383405364316971281562715096821055472940768241029546434387961672879323050547783588478381935139148419538332756109841894139555303685013784871311021440957282909443937296037437276071316035439956955792157383939951949360451232146967451187370282721281004603860987512918977269951700823590153600365642551870847081971049323594743516996351657264809052878796540454084997715921870029961649987886080457041612143370615601122777586086017503987535605630232336278699369589322977120028084425880581971724663483312353726665522328271479649234008006458980039595448576575496589218726570819583679396966661235823556007017179451141731544435980388692669766739397686005333954220701671333505696288915267894217812026138349213024941883407069337863343714403845735800155079742737249114600399465656163391553229446428478189788953568571904083577657104509696133535200220331892354809581210987341100195818215647206632164392673196760259249526268668436734728799404162147010749109299879006032645045658259970411876441438047452946560987926665375799634277155703266361120968709693930496667083438709156283766141115470025348677869435879884585155213616482958536257390442600462656183491083034606440998852195676073462178426385333775427185035262654315671420513086733238506841234765068227737447805174102410418119707702783624166027658201520109229513007717343348248113043070297357673144723714612219682076832022378813406944492076362751348078282386787373160989714309135485712289046183749440474736760156367009778375966498913992104716039450734862640738688435568976588286594359219693818920890373290620388975420444963609609845690771788292643804437026442357788333703036238373446478035847619452410645014322795647588612543242850276732785149055882098925238465702746323897968461537198879041637641392442451389095971328731466832547541565644881641149506417848466994598503840807586720821564236640816915209981356208195738893131368726482957239595881605453196693220772882688938454469910992583356201016246760188974241543599293240387421776960016696230597750493009091978246348162056115180360765109824063454793565760631065375408768944173529024149545165346805095807226959726146276576085170999600722510696046795751686064144644704427192584798951560938980650990755749836304050772723390090943328578166431132217491981461041171984615322870350594383922315125550855005578138720030711662706222907605555110579456435890915247334258510068872380467296923854953305569296963570253724129769550068631453831669891085423501911846458091202224621647916325060385331909007815077390247424660227569349515321536928108752840532516004496222686660030084562896064688788443716657469006492546678554590734707645520643304973878333736820248314501595316700239212355985213119045299894194542572628467967862043887392428665883791749095020829195380554167421541666836317374263042585782164144279335844253545951713949462084354507856234958512459915378262147907738808950337836889322128515868286260157921066931124750421202582694965119343002615380282756240518545548545566645771664538882473672800428771013196208832014197478055684598583425049107392288383477547324401194344423643813719862427284794021159050808834801126967880090572979847868144929414852043234736723108521067640942282671703834693214583589208317183439923040361776175238900888478497054021064606580655336851746695233711856852865152957563404900176028488843410307485850320143171536091676635290821236665703247991765322744453683657412802381883333308723383210931245992913836098819705289289569632584994368970219040604165380310724085163972557119842756167530341927111223065091529997769548891383895172235953313465428760199156021035028779703449639756273499998382720718696994442928243064087567753660546417480635362765671162267761876595366600904524271879273155796125149869328569768373076210196807366260823001295481012738971519509943571723611786562343632877227373499779776337617359880009073341220899582167669406722355361596052898461789830768367509895034161154839034014130214802124818317955290031169352794276777894030647051321346396569293043506910203842662628474302047831943174929280407583164027066661561086921288473918983166824952837619008347549430007347100251837591077024028169515925724633080040862407555725844996883713213817795534431858695021635189711701151824698104011789662230468707369230044076434773009814446035228618180253926255041530366419587046827811168861686265713664399284268896529765285903522022259626588658996837071263114298567246488288338500782550988975561634896712737454583420310039026563034985023185851484755789544422066266044991570475904623890455193345689184265902428737498030163267004983468722963310047021318369034920887369925322115279225547660563508182310478176006938127743542658019102326225755839868343370777977113110857220940652236201215604781230774786356990525085540742085499238215830419683731914159859132401976211928652971393917027901331376414193072319553205038373106243872012685767192083650728195486251708120025686388016992134030580941527119403356799267231655400920032290273920004811398952266031034166865482272987926488972536808022957795802836617069266659587824406914111310066912109912840937124632991686240274637085802519434892047328429696832732487957417850102752590970077236183261931124147133030799014086382619322402351924153981833857265479852677886263488108065625499954775811160463027843637217344417588145369359281763049515219052673230565765021834700461838616708569933592989431601952809398384810322921560205786494143710785021889598653599999798918187227376416896733366372992334756497776706813577578134414068077212304284868221151057985662392008262493291455778407140618413899367958225685801964006707695698248159940904752756689525346204094346280553150523799126217106686557276521354705236953091451006390292407598669496531096190026852655650519258809344422332090272537379580896177349655404031225063314255398823094189717847807678174619434733399937572632499901483236178118808222070927877739957350035542499786910441708348982185888424188721694578191887060975114649191173772976397818458097717780625051013523912263808303685119676042750789654154813168612110563090141190948211512809142593103733807619206090216031271961273201642310608478761571211299648779600966214869455359239449949665808210192723450454712443990597774373781239182828683572702581018637255222292094285914239776852325899984689695920673654477993719275222961607679419638962512377641242204461686097765225120124428549279609247656896094141429235874334908806414449648269568854750115032612531181887110955512943916046634001857433841068675736748783417831993639193492446321048252170131369235637481028512217310114137583361419195727785616423252594969674718489087360636252138059074625399609408718799213168472769175664048613562906235056879785373039500301520985664521478141330099231922113362694972794624501469961276479550688993195794695808147855037460541589347167722701655669790621282223474517946662118784547398323704847863491601878461383277495922693402695308854366618193861554603575017469247613629138406698725121298692144435028107175189607411197127235297399245328066939626772924399739456556631634379334545735273572164251565672498398072178680672246121035837204257535936433235721247659084987157856267688539444238131468783995641237205287790684642318622137653204400863680357436180266156663054821284971639254147739950526028249293886267256265644481539350794424262600538116848245166943335243327453082470167142785070294054869869324437363575209486368322960484027903225751352518112331719472424663746660036909939545318414654703589434692428216162349397267055917917536074819365002582897310607680944644208030689234845048712709173000864353473678558805463572651487059829736859165004959088096830924610089842564220854461718647147189593654947827918879692953015622549184344895972566804608898378112719987878815874865096111233625805574034064397103934482769528043495785176028702403029818982045399154245854122717728007641651865067625462432129755426547614506283701691303596700923427619985132595807871839553986741161898046915106121621571506068331268255912048059739851085430520646428278353155408036836325339543451728182750702303763141769809879888783900317833640902346667095853675322884096276216676162547133935676079415309411474181073783198550295149206334624248563045748227842058407056662172647176503358049900499776037837170180031427124868708074348093870250362363796910882376439578310200148616864831836360765796600822211941658269789389389958103127984488803192363255342818607568015921593732182125691996017028580048640721425140910574321370334888650498611133402799545114157393528642913764404575023741523995307878571412036795221037622204424180168184976659442495893854314098589188859834929839199080306602345144378828567868963749269976648763085750303261433390065159862817880817972954077824542647539010613615240236000877044975427004221478534447314508321942495645465685811226082660917159270879094586681327137740454455019528227123965480065655741571084824281683844767520568932415449673425519891504039768086822292746210703516910539938576312205795696560880016122011850902201751804730087876382898354153512634839541183010606890784047863901538413345076068307145628752950884233125967669512914416392345045684379596273439556881803874597111155303821028165641947840033160208927557044405661590745973303834125382832556710173327036429967639630723839968252013496291479871346524902415803993955463775967338384682522388960965563779919517008596715381911361716497098627230881569108260865416916786688150936613139611478402045242853359304404144043867645333801350820328002388059540823720727456063370066492224077682244548893594454750387358634298003023330657135542183723330557697213510117725556557546046740360509376152651093329163480192422918014280246780235872486710121119662908650408685015520699781250208621532342987378863781872521427576694276755370531289716301359824807364287574172707878366417629510068685367667260774178499871660686588452416530600164741420627734468261204456737480759033690979750662379785533087756834332152703342415566762334635671826987076040414609688417168804776624787082883791936824647820098222498282205977504468283851256737504889043547174639277971913148954331018749900511357444460878508209358313067544745377063481373054985924358353278585052259943446218672560789121500858315717372933709657083437043580180304369093611356881403986268424050208558086811341153880410989290715136219995068669396812309948136801283638913717089113554090781132444450364064428333428709138838466064815543910393517004542924935367167843826111586993434350564391643796194598481556363262443791545829323136413899963555452814045539352123322129698196149514122688101513141796888518291249738794508227742494799142568804750354835272857804624451767627697693968461804811052650006844047849112441664679457072413473315901190640631632065252630965985717585973552963385104849209770112263422487127652904972474104492035175155869306833485833900294086251819842155894781592653940703240153349950713961311798412941837501164258295024896583804010876890790958831719556249886917892134516416704317782331727921123930615642420165454224323079656624421249586404931589002813568836525596137399327515718896933027623692614276111754453034686385112042980602192819052163022490756530169274219438552318942238876189134518753904711482281740757376899531507281702940005189987632773202287456200297553456900521108982031740304068956317227526036340004307565188206911530501128182695009766466639635688060165131215737943100614366579257547595111226815461351108011471829446032478771827658159420218904232079179371827160748755025533931781142614763681712365689388093430221634843868753035964729697881613594772859077432496229364419261881283321164810283620327367146876374224186781135679328568740445325777437761054006959441032501090196351418214198913637801099971665910509444568527419809100357613041978405956083568130427399158896063412017359496194783365329956373047298578253271332740294837500802691610171389720910150607497911732605287559566507849667145288426083749095585588166885322762093475634899450932388221884568894157886158028088972436456862637311639989929985119887163895966486127165521000133624984712835412588364852317899355677825632864322402724883560815419153972781315659452351396051964615679630206890593966163671506862393397836480819656863766021981954642743927058478225708962843391643108625828262783007527849146760491465189356269683369050286760578365296797888248155313175633506616590187559840403940942673559047726818295870423803360767347435526682128045487348800435780525053391935305480454180234358804978575491820236424825296743767485500347726077112918758146203462955596691121400764016254960816280042040696926471821592563596598096923395946042386385416594547894584286369018724988285175158308403690686658883339407596287414812085599238326810657410373720615500669631759008957461619518945469381663244550884651282336454140656353997277706566241766254231804179728527759293798283219333136435439169313937071951489642459956019281978819532786240123619308358082416226617794097480049544814890043114771144050833441251275757566309246130435948335590283488626389006776236571054536625802727608106469659270111092709655424395731112875685332889090909768313795719189476040429450106283591342043325261444294299562103218984025942429615285639276346842493833236289233946655815149959343197713827912333451843944199532377060514526807527018725222643226840675223312759475584572779058951357538582278579492511634815408884373404413830226417642372649813160647173596357302682434509798271862000095338890173675241458369478382865013555713586203244042680416449552909146041300053000316495380702640382822763058764967665535250943661894290326056936787841013767652801589853050606600216693237720929642716558597987933900802972296442520346361392417110714855494429892746790439904133293301170092056778214402097747118648519255821265942463219125590586112754337820818708979697631913180926443075572356529433691618455342028910843775639287721240790077158410785846970302631138137889668929659015271452098671197904959833199363607923200077628514425052659331300997095100506190695713866362997282258494326507471886291407921992336017321927363470280624204955061210653871792461266313792161788944282634073498581962226404769883503521932771668615096847997210708456573876635016758607709268449669383504447824077180608009125304424901367075364377492889776041716588268232795956780814120481856134748134357286910878887917866760481012760661807413744270101542384887551444492200071661308506773832498765088527901089272186668061286778367888104464620583663691942683933932695034192624176952430458546087091884882660823714290139192541938232577482861465839342559494923482388361191754595632365015431110957276534547066275204279653305979881715611332564579567302652101710806899740678010961282512018733662937929690999856201445608775117721414148370354379404158836237514185081747674139939814405564665826255429256974720249910491886352097673204182858323875131587822516151510512913201506974350467689469431665310987514488335567310165745964341735151099787005527779528528495149687696752801013088178420932220517793052603361250942737610553297524641465968300818628490562683263304847759718070187198755733308407651068185500714138634943085236575925036613602833500236683340289004000061860528275385967921372630994338671253937341497573158656266624239684282335678151244555925256382149122546751328995456518664541218534809983296108510339626171319245824237346672755968284156059389569835431176625115868411711721838250544457707851641151455171956465617105744880974214471467609574123337748277467264916816489364758084220035183974563932550102766515636316219095333079334840474557078990269029272325677273615302095896047533003351256258899652619258168863205004939200778352627388038708784869539674737035147640997315246736138886778253571640713234103254721124127551551141184707898035310270885396702828981884376003359373759054751779784701503273159878622070573847194051659472994924400793489535663342416150304873373806807080087512522257425676019008664060527342101470255373190033245788441825929609613324428512243111627928906271494152748897883505656677718008065742555198554994679618280588754850566628620577154336566490467877399014122337161018831890544963744154681555518768505957368541454583736142418107710754401994812782628632500638050568365721999091879106821336647289215082031483853023655460948224728163896557580059947438866795394139893205233548988623355657153132704626562128074380036701066209557521164867251481966798118236681317993110058928381666136253417235411777718112171607968640679579115020569485190292981828703377644085238139616064027836352474316541121430370760602944033408465459108487639660243424812959811550442231211096056270217827482513725019294064010736994970211088293662530203080295347520866595660354735032034740645928322571624487472124709574993046117651313226374271445690565228245313320115948040757042355205667749916362958768111881305331570837471763118230516367921086898552143638491240346252266185997209738570664597704009485289871989259418054400365260869934562548413426056141859375424985441663018145389781593891907695725214245688696889778100495141409376055936427620041856564754838898680453912148806003882971192934418211644871050700993720308987460223436437064733726666704247608255564507613372111189714042916702806008612080290663701836705489982610422521365973912212899328028608019912321205685751855291322443430108959573857180444292252150704564282221170293496957936526505212512903669553796513194187887239388017858443870297124927240498337040933528633310658947276709971330394051904175057229360603698014435291620763448478523745958817855918353760600264368358507676347148054566219779483936187251287157308415841755847456299827968416139650396916560279186358235559954857070488274708118918285605315857044683132122259283098966622538803422270833502644583288207603717218765245547996430671204689687900032971464875696839953437876278769254834831625812530543538848817745722343041291742294636072679090401171986251308606969717701813580953629214933324601217442197730240419477054146495285595409662882099069927465426338693215723175113218874997528573961987262759779639932070538013227958582096125247891893186440825342564034407522690312389767601485936108088575207844260213262766763818396622425802446366572698686700912971382514310692393602486052745831346810129318070106934392808307721585201482796130294681046175766192483046625948844771374386439664400196931394070991326552428929219133841162356705318286074608993549762933349773838745728216852799396419974258190680190928535048808074117728579990035206103548020562286870796316319322408242800208075998885979523404705460037718408725741313475740973690110790415005305754991431108024620712255817805494715302570590361861901006110579697659449060657746665363991984954317567556486865839954077239639965725194692183275391424785017542248612049861518195547138784756852959480526402511883162482837363051768208423450518462177238594835324191337230761852545448069875254976163051607602204530728475644926813903246848644279042628520181177942068995133928233067043643124441628585057400584048174909863647463501830542762371930806621557991437000577214905870216398575143100867868994946910636546471683312147354606090134144575127780688947595239808325529612358330827618030878770673214450871781051739974008225249159828769476624820458350515747270600232999041688658023838978540624950458022475055558099090205507961645689894826623808773437051508338141460593824472295065672641578043282974621080769407641517141500841641919854156036882019765703193744523537256159755249833675323566372085765715440044011988613369370234506678073366105987729315602791505091107907669458783487814725508148295627533587346125835590421658190522518007575091199457611442974812224339827924110053737988814969896885990515106358985480918639905636198122369995303025078738484032665009570708308655159040493758331391671878848736169228384525213525844698588049409758894981145309013887309187244268429614387053578637984551049283563730784509395369786415197492490911747806981450961571562801764198102283093540498076875429568450084486263419646682749380424711213165019843075050508144506403536244033558006087162317321906425969482882711993254890711793121675431051610699810149970319105789376675493737035440903926837108157164157511251493066135904644485918468870488870167228152811138565210570274185311802740945846581773088759675302121718487010238474145530305840584249508410238970068084135317412566459180707591286059718681560419285959962636944102938910394724939778967046778362593898191622582845973127367482569536553459673183291913616716573810355685570403725681486809650498432873472417317294862927585583124417374755349416040743070536725767329502624500956097047070818151859358458773321481089636388398516074137743804848063842053322263219645132033331631568201483765817724830481624887338300359447804702830092937710493799018949192514753266587929525400999778283970625838252103866199482627437287258327539781553637526711538969731671386866495244253913873492368874730434507474760969268661550086394189872218324221464847291958210366576418424114832262517961183907028565885583195616688641386666660257961066718578490277255427103652797399726060971910984249731079232047366010498804993626193354880170890869892732435321265200327012424099276881807432345052385808648559462255315685401288699559219222464784293325459907868378948555978505456465067720495036651692813094472292914884010004400432884751500497687555135689520740338799131997706090239635517360024702142497450513491349618285545936732507612842374808305653982520458126308495004282740573916673682910776028332001120028097784581096567009166750400753211453598818006678424352953516230811358936464697952609213986016538986565199370152363659445911466851982108618232674388948272278952353092715278395384922105214757827562093798312135224626964915472615300884493065892139313312338453297873237126514778541069423211057865170584754361275611452563269702860643499118035629355814078984910782423715833055667978573221528220313044774972994431236637075280960503341952915119879880486721103462080792405606437934431563038182468058042828944415246169302357242271476308275127375248069396579603089761461256335119610158426360300067716329464306720156111740557005983269899660921542132399186914204370830327375869971379750977496142321996223431818684969849743203661752677299030732526596899717806176479081847606726638926827692033819982232405966131383997741868294664240608737444982622704366680495708235119063586657117178754313374136253908163172139132450608328122367179375866615623784900072603812091907261725707790236969041175742112660353419164152963467641297552265993522046867442315032309178425618071613541305888738042531102736254836874941126028197618972321384166530320542186559479852125570515973997771648559063064818215238482498691685471442677783419946915888946339944233142251189876065139822283487795153928756838031138933367787075858777247309599472278653459800054039311670697536665162375478743336244788378527239359383743438080404297598062110758761008284086764203583649684773046069744092029569867572775017311461929680552834079261696849587721601752402470468056583394347002524235697825465325755961969176623786858556119683013186192782347452604336579997643491152812664208704983792020928268052450241665628124025252092379421890072904105696216721191628213130355069287777435307990960636667654023159604797789712549052090169093234448742022972845279223489289150548978260803852695397771941177693963472558349822335771106262006298688678301062792920492399800130064870228514498636769091916065883251722225009118026789713329905193303399461086313619144244307834656844311630634991633085892334245318875071335185035424718948669993225421066608337016478431180335107441388997455691684833465226627539606981407082704113525823056658740955191224935867744933132062389128652218335208959946265772392393348800487492353486093528810453427788641916098734722244632082283772462341191079531993286742522985384401549795814382150865703720940656122337495095030602865071647923187191477140887910985534474761590417968308950646349734725884009342717163250543996479573314963418090252055933313331356666989325915972054754063753240963432029597012902166421341120235483393281378477166325266432899533250263841154667152909886502748728882601463037138362040115020765278759893108630499344672272788902703292965621551700447782994318551280199714233271971500064290325378926093099369148114354571774703429178918186822229375831369170513934883263432284816502340568145500269283138027023627569907279697691320566515663084664569357819092939961606739539672368997080391336379040815750314637431327526331628498169172546091649379139035585274701579857654322373926880608872090825140240266705938524922010992511212675986261246378249195261616973841083194574516805884078510743011628785645903174589587324946903769485733499250288202838063065525994500608361526363653399486152970154364448843804949142181232940334973278927289849116786376491160601793282134086560625914259457505849807813381238992789936108831286945276752105381520852632036718787796293121066909098970845304978008029071121090353723253641348676380178373022477528916938404106227453817378116837123915905156745226359697568132816375670782834513280282303160785039681995322640278932912930598835578480758073053145541370244255918942079910579284299865948497842219504681219924021583567483845294354280958586233241080744455424935817555927234313325770589173371537288311662313942007259409959304017389382641195854655768116094766710737952107598829625069101765121723734495999755658957051124998326342314631848673372232180998788221142002632202183399963539974920035394126644992640211701951974742968757956111184427408484887903811465198305681108329829646066839225867314818633534364449262564127941098206010323357606902446836589070239951678189072748608739249016754883031608069772373332686140428460665431824112841338706819475734085554083492654153051798194450423437408426903739689275401228110170062007583341671761281791512224483787410360271327479907677724918029306833587906180631239018274884936878324616562492583238070196337113380654085321110893523556891870043204739183216695400068761167992791842841108289229662012016213793662416476013258956880322765417232139656068067130471543917153701753172288052499045588589174419654035568480749449542108569251298575006166431469184342071516848067781157748763926684210606468885881257946549373008074728606421398816366123065182611557389982927909255270119174527214979685193749906663694389463038276763808422083464790705275701823507203799282463588011065802181878585357311293331375727166379486033509939661335428441860857709385856432470063321419710302674885718581233416532400058218354545976457327795011623483497597132055400437097525735437178694524066036762038228607614508868778077117744505116452302833785363115149234775618340400094533796971904873987680224730268484963028585061060356421306980810082533882025851591644843378475154041238178081442653238685040607658990848735741295106987264743575165976319748738696567469483991528837621503027937097476152309346854678816330130595348957221394507305494305729535491465408713563159331254084285020444536678429924543138455048631377207788588363178522100657412300695360519166050823825965525692800901451251771051598547478363835913940304998233262644110450673631243079654923600777847856924495223882628415027591132430441020838447208309729407372725379597346788707762521070986949683150695088583888761632793892751020931223027823395047916547315448807249767665090499329392778327898483639712490551257057967720804796984263259760336102214970330442287051804479155326021367346962466658600577617695665535001403320125309077062836236123671357700461602443077152565748474150790923537893955798412431726423161612762233962807827600091432590304739698476511200021825841611049024531202578512894622190522369877330841445249903302038376231134391891752855876753651279350259979928163197075200169314901675057623858950073739478709666182081310531321399664012057655952544303774822064840065225069543150794836567919076415340124741389710581435624706495471294642911092864891958512473874634321626760870116803422431993011199569219032822947333336593287680206055550904740947846906126289701685685018981158810244946503991088429108175137747730812047550720762231887392590069754220853177977724966087303708697348078796325631091468815937962692178543921893385092943238588654709954832151637503028766497679537736395217405069859532902748778525561485528622425584143613505645029904127873561778662537421088212145905381630320628749346996008882890080843923883295055045677325187890126206473838225125801376778482916249230387720380603581689459101747166265514140621521940932791954002115394667659700659122277314542206860356731542984250105572365156804065855520903735472232187144062183604179756270462858907451358191242317945638876058832322655333832772283026678429664896613724658555635815704921518367529001390473278074957561335406928796426890399198098510926718801461401562108871244062446375704270289919950047759488175465851906724752856702738573224557974886689657646734184563106407765227511795778602174896077728578806770248440580099546973566720081680419173549135153892563727548396259657863059393456643987518760431554325238976615007059580366969704799265665595575844993490908902668125925772531973850077720626827518038865935571852389667565260519877554057056766726979615924427659353290644816314343176002523905459576650602579600189431193805605955101616785484165178160161035494331957096347588180551989063645885693110830560772108179815184237091389364557076559580109447548749989942476399504231860956551526369734610811807858912958798778914283935727987695275468626512885957036198800815693715314977352724273823911164006942783183390610412186026295479318505803001874649770386384578733028306046607215827974898512445899391770917479753426383312950720914918201549263486306875852976102237265505590365905597642811813750753679407905978383489900140199851350170018315705093890423607999446037141729585417063734438466953448172248892669749351485862406891585301894054454526112776327550409915012953395188946696052340452498042047590853358308680874917278362023756539730118322414803756313394462281172469219954831936157038063273087771555774819413817580214869570349131608169357531085137867293502553379239613149648882372642208034358485649470706634347042893471500631124095425989893469580395378579709123884320461932399510020174203900246777660466323222107967290599046417853190927666404812900478978943612000553805027191926292128214863854230612473197685032080325918686745688967783343502429337883032052411326589172209410876140875487181662913182376239421399621552285072310690968877988443380126526153830207554523642578560961193060928496420532007489407732647347073832322997529027180727507588061695573326379753032044864495576249172085849988395597213414403485478752069832799930839544670470411042077622985419127322402711564082730761646977986258945499707290193022145135437171368267690627050153719629310177418780549742283731028262113921336981155169638719159463393672245688250032858843474834070573146930771737030805713122387936718880586094811705951282974271096013473403036079525889804629900052495377723611487314287062108818040571047865974660192877474250222552656979014878694724198839770153930115660008979733174929936731328516077595770825753383174733231525225110765796293646813643112604493040571246490088462975083533671399246965362150295344676656564658036059437335022894009661416719290102509903420322405683702267315995518429695060945491685226394430363411714033068075817293671720090944804804886969818062702742141895967661455836979504287789373397363001485164006024585079447480016478636824394027825021837791097550950942641376839290748117854971658136279106414825166092282247919693797166446575722654493332822943143796227949365965570674512204737725168337042935555250450741108865937100258505659947772767353435437089276109813485625584044176790849519021084874018757941671967069377880837809975319728829062580732616308761594051450697571713499453711344143951525324834041941755448734577621019883870520995311800509091348548960769070765194676435905469218560059514259895994346292629601192367324971046179649890137643421096849634316367998543616427230264391416669104788387754033524667133014292956168559216001474489944499416051701085598012356632085490429478314710919739768159782918571201903171596657833594227613401901408299362087736736261238050054550496983733924214981764286525197346189854013723462541883166199071839877745747969419765465480303574455270731294561404116803170594803841997185026129323423698399399048491361509755807962139394317370533920629745450316435403072851691231142337673367111881646981852028641942578400425962982355274109319336882750893912114504792199212051041723903793954544639241236139858841118373686246835750115786378759871535423576090340532412337195709126190993505894467663204256007465378115989787010032162511127828629162635194839949670156646184723145697142865613450617920678054791257291167537147297032054878038942519479114224845966482459953524706016534498851551256095171811654494097422417976536303497893823152612091842232018918315107858335451936264769382452428870611953523171736585189047652416216545326189254762147633175534748305297109445106779951360823330019127320325625843830016989534602719472314797201997691152281269002032194972547803192675622962576475064985372304265405537884977049766347968007594862262216695213734440178673100980019411137785531108336254626145846210467240026138059760954422113116427561737872252144066628035686666896067897760403552597140272152972493288105392621932911380338386057892966506602277910590042451154075289415391048368552852895124717992580591784794015434326703147473112740845986224555707131335406895024335159421787913436659699769001374117065772183096842295881541410661056132708327317524180136882341292522792460268084143150996261244387506736872695289409910628273121327533752235615261655746704485571323072482989980117109856783642732599369533975212912010501962115078617345477199931682833214116231047081368311449199742696216293155097464777823534996530832288542026342643795289992693137529856697149825143282387856979525899162594927396906086179341803632374098312594456416513659479159759222672061828217896668907022918243061699431249335124823780576677063835057968511441354110223843797859095140505466237289694412667745546541274157461190340089489797803741648048366575686402499800424671848741761601624318545621683626629159739476793764528548355183775245472482960198069786550008084124755241057777548638602193810389408616030286026375106214885849508681601377699707104306030352272382363407562629340392235519715865200751877086267098015813629334474874997179934285447874796929868943909223880420126800255208305502833998459070668791666967487570631089420210081581699756211695041759137890766996628506450071549150203736824814565126394197850282144285362570591621478449901465853731125502206278185246773236706891222218199878994666404860214550329677936243297977453932890181997401331364654768848904507535626810666009579909320068941569149815392615951647356894438828504859880363658562132967472329094039645519208389069648763843253481863082623999631222900228005328124605420510841294136179202859633433027248334885958365752484981872048781417151556692493474109907201356593084142830075122725673831511440013410090401525832185851552613150706743353361407654577615639349326754667906965127815524111382750564103481225329079512355101349437758979167444985887751394233164186461436774865393841252921012747714442395544540828734323859189665831262611230705953398130546181517621124940706887352783803775992122666050725368350037642321302773305349920303133891307414030427015054990414644634450902652965233336385752168566972633776881039358333313626735264846894460644749150238529067668500116121235001171813693184385106373821096416577000738608164396172701457579474018092679627904208512953809796048467026892347984345121116854389643860634470181659394350278740083910705868403985719544829992347441282321634801749379364046798153384853366959744420797051376795138389719257891367459656552844833525171266110969032096736604360969004925625148129218076537582269428222745581873591661560060449837287667869277465463201973666550642803902343437861917936960597236811201755384283545078513552316077648516502455912893209456809862089347715333935908893213388143842012751761610615992702770065367135388174687056749076547281156435724156461106788130838889301717320556423617508976404471545638549457883625368848786137268995389758059801505210694240016684036652214302698243537294931294335056562276473041538351029881109476646127902422069340329457257625790382322556732754634974641026532402284094506925120073904995368919624159206760458236370697509554653524183894703943045395165954473107800632365802122921220457752174436882656581767905716122347783835234850020807511601705466787384393353397929250839673791040513499901351561234547037844919306215929884338188475598784588285132169540813398222473594071822418025654462854685760073305484439300822629801205844978246622314335031027930621830056066893919912692035290998383910500818787855260232806108630493608200712384403211561080247683970426098125802655332406709953769360871214915960967365382484266352884304865980697419839895904771269816290748496935487456712776892025268865886558942527306935626713535376860004994547568099223848345954359803060276369178292430932893254601207589118489496653329613413336206485514582883000774670750057836568447837581542901392174618640176170471820635918459855866332305374925169537473840771750465380902559470117437871111640813158768799668237302632269778950234624688852390245991265678463898111397500146710228374720782035716033439658042105070531741713303062835773310525049289328540421202877942917893004732479360364236299615926420783689903788103290066633233041785610023605634526123227620964371057928784879304423514289002770406120280886144085573432160340763232251376576510834888891374763342924903224419591161901532921041058962266939547003591976796500038468008858436219822359457403086903461405554853119246787174426124180115275168407252673164922427362380386653897443932389900586644833295784915565636455058909948375483072586151074224318606824364714971088794070818838957436112046117120854224940545185585618157172273088242021408476028578960778941424649709571700388213192579965916642825234046808742420145943952957816273171198298923091088100880358211128243156073108107632801859433369042371586413854563621959340531382304498939283433992979572605353310769034857273088138860914122725385926230658824599944113795498364157775965765112909156168632528756476861439177248443834299225640329004698903653313211959684812536730902690881643331644379879488950308232753165499431322921806409060344524588483945389654873529854293384634394481429645540090143190956242417466803125433054314839790667498140301371216356491184777448231788787776181523118373158416046672299892154240032043977778964057455415795096085933398357289573242872615754856616171516274272204019496104218558821243924697224701440841140017747656156086844620112555621711999301469452662598890196866718933708354111364002528248970993689903223165194850320606101780502711665279684528094578098990623204973242561967337500855700574680265894089252159806686545767604151345700891842241274704075966220191858929539752270330446045916738763915613508353017298049126047460257303509611528530863086215130980784018297471325969538009309206887007956437742612818273441357183543010695135237987350171691259018227925897474617379921649347920051353203184927821054649461632370574906609060481084911360291703105254120115040565350438451782750561682501607446233205322074291940957731817835323875907195040274769369683095201047817625185970005249097551359221218217946549652912145340635356470069924229035128373910346508101221677903387366675164091945687940606018835486945888082319081351068063578603031154857875883561666628788555391178081667742691789477101513402882604121297962714000653151490982653428277199606751744876299959275698867818990849829932310408487178102338743572269388024394885706938990371172903679104360558100249409840470743749510161021371948812839095522159097238242752479960022509948439277393278319785634194547758339801596228972553800861474965139876463940773879979566752047906129818961716966712967872686484015074092132304161907253600977978992332594892777843240179724651832160747420126755940463855128189843700814957684199096954166295443492414580908699150124557672653156322973608236914863230732786799704711113855987934209959558941044427767811598669069272925791683847051080936884758813798341110522256059087580516344602575657169184849275771621308462262006354312601975618104195188575444946411889738490055725460894648474223576994437406045948812176170707167927457225937903015421594892526115206156121638735764488332573191444314675655119301279736039173698880327006537632766117624894115596805314056465122444570805199155246585884355133269135858363615021143355201935548142079936922290786187896932824731506398396733358045590412057110851435223971404690218513709164826959318467368772196359987819330735744095603832636684900488760241838152183597931676195473435895567952397166555252403339348246466318143005725128835515656840089765668842182988927203822491611738218658802812695863910442953462853261521957520053045917394535225871904589918045833352795987489738115463357861480718126127074617139750729756086841379830497313252669983088692651540240666102315987646884208724871613868143855207141400588764758300249655377428120177301495419971260786031533238589854369582319828018170641753261277124017207530673380697066652925088302911794926004467815744782398574794964933652389906254261569610164027313149105923076444998657928404032947234688999296914577594600753529481913383723528158343885869934651009282237718574331698614187544193395180581073659781195611058032912099569615198217913108328921551258004130938132603555015140215404453898867891896029611174378291414252765047888538257019782819269982765576392792171905571434389757082798989203875912364695355785450274066061491174384480900082216390324520180515442767230601967479153789539815742274332556308110975937220629868064240479011004239353927827789919313434586697314365393711970863933970440787382499814777911154078777512815500875451560380635497354868832741530353116209847608844731645068446758677161008747311581957365750543957080455030731357066371740601874615413455396303908031921720806418629027294058251102736024336082696221463368512924469890888653556276119164162407356444547570135681540464234359248773685557647115080108482521951202874155733010956961123818414468841596575749499746573024819525204247292959796193752507692080314443915473910682583350264802576596433323966799958702106083127636282313126604920009189081139174904823116233049548306440268431009622367158334654869621155538504254263267692453343078692805042896665499802599707687646991549833641771297943924824846090471229636079437574738341929705730655260006162485579588337282001086814047215639195771740042881303019675271181930454380480838203813363326718441839818519817447453876536611460773570547328272568518500748034373577552528808863116567507818993741299767337776668926109951625272327652945250735617527813255429143486216071264290955795740006795630655114652161300724522461308175522092596483496833146702584407855464513684815250270645970286801481101183726567240247786900132086634532532921957959418457389497230689385921694509942736846012095583783614212544552771537429114651806833682646672555076007463907355222544261058879448972841191847383040318947754240704570339255512181882549636293970263713907200164659391506535210190789502603651445890163858266766571163616455334403543100511274125395597637635483379697371655748176033270875112893992652304217717324891572033553972396335071250018241553188041403794308512766831661362879905622717077532840087986604797917645508991840977110827497582295958375462940278596882562804240879065322472405661434793186286177988518457463257726206171124594072663234364904424030793827261276837034839061560491813372699460441657270535179719343790049920770588654371611158617893548808169865940882564887430419756583996859436135668005631795800262080281324864989749122629058345724176379735694531972070016241711594061107545214387023775880631504245337330706806452629704125150762354046494395373365160154878002966514448586432697691103021435274870408493342725767275265385385532544840108227412686547909487781122138599109412230423871106784047541069682642671231997977141602746150366072451030444413983199361959821110665973586800603471259466565281324989009946933305818299687568910405572808085151246439856826713934041290782117579792721745892136332418095756479604336425018609932731459705844379788982566315193235856822974746236136036064429946329738007722900183583015130646694266406795792906359889739366604508802222537867362586578155502239502544420948534665309198412550578714825121599024902579258537282972800267486175241782869038095254304933422298838151743581349391197475535554954001060515139261553355472571501184507229024822280043587934105261462494346911372564063788393980579280953783026981855740654133675405722439383371593073666559298392779377388521654220439344556729137545739559762772609365782592987672008661507340269521214218614118796952467885685875364675168477302537385959737133045882374943300543544631467995021813897543272253643404589686753792339208326471795949856957860520640707538017197669417035840843232260257515687210478427650059131846768685474282550327225661396127339616633091321958652222101878987712354959941620994098195182270952739363641423624029632920676816043979655717806693065079163829122516536726097858910193222007000998718424044423620790314582500971508795954779521875301977221438664262521363011050539489502540904366244935977959687097909314360198848998321730637000567295814042341198356867370090035364334890187374555634699448580489858761111848138141147705708842614836986129950865773137051003133422902563952292349306353911785787461981880099800943551100769216572330003292564997476991679956292546960523724252538197749760718870841382231279153154060411948270618038084998737333655190162708752649892132873281975409687341570109436081199384584126079623854987087018314246380248973094848857967856832796036454187021982670595687670409830521503582146828298535175706290797735162877093602107757578989953385652952460599741387762227481811940156195789018687441506642736108642211426182386421580187976367981279387486213006270694961114712349978128168181421400852070848008284933928501888608938698062732430692790591075670215754838896558005075429195166445887804228521543681154302064045213680737370176225788874088333110925054729451906032902207385144546495871079558150463411087969398928743020314763116887743665224089314763943759998788140189404402296690725759035066261487222950735079891132004650324964153249214436634143455842288980827495353134730563654490627185106554174209554795292790007841247866902321863864593361738049609642062975906167571936632472300686255234699617710461005951809193691875785815386337526823075473000897479879853864759957978350003181711304618900185229033863552907953358562311132569917614535681936867119092287859872341106376533129138431807154201462859970861291148021105663458133624316147182724969791172168774801342257199658725415021121103657343192230039728004734673395658432443598896948897790747134069872891841423896778555715887459867921225587482082805786081244966221716140060607363722452139038272986570319374931808726243746473229286244731925553360156069720325630741225992433124929839574595236122176452427631463622419316401190831300011350685143461537598514474174121813710205428727269245185575373907452432644230508654608230813579749596336775645137489203706088805863435581042778247673556611490224573446505703732907822909215651056963429565531615886527473541027830129450270756144295876981149126451774805934321324826028468998902550186528915612998099172620290474883264539586903344904959450190803066558222193035271615315438540764520203309118765087671216018867925722884161357400004044341477393128939744407004644719364922930699308175022123846043833188252586842499064501223406879278618368351373823783902375258871032281863627968897628187022411668033144985691510907164342854518279329835604410479545176884417732723218116532487779959354045905795324462664208803715834816172895229035936435507025136414643991274471727064368697721917759867850950955177774630571261009757129817621003833747341900749125145432657324534433301349523624537003135393512328221238358896155542545523422955518234495313776534026223100660272344151702140879767742548304380544775911438228696909270648756067421467920354380250352757002688109040464198863571485495300597639586944493877725777791567539693345631254139723074179229377786726864180042641761457768309696436589501738488840195174215971358041167930130099651878492257503950947972666510740423988854976104133321063968899048894544698981047781856008032257634047443565576224631695548156104865692668894571023883106409817912203278335748655722468868231102922998119529521687659897994343207850675785863474858585620744323104707191285027641929278122777749377724498525614378592182057177095127765064987092637770587974441011943258527521445056177930133703432407411909958108111747051218243832698205942744613580673387155193853781933969840213092994928932339793415844635325461944178886963605278476238390754942366235830991679685739096103833052863547007981213802649494237345027173395770936778318490318137700170312584169872075694006557382611966095940818330157950901861555769520478586457017204366512457517040190259591214963489248731975298156757697854084528520146972986947462139361517583482123845824913146650031205066153345435912426951374873083689742047329027980621822478972905051202374396767890767115331363776875042841482746327501976453044624856229465159804152117043074117228729656491795499575037934643403374965325525238507624814694956892362057243973659163141460016415932676874300521155092334551024064044867257628844847695010737720475597080938327383514199028788561887546584338299485101063838990790833163508978460493085716694642962347865646625316838210595859429051990047572724574082287789913394347444507712459564176778252162827304587048047512636910639652419531107892130733173221283304698669165629497806988061320774111905960523049671370535730009904322389523985004269677602997766295216613946843288460394474553170722694560239982772307646501660628030367417303360077171071182313208021523560325536664827557963216684342656405714362527016375471854252795043194826745421532633148141214264303875869588756511483947228030723120610915000691341168065878010811506551072675321377529121946132240808460325263064509468598946729962906570649467161067910996364897247700702290908039581219822651588093308974520560506558644343682045969571382268116724434707416151277454162258578791499110809930070632963356952505402782148225876084590111867674108427788403302490303807190356025449357408802104316546678167160031222278386511157306023794310417692825632450341180170677798173671650216966983267588857085413273739827872248993716153760407689021896355952276720880368648369137902642599568493869425314257826774380790661855704795547977979487438885523924332150561162156659601420129829894814955317540096079614180103074359069632898475053109869519661017335390971076121934597616300237292979321529833594794292702036562138043905913649758708494643128045096802141189949828352620013500345215805371536838858209010845173371291579443030521745132985548549437853042634509092084047748941899090289961707008929719273617968436138159500080822468308163349419659607955611569919916338975554486877128338565789455556866762745613309767433224434087345463170672085850322013282748021424091860173123778333795372985166256901693949231527607854404810199736398264386541247109565189364793058105488679252044432155768548785459017728605075781886737329295695562081371664820903292965150379873053401885377767031868324046589509003678187795911058250006146249196931588163767086025969151478747091199938092155431062683709403215536580068904998954470418172538744441568113323402439931556994525617403440823996120167767851447027164602647665840671175496221169507277558914880280349142484314879981425696993874919262046188619246151636713500020418854276114533510840078748864741237616265156867672003775908833630603959172255783119161634866766725328748135254068737538466527280833114202119220416028355750332349970362672862077461042394214150756416474617764117195986157376247229414588100480328540972225511813417436461693670468642525231660881558135953864405475542091116408167898982673087777846562814475178802793513430289599935976680130245901303673493716509770908753469258759652193335927316174201199001137422191796570148986392962829829392530995917616997101667801862149759514009726597860393670359536712314719744488551652408290206210349552667228632574927961189653702915514036172180636622547516101385131060394291912292990782260062734969907595663208538106782669304026120882627400987903651034593968616716152440197156714637954795468776609430247511923741860274487329171117567837974608342234107220690964025261443876483186158794526335797464372071772895939983157978962945338782243794645035979928763659511916165493159401476425915867626771495091777998253923874850391672784016956962278414172106685591460785093317728133601771905447859703374510608836684160591842488199954418130357014326214234302327128883318791707502402106944721335216195278437862533002597763150510709365384470748728389228046504769512854385572471796850116225021871686896989075381139169690276168693125882879998515857237299190178304553195844029965498792264414074513062319455652148178682125947775012462357809514730362326309966149732938029599170089104122098094765461895172314949466049793076578069079121262280101273170724289109055304080262585304289513922520432305860628522331942239776451475606846167314199366363276573058401254311599996528829691923205925711463643877618529608761549556432367234190598458733031709697169652613494214679036230214621952756573056604932100746474102062181422709768972325044170029165023923792192070379931468383568509457388124008335314338828378886590985026847734367903390117099235636549709295504004913468904757395988594367707497284727499729246166557745243594598634535251959121846670529735502253236665816824256501273371295628109241115343459640168337016408733146358859223603918324064028244907736788101314287928409808644136786964881601748024341303009435015041542603919122366676357945027702686048941057744016127813722641729976882263653030126966042417463750394773628352961199023424891212697253283713844820376726626094743178143944631253192855801102448730618705820940999290111367019381884190795162308650047618041493897627046760978552133134381591407013137753528010576434715836712313131155240748206800941479648652346568420603827997761007220962729544436564084252387768237317829820444906252176110174274914096114350700905401085458759581217235320499273102331683721241758074530050041111810874593642254950207662062762367613103099093497294193525089539724866707882652146374029235635997959564507952445958524254730333311742918247221340145888324792763506232476156573573977483420869969866773324992208222594323283612633827403905341856078710352984411344291654873266683469094074373519663707801032228269300986476914815680216654114284038879651782963203940599962972536518361161973725053806591451128627145768309761757954394133279085599745643726900089390438295959069219412499238533415247952774297943566258482411262041642807812251673955078308497986725760794597504397587311536454874235779465824330488318453364553145767348658768872615907840442206060116159575477111689966688431909144066719192379001629161371522086923506890107093770588063297395386725741246029905696188361394973107197636913549172709380432476724507178352850619830246996944775475025579559916509300890693686253885140147110971780214556039666624648837026554408504645049850454380676471726866421857302175043723348323634836013256310338292674057293173360612391848410212533180859628120234975425299043479468869205965863241343612456764028752916170518994479330247599516994243743365107243173203118242245603067521674994560291427790229367184942865273770391427602550730987351013121178460215495235600396240751555997319113819083577633911339463334030358758051543495063109217308184838028968039192874251800782933646770696938019673755609968592725848416506801581896119811421940206652377810014920062885178768382551837213137284424179046255413237380260821458199090609946408357763492366877080427582534134403593712073058711580599394176241433449151905871262513253331385117762833460446903300090240130114795136051606400467902967570501472141065171486332452421506963722538841916391062495400835807239713564403637044325742567250002995161532273589100757633231131211662926242978881808057157586901986051247407970372998699319075240354506305007671460289763213874294992601421784012988925458079970121175289324407685180699167383544686501016124416175694529950862392979792280442109720657584375085557460567809482718074258668035693559257838748478012570744024301422462516264759390704670363409337396885071501765566035611443679167601631929874706400361898538324418683814803817821047710126670690114747088187251434117638786507695732710799284888900680798292949018295729458548479255341318149005955378982805174210048475995122809365613522496206610841602445198898857948988445214682560469100939912743027292067555555800580313279636344541848260568524178353113697663171588303572863111864699353769960407492540833181546290151966636585672720238471366882812512694794106199433800457626486608244518620173162484144470289740365599053306659804919093205984936102394581122172586769255011367248976787435781466262395834248051170018363270459451172338915888249633988040772791624742745554289523677323183591486760372477867036931824639533509747687262120507801527608690968891456274030231939289754740400630713263594225875234623733756143689753324582516482456607151751640714760765720315001030406781245948158865677396866964003634525240891965364211466049501139526331983275509342292956076077122939423592165414861285135452895541033814678849237827129163317753149816436999230059599386141198482807084283701058333057165263004207676478888308731563616001604634006726701042006299053428825951271128711829617506691989799829953189366087019504005541348953096454410974089671432922813304309483594266684973499977870487312205702878986268641401654943861294074757296385505785411290279617839983449204658973519605253356051425381650541229969250759668577501432114082893254061335804906726058390732182277562171725935802866289928384301204509551558071908067649070174274631631077844565821414743985096939089609947903030864496953488793134488441833818584098431810964523267472828851050907549199679786500785033578739045607503474966732555571551333131925981582111484416962278705976615645870462805947763964518424964860270259779971754938952889258574020095239927757941982937012652291514045379624496943360651500423985112875996984345351965656111239476614522581867264271152890593186498583479597019045616972769740004584355132805913904142149663500505949292338357205735717291395349170458145964695861635842568082337747252139177354089542139153324963517491274401939018288427073797148104400959662051821841877326965835580763353832844499417376636906433934366423977694648319949568981625884880296904498611941182153980208088476924964712819724988084941690821736555806924773252409252372741430354109572686959089213155788770303578001441155340949508732310379781264448282001617538220345992453320683216957318692426448370740694879578307327102147597385164942120086243353523165418277041791187215129588857420091070127893722365467206458015804496649146997329930510877785088956071066892911438852636720736582596029078326350528408971386468465328014510228879297582898110028785411282730088180425067686474616643814721749790880309135443732602462703117354696597019142875826301972984522662676293225933801978690821441876959789008691859731355135121639810141149074666687283169962111101874936875959965219252815705995750547134474992651981832677689741850232257027608272882257316036016268991021392152776577480595090471863886799367002054297619195193510120654939383139700081898440460667527257709273185707917294349901901352453067099611143798843735960285463266915933872113588364627672132144752058307382077320445048578320580373946352084346134833562012641119262429755779498098711209035808886580550184761257146691297649064961519961546246444493847632719361758078487336945132139352277952696857226058106353305075281225561822898330496793747848979984492991078635701536048420065756737830037140125724890287085635824993671559535891448329863214532471574369091250858937218482253303880094723488138119821892175972057986513901539575019488071362704120866731268080106993889309261345088712418317925583279747323216402302186696349776360441391449255751027303246500340393759727096374356919403226478406861231619992974576941421222038623639806554934875840532018541826773138057351993506576488887821058604271952607212158065488025837620524848410704671008585022552776577845230224080974775431493722746774879012444671695090028887894412274103236040278166023284288304254569100697264645825511893109618573401757324779284098583435633705898513882163791995070840117466185210922326540681248071041701039366100904380818791594901155686276503331417826543561329712409039731872918814048287702071929640727534793639314934607695005945048965206799419465633317175091546763473263740657157911998224102616071871161884777927335116833900422151206222131723526808770677679924736684732314916970198019435020250455931055972847261747270299520722628251124342479198076229613655647558809306009951823735430054378814154048000963736976290054275369340339455234479824905603641633354555968285972966300672849716905062468788315401099966107843443151860080159488270730219730694646395067619126754003231931187942857939926266137540222362513958072751777475147134142793809458832333889016924721906144253428706547891030653024191964521536445545715786620609534483578510706413334205294538008738930463765215363077487003848176281038175878297071116343914070085865733624106820087134943009606849147608143210748968807816150529163071814064324781780821187085349940488235455643442950989868811760471561203852486626497797584033001601835837984938886857263808868116960998161959234605960588902195671785807013655613576591990951434905794116323897742740675998784242858799911120774138582049363649477989241868118005168691046006297498046478665090273314165428568830634138894242891768859293150749107367364107755093422435391234460438229780447804341843981054942129611449994335334589818072002849588973726853063441647504544138186533642475544491486447684611200213721734482912547637664356146728442437735657913629145239352246596195079478542573681172733487152419886573074948822357685788934446149130800412032603837842624170750425026432336565001052881557082864193562203827273904494156717951226239628372328604630074443375864991232518392995586552636843796335954956822154024942851196112657534897095085635074722909256690260433380477931029697695987653845296687656686336842797353624753319935999460807282363940583102862205950831344304060362260499440770177090885952467462480376388845587856024176080776708607009447394161226035640107780216340993347244991285867482208336148320807228327383788703251276996258252788402889335682545920280827018778799396283647780168043156618358431493829925349063355265614179161826753771019000846916112629755375623903466479195474064616674875822291860126981858454672642243118880140503329584755284980378677501110082338461002999088883141808841606646799746236740309601584789126106538916047923702893987338309077078290702801244584177722466033558401590890085515955564551981255163537169126573334941249171676634349384601704381400702303410125589272675795155849771364297372954862709579547875213360885169975976676923019198320940898936448411802427923876482208921767180687874498256868782591394189830622940393567668958215681044492905471950533751386031362563049404550415572771604699331096372319354095748110662299210815799577360386761098520712636689872932814436297012708969303444556121254918295468701911954541723300975940779347678688023716667522735838322089503525289866974013534768230677720343389573440589451850012877479093476494547921906523798398363939026938115955126641815217190634300560239213624848502984106313469588817445915912577396926126008325561779913789105784777195103824513822252106708589474446093064450417010047299345243755265823123254913275855460962088271246774022454124685272409580885413021213768883704078903964601387010761421901683898092205071425204820690702028719028448877760821873188755426649332745904900942123756086152063318899101848461585093143959349725634963770173055325492162423571754918896702446719502897882618637989750369377122023328616302204687652239257594549654202964212894978817732966287202963126275742938916323771063737081989792227926321418285798939183599822746097882947917474477883734718113799348870919229642125674589304378528783135445827174991478554947951506384908113481318470187974830796216631688151449137171407121014637395895021997224667019075269542256893914347440953337866754202275316727785557177957140812420050246135380992951809178526266698168757531810638415845837158530948685924044343564798137028699160851683423061368554079141931106638360049077486382133010109063763431341947135458472607527669694225294040727156379812387945688290974797445225854856932413424369907737067312854650563541603647934527557273493814311003723786666920350206997426695757240118243742773166444460089269590767078641464859428319940812786041865933511309591521849331019892186444373203683314264417845989090999833200094688082078388934460729847405242365203753537986631294442660078638906400703302542323128518468091429619067854685736848852600124892603979351856474648000532466682080041277899395548624834236200887304209682274219322369856891891213023224279152949895375934190416727185244479889289492374847649838144901877909152563356984101341538305864372806232324882954118341668152809640340170389005682175693224487020372469515692667926121968678971016462650579286266348813084906338442289429982153843840890441732588150421495116752966864090191219303859121234609988062139717962862610822588856073939922412675083116540503170349669602077622098295838651500852373585890951739376854342412622882919203894320385968805041953725305772310867547770997850483345599742561949153331625007975832289142514200909366043633144107570329136594153864142105419581983007568034037569688351115909117081501015758178276133854768569405235857999006953233981132493668408847454507701115151137165041200449231563303656879638815772637925192031006594979260291137057929414256844454467489473994959203979753482799397885756576753866042424028101955130025416853469137523022745231689862533412560041750313734012153290384223946635639316818168289227717893809956998327476160061264898895696506115360127206967108651775438053513153230017543545227391525601626179866865874170267297956619240298289131738797320595990725715361184252654742837681705395662215028297839969686207367142733869815421428123511787446944383628391770110797645560568756448896723900618097126113981597382972610350892157099670521167294456029942548421836335420511712031771472293245677048048466091322596450780951982470457261835494363509342617367335144025980061825711546002915883073387921965754095801322990310942149030565864194624340340978070105772697916612630038488899949141074687725435572861254622191408401744841928349091783409713413162040352108088593055809838284026892007837684399805262955224070713668242872015443716673396857366376185412784022710119465827177340982548644392742715770858620015354035914823844280966330055598187377864793004671616227344130951883018528112312438308222122373586504024485178458699424698898605396376129010966496379670262931624667834410885131892843494581836265921783737621248157437533999063175244924746238068831359253141968583202387535104723903168861030490505175985913192683778372551532249936077427740123076072990733614504556268741914845622671042965101465945743575686914701049083110933496757820447598747695093087966715098754735653860036398411987522375382642248057346525716850987988505001077991602499697861172572642024757462969827561051544040965954001515528015757625065905628830647956299316943003859754248743545051193056318846868527165538921613938811326381925134398821342916452133352667174585475030679765318480009291052592533961877012108836551603474548758070936571012613620109137648092265299854164363834331150765095208725788220393091315481977904209402162024845733103681657598741192933459504156941458481215737796042207410978609109183637884142195783447424001006665518157776088541225997888850759940164699212390920732695450274747946359909377503999774392183192800322959943750340160760695023975031496811474346667696584149540508948445975254156283814575802628339074030301679235067895362795905056162368804223914888359125139950740950400093045318508408295595620401279808199163851680349201562789075676873045777112704128823359276877609711958099837636195220085698813706189519907852777233998648304424597893049829893139505741687228612531468842432159952927675908574730800951077669522426328804848599980716421305610814264339533321682452761394176779937347512238583402988476250547256815084650568688140119851651705636269358846451334431096199031153076448662191906251037722242267363217170639197888122313226285024290501786401376947407324143217312968585341965699733902082882436647828607993779966754882219480545112962592408696420963916634464466336546785104808760084404298718290724709162247545656086500430759315019395564264316942953574534497578719229529022674676644386140727356639787347214742244003410387379642752283938899404823244889398933553566494338334674827000796316844385587213097204312245316384690857105635399427272170472411263889550318593544143231598403336307682254933070385383688159841363322471009103310023015663070561124777168325397935280253406509596407425538645591295812363572654893712428137496360210252147649673577392225375030589743312567079756963111598412565702344542120189505631087761543536806795832947152683654902674840711863039617870477884306757872836975828610196266313672550363082921287328950328727686191566938406729193697317577707193779537935106001214258408935283758707364180351463350055000432358250477087653460891332619556491482905287516860795499691870259025922121751376654407331027172472354714516618816606601870934186135108125902388724312309806793101846926651037244256375068348541020684327567027099949156013770983073406962965584671197494939534049912351391418590362484119231619241776893107544972112515713295992554813576359408911334254467236037085588423541625612975924281576953959352153895163340763343057645348257926723934949109510474673044277310341694857915284090752869300149287724461146217904826383055235799145968996991380858809923649839749635370728491370029645876602059292407208892697343939025601980901442877065295185990455548750439496521154241262523363505970100540063324018527213749616249745404045041928838484750133362705175572164083118541158646261689466884588500478107912944683106535819020793323742048705792377723068880438248269679110433609525201061127308659888447383104356681314714570226302572198811272841442493847943059208255493727353735746639106491450510098314774160085930732339502443461783638864742915635851929793935142588710023712814297649356614373769266714727311551248633041172652829821432803878387817193099837742505824827921293004220388355270163640473384549780600542143390497644719240419706249695549479939413034959472403572469303744813169982441798459722851424639283059552819194512687144615442005512058972680649667247654045935576587918069817324053183002892421307207352973042451981503545228060766606568532878467478517708253550638397888286533362205062825763641379095685610201711361342293500319197569684590058337243697982343517021659186463906734439318429393536866601861367787946530737803516847896579172233823795391830963033011052732331417537072799485200688094427140657760034398706933606489746244612615704763240687880450733658428419094056639148495681840725820552733058575450380073639753652399980701027906172766113685167543546059773406777663452583555027486902198624510421044853940743330080144474008752413475589490871716756789110993155056793078879960899297412977861087043572194950222867967791748390453439533340024079263536480801566283433888770508964988416478979451874449583128556455335164376972707699723834460591734960222990376392334397720380340568137018088304328036013733861294457801594730653690441726758384280635925009584972590818130590070662056829404622303677608231522845513174577805500496797323824047337703353257162107281878139093575164101388603430937607034834578743483141326082328700176688715303439949980556659663893477325226715652763415795733720153314861919272905015483735750342242909058372137439319685971653232976832016012501840606837562833782584338003888344384269053975772216098014105065924797572598185227698042750022668139752313703825190417020526475250630707245806608776128770555618674020904361505256857426928018134836006916299624005536047629673440756213980295241196271639451379685841156695422105661574936945159486982488607242697893144539271555980925651251612220532345892966143046064886293818213419899818649255881736946320318696667415707189749226005809049514187581152459084946714616934147606009265412608210900821670374846515474553215858024390305296556795898486751402102561597777733582209841408558852649631318788717680078600295932047849707897776309149375788937539020193766334893919061369249042920499961219973297359117953461344274439646907729261490707965598740897963173026279904799361506103629196398969615730555687394801465422782416494412423273272692912708893985439102491440630085892308414851766694430751267743437152072672535731289975015323300722399536966057026039812015257076529752321597700253737343995246396737501073229762125613073908981556589132702501605937590701436120974853712850893967053541753269217898516440805947645270943228609438204945422132974508068821320277350345391502759737652189764305711533993520344991669680046816524187366018894706398826887897431975845541857992999903470513816579593428528691310873189216864306059881073936676539540556861521024193924205007486801003460366646420437349129210491183912790134679120248836750386608638054304630888871330093631999457820796175297302523382328373176043028335496105653594018791725690781683263109482968746168503046689778955064179201341739671930542960744796332998229018866851144165105130094976274082411300098732143133755374804531153014509086952852729078334089717913626432897920072283714118662222567714533462399941249557414185653326931935856501198074758419881603901819649652809359534013963681034061305938705035441522339345220669722871142512270543479232374092240232661887526616108606037847311350938442943087582941864468963636129471620299344812316613250956786252098767498818513796094766399557475056867016120707873222022479016572105596522556005407381858171839856036131776213818207738425408759417341555306427280785770223882169418846110230922827450663002909840549933755683629757453162673712459664955524047174403266322840187840782945961294601008816595850245407245308136861090694443553759531276691187031823503349003998137689951202629837705053471775831869622074813397406299268377794935563025949205321047514580899671366834300609682173191211789850525088604809530377051960638401859853738842161607375837099511736883666694221358751328700309595492671783773719352908633676740075231131444119118844154725876306795357827768013274246248516673869692589433632408034365523581896875817673591797142741380147546291743410653117266050589322614388134933318331395470276805025298497014526828223211587698443817559996244929983218124511024176427488687856913567768995598672686816536811588589668020650433221454955529376710188436607327966855045470736943262528672420700719936576756652192623983288431652399058521465582419261117317518647185503350081913558726700259408762450746600515903864101153841018209157465890874137035129181298347677088269138868046989001818331391889228573443067484514817153523523134716381746972927992451018891686088768538796968148492509094791514072047300205618223039201853417432304687197183545432914967388441167624679363507118226663354906981574186502555069941534594622384063821022934261971889652012061614551197833572761707222803763185274886089933537564345101790138946578674817454422271891566216121115277671001114466516783310011659719197502541005015925146302013908741186201457676718805532457936298558260136931916607241453283651041988654159472296515179347257845445185615346538306285927243357746402569302277749354004647359037673752716624126765735289386644579660715548431648801972572095695270196980124010400155026076843320019381999292797069108872994672534344170955773032722784132961649031191785645565988269798024361716752905524297288086465171461413122685965191969094176579753863173846263949842546849510878420399222390709106083291750549785785813347234805179894081133576232933124811724655034249156752775954259570578775656388546517348987917670342618366884162938435401858889455156341973433646795958404330402736558219307456407807278485218844672647069575318685920724362653412477301742495033118422088951096240330512806446601057104606033381762435141234450134703820123629819857273585337359383268229601201786387699765486585223769949206062788637180091387089529909701377427247193166065859677311464454734267848507477368073501701746103776523317129544830343799782847138216439811180574084210481607909151791727268279971302053243759551235010294330025819096182018110132407631844959756650510935755928157041376497399574959225462414525194662158145923477105498189012197004136353420308720446339632788823604026645369730107634234803958889732917889179986801855484864172979218190793464356965522236856576474104406806807836251850864757708367185113824461818655908492298607949253283390589535924848710988227991559860555644537530308891263400079990898184072029131155181654974858789047956982991755760565178902497600047696767535744051011495149091446891203519722592443025974984431411803898021819947034115800033039421658840605958166563113193029378966824698941548095686435062527187031852059379489857679431280971870757301931016756627515434782778199823453972991210765272375990964382405766831140724058286803498507553260372129422904493597394398602664692123852122848308502777468325186126118199852895398126997201973476552312799504666757874449570053054218832238964429228669094317601834400768786996087087608504708993262137820444571159699870647275549291302608106896297679796229032823672688138037108274602061119598704585560488176289273836879397705814948537171539518820298565504928791358575672301872193586448150931334492300952881266161019603928468161914722141629657231332668862983967156401404277948358244967349309981686715649201752932777159900124004249886804443340252155933631962117109359402471871367830849506531580695374697957464805540180182413310773208895089849631322663076727190445951069978952002385277785672179066277655842929909544517319273606603458317553291328056559832498184675806334535221523871660637749263066250099309800475817990456992805034731550500079221803660691548356800817623815083126533735651779110644858052550410328355541509878947820559573013747494801522439524895035998515522508585371469826523834024072945409229578188988084763973889565878627401589356483238074937244031948626628133193428687503697539310921266425549641596186507595144666786075357772531269229986398143572931435044224730692111714880532544321333077447501634575415592183260933177403883783845905131872848109442152165620703079576197467493034747419316035368863994289702435065134733357143103055537336625411887263748548973822355660316961135534839686014210416315753434602043945719548800593934395560453601109142078995779296070716139242167180508128783999497828893911754788145328873594123941163810696315544939846349940339527899996218979777752147354086884732481022870122518459095624032122418343329091272355632851501388563217858531355671618749313012547078873326138921097164230899320719418110242317579198040792836319887357338537500076756378503208410047558035437595901506221312851862703687214954294761299481591659894476299683075524465042687612406533915505796129798591503383078324223740478935470055210724769300071201924336061971188706144909051336849756302555304056189811254978431257062979440023262385828610774723656185084299795428463926452934494092461852045034637889104550830649199889776041229641834669641309101768343027692617490689688084527751474164524328462857216106718862206331952662163002560146526714798259282275777381605223125805745286593880509603463599663729388560625695668558875934200361138862020857521871056763350534284101583235708024181963802572672182060229912787266995462031754982199146864302044341236298801816849727724490931738941424164488587557045853721194928048845612835350139586458681150857185659577464147777854433723462672804991944900150306931148025271108889337337626383569849532575453880208929086792862651969468732737024444090934279307065837440736739173585709099366757929214217722853433728354459937358725486412193781041867731481008770673618015532695559452768731885877633736979671777018025794097233447631823788619943946397166623994873892201573990470755274989432256093511975531602186097388108996323477106777906121336743194202008960508904368894228430718251604017495784287944632084442285683343054266400512902979459607165248526435114046506438334274437825776527073730496980241916080871133920745134239430370119741172803382622898039331810831309263823115120112731630316789281284215845147907120607430691304425489388215976702636874298910496294149620669530411021347589625543631601032613856880385493473620277689855219594261524399384443661612883251052986170634490532701585006949132226876016593981329914148770267469181569770863663986820697032925065349418828261179070694320584700438755894926159375041916822450153605126689402432280262718468051128543558298763562285938951265828955020982128766154379832854641591473789437816015061025347926118795455096986248043826867206068215372792031667699166567974756451252627442057036322198309780619464933794597843037563567815758771825933893354731933944446532813435390438538619165797119667158018190433206387744714704185628519284296736218141542663019008031888533425204145455378181082797467056739849222822703517656844863640805949048937318059555464564482093771831250312527971212425847615263438625501749753338483633462608931809865203506131311340412016772799593253411341389027110964515400523170232351051436201537949014650409730963103851089750760720979895008435277839337728298715777025239004720582047761569549436761588785791069399906902373052774000599050306837584447465330916497636473199848798166824803221230595678245559167071855998755102971213103871542443391794905367128717219571895965647649143418331911403015734352991088706818009699182816646168487306943189715869706839500466976023312271046120294439346789981897932667221718549126284373188526796954486456790331286652501737858824604116731265596907750602747971412020767465948775700763235995442738210201064945079402789320240097458281078283061225061891476749143421420567687416242586024499513063446392881213966484563747368827038741253710878859455580588536723379893898739173284841379879481940461551278645088147666715465492879442568734727443890981282274111010011669270258300665081939842169112326762556865464272170613972370288317406557727131660310950867109580091699972644061985209990201089595472001874752491747178614126074791554122131071274270797516835293476934375861851658509739609897789338265028857591988414166246592744914510926557768821011483097478884320224277748926979453005696687964001074271996211131318337910916309660233468220755286245165694835285608636424816847201256289945190831345973323733659550444845529001887313698723863967008422244249325989029911168895619220321958916083382477301531784840811027395118138569048184944965020934551287508525528624154901076639598157227817067804888337891841247721145521516295203427943069875154941699603492464105091598727487679137710782958862410385607971362710191611019901360077985903742790751008703925057042411301020408469673825125255699747042376998589099064501971566638263182049115316468346731648214697905712360500509101768853228927447513566726734539861433791827506745072830219748119344707935555612630232084546731656056406160651015420070528645097973332024256123774131028386358934824366999648057689686792332285420488079502844224714294888631957598585579744549922734360061702030460573273383453206029881148972936878850995540501161133698181921740056551129388256853590739454269383461118779909692492428666458838666264459388166841053599006232749612608425650115992758884105671293048555651982151193695061893061896242923727030121522099680086527051230363848826356569186951169669513872349144384792283362393249146668505809973504561755724335724957361230727835024637267052308857521150201839837614460802994165351250389247504259326727579259238209301346045842600627930386457730739786135555305926737270348196322260201809995873902258128294253603723107798020983827012535142664335100324675085426017413264443398456581780009560893847331933798788660163368161920952806881393243718525383072001581473078059473856193736924958197160884113195897897414077151859251848605396290778509746743207737835120693466191516350685476991602483851047422248171933326834213970140266064922992957724842387605708805214856416516875621650546812418306058823727380750850569013980250235989238618913258220190060541974925683110413066722959174920358159988673200612401803672825771679688386008705326201468004757219876793053853720852781068040790579465445485998381034038053326508559517199627456509040186564682743968282297667895373156303920855329171139369305353737589156576664174744908136980554178777816538547866497785536189905565072240382066922601331985366891277532196184100296996414185375562073939360531839227515044487864733490570802956478621309898022440538403567120058021759013260797819052654682582948539197297676163306090122578281387976041812632827805393434650676158362335846209489461632618855579628734065947445638954165495100048220577417750115785229577748644119381976460176386375794770156845209538097124644963981590548438221039773187369463539183653461196314496517958486970973896497139631627645238239931153079490575949740980748334765201378717180853057628749334047931342920255733548201695057005936948688093942965294943929921256795502227598479664940147379569072397044766311807632725796094106145121547441901094901070393940260995269143732933255581506628932834850815219038011046209208228078166433672497193744680801923838886700589763790705517995761166580765636542154304242369291638410989639178117535271354598200458026684729077203606838612026519558502014658502369868475742098911036781820659139222688736010804638674855782218406004341459730503159584195457683727903822108262165428554421053505659738841208435841249830588889831361601635885322393021617322682168454664788117221864385796438398246275820006295660311039285381019489901567791062986686311332074934075072626478062893142155206326606963681768134689446633961129827921822244439418508599830771228258138112369255923187913136454303872299793751844586095048739503964329537500854162616032246708605420939142075345747165322023565623315711622158731572711088740668511287270889367725795427671229153262910515342000962562439279785076007626032055994473392430509324913598011504855511660112452366033376289997620394324176681704738203682341921828356913007474641050410334965488366965224805845942244791482444720807376801027167594157918743544648017772501473580445792838652614566441043070406904651312560468860067353533250569493590585847380720505261348082204744546049054886808244811641892094380712937760644198874515610688479199843976882801498469923818150090036782355230126468552620873845059581948892000046611591512775352604268104780487299564404536819116155930521844381588749693005591752297630167136385327220769907045572976067361763629657338683419423273260434642773478387643317158245015042172852877815156417449097356354911269702487670941741924617748931895399708233841583231287999947526717505511028299985681186457124086788487399076785572135976609595144490249895931508864492036820998451559849529066711487147491550516988788037318871559105696569319960307446943185428907558891135376131934084708038255582560446132314482165511162390495873712238103066812453910246852267528531417677881909001202084164013203014117411853519199491202052347787367039563381336272645761868558566985877575366178153719819392262063438434525052695451197839250496178456442817347320949230484236027976945528648794455548554998132350359130335026999176524874925199355839129410811276392984098589233248016044595862519564322040820736776453495068911585079518145890949806812136473878644260821948971178889270250117308861306753297142213172202280336502239225512756873237914880802241315449228928175262618654485235222444661429950268274131224834619174544875852015864041948161389819539177777448339977485769684485344068196756855622971634368062372251296580616486330134685812229090166552437598147602356872405667215491579776854462555246788370535736922420687572844318359317006077555364127498169840729729917670573273699662611942420781012663508021797986429890571945476504999163601305415804647149434882766683055256116164326097650113835516211729856145032585986874461871729337997336488574049472625399773329294440378318712074273339477465561580141173531592435838715767723355942674127981826460904003923071922673837132180415470177581371019452978654556810804601113010449337785413738714549083145034562320575675088007519223484702729961253707467554199297779294013683159348296608262694083562140739240948774829747726161892874876317131040532175091647640570694861531081793926183795320345743511746640065410510918633246161813074385288622002529842954507657998379494665382210728149501933314206583772497780782183621197024381679176156983643484913056947699946034236958148524536999702177690687478174818785842029898849589822402178270551914488799696866226409463726526197584496806008183478861062454462081265349766350215129015474232880095805700413633191682905601207456487316529681933496220767219219398633005903713675394137362296660102785168849043473297848813136194808717901737661589320976707194171305400569698925463194430983185262175291747141414052159846253640781850076686700773811554678784979324412762276975561785273448247021536546150277510108402274893966372476389378067475106728403311490822796698811437543368442530752914756205482324641471247549062493944506635300803822793913428183265200191347766570683967958889761918373309366119582139468429168588087267359346611248151799229476481935091917971507494878327770677022482951652716396588870579230182144879350233425159910982518774426795229816163213641211824456893487237038768030096293948253814966334069203386679730230786791490252791912324704593254705754400914384065214993725482758502723481484443372332102220628940968205694164312194862135421709203739158994276498282152236839593685260411720338733358379928791095219739055871731413197718980436239522661916835931447772971126314779327486697524772346214457350664058919076113914889915043274879868449811064214210012366985547317464154064179918432806345165712133984013445509774756844396381634831098099645383586258828611307151747139541770329750779778086973166107849985822591059341395822531583220155866042086958961871477461482746667135071370290929181497820728281830355170221136140670138771974228848304706036150862809502015750426430861214879903221311738680374114419185596725797128572859965612431837258946057475410373841017039179620700847753451565347999727183428987480131696323779184083130561179328899420216483805413475006812253249264496631440056260573839905350696775594920900557895983802817226993490322110692312899911693156217664780008968672443703989350107239781436020203590221348437518293489215281634106751708371977317853759586375355651654400552983181478478136271591012576329925784265441598115654537245336720027591449121676861562699388626578592885491086326631043428067056728561402887316422155764308251565977351114684264072360401709532452237808145467381681522707105416273000623215347730712198197127347937258316018911148298547994596897166286611804478458553118448348014696229881080196381244679086364388379612095792976061022720827093116392656819241810986860711768804542514445269063372900464623686465417213204792856886151871429677640218116647963461320452413747618431721292585410739457365019255617528342935146503128583476408359764838822593966684994028744752616434864154352244098785387052923922126432538023908547511212551231847140418337098234261023527539171364828915975368503466405611082196336278331223410381969860665187922921250620521003908557640608940048511913451330650776872588204563441595554217462968608312948799834519459331810798143381644652946791612760007680241300799693064632922940401902651289191826975788389447545855993737315765701507567813048440666319058725205828008110728725661091512081388354553438938541877698978406091569694998619649588660505200859339576147677837819408557361702806625725003262458385501423736754340739102563312450020644624196121943093246281921274506070826219297330967697555079870778896098210564217709788760768561662327878791003313219581424476116762363875614025085821904930327437185158737726891733564171617306158056121418604493295094252476448240234480913169646638625909518582139077708547727538209394737552923431893320531281261070147560792892078111726791124247004808262754088212222253339572821965124803526079863938395778770684234197565301288035840128067554749805114643897906978844874986370489602016445975919088119683577963503887249302599819649269792372333851948561231252436768135284897573422612117313789439928504695043548351785077656591989921187071303620201993148436790634887159595674635452710506685281348916153124668483073661607172562789285420580825340940384428243712115068269404537108990432144005499125963116766178008629608316697090228624703740706608054637583390062538304321454581291073797961597037082575556807064707594878801810666030045068845638931345097521645279718468408399478603834692000884219998992009372607719355976580838672452889731172518559840614750211687404105598225065619910777568950475572557087659333539815246118442894077572901329947462733214595987923231962662491949248938566874258403393691013914155007325562484449174691627460037736479675125026442114085962892989186996405694108017466204086264151306003167816614991190154951440734727724351570441501297196918436959315425740903151888793308507737589857980709308725295710521373497311834195107989849049685896782956672877637670826152400578337795321450492652073933005788280586591467199696289375194718005286639365414926039665789554643616250102056748797884604608396952058178266566702008545988085355115461670698885616801372094523102913651837979776396641142356508431535355727212427080772286613892929679814834260290146327741273639644465255410935839772800531492509773276767360451161913057065867083224786126771444427662100352035547869044026944863322778157566694397619759242153203192846781953320013113247860341344643276719369034188274410582310861536796095990688557094759057478994460195018156157416901147639130975491350016620674716590719343814579013214589800117436147102894048, 130465887704912818060564883628781900338501734114482297122108025502762710265344718460413226104479893489186207334132805140083026825038306380814531645516456679525878669020127446041057528790404667184524399143297943499849689746988655536917381251155835764112594763564410411620305586106443092313180241516122053660334504646690152175440475100923931297558062948973596799632431849459281475275154874280989387688434678736951447228335675704440533863212069487044475092098910080381029216194120787098852237295835602073166607939628497765410889540731717857999814884581328467266428238417388563117008004649469834285371135988468944652682382229256786102458657271735111709401690385050398109922202073946871294262958570802387483971652069897114471703799022243924236785462483128043342918408816082829565774797093686520127033655018624735971739832982052201170934998528587765462801851542506056438763338246675865400698906055802285420708517682274584689491777328832228811572510559276136031495902104822257220859731226055156442280684903659984768622779245726827236301163502790602275337036482062906523675772217874743462711119063325172101255779100127580757667349871632977787499331425837401339896143994812405339580467887329207326798280169595385145975129402576667291044435450214388165535960698557034509034125727726789273540530455457256208392088373600551256088208480899154163261656614374017777801683470262246292203333727301764752572312307783880187194697689479438825736563498055728854645144895306341899237948546715487793936255444781187517215391464852167744753834794359882930794412180787308643593011273791699429324039394459535416843041057849354308676058839081000814774445157586622285798541855024023542420530220112980029175227768385472983665091650215860738833491943832390235640031151355394226696877720031978592890915801257888937993511223681675225204599075608935926979467023093037346312392772043702579158834318128893409628224617311512878986418411843612587408074220016241813100434976182461367924727313593953441941409150309207588929703573073230606121986434530729872046064039471266625806412281053920971201729076388705882735903584794512287810216988509398870706729025149865945700758858858263721105188209328541502415761239052350108083759052885818801515805921703188804091816412405819222103780007838199823301053198830529049258398833835950764686644974960397722692002683280150561905161222565360317212582905440539155679105343218965257644196296724855895367281003140493795871018422705837873324080050747291454556795412921057826456503518086263269208185370444551851876571821067193090030512883700986605603143012970886155857114880701873678447135112008884873243792656174270290220716248141702869035342561446898012190177300560369608565481303503486316731688272898661485939818135650894035601235853141373490946684015493450533884216073954916124427375501665309403964022423227292890489084951776061429996026361163151144023672257588988087234341849190204749971883850005571922468333901573638087657051868712256433460795101640095043692293985735789009223979777303720665428236530080389232231423400922979266235707322502739251971432059683984590167412934104600565827227839022044326166341624902949032370553227764159874087459160016624507812326888465632360957979452697460409232300381773899763531949732358788793538649720948184351985534956295565655069895311632336932478667900509339128987777447432825398296267855300474745437729535444000983246392958162279675691061873257352780553310896863939408022507887994862831166165683396820189257484753148946707722119504774305244689468271955237377688025701858511127187660066049316368421828260642687522688590905449197758161923699766831032089185270065614069209685190665482423197535450242958704363121696785079984162454837770019118233163813096037389742632656040763443508345292184005710058735648124365216591301399962841809165142144285737778267505885418402454738852916367362601864732377649069900235901393259352578781772894290654506917536411972959269383724745111749076121849705838851878137508734717792705083950659587163736886840667590839517709697568118656296124619823054209201507771203566300884573796712297984540333486604344836285859711319774146079339959370869015938718930760799059910544611883372837416586358886653611501460771273958006589368602482125522684097856770814259977393079501470624036194344957790231331163263129190654600956541737319012852163102532396650672993468453931858934511969549525096997273258539431896786968068714782921514312669213574873130133025207672992987618512188820746335253230104334868934561474745871748741176858321651906992752866438233441139066774904691448681134715165622221189607407224793036095111225961684332731042487352246695769574705690225129564144660468331970612567592253936759680848483929024365999710933568392388958527440952761840126051017408899351575434845223277133407648994283117491603468368255241444892997975471937295317102933285082130509120415264044319545544138533180495142910267597493855927040446563217998607893455007005180990448741698128023896671965359701787371134724541120600520253036038346033252566798152973441405850865927286974317593271745385252405434653786246127814983737798016257228485085248216129488499273486835090552888619215786662436814698010680846575656502472273650794727305874789939377219851602617229341308038080181386361482952837153921547689086741464529533303450776180854866769828483875802032959144862520109991839981059689410956177518134019044959879836885143017769385349513206734317402288282467995910746090183342669647956630854287493721705042667668785858041693607770693043967345272643884042791111889617101598957934659216885755656469693303634937429487557029297618333855493804682427899418173937980620673082088137500524455548059526289812608839271895341665019778479341425319549362615597531182721135990584495726350673702725752559180939388741985350522984554640069459933575494143314155047829010901137315913720766102838616102247702509432175033013914429268636434585599859687871235273205816896291337382074068675720117754989228175670908461294465072079488625900933641057697929915331898382852806798586339962266792012759003060332883442230232248674766691872189035869998616821035258199582650581591374918862318068225281582999889470392847727970714310708932949997187554731999779140743159953479364036551511216904487737710001031400273357155490677273725995858487765372536767306203667915812775469865928570271241787593983890126212628615857225051388153061547143508110407381693612900531031901912380351580436051237048397263996044803486026216515420938335962263311601146334059887587418075075583577641061975333624509415312575013056568545536836056652707405037728699602548151168883847496756426789028823814759250012163097483023910440908985090615857031142674175926875560309258540378449953383519689608301243834381430752409860457575232701464492032517950100195732352405183652252630196623643582080456062817852897163034252957840673716937029174245264028866641939300525912664444029232807035128452322661703497348836291435321453895039338334532332051334323359399136853357063044878775422898700539552273963072078814609235118444465898131640240153354466291231483016347014873450419694040033655484396798714042359174102475153335990551647695422437312887812168775347113834058782987188659373119826295652632785892638051351356909753368707186147247683120776641404473391263009873729125471817204922843785491765640360806845300679850564721829303587846112276741524164982564632055292560327920629902057375622985138098241524382216473427178963579515965200964586425635132457807100218871228298390171339741705522442874087515547849819521255282985840529335729601938296129493594226557873195650656536446567754411592841712617890037981799625794995097572142078085664443567659579612634203004686720291035506424759843885346642429481014083163174749104867287837158430567322205332982985016378668220236959012973473997940695255698702579611560243464307900438744872065005610538037220288187714812036033735016642338802762191451654847810540090673466617966720689416245949613006428352337973871397147366976738327680054014093662310994836140532504743455834596743925979824614195325167378549906308168813019811818237591109213727125593708813946202368823619354718403769733619453849583858395705972984280172045502699062130264926167516363900874765614180961676351401025115824459573191599589436295948093797047698333365562224295489455047898503764825431246535163111770153194618099334006514561973187077405562865385745253628662063432340209041118568907439545714717755358688420907790098158129969866388191468920624442763148918776340170341169257380889364932544035033608965544757598792611942110482561205631886125299238551835380382437024237741882965508583276370478272053843196913094852531332544127282486677978415910403237406733039161393615625633968036820792953174691181937513679950916735916466803239930844890097306222451339467588696604227909416951161744761214799670726724999070743118896694115781012887065654843025435630443735187774819121595871117244243998521403553950312959817076184908312705655209787777497165032441954931322873242633550877621038216051217369190794377923000021193562113894765805698343236439541065683412621976880858477919953397830068085612740678546404300141002394890029947417941968215440264131185756655443486375935420031010286446512786132958980357112294712458905182944309425399538592251729739130906515655374078781051955959021199975120826898846433223606838831636767006965019957337168915170309119975035760288969793949803485554620434203540120183278413462451805660280420009869176237741157149194706488271054567268258532597117310978261168855841211071803419692162904635578686016302373010651521962993727977309552352857459303766038625558638544655839927223506406059562603944734277101870158429258247454294512068330473871768997897179414951287145119263025026508576666865049349960644654762887190502642311664784759106808018514949513610294882952501049245984994363095725406210663895981166295256117217718300122526272944362529732799691178698873207967127472918735744592222090243319128514759595033172946303888318757894841957374590372366936997698938794251802161945136564961255730689351881995591082705799283544715487643871792449595558781358246762862523375352634582837742189157026622259753192981659411636309647689480022308659089516362469924091278254880504029431627534610913173510542347548253594651284969865146137435286278905108124360030824559028773829419432174912903358492132850122493551687985212174494989613076472571963894590735202344118661510932401315196530243381453175841229299291554669759755938777133135666130281199225694025094278864147756957094458661726286833028999772993482798284092092036833114003825776672287947517605771157473224629365824146217288241300387720058614390482169904985883750203465483756830176004679672336987057181576236831117592316882545289858680721598526076315285997811163942664773966399277527402732334444698646125038131212409523298054747650745983263032160950284900279651784810739083933921136929080469439060512320842981299660857778514097955925461817346752225013717358439850089179429707745647303967326897868104761397747129028061622643730289971237714694789414237826793952163656517588333175770831152875536404096815372446756278455490787411018742067825247523420554925911761600463069653927786654646040124818779983252758659545857134255583188532347441813556370306129832238205344165434676948060238981267842476095925468208969333777594070088617610894898810811305912972086019695269054696545710264830740596079867923302519480221474700763987878582010996094823255182328373487135425401889977757239044454880236281239102422540830056040603189893185942988886881553775893448291592765578341162168116730142452418139543608084313643199614210863371841735981934442820421382862833858102508764059937313766955811867939302452858043840201867475633923347727845904004369790771272604561363065889487038136438105503313298482548560750066479638840625191693791973515291989519451326010930526361163819579558597789611412653073366923389504867091154856705491326184329075017318062231115939523472153710308990706253746087183129275151485977741006538358715807148334305621829219290918483817489258324639297093339084528003869351608406407984164950351936952241364892920443617901234343381610028170897035027906896255222389178979683259177238312070698607365170573400559778681123349775083130605119682355030424650319719772917133428194815640260518065069808196483739401403730536135810374260685790141560227135045900096417251976547133440760592050571431515188142651051989731374821394162631351752085878677021251476312805306648842143135972005857315881776435999696557344895705667526741410105613639304340371296659682814269144417719294244756307398582612370116074978574834458596664249159088951173166552500292532717536221792546896220813491536182133127805552668532231931971617712030954380014047047406403070181533880753186741321932600409285612753867473802107573063388018499528776777183009003995775674985583868985219974573461985881343572972590613085075404071195395453200873944566530784356081723243007062107512000633677637026889237357966251928001073711840713442705754520342041916732648196423500767271264416819617832119527560493632361045000469066680536916107302737245523393949077531347597586598400487516890784714263470506430940782442188045407991831481594046778168020055824544703325017274226758988911695060946952441021736072501571400082643408634836074787045570498857332317556451088957502369856276117272379602616612222628483444098134796732784215701752996553019566070780147519250676615056163183705748187722125947828864685732433538811879929255259002378765670760341779314291236637955167190830612194122397404004972271888018358336472574865138702047982241096960681825534120565667656029855282802593120503860176696645766846163038388226429733683120553036244596963074066193314150964138748898135406139275698181752339803653553397716689718649527888982229873605951369210612687139261187337740639119495004328163305088970896690862756172109306098980178401195620924481443892730510052193190892015751269404728153045601728719023636278308380710665595461136361224053728570475382723646753215365337767105762876122781409295187514447881810139998625649816998690168888600000836582265883185082447361446971722410464978734173288319718662656933879763270033013641932327014406804213443725190352660948635796494127814624132786224355788871504809592858765674770593385211753934618500042160764664072140514828874737412423818945272035047697744125484500794431040865496441688414512480377734258449194226643592747675169779132955701662779404984015669084800290103071995452021276739152897377146245164382314101863694287794220772295476345333653687328517963758024450868501323850224001176536334289225276091409528986637496453343429931861244596823638292512014843259371447744792059202721471674371192146634862547879029125809737087646047752356443316546844243308188231222997205971323094627543866166794633367955840439560382604714659768889356639421595252995230202036877403318917475824256051192567094146522573542995672689084052444326344156262816520890340319059147741060395622899998530253067056611705599529704357529363033723780613443867926264827690588938004052116826368277420812579118298165041152478712937674283439016570199685841152482756647936216941271372041509116869659363855684053466880779572350263896815900586502325192254825760842229864034352616289320980949847081390256638713917499250982441091887922994137213851672856229908722865139979423982603479217681900635613845919832710144564478298407560914464999090074433298988796195632390011784551532549397348383291890551747704106838394370236499306128815049294446709956986959652300118042481402720063563768542327484639902155049639115679654897211627913991258466457786703284776872909627676393637640711341629549487191551074536597599262864763707642522487673413622308758063364160796071949362759402245381297311620097314071209606541941350752465083237989219508780668624863102741827228263243357670470872181647527281060903424001394187122828043035770233547202724823261938519042494641005913151708117566123181762649245474674454042316217714013406570309570909758032101507450961545231139191055116469757542380330650891812641706360910458205874410022323898001701259174531353451133870336322103345406651671167310222564127865165318347794152882711000696345216429919310402169410104878248383175390602687315714031400934766687563553636251627365658134461645766130342482127219215726030500948004027241497360980793313609796332523855406025894953733753448376421956622321222737215111266108412390820395068385063821212177924546331891516325919355458443556463913591131794950430738058887239171645718958753970881148559165373130712743529321981838099419487048089676140446540344208949161318216098960354671697390617191509932746748339149775628101695165661321736811181001928733265201548927474962269918177029448632836081661587793145468989529061246910806531525028720919015994074028339093925432603138405549560025003673771407302339429884813547530193146044117566001387916676791348885836143629637754910251445125656495513481248170804315197661118795447191867044723198988208338269923713817598250866496063817526789876743191292730521068809138494222055434624808863057351200018839196387035302764996651284414844147744950868845322374985510486480168715775051358926348689463052988763919725402316358268531743459895767760428908349058685089310661001421539748550825192948201049529667521089174245120604347374974798946625423305079588509807854755267716735276112059326314538191775671811708983306952652614140679576127844242009648889186990571628717676742988388743457296052732867010911173761203176772227527282009873021501910736594377959558723365688185833558017717943786095623253746065891314005754413962389320846384724500930023415135037988428611414312980872948724414749796495820542816941987704859790042672439721563839904912306466978321017048468860329022525230772275874329512429941259818859628411687001286016680880181541164492247275683852116117472762470733224204034444346750966575842699513941038618813089373883127752367482579891761619370483991208140417646594620987596540321780816456824682386929987452785136115716898360466777973861497690755221420682500202049366245083268007581613221031417129584057200702326881990438518951684262156008032530715809262771055893421871183754005544605368822216431956529989703597997780952104292237762493926298554673373769624906507425017394215535283686495420787200033697418784849021688347430334414068906717830503168374359659405705096415529909017641112989631177406904651887039101577041616721529680852988272375565788998221399227237086106706340186140199707312713054581801103002185207616048940758489956512946033485847517830492189834224303469686270044218336316848920477827216956255512220999355490860774810807447138563804509025970566213569344148860376782685695730666773964947875018955791477916701968565292460128448724971043063062707403304920711918237676021038791762375020841914781788907033024447099046669213472182244082508115006265049100598888108322105781538296463885200559008810928154665586999439106237300515417894756486783172587616080295840261365798575516737693869157700668351929207109450293055534569911216344358562463736642036046295591801756843388385822118089609314769496834560313984489683498380056035776260306546156430184549531627349374257770707619449003297254103278559368866300137106699291473066307295437421009001646234190003036150012628924596150100661369380515450706060853921142054052923934281368276182591740842736334916757663383425129064708510565674873764811182804487056004920622222644394904760072749806630776504196875765337579202647161433555983637906125226380147441794456655411902035483535394533801143928037036363620256642590905961897502519889783945008587047864530151885577041191400441287735340616741916231820481169907992948022144351039676187998361733201747652363858774453452169069961512299244688296789079569871010596542508921853987551798700842975584107539229281623705752353050082887025642991827363726747717689757529692921741549559986425971423800205157778720291135865449337231717955150919361290814543094952894671061371094791657515528376851121045381740206492222695857304569818179918429641917110919003747582126937581187631052386105832530043708081241169442951359455639114176919428774411743692634572098979649858750414431906246925342835518619773842021614680509980001690762425752353690572469017632153607187399821429618789376909754896873402370536306413065032260462112908782042115436263658859932636816958279691120799495576812943023996394763996088324011438348325866444603118794637610304268796182014365638575751105459834180247426075740920314979063421962297339506043853563486983450718331506310198324433412657764406295372421633459422809468893182682279870856114600245926288898030509944670658927031456765774143844974699448232118730495917952281763474820966176403794035844818934762989232531616429755320465686717867226480628683506765156238240762332393168104030484259375201342374964915658079078071337025692525808827483920938655034831866791520424284261853491804801877726254656279568894765452910370698513718313011914855591714189726877137829524360952452266618469264877636651155482351820095237496953381730924476595014662565594655787578307665191683936457134525469834869707760654359464086710643997453022588552081158469219623150515711769398410154314928679447180794981743763704146233910040606756461733955882057195818341461009566565926902422595826808515157358875316993568568402531676730246632720177216480023120287083230389555297031764221741492602098529341251497634949524433730903382574859116571616015226127240492045865736499386771356846193799655337168635591241937652537289325002387255087020033598780245894373008651034758645165343498814633742290446350773814583110464240389104151555424332542505136104714203057951085752629699784772687496442371093214696847742401979001499473223027330917908291788789635840793829176014425186549303104934352477711353707840857867603364720715705010974921651486207891512889152247646632146065505712635567802522371108866432958429922657180701774805374709138353373683738372993379378935537780055700523702006610766304775625557153675382251444584600748166116683086153239737202063819014858843147314424043056266240336999051141510624285235030000672620071166661294240080731992908890961208549543513593478451076427683245420162148104497107080593193470799288805247672369193420107857641702610299516437271323028895072494883179186559592171326182241879292810834036633267567711847997018375286551128899520313742066561571391015583516262491078527450447694701216979052298036306793292343811207191269071047552323269177919228378521190089577383810661875050467071843268769226212996096145098522002148881879885384927174825065597199979751933745640023463099872617592598179844502365924301439442703565481575791931293998789054616367244551348242593362532053669100925997913432467832267893320303773170137291013657960350965586346004470008605528832223229771549102844156391478446032512619156080041156808495963458287083038044402909187451726744531008466065176097886034844907887054103811452527796864419873902505749865436018856144176480774432859971897407654119855197435583242659254324370698071735586932565352662752517620496824645731356542667841926061957724293337485768549881048697011673338019382648885554939375024943374020367389496972531163566878453003368594362214932758923722378719217653270634916934061260815957629108905377502464684755166537169346429459965201050068806260514343672063515580057715733102053071698987058398652872948276955636651929940240375874389388002640833727374776827502626392321627934131035806049681737220135796323106560494186189580123261648362616209621791150145453094284724564282660295111391119292342109668059639429053258835236733454267068209161394241398716414054680522030817307988107228642890169030827170411261455557880375105889694370098825508881056068199875688907110984940275923000610143738500366145143716926127989757066716048970904691347067471067431080799063599157619468930554088770929184192699705920920313577088438210760053555028184477064612680459601959267410717091234242710326889937472178246952295061842918300567710713141801173904348804854741949208570800952875190292324922293300006826715647223939357711886969116757842697986741059814835070810474352177616707202873948137995478610462522687013234662934511951586126846176496353854487145973113261133083375186845987988377459045614157714845985679167133933543914938342943741832646672665203739467919972868590103072696174759387046664993644504866338568065229834111001292111366757802554445237113223798303237407753779131684593695531417079098839730630009611785679272046471905462654203810867639124375421030403072022220801341893402839755707132099163013529583488974649020076684856597826816452422726558685259082306640553506398899416973565731371532772275316723216660201835476156650848514422784338670595950969989748380817157458462955974063583966497049436519185777053303938486171291745901641048050193043518062221832770352937669258542215076677827384150698421859943294568628076383689981671574698908562643442390779278406078167366217161496827076009090487166552503221683532159208123521996075048413661788743191085529732825251966456876283626250347768871667411922053607549194476451988846384655883289216573201448243017745562376851507318939246404142093808301904791207637517636020787344455923162339323395904086344605376021175424579544293787562539694310153247722518196895540850841299130882403614179209554057608880446251768014808217768864961826453696385536576839787119392343423978290181503284706557599029711783250699053329535218488100911838625315447257377196776959449004616824531643213591030925798810875053032477529117911521626614775804922653787167992880770086050432315636746130221571460873154187433258739355192798756264946485133695314891539393512410287749615519856157460496640783323821090181797826075581787688549148496289051373743007004789399434097209545801385004527089349060335975126310051068386563651588289994650076890358980085667339310133662784370355981846598013360671227128428460001598700113236744160762298525056890840998030786480987966949251352933027060266139751061164956303045976596774318498110241193313995644483275386180345812745718499075840850479721677632197233299717071508307249158695056993298041197002723317001560692489322317118193952634512821897420533147566906994542654765381531639935464599161667685895656525959878339474277367629563067993667617723368306710839578123809090283023615041270111222297280629707087289938200974705957308939200633664538225804088133260962403909383559534484976664725632968969303469136759598239453140681431845897262956708012959531480353588960236988552416644356647647168272230643921952228476186714891624947712152712997043803667979600587895704655919284899195896934567579615838738379211852097177781012876605197773829146160782152547595993094446332641219430123284039699106273660713138603887652808428099913097667706658205189420132564919935448560523360731572629077175419386081192329781465792472102078047812199585384710072713036015111237378823850141573024997542544521468285164926256352369595054393248762154829691682827736127460527794402663731024381210411168844255316347981881515766088489467405109747851392148465594273762974390635231184655053458939508253106852940019191940953703682081786402701198862905790871791430542707348245049005939742508096424148345129075626465365332637039904298395484745616300438486839231705665879166665598146551047795557192963307574654522629038980411845270578465582450696419159481777068474993009574954118330943844045001272509771122325676797021230687830645714455795394066531600990016567512486720724779951800428872348663032024520264175734383796412297276318741792529936837198414051366656893123890326993594440490414285643919591763712142614694604035947661754922010487611169784485301418126707030182474101572434852887476352235742542180518678366664001223425416270817683881548978262364712957325445866525378407781440141620683043084150262445676186719097945304723258227737886030949872600282847861568175005112463691065476999719347623150470641247553711387974625791209173295764432966762897482131750086619273147505364576013194408334075716233426947740903673044236099590863222471694326976263280681180524117620078600341657000230181486779739672197621473498953939433931938785950410294439615777561475556615953810993568945699162920388647599803045911060220052925077752447281131638416392481230397128124474553204189848213713897840511906546755909364023542962215103488965266864608651963434533386837405498334694916583322127966425876134617502938704085485709765420506173457073614123142470941891164258015017112839026422132941291458548061413435444602631696698271636339065343628797653269846168221991796374306758200514809292551174787900641359490298236277318855274585791975131223884147495637647338395271442467356015106360495102932051235219965833863750902719446000371253624376302800023091459318187853547551643641501617828490701216112131544726873116031909013092645984104698887067902342168747142829366286870442223578803684557814322932207348326544097728788825346405210720128250609821514715117332323737591511538080228279582002596588842824620361067688101543178774425624000856556667416803702637893454880238069566726234896492105291635419119274136496526782041262914894478851281565644692466895713972422205242990591960042334298707199453707107648416944761484357515375591309323015083293506924190523450885904754238804941257132969810474705796470201711479036374796350809996857703887742377183008274009636003891168453276972228839458821137149510906448959713270390852821280575362381799997168696567542945180423899458514645507751501334666791088578127908059102631096174407362809849276727729770502392742161795547793995575957684306707808814272086156138690763358546377865983868647274017252475557295151746516906991808327066190228909857451566764150526478943879638425775145509364973978682860072408961870387612112990585362393614408587657802844348291035719184656809858131575736887522085723648488170677936064002105487665511798139175678784940999574844073450000724047007666484005033160654077265631004589987023048177104824190741503778025482005672224353404380054462599138433004097469608962920821407367669349371059879891459284861214674856133228234412389412822175873012289087114137714988985970734274660688950533266319918105549134053842780823837596229903584726827934296750465397020504026818723515752982175745418447102242531191960442719446004301678954861280089534679482009504220124288525165623738551088715433342953733430649136859210834071783812270489859317835629850952746985634873845847194626676218829752453379318044510237708034927237998878108242699182265575552502948015665854427187868129474508621269441404736512818124565254186871423539092223263245867173458561963799297527399628930988340297053605887488281729367389602613980582912891588329447732448356594522478618161581897495055745602250875787589957882429513242507149122332989386515055191534022961107838333468008294202321175908585748546986032257115703196400329031143678713946341219060604998444537185074545491751871011027207773851100678319681514465427941368199355878397057281061638107898748126994991396056264131258656127619388676763503622484340933025676118679253491292787046087088762156106834285080936366923321054572631153476561049616495654443030519222669751091909932817239076938336113753576189499911119848368233226599706458802749601462402974234443818200370550661390971990108079237225724501471538564018451154470424419880992308188253001247822644854797831583992938212705384635375812014723297778162905045572843851497509903249951305377392472025860114734731605597312721526074900636711159848071314358097676254612071876729194989665503915180654095021545097936563832723291872004242416394513784869041667184446001814970350556203444737744352244759934305693785534006060977637062369738833103505457819976625374664274436726898035496365869672242864633708244622144759820488201317022718618775306497947692896459567115211481628302905035597247525096918594829654085853412468321236240241044190309796672378158172559930139195431912135844993401145211551570455098410447085744729853684809627115029246789391060871753928026407803507513339099416353573958382343110240417821659747902005009728315106101539259123579185780181643858408892831369778501667207794839508468142010767176042200682920917437058386678336443139546686112575233378715136179551472656544548403730941334602131405270523295617488771473292355263612145797718481970608989646619166102827833094856072571620824546626376573598780822674712137853666403675262425753196692386337930704805844063649337551745189778308413400044234752813050521983037439646928163981942222517683666027956716685825770876295173909097119127134506402944340650809061265695192171270415320813070125604390387458374804464382248636798667329684675627937486867733751740834083389427902054783087074723539512296346051544273041732053978738572886544829982284644618175603748719854894240701824751269866817916911109523764637329282061568049006075213394352970581352081701617597980930954723776066982111010527056222843006424462284751274041056223076013664573719465190244560913399150830875150582719617601135204869125414682585653035632674790645419864117629761505872219962029976349646411139328057039660705916597218280984595343836054261786215680563207731686176119741123061258305138892510412636511080568195919667567370780617409469667567920298132561147980043288898529507278816250910742645332622033142613955179273674835113839899873416318108890252167238764602908099145434702396027101191028074215955535246242567734390092291699694199498278685820150830789801242633621869861954442618827382151812633397275362310822306042670054211285485564235083349944412764762931801016447637813729364782987850751123771795383158451449718008113514174448526017586754709121877386212535286596631810586800016748356236109745594180363401796476669565658566377118599607076992245552851156462582555524422681633803647402826924746540076114769216520000054216540248425110879025236650298863423905316349859965505079928512642267187720556682924025300398810684670369630490157312564117997757689699142801107643261772372073737406852664074434796735198475240653987999742539889664960012446214067464723622491698757197153680090285521572259199836646085500640076790195068735053380842297888768599823339878134712922302753803071300550827449026045544667587356617700331601522241555977454526253172972953065166188721696438574809024800929064894459000977264519314530490903510848321838318160488047236249819006991266978025772159146023245743999054457512287508220653700794593900620791211124750265552897920084448410182354281584540068784175553744454387075987565207155085444080015275779811953912107258058366842479497882291233548215053893173546912580434208758384312960115006970024617446409610680948668444219541726096063467252608639884445002258912212517971203354954142908500243232972024629625016376064076381365712690864140494465176217872036938033968176456549720206998106277016018261054034745441673019357407237735499111485755437639222131580273984794512389836058080510826394499066026336694034951512284713096639792565209717850118448436263948371998779549335511728355832852944694655624629748955564826974959787691397232616172605300169517115341706042190079779642626279363500224319523608311553227815729850422227071391331740639230730630046375448739492298218625400259576485464962461942185623462988610288205537061136388730089026638323506314518904230047734772447266468083507108853070611240568255872279761968287743841419506626823002715652653601739995858575023535461728449334436789987529867062144253590554289658765422801478813054180947975340037205866111384446954327884848155072817121897066766159156548157321225155496095627743796917917990174327576107420535404001274217516328544136961779385190844345461113045320222062445660811108907369230397443784762913883476049656658108390463136537197546972939275286477746586810344358520881841624519715978537159501577930173691559555169448920127942278626469551290844877192467444798586471950158852810129058411633460503217110416281859059588082470551673789653142269446987578335120432713289169095915330709176343320808905933018786016689005448030830169551035925565105226195027359652001209190701599283483433125890407719090089363202718408168104665361102052445101304585901436153379993531693144037498271005324207527862362416322130890974845641000658733033490039724008980379307651552559023687119538353572921100842746750935756129657346867722428615479817266040508753487553146209323073268177506854733969643552099066676562803744443650415383344784775008492445828503265937830348450591236784705434317485831864353594044351434915517644227297046827821451511792622290014263050174238143240633693278047295742933687481673330407826043141752498074597511988671064572343899582799928996461532627495230287654171231985953584570766869618132935516473979358530338411653884675726773762250358444504444531178162084203671181256353697138882311823415305519532308539208355751663083633926901469473167408561972108516407403428779940218604657228952115519262512697034529998779400638968819654672230051820882361067916350396968778468008760849172771178204538437657637235150682303989481511725369710587699170066909680350713582976668061012552957144955025681528048471989016897605043647087054464467442782745662208018543933649167809182676971398276060470498521552620147572869348090720101510269992245227816982849042075561984109361834205110757578418710925462889586851500221806767519556563778265392140645799718708582449494503338993731909008225967262474359177106644279283105850226564288153082534791230541128857445463920415986711076285931947663705999300098328957107870758812318114234746167223933851289620660587535988419771185834790672525129293607251038390324821547888144288843558997205881910540774786337759922134872177904928059880893609662533649963817583761688197995800821903689220972902641823173096917966590129812454315751217491209215839770855506613457145281902387557162253665732703982101569134126023021525245044804078822987066437024023887630096691200092944842459934164920324937175269242341174266592234524467776548875991544860931894939676949784301861408562911800548765911568822374198869504693664689545992465050339416701859475224613874840530710362029709533415652544459236111134672048506156840779174941622958116115124460523662065104668596686239630147816426247059391797900478611878544743435948588073960153180630771231363160889704837663284386701427623814218326116059423275172302003607875171258524157558266282955390127635339453210153902402195768315032812767296692041045922309368547581286249400020667137471389454160933550093734485566414426071861342513345827021865488542146983769473734617483886938317698184832233254803250204144806750688691641471309264204198407988892075230500064272821906395722495171435044762191461835655359953258516814264953412361619539235755635792513563562378189388180012065606495973323311095579569552685188394079670754220507107365516939214748359580575729775184739627924489108679099230060788373964193690411014674648469588279898304036699976379246643488425875485961414694984075263724551723713524490384564507848054501618400400886819460182417183501757664320957080028290468807293771047830996752516724134873472005470447801529072523273147982092115133932573821943390319410688938730239712701024197023582339837376974640702004916806525602814513240690002017141472294790953549771430744163355817551009992285599024402605401808423533637092986173028108471722917155254912033332897921303848350075286233674535600648418203378464561801620607916806659313311949054150154344302356686478632633728352517837878901130074370429843997784697395222296392080325242943424828051557468587104645421329051551957998007789666900177010131565187048718578947191050392021926240826461785327100154265984923839070754463801429648391769269745003170771389851894897558550866280524523279252148991514980200835770272978335379828741257730305506095541675171158672168613427473611293500758207592381374638171527548961121147478688013995505078238850907061925080974912187177871272250892293385540024683285129902156565307771842502716421289756721325151250974350059255255006855328547660026691966384371814430256397722651618121982121321378044989388600996962705531270313987963824131645915348498496722543096681830589742868850926511464328570530363095460106696594891695540520065298006936232411373994464147360748592587863639167407395622813712596654654054682662703659529698582920923152382924939682727846757788849292252379900353982759796643889472312399303852118031079068974260880950996105471169752504185563112028770035524285727483498680493203063055631145010264106203126432023377423146040950621915144229188488672537651517823972236932459060503208283163723038758591359489076875096668669794740348457130511469301215637750373875743963907795331532225465975048794359951741695210748783705425280436338302597409928601633110612481322329054417761162470593557357328062410129527393118818435966985709396626487803965410731925651948802689996512776321972040512463980300904457278059859729820229965567120080640349188941017948218610226987822050024611070141351880437720451903234535994649102264089080471773097114819825395085893236003691657548270744986052402475572609802384901050809678060668691835982647818168395687476742254515146398986880623324321017243324087984148429847838438655858255635907551527199788546591301566946587926254756951198601525109989205736643414221734510737637997828591012984455415395425730090355966406958401722214117076299669909312637409238336718620898712884013618106374800573680755846068800501144912690702286836597102771234685452406397756623925834762063298416642870494975225106781438089198044587099729139047659438230962698272593274593632787533348560638295050073708277837929916868600689079247354103942423348861984852985541711463993917887841797937269137385948115473608189800621486248457218417024140402304581543675206818262677210494104615950861777575236778080259507985203140877305176526532573768803261843556458766594276241219891538833017093790038706248392425650351016421051232446736213951934299354049461784562014632482088490249679623205263130309885896532586683537615162720738588937149548577391784483637752378657423528044192188907610862074879442043064828443251231786376954192042826444002683255459884381155136625406650127278352249272649387448881026288119828858057698780649580897068686807511298761214607414009294697865499583173141382831422306630564086333363376339784339682718951243613082875975682254750886393508606466668510514032160295212972323644925421900431914417173943894053811624616441138485395731484225180037632904965417643966677583235674315223104531065034011395438043304105405128940949883735860290766279809461754094649616145647434065441040348173402544366179533024752266261140640643619117069212010381754650767199310835385178525664928525063713862931549396224572306566669043681385180607360311009236071374304566653949239384946353084010516268269929985293134483969272195547868965206323438903388709278715217999377136628213802874822238684303624149800116792624048657787245216549569103973195863701611467664456182397492549535326121842127973113836334693506202167591559002457455346345716542790191924216050373295305099825596667804366971676367513490462457202595835676198708430982572955774487486016291134603448127895360893416892579992564062903108081755208235840242074704763705158666755013526962732382968802870488282945449183257776808926826260027233479040229928010878732396161712047480087843146538383309871234050811168594330102319059017293925554843538246629926975426562287359044634852725422942308727921113713804514962639161951489597047206521819349890362490967386807919747930356900711113734514034997848333945956238826359629417771462405823137764257679232135941145524653774938894658271521677902325253220808129995549022618564266660310630154811783663762822227546591200283035797906985722443062391092738489624379810191428191801368284537500993343984775644623147065300481818943864017526390668535071123138783597411201906111143599901783308653717891446795534875017745221481234737352216208128866017815033370121687917803922957372828434119467243231144305219655217515005120218499437715007842642915626586731345173007980188871966469027015480738545371291833973883349982122052057185717477310295608393139463788137426335892836410114306198284278043433822168898147265448962102785918893885630165190031108060072676623294358299915756376338761636651578559004410842030754776324216157535724286680770817114607580511490173351181394944651568635441417429591323020318550843260467272088302020999914922866442141028547080134384352325597676672875993032359247773566090019161671079757423752446324257628536380389551062368352673903740921413259159516389152877993039044788226449036839398345776755072148744282624138459939278005827915560477914795437458621783780152301331291446537133845200760505111680855734113786009509598582081520455849098737017533700198013038635234477169158693034926032804201146914856138849585313113720216132576436872083349087307667374952272030274364939443790501794805404984871640223992247724732622753406142537466202682538728236125740045048464040296501159760962356079692127214711139600342979641345313289539966322578543525149903363193673349193561336826431871296630597397708906357930973825874304378086175199258595195335118325801780479614264409297997212512065443544140287832659213600359302795939452678529100779280990236416532523309531054535316526823311897533530910798366080551805358472724764499884784698665994763603885103481886577972534396957484345715073057970748178411272014578780117366479182370904382555200159312974567688353076556505259793369438471170101604596425232491792086020455271185224409791177010048861793681012017032012949867473414963328480807245714136119045080126170614546056751508535778494875223444085056651443107030381931533733002089029313835994699789198871486534818783907066325194885868122972894379624732983847750038105007341069395083217556540274145355316964953928021791181721794812730837339374660522173632913671522568811058646423608454625992938713354108445979064529390150147582840477298104620129943833818983627532670792098146216419390584288840298983899987816632531678904904339730400005690888339538437182657850420995037379786472341442424990071107150250593554456612928816139747792813799052137327139943502186177884064569511241869540245883376997677674360509891653139392116591641671801402104058229625909041503037886850175111470054900450076080504524617708384139502702994983734041246453673232863805021379070442261431230575763644964707426745724219260593385104614970449646077196368917886554312395160020972731292235040957080881297435950981080473022090881218443464105399616840951475868206350505555722555943502142160949618094689569533920103412710878665818634364430730071682483704432064992602239912521804253293948618911008558306697134109183500582331996857676092196387221638248875244677022280568283393711948162104484910582227345490640729130993555334016435100279903115828616528444209771896597561986692734291125907585697634812163936307341503199396257806608444109578680568835970772589649560261841449068794677555869536092875433588541617774000080582798845047847429282252188271473083109144150886642954216395626019748449896649157641246015435622719162047793890713769211840542927295931772882211464351907970766526469284918754969539288741165347653994742880597190949554356672955837368119775833438401275932695081347662361179002026516449603740197047093755848244024438939550566927640445652019790173719023999392824484633481793559001138981554898597560754098695858572504108152648447788414155308302915846315434190292146740231066310420493660993327557036106214093218218667137514151547309723202681032968073321099413833702539519669776802147108517864365014459484286356766641808826781763070874275836294138120702662646051218771782140533758142983295312433449259971223493847461189436119650485364584598430269584291283700807539648135366253569219050564267160397332077144506221969122329008041769754407876652776762716274169093871749778323592730549685589150729582409435458237230059405205860066153051178435387121579559341542352813498312442717520703191825332708851629977047314381054056284836603273947278061876858470665599424072275147676978146999043540778626217879823893972231769103150396997533901951622359385632719111407470042545615439622891472289003533565604384970439816171179432060113659797862874236798611256781416718469552268822415212647130793274044242938051974895683224395247718639384581609661727419645337405058155728981794237840384631770721417051702479043446210099390770843009844113135096292396073174777643239816222607409292621591008504145602159311860004273626117054606434654728048818526589932286252841184728541384720324780897396563940682780905199679072265878635195389015122358850292797267843190425745841627480896397545707144922986884441851205110862465629652359500391223995816071401724664619557029499862368540787854353351398928013831361676196528542763150492375660586813418252022592499528664080809613653528811438385191696710115088023406405472209752637251324002682540352211006675309133734815306388670457926950382065077919260865007200569452135486689828501595684197304902780420868690381384344697180121204706889813504258522407269947745817264189420614465931605645614594471912092134143139028747257092383189661882766758052968887967772286772006407227574472235389269034493776283856084241404911479878895971867773103447082283996771571859687727860716762482637821123735146176132045814130219721980917379679231086530754128142235922105472126849461924530001889616043126284396355262550948284019878524350405830673587850207731606427324539215435851906128729799897263172077511779214838695296001708164242728603764584582063315953647459990015267354564151059174989593524144270099364107542826711938854888799615539219619473016068881445414725703443176645323924974034521382731587263450192926384476373680009613114667058566977388605012922518017715919015794881019363419802555037199089875767024039631294989357122523163532921217334762939467995970111397344051217270181432886398863312540953987623988829247902788178659596071223603058108791319232294601422175591303739772078716359758904193863697421709826686827938482187110140596583507299943079460791277282569453847517554657741751675989766893353290748749672000700076499303659942217151700696908341737753868978727691489463872337753761110273316031432524200987954027983508894919032934706452829866607495905641451256019164281082603399737632840028994146488839400540495040480362256705359439881084766901840361908372266365607022975189932437702142561560532950890765586582310402617411214030436419814695066461546366846481926442191770541367187851422566770670153604583809208044042994053318702173775007797543439207953956889403930583233292846290835020396515357719958807757341587427882131261704510722648560793679809099398286639410384767310895074290383094308160962126360342229700362091493285830368641061533687698139538144807983134589804729114994665519480542888126520974006735086708994652138296087777887239368135554635678302332093656753230680665188078512026375428633722131193407700494328163546606563611414756774773839866073129009614370868797116388920613043857795776470384612388861683308045042504819773017833729825399273932922729159741343184124587179736208057321992867865387558450060641815796812104898244636213630136970849939980627425245335056276423735354147751372171770031218345345569102218831794159842168015780445744610536679085520700124732803754112926224889861087810565395178366366630661503412541033359511217536631879510252294186685041242005375390483901067184757641448880356096756784577355447085977285003564103302667719977976701495590830030237331404708642536656800805354709542184741685060312497016488789044807034117171607678575383681562519037307364318297481283028936839812138714159781710732078444661492549534257277242292201727202069327235451015684554384878214224423948816739116414943799539221502036547947035012336994736933620289285485997389369931261698320872847296166383347014688208168574734380033013525000668134740845856155672105602409475143918122961652288686527927372833616277561520340710442479593777286384826070206657633261412429094983908998443845071274499951992914893412123378705487814427607477954632986929998469099459329181792506643356493874787888560258702137359437019918383088406450895753627776676297369238518704312408235705090460083306917003478252211010957244430003161983005771854803967610733995365416187619453871442274189131943909394398109281089627961271335343729302515849245000876224507666346290250344747346848837537449807296065863293622395368888796750838395122197948734955701776736626163572754927558909080313917778204883252427787796521391070942316051441439160036014013061754027742951863709126307593968941539746023796541753098503275542572666219222866634300507415424534948702867204810247657274112404188564262933450930491990609372161219402113862978511172579826517269572629219983482191417799322362980721131374531859517643289702126323068425052440066156608555627155712987285577692638126576409454530857524664901677626049207002988370580025515430257104827309746324440392792008593542169947931623578894829580844947119089475762596194950267349884792545610219553934456766321056431104644557687721795570515989838401883835054583914071651953278228731658300574098616111572524095193951147467619859504426456780621258158047869627021177699288458078961974862595029950679254672883432589879824718699912340991663302729241553541829500635404166288736933422036725293915220830285213247270402729625634023175554046271776399902868166959451021817730574842799355705762125665321628231300561345772087762707023281224009548103374497142957668688421025715338103002020095661347639732224298705747151378440954072394983185240193592752694292785878084188105721414561935668557297460525806755703388513726662588235324971671784520905434336529103371010057547576917060667639469836846705592392733846522281892579708178055457187573467243455268730946164625372541659733956345171131381204813384968703267028598406510706098911953766995674429373935922588561474511970243470466326525510507908338379906619752593993783010375948148899720527691813620059043504597246566599805432405296682108731674517059867247277017588851854175871903177273222561340970436423452175823439589916786543714117308455418709865515851309012355363941930167667974694889662660263796274382915892525691142225106963107071831095293410091079646461651795914730219742928251207763952631252212303715086036979369548579290194750726134482318707078775592883093434042827660123507251507241637379376354422144132630367410165397147097671296661771184939733849249868371502910665817317398749004304735582690379371833439378659629100693750108925403183932950370195054909257658921693495046443833259320097115003198990500253640051822906640251353540565115477041151549706420089859503316219409245690093895205800643068316229029908958858324210716043494113983670973838347398628275511344660700122546180450548895111050543335241416172496575945862299180986984316445341667160806212592947559749423191079472139056865695834639312536699745186235541285790074402639851433181222651648164062594336320496813641096249293843190139626904201373702455794145836718490499492641080359650415135755958568268726255220605765259030289380581418171396870900935213210010143530916989777714677368526157494399665239049079106262829398586613959344331590407125832448107176007080628926207990956673662976840715592377527619395295478414954950954957841479582476909705212150589832718788696188688225614698159645267558248188295512409218179309092929586187301835258231833154470646605286695475809185125402434326924927754685617812725238701971652262723548496445689328005823469962687669566921436757347976578667838422246374024759714086517234931682018546895363673950748166040522656107945772685435788668388106142431187879218702767802717725207373496647744037559227079441461697758884580343700944071760226598650078865943903070395501197879649950967654159743088104000790174330727451492033800149207631345940855259728485219235365370600865575857180729299647561288152998159991092215533740431799924640740159374975146647570992881348312016614383219642649229563082267152724262204839505439653004531644176822162517454984531200395806073288582450187656421389156899126509421244502754948925831340492746915165223317303032768527416228436285843273127862387371681253211182275466879364805099840299673636101786615836968168041984550939134239408756147573237189340648593757464400809944218192909924254073822430809976732628332527873551362796170719438814418668452015904510599232804504311077376850341339960618124092104372346792899645740001320650131442446723131521363721203990812312116646014351157746209780023326339201998018846455409521999105658097816859963577091914000059591229161879401223176117602008079809659494803596864610901586015656723066938955408149057090976134329517768183446522575375790794945465417076630264363587203227965002631067318654757036547300231289435026038846638604335448372198884216093967356769783842324220977861682798665726726658893050482862789206519661082454274406582775595904631612892601256743771663820025253158489171279029097055793191119353872108324456192049086119541780660732850214497018561473198254474548038974015787614118472847574161439227915263294444913947793491808243651845396606771115023376761572465798528905548583043167010508085452519102190788350808901602910830975805837967144990731926036211209759440034048387393632642980468540679826035133798899048934787817559009119988106372794347576938987137221742132649160954372250745025703634007883673696887187646987995941985561294753501127723969659455128929629387078289670709949559848264066566436561511947924771284590688920916487950636584696266495288213405434722196462006570100872297700528820558377996268124436592848717687872716967875813927351446791233577369384943812772818990695807796106217702191141009416756606770708860665797492628817519748751339260286933613022753790337840745659822752917108786065187826516246185024765770048987315721914341622801771054376690096381420473728483086328898598939096386122659022203135896172547324251318529876113262565603461279097472079448617375991761424094623780765667857799891894063342839249194155405028812947675073196928734061048651516057732512216414420602878642579493214134605170469976972778466061913237417455664184507519053953241457754912402689300486354586542242630023812576298695112146869170071722340787563202166598795052458351208782980556002945500315925581581481949794305154089078297310782902646735418936221459738979718958220826093880160101583865712545582385310553050883016741714814805380388209810699025168872294736357225943490995358569016777684659249407039894721206315583239796617845729672880556473000228090265343723758409783453368769796687693227194997928277318317084838157939033977018316014329401741277178024412308901014881444400464437494679071834710988229597818824879761317842285186905431296538875770427711204205744245751911509602865658981744238198083893456728351050565451131881653964791123117828868302054252009474709037217696500667652106500529095861253899936410199910161430314092963769247273676479040392265358634024611485179071058663683320139049270112725852669759938905846167178945144928251934536532934186307732482564012928080326436961241345667693303301898583572056251817522182996600613598148352942661060302700747320816356108891664352659944271912521279234785531623603419063782897224769178992278506603090512737535305191387512484168439542043181486275314617302153061830014932062716690911061826016388174621122900404927781986767537526028878530504264667176180057671076308487959252669731044231526238156110384196908132354369728485666047383501557751584609340175222090727942003337594135836189975914123281026726122054643338359474434356688448760639022845547813287863625051385514253459927809203058721407749997838685452531121421340440849452606403289960685345477379011596230705920520404159799434268691082472172607870501483482568640046577599890950794226842685493556693388109624020723349574693055414291003947577463797637504174420710676454774092006675335861025186547334429262076953180963659871943177073722028581458623120391516431338804729016319029743407194158412465795717110728197099908149367846343522101791873070805951587861517001653848077186070465319447341532564345643253728603291912803277000226751957481980781967397530219323773444280434042056311891358634176575714544192963836409586136752915844792055982202881441062440654600233411865325880490681314391002949901580991137371351313842632327187766379223299955332132619019741678913903451978907243963005054789419059843557369941290163388519657809735636370003570817558986703114790050555866001441719487284929206871951037286960583668688545468824721154774053627723449353178480440980153509483564034655762318587147354760663006351429973050580114809413736938196312052937728526569373920381578002719467789227904168418797472954546681802121006028090682347013275253206961641032245072659206724468494804217744809103356602288838386310872141399125369422948454071458056661822810651654819753277334329258475975183106865265611686094871642376704597193289370778606708453383793796020335440998050931869594396473392418515985009039680177862672421632613508221369360517679797393979556482990317461536835948653367643323210790595727729589242012035197133338607211935588281437400124495495997748201529521725565094541903134042677548357540114510195467281633978905212356290726285688401278853111832849785023342594323993705486945931201203847065659427860760374431949964932099293736932760939308872926743405996742892383387389862424870924829197101583842850715308622430914345855013854668776430827762270721710523583946807810415264359508047113413758313066536591583324428402494572802368540059445148243933224612721205638741188502947264398663048739198828476262658637949820685241113552532249157633835657189989463240551746198157349937796472570293217208357542044483284888031078281795412599729851324472743426233277619132903066122192999751605041828644538651226075766590724404273269038161626235822350934285913448139780667967346660287569574687421961111760875666456454953753929302098313118338445204544436327554767698489642048691641444828604463275050137637234506932994239502673650614639759131340748617108800559071592917280087382215448198536931439278308617202293773004851919624803928664068040983894854772025491227315319472498439477053712041362596092403481998257609939647532202213482890947194344744521083508932836892080804381591705818175803402314672175111321133675321483337444215938370496623708783166302889198616243325236666052364406973668090834272461036251533451952695045908517209988035745046273927792974520192315535303698423516934813967825005731266190107787683617621804993653374913402364746275715839813287443805882281873475980148200385990717393277522225358432756412240891187966370226618163756020756242732868464933306733045910659919924180836552580901525696682190236261346934412280484678847458916847897421770590867389869078687341167082107452988792314929673933894830481708282178588921381429584346237018668274421716526069056798530240787615735184053869334489645300656965110927362652233860562567402555825544590911472489313724422262023971912215617067879167553289680017763925368360552952819730188289160163340628584314939950356025415418527780621866285769234553389959995747018686119733971295518410876996218765887413329655447345285727990088485593932033075424433163888364249003256195188106401447287319028750483651665246443335570178682922958634457788169910441089327105923213123568834133739558430087485183503516596169763736555416752484493035184642651406134828872414584321756829611513312130786751946024795615305131113947151822437959053394701350085419066050291214370976506613462287016570322004743030039473654733870235230127772924629802398490673869668868308176911858622903934831842039512812511645239887562160923418868321703517296630949629687712702974929249786938662447269083076756347316542212197140505570267658285385105804324311285882772276517340729312485074482565548146494227317990196968761566224992091623058053125017718254594829730219044854293250985640064136650020004179097965159574468540741745249792274552554461173393624078228870803712903002588923926489556649506995306829118389831362780752156830210657528836188661931805518257385148586529655437588614298099695872862460307099715120816326909528236743262144774242528088990787965117734162973118243915358934028440357522987976763488174523695109602614129585225751128733911035958898507697485128250351064367003030534385883468495449385900218809228973452543734223499968652690776070793220817155523028276364677107432063033380031947312457410672481900372680124523656788612912348823107139930831122762251366577097693265454783187096185159078950756571440760475826718814168069348585871032055092881518812418459426651308447731208891910496505702076332800730844062054900951528319679940987126434563583867571051309817244126606191480583308685459811929700233844309457123810673426966937488241504055450576127143978805672731834007591973351341120859509273286658814798679459046271324462428080729867985215962381015935986217514032898969689196229697199161580780101991953464129738834728366482513022268504843246394699294874861839250731155033552573710178990536080381847551700440013196812374535491560748088159725706761179890100855911737818059003891211998019736043165227620756656201962850427186733501189827754277619457831433600355308949990745998976011082765614217516155906878214463680078948827506808558624170601419800783939255114374847106194911428585679688781986805810605731556455771237298829437067274205506680813753268197035082351247641869039339456498536562426686974834314425907909872928676557930902203279283129511413470031617489130257538186258000715151786046559662721253479876957718551023270726481541457155937918008614114882632783674911301495965407198315268486349520879974578670646028085149276135187610013436801103644288645066481479813527954007356146223769303585734572754774609702209110673826918609930224308535831787074855617726230917967265472187860698757573367611260993810513106555897717937218029933469884030671940447723883503042449887880844419458500127762726835587909417025967782808574179911923857877569042096761643152039164488869461805380991947051199248632637603030883515366055566581353291739156559320792484414618741034519796316634322931883913858188135853711420968162544741360653476032431354956442282262009911376404075442027400500113057030585063645214871123935750880533211540552347863526142314052981231718691453247443613139979649412671984122321638370421994810681773838958291154202025192078647613421084944762925218538238732413424426280817161027386769528740773725744424179259043955492751506063175472865166740608332392214701255810921003571594402872478857839913757573109720385656868710788262176736313211375080566706551886218028766513518834878108793162809389321357031552019073549881556926306336995133656813827253356079993665208746913973024892428861350853926546258421799076476868857708180126568984994325529725266694917765927976106508562203867010315459001084770646423466050157580239019068858955675361816626808518687775211421769295830811980105541495200011958441150543479422998935324766061186472223974825218221453010097318861489048839398258198571283004115839665268794690967834560043927021561415014074340747806567448030884901550357491178014269661830574589490371602608730321203894706945603422363685848899271164600809078540046600807685978408524362012059460460314018417111627865449758043712596253541957328090957249286661788512676631070456487624347557443129085143132762407893495981833881451446508816616879548279104075635652703981464651549808275817090273435249104643284559704652655671549548977978951545408868068768776385891858810369306318095290493715614036815579491468041934642975096157384759544065855009507932224654568859705587853481123193318209720389541532879196465593861315449322054177222441249638773481239961490688659800967844458876558398040590189843546730179354273233553870551895860845705265294885290485279507185810733589020995284533353168457443789905473195346858287274704067183129808078896507399646278923291687836850145886015584824174215959647293452416828722332255171318558552663333825963929736443718101734390511606874767218681237586087774718323167659055873701433254094007215996035210720702558090155705870064410794418437814015035583475868113397537197715853262963787815972807571104473899880742678812760259446426751636578868051485335666691091487505087077483547301742769751912673668658742521606666514295521203760601556380165783488621587495564270793868305589822395149900716631057376964118703437823164797877312773889394334224443074114366331064417511190087483767762489519425469673497726375208626706306475322940447076987380229477616007871838775551633300158254400179730813767527051345699007358456721993904915064712863150524497778159426866810582276006641733498623942861533262046995006282719852281888336309228044513565369576595708875117429400054265268597955022580655358366348396959689230121434426675652409713984788083579694439550147218027462687251613131608912588427877555405490640769915760927382857765911470988307332526105625112445479787110695266074403522659027420713531460523316926247788287362775966966584709050130170650523927158777387692800924191689053127584569739723488335452737440776026360292589971986549754893960427984040493050568370765374839395819689848099353628951625376196630149627073493756912858386342963802154136355990123883568961751641141241251872421901246648589519697103063578222600199658852500478402116839653750264847093415087491267373330174478537411991892236387913773711441949163360247781127176812631316969626531597988041029185637570619808047873228054715926869455536418126251808380603250915599805500198054451147697166453076059086595125339556916933080444804001875746407106997994366500816087513797966802550704886085245827055557156233592446402862885900635243993485706568470766935340486875174108405965211498353708912235547498905133414291341017637200593355064598338802761467077590038079556956039910214376309065865554146937637575674290412816231513823217296750033828084755340509029581877295933733462175389819161328486466976498104932238151782119121953858511063645500397884639561956063501692186921588852242244063780507100476822281905170766953406944570311854789602933417779256420897964941557866267655779543450394972939038485859809249946447153117376268325024445670561522978885142753296939500261551592296124339373874716479188662077992539158429615437712384549460593356762704864652039951317335744204956938908252145177057335868070299575458362573659583539784722315997218909555687169888286192392687341873669025723261980430772873511032094921224790773309192217184344884111939264991556819763050837557333647477821160337699797436776018176635934142168781029607092091035777518968657334359528884089803209348321012687984076174298190621892846998162142173200997071012234465484690088407689374508379618286385824921378656314585261228143100449076226191671016263507305517155242383668297209785234064758120922241381504120375422401075669225004975516242368690337936729883577434171852483747943079369047993966717334375392550517443089353590069473356878697068883322118948540078372843780275100032083244341265267572288460821275464380205020516340664262936825846858531491000903439229288326999612624194036692244647586534101214229024665020926348910520295078128797031488432983897948895437220910490605753265205754594347658005104082190709821114992724083322691432873387462756796707011030031131112175959147654094644212152687283943136555812531628397898680576794634663985456380211429805479430077224872257449507432318782399009230854572555012654997464414047029521429225061491800664894525217779563688050989712431841941212192213392503456005618797924715031660613084277705367431151516308660024095855484932416824021235681428070467548292745549853097452633430761491331720540612806760440007897866711292024484165662768515608099505449856881618038625831809668749904397905197753916780572385081486382413349439148216015882490111204009359533150353800899215568586294196116952685401332217708171632229274219234905791534795620552302032569477811520826758048204109213791156281680955461217079178140580860019532573619168696841687579488050561513512656748989760736552046213495176303626492268673507252580730102479703174630551770338633252305660173272529945969209049433685307330213007025424783277977122237547165032628131005676136911094686047694249534993967818715830031842688647343615871975149499268279715428512599451136106644405159959866816375029349279941267625924591388186966741368114360622669565667165512759933086586438929487133837153822315647334871316464244130065460090897320263540881615152855122386655495162714919821590264266081691164850655744809999563319524056941391671253874371316044565620302039014453133999447309473480758423457541054337777968170275525661353390739419739731527984169096971500137917206464427154117501635533376714402620787836250126265649632530367382873395234185717275942688924342271231786265646300883731714689627086913090945104905941155290269121147848178849415750741407991586840369028543304541108066478092407773852120176110378362990236472549065871875480151956180700928323379371876494901609116123256169848184694342906467209702231658513656616295489289200316071719644819476439209813208054914123994653330619480233198491078351532833863149706532184363189354672459477775924193344180535096245011746605601069448686307093001414329502913096194106444981603853867008630088963105838036426958617146571049157920719383252553872350178135748347693234669346242757688960731750441089184712050361662005230946030412523385714452538698529936563423785899515330558273994098413704821673796642118305668753263721982283869089598022437384883442537299202940907783355402754330003700223620804045354464738173584590471895595132271020557991416700757572099612358174587735899668398256002672912616878203167853130074613010395915768173889192767178930590457207739867131105896273030119033793088985026790827211163568138476963422160817042257111147847318141475566534931421357603188689255724345686481679578705722033242717454119220311630945961256818594236343216134235027662615616692803880983267016655728831271303362736039292627660735540420292034751315952777382647704219570214109355769705148850564033217434807200043540568563447976935225761033295860248949656735967683025504186614939765853439448996637571082718126351400912147170308899582525778485472707979041425623508981826773222613439398740250894928410704667693961851362881982661153367442241661299590051866753969806665402661191411555390089543160281465132936266604236211508471562503319127308708447872973002418487749392323126514835656502041574706850497200446677204521904195349720270006809077085934727925891099443002878918221753866044371346277311165984396881636822834888715409130990584464817420558345828518188876860590575384264649384275096521297162151247718014010577756989754876454123949492225802780980675440812877669225661995384938101681436551315736183101140196159865586865977394655305479356867149818084014415560023172772963084715282370445038648911050472776748191602801392574609397518494618281349067049913905405888066377459465451671008680510395241716487215307381203379829130423870110127069375681174658052701082304944392208154937290599237676948650626012577444915200349772081126722473149180721898101938722574765277639402820899512980808207167551809271662300554165531854357046824183410820307652366817384737715515796672165998861928189213675840507238292185242161150417340487828298507742609982462471397510728154773513233835815655152431387959448129678380567944246215131952956972806316680735135075656669652265907034140525411098741110693958530852505180024354568048009555373891877712128855347208860881260591362718181518329796317763554884625043397379299329598152956410524452997350857038152648038563723190323357649676171934730608808191677785320311182394409345828111933527122114918150657595290362835263605717337817325216406230466525769358476049986399616536817402975808981689737501611780574402386326324924463617831580883663070010019350690520202895839866450996594154800434614324127969324006219112106350844026527670300964033767269877622196200221066463469543027144884098461231371747612518256565540151193809443012713144634427177234788444338923975237759090219927863222423841806501261081077044331297992781006664059157724812633529037752173183516441633041419198122145103891875848622535777030557072749997064502428964350033453249207957732401949864814115847293681516823694354838589652504809139903913351673529299700793437226040703568302199244259503278739323315008257867019758614214241636196736389740494813553857002089452045060679922640092927355787261835987963842533395480194121751539994597201342276975878763166069967024011676466833618524740676783543009574935917607626241538368145596160445835492070232241005669747393534941402272965463276971540019887150984109889184806491172921188035104656286500155948993486253835652949216967780874394133297246887360869000823820284159993957774919234904713289747784037166667013093144806891314175559293354977745007864171839046726640534039006066395243207666381128342506624512492657419158933605020876953331574813113651938706582746028440625495312388165576274854580952674516011652183546829540814714088188808700055227695258341446000547876040589667974065757706162251886755710340828538459174511859402451320222874290753014153467011591706816692400378287065189252847257047863816010875202321866396384934837168672400273709067241820844071947097210893964475481056272502740318446392253421405658593600807621394672111630299036377215458740297858657381469717459733228951268282685676786003308923591590303849370394858819687667171546926471331759133095659123885673652813132255484639049902329089239463880244993329703704079083359816024307167037484131507562207025395213912068318073340043665791426986920251473471481945479449248755620618354078225600431669265031965402663314220876776025471466106068214706728161134613305229652390975275432852896617584783152994705841829118248266389753364776717665959561394824188381569176454297691187634461238242341198089607213962142738894931100079140129782551496092459312751647555615591665749466175775789702849782548561123389403550672052980383907862183486589293371861522324657028535016125983955378047169473277272907473304491110106053056349068286020873664327862971618690531023175348193407561056211233283648012734626785178691267541330329174092238502177731398666150612874845502885662292507412307879953681832209422320365707039431958828766281922501679327096098582134092153827250499229211764897244061044566457786919496755036112310399596579657465362699288970990460881967716367054305031728939997789537516137695358144924940269684485188221793224220210715280905525865552310967668568112031930927225913877104877631856294241023693884042903973574446897124307729168723194372286160390240693541326067035348459955734880311754187511064368757745426984081705635503801313728708068433373141887332676280595474015893326993900203172488179054984205335847660037806548082234734527382531685207787950803292511779877957962083381572416646162684908923537091955389259361606614494914588675327779352500354042060288514370409267532538752631888348121903205136561289980567621109016780241864677824174086831919391509961046024787424174065058036022924406479636130043985436443895179625255697623062727800392751924062841516869833472655442020580132085595824812359504486440556303664375230546724503673112137137367355803365401861379042595742428838107537789528188279731184926301170495145391295117618904196776733473231449660862257086611327915815040335038488452007173768874489391571822161119319276190675203053714661351014999928455476283849240603425983760866203342038688596024610341077027300968709196746732456034131845955191586803049965492149308686245574943542721855535914905091182020425674669526463344276845945492570707264074998147333432164715604230405288056150072139978516307096732933181846121951993569113984301106501549129484976446976368452180518004165936968506510975650389809268293284393304873152851165675914318013769919253210188929139621944633951924914456695654788013636551024599838834176113309089073341694131587008494847644619651972339762776596620597396494481539029478770516516761671670369791808773424134683010369953552651244640132542876021834688112736898956126376748313471630568448370298036536656236367420933056733391200334750015316070229183009859545227548249988425914991182722634820523490204377835468629837981012755070807945593876636305605249318704289377759854941132965220808209914976653231382681920128584973063003238007749338137169649076678954704355904266812958719331472719392614992663162896449816842678025292615926229963914862022911244282352210444265528142115348048953238718473823224425953455432767184928430214133610667045137527684285297818830145570225814833674669809571031915741819623232734953652982756350921952741031141716450764636847299037102934232360596436324828443262829844629360812208193847153127200534459561936485853850792562344939061380464351036194665302228831000604528657546026227511245817746322718784896166308680371453545617359965190920522173768506664121753897683706041841714053215584023167464460631107391553893542411982358431909386566923581769791187398338810391411269625037580578425312097047470803254240781480128054946692970585684907229885967650103723305756167789736131186871288978789919715497371657211746552436202133966077005278085456505332848895131848007559968169703308725110312985297649825552326423643936892936434651653622292278191495533435431124600905573403580858226116385912205566045773857282243460099464987094833962500284080089305059343758727153477317716587429789773862796263152423243252875180428130335120995479985004630339747183598401984438824034951530905711398315965679793320010978987042238988321677314029683490354234991834931819806882803671934713288263648285364013082473157953267855057479487369313930888140060985934997781340293105444114703892716928760214540927865828965718000853874752659500072526935838305035884138980995331057079891866190273137443532189101267479129316944645920441363268153174399097256179175506409763817580609848653786256894646012965473678476905105199500251396014025603128049057231810429691815011701111230730473545499368335390210608631519117902482212093255621716470274296215576641538617852748278590110632437750215033399233347764023739636936131720675585513983659045686471166427418347669580420089547042459966683378466720076584167318205070156731648722478045103893024665414861596081013939707306826359624006624404695804913010993063322665297803653321760458194974211896223463692912711937561001900009922126632777466554670676881690484379186532582128314466821296161783866140811859304069775880188943804936706035213718909848366982453691853443809091186104900940497843114148938178413173793499224821500192146808913750641247103530306412577623884117180594009794940311290263105483704208743633282728737228718241117966926515273741049436145637710036660888457770665261925636396467898649558000465326411492332100267507409184584176847611390521588782409053636848322374575617248002105886216142662565181118634530807828661736654563835527306932176585284132962080906262471003880188430110722410388217624988637442230343658350377226601554474719804771616507445160300253046485082227362139898488579097389783435396661287073962321699044649310637819331041734730100804237165222332892765600422281097518135461520366434689503268990310886885574107838582128531446003122461662123232731793615225223171350261916906709444852660569533298567895312920039769900380818889038692994689340396352728985831412299633192444008356110558473901789931957628962239496315946483648774846491478314110657408911361949615079855213728233748582731226064896842941944734974706271513733564002569370797278635265733381678269140536650959402522675423511031780644255566501969543805858374014358558626182845457288513892431755637691061066867518647381235357801588060059045466036767531078309423961374300080971276172592542390123330821614684144535491553532876964995230947220766807850617856274969694221921940977854452589813080935453292938012996609887271723226251086341320562420273718490600160345511219998644974168017438285316328544343555102725511661680775247122982717305850792561513394736897585573777685167136790040354516689378623770636987179058525369408254215260052091888204951476795333009252093136350398169248144709016329747208902070091551678248201400054072103727694457108433535635689944975397654561988121259827763946491405142865150546883497241944439589231036244122901801138181351088698121439172158365739239111928922460252858544201904178273329757330895772161851620266882552673515422355156587116968859090660152227648118171369079631585376458949483744825188505107539881428617538739782719806501745657755531731903520907067937277794489046648766166600647758022136996667588853030767248281600909522014829506335668588563231409659257864645958074965531757664840092553581027106926772367042322795324917662796504262294797787485431927557929214587608657735935224559835902937170311284541238734953862688025067064271886331180000996959839603304759551575302870144178820247800621553756799593094543563173134567712772986709840235140163100400169525220750730983466154557005168496903972206551196989301728191223959848141936412241140842696316637364889475544980875339852327774662464124043256770278052931356336349536099425586665551259238313173961613528399688207098817005303832105543985055549530440758772295773525533632645250398632490495379301150220041999856202733882749824123590490451231818604629777588813499910037362807502127262680295762251079099180038454745797093172733991983722603876424602728591689752435827449294896760641744898838108901199151155260026819411677473292086491640581797261199708684112979730122177039585503484633014949836152974335519272641057812353400970257545941047740221195322164741419159089476191914469565475837964560997205653436087514271292856297212154594737331579067824685651951681034029039244359747965977613160002560533829878850888069658381735309469310189291998599925439638180961652923399282544206085715896053666267453869461847869887503686838219525510726561759842311711444458684879363227831379879660287987880884178713427637187139748936845473698093197822509374185319545988788859480767824379880934993072153175120266520844575298162308407281964910975390771978056061587180279602711411228703252631401316459460344807932525101273089698804498314250786118896124967158682593312994761491222355694358498282908498901677692643043258229247442046278034048859338778684169806633006116833915753269080577901094484742377944727939426930857901000830607587741529439904126130826091012060706964384694914826455568678317783373997437271385928895942803149778440382144232227479604551800035539515507525425320484672709329375696455343751323832328666213379545261042422574311635674312284406090919946476008691639957197083124041253505234081325869314258116702505473995742027535631976583137776988170053486059808599846253718362514689333597246893317626871641526368116037369042536804122482513485952841380432098654983301050266254574890368856411550486935675236207868341257953193941804812516040036263680151080256181293164409981953444904066298736604349788702517060236164021058621416716834588320072087858159071313976873575650751017492135521750486918175696431428217539901749395435795483084680617307509964975400248138370943668989783054292636237011884801646304522199093852631362203121200602279386474665453746245704790033156468508422486690075421309903697660512785166593322856701570998183399462003056548609247591978953708022525822699310614754743860558829317535738234556555394353470214612088659025606955513441318369875332282271968797669078037230283324799129432645521444963337115274254115570353049945439103059224616922937471310668491154118452634007239014080554325315832675908205383043265628653170453285747858742984725624139226896935325259479311508188206275445825394748622609488217920012752730910552482229217860306724685717655165832998828531420582363411757153243979823880153983822239302119288680141279980781567352775936395128863598220346462571820847948382723917542309459536167690874021835685851047117554465109196815704801628641122500139743007529829728723678620566436212994207918302194202898335423870877932661554508486007812416456882704015789516619674805223930871470304343732285690943666823506175530830398958125928311834982564976674003308407331267693061036476809310871424167065894455411401536340036637149726378776395413762020716445561493526131917981646069251301372754011899422216108646782081292994214344606883325411970202584322304751258711180837972796237721601659675472406548259226775357023290376079076767090296777853895773744219298387215287436636423236085525081164335823283781281651047824461041969676462310498481496961496459381221440137398215619633119787539671285887102704539786060269427547632404040209010884700062149211086329401953523094212533922560789043696719123430787998088230347583588886513996552025168920290471326260042051554526227815964377139842410359576954613091311925055808042857153136019103336097123726075255551468599244663010032291807822371784656470703992981904446363573342142407366304962059520116554646007226215084165151203364428809133680644530543510370846495967001967998014283125976537942128895527771682344952534736488968568441663235238108713125257081416780512177164962628482271498904326303328010676829702551642873447663786199459325764012258492206187236457097943948661614147028065146541732059855741558333152488322251060418908423483483694092789367664167223403697114400903559625726041062896938216518163790286205426849023840929705178786535918818504485966404154712168712897085910478544119233223229830443304930762070660266442141637721733303766452111752527002408837599441125001549505545717929666075789105727334961937119437242111413679523928450876588864517153528762164528972654865403372584881505617150019095032046339828498701251549657149005257671453332385824536542144544132366432600999045297434287553306720110655337451765456932383821600892267854472451680108655285840705280164086423723059666103576888549700769476660410409720784726880738627296461249996708503803617318103859579026207825975170151156403889816200872548837273018057305934779991899287493359657004356804111040815050072963414636921851858694460922224287712714802771960720227944838606795512710865208462572678508172339241805462200491156725240411098479583050061382872183144563687646826257758793902138571061990280346226552073397951795481813692525693131739723747950611641497516361566668226966591612404404137081103808881066903805794988643272190388795617966142193695638392270280878013683353540458070610694673947499303654971795995793593582548648010779388632870205359611968321051541823223737665681661036916267575940379010667551916486589602403116965077326891123875593203894319302851895009404018484129501012470845536532471601815000995823053943386162763078327107434727529875346662370960505634298646485954028117235292443810870160171690579635656243664290100409234847881350392200245521121405863388278006466380471398042521944570717573769558670568338651740458115133655549011140587752579311227844045641561892028680873398325697909523596674706906171932023641346959614769247786780996150189079824131471335545013119791899974770412272160915243453633189639744792222161388275288161058051940900342880046630352660722554049860758941533535434665763711475438436226500701501523455274161422476685303670373338422338357707974889714536409460361081610602727828981267535175944858788443707297860555670647435181681730113288891182809029666234753232191966002437386688665281063134415334727798746735419252085017177152810496638373964099492281070700137131159919588884509580684122285378662159353433469779769245537821943182658162055752973039494049199694920755633651639888145748866962926642140854127182436747676846273730495757347179219651230522959136592564582179577475672686138339361025926414002168693407748757291094975821719798591591066615599065097380599332086234476545432824549054476104615289955459169803730388924857061605215820553890731373035956824939715533092902127885073152404156184377401205969714969868484959624596191860037750767149196792985412642940325269629692977802647218243273148177425713419866343643437244802623170403888091437035330100101989248332739063925691883021252044577940491221925485804639987774698836478266363522340432957859494161716512366814468411980368608798678383419258944618978008099759648851720212237336545104684916961354282627251658432889911756468466985293451653507128580787999619072132037290735397955540732252324161910809106420820069295916224257645401765252900392951330580833702794264742048826475114963284906042859517468271210399739814608413220801431283068705399141712176560093391447364456825261743823224535587720575246666956213259503521259056601692442674610460934217633228010699613175302373119365546604255314658158527769582304382490703809793007522306401662407000231034352181455820909342520963722686317571196628290416484538596931899716106008569729888719480205528118621745483511757329120243053960853065102658665630637452633391286226356953297823200572807232683748517247334613770182655422207887526745818471286658789525864768628434929194279108551454497650699632058216747224609452949675354191284740090462329552224626108967346758843484708504842643744686351429676064934061466981651022888017673846560157757052523047256717645343990008480448021112590025444179744971448577336316906054041627106616470538294417787049038319574363442326122832729819583009880115921076013905626296501558693524503393686823861769787836545203480206393860426925050661239095482654962763038991882126032334719667690181062027997451340429582156806735226829199580330809905223848956713306129251431827787972827639616386566671747106647920823324035841104019346609420982196670713984109211322590329653792550835074628132945448435495158819916634734080456313943684270417413430990234334041148622657794698605973165633553590585752251429944028826701575234446877308908197536144574597236005163660723393377577088396106232657303222883687261868774097540530497475191295403481487350202662690093453105724778876926661857262035805018209165096611867601204538374428651128968273313462664531861485280475766377219939884416303993264982000855780885596205563490450348835773520405728295454779173049269596869735803409936082363022994618846121976901217419501175377495438397353844679951037763604664222142874243369749205285284426688622051102600778960994136412387520154828538283822597854968920503565093949925277526470794405773238066305194512643111992977483374509966640070423961015582340322127024627952130240437926970477497695954784105743832840301064010773272369544675570782647397320934281170924679577077608128629195142740710781389036687414849823489437962545232198910997022637310910693995331541340590211402216878149619843096399799158803402866695855250812719624332968669150884839024182782384750166491795417801550919231434753274890689378304189913289236731350953429145792999373345635028533061262349890119025437535229588665414893604027020821318469581803608655763569063459343436554405617440349890291371578386552592706417672673880438416869723173766138094094514689863214960869647535559784064769519742175733272726568078625997698684834437217790090743289999097186946406717855484124787780431340273999742534188240972302451702421756525713649475274138628584117365110104054394112298079806751975543468316203167829709860287024255999662610183863074821153104667017667099156396025558029441104298394903455930698313513808823102512502496457250494114882150983009707810130495570145045247312322603626941086734310594565789026694541105143726534109606973535073935775731433415383142387171523049754684803134448635628295559791387304333909232303612208489244986954003282834855545373505479647829410977376616082283282634318146911693343600568145819461374735097429670896379495939863266792983169082912213750920303530205357714771791563407752714403524961893843216616237738232044500273637890655264520139577619936233251359628838617398206287137308721787141261970289536750452650726039402467031774890796463078837984397337548272698562895427571611288145345135357275609384479731006258328833979861807451141383674204018237287954665715425897232440024323162117616494322354843079032864513941857314403571503520595859494241518725934391891030801111951012670397394117541564239498753147588241367532842276937040167153501165049767593100502387919129599401812109090136841631068908405896498687208250057201344340601490665130919704919252889080271280733459737424762454553359235687671061181786927939397017518456279863541983245022248282397212164025851367014151044412012163313234504148069602180443300007837269771120903301071509818882924616102122150354797554401131028828280034031130316795082636537584409877533736287646944768993195923612016352816734778453712261350375566899183556243003517481182349748472570201824182895783627092433122220122582776276715749234618445851148212153253812727344965315302295208811822255443286547299868823505163660379939418958483195575530857284163204375040889388990967342702294729560181763715300368257176100722546425272208359961458043115315804058563719095414410228194430602451282523609573424103428484926562493336888550593564773067570473163749177948947547475676336362307688183924587300732012382700136099382357099642841165707801028585888981894439701437060769210595203541366479207649924148481519393651199241672510485159354296700661791495999817999804384418359628749757054260606324117139291317458480160789536545164547213118840487931365423009046344657059702983259024469110507272970103235103146110726538000446022912224071885043357370585420806888375375484190543664448925619676789090571035756257682291136687057850545386960254232929923195818194817733908979709019142922932433473680704008965422954930202382590773585550610119250521025343906887376985559185714734506082276516727696378318498420311676889416714207687187177215805706204083835456640747783651788670599063553926106031071138395937676785683666598885846415223324856081204256321015449646538133633032932582039056612521399037853755752597973187789612095861666267983360001210451792587004954498159575672579374479025396662741618015118616018800393857193072003196667429875199317241762649504501741885520922438250555213385435381185184311067389668552497941079827102981165044524050574310574848983167187364988447869386530662337469223751067107097481277539204445108432865583583535704231825739961422794778901222026741698411204229477754697500308027512632395438384027823260362874777591682664659767084953151825860030163443243928709873785084662623836466442288561259053642855428811966436674732656993124343217937868227283091417079600669164246231403076162923941485664143287531345130168608880866098388841692202133498995811253192644420948546228312631536382838958008306886860345482079570858522158052696636289778227881063176627269006194394247110778245635277119302867684111238672063289469595824196360452810620610679850552570013273958267624587486653816513817332373305931552299768175093869302298619274365319149881568941144827352766269695831842984191196728085184567025266060413213300489528356742329690449001359444053126132453284288223416503891252172103436269058250833301684250709661573681340617604967719908353014953327408522842551503837580411024643025670684332963654970492731701609343229229274652894089629196554037780694785868024534374404220411711406108342667833668062144995656533569557437203724628212518601139882124886042086638471181061371282794350518857482739531670967164789216122758784720311950369581232669621189281272588365239673722358716979108208466206177212551982828011705660452766869167825751863787790025832585025241391752915196438751797657831226587097834343099632733501830495984408531086742707830102643183051380291490509045720599999092298646934605676039507607733828843990292812564373476955860256182509778337375106048615247302638771261469664563257109806789520276343438610589494122792010270407824488856593998467757681532897720018870390485292411132179121080946991017713310433446586180679153177636819105243090523603070901057982398432296223416135298995724556336292554082957335242138227620704768922663655077206222421414152570987233786542892139685451193355685322963684993706467260186681201065545340786830672556815027774478138352969572968258293720070156891364482274267690135227429148346910006483350882333595728622088096022894053188314899665005026267074235827790001023678276797260875380401418281364736021402795064845800667208691391694597242797820738771272604055090853241019296019361471389623199147252885180145545439890648382969611894160398931611501214068705007560216309807715783922212861502589905996154015535658263726200740026480294068593839043346580205855718337566377125659531037376730903359394163320818103143988618199106726044515575643380663706304630346799160879387080438881263621811499448880639517483570780118410075733886028273215572966901163474872705031717448867459480751618914865471738082821494722256823629995047993983798140171093404128705992890848547811634474158199312162906715182699539309841506976796847744321888114999108807931192741802921501219515529544254448957609612935871387117735963377593980641838781710985944317136033318970158271548033577454208540080689566396713281559203828242185502500964032240782333971838563255512186266676444949981110498181341085372749897079790727461651427797207390306028459805325288349312620850444722772496704402952526031402812334175959984808726751687135830314431601099629230381999801940736962184753863149874661459290213336054234200296513947038712994624547344867023552514409713777009903621926396495594725953097629139987012349622882293020283250036956063857386644475331367984197349657318183853629948272591053466470106124334452719632070754958547614317654998896743769752227173525631927079785363048587732118156718067817341802555930451723297907176078249804155269240230507802442293434124053460867496231602210148774535462703152229905348578474748140862163938238703118321321003190427620994205713876272427711028726072258543145209003391386692723384848635254954553283367257457801455098215706529495018003610210175058308232873380589561765447229279559178790715461973302155828520648720012534802115638895525137399588869689115337576149037189640020866226600071857948632005960315139406298839846703297477869375839232805199417428461053417116434936011847838600176066396373833772689554949276044419502102725095058761941835413931064943690785534523378735508457022444858004107266582091728455359754949848195503912355311665487097056923936122754567031822960962178474297066612049289001997256535697496518938226331684842796421492821380366196406754429108690013255785385804887361121089339406231733801588761192300539956891039525363034462059161882972923684396277412447194014672659896654296046425583953173593610148964514489604677796232572307165383556636798780216442315597567660285299099779213067116142720431212231853964775481001953131342801577134068529729138527431078632097939833392702586026062465689499977589113398009993896960652170153185419093147001489978698289080957874465422083554403584861419988416163325788721862719855071993757771507085113765344425933456440905207962916719693257660984025019268681599810080238241555188708324872715767553758480513421464721439234766012563695615233039621534927402555522912950797611351269029000334063607882493493410254639287317379785162976192340390303802899318592704696019751979269658694265578355455711522970352062218273995176150869286815575342853262066223178121908707297673108521924255719462456990977819003548608720411603735391165291023783628266079328956084909806404356156794468753945977605080846102088738896949335759877610743208228304388129499017579293895703148187603826237328188938317031836186525600557336000033719080712293837879776468869804449908158073392753022460612502797521476735658265006529528361933899385579985040373679868613643236825951314743700198592310471063090692572042675954005113126425905155389755398051038110747164821012874978084029145718872895986668130027758091838496968973088532168476952654648598880603498835154277346390923010518382808881838814696383983326639344891821321071561929037904178471648570719805885066491195386134583434367511832872768830966546882350553887288686111536995845410591720533463573579928655660498693018672800419666645002633860650329263154244798997448005155807197211096793746070875098934374621828930395869299368105883758562405230474258236354765396236043415500932717546776017758496170986806116177670596719503972146023511224174250549896984270291649287652472944959872672870875555518411833865873749813813133905971601561079867840909507617660639134330062935925590280796832757471254518321660319690648383987109996073849173419048650238986574781881969216941917601377660050007846046706208205708632218164601511254525065792516423920479756875939589941862968344717501530124306255772560434004991410747770340486263765813052786655055337322752367094787940454733378475395577394829565374069296353641460948148494247856930416402368668195075100782991051388525101616416209856747273370991220307755560621713181895238835026624548260852605726545737753228541270054852620197865417252105734200048187914055357564903547077778960514162396123511059400550351660447941403992815795032363273151589881852184619300883234095707270327823264215768629504375351715539099423404096903076512638611678498366223560946747081016604968517347916458160934948780723246183395114844298448325025791018562322960886048793166814197487876913061356043284927277481475090426506776275316240349882364387506678991181135480531605265214702544629644135351400433988152705208950731244123768362628437844988105073626679139263292220114605673026668395891684669810993785135935721394958197392710169854591544482095966606430195841290971789472025044074603292518792799962506968541945979864819108763546960136696161026376266816836979682054118499196518092404981598317078950650912495573393998251867182628907168928233652863427176822083692202271424469988822386308794740556454640043153311938102825141297442668674731805078550926640057151920717448915704467005173956983492437630896400964997659662050209772258917589306147508149089318922231103818105636051840576073667463512589204481246951620050766896279227184418853518740787545132802347822903043107085950878454576653447931608885104518284976802449886194817417652314783988983504563682147121926769596495658183763173924995655877182719674841500935966745489551118118566364822335271173044735278104721188933224486784562881527092169131306737773177793568766480997301615415325114616650286392258496083359037861060547716759503880370109396920134344279289982046716521506064374874726553064321104039556381181980326184947768918849568190914290061629971065030623929321678767844129687185107692395831426092374231316428697972173018128357911949192999142565053888071775029439877726640507616534310610267212676102909109428442588879804873725131048438797469319321759708888561515907278008643599561744000069751440826479715843919508495823148372429077108351091881377843073180359643917978140878995345767336700852080569897568871628474617123709857727935392174925857053790214577832089263190839664336444445194355151436003509672809723999466304505535422164929510583726896127308529243133777078452294609691674099854525731869450176375787727442453731947496869557701481020603955277332885654866732936925900288068388099702556708050935176918914834606686861976778088359103765818389551597283360227994837902796451207538693337597597363695277886063400942203369182178813617489295923013567413054988948910137637473584989834615048437492050166290832028378461808405220352618502582080746554732183242678364347294007336513357560170403693731357401132502755317058288622120486970013121048114002906358898862369293724682769941693402977318705873553106042794184102364735433336497175405412050950172017695507563201691848447812332932557435782124018047257784631166190818079646303902503173174185621438642354201304353261429756366398977421342457266520349622665156806529614746681547162896435015681183444743710238920283200718921262852500535867094892894636075268110124007045346253867584414309664083695827695272103843203869199593798572701745107259765163779334417209297837883273381918968328089690580544656454457988239354416646004657433571397588819877465656951572390191379555020278426774958244150585484494131599956874068920943185907707920373511583680005694217617387531262190672858242525232910878521991912160747289744490311550718227139959020916068552339920045066702249320211592409289673625276020127224783782015126528948827499684900739356379602919315885158236234176550281750278603268453176886928164555936532379377773038619508781949209552170960091000001789416683998312391513199115641973780321695998211752694155470568063652772207709729714019141741834153179613949907635537250522459658275299473563880778698789450389338493641584144438478921609111433966429266900844204852973511814824946672691395340491723444001115252686459888628323258757943700093759586153267280255695922527976999029366706051482747898809212546972175846595364042195286308778716687253049013204725349613730571361802136244949269072786480174903900462937311042669966503064081415000859459670086526099890708645693400926196658061018066013213746498368122442502141134408322349826124344514839164981881815728380770455106811804543831971770671942082639777623634904161427965257190522193152458251037700937994509533536592622180601610337259303335940959897916145956178717679135338897155482968242725857285478718429520058079848633672357186599437562948952175672311596621316002075639576015305754650877574481615304341069218807932864888668514653542334279160446326883523377170903288665736443469041372636782845890721688982713679322904727684126970699798137381668635117981826416033472059420482966069626157919685518983354534128160450233812025709753679523412200364509055505494641720304854052698502341746093324140797402536273930382344783729821976035748117536694781021280179996078208214505923802220090839139670776843108490831243893187747805092177957781265985099069748481212351035836076761652018470750642934483147984513501613663803576370318121222162507014498364487979005027759972865434168594276864612972209910382800644308826638178209730146747552929066135991646343997530925561968360861478363432177149583307587315497196615827237147976832383833528490112108458634043328341961447983491406798406196065866864957098045730461353650970640827338349228277288950308880932640028638646033717136800796544661491572958773973378515967475290119188202580487773005913554293917726226680743206287919063714872640377823334553824471487486203371873018860280232946327698679731715110161432636295461301910049300662578574966152993593969477790526494553889243572316644428811841954402412149487006526433973971297827068602640626015020422068610450187251481305733518196684447755587527598232286178725763407306696897434299489812665477137073494141721299924571101521359564042979908285608143469031386098854097941220053105334062945168930816555916080624269344067144920926934752605284896646967698152829740408312637502056683292915965924658108107323779464934215869710800215452344421896767663912410206700194291731644002077403976670401778519143200671754953898829848334480127237709678069389900196267554736554081098371506451115389233427323923979911046509460172827508089690466697273592593978397581727288580884330229745644791531172498604232533042679283844399485027024423384873007940826002660533226988423347809878499180612899369086648009327530431910941651479298325622743111121309381897267370254333198533800410318693449214439341666286433497009333412921846813991522918389302475920170704995097479825709203685016355693557702618091531646385368254655663926090410692822337835492145398067936235669853903964546491728149896454165877210546771845046482449449659132941227002839424965128712815678822739221291409165845428610879927458262852293196837156297263179250683127851733274005579523171626378205861402973949469473805916852296599866829370257503027550234534326811579224006060804083592495949704558016408097350033939479326260020860726334680573353639961983252480067661443288472538408636465379707632252231237162178355877930894620642468998107567365996867608892354053559699441290703658518298390872125687971269846770044964911242208304429265776595725253042539006068004149250072819733032767637961734802902614662088221642114397861728886019503208197736001886217995105987083963291364459945300279162721674628861666575469576526543210133435468414987072082544833983183908312345225043580509313052625564536243699138249392535456362735965136715631998880752838595564305744086641812281855513086735786036452944507853670277960882153149088661003546259102632828979281011607952490696239709927084616096836348011103522226579994337737795645253172612417748274439915899672892043557981355411296892301761717459856572386262633540233064056244563312583806714355882574978271502407299126828091800584777585285578416033922211410569741975267752304129728097242569897440681034760161252592279759118573975103253993610527595988747596681076084434918977983842223022173075823944720971395154318121568213790991841000356687752081572255492087459708200102611572330184177331465013247838357494031680197411165392033346859797111140600764259593143274010593503340688349265725355409463661097491260588281992289639160852587372258209337969509197194889785423190378579500349660938473906809028357383199864487486779297163669777250898955290598732378917260122059413649714453201491941292553903691988170266804232929554682350179052526147345897451570998706213202539981101079128651348484762687606170531042514260701195283899873890199845619713868597995876711653731189933583202893474686096205152253718953693179679887865187937840001853111273397022915880973592518265157779510821287448312233003040978734640501483496912349517254896399302828832624698604328292285362532855252726526603426585719860728637120243782912379499907513084187904015799775599510582474804846011636881611187674433206784237946445457971797243034200858358999226775557161341704318824135078488746294204184609601064396568239811636641873946497556066986568442739451371755554074696043095715358806401373503792908134443293518256261450968596201968805132785256652064838316526215388000791897723515556779256496763270313653356719921809395617990898784593643482530607755008366229577702605623827472114471165416022960842548890550897210054972942890590457681903797692436332714034092207314225677622128371552085186865272808939122889544244157551537005582048077254412256921822771000805930818998709957443752968621169713511623178306244506185340861633362721828247071764542088093975069221697885819168465191853403521226389255298437316814546635491878926540335581342094917973300230515527629017329640311286904591931080930855973021134547554690380149926159616810248129953789480341776658725394166940759071189588637266083558153255423332213029068969513585636177764050659880404198006553112422967002960365248490808970035967548949690827881988605028141019738108513665837340894739882634340412831847679838751774986744767909632628239872456035277727783991674346845004390829223005969487842935738419265291167265165905823239798201675446059657341942769252913488803987109409055782286231920606143899855178520453047385725525605313052272689571178534049701631680335424302760913716250062961967649022866900865777285185208603816872872169791388603966519219295726360612335033147157968861006740934100356323956579498310446934795617823769364202136900463381521088742993593135689945665149898071961811219945782428269436132024443626344137458588346662823544204791534540169021218556679162269298109950426646886722357730527693539257168841635112222621978120758229033308295113042076105437509738463924360422376925499842644347048351137654281111508454199523538436166342541588808065315421010428866676715329526985433816027271144526693004023655478998300130573767324973637319088960344374558126952140130343592438021964346123079639916807407779116593591114789128988801886957021379693207487610707923269557458722495390136521131446538427358109643420817876658778565298470398088496823170111484008081884907530568741382539347372042132478157700275999440696842030915562434943496430245040501879135991541558536531681196387502881894095110509749087231068962285027029409683222654094454464291093917807889928057738268815302471022219066864177050640141383882816412408431002380778811280347260092420733919465310045156354653245426961112875768197750436371945865819806333811411933148228234266245090990954559466599088318152300074101449792708478226670652875406334589929974362605226088614820851572231908927027174141097104645747724954513410806662923658772997645778974885772425753071885802144961052782528655017259681198780060077000170748711286986299728136789049564991440833185832366423084028584697008765840972351723120743797787485732859339698899353574279318922785728249522855158627999606310294466357233198905749112682649911952475893086728348603949583893615142366156953517152335514066190928528767940030742370422763175833905182448767702982958920517539999491698594207564778506884676892453752226890400607325318525690742697477907578539153107696855606004780698871566876772366156476128039183908425148554302564747373547634740706503675612765565472408257997384660238939636900639535168946095061906799951406917074026124696585157928012116381147010011109669928674483116808855407168001631568097135436769495788311633590112364739772944738867042020260391449882673181731451776373960547691272581696779995809420358029723948574221187500716846048447173431944014445433593374895832381587223610876768916917181863321708078703771039549488868905205743987561171188598341578788274888148630399931706774445282441083128811420336418973659181834552560873921930251343032418202196157406304484741689731750964345005929454857352107986609992672635950145233354792849064260032583132265595861231132532870877061022645022629155670086244443857926035007340034385526861802091217731662286585964063907038015852825314563844846138829605427460643833762731782990595304891581474484496456676703535607738159120500735219356087787349944429152451897426613225975465936945677735642786203730292279811628062002737660895316878991712867279988182199613845247985622273783933975552356757749425911284323499295970467334432912085587210077504108013660243893826237996026082525214709601368727170160841683749859213141223421439715965239921670910707005513594303458452932963459105728640947287051353248048927066107699441489585208147298762569761415233651657712614580896349985664840043588194618290639516817040632949496027685834211600304917403965799244879499286666711431911415347123208416903833922750667745847408587930249987119414822017790062274614992374852852479148575680823311474894015532438989664197091311138566740591764906222630308861724837354704571856078930644260562363319629478894299344287995850102218416329797760445565193566469104979522739897979666305946212935630534045047886143836038663885068336897149801054795766447312343197548321611553989061006185121431068407050282365144036698422390559926931628656394514667757270013187596766319211921544313357810722289049394458926190131818369379662923256202149441118452378129619911509550962805529615285520003534730830174769647762112160658024781503433727365468241898489320388122342553843249032176370973592031596340089795180864475816253009313738555453310974646462400205871967195757879169190605213594372780198033674692838489604033199380067114988879412786298219677303741959951958485110626064751406651590467743737769233936399948300865854887180460078904376989508410638982943399978641670088813204532845608897120061048386934486349149176899389735914213404053303773947880039332673668170507517834969384914913066756786580712574590827663333337929480526210318573002109836544918864709389014969444578059474867715759568400635985610608379827114852712666355193386645204072154698288292735632984646570885704745728365561004121425664357895101491120691295506383628181770591183445954861404221716505393405365854627402395921354276353954137989578325568145077876235195151446598762770975401889579096250721991069524245029031814908416504865838863415861767127583901010981035608486007273728134779813513991787679373058270456701977926632486852374631004335717977863233441332077355910684475735074015983615172220627366825234622337294377566885065493260217645366758099311016000607086654910487015530795166381528764863302420498541080687055944079546927100826797635989058783742229522507607435318257944540501962995660408740873846180284191157815251746092226419967805148187940667776007897562446457242804095730601449145743088395568959925923706128665258953297355071551768074739922300884840344084082729362471085727728851973623583928997407548285025601907945796214058590626346023935870436380802171429137370366149400105625738844309962027141460295082518245374651791727624705251924958144117901105073674354245547028514869871926463140199187331825089801265671373915061857154113291909023751482395720592175469533024862974125265003745974303253047862066760359063124071844850117980105827173742312670584546041934553137169972624035130321326111432095380353468138479630220791724960317566612281143598798257401688697119190157176151484178613071079529263510755379481915384615599217225443107707838336354300836965913535491369439003726746120195587757806304702907964692593395603140290053543465620764900104820894087958454400699247246864640072664670591815868221965690110842735655724908877112312256977464755033592254963752812581901353080596144484804221916425093930270195356938928344193853886483551429830359123951927515561826760760344125530950730678827853770308461349326097146665390501617973609243176756109388018345489713835042492533534314935058651596264425629051289729572240497563614553605594647740921514425153417845085107523127307095951974421800221469786796555108911648698695484345923810047168706811875203875679991503683314436630314359436842639481082935632205668107652915415619187418451252174808182418444682940324046180839138912906170594800163176133257574260485516587508100355126381337798053105157566012591656043156686406409071048688378031112406408282637662213082911153793720254945195718788282102027628032420273861974699439298362780813389578886707449217704237742451612485960446552306463809514773813012385510052717196955949399702033744127619144315140030145502250243840569532429491078608719852032475660345661746504529030633089180084089152885122227981097299041171200192127162318205167352757152470497346362792006501704439889953030515212440312687561710164029238922515987004714012101238641912076042787786832161863431815374577148881317823321309037967052335899141311850290624322442583323637769080756436117772852058123545280020932964464433077827142444865802249126876293384443630068404865357314574672988113476416043376283431858001652754422769878001532914947563959763989143743612895949421652660882354594558562023190457375589787930254882517935732576032705711640422835566783216995817841897764181599141265494851615996533904875472448927712534811017507091662876093580211172026385276910112122793581310660223013484498532064056193937971537016977336727563657894747875666304625825445573165542241034686776682677733322959860809371963535469243047965672247865285963495042942720568734839007556056238965427284485064650385906332154050151203140338150141368692239718289114084879882456281974356818570477407132131839856224071747794759972262328567905812881675237451370374873252397219415459772940636179727987760723990226461350704743884292438604596810727621403887721204779952170569898811331785993746954472097575736475460559463999345468005734738679736504832227001895496745226889093503149945018035083667543912757499572741845379131814778631696974269020947577175956207657214979650753928836740202748934481400797297781700240663394354934248211268674161377449975584411442289357656064875548439852960150418516696797467349287619087165753959036383316521960959264229575031985765987570432608103156859593962456982547870206600707298623091022587097806824362871667296827000706998650363638523140171702185390181479720740901707580048921897390168970284863606083935662233868164053883072940010880563341884405693060638313682205977082185312819759156147653209897495001905478589644694967266402040031097706938310650866562001239768793544550999193534446921001819307664443015363028786910754113752215597339619581436244363174123635754691330393206486767785606255934675090722413418565526707657142576200366510675043415008183830194946282025218718987969743765350389752429918493368836721296506971256962346718506765504959677954578358318882876828743032840856339010503861577007422189724626032975911375156365432546472350493794346246694821753135888685389609531362964629708929401302361068019983807561591020237027713031358204417074589436527732531089940984552405015692719354976191258936444388082431592862465999791198848547540556103445776780282768866571149619272757687917030808949820368851472879973107076622483858511907345837570314022693540211368955893685995701266170159528415348631875653236194809210198405778008250799917472928223510689324361107915949478218545952398187529345962820392838984155503163145545119137424169985732323519504104857363628830318170306192870489311996183052580296261144932484108107446353909726408584687337671278334616438465807940414718159160594204777068067158113227734318890097793987205525313199586823300111053516925817270692257312392606292521645744332376725500153298563425534514295632487747501461367034705345981827611562468484588805717581932152832440011383588967207892580589900370056488604840319141043098459052595066032951017390844259047216290957163656521942826597103955766141879951585777120645489194238289957246172676504575503077962190931849134563537600856846350404100065152732812457417043233255597172898817862691261005345161271715168158615466220991696871816265405659740999626625436656549131419780103982591256501895150909741168548238912796789612369110617089687681572265664675738878513650515948510092312188698382184067750657065678844427530588473721702027080985438322391653999005742522368792298715703028479168276816176990942459419400853411681897139516260779328964224288950693044583297731570430765619317717643695468019961611321816982501218069796681434647108037493672883344961185630355887840334095125143976183925502295832711926810612329638681415595407177672508582396067977479821166541136519547454370247789895912872429686597750484033299615818814953063364064545915840056265701294223357424609086445526476787723319974610021605756378679438975137121661884046088878196456121982115135343051992935545569263545608183038222852892526919415619975948414897385813981019364689424829838493964209006571124129489306838921580480079161022936802654138256726049613909445598600979491535339132499845836290221264309870853899153254378142791427274601460551242831917242945448407222448903065217730763178133934757383983532539133170679112727808244370529965034450894653177437201924837353747991919320446513585174863002614523793927910673748446088204211970703483995357534855310832744533833896419299046885163975217212627043529273985973746352522156086590976986593087407086293296428447429554319685914645221178123883375853044020376727478553481856631397509857641625375611541806623196426906783613611658334694601080357135615238961915883112288095529477200382128304406673472254353659017121342814535016997172555448398252186593753109410667047087750947491098729276145405096918949705702882569895058595441637994770954728708271964561936219550388086122680804351981302952520668721961061743326267670012295917472801492421548705621651112285147082838335305797697614863835448366332117451508911878682754720094463339154779371114528114190315127969169180151768594202110979108995361812188425173216784463673692614307120157410478760155342392539932815469504493869546816216674443459786761494134432095397029989474346125211206311320240242205790256268653369498256284322500317369664361134279684738323667127465842860449400126724095310844711261004897591257181272273256298292754219480709743191346075627233467935680373555305534729170764308534769155907424969066502892774869387583143419419872033632112558143136759933248109798460803517526139934116248699937946271150371193647023010691529047965901221127190299909879446452563225079948682901014926397781558549392715563639863506653489395629560458037856099499000208400136326797668539692507733736762510919882796568603009529285267051096039208068344704012264764358380306597676006656195012752996803655460948690825980670800834656355789282492151485829221458930381489623083337286220133998232959853157786657431841027329154178268092521522862356147640700756325869149269983329374476451633040988592960375371990086658700441673072154847121524939546219257092843552719302674416732246715347817262446071181427602236400628658703731264212292096691822757712852542239145773063645238873399597530796553474216045280780649632435151828161656683836444675597376908547087753475997673982010856935566033771111225040097890222521968506494002923133835673585099428884110223225622232371460225236945147738728116663920318284652495572636781885526297444108308111181710194797516213493508691357869731689092833225420842536068789937933238491667998034913675949771642922303537336956427530433552237675106593560899530200351322485597923771023935423483561831323724015265099494045583385571834285865112574079286118149185401208841468012662912920677515242726952365484878238175271725137573602280278126775794613307836374378277052542451732920171323366459164140601778338632125258637773575060164231636176540306888072069633052088905226627032530290067274209112549370444009371097766251761135337078222795183625663883334388659638037593957780283434728212236069807774045218103122672722467098602409767657210458755272689012515472316974217815763488818239913770141291075684670138162218595001384041696732447939291017257610222282683327806089916536606723944202273954415251039602797887773510641358254024808453970865116933469771204313818961138860276278450459826207241166457765195197069249539335448775289252059558538440246779032424578468920286900192885410057319286064372234547422674465800188069462617024101650391637620570843962042613874983502614531818226828994942379902540603267371060345005330292586283842531852237154022960403639036440059862037901929149808221055780141258683222264474292861916358853448559548927859394813889229268446303137264966716456659992493342735455966836299112303080303500798646759455525356799086461508327650675751938422786070308821925057434040800421675140030747845408452235985716706654837102555284686641984764312450811450233411047687789062295625220615858235147225437869923341935976002737201101485146750802218676373489809188851612778971514641689039965255180884945442874540279661258153869022342230952215302241845645173488205831077581691702760345787715244125420921395898291969984864645630435235402904443042627208755209430184305452802855972153464676748991598158187156440558718090447804223579140528892189792850651621730561321668051216927431563187438048870682739671073951830743307113040438303360709378811563304476714549252554209897372450962236389944238787682022989170388937745337549044930486532552892149589641040426410924801314681290306090404780549362564453610219597536229909201097759627132093330185509589048087439844014969789952971943104327771257421746566739393229358011960308783867100868655797442323114704283487812893636081557971578569468238291278546763339458846597508793642667822109046619953937298489743221336942604686802585491518784912890384624339263714465022719470839622405715152525063930428070677533946116495589929257349026944944454721969512925683433337132966101219849605220434194958909435735295108761955501114354804898790538345896442769294096842013161430036106646553996598115730921827385266211664969006745798002490578012428240150958295009901613963547020467939896714351862506511168459247265181368265812823500145950160596947609166267686777318485742228450744444206947395588977318600607769502071029982147467576249668961140459883648045206622652214833120875157137193571782115725047743775095396691126408066969691455924360268411997963291136918353876725001907624850427885262576400987512042352815212559484050841095948995368011526498120894834480245061415511294786256739083159373943272081648342592348301981915760361504954281272553762120356168826280515586261305830316128975694957928073065486060471604635516216264961950718124753204359255205024777394784090674937697760543128095024773392317617982715955428942669369614542319625587002940239899540966484997605689998760362627279055266029225001371993327499927288717029196783683842545095445378592749414953262871125698850493477318322705828671246520439558638752646078730916900329263683116612736435823393767701853382927336657680846196761458755051398825040704920066204404012655940680255115371244902575522438529789719851720387414122065264917202882187502608669423890065767450079320958655097453599017398092622353709633652224882177236626370017554372772040624449098723929378388593833951463606112397269419100483521832293641367492188601823167454999283706650875083742148452329492438010432290307084865615241243628414922849309052787951599332689927728163164091029388208519936199521462816128293484797139672346057604654920048402756173067911790640505107930988012511708522271197775094306798749882723937671244919023791660437280642744177662306001166273491000175782906881521514980742877339714983379648930500867049238502712390310331283478841369197382071365546586806972631971080781507566518346185724199531475533551902085712031741801321391363591872218593508434293402634204838707862483596148673180670365987541639872408653181003158050783795702866204077118163576114842467215368450070405462875345733493703801380372410618955841903148528482326778560966250613479879314975253938479033963161783489426488859832035997922920421054379864134961528989522250136144018107863139551993579127752943089330765178139651974218931065206504759614231635614707741658026357656738433755633030338963900948289507610335694546971317217776934483146567142722167399165130613688719590957658820128105061809540077002449525002619945827914341957718036764087802687921101403261775860278940596021861739834388847036085338589749479468043320390470628669618481014863129590244167026408882653766763735196241766717766161176370000747021638400186176713625535525846270807445034327765254883054076192103306921866514430408788389551201341677959069877987201542656130049456982159515618863731157803068185008887408260388281514922482748726821594316419315016701305401455673013099665269611207804425494728857004960288379532218599346501211162277240856929407632141510803169092892551573883943002267361937201258296816875762846909753139927698177417677445685240716617127586189770792678602411012138625566709679440040769179106180435923908224973582514098655904494783798231456201204479410375812285728048582750546747370129433901721968819919116546828318717787085261327637604724891372760241403769514104948288441650346578852077320214246733396691845278130419500165822379828122218252027131846660634262203159644089216342323851984977831375049423476218878114966326307596863822532007191707917569280922571252220606252738851241537713105873153529335000521569166820616132020441029423783704576725907469923251658551181398757386144248332707287595056841021989946902816211384854340206869205255125178226981385740581492325958474241670780201285042391716505412128151355935796705550817247101949239945773922288123749831745414410737005194434343043612408341555266614827319656090157442836792334753993341152349162327179399857810849644183618614554492670957690577376741787719369761893955269377047816516253576831412472768818124729164546918279090072746159040761346979797191030534521239562027282368540466808916511903349341468505321321388390045922458503778802772588011739902988960267286390941214305207854546049262244843122126877137297007795194589884185351824178789306662462482926904475052075201207523437440313743630932380682159026010987067281285502256252748100886100687771186543119678050460541726200198798492093618086757395129085610322756220005999638400920588750372223142114697600134060082432286644324057886458638014461740548809553450483029772118838044190460801649794403046199591878201311033540300562172844538592937317260893286539276927444321234945588384075490537537336363456350878174071088185241441074454694350260504091422209042466621584830476709104063864704849641780435679518495186240736447039398696618776212968070908243840791629820606573077238744513329413125835055504843960030985673602179368316472997360801235400986599476998645736174763691256158513805567931280473646581347664791846526002972796565913829555357085106761844624253874751283050265931041941750347619357807101439669297757812912446021366830235297460559299906366025448039458295065662489014475560727353158211054185986327424284981044166492668715406260758789011388818938743543011530205149374636971554073892381274046294642015436903029121424181468585883227820945034442834850834631878695193861900465013510625693890158223809203498401335814711587911412675134295649115517623921551840951299236330178810051057521815104142994673488543776348898509199623853702256099090305052607153636157498596932171331003933284483211405481937373848099907226718874107655363761674468893781120647325416353605813781199129301099216332844222965399135859571970095049336659684399207154623827383619311106119241280872200379228669842370551297926155526593790880171699631705532953213170574349972227495720000906545110060946595143399939504762503793240143887071029384296412167317126016804578815811347244814042221567309277562642334819549810813228730215192159052848381002155237449214947102196706897588709440950665344164876373536480014155830495850827496023346359680404607089558758028068002604685121932223844545725149509116068433985828170993312473527597216019019423779170085590695260399279017496545933081432106081718035063233636905821492541969412615527106155896893426890155261632795523756062331286503164841256602414614588337849025631562941027496974320677761057243450571659456851933276017170329824694536661582269866828564166827674745686628666971373624167031140949637220106483538503464567402590013799544806993826679651996125151708565111460246909145028331626215488074569418378155281169454007728017289587074905930632936293964498823756178595493046500920729867205810754981243545816642314893481746621902119929728117306718007236632423445760994551395283338613355317976402804171151889439760953211008608260734118694757510820654956865899108476091283473199256513182893206150739201294925791088927832743460795829565583662449829130913194215218329091117163686691381222983203624906694675235043538079445006638443654341211821885907892034946588688725405074206553544637103650106804718505876170497789128470231324371311752987141346831440372388303636670230387171727955219160024312939508133890128464409945885345797290364817796244195302046709642281792735286788754588693067255853885883659486479266497878079982333130151178335788114294766187809565797931970408918824004162664057006543355364980653418530896411095454516384663035698033711514607552838100512935980092373053858681799350062542753289690642570157333987558801412260960870561924123219024833976167076771081048586370338732442105290350465246802965850896798873073787466707352092520237303574515031347946780747974761834189547122394052015985011084214168569473431186733414112501073023855646048770286818407240427839616142732774284882827915060631236175508354701890951058028902415456342437623788783819164599847517931170324490570107446952819470585106479270818946541265053649439925008664272528202412519480467361148354739448850621391033938826660185890057662264752384237984716073494848509171998650538290624090434911651898494386301388041745277481130052733195739028414422540365881536063115010603947426489862330416372479319562308048222961802976527987460283962220895489382840284847795299383631564638431215379873058903856469096376237818040525768925386931524664190168396326311134995761048735806198678904092398157829386267586992215566106974747284471398734372472106980677907005346516786583948096802981704884432017355723290358434053476111196529900968338200361425596441111821687823939664403360846831960842900224916256170254402039644445985896214809388527807889336802740733245520715396033190055703321017849136326122033861733216172857780622223900111673024422019646377193010683532980901435552158894384260003616712592284464726216460412469438619446664223583391469293401838419804630444105517869713263081245285852799241577880740490087523081934354314360364532526375458600681610321979499136537202138048885317978114325897837585747743817030497207189489596421071924444036316558353041026586711763184527687987399617896186792181977565963955899577524032899369444330420809518643149213273725070591912325401740375431099663929316385325385133222752611523952275498715776523127865453272467625451151464163784662688517486525572778127100844741731949108744855804369042648249746559724365281394624204692947211392920643664411226902218432872173529208420238468216993047483350525556238878265520847209067744077177478826488378108119945906106207952743797705807217168618161534467313460388999648879003698234770695942983344171832316937463148952922040076908518544772521534549584498690688558810483829128943026868550402543656266100963467230179113545802261603741716067231528168916838356337657208193541361928537580170404925538271874723327408694939247626765670211517167073347699110646368956535651588005545733732511331814621092076674621719580504055868094956083566014091870373341315416104845586675837417342741607493261645026521754000744239917395869690773346470937173595724692466945007843551074159633570590953977742528177554335235315188497467604915619233207534290588169539955213624570182178160258995068198440682359749694809915808719309300734662836335177798916014453007548872338429747324852299989052600312345140293240182435952769505223817945690111967237293723870434491468168730120550100327782179792351458614595816719975357714115245744131451447102276472943827554889808986927663182642990423580676150278051514806211091745109885563405692163683166154481335468522374308652334690285295411362849577957141031799440608318709527250526314228384206184819090532536569284654787613352877902759879884911071100926556765418756651392815244439120357945999154204039576765256591266625353480414785282064471620585098159348933299383674084949281475398474753368441631985929445705794638417481784183186878994487115202955045029203152017068101992167332808770616110829739732995456977581538337505062919355499692783222592816612182321912951307855935646561673775869889543560706497261111309162790578970630842365995216712791027327066610427598272169522549587250943248621784527109139126119766425963520435438596305014223548441025493336193015108095494627285688822005766681095186731721137223860121658229091909624081754866149855346360778316759811261904045322281499259199537503783978713623737231794538333340866412081372016013605392057285484248543156975320425409115950434307819264950590404909005911241327435472281486516905575292735919478314665373273084507779331485018739488660208569751143355427170538957436774323336711978479738276033507916013645106651086843440244950448073285718212971073847505090397661619737118894701675273330858357198174974770070053607772906426458616499781340558069321868328539231972335969523035548263095383762273078458225136635814159758186763362927750512341961802988886923919800940755734220150861446520383995271668571115640027690606831481054866403105051205205404120277434042462543926272418878199258712968250993166396631337296888570731842078933596465583561433502716155780936601285864018392613131559522505370177530889862930855900272496688610094395779935757749576724951700889193042353290200192627573596492303935825888780798235990351044233077618565824596892805055619286335436416113554202000044970569424991878198978653664743180297240585562521919512166106679952359949259131471818169723682056171770908666097754995897221505089112617699369651691804472892904791268147586710875513143283813174129012575329752386533686548088658850806486015095905527594831425039612567835287137005446631088007879259421687476798916081290190033070397978361462684492839007244456365839258829625701687848760242359061478798862972108580706541459845239204989229723657525048012987224774370410547791701044504253846327366437543149625092282719288571889284447502955899704237517462782523634307688079094682888365612937010489039156290599494135535425511751384142677606148397103293429063239289237502362997571708963414053369548419666128451807813451689249604580786394355973633516517202097799194210037862695161800175269308841595733091376408216571455127207873623133500334790994929511278990611310218655678497981239694516383125296641740934941717175245586686671929704256727396693478598898681488318456890287247908155093949522376045492126155764925400421918589036083484928198780656845340510974989070774036464569580925832744047763676127864470855492735311494269201970768542448972294297184936746471830715565653469698268641491591418273551800101108916017775624842087083135060688101060148924536933111521506149217818692746613251075310684550387533216525549999921075256987560744320183249026754271716983169994992566803179138278583294801567858398406922783316537169934225733422569459063836042508706969121231439158787074421741638845465922097063711524199063353499258840050016515559331291104622405637343556968517275478044820638417914109995534745806359323773607899302125114291269888987126029686775248620701955853928508677972090966841656309900653190977918434917467627439697696241445115542671196504566876966729340327428589698873764378159774784112049596007983020593804410792673072242871505734088191550895333359650817591757841553855187664238766609643622449300123246452649658534768442242422058610705898036249194631463285487012962615317257496049569481082288815759041604510542139791857913659100761860941500905640408774892037513508768040620162544730374240611543580403227810009645600079203140550356422599753327697124745519970804728202327505993643101128601401197674914136270237409942220887459873373813710207348169122747521507912443308915148765949663571891958288142411242407204367411974555040221592351020732151549773892620321451691134952910168087705626620732573111962521320214824311082214442965164743075535477857369207094190980151086967962543959475770264829024647314263632808548374605272092176886539069418459528695272698721434743258492936696823310006355426197117791959570334912672208085783129988087484022452532097762527675943560749707522031704286041584388910783625476674669185524172068416055602096385994735022454726398918970443526234274724850437741703440139894344438911857227460667559440983397040091558882526464017615054639637372502878420533659481818188913424293860785485856443731952755621926184788040692444727955078106122401756683136233191862944965230523166188495634622399667875696487575686521244948581490836951876991274734305613014446564790140146415104661831686196604487691892373289518993280311957362180459975008786600504745249719079246589557967687050269561697447079618336915197159999126364521132758017199359180102245510504158595188434714072233199676322636915422938306855352679290371930831092795948524719371416978063814125767684616446880774364591177695326889666989011677570763302424614310163928761720843894939585390873695471725047358901279723048089276997141455847902004416903478871314777555259998486286361147652847668073306410047334462292629619261263493635993649308434670995438580174288232564525872359980937006180139267958679161424834631922865332717244202371350654083385658365681962210693838800141351324461564521836642915022131536897633128910687070553101899376349771132345220286129568162235969716477049470571426518515105374858082381846705696675037903249604890576993402868924432541085620347482197506806788276940667850808725444086947478192542350640488949780899252617541399071991615793317775688754267046090393597531674154349109513448655648860685796793403470157084847561138817955702070695307001848593253973942418306119615492732575733647362829534925823630777419395636647916729869881475243661629619893299471374342175801834405106311945231896918900830878393892603152833856154527189855314507425827920032389434649421445864941089103586223586668134078208478439577058880884777085068183428488123948600869981425831341310977322349846721838204654252331054100906441228629425832665436212496361310679057640220342807584386515378645610935361781043737056350485547298432847922502760242375299853544089269760469302941023543432436106738260029581769900135736498385618648632705031983639388358453367581654471543833456125669408169397442159250574761542236735332793070392986944639008056569089151068135629680745185972203499893138112997288896507152426979894057530830471825610349431960575553909017697496758629263989213974332411243775125270965440362787106737854491309341463922267992607208490468856165756298602376722292576417671301620983464822422535390916905372570288758943439895216522421158854761022200807927152738474423235536295178284769004477991629296122805550185711077038079777193105998040505465515316034752082884036306632936107238289886797499559677333079533604851632652719186768109676470557902574258417556590399894775264971170194971796117481691793051733968396962410366317455635362955119343888565554108126559756948020786292621702342426530352143908399975612775983087334204530454544826514456980847162299938169423521161892879868324487532882243644436125704857215815022803199857153736940092774727237492222417042631838446802181560567000486466679622460010826179216028104833110555968472518127490359100963252835935556241365808511223242783152002067130304341708134299585354475798072896764214096536521956929054436407344890443520610023537753943457890023603195987869987140962334554394555609180041202661509589945241557024248213615648578909304194537227035556880709630690049519873120786100884694396525909252160255608284871168312883876875181898269445620011557842576035138819725640992844021197083426783695508457912037988985548188833285356482596950643271388382749876333992549126416105531927506412483818691554103121398145211773145257456445531745946177073991104373769018734928556593188638851681101248917639810176243201811212968587799073965093879871807561012827761733818430624754345121394678213245832050349393766077411829272090251385294514546895291090439981494072439834234828439704259382196124442629983163180828216115230468121285329437476842979833802652957620236526000165504628592462339340420015491099991689531692671438678939695259488860830845266391620745167227553184061782281476182711678912397463854466149825445478395311258366138342795176964255428314930919009685786462175409788794260634295305861224856182195082355245974620563829710717869769923719651316991190148855449516001833210529593571960702939187012583060947297958557786208357611447358024019798530691609725253666260692321355607008021727540687074987426083000525075473082743892193230941900897667324241610865843512869985317063988914344379176895494877284025506852650814365628020922312754349050123293521758889902494740213987329568437231208872426001894233471860469647045161361654487962358748432733906486858882825139231059181453538235004293497188602643306006517995931531218031270080213534775421701270002017206850451421214237907906397239537260387657743304816362142176666779946592317468764432128933471618647056537259856261285300524634255911734896654996146612518855259815420617425294763017690394379788254265607259136085117415874546040487414313928204549540110929675820031683648262403127510062684212894663064040284056008147412373688976772633547961088072032517574226526239990885085194565558109794624820101946199579793329676593911345789741361389354290985885697714852033097959436897395642538760427758456816146927139051735183239776390714068454918592990110874721203631937030004156750100843202253371841239982258040688989274899024652992725199261363534659764205098120667981164382857549853822432552593056283732467958035508396800788945595631305766754634957843414059910000496989896707750116145255518242337182235412310963463947687959740316266615993213298058376027466589444792642933097699956240120435926432105150236864840783734983850652479132055689995105115486671196558212433565940720421762190498885541678632368715912865238799631081377124624670622931497013975254359632357583511599856224911935991983303311429480173430250591880219379352450134755891774822444152850199350706672652210662904200740778835382175321696514693721117022104108509057276364418801712459729658423965315056601555827688616451664517072708109444826355983359820296427881604703488584089181901845824904163375011755709850083322320685530558326113879537594192128168348124494144657169076738855774531118293945624281535923083123796725645504528497982486896548981376066107738894237784983868606887177068775989054309530593225498565280707651418208880408579980829471168151543283345976422644033913097460393409624001594110506642925082992199918630652427828434531977041848662211465207591365886512562004365712985772036293056869914890480088672106234668167823776579334122972695214081813468986716319762188153797711079451832337059333910216205072722732517984069802321258927992111009410725621960127379231964838528076790660344010109513933517764871794311236078802066725682101548532305263758709581573251486139642526472494151907060037123755089782863916302356769268719353338775004490230703404327608737145853874091387013332737559233712887390171171449415081442433512873116254081670828190253376648903551683874555698454701684157203372451122235263591641948508653968390254236148773533931919668126485557628956557098276529547170651599272366254528875146561290867047066377322108418025285557422850236173592976141811811043224517341109646484271059087260589746259441440406688680282512690645697632405132805687839805289625805930973699506540020525810546069224262207687142106202208197505150476743703944743603227670375304049681511027875575176874357376958583974014313274039333925528994717573319339162615323498463942921507184958907146565070738513503267772556369158223243050142193199254805797654798325733064598751509008136713694982568887663895592751237443119649499045184848538159051983778709124652687645834610914072186145071745205812633559806998401327707767355308350847936173068838782899322595870086460018473230611634847018478897183078143296379865619667256418197695441383723533233135612353618791790256094874807295028770629646053641553049747842474760594365116612505829715711641131167083934947504421992186463682361275947273600182924501631405701414184393774025921749734016564855427644247846607071107159997627206217475333848193911034893657168093433757009343302581858794188604579811495884392270998115953390401217889831146846798918076658091638435769527967502944713773494493333927648370278505670412566088188642052786062281615088483678796103596087214692579606647580609684605406379662491230325028653134416253817790834164103738573738424295028329662236624308868556869689451011781095214100933101945644067870232985038871252306638876921212184551013208190653223335220865261900924099155780724020074927924597712706586833808464160938773345485926069795992689474294333116036375301596208247468466365755387952187811989736131535562040882882942001216920957870423052839780184623440117291054322568553663245777987244323113659219003292642615276705465554600392824062644373841536441452716777009357162419119520893087482557002582319484653844448110666707335751661269961562094259390077489782102618280560019015022714874110977513359715414257316914271134552715666743342662554130063043340893224519323472198806467978462750615858164339392907372528121999219203490938248621337213867973444465758086027737254075728614515723520604094450418850171744610484363910736867795504469808663109360648486134146532177359521175856560350101402980824056617750791942511126066534924351303103681351367607723155108845833213454364828760574684683402932234548223296639075091844934101232993527849446235287396330585133912191025066185068237575848332732883679574315385167316286865571063700008106421883660945221997966279027656141791156911189881326621474801663818762647647822666432310188110441511897710728231642848877596803798571493715502458813209811258566590095665550211027312838736069811873142812196665894797295558771504571965715241256087364270079188742250692614871001817953234455749045316290824364620945372535914077559493570072950490082917393194342595197898776952039995721652448317951809139671964862940519154357854210881100737475494440594651753295202396027585477765298385460736332104827374597949782383997200981189111627713488894563048819065238205631018987894715910332615685082828991389136463563289972654797914732125056705611106696923491264828429272274089648218738369956026260606356048157768899776971390466752567168463876348707835461455390669919810932714899495317938158772307765660018789621597514248091188182286841856343111318005221897450938393527956873498389894132734988261446340882589385906213791330481335105410502957475174417836622423356217767852456789629654792655899266096740390775142620944578956528689608185763280270329555951939088260278817068487661922920570032028605658110741579904792699174380927556228605099780867301817439381831944982820012883916055993080035424024511412559623310948374669920341782990462670822318551051553677013275481754457043589948692933862148962229566501931011151215761915692951251281414124355851903202653853156204129073580504222398778307404450707146091150303801721965508557986241046115316763271773848196479074522252714821301969628177901886676684184471934665519215734760125973987279877064088818031698613060130876548921767542363461908714813344321829807569843097714403415825933404205806311297048553782676026287567227877952905454010006627502544546846863127698701827623988247380299646644503298068009441923959446246970415388159616724665107783245758586615690979877812652497893333840226792551315336512787789591158741357129474643317331292578148457528168957999724130381405994137153776876131428122339536473976849124537516867133423891498905582066832795527041800799778596976683492115503110480808590978827868433444949229169303205609309775738705459716760383815860111649555848726350751139345085058797681682359084801116797582094819210850969233925265464809526027917287085968427971130267491210447779351272463946312209477705792219778652766136581125243300390683903628969469255829696606253697502517663581405678203639905303980875688153579225490532846931740437025716200974738363449729899443836917641059522670170322071299090590426236925379600141724085396453205862696480239678774825317244187439747238908315984715820461715927437395268885080196299820233752592982521822474533484428381627856475235478489056595390309836457810324961790175970586163401535453358828618827731671455161178989559413101756976587747885010982914104769129872774153761788947658500713955904273122742979863416107456953942061583797056807994937035208039595751287303316796341351001774737008687321128429932328588616274693643981007403833151385798968635275520740940106936105844363111269237843952482928020002733268785759043780226997317608476481913051261860074224969408659648602688236028898210731050050494411513961653280744489211803614358631900078010171216076354920431215273646609286991201577328052555505416020546658471975562967222452350825964211411121051278390336439571870713527419425566116103855634103084721683775227203090518430722766737770775269713379916525669033318160773070062664244896257788186857037284624859582295639807610630012204211521152841078450041333427596282062910111580397513781112610182895466863186880530291057235536178802719965670199171582677623381229961505554095498731368306921804419507086086464059375636768256718824603282026320567799126304332932591128347397810145884295450499457148398599906822864582415055307158203642092480653838883581331129385557819831477765216178698609486886222319954348011692914598156812912123373650321765823283302885378794867336311925469949535366342551980595723224424238815240181642932197454453482389874817919653197526614302840466842961103117692651131135649251540271750088696337991013655545148814416312155468794925877754845961818998589112226989837689689936350600570991707310729372926588978790510447915168055175075085659728883835693880694414954283815873107212214326500300817483833736539167703292898407424326782833957463276511000015417047901311998670165387395849350897762660905840026732214881424625761604264685092877915885852064421063995958656782905173084054008061846955501537539310394035750760104635429229216940600708323693596671208560420538213451376060698142929527178278878497445572392989969757408503596631957659941583892492821969606845692599728198450237196590787619333791244933873984663819944000249693520415330900304128547693497964232326798810507183112250438103279328510815854213208064112931685484153996230921907042141503771708175322339145776465919684060703535291538367469363578114649697874444024188264351223349296372351228345133956036810589388959844590976910336048797649425067842728613042983964952423477328459464986985582887710983633885448784745118183891337312561144248686883831346209865972936969553370228701587548377000269407616125821257760622411216310790851847448215574503004365734195688531514136945025852691831046860836031850542018284970965924295738432452417185432892961180281303576734912176427090852813779273419701730230529810059769984349728433380999590108538193004087810679479176914180015096657787412481234467139786056645138032952058002234111478568711341273964165768979474215349053302757626987604502516707820524065348019285689243208634978717786628760094306250159165107732632775548300942390571728256695727411615851557068130430707513226605431406627378566090479362464257107746161822660190398256460549827236684941859292690093512194957029708012443275133625666095330280680939117533229445092564791015072893227487805516131392812621143571386309249904628680471739749144513742446939977606988474656950168205295150596270922476829456786149425983173945062032980391234509280483800308775570423008980400879976836844687567455585070716826186469896625774181419518640909714087937047362046589623109403095830265356457837257732446098836984421218564552002753117348992504905252261736783038076971967123051006765676024587192021594710152280899388088701991596314359632091787955165359998634999872529670885209688693589933326335134563318623036945521134076501442608691856136749954468431581426159409373904850324503809410145889322020623942303627103834174473880528494321204888213012358084916124515722189892202743226858829234898868328231875993043049678031230107021196260193211473040137794328563606234422521328796048902078789891855204970878700866422503750366594729492530730611090754319699566744974435098577232923734313093469325900679296180270602184517519290164102929623110704781027046238262741909917245853389640953995413890247646462554376776526679803914285505510835510019928683806455115369702700110572521415850382047839041046995010511518659301591181358546265896857194562417873479772540721416496434662549536919194502699831801749064175599883860203358812031088179040163435731340807965666212290752214375124554686582895741547724459131094809664628141855256553961511946814690549952613652349866419742047775727512917198671484392852455718229477251765347720748506755129630286290723585998137010483102752778748581219923572122066362319660821633176883272416365600882256950990399170902757717855513150784207930212690542503332113504166892465153924440517618164952584077825179696359352833702666789196291652973757996739688536683720810223548447581449735767623560680544592483029846313363787414824501178128539749686888120852168002134292012761800586183781506011133814681458836372365379254429995791350353640335116472198326091545971881304208172447519415119724560331996587634895353096091815260884860934022897114788504215103055287774858050016938311009230607601445996791383638516424625808911642230330323467193782174634659982254642029731969779123712664432648928514572520493283636473372363813256317345760068929181041762912898143451815292275453408362281459990729482803763845389428298400673646643498593595291228158571205047535186218908950763977920533039098754404782932393637737715900865535124859709537848852642755063701396983066421802098268956755010583948833985727567974501459341737019856307378242042397091410479741879937184118827226976969633286365128213363341981191381167153494714360040979290602279384071588125149891725952956493842587100828015240191374389657222404213780816577344138946019110265099899813462573032019226261306260872894741819607735403079461534058512893292836461530934004924266301773525423589660163011709561694582276120161155215645696702713201461521026713120967731143734355183704236032971040922265768827044313582976287721206971427906145900361961188516198821509236573149286414517645645710714358756579477737038771486239401234128343945987008938352362360548939741766745550341803277649099209226464611596873977197355998561375007635917845615320237753851037041668113290793541235981945298887898007598170881023217578030791264665110153296998459666630092997940690652610773635231211588084914699452925681647079079332411540376443202461836287809806344571581942924574781594347070003680659053810992173613869006945602959538593982772897768971574323990498099210749537458181745674000482538198277969347249761085225842424009205062499466151775250644757076986030161059578159727071405970453410812264683369868239331076158469378991128941059751964066051948016937214857290130324502635909198497267902240500122259646713441317674801842113141157033714319647985380413501608525951902643598338161872266468849751325806554763343479889436401915024455721972801446702124359839747902601744824490134922654005100735848276871433838519224379632785731581067807182423979910109048166965190095244270485932503598338699321229251925241998022659687733251803093469191556148388181215242088085576957258378516903497774955225924715028176435678363738763270506264437733059504614951504759588110380475747463315556429166475158006765869740353915943892022879502962386897737847824809899075243248104699503060357888295802929069148496822605722153417756150882994349510179975517244866681088060480221423273130127322563321413511617210307642224710423782694169365560034721331480192309618764863875530888014907716930268538675302639589512191858384053768580563139496240225972784419330545415116368423169919224464268650751782016454201169979173544789297672383977751432108230287497884061164852287214828664371329529637998630841192800587192907047223891383878503640153633515983107544350867768120670759599101876891118275261132085209128123169882474915527830558238898676653673988928180599871059112605855658178051027936122132890691593383054194061575620216446541433301357703136799179879477318664507961866633549433248483861915244345545990824503926870717353026979942210981891233177180109381242232816822455704305419486128194957304972605556149093055737956412751805373182935313013140688937421953117123807401824224883324549131306667594479073486677003543014358553840117110647640532171875937281299987735742497994912060975288327564707346001621827167665149137113545859872641405097665794798036003015107289601938715791575573357394339266376373463180723239618208127879709681507838630054915256799312107341151035865892812006350391422716484941256264050013167079044287198728591815144725243389596929468289154622882972013069343745497244070719208377064921676707029975024994838725336492476017981907353178341729865115055971462965287657834939654088468076309098150846236449488330169126928877330946733627626780771893378471737188788299073622758009081607282452959247640759607112681612525296428809808440212043769874879646669240680519106692604079289721491262100840028650887935607068680481846316058188680396682621878825702113235452187347380587777872720307345715781304670872667519015160326115359439106112425612475927264162827324378565782842045902553746596249121872593667349028918040217841799202086982874339142597719406831387568909381652949858135286017233393898434168814826745118101339433081851746249198642430588400176406473574745985848260602488995372552990781289851376332198915892777881392587976148498827765301491826187363645756944274152946749048704910263019782737530718998834189584500288443700160670445941023629593648129077990406744197442855171688095987571395433622610756636228271321615466140372974495461097323979231969809808455294372623719883842719583758818701257110481170611420614321561689508647934868182547968215956641413561263577254785976443280338565083397207425345715074269337531155674411278154743804375504936972126011328864369169463138976263148764977725936702146950336967767730019302859157855456187776045695171248630180766166885146337688470441876360021500821478496718915870615393159778834666516965789832559970649455147642114606735482495290287123788496481792193110468063810695847349253123948794184264708318926743384918706367464130156766631778117234718690782043829113486385407364290471357739722628370267523273050686187449098452569986400704007441642143458499422096028325968231858436528682467383014231633340757812745946616361641065772867464341622416878856103680290728414854038792955053232180193120356311786485465238719168538995455046667971666727787695701079606369841335299601054897476522810020797379956153555955177340194445947024577585263397953337626986701988764019052574392407340784909280684668206642860283877406390067713814790096368011116793617134443180682674750208595194844031900102372853108443941588393862911870691407442282710799342757022083663017312206788894088405128030520224250598449914902853356157363907417785185064082521687746974918835625260256920360314704391032557261287734059723931043882806817285287753763844569715440076712431709566029490467716191620238709676754706109418492641937143758752589310811122981823782920278349879063436474584724875666278904127880104435332079340061135401269449590345338003777916186287016186073511361931527509199971760888004537890243138905866761885711557253064288022448003884804114707628013579669832998571068075611167547187986492194635225064295492706830812756716984696285411516463128067874023099541202007299224208070593347063161246091294171643386205939900555555295850828086448729199467382017102027550902331933812073261263542995978497294137553805893199073970191434764627878501245440138760088085111765277545429805163804988467686947729900013772620842186042581966324673745083181480086312311910988655932717239172847650809734055081276366511577371097426393759841809073229756049280201522076396615750248793928563906618068816562389419111641658883995840974039229930272791280552155995142713860585929483812094264695390936272433250419200067742879903666365952321110841009691637612786701156860590096789374565676490309559835312682556055862313016059509033206626540742883092664024850243905792337873115105410905560638177973501115758901891098483322622658292062486305536089673982271971621243941239835510727648220465567385244592094420670861512557119372780618906021732913859097972960106327331700929743525407244260281005300666170771700009233120102627758726411495836586719044174061492119907214282734055461482948381401691643432056122598214980796209117495694852465573365586585203582168544661466577207907514176325141020164854527176991794798649124323851022443946116398103569518811594777214490137161148211439291146780022723158614228051549924997325739498665120201728670539861207477851215383059504179207100966683634731127073001145021146476330695894312956284484789945540512693323374440591503641684878546411642154441353190663516881201789182927443803257272250549930759315940422596648450874619759589765751826983881059847891571282494199029853483601688715587185818568044487466156265248569579604324081393165219751950950746831313868508075782450972862504489016624060746988690365767545584796460464203210899880467532930635009586000772457377725460875163655951489542186251469214426073726689924384050743698192671171802497489104076046898699377893717184828117936589085970285455526584577615392837656556102065270805984591279570998254702160422117519366722467139195018056599600991711451439775738498408626559143628816292614540563880993397320524462319824461516359631397862495555162269825833665536288068276335493088574623938675656648811996470441066958960769336836014162737955105482128728127330937443692235233395618205196922427175353644166888871227689548689589472796053495133312988261476874331181661769001642535736779656762087753060626737734581080538672040896333111267219102651573566593598045614640304800159498032287361501819938351880889734251023049967283015810060382574766771857587428628531824139273113868336770150162894951191218772628531459764896467722674825777283369191539210641666722439262454804175994039904129966685011174686605729534408106986531947589119016237796172340742092170597827041315924097979078716742958988950494289000713950709750798518153357314709686205030355269321038356175756279977538374688090868826278863797347614280826116083595659913824250022382354837481690543908557472659789565403587512929979777531162367640094362409505321500776381044306918125378250350974974991040026996069290112212714125536278594750621139322643224784229880092021730787226355087344025809764962788128809551315272393962683081878074410216292970142797164155804371160102244463913395455460207138560235941503336024842088438521893325745972049230042719081896380207739830734480897314516223946957204207583778834769591931596496958065709216595074804612773760646365336170167440201380846048539000176791844575085658577270651404243137804598753989600023545549770992600099296063701303642050968017839862971598659334611668091426798108945464465025701631163593510300284481511130237563150238816799532813886653531320906623871845680168704014245472390508398868277586288168195170673850134136369101169548336837126798404629561815685927919867086411157493556947879999085178472438694427784344505118589641330813651820140474255648164332859057828869692017081337280938036227184879333254933838463374899701401501265151464068064182416624642296046734496474739906214599980009452631719648501446361855587011317021765398137490047796255750615861557460811601571898482298911112304688747586188247130644717148068336192586487938487128409710401446883693624983944458538642623447738954147121538597127650944608390502734501315419172403397433012071444652186569412980277995182728780859155067024984079973446683193678618787084700078923151142940261240368296061143626771118502740905826430335341901082380472324289597939951458812507476580616149918492320222101183045684668544557283917524244300198310800456110790865408366230422728199164178479617249935878358732715566905078333214485539614115296155232466174049745506480417461521764001150868831630094291953045081260080396927620423734349019928175119678800781631246371633965895512988265322572462480381059203713965711394652410860235904127879932748174219333844712176230741223384911595066585297256231937677925567684808605633682098324360580133526609549878203259193307062348617056459091512506396106041582585482234923334360230673433200500888712072279503349426908491941838640296768446270594870912478660100015149170687140672245256578656749668504151428673038608830351924142163637929744200306475073570101235757768077485208692126336116624074606534718121093857337743194936228900080801940537625897516865318600885759957766072752462707408475022107853111767005088584446307381634698872095606356039980390502429094200347860308475831924461686559272425851123835882588184963844856469685077125968765139205657906415956525617458533881459392309758102113305453345355001148627381631560549377240029168253219144943367870021634975483714186911495861533738342633608243220910801234853628447340626410161416203455227133096570748192968201271505721574226239774942983540090969776822158928107930744766275281809366852791534378612853260195690356720471025270256970066912055476155143207087930615345593808050840938460483871484437571608734912832610720494514265204107645657534608729768992854046458584365483870046474236586085396976534698566742490457710474762712705067697719972805648862968057315286599774700086160169710686212843626717279249118940242076186330017963958104152774265508660484848690098728554557035860437724347299640178223913576745883638369408182073078533585640937648874639519970724123760888329889552646232207287666461005618053117365509352173073039030010055495327166912956515055824171393776827176372031798713034564967738523393509093953566733017508194959718724581902599020567906020583247728270683826902594106231216371554518782039086627611064541141692674772147067967103468144921665580124590203811117437038390922744355396908852392976091322034769204215121095851214985818050723389055314103961552544270526989383431828677674454229393950580203669610997451416855397321723735694087603095053521441045822800711003359930013437131063347660720011943669860932256301604258231287237262322803828721674075708038606221534924751942050477314706963092162729171425878396508397937359966533803529160747877264471933268321912801218929732256559789584530823393339273518689351135953627385482366890694114591198460619049725314086061912472382587383946900112213362751128352350314727113204074461107089011719089166187849348082264287538823860067818854050561707173011825064137733896035529327921690616977688666612195619116004121742034015556991393847646186378950308438572837178763486947954237848961464033788249434169093666578496482093584370386437026066340959707566462376827452204397639874331463640267267001841226957578027570104829979414448262757929739505463150794782140170495873242540979736090017363968932853897020081524711514278973995381874611489556018350750795372032298790900777132439845929226369854062297332607448050601814462676042598383695936459152631740624693151357691559724487840665991267968009646662927456376944831546183698098480906405792432793996166437125174774517856681462639814317086441274787318906492082784106719419839185526786133719693936752066930428646857767324986810304093845467975370919894487428604998960125017751798977892411476446153808223992008225322286457855696682420929932219648393286273164128034837822498113804910303515123663028621954068394187020972991016749273614202620886396741066122063583740350110376807349290682691263493426689536881976352959148874331364631943928153688773179950700917278689520044416824075677607618626060226810192120484905985111907702703395349317503430446689566711333199907954053939565719345897373375934348595719902717831472918187944340732583674845291638084270196736292530862514532040880160217071392428477545639972242326002684966571748855441285791936435998452812515163573788790711503176715495467899671987967755333462699988310175467353836548124821338680137891230791095900983585536148352147718127046645900018552060705176768305607180549145693552576803372347886041431429946906474670367204349749978268282673350414268954346205854781141648618496781378710190172413614573998295092292166965831479775115599201795777951192926306493940436656523854419541819504799867544766282919913466224909117984074359068098413239001560513581213026810377826716071158694839473273364473214296877850710246022534563090965375801037800696048161566199391328074013874888032128335702114171819180072473658192617949937818786722661450852973616191771350059874010582057231732452717638271254835094828083727455493534802480911344623521546199948662024179721735858435132949203638708558817195771219526660599245402047229351894484538278650007304334500208118263477043275537818136734558301991202245127179142372169516098967510929454175398975296711418991478677481855436511216986430621356264332680947473232669813779021952990820236944208138238705927024351294243538102321299757708856235356158160042967098751590299318239472850640971618027649890589573473392354004444235882527834966854362028828388468986731375348449508699599896826312223396559077518673649615889700458428532569620173491831591563651147553460503855146527067175095988818025208028945976111364443889496877586725418233626350430000548529521675287474748415854999614941949573773340298086689363753077435985147673255490424615059696807113002926316749755033472174269939913146584621355394850401004898424356733640161365424967758781856806723879267864732835912317870449870547380727644090592625586117940421414697466125171113780601897474953401818067153617172623102377824531999703535959338519280809157661126415392241172982198878242627039469277859560114729913857972823505896616923486769456062378350728248387141787682282839642501047848354350806767193266379775357084818218649208654557398395831993220295824947597208357929903134094376511848731187334231509709541120138034999338944134925031927133322525903525620485012086438273250259894244775233000085859597301412941009261383572293861078813000329797966072802320373343966410322596675939139530287734931172442866467373529762068904703728709676234646117741953262878269586205584290308978337857204598701958035682002835629382048302768760765735534627732044687027598401283668634589059012309235641416860051625146009034148514590999216097789644063125988352441439227725227160249933953945482680097907029568115135413589850707475694347191787814769528388586647084936722555551940890916953123503081497893116870664132394745961642052079148348246953128979195548327129035774171206058996252995338578708716140553381782960901131696336983534592384415059232070474580597897932845324967097403170338338558519771537344028937648727764428952875463910582945331612929870406584015772498311970087365789407407459657773669135300865899772027520079906093337722086186078555332946796217163349773766517137510610289273118095283062294952420299639527899553192279721055924468828974789000172946747884897205863229627975461857280588825163601187637073027899272740658869374684350882433276717517684977218611509738809326816787249969426217046672719787723822548017016434862248309071317205895120822057758988879666143910535073340197578918632241086228677577404795074960258709799484772742387177952105506823976081823384627857073818875033437062549011535895899710502735641430673883041594189984524154102611546025513949120089529083664020907920157132287764118686215165006764331863968938761935297197346018276629855024058564315629190666233211494727610520363648202597020286246316387490184925178008417261855132047847099271652779000023191868639566620738130421552912208108885924435685677875811325504854570613704309862471418515132365281467492945497153704776094582786758456987747968399395156704485222800104410177301840956198767256810748202590572825414635770597615970228628629885147083784844039714266898358131342329466441002815072000018567404587581546939249170117776124187911885817694665624302222472571180354441893347964464997774571475268445544267192901643924897736137224497671690013818264692424540586354456551438892617717131983630555050546449201911217876391244524163912747984976291524718600571680689866165362696384087474091618759450085132033150689306892915433569061290925500609077911179944299817218858434568791658008789609829433908404383565371210113462947001233964971180942424990088303440364960057821288852546964795186772478244270686143464166598399373172820776265759056500652385234574000095336567180312071679924641425239913439928583738315999007903785894173983449636690230201816958308023542843671702506593454932699397688788627590323592685346122698561920869688624002879159368943770327731338481723240413505217670011720642818564671539989693246410114266724627649070238671338188684284888089100701625267517156646383469770074241393044805976526837550719971684772839180579911183223664807339454424980089527991289445184385061334542111954703481311682793289007470620158026576401707512968775288379666398372928930173949498659953712032599881218227953353889079027085346125744684302990399676005285226086569453420945286282269938802255261408669934563403628077954105936687633347627276606322837097494542494671166802535290645336680846488152707502969358080095518256331670196234045611095501269934354330299553230181389406705452767554708692209615349295982727393984291387764412847895956474068828283963436925768461084365113214220806815796266228360619179913692566054294424176568046936740665525101790236565554464606567680241108955570780092483923732579609488788071366937536091524544914846955939910301445346666307387809268267706682934399885530083155904401036684235173255228338052590334032303316963230844178602293741096124312844165123977472194326933733108575668933737365372228000109403250246878594945952730769180340678740888772177528185953030151089934734578188469824679145536522742692150958683615284942408039578746427970843382550301783792816864926410791911805308071747026839100723676118611853939818702940268402365765904472541166929453465730934145920217141125302833536802472167667693425370116293722299260262484577288643219927450197572591644648724539214435187557883503521315561460159085104383197308097311514861053393680339273712491937957334050600609875463427677675371814599218806637824554804088030232519894564215900940619377711890847517379815243025907130641204057164675521437978346235890803547989683781323069977930830149919984943610090366338860713391587845922640963922457116055305643130382016267693040010626059753800370284738965766809627959949733297531960514991357798581996357615025265558087309740595535013874531332833987029168960778126359424777565252801242610190074629102131244103495870814387211148212692479031758817886912957190115844698526833779150420604955532747051225801768722408854351752544478689383024377241211393074502600201787002342896929343011328970976410039049079967662368626458589984137240516033136513438338628099463573375816158866736712637499756212702972023865691340741577129329886297086612905495025409726197112815508272782594935081420205800108020891074920080157783619574857918193276063213030133123070093202681016706741733272439638291679318035342543612921806853446786779128246935110837112239588819307708665055315671797819507392689842662736135546752768470447466134511920749990766336861887172404406077329045673132270566031951976088632756975593193250710755780396822832725044791511642069934046764002672144169116173591780388811528228079905976249576793670884266463485528703043579622719233001858383987989930860532485606452851515553749682566227708797555735709008942540172770431520222873220898725208888782751746851694484412340060276087390058734566041403582197044724855659719663411493026327120518888618446325789758461594155833382759192635994578406858106069538619310984128498875176250519691280122511566410971256415031762108459153913747515620805504319102542918011680317723379456424724503138413341223628688592722655732230852005954952760348933982373686788919041735419372243779966840262369794439694095927550032698485088012865883463319506183098739028934580514965535131907226273361893611433654250345419095175930919044471657242305280895520849612303339348603167452159277909807633247197067056235938934146393088745869276848062360574044015388850557679588327976340766645932986260968382953807163424172240263016550430152292104503017215294199735339787300411020626275041811588900515812000640608064662998050877253417510333559354289496563750487069409500906141721753896991632387176392241477314207138599123980828015054616728875536416629804635786819709499437937140464036427623640013800394376372430046158817081397272722783370682107120468939428120893171766600014970216129374858222355069812951445700002842443838117003268887776864521906077669769959113285554591622588428496685983600730159540454713604417035428952904438602723355151461428272592717940176869760399227231419636604253150625398416234118762645941968828184966278099906540646418557697737799232191054647614889482868905488949332561325428066456940608759845830207722881425038132882525050461123865753343904983290176774704055970382598025240060070527778236050314683456932423047927258079535025400118719841570178521391675394327744274022687985938244244526855867242335724061987346803901486841339342893449512279984051299020293708376985722730757539231729765584050779577812568124511662441250415035059158929174223436207728763763846964267095291603506216141906330446517621262999183231931426141570754218436677144465593440976382134855967713619727559175661378152146788597159757063624542246855018982313018767292216955737581736680976953820517124094189444574602616174294148797609615611690072593695746377871984462909121157088808905734017257690008706423265265899247216163075894768457948137906881545624778704326880293391823879770931804999139587520113811010049704568490425935014853816973683852807515435990391097986825687773328544450688337791490344923185839591722470082968852738140792413530794848785849571673207190517075214529566585220454436909218630864431975344168922323551559922310771124556092241473127815457926791690647615650783738473040067346380618330681372103590988380935641358978562861366274857767993405212957840074837137968261235865839189945218287100669750936761079781180965787727111048002443099299437962705696788331084902277241150480444603858135264923541794083249760470703387652458084530306847363051858384146602254327294139971797972013903359825790396497807037907465133237303688165401321386992469486115498425171141746139126935879031280859729365009940269712679067596922177910755127482299541216665531665573337500653721078001667918386254465233101503188865399451323381957059795439621020828618347816053275158123520539094541165651557892443167325282429335189233547573348482899759734881749164836140205224797089756074295137928769590278052783356347361733851162899305983620021668345643782410139579607376270505367286252735932742968641307695838441254024248204327378239766960777852988516554428683213098369373137724740668401534652031580746636462654268793710426787012673264511641852353606640794914418613904151072736456477849247539480394137580282133422764108585888944963135490059069633283201373048782372308811126233290682256163056631001227192634183176114547774463292905725316488050897818098100868019611718479046184924233717568981331380246926194787322838977024923027332900371473149371150986018006668606953089767171356213618213033999980211617603800496004532602424510145016993647005322036833534028013567989407844602563406035080654206061772644067258370350596027214510815786821369707632655526251074507799612885806857016729379910574650390142964508851177323547101634925406047086960066884660729974180222916420275372553145380486645661155630547272086822231457559327957385054994752138539203299583645547216454084924855528143680621110686731044016083477586592986951816021449496217622595710062320594952803734164593351593841754677986141623334290774642008427745509001795226761976148539859005335073846271675636320028134123747499495837198918018085027396961935057224715238145928090452989219856811545417267930695081237090761509813481819698066536858937350051107776759358527354310444240880506268957730849024873012537480891188594287226702048963475635256513245806422691994329508993712385909036520142195374321192762873193987650102892389665582129100024282568148348006268261132825924726976853693738057965960794138596194509100480782796557679714625829423359019185158709917596708755355436009819556826627772558458326802697797975161196466048828895872511258337359081865583189322795899284976725122555394654593381936899981597399579170929929371456817686848507434007224186161873240086074952068331888154673084025531629708696340570276188198243920967833026268346126401656555744090627804832999099926298334520320507040976176567473794327158351274181635815624032793959398294491100390433617043809295526079914704296049464817136615870601490496807075841440962514096276298748782883473173990317314004968805184421537774703133688360014210912236230793209661128637213750560562449064046381823747758598641102977140493773199620261395236258286854633254140157148860137054149117588685179797930552133863176286534998344919335757613341307264171400559957170979266776180536839676024924324099223982319695179031127647744623241207115382120241051702643830067132905486833772546369589524198733346416936192624238340582552486776860891800681256165262081564304674383193890443393700234343115611314624837668003750607914908745800614010928488137076360438797043854203854125652073790159602348128229775152150557374699202457509869526087448686568071325974971204808236738226501864059511565471318938689202157568563231839019657341387421048898359637368690122348640147135722572580327190572699552443598719514257337072141330643736781401390409102279459248971371198602870223446019940500534371111573890131870769135193217856307752146821052721277043273841071594209703990042816014605895930475680347492837232080631056544117428485925303446063653671071839240493500835600635035153872304194222387448852774760351514535526541771620878852264852531229526814581928521826245778314675188519083779390366781027566207424848396656591628604459569568694199515484639200539298140436048265226745145334345829667775902258214468908456374717930077051934845169467830048257339951133833215695454140053614210238007361243094116565779438867594165349377041639438283124396260701242414756171387324803772349334553852423410184266990433216400298459117717080909445297016821640962276338218143065637752962755896893566701131770161016246235873544998471432591471148700581191126885138582070379742543123855015170086612847224302962002447294892627602965283984145372133185424275600754923623066470928005788331352261056318588874369572724821426075768765657777027979458525653203710961057759900372030555423888256340934916083875155418960295828034337736676915172539111387804283273067139288147428934130546683896745480206390204173203883222036436607319690396076956104135312325061000727762422391608524164556141168691089906073794536483656298793606374132008419773641739231990831550277251518905372411841281405173787974161086742759116451340766062702039238912800633663209919234991063313954846032983134434902439280228240171709345961299441976341543344789696429226627773203783626310262990755581824190867794812050365849432016663452855046317354782773137852689992006058271598355490990053333024914637599533604768761125087439054441237645880236624905480576231510447717714571160259867711981398517409483349470010582765713359195005152694358332835095942904942372791600963573819967971612082011420566152729415746152380694952591383995466046659175312000146941741287925634723506377591469338846687491331843944515197908872989783312894829274301203875256360146244002137632745769868328567948194558493635386142717327911297463887076804905176723186870321147541105061071435310236534805338371249595678021783114564487196963107013970247275593676548918446313094768611520129166919108388859538889208082614434445222845533204259524209548650868102823040029424848499128554112004078500413036400784457124435609834217666259270984770339025811229395811175738918220179694944485532512002172472449854460158659001957427071185828071043004056942913249697144177965756037705244267358579237339934166602669824130554133417466372017258969191271727497993066440539530532428538010433994929955266939990023711077890722794438387868131186290222940866415638355611873793379590304064652192603875876720875672548361068940038648967067718492903741263334384308555705145508830651359879435473460045722989837224227764370786532931574074698102704135433394515337955026769006901498716139303872731113756623437575759561048693650720314465755346039164880052624503550596822058077467742520430302362552655358516598204493996473647515507492244290377423665556263952063220867432976812622830063892928415109092531525918099253299413876633468110537206973469349565233833884321948545508149023277065629743676551963059845745821250738827903255080741160042920799342464092575643869066024948523795293880005423241610980179317003681016032152765003848190206919688736186206377407332813648295832520739550646332594182763424886495725880820444791370593591050275683537574272910440817683178982641033622225594669978977434918906830082302902698939460138219394787636538918536860908686580779240285570034204749487661805314525528241313479312644517412794579843882090774345065538149907307360377412784041736801675968708360651971500434620501418787335506685256566221312991753608354819039777099669503000938223489145664829249670369303563132152450058470046792052032999083785701970937325406034714336033029283469176705486057463983419327448555838457825579687939092076621972674177345456244820770583514967820831517545815122484695207631884173358653616880984185191282988538880237553567155546199091761249601454247333559085086705361324033599307191485938819962080849898827499734510337906805382962026214465132986917385730827673036332386350794600186856078282028065698055406406520151748381650226410743439005213962043796361899117453695814695580485339993988113197144678448715691267020027320395777715716090594035834215115910101027183107474923981473811434605585441802073396390046087298065112985655381612918317652005419010491666948112710680633322427474560839170514830060805640186122466018887577332736370249597321843137791963791739124529069276285630761311428786184579219005960337003121781834888446600724016536965475992552074997892330017250310298829336484598141298150999089552016904075749953629675426467746962802636558709782196315228273502881058081920680497450084001856557747612983941349728785524927396468768315601164171376696781051803011221805344324217114580830839986217035867445621417524325103018956985974943485047809960989429109692132258824444484020817068802793463739235420587277146960324603200898355413563493112241270095983883792824255228518478806489263449500104728836411200592247713567088369907247278643024850692241157045842517162388266393832384787586040361745462613488780968946620600637532078040059743179866999616237645250667669149416399765810485232784763675785205535289323276716481400070559123080840008361838639500143866461950200185564174764959534851337928562410267184969765140792743507120803268101212839298765838601899799590434329555130164102245821200234213520697194748964520733297238237115917857063959491601754917034080402303924640898653111236511296703010787515052272348136800838717818923751768118461259534970940659228206171998216060206116089608493816147482367843404904297897517835218478002316286186269524464787948282995435661181868873670092044059229628001011245357107248667239937122471441312342918846577783318398962352552536354288724836771470456453276331392679149126628505148236444289292436538557001709358994203145342402572719642420246222699249731717428629958753940925373396739629251836062932410847118263890661684916869657560640492161476259061549689312243513822475586706860128480125569245789335229105166541856224738964428157744368000974168593520465476971846320708429360506612584917064975452377044407599143940040645688159390898828073918248399638595159862064219783401692015345326734615792073441114463654040014172573003713430427985251771400196469136578638405349113540805677856754891988427946577514648065057300127267935731998360601157595975062808394575914336535704336659044502324567959000971745325415420583823356629146461381605381943231563336884144782005421183591453926531545293537261055685479421772821826049454169618015137801629074447860547398212534474061249676111197700727787816558782318113423684243978025814897309685121668018338052264184241064427493373122954615844475021473080066040418617309522127513817907637590796590218064851661397325118640915573200971212273649033214599871155643987693673738120725812732646032688418833995272185013846507708855288631759590085253007356246406021591644768630071005448708905335588832943721336009451547099266914145964087251971988525671984202491752666908370275708647827866790559855879527461796769934734659440624384686280337181191260787903841463718519723716045557996615520356843477163958450219440570190334395636350353355467355852751964446962856661166567315795604833081906255338823803478402891598492691187526175044706680046729942381765828747709856927202145137476756101393847691389997113438389646249040855386017542257661884988974787719191481028572859107016952005386457072067801248179925368531506794623233604034287758360066747398837337733064337371068751135656584548225257634078027584128613137664792740394685784690664041795944506055252099536524292849810513967465800128562670976949937507843649075154309106198448113720726937160824804542530249314413623465177432688567549297237931143047908272997836477528914146721298625840691408645847159426163372558962321244346351710168583782263045761071895524953661472364045084666160574571723154914851082408726983345456665904361989417127382377536668564453208331113978319854878951552099393166952380610036900787942629882245401125294652819453525107046677378151901762904168261175893831461887973096091019966109426315419613463059432740159295934246507634040872903382329207425805934257339028624378208769645691144944002949848436118317509126935055549091819236401672209332434995248574020781017537648455970494099478346321348407436305698605565314395362233443943850644331682193281392015836092765063646066414628432635789455922909076144558769077660392572986711775669453849701342129069925244161694845356268124278160707803998727081365675712470661898426241763483376916884432386564850151031306855515211048228447540651548730051170083479987819888902185703166148010703860755960020982807247738658286857633084433846459562213840625058273639012739241291756307966395316258562107762013847638800986385318225302087130923502298104489294545029847562081218511785444773669625629302471868127431567229114136198982678898654654489924062147713326696188875488164854130635291545884717013833830327565164534429938094305697317602114086686529210213347752012347811289062547041873923231855636644343750463378256600214944603976034893680135569854040179147213094495257699952123599490663086962268502554220797683560799811073110734988335568874540192834573666417073191862060889783610895489535605960566014407283870661367136290435862132099489997192848703508808133683825849447091250774386440470879666293102843677302574561665778524957383194260897349345061051828290513558198230587861506258589826247027796316687535328324224249333452185875283044216651523039791763679450555166206952513666180254257246122779358975836522482929770143798577864812577601017148874146539964741611820244998026455582756317382212395301184298781260705461606702507849254555350198973523330967035504447412791344616833341767207896025784835882478559238442517041428455132845236035915957092412971822808810553899207258250680855340217653365435982976075069685628618634168305605086144861374277475705871305846447399517953144652962369773130952892547088568594707994253163024091666387852365857799498297073670720520139120272388443413501566276971547623968568964967686171469789936457962172442860891332128534862043194849964191847536756349107268273302586177757800519211469293815828586422827456949886625060495080793271119172007142946596797265379210046892615783781514217704490406233056591580302058854096604187655662722167810691401574457841265907045838578724756971462153642059160716054781276581515385079205577035350480942634374292606000734478069559238777320617921516622932649657152363426919907423643887716568183016945373636175947189801588071385741779058786001480596048299187885020248752908232413195799798892075520762819314061576074743509132368737826838786956095905853908373785175337782805950523517102456443175079241172506345831681211574751813235658167569655379195028484728108677014487856698525392762453046938273644592236000587608470687650052562229552330209583688606130379619719741595406931184920444166547011107051872920623476477305079593267648968703779552355283882791420127164415425916547960142146631640247731281138148466967920199771342822410177004477228683056710534204040649425318723817045924750629551090246494034284220660283290417272456769971737342633036171828028792540771960586764102172154278121611866868822152365555315064900314744393465546201057131264333311179181481740080816758466576632519418365288373400590186146592959390743783964820357295169365672312347590739495568697122793278206995841035349093157037246567621612933763019701520338856272759369959880017215479100679699435301260030622048506112047460324823576468730807397887688448956865048664084896890168874405901669082881561375797777233579133160395346866278756968761687790920926404183346391884267502208271898392491866112044198283943916415925923601711339883595876143860774087508980651015635596294905567904258936029065227288125025686961467836603539549219694323779847399829577986153792696694091397250659350003175685727048557042350039883331683686666385210512243849741160248643463028875768240558279542123765645404526465622481615807496640475789107609860563677390758860255262289674034920071896256318368169870956025223164891688649676930128042460915559067001034162044965143687353787887781316802004014320960182495232297734590847394024581405204410938870510718546711078907197769924447480960187261285773174177455901015531711179391106486867458568970628633632131967820757752901209392183048494661836728016134702840378877386815279366622681362547234406322083661777778535982874162573682682187676164603225815028610421093986458902365714788871032758426746689019026401880398093511081706165261481798376343819599500307658616556511538628411134365584051289158619557941415232294371954790497011892454173360720197406688981025210584901742126804953115430660860515252248353047386432944468088954088909054762839254560505404096076902215400254653410059035837173339216324290894679491472430969560202873662417889420229717240815901737344357459494985326050689526835208329206643664297840963431180282832758820356447248799858154979477028912156144338209945532920011046492278628254557503290866766429570424289257893170752846119830062182549540009712087319060404379634932397958376753290205955841579312451743443178936372451753266448622500383530998482647750694932427794731726438181162882298038016510035032612913582033378374807827349463275932809930736938986891863493096556595634904005102763804668490715445035793344973575780341063118410153516810426685074440875425820768478029678968943888073381177117783811126562718483040693255456199081648336704286621411438563689030247732872639646185105153807043236868038573344157838404261862921442100293241215017089692625868017270109776906770605451750172500420222958293830262646991425651682934760857979923828179775332999720274531225836999072597956135208132741378967821561615340382127137483092127820245898801200465215883673727527269430406704183690203290259061985121393751602259211924718921253279825256683480437191156512213118160473183464178206090475903655482972047730335286702681443687985703943011398189801886395294929622604559185292222955224183272695229899756364123131289192849151442487424725994759495080338952060998770554658913301541758387616955730789074785258361592411995463606107454633941182252434683553536705069715222962915771589869455654460875995516053648107497136672273713585219741654923117232216003969766827451797773678352575112017537015653839603658363975835520014150919125466731639826209554787250714333237655516643632333591774430462587186955501345173238199312300678798682427346001819599065492912756997080630667642490821054831269002058704882432869711380488613221740398668456144607508919599764416928252667546740072264839915778300161213372351818256121334721137968853984304393787585532029634139031118829323690324960403410316298475213211874841770844640259075073452977261796209525015694502366442499077498397427273086338205999122135147934716533394382776245864887809114496736675588680374092443935863510002839012529834388247012419611329936050127651724401957415320121818505322991161376394312984890652453208305058628888690321431591379235364676385911078101868612140616549171321050241223653440312795009959872599413766477145179802046603687953659472029246551352571940464488157340877758092852869460558385424013861473084322625560392448376214005687594015501990224484590450467724323610971379004385941846356973383379393769260976384406361456562841816380194908412529686846892456407975306794364121018213274719587790799021571516447623364930974866034656402025892348455920298115366200272190965226290590537999868290541791855788114532005690182368820870129918993008999636566671712462092864567691243018957837080913084623709986725895211450519875882495753318546326303780848540224505189520069113104256538225623405325941881961640106564690306299158746886242484180824636975142867966825996096858501875981725580561679055787589853146749963282630169731538257569323764836485111453627812364868240666696587862971714395303360545530299489238546030079931864744382463154619011026592138717354283321489769946956362445333460892306483512389120819930687296378677806014419606453835232789243225194301887326798332304978127268484215580881877046408269750178211014983760561578939288058695076534092665138873352690277477887840351711499248261967844044114468207819449003476378378711529669234922285799695059233051338767102151197932839268038221884068361702702717501976225849282506673693254105073837483607722888482556110597276266863555552584916110633015476963286887038344557412571750578128022149357046496077197178076533458106731757813039847160923952551819063205872419873065524190621769455818452001633073836318063216299379079024572341445943802892949385598048308668195314036585366943063560083253594844913684455981392283195286757898173664254443245525215744257757378389550862629224004489870140601957325892536946890034570979602044371552092025535221145952683427182214011516429177703330125244036106328891955355031126945155522445384063322174722916990612554818615315774736191519062058290858899171098589279623912376255730949768421573615657520736110724757606266423352113946974696792264738858580903318897459436464002424725466801106267497654525814801037450351263484575193268644522658451003238693161200747139116646154355641720222291715680862644083957995180813840246299459706718795614471718418145424616435401179487847404709316148332197788140505047744850622253182321371128437913595305179830043095130053725387916876574881216610186207278300325997734335369981436489883638570058872700133385463450457555466773039306367682374720093791637158665489433426116165647996685701377793271401898755806642990530278269786561394197716692174411801392436468297530697917825305479038789365703176187173637743031086790498566229562360150698696847749156206895649945907344690069250962653562475884204451902795294002671998509194551037227140674543330460377682894389621341133404444594030912495783536951112991814846911773994634678157535063975845327844782769436623704096263129389694194417279970908658726358901083662034855508871331573940290620953517206232672222881758116943627024286922151805941750552420262091635964746160191922754158156399862730355594895841983965907803873741506246536362958054332678455688600615178529337887408981212250068222042796315170583524042867827315539671457547603374527823110895609457704550182829400146577730653466748461056775969248186182910777645913901798216340990079634837341263815887712807991491333979124973085275745153440395254253011110703164195790280649131537678164930307582827189686407803758890228410746527884736511594948564651558826722469016513557411762778185286352092923458366535432127262605150995485099992414051893187234410684222887011793657350317930483674126809084338631300294824317536489746981611746270764565729932562071076764101191216026582779333325841798332428613225852426611258777641138495109543655976800515004577765050711798426488015947673868812494083337261035176937802442955094608653713177919658558740058903471595568568979382940698236129104038410306474082144826054015747183452674231713244568471130789025054759290688570745993655586629109917141442565792596139625392884188263660464566541698866960040585866465270630505747964666777785171106441287616852437497565375048584744889286994097053699781126798396318045404430448002275362076840486281229954501636149632857867279376967667197375331813306742201939673959742992790519617524362293043371839311571903483984404868902448606080745755691546609898063257799384297269556920564833239661983878956575775857428954223343302043969152728858596408614491307205489628801327410275672847310607359371656505786003472017296948186328241109450076763510117195927454757433428875874292924006955571959292225603023258711346782562188736571982977184229868034539117341244745931821303192791085265257131870475789933902030188038290656647452660992227667468187500487589968605360532156206958574982989837040966875140873919142878357695058692298631459427659919990848606118338147343206284263744391569659525469203312995337387493119888041529320899159734857856640195093014299473568005855439747001731973385310045527094522139256794498598619376292293414299962231482846554382611971911281169859431962022782991339661206306315952670703799434358850561004296954637348468105004681493843058682209720657728337407622259999355254812457215234581273859559497478726888090444715410356930395860606673647411959213808345274632109163012590902632980502775907348334345798809644150669973260308424263254013405954259842586154832757057139653047555364025684460189149520256268571158133554695773663723173205582281668487368978278927459427109729922412041859380701544935663990246332654995696729563109053540573006825364926148494119172416652130013823536350001424870433635693939455036494750697668226401055831383224874454987489132347637578291263667225043039546232089221844267711268860586545460494670195883790928410494230495530469093975852798448459727703856379483799799195209432120024926055899936519732064723375309022120127095513970549583767371290227891168072659817897180897419014417218609140424135231548489399855664462876716236372897937702026436680457074204064516759337284955350776844265537125366156949011728114652161640006876693650548587173748969085977989246583575927222917266205119718409617971287366656317952967426182901087354088630293707121545206722606940036137789999527812145993393814740685913291038679862453974429308466652246348655437717027283463524069251430282936310153150209540335212518718225969579612724527407858927771644663816584858493704772220807245825060859752050285514640619643834536864400224083986541141403571353996731753082527133721789946117133619389634029954357082153594965921671274625565226387049146168009996354228972519478258645127153738611158689003986384425867191999606762593020623055980081604229303710504928368572129555670589769935775785121909214449141152543832386392221842497972776138599816397852987146322043622944299145011902402478041219860761909051140187868587322588204566331280767108304120910285907735081596251751532699913609463462268548673154546038560022931848874834298735491574100485004534896415423481137271112981459528750212979459014523182131750133960507732614961741421692992599288837499782918326683391080437586084639601227492791448178657925888480286820277431666077683628060709938457954962811523954970833995692482699814008465072108985622212706512669766328056807472295634768573112230688245546049804213831512113991342454448056452022109396632478797941743184443708812445697336100484213985517299286324176303507502510542167012672964077299521523406289060969273929114969511927309962979427695766681208949348575434909597809414281209971990254047478746142153027094885002570539272589216274291987705895984700671982599811195840122804146519953792658838263891619640494515496795151281762755027977125646864802968706187189860377262757673013602562714161189477548869058558226838155522971675436005689354133058067257775119067174983265037571869695102726754602797613451287346410169889945332907350852440425739215232484146155429890570038828771754436763738144391349041582759310694033172744455120743798525247746441693749940097513522330711253022577620420525087218876682784874467589115769064738142183846756052078846664620971014788903367148634838303780962799650288501511440386974938701759517662533176084741787295441018388005817202738822803485413658684674300388478216741861587528973953944434652080019354601900581987526369670874046482674432122756730876966332671721852640187505692675893584838507571602647659833103823220933693088743315192741205358552768887941164268135127232214685948458685980888827767379655402657616589734527125658941367419968387567174361723520562556251266516256206444243231094688152083365293922561242384568609758266932152311127506711537173242852590637941644977271920831874956325211794735711031508339925019811709307323579531964280030873761011070535810665759325868517692310839294876759717926352207437122007041993085240635783176308395975740033906168315650560852428289821536598316718243337681192564489033200196565238958403965166194166994684945343807663434854078446049059889014468112418594962731699334851009263400496975710555086531724574020180542597212088640043635742632658402271987000107857589654131924105354277889149657326961063517268859381635817213354687977596350015770167306717710498900987571683473401919515454391576296999467903650065031334372104084953652102437679102653143143986837506366438379701298814809574233199088389443354458400018954718464626389227365889821098157418321992565579069286962043070168888980845965728721429237288623941801184641615074010188926633779507982812760296971898292194553674281303600767321730258013344524145813676218200601641205979210973844710973652375557077978170030590397740099391300456391309368311494068768840627750269154027783262449930319301307346433000956942895159524576922005792411551063543338972241158801749657032467416328630427200971957623560645118166325128147148831771591388742952895382978098285975266199876177921045862304888911815419257613587762127990253440605817078924662069612516459927359200469728529382237361234887925846664600030017875299055145914996220869561598415172005798891116623351380668396945772999315696884526008778203873630055364564445357612985988701162972599606377973701527131923434531842544883266741461472817197429507960318241572398987406349628822963244675888720119885766820496229320102412374567794710426597994013051577517760633682460875239777354194819964749308042637499828474337335291400540719271740627603352491218115287590400044865449431266416126824423051261205927954055707321787687730531395011583496740364492018278117451421109995016252189139357149831123414223386751678259618979602697846867755703548433394533920156730860881758150327754797349047952521733527449571889863868442812565053952185799591444118918854037135509632570154255991649351455409429372126751302210839614188205634095176348124625528486977490868473936687812978147729146403350722975430658301113315713007383409876656417904566049168497460054613416414237362432075462651670275846625669463243495349193548353295717694064920076680891101628904662749680073123242630858815296440427195848245604741114447711803973546345996588767138834102108207523189548932855369571226364891436892949180495805558969431493192537214596018545680670777355370386495404064033562505850929441688058366667414253704149899722798385224342731274561389681243186390206624354233399524517178651907181003003013595117162952202654158875147398724683888676368187505396334710081694140605236920226517043941170561311638382821524447854793261483011862100378978640064359371839063727105309468462299518015918003795863933975955796587826047384919659410855106574507041105910548612721110348194555453547891470323695189647677458082890491641409136655559652156539118732022316668504494532339683120883882825969834789074233194727948651895115485397998578130722145114319459644891153126310838109438030060469093718825814018373788392887345131751426862373626249026377207972275022878457380057048940116077744962784485316053756540797839188987195756032352208153725266107213766952221895938110517754806339229050579093910575827654805910719334639528527227266771753022248952834117687066424402982764915604173814331905888090864471778846345916506647203611802125078063043664168352999787824636018549846400157285485299974820436411838679945448807286299400869848891228233529398446391421999250694057737632410572304939899744703401933889423522162553701862093415304239490506489609908981729652791231912782012278138920735073929937583630324837639908594156958803241323291324061848247725937172264854173721245224145048090162966506620846637344423042813535333000115126459103592750971717026312243757089807683656165504649607335167328941418035563363833594552422313570475540764682943459567487823700727203047872525096852909165481971024556139029088898835006499250248521983649777445112096259585251133099409877622624491328409505243708081790680344330385379068506410727365786047336247522358570086892149471146320997813411642638117953763963696967090650127296711970247980125609566200272219769014664174768190876631426274892414528817473843998567958028159579194466398814292055735488379240521550792755114888781868163133381362692546794388710845787711172032375639240050321905694012787921132271490439896891962688030751783425301310978668271327836761679512272946191276874967091185883449147338956933681202231173427974276047145424528977893589283690783203755036045623031907251257482426374394364116174744122275711075096202979867487393184365062536093940770719493327724007279719599226143171230480918016306602977284051695071876375069126717623566778757570086013489348763472843458793360088590267141433013798402769091449941007446896840897297241281608735336710735468883570508607819127074998220746974219524247585327349799501482767765832142976973836546278444519619628991245267255946022353395943314628580996770304154248376465964700004580365768870240322804388576947384322773518724866541623820449497256000543887774223378160894258016712494805429817539119415472194298784256389759825719954536619989558796892775452193515923701751620194822415194009599901116780722364057430599233391524423542921187417359316528093832683772311433517085593159763433889019481052403469397959879567048498540795366860551152692809344356981504472681945847650258937010560292352893888253053044956530027517241753496630201590095197323276805124839866438259869805002485315776244520030396932082044548805989624128818334715026928211946356837713666439726576362312675021779581379508996188130279786789397151380111062396124863137211275697697869295586807231235447129890328168936067222012643895000206685636627360351186443556714817082807034432128641186563964802912766486893941346828458843947026838158210129337381242778165777921761061055388625121599286561249273435824466105020934934306416560779257185715560909039583895174748662908770555167817553297502539056766973965537511717994046167187050946023966718041161618904580257176245753331016880663888398141722031561894184604338280611568146619281268063760274578871609412660282995809657601626335373782238507438236239900547479149115711371556712692425441641181334736004600319472831568309113766318550226704062237511031064292142008679069867730819751963707033711264908741723696148081890566803719478396811947412761147842844708770432691607115633790583806363421253555683769590993411271168580598286469582721558841901901648113567967802520132582059348643363561398667242436412508549397523621449973896307863014023161395430796860128925254605197821466210176531690537629026057962926470548164898354093305423567942198956313582903325044187246645543416591549535524216652075871962421109287219668824967919117948623457404287438510843149702796230294025724111396569953117410825209669113331014323363316905112937639332598248009123463163301943773471007266997136887670325045098588376472978356530650127260288183433490745577957009171492466398788498770637184161239666316756677347631053836829879607301799023515062625881836461098912115438346965403571983408929760287268382280480382555967635188475639583923080040666722569327049094552209652907685990940128155623639838782892210557563889654195597610830542603985440020573176218281135346057739786790768187127603171104611158484513260074799416857065278647452653730764384908142215280579115586499291483352376775201307722512467625577611731074515512477414289567467974058226425784360195559625787790555746746286743557459395407474584179568058542136997365256401283526947970850219588112770509480101099027232044890761242325135187499959127622331550275679238515540427962545284293465328202134351719736814399826898804109759916481346499222014470419276408958280440414546074062594438469279656829950590872012240414278817268531416788522055087953635404492847402018333508859823489032571346486557342480902911017101732779409818154388611610503606530580485442283883072539786024180284295189289030394839492573877050024040597797014310360915869747336780572099874188925070439994580586223777107670996606119201927419798449475567435584936000443954270003119853606232916937816327760110970555681409560282291808080553092478288903878516552000258183980338851516620990506843846811037363119442788932897275463248029861334857304733330410040564896181188364443791848765766975413887466174888190739728855953608618525629247168363832248295739768096604823885144586770663554542203612582158339134049779732035193361946169096890923364387259614811556464803510802631101933597087782637424268915803507791998525244891191754203553608086904698961171001676351201858626558711442552648773435957408905532439914238100329253926153958633288173685900660343368497803454687799962586460363475981283405589066206576721175117659383336219014220000997121107286933942978096991222022981773593665149687187629534630676249435969045211393152584649824648148200052039433805024027322527835438577570644967562475248073778330434476107470070482190471379359940811811551914801626688303028498896076785249706980104805032177473047982257892076311259741135520524148335823794686884856080672144301794933568595482647071483533933575905177565737783106508673761665885553578989498064509342200806220475422584424548389066003149735616739140116795594316210082804485696815221441683371574602109707163895406461673127031588182398493519641550747119493121728044737365803781530112909159677920886168416691050312033370782419084075265723613548611451822698794452827425804407573249213359169686610065463281824756039330379508556075824474851101376854744592147475516731712401342940252543360274346059342516836368293036236522839616500454838212868216051606982584874260442171539390191402012785423465337561464823092684178623286874754475477753123662209744580004764665129540759149296359173616986092168885953900410568091255788261672201371773997985834121100323814970974729191015282261768412489191957996874444817094856731220266594928619143536855733435694478620531910720126083490881154207028407341742375892355057339476280278235206691926203843231932538976615502645641935432237288584979723916846466553176748924216485249188166983556655837957525888970918920239937982899057990238653718721208018942218322489398202189272572253197143043985729401492059170844143329284899008229676396243296474210999335045356303660747819012532967124341108830920157544412233440322400257704469808941966676451294670119466034679539029535262471683307431280265738491763950350705895701149691694519946367095593377535523623951354868234688559521933785619165543780960572867724502781548559233397813449120571780358112279898411972232545473662771506711053239252052709042551244160029207238690440352965375077939730168337698959507700441433684616273813134719454879146411865470864878950118496990032109300634021166588969682542797256347465755376850846830544563325696768700189137196690336645447690654690837839811688175027666967370463914738455647305219770286898724962954293661324426472790468981630332870988331536210660624948445407873904394187841695350198311413362796671943068133599449827398132807157197807638089936593843089402545726019738028069307720622217528401020450760526763487316142190769685625409500291765521725475239902644110956413116128878694207570987922267839930382404317610531044927074887322481071552700650027352650698267692483538332585131504712014602373671811359081552559580080857065015710134834359085632258708435791160846295735531407834659631523545661410142089156343673036860462755573152238587737971456997974576070386250489145042371558883497574361349878480742034320513933638785634064923264316725351552829626244000480017674161906436629905638562633447194870746032694390437589956845758383262880244363564390721101622622307458959751143296913351153525722104506425153500021819545056524510768052934368462726556036525531834369292449602081234089786110767725732444903984675265266014323830174141188174615764031066438506058876221839266151318347091092562285726014139653429013334936992362177451101219937897692978187128255326038077320922570491605173814575826131842189835040490402023098764583624312483949348898830745278895070893579989666255092416969170856422484492828771738874740917129224925417936328542581389645249590099849617090132997688415523892327626482619867524218236100213932469110394061473361486695812760391888447576152785372712815402698341126958009772064881464198427623723496213373805758263436436073891559189172828765050631363839434115318856797589571622668428993097697405677158151723621982108968925955818506552356607447173577367466986632869493292115384502896371616225851417181831045439879657999005355118115216628906882575166962189858759520452042411600507543414708788485510582235944863703009872113305220706792860792343837825431860172378603709026090608219085547642035028225966067781806693610951818497184792522733034352312985457290562360916639502171238655890711247762470323540182466848302619994517049506064007742897960664114902944197040685222408591245944674689431947178375388669919071110125045822568573472333869435260969649027205653293529102878660744008734416856438155122982068911538193741054055282332772114679135193948794410542099148911495888089888813565449484946525926771198523880045674322921186652339270513427458055418490971315461381376396758864229296668575413631203367699279255153725144893210054873904132371652542552888784843531049544874313486354379784134790130497905302600694258335934342723246291536742114547459062834327740132681230745785327462415689033117364373550469489903598757371568526771762431148496227454501277965368480282059672753173474837306004824170608834316250857847023920943391966121331544420160347744145626579644112256144229876922022988172310640130899487634391160332813315919814709995477749762754201945073166544243372244055748774775381837874745318737129971280976598196834134478767823506450589536449110278219440755236177005173420533505815907252329625134895623127758129823847676327286023490930914867872480683966373950774880637930825915016912490764604942905310901195386776052602213448704339417697848491986754107741302582454911616662661601070323395719671397923607667231725319334056058776373524158967256636711475853985589835895259195011947589062466311304487945357141333914223113246580057259613249402894370156183187170844347668732383309520661409670113207426248519308185917987839582971399678224867129201204184586844124794236969027208833409628536624163516986074432396157002167872545555921138565315001382654764453386183265022317813852369673783928588693118740450775091087507545503960367944024432676605096025050527354958221182151655861789410431598951461079069386104020218947470355837411045677783305104734795793937575046813080864676384963372840048009751944257043101814106536633823215110184856648246003824447509454426352565436243422323537683244470825262265151185365931973038984929387281363681151457902312413909129598138208408039144060466189009094566916560082969126187175268101584390738428085652666944455931997451267264133482565319278635795821011590715005341146715200550370780604846307631925909468294076083629439897573104206579809343196251864416984920327789867402168889744325584341850470173245234349243412991882145804378427501973404127747500402060796677646060092255750949962239601730800946292814721093361069450454658340449853711316628499008199344389473132946790710746390375500305575447621017985075918387902009384100071908707034631757008850760574649092748803172197726193698471637253527927812958138586537398697831699431873754034491913771769650647954872862794315430754271069809708726269802368371528661319964576936473767891851878120698329142890503587979687454694747585663489676520096261620785828262306398399136114062683860589534356747634511573929690105826185566261959280479970699104273609874248583781105446859013685918978446226028783951098404732884640424855579894108235351045409641265756193016363110119925197705568151847219598952802332681659921513785851873812598043423598828839970809657491924351399224618876619143883633740243619526736443188222544916643483333654576507258610896792883597366834626240154343250301968233413344478152632639340114913701139586961792775610854175830072130985433189024103917375122055885346608657632150799071022029941302439534213715314310172625172853392275460062978097311846171364965799104443670801406378801926023824421635023003936966789577455309321125117552892747811106519329425070984271165761821745491783078841132455089739949854414315697923339275169560372883236099383890897941464754179135917646262457987305535034082094950986849932121617020854963983428061929441546004594060603913397045080419946677315168835055643102927875218085766180277343912264176708718143515819751557028614643419547750825414712361825374021589616430728020436985135820545388773090015687088528810259881701358115990142559296066918318302614126072456621486859656864829110184608795768411450689324823242194523245238104803345337924732761268324496263963395902108483634175886010515030489605376382709454976079789376254968568862749289293673205951968330531335244135343002003966669381265472962898117211724562013221917741373935865552566369298240771762324660705592187217279192854520514639672857714832406996505515628225875296150204651046931118855473180447654858947653250863700282688521253646985954380930696697666310803143313968163743404788027195073217495341390838877584442179521312580995147432073603787889529377893641485923592390632254255889884537918550857291549764208812323523763227449509092932360218930783094963496277410235070067449727350837824832942848957674004534334801169401745695232288511697313217504173390312289835264692288047909767116232788882033435420456849190186733351330923495371465065764066620962339259210400750378268279118468087513046117920018997425977570793388004436651422219636045239385470868955498018402141878399443634286400240217978220743625679356966630466841983893125051100885911346245642855433670146669290594461854154263991497305635026171048141295665631237889195706627772043983074575178178694818405913829214590696199247645508576861336105829436074318578608742523652675736106763801230020735687635908815796937503785917263461879632035850262581740057050174133658177266855624919613172787192098917180524207067590016882343985828291232272573051793877856813883671130547662017365094310077013903693088753578362080920886096064506439313471561824168792983168984728572091263710008775587447138723409551662562497566660791407732607185604902130956659247165474131749824146116838152073467999935743690445267363724821014536844147052733014644381405612362758461808292274177692911309129747555384546825974294743654336701514003824518564474755239717550189877796679870211163871051031915331127351472888372576742546659959451394512013098704492437000644844873169867243716406163778196076969478395734240379043234771354120081957977998274782155634350199846433039043380777057034956510036147063482626112703734680637400521241035933827069446101017552049115867864538848039759430954838647048578743340113623618437853195602345610913616094874899172378575242800603729615017281379425450520674285059310644375485049514175368257825438116498525751804020565576149461911333987998741127038918822152736376942710692079470133146721045217537859291330925422399652193695803448607917810011338731469226873611453159499735142020094732488087406581454059230661515450468893969099720825880385631200748978853818350283017886592352130351345696886070500950163348756515543381082738542725502530981270332831568134412121635180701448361394596336368353100211526046712391465845435628969454489788488018797192746619039611087312441440100003515601528492323644908618420751190184180061990714682967221880424849917189833605698005016796432054136163308482735224772563332205590682268498535599924464916607092780787800152319481089733210724131977323094964576792086286208255204521560157263198044888204618536253959175112700359951700161408300594741387086458663024366941439595374778293119996469954033887278239685768800354164830947606942162735572754046585943060452304849624214785129713032737247608230575664610004302178880313696509360509893633205354232020105710352933709873812843657384573568571940695013379185911385469494745644561608125461375718149705475093078306781767074552413410745620055797058276100455856774879548862829659231986105833557073472680083933121592282083531027108745926097082612672780051822760870084789906550058267413622318346614860533487674485051897826582135206731264262467332705316677171765665288944979953428049505795617990981404587003665368860432609834238356099715461686967461845391566557395717362982768325013587006025545150970133164649750760728836855986944393893492259488921528905529481477592901731277424307839957747958024078718496002523331310777346678211568348748278118872444711909479565360937848658777070654460910944430998111518758535805804279294497810250044879574596569678477399001867597802396376704523279369531484646591306605982981056611404837797296561392232402756492641606602624796983918749704940578526523162435104977361268425646594485707652237018690770923343134990721729375810239822342693497311854727672634800583428983810844610025573231142172872006060992962981870202465724385696241956522460616799341455932916336854437206213854945771392019045692557565188179506391711553341576333211199028312907547957363456294786738126003343369427163900957592335741288320543666645787990421093457032207654751596401898125811367344708277194064107684633841239190084961355708716242496778321586134501007784995177077947419048641176268125062536335204506851430368794986076492966735925195072313827777094800859611693987915404589635576388447834067962965067270478422547059643115269031459404899322300944216154467261888054352085803678442906197255534762438983986831494063333316427334129535649132763625520743207154646152506880538222217693482440581152797524680599044990724175118240392824881173860446293925711680908296189424672606758860781022871836912350854809415188422759858634498903940181295846541788928977683005267771076237327168714138914798538449491331983585423235457051685539496748635833349484315475840852459437609902872159165507149044350571962654742526338734961205087905573141911094994430740629467925660904040789249349219458993519575528105351792580458665882356719166904935557767302700773776712446797597758037592613418282987426200938896339508186417245761915696787473375762539108945106011923420009279440794135469203273345881585456698289010095739786963297277885068095633084674090245450778647692515529267454966688759789531100918856767998169790989710856237520912538412724276840987547610811491054888102288794025920454538183631057612589039654894906708832063023520506923314666589239074758255786585467342206293382032950742429731459684465066023101081291482357223883981700387434048793127117372098852254694586306325844733080022408641758120660126008307886821573069652872484073317637846190875823652565087681974364661299903800061320471153532492447973506954312428611194792571873279030516633704920348854115844530433313946132859762274620372869043783862543247943004882235560687968806372546056750133852952356830946783272566244130170101182812871120828253264538228909192418943498261837845299042329443700109199974937392365404932134296008233984705482227579763868870588471445732353684426760586058074336022234045258608398715643740393462951143257525204358859694548849199050526734024783318553851671444353513390637521579566673676016850304177553184869981654089822008500380935889829207082357777550274020442821834974645327713104553009524007726241561013719634299403590608547149427310756290528316269393172755733200101641060095884411371994360017019177806301257875639076138868219971033175351630348735926791871280313709028040077765795280386517584682905081831829218456723202975107843745221026976590862156130307955716708485962298464884655601693270892561443144329843501974405167978572542930958058925396348650233386783622028919894492678444976212554366498206571010285740882128993438108274890851854402999979024938817086118822252065924428014513061752239799254608934276771965020249601527069699457557335716465665496846727035887133908535715087959114155355317115423872028156215552086121923343719939430993893243773946380271283110817025685191837934579740779294706329807918829411173528954587468651527604027610133834347541165188471511722565242946864391913910162518798347661417590658998823181871611145818946607605400717554521784599401382038481591897795823526231077581688155978689821889956352536348060066053671890736015378200062557408652808508012485233547252213879629619694920000191009996216033966107796815981569717952429269776533941978137589892971643702544887950229170247626825295224234912850455601766671507754601554593469775004027685221046742044239365655484849113872730476527135139386397371386894077048411799412796760520361483988567095917459528399123516350282843975796201235187609089784172372665456096353648952418977024679349644358395140127269979876990487418809924006778034010999128645693764973712107670285187297130269449134785028350662754221966729879197835549413572266615686486235691280264033045517251126039366419660899375436668854797569541106233609024703938937344082156240119634831464515100884580661312309549207882875859536965657619287988181974082783475508434447721866625807703850338591243392512969916627026215548297825257222135811172013311502278537933233916750784883246053582841171104148610149776625784451768250538813801914098265346185386348919141777179302565967808223817875297105074667010884549770645273352277449273942859002283322495846697213222803574323370607189614716999156358191608725513411052212904171650307496067117124200055020437710022320164572921100474298505217592698119728303381982130980623908945008614149079595192855084874713637359023435424208465169906223227664959199021228370685973988083897260820181774032266083887774755932928433381751506974856156858263344364086761433755384298491500197994044740106186753106304008019563636270776400398182129336163534069812817637771536864411330056831980210526429575900978996306399866624487375819875712270908068319043980262550243522363647904341245162873287355313219479340408713450731279233780935880637751933864838133243131841457334565502661647701221037216312076427082808041274395386976803429066062347930136294538148879712125945972493930619038439116332199298778026415175787999993208104679816820543321746292338767200157137267150589691153569664069971090631257714250619193641493505688647296492552182956994373006917783224314186190221702068398573981357465972155781131357874409426991987309205325767102953815874109157599915748914779498407068703597772362410609766758487559356271916168300335507935099567202447291471372054761349648026479361815580814849771940202691249060170531632746177446238510214686149202144057927867956748173998810406842204857280750927908237760448585389635358535461061932568695321275565632169442817418536053477287000732065029595343573842288901361061384374411538747303126684475658281109883172065142156591983681290567464967535211483742881633017072334557295225850687948032963748144006785451933002027622926104102009872836365540018758732476429389518171352964561971007528929466950493852406589130613908883056364442477370626564826797026144127242260806900516489856352810535190541504318279987252993642274855464326126366957280636580284734822243562664518545062432631786197608988940756553069481513372350702657376126344678368554651732081352984286462999553718809911822124902445366792405025585714921068941330793290576986268415859400663798902843222911080800483941854055324698501973164822110713784414808318235736386911195827975070885834055222362257816270486184961531045454247519531343499750250644459823319337506493141647621361863897797451316652911880366081019554375159649779275249272366226886517468381445081310678684455934912344982971031266980542517788595082922460929313358225800239248501396940189038842244812779830535462027366468801394605928657002054414099812849543241698480554296089171314635896537627568741625235497290565025260054640287796641140224944280700784428790778201654858344482308657773898235516155115864369386820686623762821905207437431683626991178106310368162530963992804403328252955481992539018344544230682887390734709189303849426032412854821015327243820526044625352703658567759527171161773764673621832960258249013051139924084927729201737413898971409884877987560316522115680613813902814433143003258188510311626464998322120259502969107751937169592663189584142837214934548430236702091418069964154925772470664283409710062161765795073313701864350259236783823957010322062796787988891734414618885623068759465793032948777268893444651658999823959597148065564683391932163030277356850978170579873602188567082268151715016531320637230041688830512870212951211445644336271240868595381338385494330869560337836868816916408100210628468569752751233374140651664817625654552214505481157963381737885957093294949221630002724960704695233193613174309858783051473197761271775406361904634602804296804883075713348685030079751809829617341030451947517972657294021801879169784933782517352042018283712092663884018876443459399449281709571930584423991876254658318124118764225767407666925808793358454174189189634112542993558163204755346113738910332361968545320655076452236859562516652111617521016465633536120844738134941341543924506684912102396850101926480867332819461255473087384975731360836532019445313316264359379402169643559944735550557027966143526149237138157856091800077536822616151061193446525388965752871604830507996740574789531309722680388675890902373364162370265054525568823786001863251405139817216405933999744187937935910021238700897592676919484366570422640749402730185433905983644786328089140922267110295419884998989575995342110815372971272593105176484172070783391600705837957995256527231576945891858493220333090138662199157993688000468903931152810976258128382023683776939341753713308535472449219833953045374429635250638831576216314654343423614125404355832413323987376299042100703209836054440640026424188084653020979400105663788932781865984703578320115628090254067930576869877506396446677725488364410323001709131431206994626061875308260195716463716183050407916290158387777404439694230620257635480566992209727498829146042719430991931119063620266597601612301115332351596992268639312376656979171419768098292882260575264397738376303780632942254906636466843782345441587314324264358331702962120924258380465496682564274869491072169593810787237683938235046560105852559166908289116220854236861517163046366100150120234228809910676979074090062284723448241518032506263998742303814966311153646001174424209746587270042711576056067944630856220094661843046689126825328581181706603268980555148130024916985914749808785994651808807285643443905762457964377012971974816902826241518584302109653282119471988439671288287452692342009371232663173402597361378057275695186607621234488759874921256057680773811047656117681392236476987054206825752158836779460765300685889470115706200092657392682498626243410710629923231428256419425369796442984409682242343553319074201590459351311406517675020027779679109239203271022159500581853177855939948176090152550309473581487175787285578703035765459807729994656182803393488087632370885694041255244381067483647395862891727142234361159207292561636908911706505863125181568627103145752710121680448771615553580499916971999254756551684835603595731959154070225746918473791944521340009771159339983144104665494826830227876752058661039107875681848100962138469258112007822836332557810055051691945581705893976922438713467570847223055653747727583417653938689964136247705524683196253080725994926368679181370129590095540890915344348103130916013877799121622354653592881490315043775846369813810675448404421976362450232393348307710405076691178058224300625779522609727335878449425932197278042628320103921057615937077678824603254404848347053313273459373710184689055920595063816347240209420420958360372167698889972148273956823899299323369477798064999604643549716212680002805925258655606966078930757095727205403990335840423196485818492184326436736799884640225333535413268098847919529574616005048832642522333943647997050722559238244680364557979630064079438026574217031808326987232633023505901634536632040368082766419637146039589955425990307347969654802530385557002835555275047279380710493014317372405075734718463005795280992600840262341423840185831317266455800556529738798414889565580967068243048178029376090553711120206603769824621654648522681274053942470397803472104189392160200803959395362202952197104803180081966104963984700273000955275865652757143448033903317462593660775522589068311809236115182419049875329903058617826039222966424147547727665785437431403799565137311916810669704940259564587166495182700242168026300895728026970687359888022649784728671509615156431052062260316919025487957503700786009689854897572968704338870844252204157833196684671872800143626098547193987769849805989313662382988021899982229575360244291910726754934574528532644881093348512752014141232464528257357075418228058872266999139470028119260039221445137743702521050319967271182088922550510329470541574374360155233492291286106294558347542930021326519914693795796316668037431809448240852024214294791019396962302746470719625674960131939425320307569751027067055344990850397055028440644361751493674907021210442342476899788385523965917653723036857003504419681689034461421049590298459555194809750106459601174165539298662627248735952860257585211460379692698240023417332936646307697942091021063526360684826086481352554225110976497546502583211021606050421155222677801272739357705719089045422920410897488345356128943868293538936593280003496939205645034475459698215116460631892099436523542737205219448031918486820965681540312442249052220225438955298666380479873810649101535104841615045955269398307501484601152217280228404181816427873914014255394437760526765938421392342794063376810054629592256712861689255187069141513983630154294045225420808140805345529823013058078601638644898153729942326451604072428228420573805407547498679566545928742154752245730057922127789833795827689118203571975335397969424965791002154677919430877336905445106586177745031119931073107607779363060008480817665993746185201545318148359726239078950089000967662319576148797613360614619730317968726959627160143831656493775292105162677318309693611502561403863708695871220048376444274606753704643967929701496286962387247479236641863559571434366383077526534692929968575009972348739915493537494771708777279716028327057316488201592149702689361756815471645646367177276894878556282770449653848506824745676925419029378379190526043491161184500220937346761247135377619937899170192439451525746292456436554539179778754721827559987180929204837262987335433580615620461553883975453587586268061250175591248602225472955081849476564175015711651826341080868298935446228204666429777926152572927155100934220828557340100522213729363365746234700170321736037149514266949892281860026069917545837180057837200398239085889394982956728460973102877235639804619809686512010635654230196270895393325927137829094474038015757711939313242039615378506209004308491118572609797652211738580153268375935545856714697497273439169487650715614668431552249656199637207447737490095345481104186331536481062211947228320653061951512853719432613475696065421612954072339767108469058220986874040903139570332538097480579413208583227916778833156035598565093398616818623790298486111058578955804317075534932691658713715782032331952979625153262079390887255066521149977861147712569002343831242190719741208469376826622654564856719815951606725337403939611909060561743948302123078292708979969264620778035071787400019866344493740669345372316276970503288038158113116358565824746533256200855344922053680832488328472646812406217529506193826530149187654267798649547034415599886610404011385974996387752947459042941745449351507654991696837441009936867020907256762446230302518035926379796561929587940668126396670421244672694900265374023282505606444829246079634201686194540096237411151250331667161294988478762835096061883364786203957904704840219586798166632288103384822465694142556354767721820976942655415480881690113058133408238189574441968995341570036633999370858057587551687203501219546868433890197720790225332580674654491023783713537172839225238941668021107611331580018913021236052054036656830263356786686116510013692409615555664724843220906555391242455046875382685568472305400931650760138225066463134240939003593750188795194252718023800147002332426514296280882734061618393069333608224789359113376506133368851482281770356019589922944156350974640143501034815069939530045976296276976556645055675815980701600356465294604142264604832965835947671956574775949513530926577373089376075575032513558066714869166120748543194331340832570906720611629320034963680552174864087123814514945944146346057789832615516082857783325282636199186619923946562755157248152114394391252438738623087762665304235706826289067588137045126902418260337591372969632207105359502406307071211168511602511916151385248592721906140122541216764929866331108590184057235834384925915120693009210976896464277799337090487696046488201837478703507051461911066100992485267790624922917225283048040328494063259835035538168579755084730094171397377158637098091746029405161004801389232205211711444808605909888271842847058650969094211654809806702210064223040247112726093032877581306439748795859795566608048791838957700496358634664055146491288987429971657282507871318135958255296162450761803228549808218032363673289552757980644806720505444660682045400310472411307624196821493698740582654061845222577862820620883105033774195917372851975152716104968754092753625999789716691136282946164145691847629260423711198378365544437574332778120393284167973905873650927753345227756721808013542823516102474223562658716142768607734504948437561033473863555113677124737164112322419836891862464608048992043820629456227944201173510758916382389826224124279201431653601177040570087900038346579634374562199093000665578341204915157491312485543107140300913471892289133843985646343870591195426782590871959775560578153034712374940562930866751645202008489215037454456583342348651592189735795312189362013190253057319280670079550451176535713757607369647938386187534804520116904127361808342106874817880042992005152176005093860297926195739757800868830084626335009139788257423893180278274734204532319588861477367623577721900585459838603295944163730819908571709573807820387915081910625710191157981593596411751022806487181357353470435249238079983023656913384947515244551381660116967800333653301613532891263549927762012657068746943776581519779884974032190165816874717855756624367169770271796697738792396709970915794418938731284254571422263865174065340729347661401920115974510998679288777309405708428495745720546496391951304527677502286391396672384020565264238184279713915350416562157723958971058793749454599426589255688710607726229145191877481394501250104160092868725319686919127010430526807040914264313459206880846273952652171916450338378842764134633453989272977219892898073408188410686261953192861059280632502397590916141038584487539254736842258541121040797946202039973668202877360339403919487469843551786624197406592047699050631510524821709563943318110738372319804188400804451674202108130731494289368758731022397753549687320077005912481090667511445990939315693073789686932231908650066257216061577427952796080738572317832685335694335331397364150079030914609917553845781447817506451618231482910355500572557353176814013532004173507091733531582913614234165553120146835084126683036567552492241780711165861439269081319409592662163632623518172000808544379470274255599555121919741749851593048824941952515903240180323426906103854332508431482495403904895185475912443164624952689286795770268744314957721656812637771516401453809340087275660915190086083303799872222816545663330309276942272339090925102673349017162482993140411321016596543812549355545642417570850358029028703111087846670248875635491084801513276391913479848651637906183496092976929337711216448337021067485861734477251149942944074019202473723700711791071987896104090270982173170687335234595357431755182757170258676752749088956169367925215375741006831196316624267251028942758690065276207244658477055466822712271493760231403353349694154852651062751635707839968886405062581504524531055924805131013058406548473803254468031774344493132667186066703747149565807506785827705364409097517646054895424487494300037047273991444918981078177552980168350283282487199999612347016853738027115409410326954394817528270674790710446346588502026909503663518716905363253634424477638290989935674901829272398059542660101151969716355569542494727590469324633612041931875226925182438943036768553476780930790276615840001453712664911179035692420112070046730981369176842329289418388021769881278689606054022485511661119400682668039723044467270126133544340680499842375019955089033231200369412048814021692058297588628286552875548828418006557747530209351978957454114515222654688740873549613207040880184936889114541614288199766369164263580891787532953905796729607008162940294577097770544866556051246707494439960592776416993241127485005576734148421002031924141644712474660230560261531364615378720755948790938397343279443311390110647785516522719990899745050010880433886225874512256037744453069689324200716355064103664791954704943016285528287132961552750482647306145479087971201232031293729227231049435611937143087868740751377317122308428092300630203738009180411909992264461536760113154009217501592139331493169727870702658926090508278932223218995610691443731765552734324959063301611505395940312463153898002363275481023894244137446679146525722572002569552488240347256135536774226841021847985419221709079483076546310111737413373195139273912023178569124167622892548268004754846870791577488516850510400222618846353143615062136472236706443373020465080286651205752368630932557854223056841121212839659192468410836186995893810985254780227418558056625425013520901575071487030020967943515309860145188051225870983162968005171960827070888011318733988339645343818867133149334233212511001880629305334139244518326280932384458313089290938449698272911524093505205509493948880221590508635195532074344970873437553059269313960374051142352549131921926634663106121256859244458191266209838948509235271531883581293379602344509926240959590428230488524074095760254812604371822146302543338461888144312724898793698032564911010467062012144444237433402653767394811882304942588143825097771260851272336539328873247794243045492285642436925969661896382880926323875812791230986280695636224209563538800217492124719542536536046274304820531867032716807956684885061253092573348217900313521538538778094392475146997681665776727838518712368331514861228933888745194888086965694380341647730832317691448210072043901847571366121467466849231945479309575798574662436884214805872968456326659547014064943340265600130004247870501488178802410325444560733240533638620839621364957613517950392130596389235017441022864527256653335928814069105869003366578484567498351849453014160342352828941918410604678112269685045432255209704792271663193235030792325400451456961609155869928136865529759959328928173485952769346342962874126641303555820731271602387958084063562582370996220660221069889446785467031497194288079449136348929303837028450402586387923430772718482218108942199534194349671856949643571355742037971731208763137993172074041804868472185884105989815325208271439956088812216510405080730137346168406145015833086196228497907196178524272970806483681846072532963759886075023954361081343227285042171290036229732206858275131940578051962104303052389373528014673500927853131322392865558424405088417520803715989552930670459808085632906013066152286202280534024890986941488952867549024423664883377290874882641289439608479600244447247478124419908231702977115994283175578321848580605678812275004063573122865644176135906939010693094337643984875775403025497460615698314675983314055935538572239980491509353797691988014722957012155605552535796164918176961393881907130723117321464442838827313981161817359535823419211166697321920279809549223026310597609996770542387865998897717156121085736640913840867485544560025062163035184993374423868123500113757234945206836478209965395364496184912836252676425914389256292480781414264389915087792445847759629794112337763867480121793682803502212484558579113171116006056772270041460651733630021119804532622696447235310442719550797922644686646375472695899579680207418337309164137426401143864535408950787173156143753122266405441026155996050519693743558904654964039725333444774636042947336096356397982631243513552096766101333860567446215478021668190273990801352611700187159656306913460547227694984119893984259469884823776425181420189493060721409803772667283869247969757181480869175887127298947002601439870831399976064441487247097234988151514763352868739583931931433278565977742650916093871997738204403184734244312103535889796348888536727804068749029134689634844494173468163753349130941545606280475090843334469186019198783585458286166449221219006803176602442633128743060069820028800673693747940109696973613618308097760128725753744965266467221032835486623706615557725039554664736048254288282861775559790237257907732491826328565668960355552782453362943313505995273794169819687225621183368950531961853610591491021428096524555240150649334066219333900072507507267940038389546946117670857656256527344127843615534517226488107697306523446457255993466120733997376381762235957718364797682359378910858425950739137235432620050116257141358453450711347854366226481401520615536737853432077416923639659086852992575430705759291406939415531431705379854550684792248831443403944484256742803432496952317667552038965092213198196301966995585799535207504309940454951707861121356566295730299217522637907200185558031707411780763064577242546015523725706655650925701738795875961837951146383190794315243930059350137968904980206385702196071493491961187995539988757421106794033659393240834274222991945436459945169665089506576503202600447605064621242630340873527498638759102509146796677428565408861291441955822832262842365492557387652190199352713929283523784078865844846691099630652832921176166498390620368480929458307478662253814461202193605726016352931936148294231165720785625751908985056180039268384342311404725396697546474634928115957906598118758057463892548869686128134007017017323627287538310296221347930314570331026378205803611828459409481747379731967322255230823347790663963999266805481055554490023585846677998323207851323799281345167228972941053210671057735559797519008822550891812628815570541110879618686709220123612993775262974639973161146741008294000002105695334619445014816193020001387103194437719091375781282459573345131790171460998362777949353004322894212669169771263094798680696130200160464188288743654103156572702780064509700756240307157015617479979679451441465831424225232725164778946334314503074291781284363729667948031386090963276861744484578203787684168244288060831646617383616890641955051551216067091453330264185502699103900646460890457008505595057119833370530352706945192804963586371256573636737420071120884170999874953553451576542252400339687493428731190748197500393719555465901530928950699371229575285723107972865959791579335176160984786972710346850318832314667258814133782017415873919522562307959890966882046899878129494819101894080122831298847534880478614239184789772401429224433545529864813995437624298811842472666234500627259495414072416757895899647280034793409463353015851073635820931929042638493484105218244712743324273332854006613969185410762927128462641377858679621152760503220571517165383088795029572060947201028544103107910887849989527856877047850295739035185700332387245091187086979543404698203129106183601671579235823003541973708452099168260485382236735347535127040257882437319857427200804768677499144524168605688890460780302905472160520265804261432818095730739007783909299852841628202420691246189743728316643261596766480066122099147633332929686395304502187243159348616257666378424445676116647703764675776779313391728242273003706563572372945094926435427281640052250937019997289892890727961373531884557453769362414394178969977795894143284689331142787623955987475079703197675123230342418265763838683457694974931799350462936206658802829598245557872469477769244118193560846854072822705233185720112477665265203381719656192674571380785669783937443667950922127385234152080637587235129565680541997252838967304253759887211530335074654960267587137069962923863054587184922247362851729595375122412847335996698837883871267669107042325127903636308525257037415417692875892274708216842852974594077505425331612589923135318248162594411259877701196515158301727739807908027372824830609982344782636727566957582614512763918761822912861363805799424475523420394805203942127418594940603570449959138261856655814691338282845272299207992651559656061702819018223754755316957789274511711683539977274741635800255385981417917503720691298808227317649824924227729895698127855756760202087085422402207471208065167158079113616904532063147240474101945636284794979759688475461652560889684514561145829223043507508584396329008047626720815600582743141103133984285616501352243762872929719868052508754526333400936396961015461321362170089467229850992554949977790039631327317615031828710654739492905990658917322373669563463911906011857453470723228941077341945124892879724383521700002993626257365977173042300004127021452689099142880201361934331562070865105902107577383892566465668610135237276180674788101032283450860598827638517560058588191726725061638502522361339463277436270158896257263628376827402245907534046989532681899685536873807635028303638185202032745960838929586529860416452252226216040074593462466333653653511642910467986065194517326641517015332076859598980227912759137363781454115314503668680332340297776735985338705731689608515982439934472308619422385539980939088365947139789193058166621413352467139799383244576890957673942823618060768235200653265409906267933254397596657718727722570691808348991721123306872037737252345108458591389670292244511062441587670130669848758113227735794808933565404453153909413107481442211462262464249194360825648081488794259143328632966515891052437286051230906932467825442312815220020862493239924242949083717304711700911554358648451979862267687502608482454672506790337053478116653687772842642786726260351245017987494579045505905620839993774255401661347402094311308289536000131692178795085823448219266157367122978394446395024812407392768792998374155421353302316633204477388716579976141949157647641544651719504406366644212836533776946616030348979002158674229906466168292675624987757397412404312028656129808253151063704532577108904811057101239678778512914485120800532162355005068802272883219176659490868217416359803289921270010980149456110753426077613873455471131805392732715686616327117742832800173446049267581713838844305180394915093743295226507722417777774705972862670622346028479052562042602702304505228481971346854105947957821288339947189588222576843105106345719903122076489042413173661502590187181067029219084651914504112316684047675322625217565476199988818715131605672602756400205712263456472085174402090192617484079425471949056330098114655154826841904151782302967806961328298576242859187029595931251873790962347092625107829268834740352544432203756254689438734711956390698810183977501618040339142114122557122830949653232956624465841513691422729869497182636468252142292677294078457514795240470884047483079432822990365297961942187810769763659276531116244368436687437091476752400497706054879020466506797642641801948834480841686181480052058646543101496292262769708024885544332517263595617201136879183317372370720873398198068985715463233032280308171499592158204666314487392392964009508904553547663635772743835857495188422275718691627847005207994634569266970972545767017917046253185352699489896032131167354862249127912934911948012615250766697207423109471839424466418699059356875304871374658914041683140397868296442888234475393813188884746854985824103247580768998271219755049864729645797338718948448152034800142877144581080035011642008949054436981299907357008404191362175120930441312273674232690350560119425223038525068675676550711883391961927835637380560007396634927595960026930128053246072418188485139611097616981179238789878367492204491083946785785037843166465087043423247971924420668873882693338217936100316457404258685767601124661919483382239120425071071447049129498000645888162157512688562988228961108095244838046203056805656732158718913223074421732886550937810818843065816428944372286749336663291541958675788491703901065764743397411218608699157037052798329739428977587692343053342368425187048135334424994762458552840833996399527339732227681589582182857562608953105104113113409860048925289172778623397887712998369034234460904462634108044464164045785885111856170105141052017752973322867885570281532234961889832816490613303526115778500165940773940342501641724071650877983125920735331810647096301132613851187865313192421103109273507472302189831818067843325171091236455486653801245688785044743982818399434510469067910144485131617306490549554149548415500553618628185600568159340152528275034597391076878736372667522537426773351221582143545417592561154819565939729155319758541209166357567895657006548098327453365092636237060571374672436953416487187784116962296600590358523695436212263932685050249975058130695554923848250797199455471653700005283182413495900104900513599209205289767673821091712553998594164996807241938476954514288037553417575459226402298902273331735337210749628477777434693577610591100194161454834633837689593005051296877904528782492470963102838154975103955258242257001960069695138400847727361157438692191857089174187051469380616640689353831942976121282998119266779941135630257478820387994173722208182444150349719680382394454372890461770091357985971541641664275851000689773363406539603627821340130002960146452974715977436664916138477094598199565241717911832209203112792564881008838156786545108651384480201628586904854209217624041827206510402945869325159841566494869497249130404846522221460301280962126626901990008488020409334632132752806754820058155195764341668052518829050138725605113217480138185204493981121234686992478861470545981383288160037360732188100626957021400066406906954783810346502914115486435679603818363763291275366038505570287746394835517309077910634149483245193272370508899844282631373678644334740861629480717481571534221405912730701439161343878620923736232028407352379880120325351160442544304571153650295355478397744199006550568275391530162752625723419778208843331268743661364192546968294511368389209449416985650443829912500470864766767742117589829238061441809960356311670749656691442768259668808522921638598177136837733581712103236624482771533522934670800588997855235851053194215734363748299814805553647364774997157851035465153859586444804016254381845010398399863337117208229191520430597918471353805429272449764084765319954501205810000575555070047826932092996062377556656849056266276771571947281341678380780235278587778154052437642546233800844445017716002293624394694634811360056654049148789818667591813034082314108151787136973048136972878681224198469681640390522194140963220051925294635692984603885385454097437980521008069826760132015932053817098100447975006925024199472877698645828178586701091098505466516492994874949063237798054777402622602317952132056956427665726513874235370635282298066519806014500616371569287558511320465532777820808375415233419040429754303225059141901758899285606010566257935353198594407158787809069725222515991193817207531893776730197527041002804795983523928382025989868206894803840138078398208548906572362933678747137821115632460498885060947145151784347816863857117784288867565907715627276628183296686270690762952366477947237053401148333480939580800711765370578516275896844273385641444213645256509592042907833841503887071630524105422511212629244922047200393465074338772480677326258548672805860253980156158586566908430075053103752847436668304187551003128901223359470578750158708179629484596485600051262104599582396162161667764830221873276955494065221388294046142981598946503248087360266197161248996911797767770852276306315034223040967055706546423938188580861599363966319354976089586316040915400911825638204988037943715609995515137794686489318853863778752807813211527497781721766890633279844031901415122566138578074837202236220059020847175251239965946611003579386863494126617409031852887394492958452781624185214650243546981788585968487989463235322374063516947412431968701657411326649256749780045803033160966618775495421683870935737445903968226935710323972260414111641956199575751672801078235506696335817230040153579688408655777647142703091318195995827363946162581896854821921171370567602960052368069875280097838271085112161620918232462735162674118613223456664340878062619243071152602440089130232328180449087877720006699544902464862714401226640325494043113599465381482387028216562873131020453177249512862571293218074317879498634687627796037290650678925992945932149052305770542322628426760394425896085279080260412781715908787656762120791051171350947094814256669805794566415194354501569932818131990027214867514922174487483188081359007571459198136111774701037867908341190973666984230417394539200679314534699612655541160422573946539428144207329315218656040824503243608185158553424230957535499081594350198418403317220045706103888488036897310352234706996073678644300552848755270948075671263188923246417254431762719789884125374501516328376970570274794540630484054646952941924710887590492103982272754703843157247348393657720861901251128790225548110422634980540584610884995210137066205658726475172306957338679211895899823490252597845822528719671543128584405239690019068730811277469517676503097808830256915414778956207360728980704069741634231620646591231140059528286057497426501951748083237979044920575953989618341153593660033523023436847873753924087530492381198689077470754380355955682581172018629606349948310451225555623390471775848227596533368275425726300163752796293616256996667228834236858748661808052556022447952646725564075905267354876231304336400170032582640532354709129922962357655724997267455951540276575114450687693493776571815336831008279749832146055405894621138065984975222399931108565206991298994396027111645387380660598576167669893251524580662250698776572326315260796273207884305099637812014086984186116791799683139551074411465277408893982857427349000980254889180755360501892244196842069375879181697488662736606852012981303878120799730312712888998025194023642744153135183994970926369379153856269228877665881382673738941065532650622299981195143514862309013667504772123050601210902045532330364530496956734567287701707093191712115124353734632044876579721998159365024505472386810777956662562582136773284414505062379664241376917280094644530548211458743117855482731915308522000419823123151802636428885107509431334371701880097411439118478198449633769623505736099810984437527824900138100711256647165089298006980051705764451706559173823258187330787524834053237909292283196800870698076772274927538968128789351620029208475022896008643896833674069126155960524791640262302965331583331148453225671197845931987749421173535766560203232978541180884529108917509854307458097900620172189164356515837381384077863876034603875967540692761201592052661603689938803418965696096582367143480778820329033337277697452309804076243566607228321823871724497526670847324765557188457492462990256077200018796946237026046218934816246729980353117357840834543762236653447241906537522228618960729094926894780500429271292025638010846952498595378784424286730875989871207734794074692258463783178240397335876285774741955193198348076066901673104705837306743224739416698968989131771186413185369842568729044462139948775072042415987072370259503591768259049268483520696932186819383882819335756823029621903743657265798453247755530031384175353434550158692666837365703858377567222575572545608302148707217603827354985217183433483168286813965780076361824763695919677697808840008214610269389979756676535302626243220612133406117935650717450799422829205958025929250293147824819126299445257991980925804232211925491975198325724593539499385234540510754524709531527356524057813283166760276487699670145526366485903876289395388872461735769835123113424070994760263442749750640261070318316814050187222624904363870595250807739778876055263146263407834203655263304930669941405362182468239025317220493602415793662207547763684166979633869371029599513753162915863282495383602424036093681071330715495231150208411107004140012760230704072942545481616647334462506726579746646438859162951887923741407940929942605395805326257012799132734124658612439686605725372573825041067742753761821092043955608878979687171179046272090848922625645631923363518895474955344203245432316259328857964135056156567175787754054688563510870076672700864546723052960226345143258060959632506537208617729236478257652382756648729199365537958376836047918808086354445543554031069875077692397146654889859417681835409391337388683741502327000242204582704245811866436222879320030098353099357912093411709000819909727803805822412080186060182750822620420326146534477145498721760570638151014159758086373640948686434863844731022770812025989163536706956912939806367539700495689244960968010582394275400535823972766109520502861119353610669121709033975054533143475306529030312632786263450795612854472312670097333441676730075479114855571503406875936482795901526884443460031046918163121671526955599749257418596729802454274496601207515889158277649367800338591125989891956404232975609386198698515088228140726529819867614087237230730134517047446043226256664250423013184946498616268782651569224379958413116044230184346399498931033897398641217889815680468625762129268083315775489475377948627310970156053274601721181002686479530539510515568907270008919094504834955873059125940285357552758051616327604390190026776759079160774721859267960693024694108782370799479144064615620797069560089529474302580466971438391974669360624865946846151706850791313643000836234461809292344109210136162068613804925585843763660861000716617270185453881052675729876268297948153985246307342101077659337114422777947353918376103381577278454557253934435245869993157048643853585064840270753126977545196574043022468833013786171695269231773553985949517384614575771253951400456813554854357847907597482629042255660377801627303156394270333434629849828824401554501264320760163442138711444773277588300751829423768035432961651572679507532826496126954729833222798734726826013070648014196207601585688435269961455728626272229172799456429459787091531190240328053346222316610804017597769695662114630944297352558676222994577214256481854703485839248226780278545963982267773070134489879881637751620529014166337128053042328281297275069868679215618680715294745976203861400481968719872520987457245236912688617043795417761309588288626681305804014832004371421826259006458968393548547733755086142240336139539897285710587570799579985600581805537234732011990363122896293452131595133667835020396977566449311368443357294155719720865379680587073237506770111494513198028726761445347352080362365835692268551122623760240085625314561845651067179380147830599132730520538860402835753169924279229749021411226774418576886838935310972474644048217481659243289756927143750854460878753371032611864759106391067034481029431509535642798025212902062363139250692696172778660950762758011647216876425804794118746027519024596548815496617209980669160819530578462786225501949607090688384408232257336872233159319741152286556789320650680104171969725237303165746598487371008926555355206681270096656703935737134608951687970770122348896484455492959410508963505921674560800310304134892849033570564802471254799780925183787509223257531142465141992210282397972267289949766371961196029353315400525779984331942535271427723635189584709378504341992601512921362862901092830775881093986228416346839146075391908422688674791308505654237076277791458836669508437638364069966930995485357888148074362406247630388552079453655484323163704590658966853019157096445877036503849528636032840884506480287575419780982459206750848602206437571419294972019937525673404295196304243744467464281267459014406102176581019856761943240371065588514286353320947725190913992416563876170313243853262223808083107888142199168038856857271385020252347736993388977197510806649580224445088356172690372530671585717778321606865740332367692315798794471687563283229353885507582353502556928892802560762865382257785161221394874047778163872049664899038131311177091273700821684788311081607920214153691950941109592900186992598462849025545860541849707496860233775976515903786675802374147846562648876995901123084886141836334224836349356477124029763635754985970075474132714046895995051348372530211998644082245394879545365169008527067308505191369655551348142000973623827653925354488097597230683852741366466958890613022291183713619095553455030166544409061825645931151864815177487635789777614769143689499649607975039294696991542728062049962140086723974587127495228364195993789338249206276150156149546336612263715053320472557749356557597897201984198000517196273977083546439618638925937151252793722791499568184123687934625948778219647103428980409184645943253018991544534522340644018784868186011311865702728804849519759081157382150365600609632856772772035381633860890717259559396161972372925416317890376179423365570980330742495921809348095277617545691713403746073587603317892879852222187836060850114305331310563205247263380516136856221618588810663621663758308042348760767167777598500305697465719266044706543559980340718627356973425305352932215758522584972868489280392194479367592990628333633226703245108487261327147083182588257980513629019171632327434974011556334656585640771896071733535932036531685782673509811463845577107516304583919309147471425165591721730165059737014669326275732256609587481816498235300761398672318689596521083612938707810495398915002514459884934713837707412835284127924301468772929271698318228865743524836952500216463162510638672320249368104843333566881265316662957735929815917329450725696909582759884419779980053142911973000525237107571213387996994833140433015126998593195027385876325830079357460773168496913325506747471918497555139425446606901225326936406583476001861212149670985323531922011005080538156874888090888032789257966177052921471498593096877899020117386070195485148784034674489565482590022504182084863932932864507213061942963118208012802561727733944340604233441427603077933777029112561413338062895415501408520911229848810234106702037873329544585237115046611766199130390848425091692269146257042808874031112158431765008670732380581855327015140354232344471107511981989297435823521000057806432338193019766144237751877048870680964827133431203572471081936231311331959346580542630977549518349476595008253242623058216944794667977110190470111693350993133995626039997246510725653524307350110451178030148170292511286979235904205282193331578574736424757123269629700624208252948329643582907076163251146454008428219499562233279056515554091665177599574152046204027197669932642395180168354010500780423006388505389853792631654431908723792509190255357397932046454721873639059805967198443968034130233592652624241770145048315038173292144880875083146775502006119437857269503817398514847198438977998313364558928295768221181964638452440808145749479186375139017212913959040874882154586878746204116670536859244695545806640012619693638768555966044676835544539445722457703331213075231212448046880188133243821658270239373644696126498180124442399139473964244957393224872671414521521858155359199496690880176046330922290907396164010022787657939323281513969059402449083125087328591541310507511088892402830686352452001844820871943657372592236175229415305987620351237717142542014523135417115858971242359800654175372986587640981971108168997572211469540382716227727339791808726085930818740136540577359626758233107122884966273239044336241200631023021826374292826936739419102833083362031973611871666675022848502834575271449717100494167821774542030195039436444537201347187410432250750081882886822811060749510819980280826066242944520980068706895534198092136570110646746937787315747141813542524786048560386743889876695972998057664688700367209011051797986533354712459743174855207934667592907785645088856121785131663058535884289820133167299125807466604703746798604531856556981889923505563440689771706860411748361243189315222144896061018358727316926323456230364318987765236067521659178121862272346758612470235885592429358615372538651288707074456649766474848710083149482478309048138906436551529105039544800789419370103962552346444148219456370532492920319513174786307378439108692057744326834047214066639577325310550164674643550057908199845337297788065770928825073414209996081736235311255481038921506819018795855347550636695036642325019469031735100477827690771393022553764664630028548160649482344572879376798231506641266120711052743134430153224483663035832170434608928096407892927071682893211125225276308204863690439148838990620933637706878296068957514620082758851584443914238819937709994329832947090508866231451840147367139413786580362401910881636392516418412095772676674661743305376808893509583621759689114842630610546847866961518500843691536812651235263460870648477095943122191238003370988543602646948473135883167879841375848376826037297770030710138448854891436090775070502676584343832976459289591102065674170689366936518811480046149283325871278032405059985080852798703130636400766159142755608165687635965212377928217813716615192091424822990844181454143009668415883337903105179880835066830952814671412896173125057729626655321943723911299077781762610190494476756507776183416699612849853947289681879394870394029270443990408646519904102456657623788944039026879657945881107121398828345292042791922774837528404226759363433499901853498041579717511166270787841022322336745030240651198293957684217671121093531826859378165520997495996307352753579844989318084865082191163961091193718959189762584308007792638417541483123929019684218632174561261899103579739052014500866331281792383022875526058621146691673790052853457022077010923172321557067340634461168007975990980538729819959444295697227935316271268369676096059778064107179328967885893636724995796608964343331210318307307044460203275867786318558338290772583522602753887508643868614714854231898310678824436137081722557001619177106198607144016722954547967206949316408069296008173844512101999288909032146771857100402301679831723416335619972491971274866508502472275924489969739492495169785609006207867948620301568350605369499792639484358241280453932770376621083812891532808250658224699220705374817104312397610829675516108640639138549084962286844582872439207954441871181364136308738459339595170512577600671322023112052560001525410345634777058729336618226735325621007592161990764781364097310969363935945377539080516233668051733497513393236733639869890971235693815165288687084046575259541549846991809114042685128761873015304660335599382010416740814731618211329436706020170926053984481144344151009705459716538479810770893132001010392774731086139544855260454263713167934745525729725763537158515678441170933255404254472456106026112620224237482080507089761774758609906050299860267948507604369553945264040252975653862443424570399327523550291651661751652883906872906559639001052021675682375844593561435601163563924770786359999379204507329321988150786951489033186813025288983032894982254867184852899366550476688480788435451622600816902530290368719616597470380412090010893634354776353786155458970538101443949273531759618036928191831576129807531799531722763535337598458253786846630665900028778451723902282438043214804998961011241448820058129967991110348095627322493310270787352343884905924758445683593078002942006075604055936919082364342356447395428942024120619971835868657642168625145462313017867584290608599558984490927903905797963738903078956944314216782674201611657423125557754783562048187320426881374567091949964534929195930395482922522705755816300987137811774429539019976808901218450530139901506928056404107874940477319624032141485124883567460837139929651053281779868471463406585552422184060405963959358217875203284622606714622920712935857540295776497634019964723289498796177165477950956288235797512938983022528729536093710495142474686107411304909352744877971079998094109541501956715421468465715155514733323384279804904813897905938620857260543917351695630417353698223197427312313149139216755539327248895159191529219885006198593318234746030838375803822534969636962202327004881467927149999712203749826394112902768613754259824850235428747438500324581558389852312654821651768021319676751374384229367251301006876085838285452133416588002802149553361058162528302117678045237945590713372135813122206933768216864257692407872680412916843893798585720174252862010836817373732555836211979432213309035703212509622221705174657639885933877849924259624489823635709685492043727907654783350808080308804441823580290451681145264537272430641453167572041591173765448352589855782482588983219364303241637745183103226348743315295526295456260570321566143500894993503627778064483435229681018243316319408560219177392884652994881923791165322178229269763246796337925292910082081270211043765259377168394346895401540695846274531190466218483961527967122539154343435542765140166105223046288045250346322194317271174976563748080446455586113282716946355834872612278441736891076317925391939180144918032968414988401004051963972849250564353015862639921188650972559847953660790828312871868139933674250151359088050710762521145476567106221412062971681355272470398720120975895234623321440876397879010433045812301337974268117857509705411098765485143537602841204034230731621893293654501155531833016289702629633466512499312648522526036361668444176812816529729411538418824270541510039025370255531501277113895678938074336753089251791680729376036019688479577726705969727333524885026871106254190865623022599694104097909478104642741134807717347658027555603528535150240563486122254331564320305635014905963106896655261156868571292581001554113212089896751302421041157239778561455830872671049888164391675286453540481362319726070441135556610466844176064872263066669882332548215515639075434363579357505682414730743481387040236067583303371617510277278042158130435472776367776163188986171012451762927565052043490791416564723832141559410095789029165195263351994597493671758966180728954918910423067330508885703654754324435599553479641477301061955311532235096504732602811192803918207603240595133265547880876291397226787864582365193547613674047637512237317780421364323176750177099484131626723693673668463375196836598707360997590482720183540005979102870675466360315597704949575515414749235401743791766351605013890851306310524058208972358935977813119627123180919986750773203720746965500129375759678603742591561245440214757910020362648964709702658778293413122667637557338142975203600439039762986170687468893961652640076965545916733234224012070813147287431816296074846141078399203391635818868952529511687224813988045163921635483584509749491795283694944274255005684445129713512905713222228913657215233765337463137516237736222814093354141618278867678300095874885644816782189317208393889978636557849480539906580131673429728215099154363696637254767060077391568540730324645926650049164300207394255936379804617020558168196406796185572600366275323850067314061138144678143370039498975404785784927331665969998901284740765394455188616216079249273112124586632884626158615327918687315443826601108748336553533271293245010846579306035388858688900804546651865008289775065162050720549478747281907388053773646263822909289737029651833888442393137769686651871158320239292558150281413195894183650624355923092732861266018206048558207238078147170679115893629027263566140257091487345414183953171874958628575094168286509673530755016418812166655275410915701421713594362820953423760819201368286251920172795327018863694164249985530869818482792694619380096590115491385658255262969991790987095764408861485756473710509481341085205304658088622889725867656315613186650628321137776349194698796247961279854651788488106456865705561684266210833874696622398107450751460832597831293067782858873213815532998216256551781428850381188752394092422738606836578065163279441050531580727882315176424968977683514998653517623247061674436126039375314594951190608459962218604414625271019176405263089362673590391041022712917869993391119819612025101321596514273885669798495957652724169865463718393851314829663857075468970373703040784232371923460053644111001556316342247573683813366809627631905892148862123726321859152811954840335951300675056373816400158732482569980915391317098176531855107108498330673641052642852994197158979708247529815755292383799287764366956498653396850601534329749104587853375373982236634429672777342226888374231022399140174059334954591972590760140384253585180504236768797703815177323044165059442201551384607071007309480577787448956058043094730623538715108752394180651706217434053509057011671166415022884948405500367976321062882845168186421080493617505674020816199240327929791209893122167989630459236768839545036200418795430341962084852828009736261799945067200022640268487719906848072340142305993389533408072772695177938204382094053949938609913969562403892081306767065557715840864895951618382182377765773604148805459397364234940644857478230538499319571094019425494557356306613490290816611970251706960619385455804424634422652167519658647912398298903761000695353198944470144838872402718201675791205221805318402766684504387680295787447828476191486720979333135072015365983638905636790778689254464755620887855872423676109581363268235761279195300326657789013675614322150070460031996021727603946329962465718962575451045210478252885399753311127758505839147290040091367746567347156082760540390394859744749131387076194207057216873880043851820084309064184195926343376548908135964777007493829340784960860085387845771669548934355455694470253266916622557697386583564530679731137676059914523400154555336532728929948223188979900541503343020426160305843969374435869801549436358559184489927929429829089246196798865120374576321339971520287440236193501262180327592412006006998954099364800652295500811980341082555094590443655810586274117203305887977852602900455699865798302257019992767355435759257555241088706732394286023788428288233935827075511300566351770195902610906903867196928479382112708287378384576611880282139932040501493945254653542122985851470632262556411736373178563554574249042310620058264198571550144775330485639984566134041463343213309774989292664195756957697055315509543876596381546619205224109635862658646531383696203260204527445833928240056451879381676224877968177961512963343132730521975246806675249391320954050165997435258870288966541652895818952404584128340511302370370711384892553360357686542122727000171561303200157162156028556126195613460091104168024540358130653272801884323511787733992351547567195100725781361512572099468494780927907491432357673024762962049842330390741570302371964927420584320659295903491403708528095883825153632812481723889588286736325508132051851311755909642627219473603616626548354057040871152722954696380217585390591164583596866291969720785772882956165437896587656748108222226574013879331695067976876232903680233533091821539542782264333830067443422996271331757023875726817463710743467151098672837193779522907449429681254100520328296767096064617999465273040095799193099092062194905513237988843863695562356611315476425106180091958888732703359977229248886216713659979821922735963220084369561808409067841669042948950670977667075384855686567068120181556764874117020734857133568397855173929207306228944270053942689848098386545990651352785183398084237647297416095223285346367936043104478704162277170379967159008505212348243773373587955302497458504068340006992616959750295070464607630620055163306806633439591955012555868316683146179772332587635792133277466057120708516178365200149142713783564623599794609184342612293924877381105700666010463271978241837792447620655260709207831921169029168362240411145978717367199822394223897407746551047594872901708576800971635261816955963760817784347662240428879359523608268321845452791158756970111556638114882014441328009425398691919934113023497540396487824831855669827724267203188842190486918627410059388942077862929719727468027014316669830540458231007896800610717957588564011505917142143892851645802928510137156910515795181342091676397137467428034642344712320544425413469798721709112284345240565828993248084285002177605575770571523622698075663020075972434394589045890938772748631549647167824986397039469425190709445879570048447900987866556732807144503241354374543826911587969395471447698344838626854697975357592467187775509920208953187212098667709701938481705852813231990707979333912661391390023996964390570042109058101690968609556136086310335586822813907169555545280474729264635510911891541560468821225120059830007409123340088983001202984503102877607658637999443559893235463457038205555494088583931938042989477431723792269003823267438269854654003101453058160744800695358899382644011412358247947440854690643632869623583712226669093622221794530836977631372859927617628198378961538640008641835222162329235233771231875247066143337170498521753619329435145676618689375866625064733392026102013268657322326687365516314106520613091147998560655537912632483220957067545006173227818522596056425055760557447875599931127434382344474085524187396049996896286286049028134213377545360565936603282223813591104906682422840286963304945793504718968059163314221699320009553409552810757536046269196430974531819520102114609076021874368404001414601822115731043485169654595098349950079084733594899282800773670023739350637710770402647172314836003958911499380161701641734486832005512365637210907636808126153097367605028334631496767899682943351146608127633706555576807829050644912528100968773819536696272985054825501898709054751843248433569896148304213156443855059895553470413572943605846442958506343541682266775596280757480385474875454474786460961257321171425251778085265697638022967298279865808592305337486208628072332624491860181428640420244423062524727910663450440902723569622045314387506307435535135114393221059249575265018685078598726978956400670691609241285733724137580274317562481617710021728877753881245403697964463717716569327520526496261141925310173326265909003540305735628079515840862215300815117651853978818520891837715224095700892771589435854012762602645582507323275912178108647573417785613377086516603057839998673874417004194907371304248788528478937805928094321767051793632032731350404693746116698248972162662587261505089018617451906509243049468363698877671683659330144381764805126032532023194320853460936337070662344422731503449161624711598302679295545183945614012337730708175248885007763769029777289799195144104445506147666419250227462949687286202535213136169656824268270370475544700356033101117103909222977669830112764019910348242950797855488538262206661932944417829469984324239112354706328314156624165882686014135650056397535692608305982327281930159878660940427527258040594093947515808054746466241673745253701126036346166316853975505234025206546685591482084554587890027564271630231823250969106255689917329595398127231188991680528211251887844114073350873286831223496705725838730428889605081288549129023877126402012054187312467034335662701866547065787005278092478447210619378171213892134210611797302653605686417442524608272386748226710634553288788807802822520103224664088602910023825265254714552299304626299941037864923093832121906458204538988163428023704972011494038936381913519599404144778721008839035598613202870421052233067763983244647149406059063438957757700580260946714424738709220781783853115132002067997669178780485486924378410318311437952721228204450184508131749126231396693843021798046948726690970908858372531515108462495245756332777531276251042803540610506561584340135803423019300316190196855904291511074035142445997110081616073174084870728021247778684417475975888430636606424634595204714713528081101747632000109302225877236214332683643382414367144560884947412548588098380857212662562633545894766161843392979631704932169134543425975713632725877141719218043034553237388043738183739595489607842877710292488114153611293887039668461224008133833297782773923035753240491794532766338185811274099450751972212976515393775144727697989879896423221077245083966192788363365966258917285837719415883590003002399946029779696431987477184719378445680619654661951705598471280023235378267385193797105848903178067550490566738214919287993842998627838698483356494437305490440750977274940149239934089089108714493325105613551725205730973799312494931935261248864638945255958039953619137536085963925141976371342049809907809830080495983414405049017775507370454017153485123099457119204624007162414363525731378657071002458374282108996459946501867258861847174075561346304027775038356302421330707564142859293785934099752199472054112452527793626386401680070912848440286121645705208988923510233634103394423516001076203560101703061829009803176931937357396761580686182019928022735481851982592070854938611899756594022562222989053175917490717285539120354346848367493015401158148839728519820767624455482256599340304460680957873697297054639890107926811411829650815725361981642511641088192339247282403624995068368012317116137154797031554925571158412548764440650660571713327186704013804585438614247854064680348303815658447169799874543207882573995352247406247567689083853317707446447345413228400940600368271081981845068758201807741980189883864392861109614446275511614242927513838048293235257404298764444318697459203293342650469220025224056769078331316995971539129963557665361206464764827400523914096811830489626142288553558755506026044577949024320066297732641078982531064220905778352708533942570577725770529806646934362811011787956767513326496528300884123498226345633738042077609812988239708381930965115767792576730683526134248488622568819150384351362553207697836784161842675882280257823847747373332807664470973533858618245915255257253840269192084766374430754359760907057579929165295203009260484182254996937068326105597434968056133121327911489261016933013370774721513382809400843091270463337892898237785398892397019764163137061629587163935370027865246191486423686587622725248317960962583100982443285626797426993215524850690297690890166570198776761203213483503491059804369867999851071470384149413959104313463674299466222222860896108422999940645395524151125119669102087000665011053124461755178522517040729225152610467549271153437491752325526820050629044333022980621313377932421664736334966091419197857862740291223049809768607810297119830474715732498113553457592550461716286714531721836519252320943960666138951581822375839865567446547897693243893060222656997063407845374633320596019676715667060439137810786759672778595632439804651025542077377529083713741132615085167214424656322154514780515041839515032263270394658468929436639147363931364517401926182693245504136585430012506779463220633793481535828355429074961385339182333183150423150937171804788361627385487918124062896134833087982044249775485368535622167531260035497187430721067051431815446870105603441116059787880622198884671442462651296083537173879787211580785582142104391714603480359737488599798708285194895462915047365474241271696862294136718608515860143518732827910572033939720534360715313192184435166864539293197592655503190102862552791336242947856702871374813205857139104729068762163016219644229177414716622763700197083232312927498968476421314257983211863488236418477515177185609108660796008943374201435394154917954248913841487911274795183329774877817650091930454361163479746807967900276704640835770245765617672251374387690651349298647882606071411199074245805338295850410208651685999662078135453959017942827577070445583394365996130518202152065742642765836957022967531218308711948357345632512848896942991384418845748826737328290785582385060945425770746789848876564820703055892064866342145538276369315595208153936408756838088058881952902331243006208532989035480330198703864445379466781598262224850314422195621361970553745177502324380072751823148471274080503050720227192962621641674276451204125163055242558833302881615165974042467869944680057501795243722512046003703372941959138319000596439434848800107964792795271149811543651723628862887558036239318629738622166186035556625828272833896097901928920117848025021044029438527427069904303456307400554237588736537983287955564147924355069289515970639139106531783076002776410220405395147173298422351653303348157978034161791094916767258109049175610219008431686473422569503368628452497984716809549561715424712900966916059043196363511526081731054117019189810393170826801375898996447314612195821486002261484419026855807941992280936406917493752082039210719846752912504007081834041788876271783663817380576179366344355022176584053160919136586951303157850585305109989270681829502867447209319209175212228503483269549585332319972947611261724537021952511951409467082700453654375836554751542601619366475133048451022858733360628527976217051469641213030419428687388228959851476008505875883467942639697053263084649441838086227060509039357641040382569782310726146362657411510103921073139039680039385626497506296893644938056724473609045975300189154561953496215246933373484525120236945764310674454781224065133525779996313912965479667110766740244078293417708796207022675992675751920896275658402535976064874602252872020310021247854054326629534588684102307092310357007064863343888633717280894346724619877071405585747728964477209060075322582762819501236685118861520857650171528429146628303960835426567995300994661027721277322018337636754447178674715530921712603242346452954651756598584653150201708486093129959225738094389815996027909966215057903634008380673871966111077563332511458553756746184837545898284969663255935088228077829355296912631194197793307465383401269615793562518464691954310352686148401386695508076343358973264731115402762415286897000017271061708656813154321630603120730349748836234994388133311428954533512479173348631270481780151357561189395266582140493310483620622202723802589050305901378066127048652092280972756499081711811843739689632065155436250317509821749886784467004839894119480404605654834310061688583784500417411679072716279362068542762131828502366055845380893753498026756642691182576394740311147141627725212386170763959550139747594790389639152888988524961894653860757011507064528738102729061097999143726882968809810487070741950873834766698417946721887315823999688509274149590707477500875818387557326428672735660468070571229255801266605672225363643408921632160157545244971314192395870978942186541662394437958123347379079267112984351549548516951956997348178659950771198489900232425315780098078065605194709246024082142159824937199404772001473159940357865192181304509395013215527828336606150130217837260804382076409959460200270200187631605811848183924578618917666846607398785455077709349297744832293118824734125591455323526911761054691514597591384043938598897367851955293968613899847194263655198880220919475066984614335164537440126389421940103409715945084391467793657724218284418815862282300128830110708796303752893622631984897912551866780514192281273458953324888527559714790052503423068744840295696465420383056245894298564700821975742673232786665091832827287388371549332941217091711949245015466113953819197840179797016314389921054505352304415339230581460343870138485363169530776255565363632947205429150047258904934631095284948117352089691870795596447821612720662067900618567383523661859838418652520369449325952102050702933611022181908499110088723933003214054417731280143772047266301398735864526812361567494644968379131285863143650790861826255287430875491500134132933362712942098701976562447335670008619802125034227341352241727755307575669356244617469837058001091864563167066210498591720430826767446943823465683555305331033595553443738446703150197201409497810367563902512223824827934178510792145475159262085963417952291536039688120512312075584952723673016081612335617304164753751733143758370524810671586972000128498025261700166414740742514717374638532536767153183250587135261419874945763529432918772815941575311476280801661918373506115762296897278768469371620897190749662326580863866222799792762621522746675284186166204324169354781529079840132077507528455048176423173741555684016697497961980072677627611828141580272997988145865669379978446832190518598786514058228485031750949204970726774303769836016208277193365109357568100739443236908929024175228924225361116856009984648163669683654276370976901794785456586011191898110491606837851229996852038350095052639858623831403823628811299827129577533739602720354016009557583550450143678766379717100961118964030202042387953935260805969799100476747105351706309616285710169230781106275260235101108244524424521120796896324733545998074387953920596151983568534206186760754025402538619387033402634965797789950853088146222903024769320746191603310461484562041737864691763849281750914921070438434996416160808159836994803321996635499823171583687535140082657411175601477989971582522883900929822358259039920576683609218893025066569370337315409004659428909896282463776434595672575859953202332373115555262191846632419548203991793824261822488042405703096122690080971722654343958924738450191562233408953931161458155120516173686152553944294557094175057283187285826793572719788846667437775590582946688352661949982915138118343936688826463012568417270462520038556302626279135196051110096237299443616125398219588621472670604966663456687427665534007516388235964821500114983727714164985141320243084477052961195197712594221873801715145578665888901043660869366754276752198591390872374196840911927350796871336718385353963188670040047627909306208149077969033470964491635084042569375827817736411959153495592238673234673434876932234737148165905018342131820513814052032381893128467075059520903660600021321469099839011266611269188895611368984246059914095659038453806156089304115019986860603862047175582046911686910569931878997428846883057136305287292695084861199761507909443322926780832736929126096958617680312177919539010890146454366145218186831442092637127784513030307229925342020819736168455184002092744999180171086324410933390829883712448967088419872259293284498099600354107516667517926485758748716817881378448099092929612138487548285026314009340198908959826651757295889786708644855534253904158879650760079747001431647014115346319507651789117965824675186146983900379513063920123439018123371202323143640400940535577368460574602539079238911761190961478528960828139382802033305060754207905412003729014759265680421976768024688134042075907557055566523653054576888601870842802414208995468867293352851240700946104187172526747350457248344750192933833200028729822904668622612906718449683502897272194948730192875766121098937611589465048748132069451085028316842076630835153012238808341751881241525759880497795673817427422512810773713307383044560989747306961141317897060790722700824736384282565122548364657092841019488521025730445239933919701242465938271048223232216058227722758567179853218606290577103721664457573496155575458321051448712163804196218797870472484041174144138580269083604624595073192534623264909794285094088888202789420047078561442054313880634811467471822621312361349669689290004900553158854579277341015687001160115242923619610662542122416043165217488486719575924001576062656995705478542304138233089482138518651164623828717232327264080099190573231730386897117844081904352517610696219127828323065410410339448159500643814885329230287336727615779061690055700710475890430523099479777198384112551399683370927711221150448995424089615574045518951036485271848071683312148222464155262343415352517006769507799349962413112999465183909153979510967969619797412431199787737359985157342584891828411918501692759836190411315162927145023237628819428849210108977426975384152689357565713818345145603008096741104528952923416477019305782944906189055992425301196297113565321203343323838301221355438651713600875773144186934708808185907515018253927937423969220243568672909908675799183561634304731118554170781600736126722091433485748557602779510641776723293133819408892809263252148463248191682771944373630577616245836048754503843483291656957003702559638547262360548325574743302693511052776729786391339372289860871965037850954386166256674707378609130231237027437907127541954193700705480671866892435561038081179792259040353091228925043816272203009238250928793719461608160345375406519696659211094798316854409425250403109804412878045863454203998681832504492360898111570594674041885559634585160227093749229311554695404101005774099807281441450168063846296558624739292282831842902966261017309249386316963291420079245387893001282827784404302914408862789172370901330907282225115825968451350624439072514371476817093066308135122505209615537316377050425219478675817824938207137383257222782325936140677879187451594939879267535308866867386187792130023244989814579525469682712743144293047594155885891530028831763168980598482351271188938512010535866509076739530736190981392983421928732528909136420080201578889697105380485343479790784658455486207063830688116535005573828119851405902511058906972570452480595904286457213391313262011039953138773814250559615021078218097913505500435290600910095036152226385499953673757070678816031928449927143835400305549681799375996409216158292747245172914988949067462355731458532240447423411069312174289151865691202996241744951644887110458764136013173147139797692822729153487569984409162614739058195259391580002745558189616079934032312132601866648400399876326984755266099448399502777853938280958624126157657061007278062357158175434387824512169022717297958304879348931459250180417217324159691981368454332929097079174584375532421715145246951374371546352419333886293352216648736918848720060069053910623330220828105239943409863746481751623512132024648453203267599572916340200308511204449283611966957968725076758160325044744998841560937767702668495803516902337702870806725687868465754486822827877162859483501791608398152891397611103312499021153187297666927399238202276893522299920762745295836046808165048587734611059677421031708400122504308985805936853957838636682977731406867610602106670277934745893390843998225660626088491227999682448803443259894984113173148166632133736003390465886140461783969407046266365738058602353448311024880179068031856978387390778673763700343003080563754575273895058992686319687960795277336497584209088553017324365866565756769018661327157551989070137034924885733636058469707940815611925603680597925562011528589437788228477204747717751478720964382316200041666566425811005416614726748738597815917052244799483509518601032708315920303090075887988649568648712973910895995151929864338910528456005813843235694680845698068923261710146134142065303302237690214950305525022397379660226923521418591229106572482593002069993360173626643534541721789127853693680371258829705238213549230010183120272513425507373607078695979922054342845474612815981170484123938995763709472348562109191257186403910865504930123453602739194019353888374494749701778617394974858897254112286384315773076510999373689118670005127227540499211997406627022719452771765938029916517098646036428723912354321619453095191438218361332625394021801796757997667708435836731149719170543674289985584355711496662409124742332650310150844664181261862762611542319734963195111169618460942989327669800164665138395898064255392475951120290610457179172641207485506645422593366979628742427933949762445286158279748060830099888101116416276984911262228928324067429882933156464706673635635046298643006840937032290086654612836558716814020032486738511907381273445018835481201583682080172286965328996847994530826964548947765113611895927203079699930605083466921279403884889016224177091777988932084555409980749489474707509349911784708555910860912827169862047267761930813963517284209706835788402564886689830553725262109452683120918132732834463037193752387630363274009000014554193697652101652331509776648229624158318359292852127359472729207641767112022047872115481958112434639765381493764056734005224895417830802513533333904393061114551874785358927118856499974669190449931060679430805714133832375190618400880717547271252009396826150364187023746924634298082002953573284245573875985168405900464320216923386161137435074147027086254452087913281155885534096227234339742833550351693416857930327063649742952138995840938603730900493588468601365470476693595680532614444472904694543812326652441699834408625702331390695062656201828647687623534280438515286448339097359697033960360406467199110634537111493635152722919190626229166433183487850679122179977520136937655116432087628427434180147662236951739659381962536569495963491664282146664246051867336111939157866666611104187534148326137624526761864138553285841216626624106245932249301867512947594404220706076413782754351021785296629141497764281965022834370822816726012063584820874209073182617120486815706447961956213174236713030516191432331015382471586978662960422336755592184525587406479422984511732857299164579451777133788858953202449822829625519667990826555435921839090811938359365088466530783345093985948534907482757644222613348379954833337787990756890414499021652524376667802919870418813344794239009960611005533093238568035514015350430276167929435856503132422201564761177568268467343977012505901865432165579333216780422529278348777061077700842335074041867117964174251084669367556174925919601008991484824822937894608706775348332877614521045330704213436425998570811847507584284398098860855336799063803902475084518246270848031282727304177593215664084061930810644976898590158331491425997096776568573670716916771131104814680579441733989116994319313135870012564525625653652564868069210936914749176929064526180280427910185836520047603768474677222054222790506948155883002317857835015913744126473665980036180334137536204844013668774247309879736992176757470204557255204270124178531478762242192894011502237557330798922905144882941107522098126040245350969597366731415152316292264904722091605012159265020163156575294946678156214867536822197184790953175004472918196776638408146315708730312654917294498280755501896273048784108763353971449579029693592035132997290450423347009683069863145846457941985034071414484611137553574985530993406517934754263046895850013106760921028075117453453701207214627195802676332101550001362692464106758065143884557005015126833092090732607706282769576576184312958463518613668421184595097037589111455520444644317845141426860200827989002388071699916234688203466069910403501232744895389533336273252356764541290904699299159689838776238797647877551326221010169519877888681463037341215900273435244860297172028194432727500437480098377498342607560580849100660023848517428352600923465558111529928260903992894347109211487811700466625036797681091146923705067381224933203485195733941627169796356725076651180053205991353948656359399262546260520956400024372333739345557467446515252812796299166761743440850673048381752056088803450426535765721606586729214901316809483490556370315130937332588859642642766845394094710337535379873013138958143762800875948264088547254208434779688043954537840125301097682707509045765096175467767128660747065575918229122304031882700513911892727871802945240983703220983599714234395912716409043845629290549219742218716140071699004512108915566500724120406322898792037851545058387721377839911977797193522585127720330562241674524363146008551138052575548504382300145153099494082764122927893661884579411510029584148906442827940413161570248495700972655708274503179633096388791055304122706229873122809956337000937057668023658818250214390396517730851729426382961611604700838609909242674713347251616116913613095300993027237759706633311712878706797133761044539151149217244526832169369183221842196279902998285972631883564221960785059591305014876668798864660790542270007148176497675133079312685038600759455929854429868928007043302301992048734538829490165374284022772609920722198262102827026638526845056232308879602853658539490418947545883911171724908209276447746713590577865287365641558932839209344484679604010016495423159915418490116212490911911385160170569428403219923088860790586455907934363832828726253652478836769411029280862606158060098495601859518454389762921311930896628313108884564891571774893740765056764888691142409077815936511731832217535443215506238640044666042710284817324237724845845541500788385214214581964199606156982745194940937065769790088947290106010020677134661358018854516063573485089427234833094827062962122869198113769517316663538984096430576551844261300536114644737316321602002270675234102982627159131652479786988660205172528046251497983043292703841583184199978091311555242784574308664189975457607165454568873674906345418879902133161220997248573224936347732882543970988568023949877649862781746483259831591201359836318248292649641696606728215392515790833600822961999136663523614139421161986039554521183343348665808902625672645719786649678853209259118879279844603892926476755566384490955284458024962310763393554257256503789065098432517599994540908276819998520253942736963048957294220950950862878854922315987636724400666479759889435404089569407265381031663830961702117384555807360309900801644236274202754232827459311263882924104811158254469375568441312902723532215050535161973733864069401222769047660820028244617373501528397151806273165785124465830602212928933297245644915607008409976676950507901184070279436667714871350312818072471645057144686971173753472644813134361908401248490048975815713175085198299287005338903123887392054904040001657330903656061633716752297409103971319364732114102891996608769560598915352968056187221152962930690109620552969462600366358556246133074056618885198103906723248456160468511252878410004484588242432823311911636727159802330529870771097898055710604053137575131660210338712525466187791492420852273850292151695173150069083001844368297385038111469225142515109194467842824429879365724598335480290711553632992519862446284429160541456353130663270443899988360039494483410309239423026709352038862593013644281780654457226591289721904457354480939044549384672430896845881747648953209288063060962667977115200182929034189455312169534737106303202882438076849479176098535007646074379513595068832671261810522319605197800246653310324613680332221835539787476913606021537390540730705279098781545961714192475462651627357348219691195542962272396217394722349300152268654248834441748961807428479793812995717565612993282945837967551039139506193905796280452663035192839312849146033490405796504703668828179433567769999933074514599079378990256887970707674330177567432440134235510735177576981132228506775384128377986339871863177345775549676578570143633593023269947444758608740423061430319267591422132254803130002213099152253610115037125853030423998065273620648058843119935003102414996452361458397937089534220264109437074492443616527761359641932253710695476833696765314152580304064068039697193423169098077224904798204340226577906619639405863822272368191439983624952960463103308287829120686313226364060399786505833888723058195557173844351398579895671064852096828292304196807836294090214567129242425921218743926931492685704105164372600166833315819151431957210194201785540172468979288697749120258069928142232541030222663093198805628684924941363842670115548594444128895704576480991519764788404800704794363999968922649642348715581001612195853792925398733314568801250929971098386650755227042597689385310809929358711588720711812061298490687741719251770179980556074576689495900089120815435132634696295976144493372159995845700790613372359523760270148213837842342012300253748360517681396194231608526582538095209116526818801989167754791388199258161429887983848564448650169732720297607942466385046392515358592611333528501538638880583407872248775290968681247780926984349292129948424948096811616297308408389021060697765070615017320451121137189023027510863995106192064104145283976024438819910160095234873826914307287700356377252043661015836530227504540341669009696031351424648119318537572327089168421648020447799264111647426906133275255942840916109688382398469266661558151989809982801218349316151747857861887254027716213231826050996553367388367357007037562956264181237945449095220611163968757532010686234054901921029486714918570677054527336568831751570217655256263873083213723305633883777999380728372792888235976612182970608797581511360361143178915120892450247133175947480446531962081977845005764081961385012251946338516367464732106151486683893818220286194999461438392807147061148359145353340866027373319435106608634166879213393473146945077615683841034588475554847250968920094771655806498714004584445025726284949597798456545620198748425282426978347141408381302458606188509176334615686577292712257372263877880742265694468761166800958008006289387878953077123618097451071158781969184221590089172603924912799307867596952706498003762450556617095326615465084071597067154450051406628286996601749543231285541946033999856559933505191747055876469822567008542927654001293267906818851353534661772957765940145507143790614854931220326277722135886298081449010880402527239390403442110520595894363258711999092078737501050789313521293295917064868419897723927932499887452506508912828469009731655380288110771435423353029176569245384596385136212958620756893324375964551073202526334994172924982641178227004579869116255381857698837057868758080782563934981413731455207020237207964636565369334935549978972133714496811891369746081693574844474548095570453263951239639159476928997733903868491644872182819584579077986089692767127876501869075355117476549330765054311706115086934250403521449352944865961198248283563004998777647457354127132224308832519898867021514528037315733771683256687576569867496026809612120655023345673786905797788275008038506099488958929387278597158128038644546123614461619141509969330639982060666808606118605808583245613778936560730272699304328488661120412775033415093144436684175719960099340366888038662054060612470193449604120238437573024830101201382548063159351342257321367691087644647933529044768075836889000504368411339068700002652265271585346833945997908141754963058880186720193674333670953593726164283386245567625187378243520877743544412655908994908926178014100537769854306743933244271272675720745171524067649054118797768019686771818546946838008394131192436586078840594261105281447606087441318430946523196411716682143125419406317598138789079052079774257822690641848606543565306251014882500601729273472403620204647823178850038177139073002881501563298898719293821290286797318564349503798472069341633331607256057501282508245742468806225207735399434889726078726367822087911613964851931458757223001668986118753933687895265140730948097982966314154985778787095984581808330377058506054511822267024210916101423313404779719662286440919534947579378366164760753098559661774318291114854270210374995655393034324161594479455151624519433106044808310637535109206183751820742672109425686337183620508632077161666684003063261817141426132039381724026136843787934459391163871524645924066415475227709356076530793278615165586465227206605722183335290472283021178527468627316754266984197081121497651327542975839864435587234317848620125291368266162183019035253749248946536686816008309195244514259260044983226153216400173101919947261810726505300508921700802429885889473032511210730321312850948358449641135429791025555381501730281471759778607591658664033368512545948387223150068205645509581537181718964156712975452898402552991234698040608755690599105572208325760948752547543107310125288611987750035046074811740396402635483338553000756948595584847711428998616225724304035594514202634830777791739545671119328353907130876977828141626332344033752900384010333265887337681355262593682942207781231094429522692350849713045077682132889478158871870037999935285832554667689873472513478741068754968595967571174944253812218198459570534228854313178397501532839766972416910252438230494197094967362774061184812898859055064392199981560579718478383039923259516140979206165494108800553010777582631295859087526013586996391730244944265792863174868609373880573587931043544369010858582984570537914828871065710825522970108953058201016586194335549635825314075682756083775013534674266925201666404173307480979162980977462793793477701940242470600622322831687024601912110864267240162808899270508239661963747353548433593683092760012068146212297391145760758698432153336188797451371382320959140209226666989354531523427318105278013771032831352291310683343277064065401878967025061381574391063854519403996644435790662824437906390654632597603341209753760876917926727159182327615344422560059600087554104194011608500888300648572920678063262712629230857672258559654627019649916941221654297426341430152355465397553218091178843545513695279251694018404898146910076629305732990502376898599414077652686700926672485163502622671279804493125270703033732693481093495893659067280715186077881014602983523261233976917884648815219186514954324137172663556444298819258579289342157145493129742809286488245797647114528022735895348274821127159753589619993444714110306531567169141279733951580448317462274777591099599939780985823269622938756748966153451500312177186385547613099641931199531913658304651788717311185390412152037588093600696413584383067201576503469525591983953543469566326808318495674621212113740940249876320042214660544384329221475945685101819329928493901355491440507145596464480290563388193195687042292305418203554027448615086817535424410940591183288550981243623775111672032441092758434052978282604465029302007482196921317961548851786210460480286507089237597431256188702581967186809374520840671635245186231025572195050666086293385302117660725297996148060921115584766730048247054139415521544480599310187457410670797641533905677984919468866563657715057912340904545808846648797581832167498231245878283890618116596671497269514847097225945284154676296063700970435949685461285350232757510468616112971302030644318827511797795474463720931666937355845959351095538931828338666793731143945451939141073201085268325287789901426731369662346470109665686613761476903808207458117577242420750811244073796272442845252875047522983458556277582278317456045445899656120536557531611312590896447454821710968947628595522918111709436608024551287271081369631540289957545188934588175940749659477241015431053261180623131332631511934708354166125826105296428412457622767526122996988213481441564037857307225402001998432268878969945529775517469552564016977135189403888082542503496912474439135291831185519295812762235377301712390843093963348922778143891264768397366464255773229486955618977593358441191717736006074890716505249500630217809274145166880406586325231124393441057731103071272987838717698104248492208425725178933072762434067471831734702741609440332523020607110140039397988451581723938369671542561894962190294216192245093768721397704873687386164000247550501010199089800222497548983031634920443113428937878494338002151659443723273694250917851052329294872064070313383998414847856788209888567117627566016547005964946270513847042463650143846260330288669624148592567826170721679306807577041197625031347432179636405931163091738674341831598811699508451285013477919218760651232819949234548957072682153506680604256387861856837947074653394073828295743695719393896600498095530139254006072448190446091480016269679333714841248812796435745611761483591196098602651876340701726201476069947694854829340275109265933419333015246687060808691936786482429549132713329453139077419567591723402940451170580670274462208498134721408777387654425134255233086541947556463733708848409928537698293311155484402316107577203755644392724594868174576067529481033770257758449663289961014068602678344045350639094503326495980824566758628108650748879865521789229387513011105659732909587185040099598206327775808341878076981678631093118165729640470817818288543322140522704875863804221031532718625662235650671931998974205332581733332007081346046502636845451616306249914913474424871572580712606530820880135483663873572234078741384941864397094874413623908093301770654635422320512792428752290292920357508197393746528697816742799322988073808822052816794438992082508437018390938135879279411054125277621549169759816804827988011897761647654607021715474958207795055550203601490731355777985788941919898994494961278886054781498217619561978142487991044125389285881717485263138088672722567210953009628651886662918160755186310777286811288489820816547652453848901102323734280772496043739722245982124886076315384331318792494543698177659538294043711615654578785169097188540551379243969235044818574476865721987216313682231822059031990777179129308727967530970757733443493255246230187235353807400558932717097577338758234452037343159050683251285605024760162938920163053627840987828444416164797917621128474795475883168754114379551617726075333978838023750111271514652369685712072690691177790011937512689550335679513947363818724838982677990617102153914410940208514235420856723310046094179875265279503480832137722576881380773525496732332011273801080002379906596653542254374307145664055703077245061827150646712407302260473167518252247777735879524015255686403379059114080180465283141690924055683693528873835528885675625375981456608883649042001903439835408029780420282960179211313809234230922648356093334150288822568632357719494311819012035598314469374138464124098287297507937466254648293672259893206576297761858326370099067954304381541162960205456514096174143435806643835412146867344607929755485911840017121267835381730584247729388081689000493356238335748126217474835840759495464222279569222853438326275969409731762775410070814220963642993006556926607856107433338284939662867898065043832298031479352542096585417417157047261476411624111725413359312250209146918801395005545258964322109812669774543535434591800128767256723500611560837890799950973143133159662884843620585884019850201548552368384406911807798126061626027110730353456516515309573826018650646143833740130562066899698188289455733909568581428715645830080381185243258497501854371802817457253647745851859838350465779270880198196455367274628165579822926093224842535663014158391421049083549687949345255320535300646058602857052297371331855975100019379498525768094798296826324973755104312235533697266516290039570515711247698975612136492519111832662554346784518668385567380277002716028332486793269841052275098396346171385457781800282146943202434135093986269071273271233432786475406771717882195537809777610465358273517512260354712184998308220057665007505310845810850674506086651513241914352938470497416450548114330395287960836843042540331560747693315035690535334702382634995825218775798554028003540493698002149692880322246957921609885855077908964074025812700419423069496744968945217291931832258727466778115653302651868399618355161906411127327115800227218789148623375158824582139352656570375027116810518149414495330683688000363079675327711319953675742684269867806312280000998545734424821746210405532390999511984152487990304737757866304395497674234830621598376689534937209164096023360842495361817006065729206870245009678650690164053662969230287857113864176643198351600069278972296457011855324263867232405085281638906757552766748991700405395997171552140994856840961589033274656832813187102742813098638645038193110702755433938340907663870258087612047466145006672431482498557545745728860258483031867029083256940629587430610663089523135572919269533634993153518830014718274385636934456378618533128778891515155739550709882404812868647219446622309046875138394902710630071758394086137189809189539124557236871373414247927165317711433921215872810286944248616827259868484966632692601344077660908391702063075662535842921053004903551769585422047426320928753371417916795786523915151863457596950869613766393054538010051527648413316956655409277289125323004583628884959529150182667095056016111635694056851560117934915650433109618363127786880199010570446959950136062157965341050141693227075409332100673668035408866668411668676144386798966887778064095147073138318485071380808519463323372378374419803910826985660276738476049866860289010429114723396284310727495634212518620753895712436131289104754507741691208673632004055823290075695504275589718257406119982665633190168196217087906674773077201156531824845970173309642917279579310533784887962779546930983165144897673974084552214184561704303877398044716076999404397616450612944440499047010304114197239214068301790595126288524725071567170381328395765867502777552280650605773139296839176081703781111179791905223769458321749897116809643466399437475500844613012412821703525905213658295336705657440200217898945078960424903680499287940358370835726304586581665090497377618225026460255682690470564150322923368065469490079484553732906466349239201923879156264271199869899912185051552178160999105721220619947660866026301501313147100285510538142570835965815038500959935062574005788291510903415642091527423768817679631762483120580879644489880567889137489743796842535474214375328781386594697578798984781700631999007240008256617008950827419111907919217363474907153943287611828570241920836605210758950437182953623237804639706249714741639218988459355363300305578153524488437262248864288470876725631900545509538933818578173774949931387317196442266059894973089058415370891910965303868044798328792720157662361492489805263435983869049886677326271972346144865552898399032287522534762751622302321360444191778562441016419916713040353830489429140437941132817533460014417309887433312582197310104852466107160753876250793677178460863543336859099397508203057134129289918228749909486433450773938340409097116002692779668696751321236108136990143480573224248179613276015570636023992790613834544116718000025723339227542294607900100083422877647061928311872598986904799302576205548803335249949686678408817212244996224471629250693981010719961998251741378643439710823403211205830142627000190695600526378562822565276823182710711056599342086313770695538345699991801197910618854138468975529253617284846676686824668608163557225594086016126316285557476416699230437299224919661799700934574190269985094062674777936428122610646522819973440133617754032898659714396739991979263745834048450777162420967406650616984034164553267890159109357926991520835032090991707248038808300070263109272151449046665891871657382343715632109000251989240340773259760918895196523110110522552400194556799760175065533296457066252605568881244769995893550826273453627450244990122266035451351497634202621245447488501191034191255546204233586827267313974566228220885967743680675495106114671994436702193708076388873527240393619732203784012396366758544397518018771413207775140530663426069008985785648510592584831465851832266878729155968653000171809297267831178094879977189533498528027795826865571115456230036639438741600235371901017992781303331046713914289534934133454598064057326247272216837400350872483470037505998883544827783427347939125776303351103415216654624341257058092129934804258647937084818440355805673626096632994085374173876971157781948898487299449888800542852308651801395106323765470608398308622417076478416162210959405534250771719703517408640815390937370425598815634498846767151654060942447208172973798896617258258270407068556674051435852224131932161955873722978203791852128499005213877380846582639788677355796523692297491117037437404176749784138830591725849686251129268662238750116087870563828552545689073587796944550653998763611268195373009967902215287985657079783491716759375327705988706445117360344856657338304776042301057431298089245681971338506779672449233931552842905436473291824738874522423134764808946464087400128863124638276207015709620988534622432658716316805251747814270358344736500707133151653193086539879034139269904286830442379756733837091844330522724833983644775873847880692894591414699786439735324473017657203818991185169907476659936621745639787162390970094670238080784355230783475034330114505613620206925750172218577759942486815802657237749578649850955854788644974685606234972118113312781184154178494993552591203103588632532569630800678364778061152168387778868615358542224644449743807197430013453669222976898510649162787334913659499263486803252792031094929671044333843532484547249273164267877584542092251327400633953580145532865762332199594015375413697188923126747851470336028973172669528610503352127215119143576397775371363707649163108129364720955507357929549836614056311244244365943949478020662275482630658841232350252913443314696385344515832705802123639055528038060414141592017884335594668671522423450044853784309280376560107781309940434134223987765371521671344084676692235343384478073675227106169791892914908281751822012082816833306932523322355862467343026701435658186744053824426617909482809390401642945069789452068577944119968646280520449061316556248150527116440909577727910045888184978008289289706440682004358379049728637874213526099047627322128965939359792700784654714011931833996424311801258748499448513402707582728872545424808770862343238376937278577791388617480463703542627316385251510128621147955025600471751149715506424746031898637528760375536894385934975206006044041587234539876548343728512962937555048630408275952567886801452711010745306676151306905958823430391397060850798523099958966953199995831657598735943231011506449725495578036877730631090463776330203676875520575904643987307615258866413945521388516802162053525689120946052906161547357808504746663801187940797550055248076263008468825449610545306969491147547449444142833345890343360658054239962348235758123559576807724092667309690137889448569163238555977158655181165162751242392445400332312252048782206498957398048017756248427885509841065411444796241204942113958514812892718405323588400857271438736630964267293280095422118484715736613748263331060660298004397776403593330769245053770853114679057585955903895371756646494280676481682887835672476815265207656646685403520958731881881312611670659593180880255345170820873262204255802055716331532588614074091375337225330173113842460646978979248388915877198649738504829566402267493171733353074390261803392137549841013951485448622811695763655218400730633374600038625517399201304163088267625242184988709513816618458797386785747243385466772162210818708994847315178723377958310222781346747107694109420361569040055296883727033171311509342575929219055714700383273168224378530075794865501166708662074829973717820931691740411568825737400870908812084996209613101489265703037447881734129654749024180479677482092581841506164619473570977505028950823680769835590962351606262659150849806448649364273060787202322656798405687426405487350402759898718599280987193317370599179351547836673210094717558494423176573687290107663216148098588242601316451819303986160371562483061888449013552649168399556529925913548494530095193825009648394872930065660372230303956751596068806017974000134902453715612952856368596104867227729933584214742929033086962726516164309797670472679063715183512469634309106737677100869567250912827638937828554513210980937637662189649627625054219738173722858096381819566969080879831530036961722159033614211899600710856453056694131509451077131677862005343504317503002698079259019569875843228307711082447453678656828943830438687123480629549974321164686221329752470770339461055604986355649647225323758363169685260828959562578357623201136684766457892078711175608178714388348365944830779851715196521382978741115177188436523309822575822459490692708390983424100732281703371540400724874242712150708877843615041176913249719081301439353039766934136531439157614688586511869511799873127356155123595930158941542304451235769420556635779863462996012351931562294200767500306274236741031413819223519255485067729095527042978702625332003314415287307229809622507855332881053795327000794313665697602622962318850327601127373477257305270410989159205803817378124673714926455611164626825865720819905873382274171817351058266151559951211000286541452839787376575874256336824141172507722524306965734576316455208772865102508058965648184157188030840490349124497327687653084987264407359508470034701036516864711841659440670887857415161683820321619367958757892268293694709429156624588659524569743627089764517422383311595379065437505645433564027519971596707902849282853112250724894930609388168585688080380088388590426546645608847620467806367275687749744531636827283066228146760282751801243734662058395372264893725006705138843994078551223021330926439928915656492071396675919425781239665217476985770984646225524497612712356770096480950642033160012199171348996993052144174270862896506661596824529126410772201492090780303710766660959399405260918005435735358643659451808149214099574725751611907947705320653580537114115469824315647327306133527456687524472219850178424939987101839494251458947807738456993974717029621839888452871739205530851253743312700258979065720507525062056567163757751945506403638249890524494451924845043333859806883460482535610576947322698236853500956652314336731291200137965029041218199920363053645624149900811497024855955413309245390831593175482919015546369034952719205212841961610065794544823203530575482779961910379667719975778856412012118263972464555874689464017381075392649196631328493218960193043552300340976967884796521123037401835457168063552585254202927476022180523090213363638099466403850751207372478553153751481456983008377552864768164924628069296035761551011221114129142594206672602359853946158120312897807293359377069151961982572275130930460762943799868857825202912444738045895036316921660985504220567108747423025756832463290441764498690076333613733763638137502523035783732538009242045257174904193804023740234801846330064266638972875823407519580332494166852867596582436562445794292004424533695025485041053519876302985641343458612136903948673820737044860175602672867854081335152347825502905076811051124559139158723569363964258102178206396787061793308779161758771827131611995187226093138158958816973436490847184087753061209750407560917904431229188616237117508784831765773312870546084495635269740297013040359191904581414220536173186162183791388892454138752417207533633406844238581589117037654522466106762982895788871960541725583887108454795830776398530517396520152928506997961280374147892027507846147899073002922283783747393814533680708087029263803480386766572604795653956160898437399837387416232321047647523368747485826097583225305994296933529257798597052514329623509053534304343532790437141745934421204874437063218937320069694672577299891621991410496883869469587958729192210707908582613190889583647016478688234506729574008536297439395925680218064182073984291555604765935276047345043299446891768901907747459001488661234686728858454662075972004051610795340346296549281833988908953417688495715581791735537873200103956744993876774195075483214991609683712039771787262008194928978478405451100821519846979646392472434106616813333414670859633560850223861006205053436413322002637724678434240242828621284254379759651124569976865764424002281943186931812068653580366803983129998168828131228487911437415492599632641463552329629459501649172919677530834213194373645225034267321653880648359653180974699029391786673795345386682799786097548617732417432610527227852313120618457404778446664955824829022386878985247745252907428605413815159574224177743037596715581591763390439934492614165858027621059209840492404921546065045181373395313438380598248009801053592257185573157842684658945783630753537820531588711475886877308123257081935558629700935861908823831233350638538614405878237039430481951294377436421210213831165896450196288725924133361960443853970417328537532350816106681029339997957240999825811497803406622543851244924020069480749138166534860229088022726117890811728850807833746173055959350521630318295657411704797637399773614649256722891206630748336700402911422324735133781979968609944472290688055170425872900268949286355893931425030230467469762544009643298098360406188735900254487706588205689648640944943996834553929263299092672675539153989288318573989641973742987876222074388834456073516475690118174561749036765125960003515941210617509449786160485108721516873948274618924612448206482282204245797625447578491133399486234423038872050814266425259184218256565288731516034821447584248198434303106060259960833319328241634678493342984918820489299987973285817110073280037790334581277728138329344029216864309944393207465675590168864333491880293525552293980803137458660886856865125735676066832691789892211243773611931367741452424508626558072893186119876733137036175683377496425218173593053308121062071458389575259799369850768327171908376598938687104901782234811900083373910375104536256001025554982044470252476680077385850702703349929229429388841547728311020515197642037936935158013677160338597457872473411198940613999680835252519308899935656118781770989563619882562046197401627397628417923426914681446579946312977605044552124233586538424628048067887253578360811585914153499396401143292777748204508965589435612256651291781666908309093438208882251892337957347286462843956278821400747872529481422392128926953576129072154396211492464829192599567937283880827897911593520075192439466334209835517160115129352287784604734089284916712503233031752321049005894618331506879959348487846292996968546146406451396620315448897346614626099003517634201920556181471037361289151359587396174877733341769799175287298695765085737238853146100457949825322883510603340139267384109599599482950172171969619115869485590989528587749783994469016834628503437148606549405991322046702469240799340027996566628116503616565816914345499328258525236707766151679811551333707785960266055132669550639156524281283694985031505711858341292480157514792990808955285905640917472678360226020896840808073477201126469127110481640968117864087302280499993415777113437035386833024917646836203582479562115577992841269236359245144238928280152846867353912715173113861423293265847297941326212502639865482617878728772055390468499421182680992873943376957361527670677696627978678019096898407724858217001121482164422903594258748370623849551808104588099852163380482409747039102976940053888534192132710107789717740398680912656908593460569452237215825108053333542149040910261197829336039819906058822814363403134420064815037542071329592277430716991004019795846318846683501305319766329232117217283897955756494990806564354460010763250794368463713460460556444866114251934895207097706214861965857993673729261982266443835612162658467850215887579360023204240671606659047782873239033552470450894230004620092591227615930606006145498856816228884301666673687308707380200804627317778007060015575096268825670558960142350742149540361375211313060126169792695059001266780498257160882800292302780966921854284966690288977552109616258084003407685787791331177155523702293997143598176332867154393584377784318782042210964103703629638695609739350398339482115345762364554598953932282523327196665636591365389294413470445616319019007771842778423823958091959982578147211770936749552959246231741886359175964997732812016636943905244416908731963862294610038825736169000573519810737932970172952716310707729086417259959945219391780858036469358587002198222029871731634057005258948371531751396570433298693725347444683107718879855538974807813494285801656001290483300305331191470651109891189118532023632180215921282850378606573818848567266644172396581814300260096701847983345305588902247444725470257045559723264138618646206486486823509070279855312213122344403698568562125366655357728533319645848169753210819356058382552655996834933953453239057194743005591220836735968038589495834618381209364307576398679971174985898845508235871313213404484026486457690894882310777745431553139690336371770875276655422162398873645333846508942782442580427523513254567195691922323008584553526779123244292103900143749135124796888259776314204024434979327175397466870051803355979276330985428272635742432502455683543667566128142761699169796602344614368231217159560931008937573442981537042699036751970816008863574093045072275928910311167882027235078567631577349387816268035702733213132523082716268668870686203803876770977723137446335949855278275213526738162354425473002921955746797681045217529856978901304736807569859687038329641860773680526349798673447122923144283410345868075857500080932266564608444545670387975091763586311736633820607383975745018512410465345843754379813029227478703135532057504397268693112363548286094721049650548738578581895871873544373337822435451543507468762078514612640000596322480390545632419459713377879071127089292045793750440136375560440739640378842551791314929259949381706073717007389609712391718801231411056532767452008240223613392055737704146737248820652657037385322711880602552691763592955291826859318438710670416362499192501379125920252326982484610246118259295484293141196964391193548537868293919759256958237197588616220536755749880230942608659845164210310276529483975927128794351822517673443466473947764695703408799922882842326830859656595381464984919500572080725808171096989235457028909503018567221492015227624972992596788246389384730818496813862820100398496138158157843658649108246681160075266978777862913436563357483464566258894095157947735597314374928311562370178456424173646120808663365607891934936218939507352825608064713853429795063308811664761014434330374273208887561487888706105957500785283309785778759469695465887540820750436624168096406528508857335790855911304051428025629289606277912526617515201904065352087918418496348758734908802911544063795002644469183658783219447962759356377603569660136850063652786209667493759085867894057829109606000739035002193555848045802764705033726865565816480781034761393970297145044737115435844208815430639620891485969224511929338941516025691862862375521458540273626143849095355019490958563813290086191141212655374508740758775225712880274512646132253614811232273712863347253391178589738971596183069969925329400000232483287497617347467751922993816260025364580748312639916559651950380135010729235922519153638726901651568905438172121175437282748671757764877775817800839149103548097740913609532953055794282433827121233085103823423587573669154958391540805273433884237387548323605080450912047125199662808127432040841190581170566263423410449377130531976093856269859231901495829753989849259721539877435043803562550667992015910981640434206664264853253707334658700483282131056224787947342578715590580083715916487148609144030157032367125032670521032384944041642921964017803641225632530490829107665478705339406371559555497008891645599061711417747266482664273500607619124106402960119878517268103836012866781633218207244754783703985695259683402187903345322370865289386454465128972194743038039352131637069353254999266419015912832208575575036809986498807995116121906291812558781283614381244482492815164330868624108069780094363770035851775874468526523149419856889173898552610387385166911862616234886325422827378227208575256734784264579333567819669697938030991800363006089336333680796115278083756787655814065561518788058458387349396323757089421312861658425800905368953793805573684999387804564572024420207270765840348425025517396592557069018734197900341937991897294471364765793487566722061991226596948791124119959360268362728276083458519272224024788312116652337665834667941074638918105943666295999760663959225106098814173317403763944077028328579107753460786347334519476526625453494548701290554826707004996521458087244610137263375586845722808997413746568734252161827154955055724644984529895725509869241326525493934706329111611956272217191687380152298236239328544952291809901023718015952432865350413741117457056726672157528291541372118368774954028301612374647934871803534491336960649348934883943350742337202832198288559225187650508532960649020870225796825171144594315251823756310907982587011186774051383436473326140322052392613364728606667772422174461314498008250902202770177364037730642830264959448238864587258243111855213594713378141487296054291719512362284325046054733445939188607053767102903841709505422296709934907335094265603126668955501413236734700286757346053752708939173616800883222106477989838225679179430040077804704927634267328861253776955834452732644690168355533366980916709957704622135829548042985551528630377745713697119601179551405933047964079390472158523537489523751355365129723602113518417507455223225124473571203990581347946611621354692092879451058564918601724428191629998397371170624875742581677999269024058163217227292436774806854090032733881610757949579249292626709853195716835786455462407606006706498462875912323796526313529971830438178743613801767085965849439605249437104424211383393566956436913023286305443299959999984404054190399347385392287360983516286044000474696607118133905054799950555205151662094022092430048079595099114315646442882662545199025588550506884768567835229654701571509544105494181851108369781095209189848509822367178490795577462971031399395033445054856220197048542808706606141610341100115344266563534492523296444516103209475238826488455543389794309262846373308339456409464674016213538122437525570293746230152542224296782518707267855688195329889522708527109616917497366766170456224616891773480251703183894901002114770003280576066145041154818814219144609707823842087007569745162269012177166718544377726154970081650095053427058202233156609688876287726319696279685871010384309332732918379506814643553992725230871353330906922749284803095805913434838011661720326253488601193500625702128616297315155735143280385855218516763043575425968259207347871270482687429088114964712162042720860848235267742490453064405978432708275660838169988871017568905474979938948131909142931006664004040336562091899604185831766979249033654424126433063845771382050223338407417289933623774502028909920694273619484162009353719668268836637975833620039154337709875718096136077927019334389087052003109345614755587228177468313312156259011499745906726288920756924625733188156060634697343152170491056428451754122699681848752298472447375769257363143437803512382487819162622135755084606942955405266899433777116334726637822177393220764620524010946366637178981346752799895733533681127922644848573639367937316815434260451718567358269652361803039504671427137164220011024446116238162645316350861787392910078236634317246609268136445930961894064611206102567725195026240896004347209913858119638244299878927522688158674526008590178257357009306988056283734324750620587307837477173222503949896480551995687980378898613016854404652008132738580282199103310918856248063772605718954924217198215338358443749863916802109331501419446182750059450876180924777317738697744817102552129156718087039154096434758466867451434991904006642449832326598908184111103953274900373142839948625400731074282944301077008503962204295624929708898532994784577832962779454520726663673014194603868377043345420051054715072154924530501803421161950758553360047473219372294765273187413452540457567054572093996166714271834478177359135942395282017544915657696910511965579525767144841554822727937985500603904814890619463816840059922521782713093206369920655739492758987193764820894536571586852379904315382634456439234053732605058249625543473049372397845164551124759379515772591003855093154274837782914754579631072466558117639424246241598365330913483717560345168662564280031504196337288856286697268577502874987947819953204324527552869113878003327200282406280801050183088587542951095475131629635111669336214801585763820466518301273594406722017252330513871457132327899469600505431509898248308930914437678529250537196804193754846676927799094915721329840239062995836556343485995510335802450487731108932275232569238883557671032215327835601802523926935184274429642643171038753196226261439263689213046679702108588590127107201111902399870043040159477299673947451893057078629238929382968815888345844400207557246273956817276131190772285270092847010458209809146226417268312129813768063666460340577684737494663251520020473848621851074788771062466943027489843009277066006798005224178236127761589602836690221426623331913484068454244931029887466432992685154179098621155690267337198198060942440407750996101070566740738072824460458680803741938835817274297984595537737659705492967571231984828514695612735332883956424134349066182522664681424883742914618139418155722308773623418039276826187498860974659546404525844423151440080157126486507624886701543827553858263951853415886969120852844720676869641803426562416266153247623157941714912999690447658578232205046442428348236394542316208231072736518056317309850433917851946687949643589698477193434617380170241920089618235260718595079722755515071596106081754083385447671188243186522891608214922033741492886993778152787041467227126189971147156770668804269148316885863505001148592971451459781928094440364255597620728926962280589909569816916560425079287137377498717782404168572787670236814410945528686370150134797778172054186918553515318893835372404875034301343179707587585799831466321879533716755681240144609185796355077385709750954255681042962116072743848192912032880736066085093760320486708772504236430950767130978030338633094957170971567501105011509482890085201377143764923774236486226608356745228694421846824003454181398994956209939476564930365080450601339864021297706712469111979401015751951074832265735026912476383565173166669073549830495735272109529521236831405713871758419991804627231382944314259999752314011941618633147646545712677618815409441424815021923077105439218136009472680520526046304405429470236629632251129167545487102985572012719656920005989811922561853454233268924807086192867603758607536769298460120019422657685224978917673733810486425473948992136655004966080865305166181187638610696080580070813971730738367487715769101522046798209905318607421737263608921612127794116335088294941619544230388012047525920217795633730656722941674818727759856931860440408580038228331139429108563918436618984485205161700726789511893809230504416707297033553016736053448914460101295938858337068172355190731984767806290317537513216682769398938046265738255429701976815983047012857967437110227417837313986888638299965958661072953854994406594075141003488685224910757014343663198257587716102392091640049318549230888264028664550737550187702327863865237763014686036145873912104081795858058292327755871193858823616268334863595834276987608032238083984597472424252285868032758811559875794653639889458515135656985561720439578934035592179617932096625423820815371577150242232022484942475446081113270656745297725081767920301629657540604146091162889150801711978199686740272307719158420467414256455262047553130066464319877623618968096540752164873437210012082761520585525848864930248061151737962835220279058220281750065301773778110788233113437779614683760334572088570610420353047446492256684706287791427312374998534271064300948909392350063738637329180719958569671370081955985411485252326373317538523415123228100538238469558098894962056728646109747029746634319582740329416042752746518538284629705148666334539450842581027785664901822329420266492939455256225829279523670780885870075914470275523265321419298625333825856908321089599483839041945822766257586579606274119286383382886614634806439317538346793720190104110630544335213379367682559463383926607518193372150567846642784749170831033988913109593521128147328181529543601995722703390192095980250291940824694850427913431292056167623858949856864022425040114643520135800794619225475367635475614527895998185912317973607459263572734634907738712697201590447161980839244965318048543235968160427104707477460450396009314813302151639683214173505047067664120100047150679001615681235198553848388745885225669078998987927372015035142700194819555993091576615785978562290078279332816393033839205788541140680625662246891315815421397992039779319859639261492395428742384415846892689480014801406283642603244428331089732459114395059576928474379484278438572543781927649612349718643969626124512368636256427952440256140920719508504133624911516002237521186959649296411468510236754763349809108946933146905276654104885111317045398747305069928862015425290218082318869538277918046559940615732458089867614273952881881265864505829321907731099933461031017120505881076401885718836318507483567478645698923905883417647880722879257682346562194425034512946933634564879969688621247004010299237626743823045518480189120416516757307676062589468697569018907735579740420411668343579617540500728632185357375876521953080645902604806964642532298214146384445752824213524194404094239247120186158246051671782938448456242642943683956980654794381859245304674866525301130701423713640007185040385887148634074493976258132572678303818338406870299277171506086735677858636470437443343657625812118335083969245006549543356047703691009706020869320998808690802093376132483884357846062530586331861772577545230410381314282195204196568941686425214409652028423407527244745848825405180362589691839733714974241498852138409950120400329508345879862122595124287123792517138729022611751133709649314771152046272297538031545202218181157220047924267466722575321579339025907721312928910979887103360408112062464550345715549858456197193308137172171972753731394622961547473474065086928966778568261751961735366401600914751794047518919310984093516390079185356473722538372401763246112430434043235898978338943473186604572818658913519954401982818712596980202269167847767249154133012106373980729118259574492558368785190193800225620227696282313270660661818092970411737921709229215415833288821915990634353192316860692763207616219558234989270077621408613026011852977477504449632590406653329999248855908611851382996904005125673257376094685144294063717193253048554022082291343359597794475696490061703787457183777638562673999090832540947452771581965316525538740440078150192294706470290572529592942448169637409193435955384553004736634028105162160586954651972162103413868158469677563272655205766591063789493241489838390489223985920111171463811552771210503578194437379849182839255699060169725272487171831028574236534061104819970183493361303154488900305724445398128629026201373507063154091459256084262501911846969527011593701212115962581035477254871999107302020406700912628252627955274716148541530068142569825405948737515084628065353446268388310699828214892356503027524740647334768067315256059918905657313737354662339908985131881633666084114995824317073766698480585949911973148516553400006872861402174347517655430900071317409039581662679234755783017632306222818222487509830859292328981122331280447289497524941373063512233001660045135415700651051840890314149147938090726729176558452265848286668434706272969645155969417157456918276136440845322614475414175150187270620078021959866584266141739655861768549231497659115116533277348116198031226131392491362245737495727036927840234390068762224858752949006072897985688789183130903334320193303665820992038999726048187988711317075536339569091752704740004360306625598022781612277399683171930238327569114025574903206830393021115294536759579606285369529992199990306293774371258142534073753172129142258752030278345275582861640413953957505051222953854027216938655593288480967700563740956490029060861898391416722104803848435419014046053980856426700574388248143264624441296381157162205369957867118249386637872471437886918711737360659915766568995080040015467274975730409754345488099174931223246931419594076962853022743620981612745571364743643047833893908568492683812851291873168137670105408822325821996821260317376105762666455619552046234953002088137838856947261828804268950721724575354687725272740843008755874291517634748505138927285715758052875854881757661172360577424569498167417750719914662890052862471194670671225091481063651336978872732672685268657221369184704040652135678890786318684679701464476153006936998051135284129250625092493313066379373774167533972836020209850923736259686666586304277091537566360066019195724359870765026522172727081195914905981826187043792384966179291227712607475207465580337175038475044856939444494518213759855213366006185170060563521080582286569670582851462568018652491169231958091559871333151589363567519720889751816195075730822219099869143510900803761402356721608708028510520788927738183242771944823983610188341439087917970446479963854388113597876088163294080200808720357453729102267050127618122386407665735004224446837459128252797058668707685689717419997471685337111789012202528082393505715585857733769390661626067822609930321681525002386302300666669527173536684054968434462835409947961887061377371096849468504208183293085722109903470322240610285309847620299278934710672819786734828565185547418942772800227512558626287541132394594005227870015411664787979417846043160244524452855633241909495518500914831871183558342007728174833656492903924756503470565704288786613272885455733368680621836990547249007990961551179072831286179588682148486044844532634858996359232179401634178859395659150433425962679244336358915824246894084387985522256447717942326931482029506459537244219298440643096644895150477035344658824106529513823302060199023934557828251393523713889666728765824206466533717336159553127473524156025468354250350977493765663012687289125408574498610212269933360856518736838805266383119980389704930093153022194010032706773960561723505731165720970912388825757064929154789586406132872552043368105393317374287529343671273423323638439185796916957815038001337846330304295714644901410545836182811145764250983428391511534583217024536765324370264568382976564623333952043393979432896018488456571509252348142389130714234349493206668278511090827255581349612352130175551894350478373930116965667149932934430319085241721292289586839350496790223654740191867028236754562928768152263518240569098880483933989041306386150103477751777059325094247656495796972122512440325392582452657366720069682617298295035200586404915749717359790029495986727183443475337050550360651838918271306896341266820479306400151152868579988399199013234813623296855267220543243809747493245527954107467523610339523467539016988627504029169086203037449924522901405368860128682301798144429451962043857747536118033527627272616316634217345401948502902989013764034228359323941843402718489604240980034852060499456502167689108746805204786827343111774500129555262624620214479159498678783159418089924355934878660683791677661329960511535483782760907797228017948352032769552422690272770000760043022946553488848524317926101545905239662000863845018088807917407587937489694725213061833051604482252244058445593907058438568660251993692126747516515464568723945477636466621162206764713265756154131665990449937301988602441839477164821939977455115111980453471251994321797233235528948103352788822980549827207230884044862888197125392864020772763680524091619449577337037632016164850169244132510645599292035969226294284091877415660532740025160016712341652210271573997552784333877342357677065601189080507394159530803936150971344503371057422196657271959775540773885984322216777524931693463324699161218795331865977436515622752332908886264155629102592952957713274794091701418369082417160106564527603829431265826147292639739239593872488617940410513460654666524021627524205191828318892293632684209525835975688846917724450283060249692427639668868345475967391450359367298269946484360798350606876443594513571524068489249601847716513007265691944954622428502663087746689008571860212967778493796098723856595941824973469023437235907661614677177494030414036473688003025403000707158695817109818012740176998066277528181057446296055896114632526016441572245902295543609798017451765985403780800517120788776282542621926048159758001035703255510712706725197809872012024240314035008227082381758477350235029027287981765819244315972693881558541292800654084195283435804333848870853847654320515433668748036559428071178413936859442121138009963411259431603842112592466091240364885095103928450760743004037869224050428501655283592750313269563043781662692117420864856948815124092109869523372304760691817028442503872789983394446055211771129780433885729038099818471037841240622523837209222975977123693992983511142278342563553705179587735738369563015809634925866244299617087767257649087177238237263494490024042207865593192500271213981599333281667958051096601147507509489733658602672652784384956862011106910573453575346473889932635732382209380054845165283957983064412696230378689432220317099804008452860448659857459325115418125617684585337017570351911670115599816810432728787817529459215130657722270182814553794455938692155239064913102744925673760974623542491439686258354432989695597632362220547210290092238032077977293029719178553943808023027613660084906965926347406547054094758251103062047439717053133655128576850140263693941529925658922075606310563174863790637293281922811949531152790520273867501757470338621142730554263821131915925405867945605856148067399967644976125009745980403538497587851913897792824915938102834274753582143249501153103482818885943031252345979997094969169047555178370460819540669820672261837008161678802212428201256355709624073740113677729942247731208815660557911964503812463442885792193164798129434390276486865249625154359362608133434851648349302251224998965686870414921239607351637964752131972593371938850903799204424530371488128792214788274026940270289289823169685390395702305330240259644323005833359329158374681588726855412824936542389059502096646682490722387702897339290620773537629238314740173897854589081073598708186391291990316792243608046268283584900026240734471759267585764222528639894127531069183632814885164156455252841200435808534615929614001515784936048757788236562314039927936745412563565068924028903404819358273833067280346908610826754668392001142915433707306685364966587686025268236172167620710290197479821064302531416164950773514482485150742583406749521544613653507395998232205567750959697184239588780429741404645851153490642246787567961176619051000225084341305069780859901411664365417159106958506336476625217384888363562698474119123206177845829124850505985649420007678660926223606487559826603510222897728072398565546241054053149849131228625565406873409534591556059248870335966513363978046469804935992223135742800362113635908750148710243408170010260282326742003286986803272868672715644336370109418456869443995217329600958906378155627560295183294863095832974385597620904434290100852907591478787676585784724414104491810867718182958737565356113655185738939266462784232021423464244816668394877385725401668119222209032391409959839318777167718830515311719519713263242046150201761144371047556640795339555726311010785309495884200511545921508553605090350291980101839948607198906876733274604672033923753897842216142170302811389229013783126192483588019720550725363646992877105848065535666431658763411333039404321553696025602679507703638681557062448506701240836074776072224173630169031829009461388789636938638266423937531360464617061475351508380433344180264935234087013428372985507243915046760027820506905480062598723263786634654942581162908581850776557999749946254987147159303344756788355833404127857799116688881815593248112585909410650208909302064515772542401979603708650442831256834876944615113383925651611016914700885654103122170952333463446116168639182211368551514031449906249764448858645098965164131888138175453195884375214223731483000375956264307217814566093563886757520943474775912306011169726705456354720346528952181383160040769684535335848827292860312590886669440998635129193025953796313730923473487742441661080774293317419631537177233438452403274325917791409983520469799232594143436053819891025782315780400812731847889366379064523550332543447957529851407301834480616642850548052863827412295783670315363092373896830849476586868467026204335911386899393251472592193159065095676460243872756157577987701523579753353777670823773713197760495841680539521684410789186820680162330861385144740648874358988403095888989455546888289106192609932785877131394541871146659313023337603951641033022092088318187111203764971026305720868474777382315008853919380669991820465929549773318980982817211148495872217926740713341568844277147258841453085487322866784510580354051522992274103794348257499906346804385385443399479388207915330176078512397314893879714210475061844370167467379628697036876251499406195575860407728462277909106594989176874943863229947800634931630768971220030728998430447417201219594041791767983332900225602162836828877550117530154458272289946765511120855318237265317189367095148125231450541864430693923261982065800455795351495845950144377541472940832212537839415089852663831938737239260768380741187570560930289133881832175354513925701732549794546749404699463089662268231501180873164189623305534542507169515834794906327743024788233713864769073351751746400379247881501244152423213752926426556120395429269019886599471510921175877282214275729152694659570973737412243008742723810826298204602748236111962207916104808813034898082888062405937522086662912460850804250432272124566526457466091165251417194374826566107443677453481440746732302835594831529000621742152379912225497956946395831265193303867300993701661210875979806609406809391214320538348050890840612586524614114737541268811772886608310385564636951746478945472394831477835918107323726599402733874719805507521608949469309035836651833571479099555068670584536234843519398806168050455186285837923623773064571514512269241577224758057198262355942577104944458228617368274541692049081582356822642824795046566372346657176228371445725239089739100482299979488960768141065380913590819360602840017279891268278818485825299724167494197291464102760782703412195085682458350458388155238904646697058441547980869103664171842420834735522456447978285872463904642604304746190697771077870844380069066202208765980720531338510250310742322402827510362082343363534109336435785006609658255165077208421292292876092382031696737182322866750595721138395517657293889472112431660167866983146035242972344626671362210602017460697246021285239290689418027802319625757276810822834118000453450245775521287882268859109658998048326178238527063119422034821080346482480197179394436620377527972750735589040763367904747689535184100025973113321522236808606462645394871424479188738965916026765512698416035057489891349430356592829305179809465968456074174517812736013041035214588702094849669567634845874665817327337733839209615007089770617276595807001400783005146088122623097622963710751994513912916581311665663826183753620685161702244920481895523790145996863269009093399312135430778926112138010740091845235367359723017991570785061194360937482929068653679012247721454102073507170809791264746496953564868030992368624752673143419046102317753180880418346734956184142692639887541388027699625180559858448552809968173580415176902822111658581972005276086487326973598736015959163821014040397843916258094310309250661492473589718118961527692259376481279179892861435903179520165597343329559171664691203136925709652708366417429396781616409572691742504029769261618203114357979060401755627100052918092028014263231475489635168753774127565274197519669749773137340485005909360773181882187460888584724727500375965717029135832232527038578340492973737727448266681237550641605922749498309867438708632464126601791133771362326761455133759561338128809855552865705708219243423238580542852682152446308593573751552209653959118581565788384114561012887018635000889121707040163595398164337141761021816917219893898597546343658501141024917734625797866016481674714069768010337327601036588001585433792228423616414227121998610805251000732938881375033002503728344724310465366350908636452245264869424502549167687255006479768327915053244232925106428936508767182376822610118966895403295620754716142585832237818035736086991490002364150655726643227064092615359079029402940864271340996034369506612137551946658052307446087998741590810184210568458915833562201774190766047349713151132903157039025956902822725497697463386771125207788260338193514614432538363550009753077854571868019998886363063129213851955608453634140298967200046787183645647774907661349753042165630360280388134636356782555705709141315937955881283767490024941356343543196959615123969813029206785493004485279955647585565074471304746897453928397177186231409176043801619520915747017493655082147658493140900058659098403156210605435378001596529041212751379223595509492262989283596035585591657161687379897985443570002155302368836562827222147637620532259560587550154914424712894767254113648067674495205915936448244336424420768530450623675673223688684027477151546858068557638783167785438107472540130860237470783416862770775257939271640610862418053242549212165374939142807024831963369843987414710840892063231023508743012222636308410117338243355832146061684107131557743829188394638361989521175879041662818292224925678965777611406647498593577269821905575654089914849293367027234894199347571370029094047959650404802499874432496436316111989606128077355889636891045999199904440187309383691658342934820750948410923150154103283483319096021516410538586698196305214147754215303505593142523700812167200527017284570594314451608779475394780754900567709309121554191259107005893880873284918037764720924558656811653805263897928526747387868600792964209848532986203589678802679538852363983387961814545412649035897720227293152589863366453257648987454903118100954516390583193709670009363426231420925621853639471220317779764958862221849388310996906505277121647681387541391680747492821772860380196113372871984451805345055576030651144130737432210459390066647140528976803243833588818687555171553106375791084834213880605034345831105330528697765737395074546582213205313104249923724827932499557423179256965524732408921010338026808299049761096845404193287354124463069119289412765349647963987990509484416542742866468730667641418486585276902610156669213535277158338129041236617242218633769577346196082157146056122912311583785301579769205603502579256034233199078722274069494725462721017587255416474655126191290575461030606343105244743862821386325441595113912821087018161695458239765886666687027942047917541944522072324232613758820741870658920615033390931205293145363932555738364724067357925528109540602931489662452734348215261636272592715210689174650003225076972226755232074633365462813299733212986115505087339163818161227191153770443699874101891543109065147335211144685742578172812206687280109908382202330002035444063078890086090920274319868110593146549802019677170191786314437424815655576555241634010437921461591417683336152192733681204083675148045775416328320424497186930620173936808581510513709710518593824659362173677797885251131066877804435164348852110347715165827865098874274693128093273983624474990998195854355541970418441937980798733317490215012891550470086704062109609489049235182237412212203320110554220916254321049158020532021689666955309539691598825816111750594980493139233100892420755351552851579628499372909254685333797104457134760288396833673894589429785201018111953212133661164417928965801649125659219165589537796750292906878422752661607787391581751649136648503197572302193683291531404190891337801759996941635764893517061218496997700278090365200900240896031444673582099519970003450381336325931912964603820325221811956974693471570170989502702098526323637722034254781550686452650573512898922968310836863542641792929277621145298330133750833076271001944077511048490297078073965215604589734933054218576992348869018762377270434118975207237601602738697514455417373725168500251104866366151921960254986344988228210351375629716275601881849296364279465518757565539517525032983304463438212645121725389536043576899845150382037423666489720721147398339443361157134415148747813987240872029947338180696501716914389909033234572672288228732059721007544857187614553998423346367242548639526478001670049774875657057306731627958895171937747008373201281882121921411276649334610981026460713887230394506910837836076462296341575437429409483071565206468583092284069989366053967527173036908537811143460007136254623526873366799832256145097436974903589914272481426663029041879627934381401273581044795028508947476339610185824288453630453140882678014634534247195165438503499547126714344186963080859338251565596610417117530243744688770993062125609550258447559316707448129526653515137827073237816647595057971032756374767079697477959306047648064461886173021612278281080092193117777138516143493585427011708766901500978869129666215287011491444113897315244427401866494576618839489053642751632565832994179224935898688526972751814203112771717074365706802025310513568290869433638699423421191381889145937678749410265342952030007559129064046418539988439349940010920050920944154818277586059964794026711377074563340410127427983824078930881582267715399601880083796824082354445943620269349427146743834986747686650850604098728331444774998818400763169652906294223567019678148237867921525396183002378429948579532471569702339669378276271936944722699718676484960646763363811990786650467706963405846305103592518118617805475303688297614340600703922248317274065310712577867459717886953606911880538717715334226229852309340500498297243067426330989381476157399116081022612342430792054151970009307095735470400254777495772071237029622993549631038224226704184122466465806486969989367625436076122591341966531953759582782309981505489762185624119787414400977504478288481607205407063411940709776351221257284254473917003786641497194560344111404365274781010648888978236175571389174026483678998354572717038073868689131190901134497392067050831503591826977850797750781073906094471114879764373954979082940163118030853764007477088001570833315087678126907073250321436888367196248829131435295840871112757870029565460363430939363899233333675952488866447559734630667041273371906635313287338751031220634883316891192270359550191829807025201699062757419337157405184551529204625164309682251294369853643469987321055158120940485658718287805531290656842023661520911421419211103312592281613306170821575801889932875743417109414836295432595247400925581347735952664249437741561195078562606179395047505090112783686774371865868876545981965101418323337920210426114517757460072616447660018887959568299596507717828482245840031875873135244528370922547937756285267392218073621250104651000748072898713389047223749625142761415877104450700516353568080309176228096330766031203869673442656133579415083260309944730005971728001258304110285922227419806915499617922537613784685060216781930954940160868190328143076714374944247222578174593272998916923420964065798647369998562179987024112133428064319097998863293626203005341265089858402121801068407530951622616092560128178395501090662467727533801686648862858338500982269856813890651429986365550158631812034110440490185765486758593336419447028426917809321073590909874869436982525673401618420068301814668384043490962051929984034934091659249366852317972036964860517279400404039847361802804176567942860261854686163479530290896716623106007695484258740336739005621443304175372042810129779978296858068908075405527338848984486947821678383794914822810121504388107254604816265035024068210960693609251065819908360210931096584813825251763862054774167648199524887068717676841200748108800385376526817608082721991216004336572041646304056596215405312934005307185571269834431529525202498435314079869595112728733535153143878685452444043445951685146100848072078027777515986215216648094515850581427968619584903790885434041975336952726726204732495705011294374241863512057077337364499731840288430700140361895402004027842128782874574424411611054390421003465084908991043869563130465602697394349071351968193103623244549957733468957962035675471795431695684681922406485233478225615885481223890529479741245935364075273697063569933825188271552336271016608368081288973741168613179509739750301443974273915290679649353259564365839750992334105419075376975013595736433676221281853722925304811989532297433040266228717395546933912891318165108583589760489821388269204676643697781856873462187734170918491395746574984075236692912282303358299402637895059478311137097983982252189202377236808147566804313017210784790382937760308094758717987819595178141611530286854420024352862028975676641067424919777034190974626561735498712095930158903020751640622657666637290461252661307705741335703009007621125125417858295002626885223978848987395333454910763188015496501527503715018591105546070720583546211307225008102761445512562640758802881396318518985192901838605977956446812550306972281143775290421659458645444643895587725360278123876423274625551182971397350498238148995306831823070512451241825667529593318775767392591565242403593804551148331457151295682789238404128008700534985305630685389709066521052918175178867625637967619896672770932195009493225776349171762562044090705940147959183105843831281666800415399675125430012966777602755236394881866031996192548447564909404345917648972099996423187439158141573633166626028451992476467266552687645621309224884805679939194165976602924429930994759191380212729302531911368951666076337167156151698282207008079169650382410544000238523194236944670344491889253995808501974326542405596224950603045624053494525453242608094795017706578761645022249458433519309787321619567338580016849218575959064134233175428448307805413207323112254410032073129367781555511544219306304963985766687641678941423222132110402780345075503402118469157019409418461392666422247659793710687173076051044277510189778562508173891572572056151040597682795986950765010114501427763588666667036385159599740813106137971285149919794604726802389776249883147580325010450971813076479633158931142211493637639661084779684205938226412118977197830862866578954330074981702941619847673672728951923286371991151882600476175647538815635253798440327452684428687754122489354238511210230813209253695244936656156653353908933577934374086998534107564151572381609124430119039798536841599018083881947060826415202401282071373380623249582533153964201227441458032409676947165282233078279774667570685586981246565454781661325309589817339107931890765940839447376730118952213467208854085778930174362339262884449678245431778530663950482892909178716755344341453045226174051738609145953552293584799481707383571806830248875625568045288035311482636898917844203979328255656211320994990220318945490542371798246508184357855455377499883851246064270356574967696572556118950631647706888614699681795062505689528214311434383670402207407954194948029031693737150561139828269073060216121027307007428473842815751471768645575835404061553725771099045277186568678463677777588464433461398057640322041183688227099140008299555797282524270249719793690182565003106952176701756877247444040400121533979942038042721172288119290332017121486092656432613831516712675220415643459725098023995145523737609710901066326580440608225127979415885598503041514355169603106038562776025446649035264936674402109966758538614012641905601290874725979585147845763626739967970648368256791989552884294579361251938114021913424526972995322675148692425170585076149220404144655197750955136190637618104025742867716555720342935582707903123652713147440427322663841918784259347187786717168278426581752839429187052374228925560615934085922569570167282973864092331861441430377695761816639803651212675048288758657602028019179791013977103760673400817078227415403439737868640806489011652487262909527134591376465857875802523961907817956940665193403055803302175473481093083448971889825244942187499472704734297617577339364741784524301005901003495020473009332031582136484438819271229355759437098767188039838504558116075053522805219065886776510884769644096842207050397041384342001580730202588218329335198659823141068228820942352753273786682692061259397031357114392051012046753965838083892258114854984840107977111477160802299127810181811825582569645229912170186855796333408745642063336891712323273643450800948055967335398203543900861718654328998423091282173861651132256074541494019850326555262327763670951754759412066959584790922348438800290155841299541164242905093555613816669924768258534143626770841031379221299397511368527548107584421970043204018106276867027746498242098992599115347262514910194362953402665764302268611675782530433852800046666940648400811251382402384974425979764295987350987017752203022692295296002925267177453584430929432922247992169741774942924652851299123806981069700664117711243201415665581254619383051454658828677851844547760885587914291735960552797613009292933239994454378091175706611339448181189254918263970784361509506523800039286454582434322116157149926429407733580038537433787156317303758625561119519718498452965752393535191906166089388113196563331310419072999198829054566934827557893807861562128110638808441562379928686344519426240830777992051694013936039305924529376740732092474634684913208231958605244763501517660592743021733015981158985469436609123659207064625771991750045564021962104951548752448449184016877444918029424738020837258907318960026322986707126964414576568004660340037275609857802637188726441447681039579223806836939660618025629945454303542717919416145780023450984918398957548326332462087343423924963694486642948597871643037549452301696613972040710014580527903557787092234496675317745625240231146635748170216330129182592024398078074010084016501628004881343793360904853792494698972002005888627297177388076387770387410382060696274609933025459090226535466807345496090772138555371145603888684492565047971849830117415010472035119049189241088924394394393947167403158279663511377052696519273064972911065442726230585832420295482016832895371959369965615230431112212578622548880654493118718802477087822217821785606804175572539741134249249696062237879489099629799285164135426239959525002875387821582059447218457201837247359316209872151512587797567912147242730312902581217734841114967348556925940713672133020755761395299024497724913329413135008951058761369621823032477865098074324404830088555031233583726541242101580196592538640708456638553160694327057429524673854994170123764979188370473465952484329367919386675874286980995021697453155114449962750063936057815685649611716976148038364923858217173706325224621558199211191639387984878199869205234718834873137598112307156041974925206414125297396231987630364461333098387929155465676846834615455113602644657719366960692876118227557114812321117799566966137235107718375496111435520631200266976546164806933865418351964629074429895692383903032066554846349407908548420451282517724758659927198630692947442565289653776519635670618490051017173399016449336287586155196419237740723845992381725884656121715071009790507645645016237335185320393604961231337380755801360677166058801805420004256819961203088443790808504795628468782218488008765670140218537318373896706714510824700049305629417091251778286262628975687890679440610459742346884612689635692599636589590096121021816091421089060102516881948395829274462380012092901737878770290975491903517692009785214876632137907044130719458154908579834271275078086545400068558559004791743081035460752691835455784806598223699592334151941360931920494297393046768932276365599051700944071212906076173549456628669329308370301950551807386767769600241140250073386524597834039641243005838690167409894941361290403859090615489368934470092346996439290370158666424236198886620708716118988160052335058773490958301126949498312857912669897045681336852264060474320839163039973980306359820076959917034006353208581854418630311665608412834772150738374619268803921604681894822367229849204777375875002980286990534574476443388278900236012024911275010553359100038275209735536840446154801013856894687941117737905976130317416123423890156404164544519443933393134917902727946792403501005379310993783212794825345498900996941238179568696583370062145243708845868124947530919134868283458158971535427767543953557557093813238246525496333614497282465711547717050910029002178060653625764323094085599628637519084117402110602460935749055683067675960475211126780898356348586932762749542395503515101409875689380131459376846861014149762548453212136870254735447684703732650261080334789333476952089766852319001151318314753319840126575696807573988007905466582134942255315702290191553689749156253787202042890271943625172873940530932245687241520432000607993685438589791179374802968272447257237254647778423965271092208575983512649592171094367958760965892695302963038784431246024510061915540641468292879455759229524921393318020121107136638001739997933483087561636042774357309075508643019128479848519997384690450750931586515950951838496158179913089801071536243661564937151118926731462553791578086619646714620501671446997907685398794154869687799149974010010788813085809771729922250037570297727307160487982190942861366147920592071793782719081551560689731740725299736446341639086995136899733923867595786734897602681991858113905914737305843910195172608112268932297182393624510826300293450856390499518564388821397587672040695995155957292216201388965195703975592688108333832052801767227302856812032204758048886533356284820453926891560686909614015589282394795573047349272331401793317692841450192941228041420923566346607324246577997388681994055412869910644282213415057092001389988219855503688027723464894560485470654779890002123830689029092237079623509375977996828110413391288086045821381482667248750214036662971307690433573198078427602995119342041068844984730333750416360096071366543105297093690143666212264016807414572821968295084622774071674404213038638779541219879664383769436094979717906236848814636094474383662284294343623347992767854896887415333344309963084300048443980281343152107291095365918328954892735507106496520135619572262301817831153743591624913134681472467448565851168638617848334863166987652083771585074023212865418925975175978865275709768487867791209204286934726207585135217739396070946813448159260056593435303976507132721380568023241868428806222055047952697127021262884339770732937348238753120143923865335085128269568948857871005918591236514136273149988995262081230550130760166789228607301814195969085738031894283517539955944298937954213701448864880789397403766221718626009016398822578936544402710357376864641803080770874606769043509348270815453160102125801752918929123127973904804320774822229041335408000843892679288623161160339245577064720100579818860589677186989747921250190733280862754380963963357628915117397439345711055983247919808816138720073723970683470595865884921228014429830706774728260789062153049548164786747703451242253785646777796380969043198026552825605584771774717375951946197466104970243535260989955057174161835960381189077154505318281217601440836276514246100270386776189222000433392839268547199999776027066437392368890120549128622658353760590795560862633740053258918595380582485109198789789507811467175469420301133617282391558437748557623793427233737754710348830554041200490376945567904774135999504215941752282643979817544730743486673972604481926197921491976155179156144218569859344483253712349087199517342565433221288352369104544197294443193556598432639140839112287798851542679154081192301179501596467107327606353217138161672240251098684560842940952951974663286132094965147938327301318802151197636262163241142224163858122081472073999090340730844818880391737923707971346637188246420224191046454208465027782572022419663509690304342930065636383348701248204403383738787719289982729256766897956029617591683583866629500870161260503906023655448784308291832733581027569468705502162127816139758538650593278048147983666539805828445962206643401031658579311873367155808543264154216288253805541837418359875280187731155906782764605842912616895299308516712943520793727189285301963405523610585444398662892090319124600674239071295728126050671348819602082314424155992094353342732765481205538235545233387585283688358975190230572082178301132403740498966952288805802091710921222878331658831125337990131545688770998093423673040602197103258782547523783886074979714649346867956773033388200870750697323718581433139057503594056602016655699470080595233951162828735257955384915488219942086012909936427889455235003738869430428983941212328328290169116752595735433336976939433590570855183948021199671436866828927474386987304784299074696899668698985819352842422727319404940637015255832848375120396471616842774524179770707822838274464265269219113681351217870461947196643809642066318389742640498369334127736895293917744588244969549263277603707539106550857617605010967828754271038965574282197977390370597196813427242365325930275958345639796209853726677399034351993772089236741661851268542932519141490821273215229507320623883888882828336280380857270319954046403212226161480134745880053070089967456537782097398850973415456462152171464734665703447640308254176124423019209684577411407719576515684477886607767881788601138711250051586577323458208166874894309011182137103333514162947916503304152404205573112357162755518463906173729202097252324755396183661912514698567261162287248065598769000466717352038409810738216437705771013648293287980244884662362687239083097249584411929862374336011362103014856907432030693212325762952041204665141861780713313316019649389758330252824681036873711431109632338691358597768643575553714469374682221974279017227061704589271090309558778881545307457077628310148215199389114525973339721626506372450760721758408759537459313515215715090629789467418817844850005438511257167283597010610950227813898388698109345843917521217938457482355183568664926087097240138835271458504226085110981187068620705243567459446274654095376115129343863982952603890438715380721849552945927794308815683208486842518675549660048614840786172776964103550658856168420677211620028096593809294056249328400239502135736905137507795577944296957716812591258221084587921287562119937264124772134984561389523335860700044439677090889822699339178740663716385980327224041932239461056725234727283183770293964016527309132745071375800913695693748101008169615884647697442562637436847735029606416042626167623363111847369431781224792207304496966474350650156621453856009904242467182083054682948473043251674590761107382474568459118513414934096540037520926136423787336296529944013429207743485572739437952675176289706472099516379136019817656857134002391275073477105351716677134578436476174801724259228676041757990919765107171930296595401332222030237455448591089375315521195354029085105164141335568314954234711268917940069010780413640950042710427202576871716222980439932056745820400235530576896334433459769051919830051023233871324493729186644172558281466752561816662114481899915599302465361773090471857822115122219416783085451388903872426032624715279726219567067629162263166250805119396958126478865749178441624277205585632499993178415772740481653357926411387891175698182507041662481857607034206308408420626789736491186708191699369379706952834940141530904377273428425502542561189097524001312776022481079891587445379022331571033161083721119915761452430991088763006295355335827988176524260759005078692429976541318023416124635751262135680830624695384205501760697686350215421904747778886059270471132168969688921562399184330878862653512207453967780074464196112587950939074655986707219709357554315092975165827745915738022306940274873170126838747661375096466568753392941353977374568504606348518072375445878761264184770843846462467274593236327570441438411971108049376720465026938030274888599969267636937259120669656752457130096508416579440413958287323955912114306038730576240399529892972954094193622443022072324094052324131238917771278657118849619116905014833605278990369361328099800280821642627981087506180340672881011024623597182611088417282173809452263155897117579719727570429833865347845309897916886138537424744988830091156142925481735108676447513462421226464545513237909017431608278202796753370030180240963773975945604147179132956646355615180520138652727078590101992568423452001709820630672768542682842825330705306332533057135481360783888191961973718276498853754966973987339370198146516351736877682208412169949271694262506787706339629859003785046510165108887237225452144016049885480590928948922697428505673408952324841209806604758127587620315479031764383361642672623391757191332344134244255010892100082840254452528042844776310280489454385146910937220873624144948100786649339109325197284279246998317068895662581970412799843646491395819631712682953702372073293854380551729995962421957189741376656129228185844423571597220224098989816656015993056285913572151913082878643682728504087257714610520696099423403906440206514403294260548768368338260031246755891258994724342111576872399517712661172599005774513202813858647043803295929010719232903623802366301493798917560093587515551794724124360154803780629584956549741301514630198965888302726410122655981769022890232909844022899600072845884664990296256843547012159963337241067868087331541293164747936505868707906359618735314244855082978579896254349811667925957561656741423138584459930984721144602277352185677556081104079849685641226017141152957318760361770594367287573869391321326060434109985720589129980517002617022268794740271391443516377969574240349684347638634903367086839363228293103627128558675345116972698035131644850563933081145712220934327848882497002832021548942181329438271915982551103130643332814771499946783610247925032065267041723164193530925978233467276329162525468433612087274365940420301010406149175041469354953529951964814298741349988726498726020431340558307936847786593866451455105260405880846519825993746396779127633897747877841939609176321926350615960509691786203101807871758776282097974948180173040309441870202725161167079966823891237770287455165698165617446630399547586114372445715924411631247825468435135524949255672553904981618880673853956609452646847439217413023747034257617745328745993952280723959149121144598910244198793065692003788784581265135995192039584194778942118559257150335696234838789018060994344197577901057073989730893729096031298560958610228646223365641168579864287716539147916767182848277757935821074430187375440552806530201074789916135467393396880817719721630452537525034033168133337524660133424280547322250806672424371968977090916615781403227425395170310664613799307258004234407117065361521382302342625934136780529020727644388357993718942602829333748780037530551218572897609565098092009619678776764141472909448545558895834509736532929355940313174142779517108848346549075136276915715029128657998704249346981942150196389387383671352977925053573253640303166563539145887180441194255687595441217505351065668771760262183697834465961903053875962924635670245512449098228658570403592390834226851807295051769846370051609688264120751071266163262726597240745413729964251822363246937368383202901462579255847210834708708679582424372070254121445358648501894906465988788049455555714371014429219224996622592750441666234494332489066721005157649587258295411675181428922526242376236556015395109723014097806798709227359791995507245462870267170229509328031908072053316689644264703681807357562098792723174253398104223395915651400711821029448326181485913192059567797608398830094416720137002762192338791980428635653296493733433648782538949266583412093370349523350429799707943101396271725731472474252528087050050116688366590037183491928139313966561714470547725935136794620593701939520277339260015518546646554446189531249690664979433415391935544501825031318993960161296455477109565332794968937154551904289692916904751713335206577107523159383175358983319121317672499894958057321511112282885404847243084972631762603479160130892047779963764896148356086429235812869676554243109229588895036812688531417090440505844081948143886630197941561561280483997686064980972062992960823881294457565709381788035185747952144110488316565682074200038868256498317167086118659674976681295786681571606463675522086029544000741051582533788912579437103688603645726140164140776931463027587854213668466149266510407034855650566419501279494062573609576511364940176013295221578417115297602890568301692974622829946043303959237011044623633713105010095636327992712088218602411743930566883975846079593462489926286911272470798252779482372529120659116599513169474415543756225653912825118736506020809743687308530966251080876040015175060558161378081111890434071704804814432431280891175792412190822312063390764742079000989623258428563202214937489340959871098025314284739979281442208594427147283101468355445696909292298514784574162424530506854379774277437318013942026372143859868755350751165264876172490000167992134598225098277425331209113928533686734630977223752772972659983449677734549624295628419328777142165158145525337702686007416950064149217305144839614054252754561582600080302466731892471128355236445552366992937820008589768196205814533470106786631271700819410864375501332131048559007938541935670376449010722051565620861811018157679593285881765372230351068648207143763766683246732122144375056756873480207614168165895561185143206400435969426274157250654262039882752906520035622375674409142408480416116762191844144136595709145798856200178176676721671061959274634872593626911072182092493320997866248771118731506372916463440384996244778899755430655958187893649683192386055911784884287194288614382634417022179444516284268055256873990417489135316196974779360370397603228848315834186739374916219138734886380214397832182373091634228171540155951667455043919948229494052715742164927141797925360589438324044683942710801649195084979588003402740655122962366788370634543956622253920978104679380668689251671976496281981713644800449205583319699576725852017335616547211869155135558231402126411177428215415468780947296146760318829674332884035494580485268334399163509594901542857435486558663859667392963718900568521324336402161868050087330824860343340996753476313427721586319535919498919045335982849596967284252085305399966287336935797134459593174447825414514377381377128331412443364026660768402927013483139647815268883179500172281614631547491720870723637598695896352747365994690828550508404064564357901753861475150072329097702790962971844305941596504714887752906735380036259231937227471726693689618362365647555107433925162024883556293173129993100993532568884197439028329165537307153211577652015451776454179686692380017251733541554027560712928296301246398032241612102128174963160235476444834973469665099446567943598730161359103896314934344396107688200199627944622028170178207653590984286979914472088788432837140298135564506192105078524218827081983139422892893000896661304946575713142732401632414742345978866217103461105444210202632658164819089710984597150026287886279788231523730021550622175147217015938764649899359699720732398357244136912429451091380856470155443969011922379413865644228788280420646929051651190586360740823815706258486387005292225632021244425273057019217634921151287318769530441029238844136896443545081634738990426811744690608574274956692547000340125377562932707803386676878300238972420752232241727957688279360284506232100473291632528358854090278546577008068538583057103585187963376915669404696875365736706345540173371080433104782323303328926699272878842143990098792126569512585585997431529684501355181061445228071640899075761543294984956299233719554795627582368351252984578398578174168238338581200976377433971511638144106068509469891870118711709038353975223010612535375821992661620806004021099980390128367344788170575216017674640622486326927028859746730245428331789563056829784084111159939278311828595002755626776329939372918063850109260394417930050795048066908556884225884689797443178995855563109400850913410576500917556290769001314450743840858479835059676700700224266742742482163854193362517272503532387792674583607700427932689249614389730083189303597748806095772142742371162401365805049498697667285732730008813692228980288726769979485993898215540145397161823739965264609128309756668087000754261378801420337183430604219053555458051741061137577960201500228853733976289346674166741610850609138074162595764094157135562578084023882970030455902982741393131207059493907359406741371806367084201030355470088480206416333902828911077579819565664944012374151808833355745305916809412108146372667115672173997721616689491236187025868947710426580995388522749640532713981092847579570129469488752922354810308767382669554468827708789717560437239302237120709076425339438896470439423778598399669661891338394086291180916136690309030258634501126541821385403179549728341895272957404926409989088681260334435460722086065447670445730526849452174833737880250268821367715057211869297822515424255789746932239699688693709542106948566030854862380636944352263367736875560616808243262145957254774386271788728933800805460015130708691382134999628487817749001495854094524498945205386611199338266518552178259885374302995027887168680440035448661940538884766445974196275900585646849260174129497338010986350194413552635850021270838053832792968414943609338945196195863551181923651480481760899087936336762415933807919902271868773598503598924816566100375803109195403705217778325911285713316741721550972601374658829770813384133543552506824377932809943830259159042181894946728898362442866148245113212890142328838788388785386925274829044335872778206474672916236154323846272640401168049749349506062781114654378985137663451633234286133983688920382681755594611968193868119430741797977242601742079265391302249664827070902006150249363746064919350875541058599204827414874651666661679594737172287058541946154421242854542988448365957719501936477015381037779092698153889383455406774603395729928811427464671679503018827130668205502435432869515626113719856250592958586494928448723231121948992120736116639810766678312820257716680743477056154249410201639141794391016750756665262764947634350252503093069728212941148518141473827401624795214406546201315120578519191453193710190115487084147158648849605982251366586535539932269615767015571599207811361568047871505139277155939370442776038242259752357383898487519082333715904246052658168243062524281968710061312823523592640423816063153760569825494701608070623035438244918116282949935527625864232107394708977824236245277737959153073351642483769066667275806297340213872020092207109883657591737664894567387184439460834500013258562067008592505921222506320841870889588548467289396970838580913530206090101606553938081137350489348135089818935706951934132186207663975234563852410545509214566013755093057180461973327103036349819774210754820157478444967963740348962250820889845700385825715813665234506612081657488501953168809530500032584181071099040798094296862409533357281641581183127532756800641858496610829475280250799656161378148517346974774361735353614844639721399297358663367139447599824366949286989857703652831922877894922627290102611593481414570209966935186734593168882008028359783643363169698160987434747272029494774206614323971303605740875630713031356330911762669757402438711289377752508005290456287632226748047478675098701610986212676753923628661883195099412260347256747924753397386203550302482278887516087201468786496886073794207335341359949165832270880943988504036591025371157178584813438101528784480552247525221463330298131514417436862804770185762605718754431046083550903396305468301649331807271157149779992515395867595120594826658429333954917869496321833882779800821716842116672167946373863523542919309779008687103979082560121956813798698951798792047767911062211064693389802276480505287091386832304447634898809450355611488170529145406930331983542611795894689960916074334816762700204931472735458947428839856744813382633640438736253962322251906880383239669790388428749206885587088639736752914913034884108613182782500098561879554547191023078277458302665242862083094443878124755414768802219474881483663166399534021234006592102711455275263881224376042366344900410586356176978629268974728725762558875171930863472223912120778250115710497393406174206666285625589176160022360791600837921076109052185412578632726896742104159355305136157824553043755200455160362545701423418633878594515372963671868820923636209019239519859615172218045994631314476547138578467418597870033574538060619134292743288870903582977635095254664252997084122552335409306879648363988889693784334471750437260874042954150762680392879658078606815469031698141193028597842174582061372565835744681997748599845492301532133819489568410259979951898851987092460491073552272424272799175300025165218731967243683587461086063578388630452146144309600447952251281923224530002318523857048854489754154638567659353798627687894043642372634303022845153479879285841070524683133757785616246900341910661258013682425679896730348209303719384997556056063266604455283552056004712394738022765680631451958039549460606599683896867027595080833728907764154864534644023099216393241463936710957555019648961788571695963660133252268011279400629322927217659214847754999579491775460932131198097019515869517368347881004870645871656706960141698037774394481279517087025352133748669949166114008608900925209188287951908553093746106009234385905176801334827445638365161219903526169969925876032498436980342525763390650192620320153262070644823342987211819271726727811440609145758993229474991080762999787182935683733917209521468124755166925916824641961385020112923998145158246640927351165134365665746974320731512206754571431797734330535721277991701044046170444762132786593228386138438873819813350334857458827785057510884012563208949311539575513674094841978422311863491600768963506198837097317387437109619197337574210729540868136474332556703463670166795558897422427348996979724741462260679279648680951737533481505890155577230315373984738678555886119932504135963230301538416090024432678467479132540615891124527687754745044349551470311802109247181046546125436979236764123805148345096209331257987378960464392363518623644046510909242904215455375331015534051241894106969400108090650296176822465433818036851062558622099600973647473411048574492964291548299985997332989740504769942777795814489291233012452439797367362413600637668040823432158017547944743376213337933012818804956282586524127545791602460611238623734643655009372669409731691207790788433309712259132853616872871623699881170398869497176137418894169952234574528530259478259839944329245224810126542521518983201550226555052087487149428141471711815909732731584509594264971196465873834619454045424249348522407743907660459866508491365808702708893930997202242685790783548651207764313965141539127458765371638741500421034504915613744455103400035700521946474032828864021698113051005133874871641060730867216379050991313354377807624143078852145645679241367359345770879684617880855249795899581653102531070244937369098088172266598081696605589751530107493847975542908248616595335352573850465997155734328875882821332922574982302013567652134773081772224513422325450980106484738882558324938430679488394810705138123231322191670453484163657493755367307625800614545938162361320255013605822110837352016004344460789090802635365170417757409756196723171884019001858900238452898537605140185700658483353772349449779129238135502441395794434819654496562938687753579395344529581930584852094571684690315911395340517036015107982939358404621022366583216819306978055546295973876830444094882937286253805378899541049896625405337901929304373976309446559627079263476040847613120564963803731463306741186928931900276136052538818663496939487591225269713516859443540687655222251365844822106872115581909479575484338204919715659813016499572072157218793916937593789961541142329912745495930065143280839126405531884434193237525551256835533875296421806062020818532632822561731564549459077649602400462553287100500856031364526297511208952574045234334454639783832980113925970081298577836374344806520944559047613041793128201497821454752961663764449764654612700657866754593771196809648337842543258818056700145792624560984796157291812302811788500497342132275811921680787626611750285263717637059845625311047668543787792929335611831846786017343348637868456984541177582921360179430936376101498769388208316171112521431024355696740694128078884775678537731787592355249644932173995310642245553775685358990210714543420953664734219982277189657455124801500277298845367017567954826489615731775866287213516207019544949201241046930887750962238030732880934417723740757445364853055459826973687743310212310260761628687352009996553879124548564285106183919932419621572379991377930266411908365961630549832812599954280943892917561539920183428782115670765528166195647236937341594009233844216642940185023767628423519167923879830186707218814377834872027570668073364642393386431080789217547220641951394638100658122081890244074058404431450915848390872864712864216703229698957261478997548783957863055186059147203301676178216773260915299346812436049927049195050042874637797357033748151535523879665095276371297290318625226163065650060159226868921958590893072312815515921556526990193440697097874202046416890929716803163659016521056274227635744268848946553785442189143286894273829361336608148780542361301639060817407108494788356709971885705664248278519933190642043294908908077248420303038010537608152142499393980600249469610696767371917989620607215342467869609742898811203620056405669543695990418264297545239285725335625581702237599826029919585694635785559633824323786223189098010194983060445529049972824303122811535929986515418870875751676625127358272681174193020609103253109761943423452972340413440188993782002863025665112724616474304453080208663016762107618480188058505795732949201518027698092364144264919659703042307300563201360414711484246129327140503768231232441943336247765609783902361376379800918574921800325344157879657982552247778208910437859539417315696464135583694744580695599081436852457470921352098823169544357097956811935105781250685960319513446970226346717835083098725646383312474927465534993325385821401505888052453767065485318592971338255602771550433374924999783174745159243397704655082837681263317619940787034300729180819708332558037053549195268715163268912110803624693284905645008935966572967536730322171620439346969863686481846957913580837388398414429588101623764638232640870683172503871100209889983637678929740739531983144080921555555771272396507333292141678218492350437946829144747599496764376044152596224751692940752390063194862861453842976434710917335445105723405823362350181523967133440458024115330293437599680963781283211914723116012479869049006650833461842716785791487671617350825506145715361091308065334496327816468692225385980797395050231984765885161657670423982148039957858613732128947732982121478157427257629740669009165281401178235268651083178657784234763687385831458325232435830279224230177807498024290563000503946190737963496943218705500356845522944950684624897953289380732996173595198347672329029612279496906298229643466440095765856121248280972692473185237076253714288255093090574935287803912929170099142133703229007426892734293800929884742862880042288104733446303834649184302203056717349335688798815574029072312172297982006161359385873442089584058209421364118249356604885778903024298981155327098143786798681409068603496125497588930606664091347719451021973583378039367402114410597327924241755270727612884913248598992364361272482361054431189370546029905114140912743570175155158232505151202382274392725185716911519081623520634628752936140368379901322509976761162154388398403457571722421751289697233234541098243309415870687292626936279426412221114106970403419580931880392774228348976844418640950364610619619205533457721446121222262397555840978073370683384346447054251633704389413539785584366297260627396467232881468677593977432526379623386598465836925226033024195865612505246879155839868688091299615206031635709102045301168597870023371198567853803802092512015868715895598624316090852051111674463977970117850539920894480656467741054481179132248882851040587635684047153809129090482784371600067002489516790361521790181811210400486882549462196472181534691353397345092058091480547542468695838404728389043862026206355432822831588594659207889805862922480351672360491073619163352594085034460776134473087788239946937926511240636067551581789757332725060572008358290466833483451163305619271189042605352422118361572178226850520222016170723292040659048338990685660724660050068197840647466256475498518612967038974779665839762743086772691019286702983265901195850524663100036762732963307790330113111031037351345734499607722692525991903006711368173781440397675120960575917085435400408182831477859365301600783309270626364664133817458042804755705742097185501747172295328615532767231549408455280242622575494406780140793027187709155035716886399592916499029653571183894207345876793882265391183991569880447239644346712679122020493180122915834610351373340390323679173952257195311740976048895266707320293121583484329973575886128724709452714388403486683405676730854400128961649376899997500189507696368440361054372214000321334879875078277082764553910469218741558516236004981216194999677989592397329104550499501525432343455424022394339500488785526219798094691273843044708281095392997186012115607594634569493346311357117032068602378238485001034898815022615597910856366956348118304281341676427201477391152078168853780626987604363539559430421556527204621160254427135723072579782916821172459558306113955172879098965823046149324365950158798648765360043887072807285817222859010721489633161545644214849332315011059462467790554893011075490097921063091125208129437658752833353099159590709701962015106571875122394329144095714681380346791211195613910679310531463149462359818561679211759530223801257558274466459580390979198965052472420175183781485054901434062847570360082749086931054155905779130496484544935306555445052796344237292866452087453228393650025493460654146741753165331555056540732157387800422170142329577833272693639056770060520665929265203960089647268849262823194248746215365391647577263030252542284363640883487268686531379090890445953498987639428086323264987062187940309501148054785075820205722004686974716682182958094479981812113068000052375898980570904516406785838342741207479744039192772302690727687474306424953999018096888636882938679817417382294091061880823817842078151532111948941486174356997155394994565215522812595113285872559640635202889647463586438158125951089310696100311046592692502671593753701188324290693690968705340377395317790843919951146439736372444354823151571836754793323167150674382102681237793643398874878156112079178065511956291104257991825809456904277547275667611545108339983193895029596061409083826701402334414537813602205081977647771378524093112254851533928244402186757349854588348339330612038507251857389327930986523860337675674043086836906392025276645763793784033984661935568115774912462910979601201657395266914110030206003165296558132941969947622344737293772648572119090982030889782135145070877815519320939090811925092017214163597871084803924764112270758680369418488679349124315662582682855173674017623840676684092252556059950896370294388437193027892651510348654102212917851469667327360890976218722773594295111567628436062438672156992346380284014301357239952418492768889946843713281725349301294784790651007004541260957635481279288669914754435698768653703829546574627559250075429961119632943244383814954407554071168017620702426581671694002918141196836599155957282608558684897224022297923179133740100727135699667025644690316351837830884839547518405980369726391114934293353667245255798740839306253429791048756984154471621798381573101320798736712110548534107193728095341410355639921229276542715910996795299228582731834006178689033947211943772293054058684102703610515416343127238301570301684487926296762390283800758511018781029660535697025889010498089877256112407001324317444307302186567645322582375237299189235621093846491400182313150046922327076397667452529718897749935435651081270777489217794133905076324284026365607433804337588662762352250091336855185640109827258935180000497495102285650442809109605686527705490613742649895408824416914262376327976865383901294440858431925833311605521209394030530678099430968217251254953904068998452413066510656240217080740572967197148628195481443088869549715264559910281469950898481541126436434018994820944312480883144000733255840160478856592429012971288897773435371298735403559384127078856088944828187825035737482243837775119075203894143260916646484179094917981744662849556584553013152696164323823078556638276603926553475699773456877487920118835320603099102709727665384539925937332102651899333776862272848761426109438153072524076139180391865624101921388340171818262834575811208881896736241445235597511700563866307960488659548730323438528165901037525746290298616850703057588251655481190098168192542780828429525362719927621016210813523550999731801221197122801933640573037465434674369446627923082781672982495300137800256257515898410843795245772771807525290247571957239977435817976721099053465366891210170682936715672533572588144817570176455391393837902980488622511646104680048537991335392763803094900544298215185818928570154995490326668343040184657622403731917552474053092482357522274479490539741532085017174015351753226268629510749831326764443982322519244836196953728612594288961108530211325009122378165471551339827116585491671992676302668888988603228866102400698804323269683741107551980419379222369048162493039228605191408371264871409898371367396201132397482606942341677020804314795734605184136161813161040733929537335970539357386494628445906203740021819947866864856667701044397095890893284054065101964997446074320249723874292553091027679106372305682020134623767401420569403178729162873950673026916766426955217416687706139252797853719981296678492559825216045723193031528310484585788325028579390394565167189021142411545039393269446267957117455099981067415673862650203052195287650721418264146985649738235655726165123732675716575468627385086712752219808697788503708822866008756651745225828046824079717705898069610856692651922865940016674019549812348901378254668451394198008524281854546937185304642231697341056721376336183161753456403982914469292167081698695178079393834107111129359412294605853592277078886562544883103592847821931558888310356932794353081994642416695199565330561988643704981112739662269907690587988489438785242730256618710414881150198873154779536087759618453760090235357051781726974949392364294409388279861352263341328922724256678655335380868106320588857166922215363446801933948263633657201857031624702892385957736171295974938308041873272288675486258425793307376501619714491249735821237622472212674536520915201254347775904668491078263366229737633985060184438937337330856216528206462872109720980851942083339887193393422061392126949923741764327485602235911694098101158483013357782452786178518819444140718549113440458502097293374036896813841809304343029549247912152263281214923593596494297713761034802390246956140950571533553963062076875354756271336195612601103293742573253982559187776910519905880453322126870898670455421122720202284125667453734404342664134732393738427292676473190623050613196938689314961364370669656328443354611984127329971901786292266068506649919986321209054198584988269917383031363899002114378940053130279131827942962417946791400802022177181097049235484677231024898450874746134146992348916589546033024085763730068520340792511546111252510475149797310928325869839476161045970654012802918996522018568798457978367497951270270727140368724037739146457897708714728158316712372503347126368781658444505702011072854699520424945332549509342571412093052442527674404771978509223916837297500649539705123500625273493595491442355510721671218612610795630822566617102321006853169858701445930106173577920271027588397353673248158081037025445140913737825186031540563500278743366441198257598329947283773235264174361049730286643888962412658393048584360430019326103137851971293496678289154259861384298985532954100348095793042128110549541610390110044283657761012243155162341828006040776458317876013506403012227223599455234381619089762955279222806239164557070024829801289087174923173328352152722272823740570595991158357436362793801764043340056594073135068716789642930925266014062723734094510136135545511734080497685289397985118797299756518264586858364927208417396160986779302962026247436790693241417439080093720972048819111000385869629979846032391480022643898241272695634410596061802668533127778293550008932371680802639253457912016819833798513403551439658844982407317290704890182669549430697150197396751920792811183850211502505846204163826781450853095014566389590072371493743893545232779003664832591579197846454911936509893215930679040513078300945229286146224233369413185955959669863590802563185902565506941779584476598509649931472300712448888909038373446364584219977109722834171810043020468872371239371277519819151196614934515490230303248364318812148661588936719145826051153716948515223345868498643644182172649239118310845122149072024747198365330207865091654307430428481456338539909476116286845697182333430718107285901614025405084159964527866685281503441631237442137589293105443391978940215921760219082790631017431623321578550259685766728248723265446278637342270660349955928267662295401980639959546443301338498803290874566748869232719513897067673816296281994043332844271284525395167949134267223014872033269230265075954307393423675504820391024813928227003967751910817216448041362973841407921330896682943097792585048679547692886406853595377775243574086449599915099847715042202974668637479352844907867167495539037987554495111026937108763416015659119292064389102912219129427105233247265408023402781889141799126732009298706077547908157154389358319266125711712771286977467166024851529174011173882286996279464559746544464246139141985586634450615740651025432416979050261330329070956409900672214072897261259035603286079580720654270736906065614135158322326899967853085905825025330377978837898439537183055906979133800154983457083266112979311540260671544149413944517413768924474139807198408127565536582852983135851973845347235319939859566930528499087363615464801523821435151068493971200100422976897398187024538242990557958552390236378241773467053002224901762181231853455617542159137648522953276498069470971425931126118300248758574245567704102609825094735452064151547003799818973773834280468634284108757682383658215665687578068815490643099913995734620196604053607015594447193730881100216601423814785232448506438891667827604497641619885390332630316183396648127243612085144796469250434021331821395968154085252546353284834474590363740254022211347373377459279928192698600882476096052075556653955487290121611004218830281002048983333539483422776628327144772708425399987215719375863676445674142040684808965312369685273133309212133169432749193146610846295145488197579715553398026831930482935750229001912975390838760798986732140726820946095971408062782331906395867260269433640194330642618759723085151109515751909542714645722568081980378791596719940683753363697993116798079892390364777938895799927986525190968038789392374864221990674367946756174603758036931922610198291817304664189809434827951922197649313805123157062173533671303913709924965308914565577894412779172619580927463107382125716052162830913879868124845477374536682426352470425254825463537028540563488299021034955721669325516534849981970441816625325837596816414151975720109257079038033606494435097758991117833988281990139898710382978549992677430206892499044616362633725326712282003700632770095382294045034281552358555071910488096029289343887831262500717288379862040880792209768801823783504196130172786121446364138165587713250341080497210777330495738629681796845396756460084250670187873904194475524417705750730889790362204500465457978837993141301488159808490725801941955121054564695448355897787415019007687411385995783371641372106912399931638467630581946569937665126704228568150882558352812116563963904106813835783549226819478742767841575543899394418474098640624921129914252987355234143538172859613118663549371172117167496139324137344280924709370592122999917655084967496637595422963335218863843537821282203420230884394002394613766174758142077300844627619411587931440001878828223341017605287700503257107397222809188218608818359207457899366805757460298581870159747910091529275950093497189006651046297027130481960926630629396625381910491437153846927829990810326358268857386327513126272707978810632851821628915429268331179912244965140256535111686562093080539186505582897536029406802143301826634029501623391433863840367660218063707038839592940366566040203492914108255485899997779236221651986800428972686541352516263824424768459403358515713045848803068522708207022131450870692362576975742242724463749965627460284368518974463248477192519343891821150661066272367393701615063732080989770286215614724705300663018799073053502811846824048517664808682677506523468822464294877539350399347507931286419928264582376945951459140723777877919262774254106741640593282548259005375802992952696182052268923403216683764559699053749976466970158417181930324207355088315103077694533640785323666815193921733132765434592450400678787490896426194206536006614351639110597888858592233002003308352456026075659976842070844687321011017976415784920457387486849460742905397074972093581244823784294176016019108284687135569093751641418410306915838957982432101970107443753948805633516276614355227110407135967091168211715137632397421759182016121873714926025608577584252374288730004880502285350752739337507474579638779191264368175468051155451499776844489819371847250466312461011816687099591175805360564102310057396586256305420398189473536782451707172644619514086313186099078765783715478822385200645749331821125518666099654050480646441227872544651676593507167597616756365324812041093212321764594061141832112248218687086185437059178889539404056394487447348662395526463301418002818401537318156197560922376508395123154261471159437667181927252731827429951780601812103285348333827885486396709496147421489302530434619282451238879044900735071081311283566452170310765964815545889591391823763572288862856434282184946900984437509536550564722233525151767792649242475551250505351477642390255346040878766728222352139246564386739607637156809904863973717061040840004007514825161327828815100106952540803953442055798498886798793186440558319629483549660845980323713324532328489301717497591256029852523505189346279069187144410732550195622484422158171661820715942929816068368620367087555429644378094574827246608602237168577390484855402689969574194269753448247928862858644411280837140207154681743932721926825265698953031741281483930428474407147689646274762166067323204813157195036402392662380644305004921520915081171528345966976742610195164773156862133937073307334114993482753425142888424715719951257733112666944931043622342785744656697893519347377247158023009597338764815702566838746917464830326550856985406258313293536164244024315726767399848437990477718807611508510587881791154940528256216561875859903672317827264157663834646857734839879548012722070694941825060097616091631286105135430894182561746834366806724910242531353505357418550523449708841178346187611520262643840095412743346328560701116031580818780723372875954795255678551011437703000732355848387130691960582504099383724585634046264789751765926762780512604802965184470443542796297718660149669907800422846792123301812071399113888492927191371212093817841438434238123311883738419816584047605763699270680502629422291395853481822757280112168802625792822553848079354745497196444175554167169846367320673022665663257453531444185387558983087621204434707250278697063438854665017053491192373783594472219239598469434753447928476909993291003051746373079973828862572279280970797534076045659745909108253662143964938760168272460280725004874932624685589735797352121995358081321357183742570778087765110536035048999269861782995213563201449155540678327892039694220788906646768803310096061678571653716735867874450686053667072088923649089363574375300553808721253605090490635981239095340112657737051239568338648598877070460194546312335789815147570409780066291613465713219671943867105435232582921866383653224339042675535353887661670961864626446203339458282448220611593057945176810630433600398069155357304671761869376659701662250446240560513533429575760659055702907380278297854827337378554440629768792533779075384628082993602862879040703823346904124445782436050873348560014197958213144518889096816857755411869948399714682290008491147635799945541552803838697451964949069898522685388005971073548962094711108048927277256407309093623713938666287627090896865840044782321442721761535807121864990266630500381284701339181660384850432454887314581392970173681820335784097134984989025296070427045072974845703820426944819313714078824483374345418032606852165332375764230737152633171329147492670757713865527522693066134346473413425155074708577698718644837746603538829624704684943601969333530593412884576911864780241916066149274327778162975829298735989135731053938554443945607028194367421546265691280158623785385679464140304267735472449515481389148193260781329925979147498312920827387209091769535649148370055877136642010732410569238356441114715273401155647340239939158408435819943444633581301848195065355001577770802842878776087717804777661247694537131675845696231405588227062931143584114198910302645873400104245214814710424244781787117486323203078478638568362254503701290566624442632762833116809375442300958461508641351798576727119017269979761469515570700003415739257935840488551444875862002286527253094968170702044997752224889919346021700905982379802226664262498578088738369689625091521591398845211572858673325823773957828538910789055020356223124106468416673814940777919201009525883080349186771898475592731625847477350432226440746839813706967305379077023518582652249193817124972458902861823851583717845768588583796948584342503053107531704247526786226121355905247528554271201307954115688073684863524358721445397941240972637671130038349985362922035012576867991756240251832284592055585021448459931773675355675873768749712062850453280979035648716347998969668791322168790468834846704478036412517697430370838844593417705434864302106972487497414391978734354717102988356687051059686154614107160093202000899420546732327396630393093388083393409551820787194483554678570555185770304285211960422498304933085622316435509843422794168438659167631595891863471092980156137022170766740858291260370185748934794425960895698433604899417739559365864746332097575257651111873490752951132679421599495783425212692142975474276948657360218871145149980694380702749295986326240760580441152280485755513979220778770659682039236744471325149981328661762119983006021533963523225426675373542848521785385206494264039777196552377915059889941123746853043232506682996573470037197114583611528019944370950609098973121329937920077852673968750179522988064220119179542816873380071746529799087733335773348605129957146059672845761826133739424705092582291396940691733142425435477872826583584264181452315910982966673358875120441951165858279206504178969433032698398936391849313440198901364346056916403027530186028494361817682489748511603769309331240603529585104041941337008174107371237873132227183305038781276888855389787122148159918171412111311579985018681991423753484322909235964365280938360413675617584812422811179207471233319654860931050006078714093136233196127366435067411288697861044334828536631350888918041521722550190686957280205880604588433916879069013856635922469289786429642118563631894878251116040415077626429867416434302606920935196768988532852983236645557099144286213068920776676841020139790030215781119750539769045247693773963197290848640423861140296577963232000692334548428651770621094621013219851552683301641208510693745266197970637462039664934579894712273179260555112076706808680962028241377269878301605213994939676279151850690253430185246048660584977421830099418477898939817949358641671274425334115758366682283469017843755063097924340757843169606906239270575654513813014411840159969673468702959427565504511795701882949731104114530431593518461248433657199001347964590831941934337121690443473904395994780997673033701218591938692342116702018874435072592276754184835128354011258705796268369653141172639712409466949886925043655010848678029038875077202481339675030705721773730430230174741759404585806594105280304619643943391358425186395698008233524031872529317578162782416278126931409260487454612020106026018135963399587312813110201280633488506701041278481513670263456089962180995567175475849591496976877058993515855924148222226407774824189671868348858230672498515564944050644911906406262108584634768113441021418615234022141823851080401797017027089034016032358056217641713239225125460784511232309870074818412101104887986255043046164494305633458600633620075433706734483006089005819065590906832553066354172242032087547991574451343351564630333014067122861855586051338024634491320430311032729791230163838424301269249205064058160987386138450627711048024397749445531729072097322435345434116506553541511039278407577218903412253093297535380055881584792295206468578381835498118759368980942578717079490802226389665585509126828890089161073398686832422117156230933033461631940730542869500797964711596294933045841724567290109121988413051796196326224285788250737755942189457881287918607117038724093754118399030347924072647272785914753091263540314687166536720104472854955136348271104651664413998626585549523134073668939664175589357745357081369269501925505506969560897136078017054066814510518534333366373546976256125422468452292937632826326041355169191512224713717884512719351767568479727052287721820212792886076324942236578934002033789605969348388993993974552906884244284285819858470672300189105994359003663292818637795040137401886675133268042388075226838573200182908087626634088972272637952295418269182269081874829169447144726355285933212279797856905160844424072552797697468502953339536622154997003579278374506839526353003019121508076919132095843268349385279421780236642217753664956197837833214563649456908173677093982884275113975052216340354178043643162480747480920056760384829002796406865891509084814876756428768120107047743847961393029318188529665512771779901399999584510405166606667499611754880117336531374266656444361197315251056172045716722571137383952348452069909942575522333784384702417028005461517315712880550088815949267656012334043412418585772376126825245595773774124882141456445953808401871254881166349666477523000363113986902700643995869844229078608231192701157407121406395759608251745123443244605914727272825541963238415254434438219513667670987986781301312267005671728256376232926227638016430533116381147666173756656909223210932020968105937876305211353953459167210883003020121988851218086709137240215763578970320476454332543435026395711101312364633792510422037859581328504042006695817453067167804613928176181247780859946095638106985249110825193872623342748755134476848796144579629812549181946332209711237809088831155990394318509884872874654884920772884441263110189573089689129289212640965006122639416076063340117487448207457220438871082100312393951568303175875160698677105010084122631825962590606180979952951183774761030258960688072440367762107806774701377255555147723179264551824812361027987759750475794487705169389750534373518045833861816454962770508897341131263172922209009178379122414536193572966308942547511051186419727769971202100155716190426608784320382686697556431089224441839019041736726265187937071498098045597930536502579264358959133497237340705575620512593076450060605776013666432859806284046291361307546173806692012738585699356266573283226307717844409236799873583942506810502566096351503265342618557567147453909514404456661489309196877771434416092850557793346811181894161517560874944690512565085909894455022032615465318932521624179143355446178873453528014175717495620180617996103373519988357629967023583131378491287028256492665706365688996514433884034375442192134918160802982265505689305623004732919229283917448647958734522798874693751163065590389174050439134852169164984594565354376699021928776968534715048846988525646122445858940869029839516084927281792356346739866779940506862524391677176221081475573063241371320612555272010340124731808988516406963510674592008809944944151899437291920948275025341390106671305734058771637142659992121471221617060044637254482804702320707147662435747807837440157197779064135839903920468283408238039907727900304694697813453754671353387452109923240531023635989909160523145179789639429426981603231136996893770954601977793704654499041323885639046282816826965096604946865130478757540395412238947595214906831971121675714396166908306219427067961821541698015046230096957807067914268772905701294960599790488864945255146122735904534238928596119547825595543334110373489491690022200074629666804488675404316232107524637179395604428231435440959442793674510004249425812356919399628710391153278996863110537395718007054044538059965682428159155516686709527614310265132513304325059430700997195308387046042488496610192016289720515030185628148777693701681757118821626548276254834761456873569735023021112848048714219276229066678933927378408299899235118205678736783220344479853655079187599875700072790392567547405488930311880504670686906836620706383414441155327680672686397274103846725358756942358337407644134154663001715587454671394791257234775803145921239804235442209312231468443500214351512370040689620448707311272553132701613630831911251242376103651530293148654571945526677460865995570942926500660755896268016313678620895627893752740215354008987983661565664786235658951050322884668814262573676523947786510315601378110245823465197269612144119396720461896502603186440083826379828783910127082214459624714941394490020321531330878308363796423357399719807996166559524229676799011839170231676000199272850825417263616734095486848213676947206504909886637675428646688025199392000606891221824921236768578793623686782265198081980522517195430843890655145565537272142256271204901546526379638868071298696399318130074142421986678957440448354231423513431661949925977221553739571359758793318138676477578518949885965208146828629400510835005606661022203368973494874182907780008366503752697193815935910283768425546574412548565334968613734672978818190651251937523553092902558841697066907421527839283114052469530736568954864366658871007452615447066518166575624178416070659700064776839122300417810351349255451634452578368086318291262288165836391172217146819371751176321236965769568026230037232373267824103429518031185465029923135099990687593565888267653348427333161339841162881416382888146711421721819684947223554080735232306829247672491380610222166899420237326463665588229754613721305227000605323504885071845709140961576650997474813914028109488583525141598781197726480434371012344188597200579555830718558454991139852611570001092520042956264172717289695156256354846477641103227940177240412832130768273983938189727197754368562322366523778627980364104596382413720970424207277669505589213879791018502602889484069072683716095486584043025925954526799331118566518411043577505660433853281549433016496143464630485071429750754230766875466076249301013869171277542550298036766746672714676487488796102590152602780688585169848391055677152923020992752065100379586059087932565652388549502993810232970643500877476152392379999617777978160082229588636186350700494348541740852244902401367367227926252671570195681752281316386935441335381624431265817296967362171030576534278954418888387834193981876251314855487939873809999877534692488628695189624998317978385701711021228584468501640869484489536001293846399695653068147027169874963799431792216172137369121674975247620822800990896228057077586598177715503012412171974885341853641426821028819875794622084715171138165909449434195719586371055815750200081869673056042796899984712617124009768248318376426751499817687070944767288493158947729767893927259760510185900229734448524348154204019247670929523928625652857215133584882974270649927091039743308296574076775725483573917997920502591717348687427872732420620947522405402599380954953829992426351932388153885606587556480075869823444715740389328099823293978352759042327503209493836774293925810982806318301349028152899016451807492795646935371442616362706768473126970705015097305224710818157526482730946402697700768724175692448979273035304079364822117894592788629164895855076260322738071051385381286456576597585651881157194512451331743424705953602609689125199000361902949913712436724647272143678684256347696481941357405485115020428128185686375210216572562984930697177794841161588672731276284291956066524808742584120618304779921999670902820936011700000535492938001536979436567587924641646607445059844777757667799761380353643997104449082900183061650158944225104499235008655279108108573764670745879390359736607084260470321054640647007670143574000893361798337837510598301828731012571997254243134679755210630416095633277282052591988569114875065343012168921526849436431277445887095672427335716863391405061993925701083269478034131008987616947484040932244720544783372286073096709439493057590098221592534951660284290524096719883814848013991466566952812853791791144623344706014094252090922671893750229181254098339129641234278642946988651751357062186112783695097283005803392182817078125585581447716524778047855592208480862305449735836221970049980443408686611941665193141384177688164996738921394508803935683032641454031538802894370632742479372961895977520330180628545436267390640559533596846611485525387055513789081387717949556787568304483759714975277854540485521332441044466525660022210225723768431464535500730577250449901150420348334850039380956638377311175295053979265242279165373268745399517773794291686523638004297250205240958847841967860925632931129707355385874758815641492667376359569967719986039429631593780100743499640715776904200982971619272421758165441085738757795303212574580070716943265958781316995100756891203731011554310315268205561345125313692755348354250715552516946813336427585954441988897122264392546420955284459910236144442502762640117993188134135076072860839281636498960770534512824022412806920463617714082269786588901874117022458053074094997990477957315446904267768662420193283669320378219103464590661345407645795646563195019268924101252776333403171990162277248897993535330311476820813560430399021681749104337449077566782902887979484486601423095085969988166625813622752365131716600917388170823206316520234246420346890264091899641861245805492148482744335952869566044318160471530351148860384047880141214864438024428578214471488801143202735908404012378749045063394081289591806080235546690397885182561783385537031173560471055643025853564665617970727028293790764963908096508373928448071434679142299745003982382557371626015753766501055327739342274799241274617255344447329013184070966670637723556932452706691745623989789152723374394277803388613141572244600157063798872723437293940636192545928540764832178311405358499849553221207266646084464722041778745556391372581068879503754296679191662527980149350561749863981696949326494990413509256587932963382493076446455610200234159429259476907521565493471773179561776246786327009292027859020645905070533626176882536215169249205872814086917140593509828522102351591233727901541378340143231291161822732806224460220915591742541528304052191206465813439589212362510648633851251574323807230359480014326751877626712270297166516041477972036622142828107195037725207815850686729241305828119868073078889345286359162776313297664850506579812946142714403662560661127272292342070697020644465095998770164255649018722754433590075610683812883745633495124276775695009516684760595387166893194371021888365166493765737609820266324820556375943351979667342135295636259792178913623547697503603595912161063712022010849560157874142841663158787579429195377046233821713559350636857598591659516225982102061007414966230021076577797073491933131284577034338024471784779349883895693882119825393062397323922883337122759739583520331882024089662848997820282954137741507605448353085836695928769273555054804053923967717081249937064301249156371771244872772375206312323349775732217410291368385417138336634659235788308490670265662590324793210571552525942495809752659555594785963089481315669377613025360286132587186450001576653385088266098176431061889817234975275071925828117807486560598397241836301545049894560306180841615652754910754591034723224001272902902274736067487680888839535839606199047813867379655022044508910284870469390396236805346827538767323544033075951332077343651984487851023230698803967613306915468807133435153382967141474602250902694285768684630082776919252625642225146850198334468064581368400913340689671114073991728278087306205877988535128998791180480173492672548744259276186616820192280598002438082281143104311970041785490048243264719394949937909259823318912200172221058098565988968579105092520798337300949522070506698823108442650929471263162079321404977566691826628931565048169824209459798997539677551581766835991584667573530773433190966549970719761299967037155282589468986376887302460142746640133064360365989007157216240895046146976679175470105539353354325727934745518435360032367534635375484151685443218944366730715252624530731424011940507373088856161496384199454042461791023013281837458968607532510389795340675973319540316637569884831416998373953552909330927796689322224185841004234737011363141065198779041586514333498755604210257942061902362746838115108150887097863472823503901512497102695653885048234079589103402753762130646041924573206819641984926970368431465186602157675763432379453462517564323697321955604086738827936719077515752421656844570381070344409808911272070584220373466541164301529704736177433793543894085259374019612258134491531225769447932552762289384845152625104132288839260551517719072225362152118113329184056938983392766708085394115351678430354393710984651817686811609601408115815019945843046298424375568622346308380330443120639026592974153005854363036292301699314037225962211289456610507533525863449676705191502030776909096520463139749905964100741972162421683727971639394092649238898899648431239899665468605516200606675772738235796742702253140585266044920933677049685634129587346934407630401313756771172621756049542371307496956155193086215495290684458776346189457844312044724780702500738274451843597488430176457872148590552919951458218833047595435995494958192260039527402468168071535915722232958776286304047274341883628123846900969621853243579568576062038220572743352390035095343531369257860997021080277147805727886273621604536467694743280638063426094873472724352017339842530924839413735811917530903986949273441836258905892658923501694898230428114965271079826069294158905240924416328111115424013338872149563404172796768587055829448444959855853280109609738841671681566197180379662262683338750215551379975980458401765229889937370368223832831121909861981128836326444494580120434026639244339567054064667354274899051350862755505537222028636151608690590484883965929152560376893983108987143442417170035565372681720936016412687274302535663293828334159124635410819953461239517370451634258797990824810380108992828974860651253621784790277962452315431899591335313852141780126570205838416568135597194811594948268321761621174576180962514306981365119820731775484884240716320603211079637778951152194657026592619164248323266032017144682471716720713683857157251592936793078901919997905305318317069628372139523811903392136848604136273212753524970512671094603964016341962725848506188955794855262277797324740393951619152910912303633233717277458892966704780846109504725899524173797292334600300743344706747068013139619641783668644442055163325253693943502978761616513289287266642762480840745440821243224278212218562608858228343357992698389223365799257036264942046640534782370980596605422331983775921353834513077044369564725160999766720578534217137904143180268449835040519389748986743607678115152229530611213988044795662757511530553875904706064147537362008215499420835550124360739891833113542179442397173614034529942323389522189556906539700525463156933908985464968119755485573461641859935787298982727147326343340295942514734802158829856372621709909267801540089813235879509248268717240013783065374358658934755951624482474148316219745090799018980588298130559475511016931917558125678245787142021814658002342810165243874409717869932244591892353214081145902952566129869636379084468921674057339056702068463894931268312414063306938200824008220211484184404152197105407217348072636325939939021124306872746233233477420846631367039486255128860466621051313805089207097561435258912852113294396505765434149575196195524557452954089457203047453670600699738758355093208383904271689694816273532142766561235702434218039347531349725199150541609074731228092219204885257633976709420267497265559218608607099072031898233383219697054350500860445693119911655083859045850256067815107509777047572024561156755152587812040081103827915181990578845239294161789781584986735326541128423267542559693083712230026553582767981859014873151113465188706347514632870308987766497685543991214470134622447454451775288285997978868710521699547506635146054728237927246867951943850788359506153081708663640493653054687944180568685848965431735381817158466422727409171847772543993196949042789997876714686963415639055348641570970234035915958910223438174516755036473975694037754217220848554634621889733477684604310840031721347501640935508550538976083751192090080292861010516529872302845782654934589602260209813882956593620656285262556407355631786103214376102285056446844202373741582664130847640392325427374434316063043516298351274715407229587600408884825983272987874037262538719930975102424395337911311339519050527908145685810225232224430064372454544593535196543037527007279536143416042665720316681772355050516606132059117841746507890960867269324340715746475113453646792291438852200554742143106516194637171280228735705173031353071665638374755783488456387963110047257224303073072103316820873881214267591870302231481979562435616375972534243383340779086406138496305319319034541829547180593401800256832183848821028445348638361184721202249912817588421556242435608948110516929398577693470771762404330864625580561508029665721201222278615081507125083581697167174279345009226845674608472428795978249204927835608152091934662403478649728938237162558178898881488639310945134405313907077361884872593722724400586379214518442057650812866934069373541644867853836932861001971491687652515450415355474884846358446031571284647381233020830750452384882213126986793237787485535947653555795147737424265557582771621261802716678852516526476081868098495618803832031599291969324413740438253334740645386389900222524147153324724063556383881023512766436542517622215772319069207565747666623612522865808813179737481114214472597158580233052850698217304062500974593607401022743504272551944799185518456833140848040508249786776010510003735497154792341643345513342416019654704509915374715834701630186539877252568602505909462187897738678439775243243563618672078285659201502076479122942691066026907236716540438803270811510547102564955721704324443381553459209310732852657042543110358148158351020395212482101575841130893000995878406293626621449769759192206291246439491028558165708174548333902581836903039661667016269377374115076069612703936071810136121825324731412378054927651847965813226978135286228205106465116463172037094683393397099993873226535030799298776119007695532689836251304247664048190883681967072188913009647618020664910538636009895824336422059830071622763463255391645651726420345720419846237350082365881164776613710917526744863184870282602079428187487040063539012413580801622112961844148429285155517863722099833625546987880694550043727533309205824562777076155543760650824531920295318480755662330360087534428405142479245265196095631492655065465834785222707851965936621897973867230466810664190193322319449675407276480717070936347681982056039707763022677720543219346837525384197323770558050703314768584831609523106689957989657998145110138410473056570432887825415742918965335713364656356721697773433467239567475085895535626203910495893847534576094180620120998481572853341547889897832384789125459691708237277706407059243362847584923227916268458980914094515263406637981604010087889776997795540763491621127433129461865750088917577212859005333178173521145304119508362486718959763112541722820478904055694980117814502573851127367825375291427641783312835883238294609751026806895541506116021662491405175616186195149380969348260116201839534352813674917788047866260550807059587785142393539294034556711142951571538665917632142202923785500495637955010744056359983276165140567094172893109617309336440534152003014564748133750364959059066023250246784497604538683371109935672465603810880923516299720734218939979547597423464782737681672438694879422421397862735790367444378556463687805905432639306586515481505057849321110042695540255686467404439213080513565044865479719903968643499954499118437115400597494626553836168229462977561030598587958597046967114495839212583904958863746486750793758655481745199443265781322153210293583510564464839667753829417785258063631709415452255574336475629581434092375032191305870546568792021159310600779280651030514938284731473270663651596547427666266263586986195234304496854297355906215382624851263255821266209848415608512950252298843359897139727875008651425766017478149241748977130136930128807813613725159642780921043648361215102914110549000508226829043512337630454244927085026866002379474551131910772980432421304448401558576525422690580697243785123021658356458726677093299983124810935678476510910272781511940703539809366420172107669514054869573154933237152353386638017573302492162411507883290293922708671402390195326795105830911783861852633801099265839029189505041963568676179035432849054047512535856889856341102078760252244540788561418633739068284951702621771644494004383336191048791679840082992298452979662972567294632398659196756589311805800799572755326057198705861392781123222985272728014755493638902550317033237467210848683541896020834736518867526515432927651374827595651579219803439854197483448853649530075794582829530999333742330782861914643255886271202437096623654011249159239969847395679346237227668677341832120525888823398282801846653548369383922182035756980545734786580125487385738494560938614061449721026178166693094374595731530258487284874647057019519116827509485733177972230015593320203564735625553596468573422964783650012284769220416801071369682910292129567571760117144501052772646426719034222208276483212100555658960916265682438569355526222611847943507733772843461033060652550695567280289522313232683231094640743176102370413505068665362470798555585675444786628266247009794834883459688329880766053189816478832806231380545491804617899684857537407627244778676424737348124047694343263705091749166028074617358417734639668961192876436255811181901890818603249643324261849057441964700108900253154030438832394302855955598036097547743799701225893273578625555946497886883883118544804957927624279901275940559603087510778063318510787808981960988629293450897516474193746044899778106892800853876228089849029892872853216604904931808556477112878923086894282396870723116413693323644943635610893783758231402291910804123007183723814979124836880464265507331859513934352795567610468444512525149257731282892464880005111658948287483989097920939723334318977559317364129397347905184680551806408693260305698148092850374779971322187271386722133741634610163759886666886905099290531368046858365350855557253137435651953325702975967957100783626104674940613058525140869510882248198777330045272290036061611450206873173736553096459412683447811596383706052676815722753937425547343470023035013106062147748036302821971035818235013612367283558345164609032827082461331212201668373734130519651980288161509368092946780842215616959987029695953896595967489519009356252215202412803635849789536592207349069213216857903967281564553130554474269812746303847073336510105205617986871616062864701448002539344880333720830829906080746479349706662626798530317534182402438930254124490669746222011308289030724760126866354404958743394169821424395958654688093986267314490510988214468166535080902270227305419911586193503550976462574604404813489134739330582874782214982543310421075324208938104668044737573930593425153466627977038890666370020771942185041259064494984918735117823336913858570053148528860642431196403001441004065961481192759576423766415846000710655074978728946935743143833717192353359870949988805959711355740861438027065096033366707391508042947027067164761245073227304104458628056482647702153127961921065537531658560699987315701519809114024922674059401098133177340341584310132870446006115743505243145156493263873329713853089604857293923632286794248852235304743017240853374812194571631255696301175492837687092853898794679185711722565395368299400380213640665027802110379194980403021741007097775770694275451917964739905916798232427633416782712478712212196655200781698128761803063166336102525524055918516598691576118227937631544872069815734404054847957613940218247172741661742551703383874683153782683943523504046946879501254420140896521935539511485572306979126942669923817495111201168362763669348313516588244899624593340220310457189553643338394537711835842946397382425111999106036707282641184041737896366483801361399434533614406503430082808270393107207609113727233228823214783729052111459963077026824109979618873593647406718256464620651403933827403264188236386105023074870574892292394718291672988675984111245117793177553351584782130721322420634970157795039052995157844621820694719141603395916959623488381778603066057524672455712011086034298095113036595457950429746766748311025479078949586458373803602534104118938393010182434156542391701578616839181085128720151760411774076937142471202282398407672774477448395446402356622343097323948426576466252663352260521915134111156186539763960156907720872162563619129691536476030422155295701605298318733549604642841968127253975114180398059442259287071486796916011613184778270707693561607491586822981184044614714531223421581736965803445478934469447216977702838212739933202746997589309626562011646720617885208812318829189972027957406320448895122540476285655768921061909279635729121245444390269460941741098027271352523628158782091798026417232512078081918587341818326617251862991853666646684068656983578921018949966544262610527998972078157768647869928072838000456949619074181758611790979570473460394548462229405070110247285676917636444688555445965169770628214892364723456389939169667055624702778377215222238605248960089521574606171440825297180988640081368436674552242420988340554552977084816008847597479980081623514819617397113850224225654622577314709702549923454151476675542715953521610096031179380553168952248527859540967317014060035756137072476265848949128999168374397861271478212212431310247044379469495208830520128271761919909304493552862217536549673361877004865843760542905455121485111375922932537038350559872301072003898617700148509568118044222241840721308742702858059142479294294651216478033814034738687980219707561592975873305943630634624317978358694361633608154897480149630369770201835647561437335976767659244281437365837045119757933239905677351336850503150269665132157174160422460974588890313073153759019982520435000932648437284202874651123998822938009609998134081656740340275852320611887995303415772704038557518496419499410908396302376927444605429459006984119967886473493449888972603244867856998874112557559459420340658570918653184730280840919910889092848197881832456063970819066530509951603795678309924910841208129739881721199246930686112858570335224500922383990983905725558199531657187401551948000583045814277772017680612445289242723714293453254844932942336611006515639633547692054278653701451504315675151683056650866458749789035141146090083469752258403974622497424680971105043305516127634625754823982737564678986909056329559637977621161244100365752456574891040814025926331107909089405409495712398750811055200390895476932274073195601033503275812888024915348289344015065842622291757382612046186752510046410280049534443536354270080021617095550337588745200422390416121224470064695470753245841224656814962863525440705054218970523927266107224722578981356897050526939325283432744326550907069574008207388450455391803945031120466951652801662384068990904608164443412243501966369530760150995951705156946729657474387333468892839332549046968031313414019729226530668778850759055069773574258914317267001041760032020461337200088867125414764193147397175857651256753505574228276503521740599225309049370145194080639911075989412832060800114744922849709336036062984605244876132580528198943855141948576820034161237459185448822440455911098459765137723988801640784007145121799631004416865961944634482027720620506689504015732601032866949851557167149639579689252045629640411418078212397170595876588403845467355198302900337407436934621408176342152249454532784285874368260684811515232142565355085094210432433991650203953609099986331245085706864362844605415856174736620125088511241116398520850765012210154740333134572630543808672964944877590619154636761875198592591991093569742007443082494792425172103418183023569900645504243506573931650719607163220547878904747062516344705744118965063205463139322955018752377293818755404354923243931776592929861179017781404156424941715810816163312588862279578382045736890611767592656982746489537067361269498003927853214861059844867717998830401143049831559313085370737981692133365472661813866884282130127835402108162362238190401846985799965932297011277550113310250526744594219694020967991253676210249689672965072314179959457688032889201895877960284082410712424537238769856222271022540322980364584890975127104283273046611378579634183327082010589824231212480006821702219681910075390764861174014357223076913693563615198707633978224279725147468979116961330332520361322780483812177530943588781295929807761781867487907887691002723757551959735801251036402996304486303329207017509935666603358055133032106488190159570607619496155563057791350397899765138925582429868170463586434067438107780753557814934745416370511973961035769328779972723086440810256317677652151963316691669966131336774278711594493255939139248538746017758380191888274788811767211287286430269696138200347419304502889137910622388292957797937637061593298944416791326938110262938193977788089771253799224012039863776508686486250488855499212460715180321962850820342350796345079209249616145495219658540171829701829467599837546260654864137952183646383484482898698547887904122337508865681470554100382717327629863236139821181060052726002143505925412980547076371028212923161780352524319114688330635579575146647519344854370167183148052914799908358231035159486948747742586776500295041317660808727339104605597656776329113260103992493555444389513640054321841348604797549907663572821714491195666996505909774713854749063328918052427106645424224717469264504615744040930872766566375856443280406002913679452840353609235537578069357985240021723246480570511353597587215706121565390926210309044381483738861637768583925727862485741571629514235966280460115011968457680551235321614805012546946767896883445251311594136843215065463749406725831964931606133111038195093138564344435913788434109724502496135849289512097333225278192126759193134834702844602966819001200761003360218846944586615910944537549199720287476021759510080894135145920014603427811534781815402441118171052381231813683858603459079127291270312453050492431245072642009565356019396566955315199506631968043112021475127949550917510125827669185027838808921473227773867968095556964520136145156011253473731850552086630964042878844105623868534156543067448859611066234650632134796302001675424616018607001057806296569883358629254881718397615504622286175771230942959890379693132108725467702826166706710874000883139533935855490487528041069787111822069238294504869591695360026713903350255025122053612644997310706241493120802303496453133982487464180554841891034595155337809336044331404641244235183158474007208024097591239888106966850706908301526066535194099840780831787825194944667972500345283781631866712655148811231328766790377310233474388790238349066804000556891036027437346571729850595731041547111544121468289258564768997692461142168764178920996661929500442343923065635300595484341487379557902539338676456984017122932309767608262698897006353794891081144452094563367436778420061713109499937524496462604509414793427822437441584564401748169490528044545457297906748434557533167895800095195096351217515071909498140944414969531713395653038891495513028279895887132047220426691735169186517807499987264444058939002625819717253163976340566238515844838018201157404059944959992217216278034111344500448016625110502428048857557841942943479009608799624804348397037371354567593650178954377715291642169197482216239663676501521256658453691251169012287302559836820341609784104349601988292312204567904736146263484637148509694244451465075984878718674415871837443111462891955946784404005841093040837782106686530660953510608180134948237030374300771904218858769857173294456420434564193722776011223113465678286711631871486204869655885747045922187452256572527673482946628175729286890122393353616077165155974416158427385244534416668723319869818283672143475422915259870142047021758596553348953228598024733954469950306521578260138873618935672742554035242405807155612062596940620485038072332699751732015177999562969278729773252835673473416727296980347524040476122781819501278440668729467753399006242950052005106035600705613027589128515795503994155987258577494594469466633525257962525469446944396572846594755772967328321824999720438098365558926429823029661597932721972735284343414249559755759697972318042348817249411165341205453507070235164927346103166171231998400020925636515950845199585993124192482668737926595386702603287625451036689677553301231748040494968242491164116210236197156370790097230778303116918898866012370206903048541228923618178483776820950273188592410182634461877482856091686362298138657880267475828274905491736687586181020540577558145021593007358877481943839794191222668932097317672632872012679883163812389238962807037476634192976305870456333647705664826007551600366657146519007584010817008846209675401050941601900092848185968189423508024183225172257282004654155073961249919112514622821093772747638280351990514413479309921110652821386372467351747662429495495904618445572957005258833415385378353605290480754669199608494574199794054891865265473328520169598593986134315470213582251027265179849154572110991363182415811635093457031587952205996791274545741837691229928192836934350851406359097761437162570138796938976878890204104034675816299383526056284282595069954860088013376520905419893773409989691261320853762553267240505807605242473597914493998413892341157154012859879910061080619997591243856541023312177543989083053357427261352931112692120119077993313422641251575283162439865970183135884014337050648852941876996220636704277252043538270982372332891776565109099218846920787624629058028283563501097873726519923279972936669252280053866303915674304293552430441088126622503525817717862403570169065979496299877552677074221623049410031207309824984496730035921168316107671314097461618815014864512212748072968723101109316477186410230348050477812161274470076151475703081796752081814150118934718854252159632213114281127111875248851303876721581306125663440469664064427595249469837451443837174206278057068871208607768453435890544902833064514410032185942043640856705606612990314730391016294467388179480825803736421883846360934590022342874090103565824442139514823270129901338048147176962673705374953833138947708776204711478780869078038483999264523673292993641745418672266339257926338830356180192123750765176923755111501538521411683034390699653032667907094558138953294403928331272823648275373577701898574038872115568087499555743241353210615153660060984950762923640692057318535229944075789983258219630720691304695604196896490785927638651694820854695678105356964341450582325820927435472494386677570490165850981453789611088291115981565791211111556664989108085159360856382647272096863117128158393828770412799619517295153599163930341945750124366931548232026379826210440234970039457240452984002118062777911121143962317208941449548107840293687867657387893164422198339072606081414360978743765449254823530556914541102568257178636356354785902325885389196002833518758170435948327309697109671273914321560436486114246643466529648186465665334456105288416245488942674936315720437283754993846522819583612860713220142407470759633838630656999935519305100912616260363547641822716089177847673213030777413127240763600638018820393323453337700532464568548194726583474823730421272930307875176664278888182149940715940031135949257443010679523788692411100092208111254288183641782147447229043622883711201709631239067374780332634337952598563228749201506767842500527439368693879639250275348085380757237873105150469109493151881065339072292050238635580753269753780810322492540602548086313006941529540897535706923829000255331205531992166784932347220506582288767375359281892685237770547308703228347724555359819991957261807992794394017875708776850951856682634735137225877094654067449865606230470786219787396244504576475129490294688991618851375462601308026461992890200555506382754915157526309602852279845465630876228051727006630389308541101453117191516183463486011319808519536292771631816476094762264130596788900419140630263932425664415182118501839515095818311044932743680922838829780451403540883680276652503123727430497283486676306655289051302477853614780495841914354332860346751802741592436679433881502281814472042699806971594210870704539743539859324192733219619005632833077386947884097785091933972046178858287180018048633358326495479723261188812088225566776049275847894620142628197795960283814036782965565832771683641333070062603874493569276204748284959892557587432746930813826547266342121273016052507310428100019039608939703047991513808668895797182773960804623948216386098075865708904219533167704126700757506703095075648534265963284703272729126324087068553823227632160152674868299398711986023132367342674341150200241165447846938520378689447322754748436401427596486190762158110914636972152728819010846709108273630317639006039585119913547512133029183482022284588136961303988195526421859992656812793063317095548213727061173666889450500621042168092278978724719613626686354137793620287986837135756295913799068047707014292816797239041040469468762487014496094964628551117740998861914160403271456341640960139102082812375289866989139918716615950944634806962420532738986440138689220088908971208283153695948745768350382883755324258435797651288486306531071707313924656472802343708152528381327326918187638083187303223308079490835687547982971801484890057146325386475243825980597278173525489709267042845100872067554114084369298035724970260182944568186391468944892175912326437448181635959755770938668838066294724156804020023468226787765927920214874274064694200985576289299746770591539343644143440414551001567553183147671784779803537566980286253322273258717895343333682967591708221184020447135172304143081222655165315717239416869459031902285997648448532885685955593813032819918657722983977722571560404410323473670922176326579511758730067079490702819655402844173910663596141420106737781491130216857172457615118826637118917528598664906617302396805787970979973085112770826504147100543804824421859199342026082984418879520412526305366760759328506881387606699522688502603415315898929641294835519380796613191734733140533720326107208665084192710162893759911470196078608256967926244470474422491311848024644639266063832961904065425390255612241154046007769396715274471327526528819119564469676197196465487995079323847563156393359231602449369868343765214039955462355731196031564664813269246617699141242257514808137183705274022888001203792137403524674851626781053499281703316696602844577539688667342915578365519563152577229191955670414147298766878774490948932374992947760980399827177031351397563246252430938547131983591657567066470266676416077790701791890887688240401368748519299537823032695288193338206652194398371302119451148828906343226459070338752367166133012048373188214103686473160094268486978194802273973570200166076720202561488299279955787480223855352857471059473927201320774940557388144554079647438774266556445418103532991436579221973828678080112515703354305929180267646779236615607971842390294356887824074782573193439272531749728593411817326570224595050994616616848846662768617105839742003284190266644280864607263721702527402667849974460833331398125386306904698232610114234483308814274762867036920444293487446592400818485739102825055806523086663017928024053782155249124869248421084906566934960742923086403349243290141465734215447952263822007041022177751474601096710376650611149572066442690756094105979930486048678868885169535690942060334927627036192827792346469026503938607450738987802807669470198891968451040883327193408349113570946338880079033500892623124484769355692728863613836234617691399347013154861573881020323638589803013510374247767668048439908759734464023045744590827109472991031949473941604591915494677733347381127078120705168680977190394365935448437955837516920111150801703246659463657533105816416078280382068002399920991645350838680804632969305387270007220219740470674267275716888308616006414659828020925963715429589279654542169859905340852563335543814523724095056462259144334065724467483747994558239230969740502506504997349864239479418698847589083920052728645715802592609229059098854815000677130921080789073617979911207776902418394705669841945794589333051845159566475441924441044460942263977829087249310800004662107419222864931941549067415683716350130786473559380759536792750997085452290138058169754634053687300498717551986279068854391984162867213722561552686886363718902989093979963392272381305050047850751434773466898389104310498773803674281210913424265531356157088848779746683910543246893792130557015670072290846849045005571953224378636184838217947727761886463612381097106025489733271265601732425727804586062975083581630866435739635637615363939662485688217814222935245432167309376302259516647709667955948170663130224372753362781295235042613478998138047698964005838372345956676218998938013568482564379597245800196760956901443739982663209817922142431583525383765816182847704444512888666539183853491330489615066833131544735480852602683073400386837341743200814831744432721684426121976839660419813494538362290445926801495902234811874937183552373736864145220491301493662204041744400078210241953906673811369546938926266464843304160984775456602156159282925072864105079327958777808444930507434403093736008406704641899356536100067929275758382553416169738820238286676512326326864097457780411155771764990217148806551899166898043826506740286348644795009724384585783192897409888645917841124746738188863781875860826689587997056750669805029899969405517741369504860106531017523842908540840712311269543557429662946102963989815401144335848757805067892375141872478197590399138693832489453417234578939150160107692416492935761197233130197350596926686699681181886228393566405525462938865034026238676350235392247506706239895316857133019442728558730617315425212228698812275832290122364301234276674558280232218859976798484447276949226544599371650179263488018872177814219666831604718409374893268977739584739609621652217765622153941922854108789038920655977453000955999073658181258819374713504181528356108310232168641757561755605686435486901846844982154631361537440354611152697658308783510007726746144993565624974690283514490220624441618678712740934125732789237004836539189943281120871092090797869553361681631793145262533907915433547316307328493558289055800479766581238406319474960048372317338308964915413336294418787009469502560566217362547937650360336694248536141810176507441726150148747314235168392441285132577646263667611793248836650875061428936157789979999911318123675146924140060367553683274695114598161568197929573537756619530705154800295196687433908943924496822379332330141996037361067865520106025728212279858917177297413151690180314127187978240547966858444961329785480447961938414070936105024756483644373587817205942313410394424149666962653914204244690371019804448204982208371850210721177628303170180094629638952728607352378965659956856815225704527462782590032013478882031539841182872474592750581023283351569210045034347272068829933356909999169128498380786634671064235704847775989002800642250091972713103693457407225917413549381784902654217102865506045909451031278383896885467070742171242886953407884470934914466134891199121806491401765053368697953517449192865298811556473412939441786714745022724510109245453905969850411875566567639718206966498851704685197951071387905388087521156256484727504416255320484429980339950447308502760896885415840411826889010918942950571450988635979699911758836987180804960435527149131632533398660332682867539744839998986001281380266102008574665229234191183579068913228516991345784978302373699380905808959476497763254754897179318967901923816927379448864548572446244987959851975841604978173842792620846340792244615754664972066859151892571681885682559816946961300801974337699223404569179768376467234081989629032622794314752377735096269338217261458488742604596714592091322820128090922011870115212655250673836905985881518490274590169150852124787386958153682939510870139841164340129113645105079120025539400967241696117199581691431184150948434597645766191912776342744649187756351915386651893312546231630313044515429855567034777130947675762952461726274297686072919039765008657356516179110507722309527645572636808879752837021523876074903275371499472131500121119837073968722457925345533427226328015524676431621292409851052823208666181931689899003618027667168578394343696761627873445950389069835043219205413944438543582603000359335509372898449242490234216009927325773515745784588203952031764441433408246416372454174806274847546803784015326485500501838480694665873116664909338445481954591836344013191254127225886517940086601786493843788316483832736985709353817095883486059275990871557607181913131706075756720131876968617600811373333525448407677003005337101877464760926503397322824067718618004875326748962867821549721367945517733676450025136745004409325446991881854138606694080701549082757615874218375450125460693812308715393182459869304298962064658201669728752166271326140480372181551939682204569916675697858428891926624827674058892858647469758383098348494614072537699128756561561301896314874483240001364247198340494226257019581563435185336972496434255887266702837633716904237409771845361636781937387823025178357009361735470374960114788757817589189147457573355163124927276596113336803682509564802683239096077494415228088220773977958910469305366904778352223083682287694856279748616657203964775180216396186922462481233211957569793929713521418323930632892759062051997325033385266369537437641702213072978811748780544229453611659066126332757344578594935848138291829145667501409328058221258711844452164181646903958016561616740555656875514392625029545533628021038856406783112078984503613679116860371090674564796453089379239168311741346568441117465934493400423034191860918115887233531232914788899149406820236635997614065172503565683389956218588032429874026809892834666670552078289151846010855887552110693421833608775390195410026792944230350890226526053095894737578998290507070738406214691811679524692825439225160573914200670744649824078518800268867535857860457903698596832232629268497934150300034380202556365052141438408637386160382295097199961592745167248902373181889337035903980511894695118527559487290912077856273739329921620453970488922504530957443635344305210088640011272036262745013020291677026151503073715678619583869483526422567541126804265321523183823203754506636157211352944026615170281511388154625866086937993652443532531058228278599779368421651095573984970829520861032309529913177808553841577159019719087801676415287246167250370872807063361293892705360805294788840471249532304166503127590602175721872612369036652954903032441321461390345950874318864238203677186313219335000807943518998667199643539995091482763587080261720132741312920136608288939543285013319050566003608791018285606796055343750920184944214331061560276233699729094938514416689762262861178698216067956797659967884152894327005137151178549546885097398036803640184428433313340003284204873476528471219386566668600880292536701784365005409811366438498729347596604449503154101099073180040997122435005466729121644534052424815668105038855812601907961631501985791640626107674765547589515731614409363384186087265283211219594156575993823838626828059859155255398831118764459274406659169592104703431537818275406237146689150456532111934596728199230204953885528055933762362236377196623235698259903968374032344777464142624448135935694473354581381250001228937692847754025806843342171086365694407565836315054711607242247760201415290454975273588753956352149710337941276210657468059686310087434159473051416075278352147507853267267834619425731109365152627338536150594592425885962815596177510374242892552594959750439688170706838522865066708834387795698415771628562917657338874326580287514261556891580952000821421291140670359699296516675042002245130505013656080191454886089270000228155339180398447589236975229608502164047118569615113049739468452231666660469944194208236591032434335189064819678813033684751918690711328298864957419494673199895579604245716879469672798991118097399113175117336551116680268799232541395238594728705689143599474771877415848330797646004336633982205917899126953737846760124814146039455803465122777624034437904639036738712762931271370151086137776117683102891773281709003992976925800208305791770037573345013366324412971934909055310612691498388077095059978321703680365990903119888789919425541560652787215746223107063581545189315457931565970951504598432587527197917970710340786774667754769214569181930558714872317199358968529512268673634207060221772818441144727513269937195522943382174416388059106308285878652994472162568632366647923178070483606551103758656183142684138854106171773708433754149252959198553068370979939014888191176522866490103263549484433931196749049940851324857935150786270325731443415844915606214345887631556614800903594767831999785694310834872260499023331441469438219337754329403005444090198046727394763196706754179778581015073485372029583732684072444905089999817510175718138114131204551145673573558345768180132037372310463839390407937950069333564072793227221719059744138773861279104347690892177220242748146520314013763998670579383727907095239830390474866922439313833080443211379157706581950205560870707154922121563619777297201013012828940414962935142045414212615016675366110834891876322385228047665192827558039689057779587728098286012218176388449451096310242372044897284569314707062725310886295787211989623308376280926501078814411922880111994581767199289051548118177112155872000511302660819876092381763151553125097419127645766048281303428752574559168745305218155911912568021993287677188590234555468722483636990403720093918445458238210362440555959993399997629847799355389337738704397771867002872555002499004773510516236784639209331493720666879472987694974216603027336486205081091950391395258211007521088129694398019788742994773152910025067698172737959882365118545671168692571311120693784459346178810557884761408790904154445997087022472628324435881901173727296775517775493845465041328647836762861185509331148178557866012228239953962343420543152818209510105932164214767242431091343621229329685789075292462084956731832332810241839919628523058257474408262124170021845080376658008787746513625818246903910662396247350437443677918318419533376738099188572101502819307531535504699548945065843210220915672774560254078404232996370840672059476404663122445130178906219795263560844790048982480305855085610256850540565444024837546101553554831444986418421567422264025977517770546742968077581061202754051230594507657177700536341615565091171815147034975400649474007389660985715270757308593600409579228876284657214027391310541185507344756873034671516726890552850457330312281488312056004916691374513778831102885484437789418530421910674222604161550169285655669451481229607647134444451853829290356028863929929695264856535583217148372931133828179425043154592726483749308104779079855813959748976023550058776333336755644103128184450402699358253647440726005930711030014697279022701915057571200944027958689626164399300792773522834353168668606984672032548735852609621888477853374232433504018050019407230412149240861673952641855015380722721867501889573318925211388977394438817038936444940320887689110445263580778606791319620529392379006946056289961478132112066813717678353513173677272331448418343998759741173521498298702370373862391946678744254864664667601190035775644608102867755877276403524905719273117196540223494127326552363899910340291341933302891444988338525774033670165630889849939124856510919975213166485492842957372655528648429040807870172034051140050719885289949262695497029390709123341516906635609977574387680111297618445111234360122709722220480547974837424733562387221575948811846393355322350592512659286647318576691783019458596659991847055760540068970392514588532881874409551347687732009370887577891638263716591421618100857114526030458993062415526632483625167706490888826684201369149374690062823715574121747303206122672510525930993050764700490146176868630641215323222566285682682945296539492757947643342713760472756742917778685516538024126436972623297655270286387269201951321297786222233558884290022713631369802844264871269988312376482872810225684070402950315174012051035549822021001184892829242513426172740147911431542925551003447185041864464574690464083741879953637281985144289781056877991540939500370568951475686710753374443549747045655658768315723445348937453597709791424417363966235392856884139486294829336208961544434597736534678861290413743662012647979291250407206784766629242635962524980368177372945103277551249547906493558057878125223707387972960724619287536925401789763864333289007754557966089600681612670070533940090940045254989675802802078740114722666773484261519159798110931107518598809725928708401363404323432394565615684529563151251591350469095402499486651401466702750148419647550067966621874287686237716556495460401701999887939056415619615237561102094791507542208164925252136160043816507487275267458556801656676418734601446075747120497925978389923108147112262096541387658672312374150939289555104151080660638406537835640902507965971302599709950734683455580305469455503953172410137799279207532368758935723078930769479157782577687590058904266101260877175216159921701933485763113513262382702527068765674676252972771665462446769709791129948561016990351209478264497091987152316791897750763440665795147025334366432320373273876933869935303234309106874998772675559790745431765316990397061610768668439008023526067998303157855666596099601326133075255081147123960785852954268734878635883383873672054654691569827044206812484570051549098438428258852333605872171752262250373050848691572584064047993219745007586775604804840300935190532653799861035610817056535850120197890521999642887333012118056358607435701696790595789630243410629846496668225330876964202216398170054407200749764637701402068595895679945997017609928894580574207325901115520753157346179961029919554572975507537499469742190125489052873757048605017236536031627220108852109899480450620252328187360186505401512625946617122631456684569569711646265547599704219918347857638843959412663876563517161384800315515785159505530327917409700692143860440711840571746188215654538001221570028807637634669231385824479008020955087395296201616710001782636823358807848337970771735917211053695867864097499252706279431250978739195327957703222123667485796091885696961516582927009417083493804527103183733102864613205378532344413828897306004839761145570474865481136297846532509274073455871865525968262731854559088155449770638460326797295191527819020884333556443573940758424589463383336255712376028788813730740295109258405538674491028757654843589409467548459901538038404106820400388071969053956086001080208381292048293524913993619280353633507671972965157201302342672301402631349249589849346940138846791090085626746490252789545999711496768355691716836708943339703336812968352991888297454014774686888644369194360856238620644581611772346410170229002233753712569585612616820614158752528407760121798985532139635614600642191978333049942154260674610733039055535189986197064247321449350779242566605565414208932430061797933300289657187154868427427706459759316048836909561696501056410564471955662264894911523278991315630595954234498979819468257933815396673803468245130486913208062712451397653006660141214775391258296603637450891573967516578740618194834773292020682031249301269554630449508994386270564675850029313276311205664866688751501694198227139614224931659294385779332378139952646133470158659769904861643576915381681934785535935352798694377943772635930663780907135118653095301440594021748496438882823163569906549413687737805965265846769040517979686439277275286877643165368282755241869473637107337848859371769612358096299806876284163136447755174357569569128691087102577356961299703677490590122953532207732480334465966378641504294109408432655366388200815944720554290233239883154461739168824957375169295813537854789589522842757182514883328596477368089042225567925121065555531664917289538148474840808234736933415305058475614241484692802339878728655849166447381364273129258612772610049797661531679474703071407270395730095549401786234510461277859127486669788717049294507866569734139504262666876820876910658681592808962959791250281386067142534450021352886050294975016498387620410628390411149071382465472902087758729269359836553342221369696223717647786033030681931426402379667949573398621832167769190999020370854348648216474529053802196476158918762567398861480910473880374379007372905124330626676910161770198742439478868577837167336250920685142354341590465969414447843504711286029625063234285551078063861836450829055348323798132238589246791967412670592128284195646690472929929863745043755270365342839215508618953512247057629060301042172630658484196485697026350805207925578540340763792285231124525470852260367029663171468617792267219748087912629947290690501389414970001344407816298920110528146869858013906519333484271710497336244461890130681679725841126200596064061017065546728458921023372721068853729046650244395012786211928265445302095605499974078781224343260390381233734460399817721211651022968725044433163615301233087934810361259204572208810584892574721626826192530827753364159744686696501292372149135638791610145987360021094725690982633027691923377168216852818591231404793425005453004666550891330642237829699866457742549487983668308790111394222528034230190287156962111839189263116212489046770418748441289552179659414274609735092648506286339351784729725064787720583554812947916971019485309175137882273042412475181476540069117279868533577109515288959862948403813729761138695188370792254012226456594387648596825739075664013407288807956474924323227187655240492981709693202164019637716776058491271412342676396881003540623827435151688240808445485546305796254964212381987759902300513137632310178369121124714635602130662743700756573681994978553241924900617417199000457749705786076969005291157208806896981567399185506449193318793111802047772362623946274238486449645339811683423448464946350441133433373727579468506304913336826095146716481976467124303311814419792308837670773896493009354960426641886429073811547351523090678913824946354024933317033756311684679043381301217888941050453082766339592282326798968088745715993584008393303729033342407580027171199510958237725395820656453738236798594237602978497049099306546779967712460550871013764959084072855614279668788771106899513929036169421126654955671799660061410190689738195699736792480795581674438542765799697018574173718866073896431865719666133118352552576319308792253211934498014734954274564371818308679670091300519793297181685027311617582149374907415224545741941076105580960109643428694722638128495594657703334069425881964650667656685414861322393539631911579624060416853513968029566514707314349859093640058846043589809855455427706342856317352551031693319256631892843912207454325843082340865060093504266976804808585372139300803774527229842380436937209478595520873900642139203046078234941513212567231397206391100250555621801497007901737726590882501427168059801448384666306237156504180847903865172822256540051413418751918578829175890379401787887214062822886094989941180641153293435767345038922465245318572013028679564054749953763920691270724943815837082410076941230551672948392263551066740184490464183459808506895112601518533095382568566229547818343535376721445087998792407508468834125995756667507749956902571333118493110085858622327628867309107900655640589968099965687102986771768455251617093188396495918510254571214162007825291485529112159667123329311681714230615118625646299647943218593935456638483418930413359649562985842914681766101687893623819202007014611415282701325366144504153153117516063894069210286278822872828699147398872891510900132271666495935249020489066485312486562080370232902541523999247755384263940447712615470651023344874813613240596066936347550795966015660833411689639862380484330236917939413739557958812461480365167795389523964844706108566052745027721880211639501493181399408790709169817260442147218737072180051657607538015719805498767922147311970489171458599808607714852193069455722413722619589028956593312081069991610282436333643349136124148787025290779462861046525146783919551195800287461162784607565918542362101455573757574699782926287494304538219799119281255258065253458586263424010388297320157276338961910040409774655694970748920128547569447024586613393558587480761920736205137104192024561256779716943637229204154659050084913429569732970617580606340950629161929376075285905636958224137015597216118396480752698880005744385103574320599933288280470296539160513579645151903659220640476548568015261182362902311065081796559419400793844709695063794402684127691324387869873863541524748287241849364092055544266729636895284852713832791679194767562212293535171249456603265002587003028754099340917268209680083024831034171206838240842320354669833943967489667140476684532606214288277069113346099772259497418374021281247564898781713773114597897193191248435565764027911496064412924091818267063635609143231528754376643970624537244271079405060494360702747972913553765889841571839189831549595911231021801107231832577203420841627809847422847010271145413568312384353426218326787379596799407975943100784587718516202892238040597197195387682654573150438663718842346171000081184889446697372931200106725234467201159886372156929823896939976632154071564806605368096746681267388553516773333104735671363772347248763111204526354091955226987076883069036638511315353858591556855600802395027066639297527486518048462139336706828314491373548959750902956005963550838183471788150181149454679668941891321339448036143959254148425186421745902617027240876809632074509568706872877480267068973195889529071656896641118543034535506159269661623946218131648629946762325437834554213986392742642850815371481354332093063348467018460940593964136332589435876595872061361023318537625574628857504496996268721571251107750194572014610169310227239629559997558913834593178370799000807113545567441277296313266199169011807522493073050368640354575680325844734459870074132174676966816991537079151616812400247662723295495330446199501955719930917351551443321222459606084461367157123910492338995526422169124889876993868665852239754126458659520203530778351807019649178910048645718816693506552623507031229199702272747859636355130419559305045563064656266139620595353592026389418617430674002981407308367047616408165527144405804457852244075905474079350228099693681927466725486835425446113452082207604854179657126864597662259984421422346036806535410868434250139814362574722803624861319682475665584576632383540690814726830626463879400283243900761633972583724113444029583821031542335077330427651539016543782158733826693680479528044395427941815618157314243912786955983714333494555153954046918933899530838055370875122872589821007940006301024357217466663826254252205596971080392335063865271488485756523694754302986949581472759232076876360999914363505916905495902207141186466288328566933605295526796650188351562657806094092764802573972699512587851334159922500873153713843497355208523173382312183710620507872529328607787591252124996306923097784857285925039863950626857665596546606064918334752217466604786563651964609540254047472381225839730898649185402303523018765911449291952340491655790870861545411659681597887643115540377605175280678069402674016106466327283826874526457522746880089491429056696928157469635469919237443494340801092737229056070105513054571147359353346887413849709877794629935969708883586680547820166657044251865367473685530102054599243479730850033943708228257586655397402222260358755981043050959606318411733814381034778458482025761414574212072271189732677891629445321345618529175588387802858105411812860302294423220852291938535938965288536409827676092423977503493124215116803634910667750362087713008886897830896676285605680962897313075386475101197724795627930757331700985927906073176877169104599577733835516136271884206187749706357779999127398233875530853464174073717790078710210322833092905801726060205814668010627820790025953831635855972009713632078697962556773174369369589187819292524701891264892662605570775965999736170455570803540848998237203752520100421405898315467111144398156900287349014652286492339464833191091204509248825073395190694227883856028622515309389856724186347934831709045635602818610267672221770194068622239362804574292754688396401682850180550388461042204005051883259660737710553137609361200524300336031052252602211211382382135853032342391220838195110741651137073405138883637368154401427261763241731489119552834306517798018457082751720903179706342299471271550310340390646933395033675835927935495537149286348276644429487044765597480128050110015047666194821693277631122596478056722588843767010365493082217386135377321752397108015517584010361443343945190870904833560197562205279089541438191472048351605239359428613457685185486322122913064924870404931113455810096183076040012693568377018346334240929242134467852421749374130991191973846614970836463577290623281857375871501253684335815487429925504412838715244446957055649602968016789523106196687890960631574784249677881004524428456332515090508797916278157291245394831539693140735769638935727345369700281394983856709247213857845665680952568199462017065667709834482720716401114605444523689494205030228366197157284446193807630240521292246235364750672911245234036812266966449535143928013765510373318091306021662072828099578987208209456084672821427136288834431890765085523143710545720549691587280465638238612916370981846637870346485356020263974837945989844502907084576511017308748700245906825519292759184131329559660908130197910064556828436523549737047983150128617140651711552469794008663273270233383155362244550773650373353551193934869966298044402952375082303117366528466220231634418774044573425686061319815269542947252790676013719505439652041831356153143463558075301038006908540339420167497880988360992581746321571554476983607613283504306803690003829451570956234492299209340715706712113619609871265816117187425765780605214966016625852293574458509516337747467056041725941329085902987073094805040235415984313407636523826073960645330211612969232569740066012200155974403073662403804200523212879270690056838950788717158232099241755865632157249396464109895257343251268786967261037717540743823096827702452370981434211713320973488571671019948780612561449317818843679534791987408802399002451046740911464256436857526803382643772946000474471873616748532239098771151959054598146059511117527870559616335415482890991726416741487136307052315910144826101762205913874840610780665772714044697997658431992570837954357644472519809135220924465119409012036966961915284179484314933156723040922280547119256831922009007037174472303869261451733220729421995518026726764862707273989013824204372571660746008226155550643304733176878838811069728258140897436626170418360323136483388458414756221966410191017056929405492620281176743841560913485521701837076062605798934093691427936870061154416825643245051794456723828724317023613563224939839106255235147865429333313374722912416115549052530841493456061464868639324296209600526013517566576391666860651713486060511748940183430618771815547823978019763041102300135861558334965878897654649619745899320534561489812731076903960211412513786928548361355911983945647176291913118050539836003344523151084979478028159852600869189115271276909823897295234704794780005698605558675259682941340387267203884584949649825778643898140688953333342865983950956080100486209152670003393891846747349222419624193670738270633727856963563468923023410213557563374674490023014180691159076281967879818380457839173899044870133772424570218877018568800406517964783379975562450017871016213770368419773583792479883932130988358022293909970199829693756029792775198566934296900559625535806313714463881121284790260404317016419767600690852014689867355965026146213699222046532259608029686605206521663957173066535780288417931257084709110548521630946193753233678326846874443492390174090465240083174850762941449059396587354496050670148592277330984376864611021416187664155414614566617269432292730640383487066774816483694450540278624521531107832101067584154987133775465686651522309722607928796812519476336507550415489728261124402780912312959873364451017116165501014374562148064487633438251417970479181858046436337305905912181047830244438383396975516642375987162263833341029483047533823755595217354459496653566283019334939134578143072723187376997630058438403243251868244974605420497091407342955600460850412732367271279007122596621526032340612711082288523463852986935317244072537164402552086961749803200224881750555505622109800905442686439305019827420763423737901734081808646909786409771478698048259301673437274561848669488364220013983527550759336784219848919116951353432549287650899296162538257696715175235691510333472358383352509930430452389301616071390065402383683171640792993764747876942226139314990135163097012203844759911544553576343852771731346008761089526465346442783965000635703796611410478587740991451950069875721450155635440385695714660132179371381873737852274008684489522755176253211605391291190981188676646819334278587047106825967861294319711178906199743603171209479590194371283460482678739461677025259123128543024146553604691907003858358420315737972360297813310301149677950349236714192550188720904035742841109540838363978953208525409282941880814490535689203712227010459104539297439761632935417175371463054049044583784807526332096647382372270423318158346378012382537450062199797686571134243234703752816495136164654460184478808827008433949437253897385544514238002379924000560752117678644317725013424859745133861188933573239962511595853994714768701510310006534396503713274469749172000785845574871555865351612072029026928114678501033687636560829886730585534822635902439194392480652306812853643149621479386708016815698789040232959558600228600539420096959040888098945505902836871275005856638280721914243598172039175572853236808091260465188828059333808702388181611585455310658366967323663654194838097516754166645865441298442325445761916659212741485835655658052427328918216710176400602519427531684218698348869127778478585487539312828515222161682585722292038745511638829758189898346060765240607080172165389058895848928339200675745837519130055934419903908431559317902791782160895642518750867574738484709265956268371682170972456970063540210775670319394040307578761728507344601508772713244667196438027581648154343155337617361522679794307204868723071812322660599581041991998696149039947530918925859082693293544967992463628215143367411483751916316585591996768800939267877924926488490124397712390737071184869605006014982211027091462851160346821643980839166371597069803768646727135591776379612030924378131582320412120245047245748206998494683540533315683842784888979769775973313306737790973162882621255793049975613557253731526999404541955580127588539800542441466758716045046783364179118242628202171695748956584493840616849168046318606746643754743619279393544107306622202435507400366264986242687391520756197085726393161508912659101283901285903122083638954355155056397623308785601719846114712487457164818114473688166849207197490338490151490988953577202085022504350242659982396068054462866876567878159644297843593514507666736814766685689324705669932449005771754184713591076548335219446752896264194400964897221875760548279713425343044402177150690593783544773852934508979695487397516705001526174413933188266704634661629631122360776808873348517332273322720933636182986295603878305110294517151515740816775112548561192834688783729094462828837479815709608619532277128790555260687811254583269341099263245288054999042483729113076257470326326847649605675028503265178987976657817879587540865414109313375667754265542480346839463327757203009031565501671850831430531172758778957818944241465471179821137422901239132373699544854474754883163907657183333757832046696218484878941265459354294323913351863368897076358381385233213169747469345964721099592655444000726074583061447700079547874880763894994842665295911944692797236103558655489696182734578516693162365755616662585098499646405043743773981467504761151019825828372928182138257396052804798679618450790638321520807391374704253464470482118997787869368395909346746351043839169406579901941755367057953378068898408214882903300548115292410177177258047761585216455661420619829198745930781044340369147738656485184688962234880688156043470864184277560588477276845042804840961061814500390128724550660278443489484348375930389000151006386053433847653503675858644248075578556236724525629134503779500588480415723375609835034823066534301272290405854870088968050001529622536532342560247378344176155323327257970317498903174987240482176861525029008641621794652682954271932887882655922707040909603220625003887246581221981580709907882459117058495595467306441704267737409384929404774123282926624450679257850212433550012466018718519994496649245655621856321173221575509436699609928301438215371099943523468734688708386258463597056364950882112519981997497714377646841090551815973047583688708716239745412280596937748146105175119656344027716247065218472847884293880878491773520120392395301258953122772585326051629982817504577722059410954780094167498180483397775859768782296507001722117017253281226559159656157590503668010375110610345678521455675294801280398609990039894449833333730865147742069579699695112856176509094414108326414404272823414781049596036790883821051887584757339211439553045461630330655780127158465843027016277105772610566893020965819486077148016776661192859269660799307862527032992553090254980246932854792023517722416878061915626828639453382878720807982510034961172883506210092180498337240099139857732443380789837685247507957909092950314030090106226301239671382610785438479477942748478076405086583770301459756011882320669832904034524669409600944787856567164371191985555364056689316985109254405053574091762829005866983891842172123998976676626819814058659416571289866426314572879470397181773519529938169523009436296882240210224827675821888526297379956983394982639902788865484894803081020767838758338607773590251672724855093230080975744576844531684646462398036149570971225234666833342788961260845081136197885767018261883788115151447363888998800285071184807923757967586491043332766445983719118977675274382274351583037558783722542103316163538278097862886666126263910949984842549872501487261579120738867461201850327580631158546546395359175065153205847346414488353592304588516529727657663533679179755722507577597381637323247223242346387373156743105314790471835469391927995619709982312275565880069650954328309364740937867264731597798573107243437574700433703147196707168708985055910780267621864281687237542993909878762102554196841100533155530712623321393270016172109603329554029185760753177944186641589682754636087326759834495659497011416484592078662958987609762568821292325214647216636150830474765045704694374452246344592826360862175872989071560133190654960206911411550483768521769668673184167124146366097697550670866740686554143587308112206020563325950719763828955667242041116608156909382056810391558939163783735911937172163238404600641829038446323105849625000287475641261748527525536547385531266910937672470034508171369770529554006032870040683022129237221132901182944394552975528381029365686166812281970203533127280591970900058999157836371090099488288282910649402716402464504812062256707424623219928026696777862141787638229746589491336136871221609186508925773837372398486161534032805372607950080973417947624856136274787336713758734428579952870788146037621849272395548698932686743033831203169585700864273921323168323539238536432049038235433230003233790716227000363715105893494969051909826690560464209850028769404512796432188403312289483839343499103114279546948321432927091576822905797666885160301523356388124091648244282923466809408320106671928980733406892615410804274560041346422022909084728398627375641279038261129780085983115168887308040175486832363335682008196312018927671102024040224209790034825999435297889103554482575474637138950950059827401644198795726713279306380344655336014404672319805975437696600356322472121854658406767608995681653227848585417520818213984856846469930884562754564002905974569803303255999151688140736636187951070011609867900332831629979395106730898720403591348698133731055643220369623374469886811372393595092588985690109416575992643203804005776193074588210146774493004239654573858361460249179281677330716054525932599774712152939041157388039687987167438689803592698158533877767170897614534423438553330288955168151858635179640493371884142907232224493576987563909671206219865128338716391640177978786848577128110235647577760398808349951401548572361333162276367152583556689653238766930812328836313685586522036235203360283159350612708238918514881673903124121205685455137283703343329260057573416640418512077395035552356590022921796109872491410038414693908097351846168705845939360587462438110441820951666141923756285933937025246323887240014146309671168606268503824385451873847705102042676977755782185699672405012622213388645053294989834964859960288668643667119251018804278004087835212525337721452753707083128975904876489622995276514583318087034268602517796615899459274656189649999083054414598180232521926203886815814799662280227047654196934093280423133196579684167672732511229469393957593798383696832921263603826737206618529685159458148635240198605164401187706754291798326059093580532733345859611289694751255980088983393463861906541137369080005040395751220362411393953907005938854861763112110244196748323508093579725186197147871683559310683422242612713632421285350588571009106332496574490707378865052344518048897477020208672072066177769226803973903394660321408968181141876415111403115022627338807028273322824651660711997766651972658702583944708517742424461824839507276409938479808882650745220125437460654575252938203545049148449935149933870771359135583921260461106868025771752163037361503664125459647783959457391621908331484708132168334434315675769818232552107512242629490738591532307009055953767531143978473485333250348334228000544431167506308133299224821280173662488995433663065768419826099081311642446349751253877920327336471969931311903404943029460280118409747936681967918382131226148625654624423166193373149847019995960583466916635676120417562118759920272758541683490158586798333926307641828740136106705530971735921085833165046769954789812181876233445464403811186839341405070910210206847589507639757084305626719140280140777825537973980476454147091038944247316206700065139219999993129077824012241239003654153579362738584740634712677104148800197273493031184945257582239363567986358673602653975103612253735756649067061704495108314453205112922647306936186447658585918572022494106308565940124367596015638089442135576670517235949396851412444822704586630901145026386927063596885089960480410857631673450726192751788351255576512697388358242744569951940909892341768270540358357813773701044898481502878753490326125417363753588629038500055797867711358017429214320171717634553396908377117334023377857131769009669765408746999467512020560632654644074081045350972071857066066436299696540279208148029155520124400187029699488158243578726882960399890649188900957591726824567413165776724142800784563006322007234020079692162091034579981294417898116156153687802827534103492008461378304598389207902525171895270466172049937953721190932717450622698037056357162318524749605386237371438800312498245639155371297255926395991345916699236771841892623391417283454888348321672577608638920248468748262391848534529727156301911251841494470305420125980654848907006065821941562763804860604893063594329878160905114419854400640150779990468962321699672291141834724897725405804737107725394686647974618925756119204964205856414179183979089387286630021836909111724285551784386172719549702170142518455783517606911678219776729850754218805595996714819767360127417813915007334415094374879093273031439201457085684504584778868357022914394025499258418402205072901053949895061991744657704556360090725683282156357358675728973797087102207184500136392899894269374546319418180243100501861325402088343345879724097486737539284181194221717879848489144544206214057586346948332972899865160985367058207088986908520883485502586024623422913749654383453252040297297531999183899318454876979157831836208419620027353352432239823265245388242621690590513698129441405660709144706761701858727286044912589235494197416186129301165831997140191416350660673777123366108138353206442759496491634946318544544613083433509836603715761013379366104988058223884883844562413968463492726340072189351132436135279993649681589646941375239971716845618031512848337650576603601646959627261706584577709149433118798311943643446730864431157292508191274225519045350127070753057843403038706024103486664719609380218389775932765141730922877132485735098607886047572068583908195189714663487177257748777036105665587011253724650230570660576555858677574322325800735651854475873618637849968440467005562205194324369543393036264864875799730385961531194583561839383481913696032021719136078299068956546058030562040866378583749016794928215923564918745257105888658869014391589717074735735927471624258623774006497022635829596931687866630056015144518212864636459828785980127071613615040184825263880735549292650967670566865305771515540815387689653895933689257121369007769568533481144119998102036811203395978166975876866677520558656103319338041260926284747219310396581298208475298318790814424320943119184718104888559461059040294171623561642369120507844765879253693514054786439021731411667182313186593471549825661376471946795243760286287074376220059527920887486539420588732897422764680217675353281223082139681681154002086950405651135872992192856089930553630026221953300661972083966805900420399392758528330253531299955008143970992896096596375102309181073305794596410858900227839599187369505154362711819551620844092469491957379600609766213541544981959739421860288087693204929316858949724528424247893088293175970148574672541981547294941300397643966202440634035343226192844909362015354830742763762028813125975547870313402177821812723055784587753330093671420424388184092591119284667444690155873568182995964149205630508171412839636946194379186254591383496888115865814332858261802415481459143572240058154776408233689439220226528570767765124376476440648781639138988267102615106995725683983178775838966794003001689193917603062472373832114259981595433258501891991125482263242511202164040184829250812182210934665062502475811181651273308311276182219173172006342699059844171815982071846839836625930512651342971678552122605448886373239537002241390895219806463377776610352415792269636086112694315926852261140143383493140022335804737249967457107638862509831843492533969342505438477511889302652177486234235828664033113879960443745498172306771075691180340920757023458929386251702436031475961209729160761313832675152286285495890100196313198978387953427187488088941087284494080119683445449440680195716122825363395743099272286234311674086646284133709313401176071537650049263108272928706197980879826942277643781621726851481792640303750382187534499748114803109042501832255239017837242893174691687784512069564891245580817644565129168366115649634911984865941902172039988945994836900015551025489232159741239097023792976281869419536365495000547623295819284212680174275234734320960367190286171738959823468596124865865660888707779269908970487055761434012795457058664475517222675574960104392213315898721342046780484475519179988273145909413532977564968497426559673857281549253073118753354633925075264602572816607825646896395546418832418871481567549528778345165796907403047184338910654310358049979892462912997514960999336007359172653980710356309584613138206790577513190644766574174372759395580579509184038945056862650071886572229191521169171096421163107144210842234761682130332414751620635337158485162972713474167724644143450805376952420883287552014028641558184159969447194171958028742971907699322097996540624971957652859629451233803528231688909907067664342365725297895210729890463332019700881807052028050210738180233567927604021609786377903341175155618568287716097347619310480700729928817277489581209152766788760620525897247260419452491750262278434263900810601012836301105557484159149155309159506201661971366527909293357363818437023696375673598924914527464514320614287322263695412488826166360345939684674418998542328571630664433076910982263887485102597612409152998549856163871073736428288643256394664450112797172345491929885960153139651007820793163771997360803512560927569673809570790820039017675821349729723832380216287187563415521575813518979275196150359743992735186278521622951611342220885392360381797946792695498723749792794483973340793021148385996850544297139784435511542514610900430801886973690524395259361542236989556505523076166757814847935355276354672478636942710324107972896790803301204130356721414950739273541601850557011783306387204413197135890840898980506006617292250631230508662607995154627175078498021094346449446994492669355659322719343359143425619828098353024517748576564639174679951627994412310536641559941912213882136837719213782703613801530285079416399050526755258203801159236114292171723903328782421393811850662448143624374908010400857245204695900478723811878649799112133615566594381266305116435647807149574531716080827886085377706120479723545171005140888297862836835282071065256612128196162046839183925881752176286820112811507027664769790468453533308447618287433109007910779897565206763227900495247866479220006904110337203763683205624780592731292953347178595075742186753043438107761518296727581909811193007433821010231972847835971428284927643658607254761646526072608089166872992377797600595356911046829417967970142637001172278973492918507224974171930089542436869061276384045276873603545313094822976458627443528689659845119726841522987067203655887520662892728038394154558329885686000079503444162405193719654117516102386800933840667749206841652172737441550903265510629317813407794829309730571431281105732640287297672352869560597166282228597338626802584383983209247779372239221749659497385891676503715015073746205510505408839536001445268905451926189013555877052316702474063631316569991476892932220457272513931923420920934022131962610500859413159192031123392654575760792926044210014128336112280011672887336297960695521400761085863759739959999136552685204195822211543796621738546102781573604268554737574938736812151146910290481665114277335700671929990902532493789422130380399074140497685166789041868975767605314155709361240434446700756923570619860950959573780742946730819102626890738098466856325423232894263951607319845816985098353196194189369822084820834219533014533373760203400539346924496685511260081447023803462916338516758392284236947388215059872636933900013670134582059164419147971443548290868654928582939969855506178935623516158553864021393431714140730825923576932992982253944486042365132659808464667966734540163096158488629236661246985204084260297719042281630696807021353113977955483426169984143971571035542757690840748140354288262386415062437103425038631308804774646435828984427487954926537738462788150721137447795818601193618460529506186932004476635804702927851256366841755411929379275230056675710304596860087896347274564087329166091638672301711293658312050877748271911424363822329224325252919139668024722683062224537521002149137231903999259051962915550497089820418803156678443887490376526025000916490429356129415401690754077942878532792450621704857444272036731509560611182202367411276907597757376806772564042028471145819743190982215165271370785466161046900248881389221326810236078699070713448031892853154200475106905298357455242248990340964653724261803237096315673774320592727132019578711154363019683181260901328283171552776752955804797920940551752776167044325975952688461999738224541102309480747598349621757921384710396731873656472952851366338534831025276752893291459348424071089539077305348421001936297453006276132545940270521593234081798825274849040556203923550402698375392849459819939161593518331260852497308960325162194647767208923283333769897518907081833039060760456661747793812476885224121479823063366601606563320734921592567797074769131831365090799334147409672439444683320832563958570068940871485909833621767144504357937587915424449528058702103811158333351565131197827654543822211499546833449184257248040660361000194067541832368992603797238537248102062197649919178872726287516213761041284675922675029378419263587085759207400075971851387078212640840174171504300701099081985804873342394964068043406741272340111546129874732355758706253839488789884851246009810286249555171909032994260661607387942954850088137467792751008752298700763263300616495121011741681807080644063119119667425601235367801527446732032414404570238842103203454724861652558411047662487643835096605889232210977135039111628268473132401486397562226906020245883674827453461587711041358092123473319810541546497286866648297996590212215167833473075719967534996948926733841876277174805477218598497632836654770055418657449568719758449236800451681707715299692419483192621995243891641171991815703548152619297066560860183614049963930098965693666941532724232107262374063544333944508040660208485990187124260719518981775239890300116030701404406791114155370130508934105959674097683677766963551874736079043083099444320434684446740287128276980177994101130040680734309926518417326595894196798698626349078445260901090366724210547773828967336690555821413389916918188319069120192480046646632951814254758341168752557488085193318929233782867258923513433585995425179357496156581444473757789495648128475514460972472930972906318894755114886846900557622478994999534919455152557789724492249109892479407774103673576999037154295426101178820907620724981422866395998364590124110183081106351196225415313685589013059855883289422185309013490609406777879834562548878495770650289424637914980319778208960158289514682204225437581438381952178917805882244906165429329583542647505159466118739945325958754961118106305874038986028633476235467761084662250217246387674045366903072978928110671435431427292930767679761352769313324492288752174544403698633880085025053904660785759241419640388733468875025810586659567550285476117065716349014720495323532013119354572648924282379005547307863461033958595468255252454044300205166234421151932241570136216889492883308452075407411519263688537263111977510480579102394699035740122667562636048383429158650032119981923195057251886222443512717036041589198965734755826724414289448371581267648745058986772568654621534057433898126698040325699517109535843769112138367395333227518922187898445592384486835896864893740044611271029371476694009137787813429623222183163515778535331702250508568611119196462700752046995440544864527042363888560203174954576092899002212078227157505202278415996300714683796236865517188086695094704258873462831319845552882836890065158571475458271671145255613852111054537680712021193593247922017840552586652339815903875655310024656082840289407936716350244266138978442667290749298637792136935272447989921218682908578672844405421275350065053694158485866853116919560187460868728299579586265284551317228187764096970215747354334559756295322272296092584209149120480674915767826151090482676818262528197016814227591157994530330221370626774905731769850841314257687332322728856078105025801109966878387099898894708900632708005168976021479096114129624186606455220916148340539178787273015562164849540461495111066944179402371018137574541381508645790418088569759873165722009321504915516545398219801629260567204910819807190652561519879885143029222854326551023581985120397593329448544177340045904322766263134081666565213253731682725154542688391227113080890853253562168728013716456634407905211150596049543672730049571042325916321289445800812571586723004170399760692620313761351942453035657648118543587306527123298750923560437645530375569517051307003039839490158028673213264989644696214328601284614620942078900051929633591797381533349697949637658367118908321476614111963927244701152417206358141985573401513209752465252905373384230326209759335576816332043737404590763102075562522935829495641341525419503804047547278768649489067602565012557167115016022011264490997077769377525251961954830667411779919028475973046028682691254456382737895616272181653863489263265224306914519035870696143535572993771085095523825017867665361306195790827492028529291586504160405136706618331607887453170981478006069846223911201608364815534106362679892862243274587926778904896846215186283347551064090377838256839167816549760026817439248604186500297927562498780043322978463569916596961015269397486743026189704431748873293920433596811812158721676363967936397980553461630026743071842482698631799478572605249791270509291671212675021807680285519671410568908015815043521943768451059917039398863121018693593951144283119470579204023485780984669315324544874580147088713545711018231170600947296765951304285766325980742444496962427185833066105525541887308897207586628004284123666707790473384728833611305977253652060837467915896424181584419985263346808682269317655405171642019392216076063487574684232390183058272426824502410871011334724302907260317253634187067734126856902831136157600635191394524200476772539521929349222858157090824968307147564813473935325917970335691145521984375151555528636128833748692847466816753411777201222425399423565875544992033460381834351243422751775068335671293999004578014458618573781419666798072005449077227541334359267912740924497919260274407379119226767356683496197861863902194518603362991251859315002003473218556374257285493302913318864584352867169689653369653309941877587129277821485051557701043840331354549961412198804822500150582287301906319061482269101361078460844025272292465869744918227064710565396222597219215883034384915468946997462549910685420282017650564297213564665608247932390490496406121007271882134905675118389262010269328875536539352523121629830384154617284858519378899468647358413072334585577605864753765365156692417709310664760279689099674528224028182371775116814977343261037053057662697041593168316279969276190190328468069576478727559606578503847247815945641109601673804318150985444688981898949314925178540899033811636517893486754044055230464315586641201055739940287747920739004229753029139179004877550734668757924283661391481289751950700081695175493196253458328143389972695339912001907851820636778071984427046137703711691924471214437420716118150327401944970030322232472392347596517188431164276495325183821105518385877974285475703181498822878906097511550512584024140089694929591858021734497813905486538303823916155128631782196787158606083321260282811930507809871755298140353950110030023121303188897772015134636868449320842884497948101182003046918694841286238188920064947910026512883010946759112687775030498478666875362841579463777424742834365077863311387910543217317107989915160383437833889080967591174129878038962397502218399060100872383855679447377354021772416927658008480960372728490016696788059532481958438385572179610906639098952057011642147064446360545544959233929752734488695716786598705151610035407394985205707214216688362280532107943702385061337956604003370697189429013479612751207135857795655075469464036246634790797474987602641974567345184829877449218459313741825780568531505505277013719767745747598449398762526671523249762919738307773310950135344826904427466540336445399732136748158387197310697139966583536626404539567767287241590280687421583769875980839174100330611170132833734046878768084871759475145348950355346055640993117449152784310008421245186228909511860460768684339496773093692700439819785994873856240994986581699699177502371653065374734179974276638302711589102952339144856007693918457621076477564577088257582352208710493652612730070704748540981350484058983883254042719131741792582422788214471348999581108347309275677807493381157658493017924688923323712787312949171532407286943667353060851341140520926899451543251562508463785796371069808617213577911973596197502923145655395212958334231679554258613936287028713504783783225738652596232877396974238775201326284427982182755454843572116640428256360874460760303914918928387151708631770030783637227681233073850579362559287901998880619468650932067720724514813331003138727010956521691177031449854919550514916659118496808354450430108402509239305030177400484248298746355387749839672196027579357112472782590325026151418868462604059579271827487751646544839405574279025709029711216512560000349284919572286860518172939598471738619127964561382470470591823301342239208444753656566262881405154087269229434301142088375663092845533597158252757584639393600835019145383603101979997990891622712450763050211640994767226974900314841319066465013509190353511579109392369622123982969654142813116412382787782010044107824381045382874526713709191793918971099897744207369400755308517698002980730167558015788021866946975490097669375685370776519947690079055745982133418034801974462010185040382861575986095971001836353581827069867470043712430389446189358405573990861434539628420733774196190878813516606794306053036241007758511377341276224116473896677514366991762359195982103734634632803411502739050117908346742772413400674346945826386635180064713858901410357353240915646937434903303586392229414727803771590451857067272988949115064109008122794655022490233847386109644798052568738340744689074200019261942594056224164141790430851754789062916475115710802586979696371556087828860874171762380590668287507022068540924596016771308724239193784143815240214173799631738330679535308916208924570928030986904514600843973882392113921917282025356469672199869632376359026812613907754385850956545034445384210311688721179827446625633050183847597178958031064721059795735270259869613339488967859869204331531332529320393020058990527467363901084174940165844090737891755359871131198355341281028756893267282540833416520266446524754904841951918060150899536396455318973198532871831246451789407103272744173589347691585645410235948881891613932818882543831063169329542272199203990546688777212284902420819409370351755015306949153054006081789186033609525676081777704955410163418676222687326029792917725199985014045220019790100473335398718839786830646572367185248392106957563559951731857030063005347770053355307080987688146845045791648739641854946270980447016532784745182292841674732798863881137955100765652656405643357421104410295562257347987549613256652396610881077220073001761686514655215940449726160734035436656004956500216480839229048038641735257350386991146542640787915432234654863319803410197896685739764601308817120233810759038151295590135352244858799214846874929124778837707137426389327756601941593189999311131435666638181913089500302896037029981034318408808124955145973174879425120542797597842632086452672404548218687175787353904282675865390952473608481984599799350554174649802908856709728240948885426141364418178007031960387562928599741520529390491814408152668508964244377299763185314206810796043307492581158874851331041815882690184593614875093559276058600969898041863634213004095670946901200137098282715534820884044452347892469663057789074102710729973118913413310494088655502392397696162942556766916428564839852205554243953957234117253728486737033651243069127726615208283105360989679399821588117532885726688311910463868278016667241407957365532793825262256486483490575500732801552456449443547263528312413863533607244944129609983712061597934816916205600823263189216372080157445617798840649361743577572639892752095808656831358629954851269153256415233854294360318846154205879326229157402572350408302488940672396688819541611730523937697938561724626399338778591905355232400498057466561882379406686688365163770196220379439760340908483102577789845042600812587618297946772724388797443753016749543491479716503960265972486003501034503838791497933799567655503214109817510593748673848679430649820483202525034231042342127120770545074358098518736269180441626353171853986244060506709577301906378203300237317619017217691393866261368445625470122065767438728089181515364958732532982863466801638118198471941309819596343690709673340712807140141845818449979547655751386705749942685274932013893081490234927437811452395822315607711105726643035238215111791482804458429675421935680265197935671710904786810256843510869658857666760591118567136114274449534457658048877907934016586800417535136667380746804559195076087102274216135658689891269540291915472904816407383072417484218650552898121087169900003091174980446184047229111685203128536238042144760068773611695368908450395217837079510607456173007776734953183158261206062637170126926336622299322243562733644043964188277021071237641045556095432445290280320968640892320612651910628435297827433598332802981968012152390540977777374467323395832805536757940274373043171010897709867259421546764162605618067889426550293287741084513015137805627279986853338543441967382286222070535605481952154800452526681813798572245810418843061532003765071721865280179652467881534169291274759984191296276926129352958243628942097782966098740494638255837330450106828463143583025232879579719689420868990455758330269063496409503117797621665500779193891986082369930108001192084438675546882142221073328579432366515088246040134692493519668723474888719807696507221861242519055976571676759499377609934125257617344618669128490898887448468098856300363415557950513032123427758516918828244420652709003073009413288365623513371448706593346607986563247764532677149583271507660868256218833104086411146353249165656898887403409579822537319357842053566811342429765968851810850816950289148641713596338169683376494556852863863902752536518289987860468480614544609951228065096206241940444945572691791091916469119097241804708716718594963899677079937661887622456802220594580834826222483524872993150634388637585059918896960948172283190758520560824493581764115556600525987936711639205707926738536507099853975033939794752592377357653569715518176150325391024468787961504126820664375363913286905607440353106163420748874123865105541398179554984223819329125732738805463127891950276096516049484485618305803673164985782597438512861441438267217749125946296948938187958624079485388625089910086297211354307649398559645081994814970688233910543430612791912511934425227709443921467481886651758772910365103019160060747745569372897775924575191019122211206424040525536389962176474536285425218870143263452112787826194083398910153300496207334111059940661520198357837698605077047027432767427689182809172433195221757096030816968263970111495067171214301777622788615964436504764716415439532764485050596616463233806161543202120894805440222488804545042204654313855926103864368055686128262773610375752530353112257958190838790260316873957638346525831829437225613277018635281749065684527131343417140163820635592338394054447197366778338114417900978345509849518661159276210090558803213280333775095764379149388592930856411990195554613069057850202217724679174215799192868795295110290157589297896893884389765137047477215002473350264072979776630890177645035766014355302332878218395347325419173110641248478498321207379159306558092098830052317453706425207863437981364849142707459392221125811019741960676299424856860423918379222145134951252435770062678935768398522436817142634118202562056791460521383377838155646168895493210377879908737080260423189612348315656414452450012605580850715546110589640029736707812971214078713991558075221140412149665599797923494739279779692320259995610290745524614257055604062452939239057915372106625338111982176859575443622911938593138766403803242492749901168474413517169604654568348736998124867594318610140702172417943463958193730768792415180202536028355124440265328874063010083684512454833233693181844173895176264199565733145520905584469905844687274194925224503995951268130065278826059203340936898708747127737348442737392595935736090835672687817712190602043848961259036069374339733051705738396663788497374788092977193526256117828630952844012439179307528152657013160234641057578083637856211113564712771302561832225200592641103055769961397942824356338564429630050079591580265753940939386945917976202208852280987193943386197398123124235710790040144141723869358863573387543722913707029356399204404510632312760607137335001550210220586339511520716081581199513383055171358061571000601716639764280924329032977057334196114066604355331276005840679170473575143411930739719717698203782361256405406239557671836037425788943456651989745524653487463410522773749323349119176871294009664646041401538551807898475259388798645830689782097164183350054046747400937215466957289200037734725754230983407526757143150117865517090702617284810264378858565156073036225843903882154796169159116809094271027898051629024167295366541120434720486782635873978363537668715874808785013754787313819230268797542428008633179485558113000730570245511940273744448360869104131468202155879045310320487074818455843496939662575562465868092772063214711198654414718579578102375551527657635353677155433951382308743032547314033247303275281349163845965751402849649682425252926078774972323254748014749524844812259174715877193021069151522084130208636699124904965165794813299750663423112617433816456945812539426904758570660855389105739870902431085695232679817038695599252623109301795103108741995344561576957847618268339581669458219301966935242665849832135925302699136065419818949830235084985698873585139713313471472772693974221910048690517083160542834001011710559820415338485588283753344641820472762427011826610836837110529702920465070365478174509736319558224237944968491673095251739162772644985115745844107624766580036444228548698363156205334211961357370607127297129437248491634825034559104925310070616353587153981271425853724824154379524063207855269719303744806179996892718239055286465885698216807974346941722300747965691024732013490248052685538061437411567081456968897980828719246108204182683782413758025377297793936404512508674078050941731098443073885580732697416385040539762534281906206018362475595428341754386372103582763311683610141636811754962424654335653082677177197209353041898253673818178979091311636920977166957223052887402551249367129076481265650711966996843794906450323578347644355606464049255633914932445032016221074119690493107201687886669490480530964636503215228769364173531549329495927106464475199462568025972475522065115222244429119648743242971268853535752859886944535345412175600282510513484839083546910187081009157351041316751728701340151230638611511967534885959320352343503203972233269969020842696548496979180477268995160902898631951549422238852963193961422358189475619690905953848251631243016317996044784365735195871909334286586094849746150884376369370529021649950347209342104630018190821340086587529355637845710949274699165960193399356760522071608262549505871839360269132705346226452783472658302913273104274763525929604420680027705107723311146992454382466400980832476800014229885326057072202788035820512237360783417907494257094797137198299534492568109674209382792627331796807087812749431955158616837048508614124989892617139401106537210719323942008620306985895129895861873014734170177067490050286050965211281001555776125111227328322522951852157926752125837987799826824707652837969082734682525933819789806906858130605157675571636362305092611016974468747432961215736205228892308856275048506371228029552793708958629665297398006530816743770678946564242185919292902850105832737638489236518715773918996072498531944325718653401446482160278320347044951606350456822450724421088481963032738705918954573527583862758428026570691045256347002856342753939369273585831475614896304784512269948730694783794140817756572856540510941212638493825038882335633143011370572955327348449789844932641702207441073949245512102932550176152787568248494403165706207922717362207287349124459967349836225039638701092669895922482688767595872633818751174059036740009461079881305167558475853423619584461206944212465729519123687413277608656929360127937882286850080396023262203697726923523920733359427741110097066432702272929542481302947669472893656845178517073248452031202257918634205892249242227404927479781286386484872950600867659402336114276802782949924528066784471128786304673444650555311601363398248967784421346714174600231424632611283384274980055668574806637345394269525296913578932096381845717359716890625675073693841472409235041504848379438684861041955921789250218566201364524198300164977108903348794669248413556933944290687041799733424823725262932145617457000100591282613137347821643911080552995071525429469318585822669782946057534755521272955983226769036038720922094473174591195611464108943392170983050163676559364535914006959995707694132336889327211072085774653102009532290937532106098624526380635119651376831353580929490775932458477287782594845134027542064942907014078817636623089963603231921683080806559985058616732813314716346420332194844114734994519445848220170375302273445195535727390645536973058066708988190449096652598477747410478784600473388361906227421938988379808434276579293142246114122607761973341179557317598674026939886603005685912307447627377364639313790391931029653816881342179593210049267266421626077620170356342024676936177055137505690284304343498806115403910670397420610241413102843752892746060662745849743450325711863649468916557936690704308384438000018236736231396178265935193760759473588858965721810112292277874609585935670326185502672256176594315673632196866532258693511168628537133124754906773825982362513846742566249803518889905728825010239213147237174000111403593842625883642878793530094626748934699793629171295937692784703150327736819002054086881716037639135639317254197107337100751041254103617929782090976913586855394977535303549044798807668158830789186381869516589167404708734165407319136980890110497261462207348705936048327249020256577510193992075496515231474514487764817320389757468584741232485594032423632964763802946181685819203084714033883926274852529518869675257728532789211099239213039430530616821988717111845715086928613322413060419012277122229496942237737027478679465495936912281509419730030088737040950150924012165776251503989972263558422534039903237603964816770679821505193588321673650972485596502414274144401738689599000674607176449592101270309385229850939172710715705551311159063995439109505757895311013489890085902325233047570402824393038378066880581963020037358871031963512210083061483998746736404812811541812082986212209450303808349275536127540166718271985074737854752880243603467482357388737551946318644287533541420711880309282115672251915190516096641974392152288976866632905415793527939578131760730895191064692765832412864615136339983919756913954183262885031130754532428481574472658509857448367512408568114059217351478304499827084383543484578200457880271350945424838622318436682757273722250725100552502874414965037458675390194773298228656751439883191908862709128104768148063074117910619327047372898625480796352776852883383356834418444679431627070762213670202370780446089028906971043187493877403444835463543540952152569176229215872370550551969064074860619754743068127346392128953205583832833998662066648849438340804227961421138407804206705893349981079375041892480627050198990873267677322403541669538550458012705088833477885304824549691050130508698514758761513267084881803970713500245053574164138666078814487004121331867095114949744237656436793840898066411726771243876836110519029660476173270669860742398240891782946896028715832348735864323216962314539386607381199840989535558012754176801888846197945196967422407499854402942851323851708322753730020826961657161269583521722791071518397033509253122883214225000129470767658525018833566084767321353599067287172351473215532164805531385168245864340475472690804485407773972801217241824539086232581157364712410169215789232601821455406364367859886462276370185916141045100386692417496172417890577390356167765518151460273443860035822016987581350645961260598196404042658084643858131710250001061902386077491775492017068139554931080705505072856016466908044502552038174263691251082085596643811836865359272824663206867836645831735393902951359529884880987466347548367339845047610258047390035377215268394116010366526571367132360138138346139154127878481663312749063970119296330332700938287061270966229618336803222674628668574252806613660011515843847129982495210650495029284589903353724552383996865737044216096841094167418618775660552108993577711155026465975179350860216632540658770280471189509413940528456695980286250584800842951368578316511464919687831685985200216686148363873653209763626018802434005955074257941653232580210260346665025678609359426715520686585050813885188675560145243624653819187612103152299214370126565598367757693034303869624257961149660304882243275601610138039330090271079084207972130360569226747510240618573749738315868247205512251644374535694943103365432806104627060939813177217642174931853873718529749551117435301867538919993475902652834892008256406313716426705214238547219242737191229500851604699703980667062353272276782878000634040505206700128550254474671280564698397671574413568069351352602252331359421164893749451646828188487744345381901646483197547808976102727598996112406018801324719274142046534676785473069814882673108548755066461368009631654231211540402469761378320550614038797817001832870796396725270332919238315624009822034816636775373464869651051179573703406223701599465062575406174949360177416571923545343693716519611037165755039637428303644235230550722525123356088609035653885947890763378108902558085532090086929704175165621526222882963718271693213435432100315498301751495548996962714173724319828084698906415320649015579470548294671142023434554651916607278056202310389968102638308460390279322346994337146831784880747119236638452712600696315390814990128914862936181842458762833813212700604305876402685936628728211872511076616620554484012169094205333491710941121654590104806493195264439568772351758025816575098238957228442673875970586557397644174227725748550406378814695350979150045306329923004668183735596847674436370107839521187433455448879709099809008145311484854650474263818180867824335801260482353789433033413307443594130640231749863835970208652678317642409854905101865949201682916317687767397277996283708094597368179861720125048227584967937024469198562511330641284926112770925547803286313946111689954674821369228140949288872917848786762129136248146070727065645461704069579349448295611264325286333675991877195709791886858448937358636871968215542706764349270854904749018262138703368041919065205559245492968507441207539143600420791100717108419308255249621197559423452278510127210171224572088582997365577805617228285925863399917806671469787275963986584326899556291464081001873652939435076674265753916539879060918068868979893188875256765961793137713702260913158942083211428009192975851937122088160631244433720186657729907802593829231516627364052912261983271266006549812659789682553092796388794614016467878440204561344856378806251910797871763094371720329309621342449299347815805681078176223100492623999381115523320717043110795716387526917364497627846733176944831280836101357598894508071604838838180528385626594309690118245054114178833036491165777307200090590552925556955707950076583923570330521392977028842067610819210967535180481937632063017725049449309182347343888286018641050213810916171477945670033857366581220646392689340641812014062738820500175438477590865794500291518481868777307106358509900765109280597736465104866981854547651557495665982649600108056000850133582490037044469324431853578992748698596248371083796505212776046584891679192859167400337300349692774937457719502653061228223297761025104251107854307241944673252510517052279101667616391825941016755990313538059968605758350885008685376705216376845757493490429708524546307157682387574743608851532012363749652180168631996893365255461391616114241441777492207336062850755794411576735429395141518787949363238328211000561927034373621274603648762526874624795095936449559111900789516947195636817070780274220407259441407130793758598433849094831479839079438770291063895544018686157358978199092157247290215224594276598453950658664432776883078384808735119002043808116683289501612357563327492506169773533637642236586695507865987911747146216812276753829298740133692794042115873619231527692649394182921829948512338359996521348161000294721457408748160951650823292530157286391490576992788343141858779075622850679204792899940876023192448427057537541561748998752119895290593671233963980409240282443169161006012421457667914821688572152559011821193006504390950065231772988682014027018029079349258132760264920833944408502548644622693384067626291883426599735408797239436381500208553289434984392617415165132773748988796616753704864065666325125113553904448988001160612586095291181197777937483858245625809073403210001646381830094879087445392573903818743520365115296876207496015181928766112719755353395811528047187407442983449384372163323251907916003631718090123373469976168774487370088243033280995709975487516459078978848626547245032606679751590780053733860903476816542348793627975250399506668631235943857373157240583239222428898564677402065154682064614834600839969598178340959695362073863419745201699831389863305279387094888136172739191870864465957234473321258733294580538823928303230286549518684350077672059833104971711283553657845298728639039011844834654850771459938484321195673804495368586111711131509284525007678214362460681315796504700808751623913067569907374814725079780837466274373932792360718520898956275266061127591832127477532347789727470140831456852005722460301162518599570167094295037237998774474336104642090456449843134824153017445388827086820533602434531950225015193271290508318473030707979549489888833431714556615539610741458648586269485820657347388786948672920003760637271602332855260028706958257644576243791315027531309734599221592213007710112975941301989483151645448118083788097896637582185332440154177818745948030593134289523352916934603692857924599455615837457749659817532680181368367738947464806569443118823715734478293915871878855935338398848913551133313135944491731944154233576183741170324989100742498602493765519554662223780150908105942725618594124673924427077663137741581009739676183206523316866564735588880260009252449659056005371506643495909181161220428625538967540223397854328476875894726117780735324863370417716448806130921953639865904590682465463502217607022403394761949219080411617556787720607786733488593558495504272783799929856154499570352027254684924644751159022364951439386222659716530574035635693838877372713781150868062408802522482617629592544444708490474915415225727511489344501028191292752340531483546644245907301227569329303818456025137830256640890990736123506063179993264226562943934686950329284348375453582983494904428377503937054528578536350638518738375872748662245478699529290724255093272896676996933317520013039785693260868048787602374691903397337403275760142067635425209292767295243256285633665206501808537381551357936290084238057112482989181694759206998570547264765684323040307414787234573221876633917314185933175782511584260794927630921745430245853072085632664211369850132616284826912864985843973959587801555703724920609602088239068435445055080732579753052280115083772112075645054536975004356169557654376776705721241918037142757425152374764130528861257915217776328621153994923696440698357196180385539932460636672512540333875319203700423346140221091288213962110377413695653027331009996855924031186536701025229922281144158993757013217847004511806069098669794382369438705185833146576797144155077024876544955590545050529523969803667521577059002530788035236812146795414994596022851287293178040573874227107763378192973784476890652196510918357714776223290786062843645649651295936456468173511041222917205845961695529968400523680244448415298568197555425284985312197840641134602161774985303876505978784475664859664287569270219538361092527064142064709508285830252292768223619436746453888282074767782401314600410359536050889510848540407031429777723424187195586544156172782328368717497061450334150057271276783182435544795971978073648137901642743063120118994779740787289081394809017575250405628220757908207246445985432586668323528222448804518722862823797039339496537265285783550321383369850581928803876122277011513211173226259494201304462737473330563338388214004483118114872081098660536597891086182085274171517478784412473796192444090912898746778625386761974979029058567464483973307906413619450975209332092870996242724032991692189485147936647514870257164253518673391818028513730879692273717589595889080721203655974227481937205465891803365967857273562226085982884932664697355726956034705690092716969480765985117625338433016589965539590662150935433964832162348337568886634065487936467796070080370189382034124212298512548174269993458181867664522200074594964801340698149800210883522723567905978817468819011188081056417249070643586608459902642037275205586980524193813660195994009308723236254448771641809934434909764760504036810717377847805037706688610844445107390465475446077142954361866392977097360511620512044831023744328981535570935219251172259202248702676449383487129147245458243272671342615220762473237842953801213380618369646546334983221848629072700839623360915121058750279374646516832410666709806874455578382244076222842785474320792498628580265576913120920930218003327931555602194902964258680476715526396329738508107673160504046665048632212263345483753619513958292778579499434699807968953419727529552175988979477451943721053505897173783185661102629114773991008011129895651826083217085206688695785848076066248113643817576117915513046085245577916693633418053213332995462330650717070122102174712028619622384458842207731060354786877967749183289538780187013288081359455153823581567086133330564226938348841273013067589604000470398860410279804596912077996366069496267018972510112237103939753547420556031188105948233602492989927879517072909606948385470023145082734723560974335191317830884506959674270123670029320254824057768701712349011068935861193246207350304388878952689076747510384165346012161659002799103310456597120385660940996544543724903759482467065672662746998730186151750125005793330830967711083368820344637150399550258998284954775652821182087449785081821996873691045379871760953387092009826761794843657784463569883596540348810626072367180252513472950086462772255827498564428254604809525159514036375590410900437281951747330321979760890143170920416172974672356425353004582187345787042698591953623570152367922869770455199487970501593271235582447663844917053153629349588858750325414600837713984862788724475349784477628534033997809075463471521767353228867003604128401706693953616288502548300891851397109342733492081602293283380165998794502521845676207874686207129476179490738963076845346024422878725503180094434709750691696647986843753237490244753618862365171152892629681749861021173147273505203919001510607343636310456535043252487315486815726498115935276380679485197553725124959818290640040784707666052308062634493575150394567990501502949124810070417429079682877688540221588815797865372189543856058253638119821213180270328899629738991845793914159955549688720452166927981066569657330750840278563146600068518074454020552950323743124017523972498560874811872293559113121974912135304773531371080360491487468356853759135243582428948758574585242238224011235535034816917287696128090571849009262444346415426207702382234205860772920990049421778921627383903326551970247503712123443584621355445228192211962401910012685491203645614196652742750404393544308056570932527684711440199341629437161472610178001854897457454038812496666446178659818706214013216153611247986193004530988295986047799208464915028174202850871218203828959099670801153391087636765643358447554160063454552172382141794587802186541889264992919710188174780476496285910576335987938193829142131563263417847096888281748618292639611953040638589752316385655264442666036377453583015606504638794301015038567447335571441762047524149333894757189893075768279559528509350898586813589869827057037294028202058382341531455736227114494246599061795473155261703246428113025039991730402212950528992917722264821311853062361720500670647831831262065213845343660170956887255187778033026627424816672697310079420685727238987990051765376110330048493139365925395194196254177386872787105500313681191946958452125538078299281292435098772311211541049302321573429248886443374716688151684609608758791184529855466483815602049452273150746247388859634889701617667667173839081105347418960758058757065269609704639615476646579311918240055742140619610294216418039771621869453843423971879028528322452782319068225682360763858467600719722752984542917714061466935766167043335071674319468937490888390604425405753345754550871071415452741225956806060050776178107132702890945697707321741154086660183834476551746512150540278439264273781661244141259294620853449468849226691036660981366454587678766725136978665145481782150208687900624021596089570978715585313037039067684523171513571946462891748811631794921257497099691828198692600086247202189577068216638832759149342489393714199180623955199810687191241451736927489523939035742971907170002600197587974490991000001846003019745213872770068981362612702480171236430022342730750622744979915130083443207636896860777204403620897380124112113133936288392439377074551405532856150731922629529212055662131989771396728309960226449761964445634175896366612488878717858783859464844041643202993462008178245795853277878371769424085859530710371650254137815271663482328261816231433069866193575108660780153543887399883324912831135425073548288682270217198826047448453491058376621076173446801212776853151087737596672919564980691675132070778452327452518273892727541632280101630281785890998106438269307785217244203348501593467371446086813709735659739446916883978683662736375100734426794519091014871279142357975407260484966168868997155487433529945362733870975779932500376852497456457125203769299457632349648948795766777920366325837867997334440797730456001636390467772019199036406158755378804887967444398305787452505938555940083777329308614368093595606845088533803546396711348460090347775117738757056915553361990575425667486664630557474447188043791658830802240163176415521136780727604833739692257895678541784470759394476142858223912391583002864559718353702328316017603570935281306519264210349981487643825551990358168074913094229902611253512960732408751437822601740199614335278019438828909420365349974300252237353294133058622488854578360344568971081980858901623996012072413569663330024506131951837817108819687690421471028096603389048687409312263233729832616727363487164793521995705314108843418384157324319569794689523540897915903506113301120966887127541843474961695462103006427966317942982957956215415090073730153463486832515270188050067306863136409874509430796416664024039457124460815942229842537694387896282010061471921239850313332913465987636841712486782957259079440061546977750578469193381507075159791918260376551428451451726643847647798353110099932547519970903588447363587461464163418788815234952108696992779920570697696281450459203806373288174613215685764370768336603906554890191237324194934778829835810377022926118614722714954159445348579234133773828629020511560010887346347138255310656106820105219785056432194979500579298027263969582337575985105937030500707747256093771099628549360605711332030422847934154416507113936963237304927049487533129176002153614302842592864685717079783708329583645826003435288447224128525164348025485014107232177768619521144231421047794994773062682052806525524065583869640100739239957393671270144336376785316025264637115379063409223641559196200595227679494173380999443746068396469716589269970014806594768670628041067881010786496061076645125849860847454001678217187927238505263486510718849488529682730024280954208215553664344377432965356942169637004161874417707147830527084831156825115622190133445139158553185855343881147514192727660253796633023507180249996760478181835282508531713784298756937238949425730527309365200676021462040620476440379554536698498971713926983775197467181538097449204004945348229644728565032531112876155277329102536494865834126263871667653500692644606500636965846598406044186679417193803238599658017750119686816880570763008964733540108177680386392124790014689500516805195118990499093437742266568382756616292827883235117911459027053243701590018550885919128173197367889546148337643338601251546301193849707320106242456707075865659814002604563120219553140008479715898476278125600327127056599167284567114873559933588966362546195158217616420631690676902223632501039778400782655850755595325541238414990589919036594940114748374746177501891904242451890953672910135387612729809077613697303813714322472504643554898773667920661600484962323002518662046610807946066838321130414950757285200864916296090621712126109113967198600346180111307522519005421919446411114284263395567442002173376545367242631903394048709725814098286110169443233344871730034384365164730506063907141214255705589141122563263811218938470643834228605404437205726232585149791157034882646392344670311402014451829390960494422861373842836122596996770556136640619068503608628210852063630624848551684819349891973101690117989253871634526342749836745996904697956514072378268228741379720665854512533567236895021514593550393049415858721991121311363749164554828309737783815728732109787571302035256938026327199442580466605008538072532351791807910253118152253382282541737493866667124258608772857775530341771742905969757932083109971512396067848495633386985737935152938145346473447814073019714300967866828622641413771074651074502171080634684188829849654538028637972193682548317257347199274871730079657104119187980208463055655380518721960662976438875324491284770474863701497476444236932406508766691287742140909048298761423367653318558259530475448784667033866401247393548643703015232286610723946857880172350048855146972698718063549563261841613410117211378765294508769017390864030154240042830267623159772454230324667351603783800364223617242767421820001543134159891941924493260407418046095255186350935319858958760605683474883554878495524213220075475015266047292435250889383289680543765975726983111160771596866282586826348524884886418835784784442649097765495443464731127453478432991537775709911099638440353842835082859748311059792021512992020340049331248810316798224142667867454494830830179001812105168878565754430377889221175719998995769696540290606936345796415204798454178474062421057214616847328155140431101402918963908268823570726116410815106185016556383779431472779381668793431781563589052703829881104822417895028581314073049839982729427505194976570454157026224381905570310950704477447762833985759572291951034250381988972992238650538622016217243826936851098313728751919515703518104961617975918596493555757078966030460969400799839996937860332125751897550346924670462118088438995902063412514138674975856723436324486308753303832027311034180772820350581199986336165618456168758915704199567402498564092458036973176346673451422709871085435634233845347816936178670070131963598749821915346574512611233730718801215936155391412065832206698904776777900322869261380759191993599318907131050855395095121326409034469108645446251726799051267359571931565195150340188125007490448321428797397766113643904225364975461403865164062390066907691583841249688863129310339381894180864899306755812416979736248191606334465027115564260165734162259346720058296767991688093152843298449960690584187958513901861660870678801196571261942800924858129514265935005036412865539978355868291358940746893418977560696683354375556986406644567311375215712077445117718813616869403567505642223629457711829639656961650406112468545563191711735811284725743726550507814436211397862765017424096963506648865653531444564647664793623358501699884045352889362695172986941939330909535760723900646653170192582856614497156597153840506425523293300129185818494822488579337667138324366288921218436980399345472498733756365211127112083666704064064122649427591495097333056337146452252546972119179278698371478396163660870847408565983569231338225710099148853704908030225228279532035179693184840523832928491407188252672120651198170698019335081505776654564456611645075244566789427280852042605405270272577622155426882741727981393055769946135330620270049410357495918298554044218527110478714156317289441515406471254951813849553603833523361094350321632918139472413207971357553865265715627512065130287057677214240333072762478300541705657219240229954066735737929683711535106185134371288339618932601751270501973888018354553715451170633837992895680001445829605133284868657822032048854692671746209751923651676598865263528272292233069809846385770704013836349080249207959962065415583710341671659557483835612958014565023784803095477649593617572512023311665859283786365841890628603703711433718427401697948755105082898258951881733562806356197912675399275343711693669783338569496814507773282075025421433297471444786192455535721069397726453579632800874248046165585043418781021590932677615351729321335571236913792709449523731572263386531902329547446559389134185834227502746832265768465070469170126255536398868131219285618819879672051388069309472741855730834837170370214247185679711887469748383658717552411807230131376957394739161968945657331269631996523092805918746994770842415891073381165030004029318806431325013739663238449680266800759385328142647117755271843035980011346170097025475253442264411682289518690960607264519450807040295438798450144840907785945536674450912960804583406017176304069014287048399483967693283477581425771339331339568755555705738633118160180205089397903182525221957998528584511342190793816887960395873586562584523238051911898388823221536354361382537150027666954023887794450599657506371148975930995547719487693507736495546341937641697497920541860307052768140611232604907814425856383102340731308951232610151248989154231450088964471919195690025984482017375431967248471169057897379339243721440264460614330978873428075712854489601818827468418471237104840748056045765117172305809141540700587488764509026795854445076644970463626000859749873993999241863204428465621711241421715447255466443357811927251226136440583756132117404974906511044102201253525547308526798989546375656574044535921029646982603461656787439335895690133885610887988932358707637711340068755471363105343354382374721674128304988824900238256759164175579500124899498673491184105642204970210440589191359601905027112120695536052339020798772884703790609667221907397473300363662911847033091122357526258999291373241055487006966583811323346226065544656579017206977344980693179220758695204066067144423969374246657111906142613952964050908387448876418575792441603066040075102928334838574352520663513399602722102443706766902724584751752146664268954615998801496496856166757558725067728698224489817450391346611676765881014178748066466178337826997776290829190109521190838489140752837165630495823628659487728925645980937832228673003128632693415954268360476162529032101682140995683285154021497003478726477664050107584378838068657812053223146678949843537224732869157626151423861785320177986477384768806795246547747889735314176993497257302806862738415305326512685070838120138569602972503757270237853668110630587706221138367698474091968961458914776492400166739603041556809257712162887350928751891231399353715926041018688737306018979610597496872448595741180572972038610510139717416615361701632667473930594126492220754832102930748504879809048089387804689719421110591648056463447231370406441408911458527145103871446390880545394157472138449075513461016524879681704897972647796719566443027871672752391997826033636760162636125269230379990327459029174219617780802384798015155825023566228588091930606099389291546837245466524788988641991472621131716201726554942517052378775787660429303091122744364927635045362943863925250499785599033838589647287104943326493628421349224605908099557200065628870452605145540867588961538193534867207793504544282736518800355826247839213371612467566791996909438579512942314613066003791599818365977019538916308730761268488750896929799313386301715352584756617925195192071022174698674809618829353390786753428820783280143132458432066482475958477385738775700711379203425581560918166662943245441770156886832457395559260255032616380845848428295740161499076311750803660166583203915784598471531219789642613939870018619422718176903953476548235225780510418642729655715548767743725516074027747713129120818030947657715675931485400204090048261179978673024605186717029083739998836357662301855338063664474894014317389036347581269049133179203815931706958165632772675773458951134356389038018550604064428978087547920449786783858344907116785935692122323702843181313837858308594199818784708786350765521146243862762276128023779795955409005434302040469984857263222599268547624560438367609374515088528782249425333206671127437411889510082086458517714608962909020172850842635545376019427574881516002344106245628229189711905206687519914156957408577333943525288996617706132783075293592797838857068988688971044881269537726239548461274946973580357160583140888841339776303657688140730714136916780311684724591189706452392709404617797441469971337429494682462081874541751568459968903988475969885843972972660071454849929264221701577210388280413075713292254250220448880366814936819938818090102493861243177553197145504058425392691367197767110807060169185011030823054413799023374381009191783515377156718439356061415205621781925794842441446898375608371366858637821181243429245818007371701826898420091026692750242931201058354569638939566077264340884994053655906721550865643761188629325835918027238461999301748754378203181374861986551144079039059613666274843720099259576003708865082393197923429397950293913480828017547893772218854120215677915090898876750143984401788683855337285879991851105331520988761274124861985769102858406380324109970824760890155929333324756547858624585400333498890250691600655998583069001569621135310884296629928959701337245974996319863252971788352041605499154550160567481215391092458613958631432957262073465183636444008609510612168759184346723117365796047296818084688059308135512109308614884563704018218008205211819179682105287686270799349824654514828540885029597355010527509861180917538083659235743665421646549330471826795296326168811230071711665817933810292334942102367715503090313895173755365464316853019503216202011449927076474968395576223954094320995082443764567973635147337442594834934037331161696085123433971194794843595953543273389830371127823569903636544145773728961815695714763731351384939465510713659271141200563408777026283416806521789091187811858862606729797582071005824121174942157171721050466896631205246010364804471415277922896199742167336400753179016150105926819461464334225379272013854057766209257623772698435530958249294420286475632896942292134624254965535073911934866993472461112395701602915587899359781514935701094797387643191848362011414530738996952198236763114568317516208502186583397919881717654602250824454765079830030603784315652877523274267914750478237355284257119432825568268896237817887480364995459871967769999373265350051241373977320804786567898975563134307648990809477176718577524610927036753145868476388158390976620156103711315115651191286127966314564401139425985741909235495602418667443510225015793936330233227983688873374773210778057371396445547507574929042437176097798327214240461619660374848194160667513277323487579599286862924553615770860611605791366846456163072348381491933163479781871925130713998138219947151081993352791633265789196988532990096445439628552157918444740422247751561584390196559411604961003196276085099970583727163025001629450877142531326293016800112796694482737590595441293158522289800192710861317301122130516892697983008619906131068799801375406122827832509891804728684605843329857273994649882210506916733785758698788864667778643394962623251030251237476798572020378016572585800879870691070838197175985254658927078759884981111202778801081816904930947998023935474495222180594800255773469314818576566561211583874684411584896134209192251227155501054300376679053344055144371484058564633042064273678158555504316212304047081430820068739161249312201525085632051065547335527852420738390667991377849765033736497181983624825156731030567689120189642551769544597494596410479711560092311425111436712191350824049207314299989875670288063438161050910876267208823337599228954452507225718471733930416771260931451010722890490345565298390505887900317426278809977692403753829632913563345274255933161649472264102070596562898347496964668433784983957694819472550240637104596464685648190881807732825655679850465316515331557440417122085935816087009363846585879666889880547946392841300102000387602921475166564994804945366087702931551671433596078536644922997747139367332715363836374251475288601957526730112372011840466843366152677951704666802013433173718183736948127169160615788298898340170530255195464131598488526278974615164271744697627537152198333465532510951592576598890458815064995486953045528567538461821793755050613680185536284547598477799382610038753969582179851909876744089980611852233428009141325464822977368653361467004686411170271167691720535632368569588463890885929392739175586602692851565152397102816874760959654084983053591489696031573883844691307268077866920293666739867046207598622071271576388633053241512538401686299222018669642972678061837982842052756825839889527394332126616518517318939148803816379980419529286570100454869995209522063655903436142605772510808565276929642959941257760105667508432503712379075718509077833156134129853916189629150030198067375407890092157910945870581625806329826257685180639416629822038871886504695488254951030364657169654836113825405963560544515610481883660485044161203406409240742178097472743643434296528995820238086250399752745349605807096704330857160913168124879353522317363289149386037349017137413977752256812860468916764447217700636884233146054328374129105472405113112720516318573958263223222805261914008992332630955885824034951784746949420812082941672305058884366858549208918622747709546177499042077461373506070842760167432265123459571210939566078461721254099219202403450560729350173183554845427947935376707779992232893191951015630706339464585391906167247464623908661747413304687355709783934077599571891674349186145078181468506785274769730916683325859243572550474694267032626130234734651156186451513011022492389083437040816127402485874615461160871248269238907003071233801179532326776459534550088677617399224098616697157138928853359494911504432417821029386929475137367175234630782686876393691701560447111327639493709606077255647690527316053706966646080655765261331440775429400706761474798811921814124996420203804808359153789037322424781208277844082218104447050367966845140480431209246137895929612000545136008067500419587605532602857065064360588347218203437309340918188896773816567922313201301433132498066445891766959860447806859239999185263014768604228776368079355414872600867428980590631153873008421121431372218365066884994776555606256683817618154385353375646699997356724438202980637334612178030905116959359482283392282613656402312774067399463745256870386063967606065486578820996917291447958289635143742788706770968160375164280376708557358925569986657462353374390127207902599639292337776042344504481575817795462361483993467972723644914841116145875961123550170641112164054370845327455826314776112771642237001271902695779703283215173877301353769830885447535182618901132501224422261143948910790099659258678201794615585590268916609958924053233124917330033304950988378310708737379757845405384633691371825190390723680427406242990543910408900386090932002055145715876228832655740123474956339297377978800811732566083216710654555350312975579914734041207809176785834932205411250826430566086228864328211311833956998070897480753513657081011137390332503723719896760011694826269661558444220757335086918571925601727784275988188618550966663984863696712803490589680910595725580368783119436697465322114252365404358405742412833890753500080328688826437674655219608536147499768699775955925532013081901252365146020241716537265409833296238286822649790834494358464241107835668599235886761739921631083663566866288190245934695415242366688167917763991728162767039493922407352859698799966527773663898403780725542662672348981968077610271414359085884173148114684774839426552127508618661542624523949910758372016597705100091278729459387153187021247692898677299175283134095096817329105918634804401175474781966795942099292903958820065123599223147455440546658549490494830226647093372531700668866437631606228856888183600963353268383549824274087132908956953945306421884754862060719186508447570653488996053531430561955236656514991446186453397283533067377623256246021925561419828153295649299207647576406790058708734228330527263728373993294959531140250373790271261763770395199527890114754196248726087408357198016331763360124496702809488374185975531699754739887939306569773154990777172852434640642441998160157004052688015409584409393079237963575408966405423410411742877081624911166850648322888762899989133105020317629659542618473487782060463583273539026994603526940671429019281101496240258761104717366315748762725645105760091317238048399917478204474436566929525632615565073249638818516986599734635371745910210646376988808777067214351258687900321559214859158354974795006819304785349471433305753708328256194052751521491892455879262227339702631361428006138075823754362795769810777012718391364299413193470370847474038361410103066369174301099157281835239993469891879072110253042712654472099738007152205708763505142916243753752859203329990476189699058463121296111642906982540726031423017454098994037875310604992950533529517298065628237570469925870514475872242372902663394199236020529721511397273368038301412323289031523063053020731513938635911409625456009123083850824665476379793201031728392400962056222144589539303281777691429600928404306779171478691678675907547111683781257715958895096248898318179034273075508317852431646729022077190363584100530881320301213407975640886384480656878055048384057592366785468537560923094150694285888461159360274333305677415629957352149336813862205698744587036313878419616041691104080710899320914274528704833817566899146984072520334320121499118102774793090755821282019693301194209125065872899649603864311584862153221529320145489277930718651160310892135637746715482695733060191407828131402820731599846087695815308542555528909414026262752557346964527059410991736277441251564679789826109100535339073694897269773765403150755091450205901666410408138910430519021369650393209007909927394312664292075337181487876778396102450699044203834251332808925166611326383797669610227697763603148567341430833475545465177027737212988270673283121124206946868389229929986904170912498966598953290840112493422590541941122419669265722264482295762631003813698476450998380765891368013049552439110955058135380700885840156020182728291656559867327232289865165892644203596526689453261183984736144105501789728541383111650294429032970689061746312673417652644514542637138716564292509164203842559821402753719176514039306860264371672001430310510058339630386855123892987055113638799806395349676781892201631308538419933924520546711058541354047092358742463032341397359067965856759558368471898575936553481118200391104699968187439988803975155320624233631766927563213804490547444519409973518716500594399928963533511805673240573836594471169367203985642438052938917232055207792471721419020758042672419546469421256588113364838197029891943548733748523648880623187278048824901229321844590800192451835805922670185776094525514580298925828051386872854985816092977658450032813777608423473421361399786442578289893266422460347890533439399322466581348980408939199785682909376388167865984374179594257417664589984575167495769804229258765555971418678591911247878778172527748231538048382254727584289489528205974246255033006351274869272892062469185243418323292354629164479817601710168977752375290926591797031441950878333580075975406779990940098810029199239567720762269220843311992782944894968691238060136415561051717396229770940813427116464039479649409003397221031387633246907907862095340723399533484516622213450809915734249382862048697648192387496096520819527884122238455259112050412521335547800037152533449605627718969110133658795200367401512685498184841549405090694301030484075305472358487143702289495200824846577808194720176099451234359726878673541255031573818858044453985372486247847823359894089752099132448809976495087550830217011172015902431325265296599970236360404249353715326102441034765498468767938822440100282618599467319506074458304676985132523919333543393527974829248398415813954409376927082830227134074540500211783470290612992064112520907825910322461997843869158462224545824507549182076523777372320932087551897053318412032855153701676057968932706400292010361934472149545965075544894844579727105922530401173352393920187406419579837802394937086128720455161281832464557536076593594294810127075879774515199314691231041478051235496287081607431452782750556231958915478088869737399210930117362892323921755420343597755994725669908451309641679577307046857395089152355145920538291997440898664146816128135158615986769025351483526810744672710118997863055905660832419506687573789358467609445962233999210611216079655587001345931030874189955695181580207758618901743009620915758104692268942409865575853317294708168537995471729818819146202852705337066151819241479007234415235190115565367986505214949469792272743617211644679608779859691992685539214577709214845436801206851693467307894319778616022157759206597162164005791366334758192806699604636664444492673938189165519846392493160628328645368392690151702296379159611782460458088925526682591312292554520276506653381833766503856184334385031998848335248728801355426201520743885994172032718219522568273219471285634614330563435328513842121984164138912392191099121437303355739982574747742786750664913540630419313537561193554032601131710595663047428041063437732721786094160888917137758961132707090235669714690570155604899263181496691871243367530872228219467973440645139308370062337741462165539293221229204876125050765018327838577119584605149067548543710462469722141520548786036025956924912202805300050486829452713032853926377665877789831883143181682738606906650906008321342356524532608306491774193220763171039057631293092072792229780508468186614124752266066076259107223934256056319922093968765963093816037463174655322042611918323972264530979212091302111770980690518250104508492170126173398486717559399227743810157521262017785069488758246675769248030648054870281112822649386717214542212640992561226705345768107072651287202898469395499551178484523765451192531516134513336449140516734557450966306378477338111052596795816593873992058957285719583589279813431219288710460999364518212377113820460952680491192940692836585561658235607208126613966901137912761372187866835247012822695371832586547552397295416159514119577199608830638961512309393792416096823608096534069542108647433953595955282778112676346294312596736024426720597348959982923302350875017204927408890429901189138356812001909080737249197386901135885220943546672326741680509351947288228205074786649164649177447063133258548918877644935290760185800495669456478127552438428595556115997749928332044672991024029577728179149659900445798107469597344184874666601079440831542933215364132672600832493339240640494767256815794013038148990918910814540550241875764193012131322922166344865595329114652043663592219240263723812442581802964332535304342476867927079040946829472186783173879937051555770996512318663839778179888136433778075355204208283782540824172229642740125082412268034311211710843909150716360518820087063724455948229685479789661550914356016431693635902031976619995932891984146055299590107425433599251061437847920008693775177301781165677100058473435560076665253874219102210396051921622922818382440612386618902676274896379725608165387824495558569823429077730534040286297070019588696722406840466605839003425527050766470224669593004964881675122239003007633293391690022086785733109972155512329065040202022584946024301801903059911471422546884344156885149995423932164227859477523335743588593599764253654736420343754915994598004404849115312978660827720097862878121566448043987567105617849584103506041007275478651829366695309577719626219388427773803605502095991659483617025321857628888895945333193854680264993916753900627026799936343098803245883496483200266243197292450641110215657544924543402005811890874262167817323096792430978013471366244250507702489033954418307674109158578308429127784771829776181450704243325594749228302366150549181340198549378126418524726632584829943123085070311574437553702946571832915789724832809767758543849027290592269728842126532673310931417806794166583990245026925456027352723953617903252436040516486975480885456590053865696531252230869990324667485194030464334384395342820883904050320424246132797075687405391676546938069210282078821923091867536456301722980473617562427816451544773396136910708435126256497339007709162820964125680402641433718837013616381169056860248482957543472208223659621140742729980449093618091796601211246770777917058189682569707000899262497991967939069287112962130944775717190672550767010541177150407629459502851126319811210604432052661200580925881947758958108118816238160607418200016850037921713078818970517714503623379966471922390606025133378643926716260590856173899400993459498537380011045930940334209991025971566100269480020619978551607471581520957193629371448910883227321856563549546073242530472617138541582975969705784366699562521806309801002505489341602273166785267625596347009590636605870371738563555637576116079692162355696975501060558574951052022759263013651508482738473375813066449669235506991714023650297488246923570117448903991415818225221128312125885234790957736213543515726718906423329291046380681996507156414962749014558187842275746825591405519647305342265762528084796612530748086813277831764560422113104660323760153543385866112439739599118741826374625023899748536847574785151979695529577638460258528450597315568729372442370442294653931681877157519693231766492955958333226440004392304967405753257345134370367295235565928323469860829565660741530344688552941966662933439578711564287002009861004656444579018540944677234605912439809448390036380141489603890140931100256102713482621330287862562100045523389840501260352783792511793055772156613567858261788818803510322511912550501046752712253754025022472602743806553211012476295519632384248374172250203454919018522516200381228835094440471252884658813281889196325474662214369019261068224243292184017025353496586798526618011160951067663824304819063835519847275076747848553186060128543172365083975441886861806945858623162321328649085537706509784677269944980819672544864024530457632189409388566998365654690486193348486917369550537732822830648003609278997233368346615778664200596770453096149255874304519063789510195170620041183571761937346579719624806788316189515298297172393802699222653822708003149271430545827140841063375123269731786772973301949475117308044592819919629729144836731172130352418201132352773217737341679714498456164503208365408183529368011940250572110827911723905114565389604553590697500804661380547825572775953724627553671625657499116274084341605937935663431510414123762443422898810526050055387866309232040166684909645161550020671180169755027348279235728139571643663621741473517296439754910407060562105289802796146507976721463655340757208793370889420617842456163434880030828844183624868206763761538363434575078317220682851158349260841283943110444113673304454007139527003620259458718589246358973158655989675811902853412398133952835402983052515606845998848188496989111990673260275722791301027253901384325794260004575142337329833322005869016469765328105279999429544626134020180549464473057945342906190471929178591370651686370894325952784158316252745009437735128609295808306512617206981568767408916074349108180138282107481926601863715253867983244077669676736744462566391289156559753498227190925365044347129176586013545928029588139961195489606544458554577897200470406735350787083296438560672339585602821531285572178148418426526100913970651144883961336341077039170592188897025966092372480408203351570465851127631570248672546461125185015382622802366118882593414291853239952882286604157582704863295351396310146349000949867427420638354414771124840834175635210966060297136076680443368100785571337542461549801924009234521297429655024667727900047984609432682548820782008971253184676958167496445322988603544561114424021262522846414545860809305365856960453247817591195201619775377329683819697708714486198431744493565069163567403111569933093564533637296142297999456248887283340573469005270269239985533265910516792878189181059033089064802512021213006798134760637821736125891987224890311436176715899705110580650809822935554718898144194846737828514823013353141954583385096041019618706820018737404490233571058509313544104753421979583322832080319722733881566401528894541628823414629809871403086346067934520701189479965916992234154180991755041175841524904798755128172255216839947261797317027626352517198260811059047964356530181811530998733780359167641344235051565337765417427118651831214730161895024764492977023582011228280894741763280935430639429870803943655568790129158692275110512524314690526923161942272555017438589900247305562106488205244288813688265992350428361645748910168723617418725123978125215814182540943820979322253657591668640775734570515048670360029776911885723202753066871544292318326709307845254995401125261535927172710480970296870706570976762742800077215935221213048745112096436534275853531944548789507483244697128786570591281815611095236645535668012159137950141210868377876499280367707166105925902465277970760118200517403698741151465509252138541951682908847225066479183329641630524697500494183190108017459372691157878495965386646853597887576995691280325419968964488301173100873768171943679086426526554625136892474487893600637798221189130085796633466090835383997084318132478744197347952384020933204410537928849783011570624947822333141305341341980576260056810777921621498254618568835592515314154094294291894788567771054477306421672586626129766226319274878990849137309640017388755315836185606655874520279727983920630617684012373143537190865801505880921548205996245150242030935403267782364214266665571527095203394681485852386837496187514307765364176712231231722921759878768844578637583018922079486259753523345071197519336710682510419300294747290197790182465427990060081225330698030914390218704946572322479860949093739973222695582511851727926259786577833557548464992141903903634401830357654240585372894543183164591632312935069615260392695239891458918461058887347676018996219136234234245299290159849431963727480310509027238683134312296194027690241763455068277319335068572174461866936477936171522061706865970447677017381185655625825052318915329652949492453450468591362195211735319351781878311751883864890077326335152077638469115688454500534577473725564090722206502922459599090086797437462771129811033031658283672761770356559957286886784123375957024206552730953388067879663640905725951740989271515475880939760254567442338500325118548626210700793455070830111973388198048493355898770790272669406187245274970202904917753012260953626747056899561957420897690062964361330688395678591599833570237039705591818005865695782543905931361474140232869804508302777134427230555276082330251671212712972073200904588695382909368176791466399626672166597627653732624181275001835740500156985874437816153593930395970527517826805023616168085742904952989233726556213229789842058292558091693595827609019650179051806164070683177028354645295158933771629979189818139385838978453466015664918948435473284456476544600646461371172592407061813164240423550518187674973726663169558373410522434159681681424160372835432147420356313511130774927358105690464014228740716732750789276142279577866933650701785128185554358044356188286286703334820186905522557062454913891516534403385818204530437785566458863828457501482675832046717173698822802488225491064510401748991061820256111020159158505330270887365257551846875303732391904881637843228173814559632377631856967622852515971679079813667777146505520815084788011721727282552293203790879011541105226496284296365021336101138038524836871655103017512728526367220429634254202991460039246100271141252963070908161242087141175619056632619005683955900963279104615051390429176160875114817449935124997295936159418637068375197776568672640504498739190824881444436106348621841728302457840279587195748697378726121629412427801662764984242883314098125877597193400944378496734917740691141223539785725514795906972430710156276869862503964955262890565555212968019158966289041656567246216667581983967070755195713298755401091423374955353804270795155369548780534670632923431705874139077502443230900267582777225937043374430672431078429926144163829812423784408661155920076869689791684426451307567659508676532870472750662739713962584121473360878022432732416701151266805266175606040126577156604500351778044775469441817296859606962891909615631537921579255922836649038973460145590748343157816517002904580353711878612174812975365384012096148808038146161425138995905185399685143646701931281028743334605593748036023885461065633701202897835004914387970751032728440839179387559723530768689413823183012679720482325435796822579084105435960707432994449958001656875255591725205738838466926973002075606640168683431845064866307368594729451967114285504048045832011654220146391719197370584059811668113227422166629750134789019596635727234575321910726566763094147907614131201660790882350038709368551455053911927802288858666278784374174364293851855520476110582926781894030588639885921050931936529804727222160201118314522259032154671046826930802239572382660536816651653848104582679007157404187044032888870509790867495003630122113652145058788457525004627119531465534506670897203483756674705816429947701160927236765217730613602346516277912626874637816348326527729118869334180867533749084972498606997364498398735044067859466456041850840172652142594637990327534190001272514319408695961928817351006389618814246034832514622889803958257031148024884958859022493221752135293086976141479498898763876794924813237584452002069974585386121991327283369178181602364590661808514036834922486324101738600569802635401135368578391909726299679187829983326012693589340032149171249417699543735859803796136210414781461866944789849381889760820700110586871174736883148468808577215233401532366415059734130598628801783664565066972941300989984536637257132953912837191231712437560110158863841657854825392786631741048903921914433966058926910434483974526230741769125490696053674607001080970099672397580024507104087706646087731483940424919585996460233919350957740213907706530235835953468931280178401019071927906182240955913728487629561897843375791348192466787003151555646663264751628505342104409461993171593450679417669946873409861588925196586522131346946918602640056665285937966851275762680823509893182650260357534426354786489949008252264372511992598971049521817610312557337917091916976095377861302284302239654574532255188227801208330195602696171501246224377987411124213286440915941443070304084818694813165382027285594121666551105076669331500709004115361668608352679603620680201462673584727491927798699431695862821493969233223768940757660134294668366802701857589921630493742230543338640309739958969842511810572057826980789375442932657472037354367463811692273125165806779098666307395027625736563906151243632727045522097446073888664861486790748380015841164714044437789718561566697945140645257541511514110324252842544965910931563102504613792868245989052527103630704231103166706503444726407339525143814977324581423975193695107590124520455536748845001527756977778003552259505393318448135782256206125404260533192423071177643694776717943280293331366828136239235967754246133340169278165336105039085389132831181221355481934448894797908957836731393731274363456344822929768515318631181276939333733499905977891312850023606244132729782039196133473150307718385910956212225321656254632533918754293640546214314221042698060546775477318615251881544016540535703503868742184989490190137937189395740776730896198222922419555711181296339726980340342582331025536090024546852966711070214923658110835112100955063810799222174443970200437978761243838243583078729455207064954310824812343381514434290461959849701194716342461754659018858606267918665628869722374878148700816871108644239282914156172765193821257068899768788979793407840773447941499479943902756526017146943691683375422007361105174404916513837259711590946218323084566810597891210894194220723494483603969671400482647299792714875430329661143661893996278566318422872575951000891386024904931818486984680863535584755651178443405645520907738563510531640235917679055041446750687429632108048054200003984222915596141500873369228813122510485894865160848497795769458698682848528756147949048544928144520585634393239557624214396471586175138297475680392190336775800841149156056999844514490985091851887569929458686765604890827424301840948107969215160110015981977753951290176455222021929457451686291266888566689154400349056329337757666948315228004163500051927265655959542158864370384228296849369297405581164030172110904643031568887402661391727305232333619188829373093718833588617794135886940025714519353479197081695450957975018512731891992687499871257544159712588324158762171929606178581401710547044057170657235578033405394688756272353860103857460444759855038564197601201873322897409319048075452595523752467542126944217683848616593999973787395034808295134555263356017510779340518237990349869030786093995495609736333099857168380977144906932393143676662023591328662112412949980695388090820598716930097979784124467543826176006173489507179191666445602288988068323699938701942830887341105501108119548721982978636034099456999723457521354198830880788677924302139726164894795058114947162413296041234529418495844708762473694041546660755503195258078416690496238095946013705141393563710259381301307077836012342230682851091203897002290537529207239637364131362843932201441735846129329325312432070249412331974241421091998618905393598348930991211707394118718495508875052546881775301019905372668344119656470752850873047515500487437195604951251308106363834490109735680473150105580174584973673907894047142989200856006713249981669945819017823936834068888369101744090364197080195245516429191091177290575413442528146296105248939195169058955452368057381035546108316019244805153974614875813842057365779495028000018321587195272109050350022496349755680999611692038846709151454446604577285450552285034568828809759560288200679684883897859296858510887773261998485760289763954713706584624132414122735368630439989511380317094434238358051570254922817113342349660687962266400326877147329713628519349330915286578693667143260267039147418214094269144903485329043156282640556188326077645018194742452154961275183240786047337377651483627768687577039482952020384986477026634384375603562462368121167750530058030291164561825389352685256579015476040755373936862904178167130125567094472170596416712963617080332287490882142370312788649709796884889846672450471983052354136342690965856392978466616651967653170964783099459867013021493290610758249595570171132284267301418295587115906826878763417910208948921311297749069059861527287145318817707037176230483129273453009385434529140317653246484915942496641609431494786846443591636041388035050377007900130455217553361063646848361896793330093206419938890735072557638033642970941008380825527789222978228853229118079435245807096223613805953159379880605079218509721716373541204138953329009591513582978809213770490162479242295656149590656356138283230631615604693020358223241578554864732434024422339883440166435839259763934765695868143405333707022012314022364548717903366795173554628412802708485119423941513033150424640624608880908402492396584449004144039897805213100645997747348744497438033594341181841984211528427502977245441089606782660972305623369664048712301659573735027145383021654160490147544240359442226528852275384869615016771667448456429726586948213383831644489814820805722772749810585481871933521659252085421403826529183306338196277002149244052013272951072796733811275406928433587111127402352117466904993086772699265174872440335699473120781726895385777913471512635539053754465182162878136871709853387994361212070196674966261879353401796265908350284717501917123383396909609055622952411284437840213218461958285427539307091109701159050727592704205007898347480594241912151888244926451824900336456228942102118348505979992140989927333721808946384927712714227904667471657288754592471856027626034693378649295829386852311116732883581476765622548056524602928374914410334057301072279580772678475395578210305665495560035697700076355365432920953644491065608813662284125916001967871611579805479383379362660316179085330667598277419096510351319209627723972204842947886118813631657726034026635419043407321816227575215557052174485751687527683664682166394706805487205116551379696377368222246709892488789845408674439145373518447866398676492308716642063913616488427854271060895665239850898291877606847295540674590013947602377072897564260300064777436840499058085999035882040784100491625165374676616206065475081813368986752934182207235968070693491110567814853618813309350531769384960850290494715718589622027558568710765546389434625520397277793657585609947339481384135507422512960213446254124108745087963072747519073954068843728981945601336061925341933420196365968407648558362964937942960748736428667442919575710792868076584183047073826862345299462744423809777127543144002769643877119412131527940242219131179266654344016630047571972974968407500608945228064133024117539993929247267937339127399489535756808010303118262791210037782166807578439482658485571331865485040249327917839198890815742051316347007530927468749036383648378306272608359332679417219154131958274357633503637270941326878941917978104826371657285828778039207674938581085061171784679140707701713700591363541213390489555406142894514035518260640857085354321547127870583986025465946749458721626142911306021595061719707621445088354865454701387804655697362738605421270078303751800347093343001106486092721798184301755839234317039695079459401629881007358483706687003816883670531557025947265354134744138598237216302893557782853175121457529836677628143378542794079040352221896627504838198524932024035092048081098331315946866507353985515766836329101167704744917902020818140381845042477598391402276684570814989025890361679197601187622568909749622062700533122713697357990173227073620431226121348097317312685871269295378384889835772436984538844300305811316463881261866684388160255712793456075048211482523639133918360722081243586910573715942358304103229972224814815209756693740573452549449956846504452151282960613319549443200478593719331172091292064698853260322097412433235942371892956511074240329528860895324634858268785901116324811639844475188526091496692849434789900937082351728061944357486694395823052890487349543061073435153086466735471481291920570479281287196896662094646192249675950817570828019610154155664265060616124760780672131130212005191729201849021063114174787563402352677168436183269683737509300124178849435616858618757220332578187826860906152619530880150394477990417175655758819677390090495298708352728226750164344630215392762205035256372161098403058544478374732917782170131074639257414496429838500078932103547071305423301628604361455816050544769946607086292274627072329664562358000301554911223592782598738520726307359647037339247816820004663021037288640854622503068139963383490825867324593402992274651163866147998410030871483586326665253505240904567736406277749723757388233773104398342703226712041822372950645234732519424688286365888738251015573578890271117061823830784982685592448044957361763892616761167796647067036380522162648738651774557647559132843862989673503113529530051191895722835864479334309467258727527885855746096932143826891687853914798289654914204512468261251846068305537624836048224323779002359327909691278264707048264801848427712823522802481711823851966210191068448957773968361245196666444075530864832359215729642239683431962406664602571309810794659737747312041002432305734889178221039994675711214308457055976589031252763977153968389188829328521496446855324066923990450146394022947856310716129398438974786904093330636656743357305342415112823659234674302995381334537510289865434133269350643033095063002161357732609070115409223533869382095307829346219636679190078056422825456811576627154617007108940701841056294010082689521707392175616265953757411370994824544257712172968689866560047463418815657545335662065062893887228762416074448784638977898761465029075377319599661958673628968681915467387271165976981952544945173068498325727998227898101876891106469735577479753117206624313560041848724715691042833849033027985198829606774843126250072421250848511785756823048150468500348433646516255577942746962091685655594089834966168528473868991858739429889637603443036037822134063873103906812419551064941622128641470315311193905724835289130880436164275147920164539727120000890621897959122989105530718174088803330938895992589235978582151033094223598832703338426749788598666247250172509921375495170241939582350535775821974397397833341366337926756435956512801735684223525202997230333326053769135429579795862833040940607409259066719127004201987041480885194901731499321669880338942664745392531732250138407628203270660358509016362840638235001938250582692721127505329496450746769564394792225663443035171083065698045125115925174419219322790485644160193639312865577503189808852362626185450101074412840553852064274645961390673359022139203307521712087608656095827963873567811360904293945070829759343242522300592942142670525895172688058943153327988861682762361738782767112574475454588479005645242976066592774382035487830098169361477774197744602501609632542538789396938783476175252468663331522934475365865770133461761865575277353849804478136865429495223574174817501349542140564679746734876299026620117740108226867611800771845712942707948712078673877228611573004892713355808771426906062306878070158541114713904638554122262493084296119275482168779828247389178315875148922618339208285705222035636991227439799480551957859765565994791695751404929397419361181899283611098938824410554749948209501183606742659478422379164196962474144088402335726838752904512151346553733822009407799346938253597254263194312212618786039056677471273783284115540666846881424223108719240382865594565225985564128657746867064601852052627879163647422753316059356276487551387182982391866719153757962483101315216662281132409773219831740975844180303991496894430997302692115027113246630212337837277103532440450672558030696193621805347887251529555232719389281097370011293225633943688003869606747297078960417452379905693768772457751838921316319388139686870776116415943891244635049254290430830770453760496847256092139970397592379771653402611856885515646957562985026538977936763310674715519732471884164989491014563193065247211822610502914176942537631672485299022155052782722121567668871319296001429093232361420744922631412217577967650121367540811726540615292927028081944864613662910307558244162539420679011830238382380410620178588413936304844524443302245018375683225324635290527956798074097971734552854632874032877389677610296638937818480486127265030853480116886989943167616861662969295624815010687891978310022136677880247056759471754777214408104423885507709330179521428255262975767179105969454706178696880513989214729934965055274807638891259572962585519119972733671704502366379806194099574702866403658548531724294063635727298526077705443536037874389108514915353306304148593932883463187830804477579794904883283460062087767631589858938413865883946825802992844623122203392202029606810949730575327673661359483304459351092026902007396922241689897330316035933376484967515537447590216603342874416129044008446466725687266475276017893538880043603821314208481168165238121975768691161740563775466709726786523058132809184105095421322448637212318817028274681080140094625872547550748819684543131405702030416574670383121173204605633195305859347811020539795933913619047282163517494290228945172358969400681306308608818507326687484068613970977769485121091574482399361838922393924233623373276352534036445395869838283139835452517587063739345856687220612217670190455214787210640994219576312948471341316699643366747382176363791783625173275946086932116954994898458188228586844662005810181105850946886906111912513991584123237405733036364341561876681661112982494270487519917266356071685448363434958866488806048209102016246097350040522792306553819591001893713046387352808346511608414658924641860213114067791974090288750902999348303890025312414699741022836982080386628854158710899664393914274668826465633759907642000031592172600584235554281156348363228518068123829302558916102852841676091187840238105047952535925059727414438736743251706312994692337050932512584095698553387911772777293219732154036212505820925118659782638884642180438145347376444692560751625294111223698507270733514218990995100510072696511675274895377658087122190528191345562706348920208527968081555916667328573295711156533177631305898521163713955833084605063825808754116782979217797933160721096093939644383243238059537128272477217079335228650357157620803544702330874686395015258628114671835563649658520020456715736493933280705260902846986923011167402439720964051265381495701341660241631536170196147614024016051090517543583717024001279571637069260628896715561812207816277343824079574559108317859003310593271525248942235942538135124706645950080909347338429486227368616214407894820445096174287491170863477412769028633529674897557438659054213408296131054937428513235473112958040162422027392212662564557081599256415866893788530527596004595439707180731161335109757952104941327259121431867065298953180312277310975313809843549418230366708550437503372441536737884569491074353081144300857910531118022157070477254636855203707193765126874945761424903267679877447946954205387557287221325672264098925200738436924612565252112225232429550790904100283052937661113483139341618155960603822799804981255837572633137228385488847195230651796660137683146952920079890867630743166850081873527861811097093589279418840351568176866065474265068732770868231945990119054784104196115849765469132794561443569023420053466399727692782924028514307644219923051730937922667353525939323990637238501734581778457983679053586869681709904647808342807636863952455036118025407443644933964343071071040165099653480872941319987271453516956433090160762362551924231739637284482503181889015516863169757288785091600146007097153463840370407451457859748154956068715670576428672909099463331060291862128516770254135674088800809114232555241833637666392101843509274653571521758011230514301088202733439813951749368787508721274894357080921632482977635707282742828316114071301745177240623259347709909132536496520656439395899969395477188756348164690339294119633318495267087495489110621957784468585400857618777029878310609150406746620097930883634888005866203854311639295326432609096621444312872891306305159237220245726259771326696181345744059276018828571536793367173628390864553483422188662775653575760066915651639833033642661567410342338034141679007376318344269391956328650877065477207507297089242801431187444473640199450130434441451803683001608881482413293435855696924089875773025842528076561200190816700168043463044472138070741561300814686337250535072329685303761779594390177136171719758767777670243866752567556922576345049141889310172450532169887608994317205331885984793888430559210806361720998859737407345040932967144982636935181198070229514568318530245086409988990279535884966738280882445169973053216298033342037915848635594216453889763398144570684775071325314281459470886642057986165566042573216079272585529962227379710370508646586648856586911146180618292200612092186122827119391677695349035253007896482645333125247867571594058110064073610569765023778211620903619351881430843650198956984176142579876609117356515241481130477143087287385016590777154469212060031695398650592663870151821242198004474538277885753881828107993323454373653029996413889315536360600877351967163428386306581893203032938018386863533096888982437823537173753902760239161533156540356762177284619758812538533042182407375806694397714325756850525016391334059133773263031860667199059941164104089593105649985143794474493620997060564419247283284373480965766757914159342095851457630990213834815595182079810594424987156344060189101217240721321477806189708140488399156943378436343247034109768305214754038303040972575903120612360683861049571873471836735785200929524272958758808884371491958886853311936967503170219130387440426171084212036459673804932765798000330839811280423023019219671617329432415564502813022775798973574275101624717308623662562229964241408036074997688783995783327235656509211484298559254552880641565312043094475362579845064474117209836340224629775293168814997160581780611167323959233995515940247397426358502238851403642347899509595215462414831768724779841012057920426755337867301048738803158433045684923084327166494794584130981662712835629451605772573786915668173174224052106755967916034569966208467990247474283746264140332723869204904526213471856012489143937155400320258097186084902768889087684529769811202033885697679890675513150895989147566606599480308142623147538060121923048768929055169843876175215769386495038250104732473271637816470939253085032462125712193546424171621942455074001573303448883318190545535126736411221992437437438092304136820595723670132195194831679986987631266792462167066218480456118008663592281816937927931020115164427045088569944496551018614372325870548243264081912305233734314654060392447626491529260339045613416864651652216762708665749524470113194101911482129733696074151380429611732789467115989885893431178013135745877794398545074228529404269783473755075103057763489240904430240269524715205637562906431472508812776401701326677028859885515672460234590067814849779864652192922179985379864290286781754914251374054381827512644083209008768716775139916464187735994226879769500004968598109335000529927578162386077220977782204534008115428861098103575113224374848931822145783319003114315167975365059815208788710082014815881006995282428054794040254552828183591098927585743976499983691698342696729660650854790588105544890395713972150941681393311208155265543708677142771945508353224090880864657890795275538140666667977413482879743945627922804593544363018496270809424993585419784423743360640348470152373814627124947709062902107407264027582474253346820481288840395222301965959084557989882104425091549063958144999969569102415326435443364084085313311573052744699111420025553726744424713400481243981641463449409240019928527631512528120032540309766409489997975896338483037725661632305457697242105801008817373015726754328268756316536188624158626909151858967022521751285987463374770435374828528549180452721722447600472518884112151897338689121590824024756578892635110915705968262661631560740899659674597152135460582963631201896284176102250460493904669011289313384774896192392193520280956387082755160743548820418507986619832474055333916720093768525069380520124122490258772402237125737388221410404056017849939062519937848291211270451823317609328196884890615712897702712140108975014066163436110109048565304779270804231623539114867846784898694663965633692475483814444189673365577131627841858903945867174028550984978685342679770985550565048199400986725475869747322039425038321672739017963804464240405593125002479496144507500962805092145161917457245590099676173772920600136437332511160113978053876426339074536365281984832925856107028277364467137508697929116414721297328568187188350685333192708480646334996651191885806566884922366951941890223749909837755078820552095666944964065447496959616438747519612077809423667612273459936403919299012358097296765860510636955859334865655928317220969953689507966435574259892632079790252890457633307018346641479472060462783437945728368095773827222460462716439619023688495975475550067063502244413491527082982470574617334031965734994720043698796803288843007531590121264470381536524911296775295693214809196651693682484923809725077246986863661928531713485072460456737208394676120407684724574589767547038038894605063607895389631243114561915525782433940024095611694217415270001787381890718404430286164506294785532943465687958079410216512380422595160638082042677411143004832525854300654343948987042406455995122389466904741936975912094774355930885759362416488362893056612814867727270588864890328373892736081979816978747861836531467568985561051141823621270600711671000987188131673255668957337895809274993440494932568685464153836387187610880074688941568006841617759573678274302684054130635332537642102900609746561734885133234795866127069314225612649236514372097867759020268356732125416379085515274900880353050901668055629437487604740483962015275888343263483227908722691970687668068628197419245447056216200693904035501366108450989769230651272956593532332831037960449739400021164545810842858865113253032855432028526383425008113450864561360018656083547712918225161499774555054464184083756651353060321498001738928250953167308956983064011736478967570844839326798788809239686627192639392849294590254718810539587020089769526284706497575333019811484177409478060427876087802438948163802671724527539664588895629577977887846925728286604486424913588829645074560911904423945385965797077053639640348706816945553194634694770709203611568621557468680265662383422588544705707764595448404197731681470519756547994521935130101130589321530921176879131396255483578528043699349006140204296199705850310037373979859096018015890643016966443761467291390045766434853945027435596090003201480634423913435179093246081623965658804342751124759539920033841547853642255040279409072199042584851270703282755152254655099648896660648204049069657235256645280762536224240889368682070478618460843054347875518960401226256607539768860725637625959883080778469584772966376217660023624677016496880848217612386235541056183231390602017742729109214637045603964691621530879787195276359872740341109998946940047116247323654365097399191045231657957101868411899572538533006683430961306590557292946791488433429580764799651507859985322967883895461440660611007866193483931845877314315959962960306684760753771160530832603622629120711815029861812339421665880094917087243095633837174468354073201247353807371012703252173106897132222232180489300161043962146245342627469477466162984519875239099399263521334562878187975992195426344882921373449254781018390830222535770408316588982723634937134555564171095780812131375476720531952732801215870294040304037928254704489448269846197644966197777677305024734462708388199766130614618184574164430185429542650533634575333810764906772028730641827207182628418820051531399834537012271752897941357764346825389014091610168826186289065094179817339978052282675857872827526121718927266103505953724014387055197861603542250354569724735228281710326918742527858204541336779435631502809615092545707570281823410190701144631318863798999490926426274338373015487645371291569663995654587084610989628393574524734887848484213963904881646512632039905965496645644765963399709436883687208070827555914348330755248569272074858607929832772454500327544851791747715613461192143825758522389371448682154138162543282924317756956439353470244930313299907239857188318103423566340846585668669865769562692846501537430496850084932401338593017368363896382493949491229292724566816816023013589329006383227530403663710335972512555290283040168497819157331339383524426851471688438174914257130631827937071145609612637799198349208633299758457737366445988104559837536298558563037565055494905035192810050154146919457548225913357474402600502164340748440063337943834042027243497096469894580860214311403376613654072272257364527515832062718927054786235206615399246305603607085626484572124923160663323799931416310566059349776448148690014474985230735706173395533424692419542873887658023879214233690916763742406247814215699376878823906351754732982043104377779305765797360198216889092029111571354572605806864492967142104842108925260956714012510575919921487714226496286093088075363209138153541633970561976595132007981134397387608888036749888722885244745951468455728047636293817400746677181750480789026781324342647815772175862409301204827024669773104723541444676133503734263566557567459663338288905786598129194939270497501467122157277252007940811377534787017422936907457714040144489824734631437015323454441875396196070450712163113249820224975328407765738675332974554907266956182205057029817549858283243128707465702832691582029293923254142598648353765986000992498102537937371602190977907174741423143162129731957376452075337349152902280707966535548834841388856633069740557046940443404960279636236261627630945748608671172118932619644023374106801599396211802991316932565076941131520508826092231060617626625439580534121881295941675510689385289798886086864933866364328678468170052294047096238517353543195393391286156499977512032864209090815623023231173133219688299995755741370072329827871452839909709338987605714745160788819129506253617340192909782573817370923689667653373504993034141662829453821506670682006003624488321845048312324201198364817142188776781036125866515437532294425656217952352376431375968073208401819199601687603073552815673714836613015728494892958257029232192379142933323951433772311481261566969930499558378339418408500780842763687444078131528007125127818395873027702059883621063735591735452165013121311061411534100488544317947577472538247450554733357067473672727907162962156893871056373556966361778678061326580409041892532267665739032343203378323871300136191880705924149590039701198346739633740375926336514196145136601775400623268352660842871105194658724658018784211392453882347673831018167370912990095122152199000085981916321684510466237294328000253432146661344707013241627719807435223894231796791241455296410440533191963192534938846929644224108166084797692507454104258866058455468961961024650742643027235479115952610701304055695263281871325839554934629171346485678537791499640731147131623009040283375571902349730353845720701038176469437636469129895456481666707526001457235978149545200366505413279977011824789963177116630944634310062936910137265778121304910307756696434051315294769419324811531666580737947706612730299073555122427707452166727457178534612147562088417741223672602503856638317954504512602815233149310277308356121753664752343817549262385643156354006070041589522100383164983733482287815354427466165900800005820480719874598366660951356604468997577834497156778526589810021147557707919813248795544081476220068690839771843775340392751231989361556128600875586729803891086935299610863858522083049781432742151739140991028376539099477362381369926182841565604695263705933074745434716137405622865471000091702196716272116482596485751383558565438978946987757232994586076142609673939967677380420437978635706649293987740073134141172290209869526816596421748363233381275667728607035184183821946987662819561368657908016041165218965105765435248168080459360570625741305346706995434698000457056361081731125217223749158088817052677544482416220453234096693134252192929543438444099497037800692262977329838404802205074016440018985770337109670796028991785612063163498636075670667096302354012762984806803654276144632154078633546295707021358714486762262645649508570684974643321202536399519447335724478036469121090637638060494529067685185147547406792671439832552089140646452674206943922805049326924481348075661784075535256175677970423057913949836972078458198725857382766172765217275385699929257440704848017850406345084456634337465258923478902769028841942503437947834462798969111119551936079785921997566287389813964151888380896178504434753731309635321971502563190118072691830991382070403349723617803364484073894448138448522002673833058492133612735013678377103237721847675299748893366597657365745116176130910953691255136475772816227449742723642034625513668693462457464485764065944258557756926877876042177078662915261566466691017148910682889068084741860791147544708938562260949076098373689193928444386875482395289871761416190266933009951201910348914224958208348691739905756051358158700733297223774781597581068904575065922978220035299482088449765179856932494928487203893457240823262571153975926372950839516509044388839605129597967208724136464514963845340811392032472097552429252659194177500558160977526575869627602688222617330658497491530268628692112695500947163970857239114358077996248874795496282270928065492535599331806963645727389162717436444540711544827560222677884051904775608380868774213633578950564891182183875863908130879041495828405639162694557110745032523318018865465303598509364132676775220947190880402581586117153253327099109086423673716314994588226039215093525382061794860659952779246445993867104823321020760897920195537392871497480372196994639704235532870049228003024612189925412117207255833926775187670372868833757671776001498732195185821691865692592383645614761073210231984477990378260551916055129297569537506642607156005807745366736936786683247118508388502168348643568149129375676098662512424513315533394738546652753133092237906464727361816804093229701499125433989954990933388756108751004365475424498612702076421845541501527435089036245990357866802836056383867831374668216039571524565843832657828225314456128042563458705382398990048871814437932212399527812204762357265475893818689827805280504227127123114606600807971176735459454671654090446031871797771168092470884875553858216289555797849959297460301004335942037667029151147437053870135132519841014306602422544804495980050003595840777268874958476850515082516847382954299949554088712295598933395616801493588274187430170598745901118469304293291541773817667321634261927185918931822966288410671194139993199582300329606989988732246558370798195907953114290719924403926546057917517340198177080421271386118501448576659400157297512761421675111856123264698875095192064783585033712333183913642484991428234043954550715655047091642830900083817739177728183488796807837357011589196228422091260572759776710618014619230537920178617473809453129305107764425017269259791109717170352218361853334142205325560068044292835234262329603796898661058265995333692521988144581267453182577351529055619131593303087436400494010609472822732888900281451835469170048279152018878529178516422790448832158796511122273209263769290365940090779452349294470880848651716229103629160827647223116112344525130410818836562187464771285221207432631808174696449689829038106115633211898405682561231002786960437164998840424413074750871603376532375880621722247489527663479532866344561301314324877865720726738975874912499343291359084717924557883955831008722074339714519062880248797918377616090379697150326537427202330764921430984537274450206530871993192807907611793903344998097507295828381761691893239568122505363119132206189511093242400990185875418438353542765197544960896722127864958820500712496223023162874970352709071306773482719651373637823423716771355469896672287309535233910216394812629711918561486153849155211678064332419086490528691475604046486905648815140711825433082696826066071147429688646246639456188409348823216292414827513855068686910223310116132032035112944375780080633879311947953368254744235567063406284602473609735459332954678659935477163757536073192055636434111390611082687717549878447924533326618505962423224128079064470587369729893292330432420671655363786336415889331531471916656231017758787200684927761034980565249514496778520270515307415864700311065995091393745643340386819195748516128555588319460557025835288964369624454777417156206726005795000383280907333760605691594743821069161135840030475394232738647506871306361012255763753178104828172640069145765351993530216414043882679355989910311507901666202333389688110127880704720104673350066755453752581365025829337009215437165881881999699585273258356982910426820112470817631167806380297586874165965299617458280791509946910477238848296129932441333647388244105841329559966859831371248866261114000866446623756215012884840202941504601764590034602901484764166914144576157612898031067538247390396043376785853468688532265224610299173089561590290408787816561306157430090231217939784666660963257215097471060822787879860047498356023917494645359731111420032126350398400239504704616038356863594214678357159322160351049169508511980655184634571216942522494642440648399803302423907024867567655410936514573040015077783504682502942750772475965050908657164370535474134740328824999597166406552443466013668273020405408871419398499424885250695112382363458232974409887133597249620959191395307988598121575956569830224937579852486835674399690642711922065348235511502227000353473462152582208652965258625093110958542286404576099752819533417195209530477659287312729471391818834263640682821114489883337885036767742440266597652480034899455117170396061515781934103558239585196416627227705651754310229014961996917983509725786291027202419231655325752573158546757690554036281481959330193013894921936510829535367365974873754372400279295848543494563684783942868286835073251700914685792219258470185677767012115535653818975369485082850037026029748847043927453611453238610602838124486578122969817274957591851315781285141766200922181909588153894587894613321905818077002295554731653077517074966271918683253034235006528603765301750695761136964683184402416153258411387828669026297794913803147344356026149752056635181255896833922883468804736743634169339848101867174278015748370479520051496593751654894962879356842976097286317634186598203616206649440370636293480579101631601488769981332350792954176310325695175117936221856578783352335838635162757672747996942571338159360791919843465804122931681695244149103584681462178497345017914754830183746293259007891633271159514195222309068464154598852221738507176373152053610329028346785588586084723337814204922576342324734298154072261734025363721156008902666147005685832648852905596536974801987551998971371674581004285294456432571147092619404160955808584034316301072090647822327461058561819289169205537228498567807486589677682059648235406880213048305596261708960808704935612560634996948866350325684815118840072958598262775381594979062702750857288335277368824966780081086640955308269661940652714544751631302583346871631989672951835001828267905670740757971994069778787629805892470029333397408455706737747208162760770591717736288504423150184364386236218431856173458745645268284000480951830577249187037825959551452353693929078692240493069418259342241236104407219759764039651833932815272653769741778239402314348126869361109888311449288317720790248368921471193220963126679060639653221196324329828174986439954546968696288475775438269360130652632780601363253277148233371040004645953566888875374896380277925971994903586479007663501643207279766013232132558621115555639305421653736704122756730481254660013564888172025309089314259961804628589542903724045272003465287155951335899267654991544412241214921686941032526938927134634979675933587011221544962842936287651325675322771160134278609161406713429337056381079647593346157727889161093257658697235854080874774964109652008660379817972458007051530303645472234972610626382967009394111639076653083638637841896045402914895834495164596538540226959653359898582257634254698836132608934539834777589327587635248845441234012127488587905800647140277823440215395940728399829344633157751953570529478532661787741419703836527445429910808613513706640717045849288736370600546857705399955258123301790355484278656833462294090253809658967591511146247723411542183094579734737734838050934242518081448915313877808701362771075980038552045544194959080927376155449559700189120812685620570304943439440211298792525821113370880080908518518302744942626600195873986145621081774762849621823146342461587982883157598000886830510230706224682380487989289126153851683704167816938858170128675027235596533141143660890698054914435952151632935027640577468153889701420317156385042780736065026678192945802469725385663761898346949092103872613287349161385757495671482816657848631864184737497125701079011661841288444336116987276164298566761938665268798290657439895746605566371207252400369584696675741543232390717695593836054923325621149409734329812593368817630560946437923317881917846978969010386308791097656400542254615686595364083495851660024594471777649703598600022870077823218862679344341044967835407146872814107791662079703161107027912810489004664490700466607766176429795827664951508717412138869731277928442854830997259505430387857356011090644389367645719373095619505350017891656037680751600026933687181832312158418263491969498992006508608410942960359333943013986508688947312448334465197033920327616634931962524632513722935051703567732807239894265496562573212333969523976540388124721324292897997158830047547384827947798791806779579475528004566143329417521232960516106167883565722883308917629599469372932349056681937489230488132460027535577087897899807488394212654349413233755457068254567250362729632222779018019239180576319801351826377693046752817674129261323092142261362803135301134331994919918830160057467180469237671685081428983090603801266064877933423437214767143686425478759554381245250176980664278631567188704843467788233907129149498982934153839283664622802731122643509956298556806430026711011946435188663026431752229795095708209863425585953514283193519727823423301223207089460204286092002995017402352974010790675754164855249584131826212741038129093708593385849695389627163768146975258339447200416788791474362680349356993359887743746785372591578445694284452060307110643591007836506083710681846956614087998536480403834145274247551317013137274885348359274638541435609791346835743586819389001116873872146810191202117026945932899659283509965725394505343228340271633011249065833059254421493165242027570001592523431293645403996401323220206486793097432160657119730301365776072030557996930473651837921327734960259681664001288055956055771012192177434154170541982722735297357787255306942544752829616757979721467103156945983362917371547548998590181616596428791683046219504816940031371935224884627357641191795263153573315882145868152812068064771123671845861102805794238688362371067522210528519427461060867400557775985216924217854762442477753666838289624027646372606138998189772552885189484514702145945998192533887734196295362863857584130118617434878500719467536284683845123795092754856458351532990966615109169146540843389390599562151192597269098944731860129963177593486662716428725631420568459408390967424450363768338165696378640518442217955727493268048185793503410530749491455642550097309057629782531648011003174338489142011767751156666386260832877027862133254299845219669904604019004148197057517022689401300556302853133853291395018628063612998582960949289900830278268788945717948366930842021559401137694659235267353078869184440197325791103856228399069373818789049115321026652646798398771427384414831766335364218691972156573764899775307121726865435816095613951875804087938329043719995685043684418125429870525434380356037044180567366393924677797188729514234661158707152986327126951558993310427056928521849798126093195795574039401493368244403151294948104543838663619095484711889326105931198566403944504314825867503113311847924567471171007577571888295989483246726425328947760459102766201742985262814177292011229890720004025825355264736210646313189992588255932146955484145983648197174040012730174159188392912676147695046344765350365231984146485790635919716298379294762819201638370323260459153651137413043860780453609238493603416497518630662516719610005785865534862532427238861846505021084248351884036244881914706754965560774702245649248454745925436121903894308495461123150849539279347908117184892431321512192124040218435683600186537613867455155801775664560800300038316759394195931043238028394986676324077562728086833969740855693432473435039146962067882729158220799244252065954228905429068926605120995005766574664422000706027141761988721633758397646618830738704581816132103771450484854392505854212069984656010963255048287661149001774380961437158683237728355538591695956328065415910837735727185895453725464017052158189084840627516159384483202024849754499255640296086319612888969883174984293835830942933736631111314400163042478980763448825425880410222320691873957954995901695152867050494573585962464538281236321964983146006012120722108744504175158138812109702547131643134537640513042558833936289085096432372908104902279098822311579158772257738193534037110138690105442850764404337893806827427605397125219079308073302085242491240840850376913915343353410636640002860565883000508309073992715279106632664682319084236827416295936940985978425131758463296101850118864081993230113487593811310329996358694747131724676425861108013277507157398438970663041113416422488495880663117811024920695773676333701664538454405356695141774212058667053162519878130873834253036522564475218646867604745695715780602535062303229389568488516030691934393371580206019075670472742931170348585080181063608033592582844168911857682938714037525954179397488144680217727963795685519185860694938450929265703895200159937589362184256650264601839411645567016712130014832547669294892175688270511224992346405533234416156719129851232328090785123972679059784680288405081042252945186096658939727688431652939494692132356884323913034888376428393726438666463207180082949346695814030387887500244902363642252565295690472073749627186320205336416058075198224743317436691513516010479324146149045889091425322091792317211364295858210059015221116327002188429599253911348394805528934201096137893407589757244513558507495100002028345167778318913673141203430335770237525027456046124199350306247352956711258106440001436443887146498988882472652814935165479372077766078227315449356078108220897123180479412550675731237376468645838614236014468437958574337070186724957116522932655876510753173852991876876844358462307427050863397767155096173666343755812902186999732558166095000326436200676973581924803209752381865691348126532970606420667287807432166609236137862650677426151844859775620952745868602770535189164623184802953140598473159889311638235866203945664372755873113264674510901252802235023094911629901310624123151145681336961978886661764339690842209555715476739451547974014363710101832663555298864231822085043258228968119755939082258529691792788132387471132312571807839358175598712607819788470486668409343334570818075882276310025787720790893451124441922236300648120165830627054749614807618599607344643807831075043961287262218929581346622606138237312235672098045139254236076506170767194262749587931668054956245902934854311675053669795950922633366638978374516892391499655196604172443311667661432193158012842936528037896437437020275191212740729289598951398646336280896045378670747552884731871279667471727604174454517575068932432020180253299235036486258626556053954478458953437993981645975156988176596948776753155274415083113760664134526988928017827537301639648142411729512193616048522796103940498339080518725746225640742754842699770312404815918326862348775576545481620704018349326024927461107355257893861165185004060365261497118408795252964694023357699790668360382955786562902482947651636413073744364584420359021377069017357416901825079723640409565102262129979779810361940964826165081490706641368598427605025495592684109211481040208402578280123407299035139576856756967332717211886743716199414092558591971127229723314091131638047151905239619426359597890310428706459737062751514562955002482861773306941014979138502589041469591274571491563697856354476161738810006623976280193173696758555205614711521202418855373560586949716755237493842401653235710478023603747528550238792891039823904070237614523715148628302601340184077070265587384456558047472421545345632138060066497014227550940164500964889144301683739387467823116903596971230014082436322115406741792677758620829380848310167073315606600062187016964642161184338409715420381938993867957938265892438461219856643240205316518793895677903112587021663665178578290971802344677785116655967085861187348107163813923719989563366775482520326690973851561161393115051299713727276817533058982553570954368648090337555364338588190613487313833356726449990846825099043060862983852182405508002317765965311950165413454603708982597039731810995452951537332960778197505881339161615435363882867698365243567687524494981015451429404771798889328051303865504599291409654100511235449419754965688933472363876291871292346674870456777268311552114204388324120992864310786970863084138534227269270255462633621648700237499722346946496214962497984912431139398124806628011082589399626930572487687061063304464914971443084761136803387146366322021704984677005891458432267587321152210749426375495568208485955082354897708931081525496046844032223463305124209909285683401714132948436756061856585221668968266446074847738439042749690870029859650804715957247905367488978036267075939850886692487006139132569963603654753947473328726341498821463964180198707889879837788469655679942257089985554244019343745545529851268529667847389290631545187530598072818321117720124479178818320104827740417997114471313326013404676097306939114941238498307827077229172847108705942011201995209750109313498275343463226919958453434247879549996844112717624158371239545925029906234561889771634393067308250791567536566257583781246359775607912902511869163014167351385962003647561800413372603066573381191474651546519422831070986653648248365213889909592609815120410593325521095850553050744604592769698145394827051011870795589449518448227090912149435507717387919769827361044829803491239716232789959583481700178724420699956286527306376257452535558047565059225102700413387358048574966444668950679736750954054371583941950181782171413408131299625558764742291847545669679429965637979262676689687519969089709285841933786887899101396335538664394623410129514941597421634792830406113708907224376804662853682071497686642535374553659044507231746735728020261954428091450579119476218944370610845832654973995703541259885070111450807995434906264587464616639221361169168803351212975563525416725262479533225364007726550977582353126339922157943283983058730459342862028737496711510400028837791556654912515459973072094354500026431874044354572750869220964050087302664798158568418828577821503689856531579710295764288577830611298458712740890193692348956357779878984789724982413233397066588427130251242757754313587272262304985141125137855401681065166026402430027696206429562603163417344751593061394711162915986922589189468660926847326669086323913603148736981420797937189825724575797229648764941604897922834589412534672299587821426714036955586886545499782792511421026125731447556068176113345165585359844226084814943470983438244489073200567558374387857768650077050580416416677771635940158678986306813462271274356918584450439800151744752517485715546183901541715996399706608198288638252187877240066034650156789278945429092830041585790408548583309007378519224622404245520650993659279937909132910701334198682032154872978787738910776111539017395789433589342503119611295201675409433798533395825666244117977355624363694866435236537623987511126559895243030385306477672799783164276478100201664437722923676493577477022517183944139321863913640193121327424396562677038915118409440441954078808874575160359598458061677556630445568397172634179256904660389358143852767201214925385104108999040033532761798623704408124611102231900011207674034830010197493462061405631648673679006902832908559660857713365656354138603905519797746272053835267427922930345855925436287567796144680823552359300833298498914805215230902614913241473757211593142011045146136666234757364999644895236568431089404301938965013744233066109184927679846208446165773355234939580360069134489871358231449284003314009364076912621245972288113220884920532958778409208358954282032645422922861354916403262680096262171280223304780016818559579620451611673400855455894023010209723665499132714430536868939966365738786545283281328871028736835360184290330637135728485257031734421650443823293012212527361791650266110852571183733610896291389198278268482051468555884296719654302694995992858397238235730890612662231901344931194618448571719273773729647510319576080190057548894327054196635211710388049396683482573389545622683072491155979424981531704337099316978331202044014205421046303884411526411929988974650390076711575141147517962285108380340812011802393628806408816307979557696455503309907743208694323662673731786283501185326139894289339183655952296979647871539030093669918464331021719764353339893754295970302697803146981714891645391926267881950596146546902404749462242000694234962702866006094057182515224600243540617734118648334400723772639498053897613354887114591570985831205878985494478970013018227113144971023779552431863036449863846435861711548515044770333645561505635914991820783384598008536754809077363468170980766962234785467611422363545029607541025056834107598446827664874929073079999698737171479272753616449567558448088420338574271433821113870913853880613940569546630265248696273663298491983308619320712701755097970183311329141549640292906286052763970495295531831312803335635489423226399527093566936232897138498849863849593052465594605176803848481955098506856557485311201023970599269779041936909820278910291470050126888956463966319208724120757488843785416651511949017163345760093940066685978258378201876815194409204782348097103258651870151374398552491639571809383623821884503921259161153403164703880175204871502905469900414520168590740684704193691740780813494974354865723731417391818434034668060381276352063244730331248847203831787501471533385689668410916628247260770656446881047027963466388322842176333265611829272166253270703547178006953906838286911040897971286986097473708114925641624243739522221534806790112023889794945990612987183312897080810050482626917724510947139757118444311034809407096581784224400983087713680096136431448841287983294750587903227869791733915620880888185966827023322767530144309189316581863824360968616546463443768686284594166539965913141711836337298678204666157599192650410305474695052051694118919747595052089545792520165228852910000970927556366700591277424095497712298341889043974095721986960020808630837724896873489692021151650897802480734540965577284747550389440110309531019651179986342157145932085050262616922947303340864375166773363806520442307612083246786993520971970079021438931119366891532287430106087969104352713786139577001043624015024024509264192692585227742896679556963156786914838783255697284302353223390749080483435521975936921145287983108299809679929260549930384817652215479600054211416849959554450518050061818765016458703183297372026755161129512070001076835491123968644645686443581099553430893354444699854258373346953510113081361559585917985315142626173293258520135448743368051658570840390362797260270016642463600742616938193692296738743240555741361134834479820039814422712758937206907842193567196742691417517641140807721183388845593667170404524884774960215368298061400339675587893407510069765876671908884029633887890681308776079162489072862319635381575549908088493607649305625799885975294944791954742632094407457286226544811132319516566196176032383195890110649935640160867484910472884431025323137047459949157425049732547071713399318530969000060265857353586254278197230763639853855365581168863312402532361753246054075658411599833408206723046728707612020252491900822458498905826028052214348339900553621031658237033674625195396180559541450415832372652938399384098857890269408071773083651240368219461701947309300708880300172840223393668563746344413873130982569786223793430864250774117188106128392885775441659401380393826337068077185391051562514411780667772257493279958989807000512310216016953570044176042135493015689454015962398386657322491383822801707020757989711654047815150250792638481868703022411725780774863109959864001870971312409965699091374492940756919614481150020336359513131537106493012546147788674049330941085562292271462298929117549435265591985883691448595110078077110853480840662644056219289808952424141906833711655601076632771061971086605472268521301430163398837913532397682746335964350679736203664734931964033311942172264802115297576075829769929545201988122868846451084507595132576708730160226694443815817293809866473014181321617533070109702653501137539308789930277511207175165199286074128822927378407137376912275053353580174321134961078700447568973434413197389361186313136830354127218939073128366261865289049741990413425564282829240022082128165684695741386201610050198334971111155419569670094819713266763870034270711811768574040082005740997966714484963515567659366885506794588772103001700227155254565271972245364460965879862994878955281545985712546629999539389987378571818312498635130726365082450412209312166644091799873004468204165311395410201533530925194422994172386590370938655742781893607735859857983496383559213785801493926188965294220980227947987004346592447988530661418937803233883701246915427511969515093928695671933905402314512216049758800796674889077474334104126069724714131288845006396829402253925932597118783675279720667355830916315219987224417646797263348372037626733354804600390322136008021092734580608324627837670707561582320784861133218175880729120240383204101001697511615664584400339466449743721005988808723871522974605614054063566379357370986004022411559572785832260301905244938167434370337150373850310586374020015106081187759995976288112529889386239988402228675864606535680584015955352395203326933706112597165727718425195142141944424570741808423376137042958255936696109962088962941786427094691536471489128261133070698939390754788963997446810776296918041737708741677332883352610180965976468029518754085837061418409126287209477652359132079015061756512145668123396403768281090569213743285859284570371763597533870262228032560535823414321099388357080110111819994572847908399745723279736733100350703055713502151465179939670600921056403185792358655514419576858321479773814913572496437206953781277699006844867141199651534442547567008299710840066208930948823136190114302357289148723040338823742315415671987026091503345740734915496565349525405059927117259285198668434490901725146677990574903692257334836902791977606191587194263896995658815766697311380423515295114337662129671641517331346535634102127004413288664830386492623254225820949094628633449339564569573711823040234075857056812437148723696312238400694780272871726963998994035180541787297743308205116207358985583817922736155825105189820099420953856303334586325406760514801616994686344792826768155741531585152983422659008932614346069865588693538453225514387568890153639901270386904719281788529670932169839901834119822550035525718173825537364756398333285271809912330356797352685600493337644160224650731237447106202681791122991847112365436335007207071824918722139112255540816399620064694090801863154907898567114261335811354956801008732722897447404584234552540119797772371134110816132173748338266484905567702604989173777712967842314667658907229261664330551740742675631345031131536460915081251596821397422650097444822507627258031063362095982364412870704024080326182940000680496133580838955325710952086971007680460203343109389685963544481399406584237357739374508193013133641265425649288192714504174064430563422151752786374012529945909986147235994780941818181153042727246407491627165987117511103740185462292537805504501932367658109792064449852230115669755536705249193700976046240461182502327340341056793374667633343534811814538366759599113665074934715365025131876191763982770939473334947742744346314495511379677369104929485028684777026582407034705696645106524681890728518322647989131509499211168275464675815373521113238687976204004254068336463933992830822002450765055893993699357727663290166690294350119589015329737977175426956916521457751101627678099263562586913988726950420264835512342867289823471196156373724795712434086461172931175671367208751130266699745569700722578260287470057169709200960066945043735650470872294826831593998352328920554209824702897310095551866399952705499994468001600942290275982046614355785700992315002991536915635711310629031597596849143465632368503631922036069780244455788623528507969614403953805089966743680727665857891972495552700268766367396508134362114882845915156278347822902967128515632400028551688530020153850418079126296735046358249233979839334732151647078408283695182985429700138807318972816874818640364093831386741850246980475207051792067260175759515228580270560014473542952617467064359051294530747008188713923792773595935656013320128062590189507810719344753284081822260813729495311902835037241801889405204488359713279636087818663124462185920354526989404705008610798970599242167468690264792719218509444369140575699184452384657482462258589623314651725681969659563421505355368072082977017787920697129861569243661001176904679839613941038163365074881041846478935686298402900345313648565031341286167158990419930248798400528940339642636397502088069120155030130432060271186564566039503998138535153843314646806251497192211390162692739138467029075130273786079517415980442642462265600917657838220141999610282081948609521393337939795700812104015675040905818287252381493412632908122839628788965361131971133676939797501959449906733452691663009851796731733843825678889976928952089845947225174301486622166168703914294330656726883343827639825431146817155281079163833367770257274511326874780739089253934228708845274968786872218713658385463164294493508652557906786285862705574043026304215437699963799221991945813187448421691172592967803976422686754887221105934158674471675763187675273264167721900874700331462371489284010357438651339743733152268588756263926443519029131259467928503294802466666469422560847390969976521665369816782400424839779646167110569504253389650908586460032120359903516658535286146118338986707336152162412224435749514886567367985193167672491241830248126961046854560830253204614145143995219407408592928162094800795445779627208665823951605184539556852572857261089529358663457327372322600766037093902282972859077105629952811299679750043899887744780882383801884789085761148309186719621639366680548958622312296072658429171908971487844136161377840442995978446545291235902148759614824741718930534640602473764232940189748968323847473351358280033886690506547504233741542705909913982394650508882532771102608422504650542717496130175241383635841952302419000008850854074826692011597182157526233291349031263034145909268935086708117546744951834370876868739966784673897315565181737129125890483859485045823050616733195478218534364459133098515448402237405332059272369338718501112561899227767464477676212220547908990388495405201475474728330038817689684513380058730121904401569772350640810373907744978073370285067720624411359915505052451838857651858500994973873010830636622092955875911249924107479362788434729034423885813711445869540307231567913412972177475182182771297252830578298962149919524043243865906322690457106658388998766090616467005859971519388597870031197357424013094940257254492616579463521610887311322806530765382473717586782451776369220652671717365860267502037879399112644710535805205760191719853626717477559483580759442671147627739262831718464688214966164741180238014855031817423784922782952245026976207279587291671242042540900003900148555475689630052357435399652463989164977107071774929321734815139386515011800821149102672542203831591295999948592578790418609041812868522885134848773946795562706504158860865729025530311230850977160464059483919893189684592885356044259324664033320526195524727202958595591572540849410365079809919416295626383816282877468144720224447140405190045638314875076781818344551382645893733315044118330498758990803133047991510676765419478179155824221437556745983262947243941490739900071764530354752656143240624546833292314211569174737391881171423891671352062535661795200110292120819010537536925831635623855269533064759833920406727292286756433211469529383953908950676071203660873066664492595109098098603688533118323330099113909180973910306184711707004300027248253058663656390033978938217629917839961755188359691520876168184637468222439793918478722068397000069675754786177750841529599920612270271088999244325847106149930511780800362998596783391586113346657171630312453194775826388538813235739013714602270453538563173331490944259851350527046481063186575794260464234448288265322693753856046768530079791344140581207029118465219302627271783311297303681930636498653522024195756320549486591139850688950079865354212041654089810474559069352402844187675974939921579144068979295684417892545958236944777178637239419647189800634580329550145432406011460359790650590092501770731117382934787202720403175840707993635696745702767553205080267378658469802520840489213992957511615209253778685266242686663051556177875466188912163043870442627483532722894238414410443257572814567071041262130494859845855590977750085474843721774002101398154166297660590139150114438588475032008140840194102017339318036016006279655003905474354726255082318451083825396289710673021601964894448374939392353474501990962842338700415049681377484272540794018471504186852602685874665485370445896383552227579062836576358535146017696021940005013950909233854097174276385367980060099529202514198713259431905114811282292990137178040946260990240575297879027505503417289145456698658710222310629647969366587234393224591065772611923115444869734358431295981231603437758351766153733573640699740324926222122571670239481134174749908276693228892018923015504560876369530391457543512045083430916867536475730574969550169927698403341699934859750854250737570602177910878876857153969995981626616892053150884098820626223792224195598619619698751471635482092932864866867006710438536867306532292330253835484414977730740949272171739304669358213727197785077476032958433875671141211407514519279089884151344635680785511969145546592333092970002623122758339559558579571689409930894983413000864616888416422133031237830426430513982436736205878626618761990141263857945974441099712967600333792784962493216284924943238032281273178149457977254165702877125714246764474053674403826455897456294131132723844561691930776100560565416412762829767868456294997437529679531544909278295964913706842346065900967424007424240043847569370851313265219770288674151266820832392413410674840423998617599970513105807236925913315004265904445571655865414457092537754761110783122921485957609803245473164952381686893659988909127877880184963941874832535586369286990760390926606085541587320673028024913313577691038166870476714050169147310592817518189774981914263621399927574222704094614852500034367766871736585126971593989306580423811489537455169384316321019850910099155312516926375380931359233189668802956067837515605653729336081456644157664885495301653357300570171596517890083776266535692553373527252536985266960305090998671434408240688977005233153869527693552539919542103801886992308307719878875336407338390406848274911127631351959779313376515588299620981167464028205031277755745086990011465057670914122581644092544055622803646813621215783040213381306406774782188579853510768821486636049652913497549103009508404927081666971857690145106491170741678821973136756390771293248644947488309216334724843552002915185195276523562509292897454240790490742794471525360230802061333986591894460017701565137352773107279343049952051360086054708482111704296099935911561855042555648404112163497013269865156335434552837536018742891223997719115911440791565618688463410279898485101062740520158168863081840378240097029548588865465250122529411225830333075163611806816248314136074256083770691875050194153133220024891363499183202213157201185700218605529709976369670606318489907163689273061863410665248066763745825883260105476597638816656376698397426776814273077544900299630713644029201907491605528207559759330737832470669251493764603633127415621477577546211307060557269196575991251745793716972056542379064088337919852979458995066890119925939147460523705252096733361007238837760790028430693599065101723915618516128278460188694444479199901159244182983092517053493386042323640609723298511903414065407842797552512850808737625977056983603642634514577106118857055120461916637359114237084074581396020328139400949033286239318050874815893920351234009178941136984192891703124312517236101794264367930317602163905835473682838884401430582436781081194248185518064601121208723647111170789723858325771212011456191174721459887815438995858108942000457792645205892958756290071502696835996766571354704765006082567910039173421099161407273634614254140407472973721140479978835911203711514529133194129839436253255749721411341943045791279773558594008600888824306165675662680786093220734222040129237092379291932911099979348801004879971600664214454774382460671425060467106999556310387490630465733557228702595134983914004349852786466562204051659340125043687209289703788393262094387959986384805673106664016204327733784336262561956170585497029940015602766137007897687766334081835197560632586451878171612396955886597901156761954627084509412662563139000164621925482031531075414378979383369042301014723215264790857997012805114254604584589111317374743150034088570552295767747898735227952365891424001785491881739501353101759822602821869594792277351498851637992295480775509715784946059946563079885050223560867449422471117356690271585402675894791853671691932504994832266123766459906152428663224022008858439419338911979285555517878207682110970785770525339469668679691255454423363567435449334732164163202618155294613282768987635490520942971614371298566793491255309059281674889047214356230488506531944175353187474261661814342734669556498243290561135569248559560435586792643187961687165459251824254891030973830802685326537249866444534445963406850840646528895228535933726180548076480678549745997584494904293046430063778310061993604581977438341501796531470431346167976842447344425046690479688174896703332669938445034413294214305162757718951585696882178695100348870232398556822985856597824993481321699073495400824460147358792403175284576005352083953943703915433935771139670164428185472787834499319977355869633200346685599821556340400326430548625226788268503654149813024603885922479300062414655098729271754840969036187416619066105102780944995281632971664400550751344471475163806033111035470145420788856894917050826073450057382615561660512915813633333829063280570799807642952467459667140417504764729582778340448110804910946145820244950412082599238678942960785368357433447391559526648956699609036408528551117919378396607004923729609900946830177246025019601904125550271621590255725906447493963926372308104113159013627283108172869089706366776918037945598098463833225981633468364205558185515083367009104383899163789703487491959408507410841747929116057367388295834041771251206892041000438431223975601530885746732451805921266590836342770949099114566840435228278481080543093165876059041334241558503018268909508836020424868464366326907923426595333705072655625681165255394114181475195972152495079230363831994176529215676983244160542231648159262985619705023363898169438786296660714292109195032271318340692877314148158600279136010183289832134724034263926509241925357997521094966604850300917338705394907665281101982290971120980745058573203947964581770361465362839359555600466707521189573130518869231321257619616888511413729261035963840225053376230742347716617362739667278219627906370519966081173436224715911911718810589946204320616077480588486579134980796024026390829592897732589934812345471591039729275867568169912249565238849990757203325196003717591145442441348239133597519106114513981539675196926565203269502513655050804487039456205595042562691753436989190582607648779771667758268021805989748973422645579621041205894053497365265812885880807185133335326937550286975180739672942303492437153024563371622037022760534140596696288152629156572445137632479950002865533987572549484164240731076012522626051142766736523016681551977424885468959720175707602007160842061707046997943073143685302516115232085452692221381013139163685267483034068281113607708448385837355330415126564521138602163281431267300825673726702747045977158188487884303964504499323915819391904873149963245759630570302042050413730947570415064362891923072138938407044839786047798560696416783092738809380786661465778627655079127145282212452966588750814343095164997579328918333345087749405848154412651442497694384135060741675211164045887104425468183340688471315404383400563804049063820837448280210266446565030960781226301128658122883382493658196793885973868224655347411868565883498241797832835083535372011762385985635829308965602305075219995367377223235506952986223676100316315050274634416011564933811951514302788273551470504706510070145763924916269265630535079791179795280827382872248835088231010119145169358479368703060173242472402429951173439578722602473213545096973698477953466340097603010579941616413461748624739752366877888615649816533480806791478316356619906128921496391724642712749874983981015431435709837277457262002641632864181983763409299096167058433964327352033018615080353872217883766044228299851828827117169008472198799138492931676494927658504477938265338020047679688386658760459825037290514017538451927832875285206411701046693150718965799574759103261025168994066865223696127538361936373445403964008028419835559823274792842908999926709660993030722374144306101855071401950330933993148842549516567766033949681404623441251809037994482086797792912573122311932685767564357092751248814263571942242670708661324037791047162826908218617695287353483986987223306121157380954962658069243979882654822319881792901747342381446678999261494613165113960020077761324356226781504333316658851336790278927678208494470764550272437894793558060478631649210015947637531669847127222224214508981892460104232528208696677237548593064933178657715292214635168534161919999389051259125352540923853200350460422479999405110873010090322967078084776829253160029313985238270016446503198761720611526873479671531242956387319935379435286208736760189381181209787829771438382060699101736150407246168448564991901849342658912212518039205079570004448740585230917512251852777028310260835094419540083073698989242203760200602482563817392679398008237017983147937961346370858452469727985687793740557899185665927685255321007348512126904946700001318921558075370887015094682831909837951644726197843808654617296093740445212361673734564480012465393893723716535158735712612399598648728597518172534609954395899428778087117520172001824603135564637121534664074449726694816444067185730291104417581568840961809917030177925882429532642790057745947890448037671854603816580508228688295722747270152822793069942736368579088581711054814820255815274522115011564995000406621263530345655555380454528047403106709379438027441662972320337782809075656390882164962186655738986033962813311618690802172264097530511730452053454937399604016996266715603861448710799828468718029180656993124517336655231618736749930088681375316783655179976435856540734482876140485422079665815427532819255554097905704749232438179056049925424774451146316513664940965336113396975552629648428226748051042912261592418311925190857167221834600839984919249581774226624978535125357367307704186782094316201976934823037011840237211775960347019355515228865785035317141897645890140656567526925237683170840908601788248496903304618405880911417221835872391297027616252755944607460702789436263383747853667352557376204210955162555508534956285416679966544579722969814787472740060373211242055884092632705977602808298004907196365565486717431130546617829760289663229669795802580503861319160822349612770630218657034201115058926487579588540268869016905671729325409279036967433564889505081068386370691218429576431600625772631829242338396711430760671435218077632741928925903831432968276569981364427226122972307005785607142891677414600561994663932485814287263734013393005777885057300706342140946364971973936643190708530956301206326335676406304309526725004612281937024242089694746804713720848650567510672884990021002759200286313196371408082938188115031032062879192041695561561665931981558505873234406524570743141730275440696377957108349750241887816615682468528974730832504254444205351466940487625071040596615265387642360354789847350640004296771130316022260148987920150986611069364549691493634183311527061220981765040975389099245646081944084816487108875459428228270141559402008427043626279695609390875039415861526292158470815378505709266637525047793877291188115788558436757152071876480637316237871786231685068712686200370385448894027414911229577717559893384664208719545283854685988411609407130044351533645186018592115191917726977141596336593696283072481529723384085626239265790006586810567668080860733424115502802433070738328940009731484394215570544734445267751085326745654448957596556377426477232832193538194929769668807438136484755115037251339502730870255145215761690070219127698631092940749817603782917929950702726003189046999630006685487555640688078342434962010762165791591640434177959386952370957289544335498280020909024034214068385518436093333648166042354550370865767835081796425518928462713909224761462016850130081988792553923319833596446727084277906093680709387970376602739707166937983436179887693083826110650613177452735534315668544052872532588069732133103756245821307053242814869742174246573288970115177808210651212039863547220363968037573766121943817396571123416783615748465065876433911784905111436371393425852907923517968182375307024243711714595759567826615992161394988766960062612646445238621850065526015800328718487994985105873479574237148271899551255348836719018055259843321273266713991335655615877951294872220636040111647621268964530244459969061239017603422004352337639992323600953815663932877291696434939809343877107081219134162300085947523664694210113610055634856505605838207197919382732246602470682012181346072937673028602345474427685014864837819939352333715811929612202446747476303245911772387489548288073301138863706135247570364338614847600944011494719886534653105551272653537021157951064154663063782879515289364282582648630722961500045577951551355617822780633838922002408256814493453862556597860055205449647981949327283727435961097682042516274916946945217960661208216422447213402023732927269622111332666137834039403998273587889865261474134280998290548318892292546587240811354435446317553339931046436236805358729174456295876216389973752802037540624776012185362078386673268422863315669488284981416891897103333948804707720724595424314184682490408373651538583752586409310809661942670152181348820080435294522356191733079236457353836760068408398621066383203185434499604492318196825265943858022006462559276925260386672695120563295340841186029337941198445260334564218788006096473485304968452101070575778432765031343709663889730565540421232481701654833756283919176205843822539693274822911065840283862884986094079427920371399718179991695167921753709522465875469300952926854265774799224373078611346028271829704812671455950468663136656661983988118807613260985848910084911493236220870253691665587574149130649702589710912655695737742633129049867459870194397294526378526717812280016809080115142102686425532628047060506364572237168217912573856467225988714444583993562937833997496161007821164307050642125366170910694140530905960011791893977604884062485071001298971650831262735571276222351612997403885900009221132444529645607693669808039848957747756570296294935856846750006488385018821508298486539952200734264526680385219782561234103884268819948620402023993131224091784185716177728974481798179606278587921167974122353104670904301704492064248433691728937749559946933790504769691906691553322192236897785059106604077227592016501179402263121537181265666131249994857936754873507575373447187671597186115286381517191924171958143300279032182852441640256442478873100267979834179817749114407684991944780209759764760349142489246421468955710476562632709408376185593725610786841224629928602550538479981743736721314297301658663747304383327627314839242499279386932017718126108495163871823362933007912095627366148790458042390499841414535283254299634925102616480905260149993362678494894054384640187673843894154252233885273179627921205917495431042833033276571200712370149710423935940075209096786848804516522707742489912191120733835491742526445790165996800768809112558458922625118988365071601363752811729829965572266320999880893633952719312240448859838886291720322687811147053805359109153773492618977945658902187102016381691339105801949280900819153722275603688598287898454086432496933658645534528939944330452279190658841313757049387543151479895798261577514747249350874763963239313161383113376072608196523041179682926678017615893787007200575956762810991045952259758882103219542212472323392470425397436754015534186235190183437806539994655554489254138424797503931942629485788963348655351100567507092682400846987897932738720231944295277496654393460507114541849429707914761268316442932656857892091721377004245167329567973943152902954259256476972151150354143320965886562575228565323865574616307718480883235691361755895845026669354380284928083755045330812840196931043388321489714473241854566987280369388569238787676881776679596392634181488875532408485438543509954772698225482227222824023754374244001315078890405617193117370167367531855383799679915720275907854235650045335962498698567919426814856329851003411066256342289768878568213720155083956374620350392683176700827261877161803017387780828898803691572905853213585130698064565720561612684164831688933775423128888186722871139372174197131946184340246257538516248552825500899359784597065125178635453222289881594233522133781800313134819475276329382073677189175392446319307420945066141231096626577669445618014969325834709172700346248180320431547398388438658195574881616601526941100010499488459770131121467075456711724526739039618486870778085959296345967872688309698144640781550993208513077803509667200129898882297644718436849751595327808022142856727859248244842749022831135239540212843902322050790771549535005358603862787558041406102594576306934851447409738836078873461998062741166817096797819000362271564548578959541130364635097542542622230734570790792561987553994191195879922745185259862288143523035399580300809646157034847282481629503488470228668215551576402389677451848126837244807864723562001097782592986703253049583868263355684672103607593292508306250797490091334661358834962182884513256224704064663872475626815255182080043937630319987121718164174661349826835222234396152212353638093005103404337765380325531767101288309405207520774269393686006270218286882555757782691036088689147640706877885420407020346118037901887399557367570135638385541951700882627725366962502316336198271207069107645158233957580919871079664410451187893523837514828102620448232780323461592059317701248002888733104224765897459133441547733194773689833068137995180224537197747458557247595929266548911081448199348588915349275525638332564484366245884060320348873991781932723561374264883851499597112092388596929795557750159264461944722797480088872470729382531449468866418084609509034183968082869262845664834507838735777960622413209183256363587153777414262873903470409533808739911581725923776577686846016486189461442443173536773160849650329588257341515103708427284998998512028651403725655764064061602291756043419999738081862151135228640951273917197418919972167380158401551018540770851934265635678677695055765500777494833131137766926756427874406324811139672687320317520029042090093926734707224921368507773760509344143363788114357964164222185243850768148353371908183106078408669652361029057107004526316248023779720803985726620901943058511888578177807504112481266235816695411786993260093756327316587728326933205244812739231021025847243624019907545223122102862195165136200917676665684510029261294793616410605864564565843267776836827107835370933690113842730728118124600343282676234508365139115566062761217063652842045253045072392190082175840063609755221902792611017336459968895372692662498154937795436745959449583604569428605985576408282817270320146850996591297734782535422700927953288253900411774019825966588999882479143215161148276771742538175693295606818813340746588292689601629251840168353920048430172769538414626064189624670556198225766052013863411164147295335108013026847088078061849260314171056211096362893863810965400188994295714305476620227511315732945131371449274308244565252175313765929368688286046044894477853353666874303844498507572680049643072598339263403726115792860822542107315894522311203974461751098835010801877136239288247510977753531976367408582763985965152063905054177846763254729638111275298946348657189158908378732835567404924507588320873622225847585685054953303573999619056836394639321183489955958970075938140817853168277494686956207337840404597709281177728484614999997847283719327925262260466340643518986185490554664041291661877361306235523980461938758758448064933936878354026425597579457210952887665251499176979075534215669144393040159188135196428586700917664279341367575872307288609321463029934044818052710803101498415633459384388496624203461079207569472455422246568331795127949929442811199774451386059258719515711873152112501483515205862607329984618645562182967586480060502753406627185182132675581259468647372470995178596293298202716674249731629708642393981182275327195641625872543982129113293551556048799234101613910642018439843221439015636448494295591922604886871456854411730438509842717300628978833022915542783525443306279067352904082254694889367387347551307509907189020618174859589309864815193220105582993842265194274675693154728672054575558041817701198870040581796610079812061138255090257087640153672713900473934818133226532209061070799173896064042133564968675245886757604421002859647007879016204282185063132351550640489336967166078352894620205559886107876085942849770691723439978228451715807694940064453558916573797742155608113157020005842547562451541589633053299518020638616889062953046970994530699321655937487587394500449871907634463283865117091398026543080101969097388308075760262612379553685267795396184256596408974164797540080927424546398789389532737033878946696058012942281305958549383170368594364700892257965231689138468814846336495062929599389703051828197724766391294756546407486349465452824374943839177900099658864573640805215503153609337204894228687064650985451221541788161439078283301515060193993079650862060924395681814159154601253687284607131238386932617962502096207802857653487365215843377684185920323736283186765855004255751542291838507559934993417130815357872307472973984823067707247924036764017711281824224939640728346528194521097612775641843626578090461763313293505333264903416351494132455155913955366408952028957464091653797386092225265401642197752351298846217244707712766178054965716336660147166037906599789828794803869883394521919337017575420782214107736465460533286603167065624293246230934194389775094700253695642055984947568354986386204309635809456343184723178707415843537620953111186768286520082179814983807882340348408456975638013192892228434363900274951969093973115563846062852557745708732929738672773495931210269406511640766783777303289278696210455294329028734947808389244642483395653080594999797339740113405414653942659897906742377718262582877982545915917146614631254312023766448179772268448960988568100508589114035551015976114738398196896851196477285932953815613463846548731174615176423679299673938283239765232034182413056942456974026463734250484892767914256425124414558417777807523156847830918821448973657499434268660832468989172143038883300333948525140745672970044223701835581597886180133713608785904841555507931870862879786397312841165371024071096641327691449554554251742936072331137386310108631452773514298331642343269776524772820693297276273747853460171069452045965451715491183902981650685828390669494460861100568004558290291114162065159476029508242876302470266245980714673798706063930742047073745258476079035341828750190890434286946968475194382948779944690366677209508359911163562011394835626260904452771495699985630469200924709470391089850456283494067493770483871799226328565089403721270406189075586574349508671065720032464129037866915155257284371243504882392511080377020176332179835359443020352494198696880159438274973742289378780697288158365104572831888533820695432620691839674253617244610744461727251939804040786243018487139554693952835718428169846193163220824597915908338335359213197733054996503421564327869880457322288488810872349461249560324542072613707888021779962376351961748476043325200576359898793554111250962948924893453524764273742260098869868097554438375296828713171933673964519588615926572392357414491135391279861043134169196287565213349826415974451921813190054465673472766038002086887489511750834408945776818893923919122962182982817780835691335535221631429428207227038638760928152480529307655415277806492108772421664683902295751086871920741999097613658057962253315986484891296399514563351440685817889452414012994099964169136288453756783209927259689478080129335418424701525007045965276705225365500666099176542691670753519846010658994200994214621154281971488840314357718875100712400615916835476800264818033286635943098784652864349735548745880997143442289797346951346356310444932094416231135968636433958266394683191315044735362127438800742876152743502518271669546598803421533488332311497427538567314811848748492064362870108511658752886497078101445270195855073668402759784881658282727356151757417867832720313085667903083006910674522665951486095801386134411470700408344471306588888348174787223733316190771114323677806672020356146577367334960410908597973687000197781328818306311849746119702706104768058285712294830553362501307808025051178640972589032140180696227932163768914790896777514797002154031636920490052491912662206351615505908151862014983650991050146130605310735938496171105325072693865186033075177877963702312656488247880214992034237075238664760910735596496218536816630880639363412631365243510717801610598173945656381165256945760494742578574515185700553424662180369697428766862462462678550749044736900253443414890995379911663603526554828863644041691469604274828417758081028197211785493532253493254765616696654238187491105336601003905916106540405946529018064991336836064527521070013130754176517705624744640361259293473798507707738916228326184242294482749037478194091785853059160737574866274915608693080087210368150698328353226196414384476735246783502744479946091813968063373603119059470080832234414189478864430377172850316283632405874483603324778523250850316637603360968837812639974955930115971105765782613085360875632374190060439831699680421427024522252213591328080515023123432919375514914233484060014737621448719539053819081524084375057959902072814586557684125841320293074890917129220011588929415217273664361286269333821160418362782904627954061798129545632022276162589856237936417963303530656921103602229557136709613602859693556407274397438796653577517105605471504286204586449592389124413155297519263833562700496282993453635142452368468318847275291365114950895974293622456661816220914286634803204986852858481973199827067538682768732761341307017946996088586225549487928247743240963488735903391102280946071933668669908721215856491384210196992649666561733254059354736186921338773822171451241362891749079958245130157610994368848752970436750950273358916309668346273149679617671385762017088452121208567916356982120491214905970374370415993866665511919722796435844998809534210041704406119886476492961069989040613906686847534758203241510775267319991139183959543279269211234463060988757873808601797333363915200125178743187856751790368596146881231831721726508433674606167148521124895222302780730411442622314816199153950528924789457670975444287599726252714943427532118683979652623065762164484779202588713365849299874435786713631501870097365500116088979812485176362426886407722984496283427444977604811938840649445570533662750047986208814889089439057845442093253155543412030853545003437178243245207180919789254864866347849324866189559979280142299988728270803997156154754869544110965693540216789096592555181530388925439185574563399077565385515486746632755359958305840773190500302642800112908897553633592564255658125099317360528940904294220038130944316843496156009388103571166603458068927117757591957959716498349028552549196508006675746592676293575763820525953523843884690416345335866763757195393706553248191966954876510079707999820720492659199120788639141329882017975468637043546127899839024119760688841642413048616492217610246949248536534183159882645025027779998562445041746672645416381889274236693079958201412635251632553133872975671567626028452739693164110575498166781840565183198360724433994025215148362955692028455973991568634825561696970711355932643681796054050350582047512139017440205130719930822567074167898318266344217920409645176109987074961360454989623773977448246708968911924551095554134660858598169436464039526475952355687506994934228052401305045381928812703686536941156139638464886652732752803525808878126849203223052944135623585477671584220239858289038187134348312691892283184485054815892061552791069635917394800696546370288288459522134338228451428791733481414714722007417857061852349681449369369012047369066028017062051126999324964498661999464289762934226984315291092662123621052646342815480644301027959974226533460057850632357980046859430372304146423561225406199794240131172913904697239891843294557827557084208755215874369670797273656872106690400969980716623500455390805839615852407059265395428766970014121533789402485648587944432780364835417616900547616005906801249336092252414780181480421338981442609617620143375100312759248802378918049430898524280985360182505609756509032504788069185429069748549109763402477937717979819122563959290627253233818429757371611415573933533948992246385175721477112324676787172083194450254012487080365027916987857345518997672132874644667813552997631993875921630936558992143880418215309142274675507809518611156973738872191065274945357758669106908368446718125715062738325778817571181831306584466442183283045264052497883582698078685242657787400657776441379142398531122394107362945017761860539763712631674685988946224569631909162188989764320421202494807538476879661720560827997034659214957483233257576443439151945567521959909383860631555868553867426232456986223754830097020145675626096055348140547103647288703069760375101038791676427142522927369562745985617810539246944391735327136057205525733496591823896553281525905260778161334259566782777845979259917334723058503677560685059129063160219417965769798136716571141039894639203383930744791899650219525516646724134529993643087427756906438109737615292499077100301692654054216660873123612917338097222291201096090300849533637087493159961084925704724933417212841245198096546920044957619856388546585700424425149509918055927348294733688433812726735807738671111726656788036239724561905080409207332651734283162709095694940008020037575803736378656479761383014476770101041150121266422543918880977333249092818800063325270881577513484807381866658990517041603509365971144080069746068607117732783896040820948625641781075402612278506123622551245970773622166389014742686855605527666806602285050483616265579083922385370354444743722056775182079385293278137321965658407995535252628825751983079023642157844549424989102097492470559389338022309112772375975186473123084108824851526216045520609980875974403117555099533462017924830836003775179953117256128050442612969843616616906881737475040119737047334202103837240674295774078760720380521920988189300062938286491647804902571560027538878402191879340492516656669209726736638126705904135299367840003368584703875301171803596558457668231716396494607745866996235474756918055047477297259488970761219925067583069841727874578697465575116736173548921720888296828628213920021499697486840234955761981587364029784289452863160539031226275402520458726095400836947468433147424750198454609388071450252862464288672324899061670800593570593969905064794834310226533296922928022958961281459905211069042334278047955136500706638009871961298454983053444800539411915450606350555614673396488107009192537604779951092022613420320810883127528964399213681401666700089627696522070483234417572097182903151848103066934611022424845327242094779524359232962447344751285290663179846798992978105876201524718785413904845204976783875511501051795923840753451471529863808915346832546625766042231216129405084376316996704410790857136754586392116223625808863702757713944740101106350040281419293875711934759958689417065390939222771825112514545057489993544670373528816431032903385150022991750868680686510093741784656733131287884932239402019823669301006769762066316884557421152149003970594176337210741155067204710865950691929036380045245120426552562738816560768428800349121501520862228964840947241601395983435657193944246683765503458283318901918231935291694295000783496924062479825415283900018903543944246857219222577729922569105900108851178904114415170547524412424558910794793007147097071212098589543727179927062592462405169300631733921041046690003577600621748886302254902633840185346534361983080531438737745992252998747946323790758796950952086979838242564830153318583899720894699926515722998401144611020471592119038552996987546948347707019714556289202208339559020607940765768813797048157853751850047197964559073335600968432731240481803433311020596400444131193616492856390130594660476445664529372078242783217515938353431163963292776328959459630221195753170504758638907040285997139864378476818173623535702368938872708895618905884843082033528013756403102916470883259169365880990986059646359046106407663653272456973562995759103717405030455410857085331840384835765019284320277551674113989726911779739385895051234886489245018330486654686322202205089781463162571196057843838912591167067384514337739152100837076831969705681067112924465483460332732520730790496662911585189237977283034379683654942457753733948955753519272256363274966444944553027092066417778144885051986267965589582415413395301571518357788860735316911006269507397341710585666257063549523301429594490087591561947279305443300406400073105673982234392807195346225617483233072732433604729767351249597913218969155652379051423779434578498599593552318785951810828192707750846342614922005061263028717591480383706698968101883214340221620048740208924014359225585863591534402667998682339096850373503055867485981003880367821468032519135646705967523820791368080751410410144413547438044123552686291715223575619864055583369913612897530328357779204935065868569585709563612831223481236099269318573170420460873021371682812385633357308189244611748568246863030510136075301356898204940053519164640472774479543784618542279712045956588901192819884930618345093708932040194059434587100222972723782834246321838681312959431726058143769793545957807354296567965974577462246308505203958161519917814170842223118556052632304648480177952049955819147219809306429593550645829012835928820812608955058904483467726911027502878116349589847962624844390756932963731231357150197961613514077326874008412644143533322110760669092721758340741495593295249879495693890207163059587894613832021338538667341370084858286469899835090446973660886166861115948847364219940885586804369159478629357963363063419285316907759946647504567346731745034996337349682147612637370657392245463588879635432256969925029670944850692617111229920401459677828954127602398327541301696954186374544882829016738933502539044627766585813984722706072037656778527280915679464586624087055925521795958893817240517029453726182851204392227101266662028894953687304226619216003812829808717934152386932753862077814280566436800670783058995373780450432503145532343249178486845464607948431819601107236468702857813807731294791285213995003157376492350479747788397375909994081467191510854396574293188156547006247243099481114837994505208434790078846310114485799775459515759078586950152137281469854203035042099890448409158046930929932459881768954905503934130854749172619748612955814484509095328001386338467263115730484728156385900421287539441308385689845795264838975248553569678862006307649162415073622428076866118742263172483151259206001313551900778294481419571252265948565539344137952174336826369816320832650154235219225707010664076245608061004534527153227007433401905556342246692370002670412962601929135177300907485674272662933252131987082934828843561266399633498024893171757955054358039247339111548745959281904051822742876561897877885647572534117104812085976897545654312690779870945622329587662567060364920144200735728998590358717713548080901341380979297814358990839286835868951701960475704047681366564390236264684894516380118890404220242462884589547209753829767135588889097523253309798955165714473359982185205801660205978290484374650036688694157313302217546373700520607084542257355430240728366672236220349942114197048447013146774528347919464815886569725330307525864323362217248942418993034877313069532215260033678232134072700483152023485936050217064312547120349088444823794370091212423527181565203133585246755090634832679116152364613279037462667194717130775759708964922043816727988857693846014167124965164637586933364235261888519185875723647215545748783192529907311728749400671319814190047882919765505709237296541846092366558401938564314313146892510265716881504698234589176039043926888133820074136028074543870522308431505574412152341382428698765226925124960445474987067836718033971625175722883293739771039057007718112733531855215991326491318999420970428413007969234823560727365929272201031263610911559116583399413144334649596910340098205267403741690345653880192068349464744816006101421040952310633825842134461089206757996589865410778993753777655048133204931206409235673534336184728641794099784786883496590032712589141792116848130453793234269828755469608036348231303682806551403896389477015513998540003765960614363704512895682077864376959650198393266098574301739114100692827339678559232408326960670075993610593423923159203053762332715994364832076299961904802292734407840742258385856749977194616573176989672324969212816684695755326693890883626852730009233173931877283364787521232458128009481720220018011631505655021136783795506519994990151093365724523102062932483233384580744037091155388206657777036419425831920549366650717592326765834492534189991628239571249950952915216089923957743183696428995367339065700730987440530582308281097256725385091305235942976104314389992616368503256826335303538569367467034394238285707923503837433222432582145494311159773075739670739325435877915250778437156841996971673657698913932577317699423299925507346710557452787734578078787420966467861553796296419400096660771948817468830620316751147179016160384989791739847969679789703992770359382649170711849118702082614521115021187322931345098468800758081111434981025042537690303604806747102488683238062949073663528662558964301579937326227510729302145946786132462204185125015072386321473806470255727071574465375475006254363170973793694747864622317189255054827086550399333920687447690523217799417808480549607477536977671240728436208235791276963124475529586795808270269401066748480709244750482078355007761925842178045210440881703139537708124634605319101384524459487803404896769670720049516991026141825207296581489490423318087264770181186110753626658362305018281531565186813195406392495671665157637440274671620982026347345948536554648308876750111350988330198971018793940262120989851949696868508627273853518134520710830208712044408229479016768485096602400027471409885678282793481124846212514004982143475703716469406851730687886104847753136041225766641163452483296230106016205529614442458696848463642949041433438609902835736775790420003530902298724040546986489473061583119304703625316357324524697444084124309387240852180659590280861131623951102161875654418272658036813903486419463836952027193932303093285116391933837434889087076701997317585325370482123932540325441249167845650647072267871022575817320376178362034584687732484116483402685399215865750975337481100087965115873603796594433989295113365442952873496388476321560004972126321321550286843662560761576929362252578511272054841822852843120446625695505759085057832232525951452879352649048836219098478395427605682551537668877898478471727092509521298584254058003617151094681590797426138529685933846122377381488710909347756164606910474360003027781823003206005485008829719298339418710607654106420344961162450149430710713519416724538745801382846961081094309576406344910230825343952672078652877773501004698351598551447246831292292787428990759958414879087929227403765284759400098148543089097682907827676220722201610341504852490383561778132689074354546374503310810699559070984035448017173052330508281818018493350902380379378925071909694039945277645121025630777846041479294809578449691017671498575565675370506469823867620814093832543546432322181814056778229333226228290839284878875774051414489093679231478119822138698326351734486797757696903113082089950248091604876846842990265947545483536460573415576731795841534386042431664917365331723327979596525858139825034069547856899910816720725295856976380545892213700116214936898100773712692155970406537739430889656040508726579984598261657986123996974203516336098393937828578086633080804429227525420937445706360571140146987491957489544226280190559718503212408542900279329344728331469184243164533251486517718905816751729434019635046291195236208752476289110113757425952306571848413466058281619419150890231367598434900969862115444488523679382888751678606202605154273056608329174518862039476953676386107277026139580568892731594598974366712045949926300145584572783764482180231764226086596512692381296214827141706017607138377430422263421341100288624480394135113113693731399900341083727456903661289850399536599955343451880276961361870288267099951403665178555124590680408632299354799710919995737284566779731717044620693707113296070726601345908420139748903892240784001228555350399043004233303405004397102583731743525143993822133916674474241560699471286895998603766162315680075448743510760924438425543506412640256372480503962095446770145128856553777657465826401960348436684522971458910758496545674391810459576306100369974335132002748648406924960217213916919345601497894619299084789584435284437102531205003890507383171075068528254875985068041057165873455880607516534742637435849755474613280461904553222494415303900246113832843180425633428307017663856496311110577217600325777017732161561872653546018671219687907062337663049232329829615022527455639520038929474886358334097445665837684666507867615713581437837037860297972963575213968006590410850308956160475213493298097567927322410141962927956768805551430594953484697544743739758719583329775255051952908146167885880677456317887185410903507497179064915328019248563817782543274372932263448970537659454429324573231319964198953577040031009025696458416142997855913031818419942307744729669132065561121326348956791972611060355785589301248436574271791863133890872810908739203962775145701292894699013450580744379874852077006531125988932180087757420679942931069318578307406039243079681772633508270476320210896121729266252388118341757271660442820906010705938156693607073829103138619699216537918039420549071911604059069029517680187583556523991291082453657036983742876230021072719218151568696509205307425533948639236035418627777878234253027705643371294877528623810794832728536659617879160838350714188042060230966761402973669045809212470274860379811241663150065664333148108820685016837719061336297957843322307769056012638703295510734558949383353746041611489584883432920205022732135311346384059980945035485296108395011582981458450651251818976005892139600759210842733772926935160935985111381535019867666749289979195133879249538591024337727842063867245707321313034596684648726921040977571822574605589744909002771040562343401813029701498062511920584363669399639226190758544826057672065379141181278864352711084320705231284734203610581445592936972042017467795080337356656349361283088126465331586938530962211402356186678351334845117334516579472746290255877879103028339461996947813981395585178789729216932590981320153919297696427990455172977067106672525957579542957196001331543111804418734872280760064070952835578481441410533529803617359494285565228853632687358544171712667045408884302162281851127979087614349006662695986852153081232678555310840754187068871017308912183354072750439275239788353388680920631945322903981844960601220537456859501244880363781334677693448949110258594485564993634635053521720150451395904394097398084693731401365295855435816432655394378700982257867321214974507652508452219677211775181928054077653126731375788284958539804650694523963848704917197534077657423390506826638959612204605040209724611195810267764743268005162261811547786382522604419867109631359694991922085932266345685014390220862815036865148434204077752462178699270973814665979106623316334082826013858323228966621292573978968304477096804245283338973204102150449219079239424239846135748631189236222504498741145162350055354392651270427202224045834804747680597553081611333920312091109145692890404178884924694999807504539951964704852011600054655577266046380477625947297908532357227176314004852528796340126305024863033965721203089075961510292676592009386998192521786381496436728641584884544888014910463508000868827049999910267497967626597747463785125834227605903232623437969562863622197135801336770441169176608328501781511267963606843776410577437878269534734938618251744206223247790147505254382074033850375143137809099811112737484704789185578740421518810361201071092648193241930725774959803999269959433149810915170179052954961688925822384530512989599257193277755705412006378329735745805281401801303191690934429290203992176467304491543869234021289461233775894984222850793778180698249027423513110321459928485764477943505435659784066500895822274846649046526104862077325140759993461177604960283875019976109828215025228059995918541585333504849769987347095437966478872283132518249452720201835385249666089635289577835925589489336991242878950887724088946205833321966892491432941063854203845524826778975089279243909604163094613513020483805154661950473063922423654758501618787076283796985668639494651691569611837970227472336072346943629654635785824467216854802914657131365821153693062795617851952560266114533664794354675280540242867465145272777768758467223974232906872843938031421776892805322871705960176174082762400519968488894015842714528765531482616134205163840149125200073116385743085565563052916638207249239618565830161026258349055918478300002376194103243767033875978109891604798673152599577151168121712151008019773618047655967572671537106681562532394844843928891782081363938206917256005257911122449897085864258982088611835541535771875481652641224314824973266514424830060219380211592143207295525001648663209601874135354212204352658880187950283889932200534587547705539007602625925782266194542076592274976749601161928051669621609675061587582276529797229358075026949389664476989856950895609185031016495971579806620482147031718286096169749580763068653208120899971512779451062126546420049140270328893177972807902439245848609160323351960549412554383402367356867566162181318978114140157090378585299958009523114653569914763856513714834379469362399397967823136374118504451771520523560108649386112993392393873290082301882907144950568620859462219699327590235260176744839017940999751173972012756520372901142117013449554347901335538134625539320083723073850673821345656840586722368442710258525519614856421567869345351319434789728687309798221815232168154279982630689776116159365673611881018370411045886034719838896783988078742009693883153968736950344217797509373219951415634823638500540603433930927289024866292595566342715119485781962213463266517425243941542689846439486907395115779138796017236482012595305302555707176651609464230367586634654164913860788866078552757439277789736050422347503877359433032513722774013558618336334592572969359631194125640906887174977125403904970509798691050898180898917499677455278528812843721969695563113708491477414907007205939231370165818797758315003120994343009392750847868578567439075874224209671176887297679237803767692913533689997074266714587044008330272800511374917306238532719355803305223258327696426493769502980630389485608076461702770114125101895655375472701459914803319020841022627459469884929934901100156773927725972900826815230040377944426359956665290375319655456237757016361985386032843985388886372750130917554948386394390003340977186306116018991290586329024143531058067771939720601680828139268992305730038608977882435342090683289503945291692083431010930574621147601990305195916776649466741197097258540021494017768901907331222020214920785813547787460840678800713634845095903771853303508361777650589784486280737699263475104639729300829922861805009728589857413870722850819002585755696029172312787616527288920161618010995691487250555842498957430751925805844914807617878609187245819188518904097983430668984330556372734854264979721944423156140498955061915041181516570286631956116228173307922763530287284621906876783089266813332459881385835309482653025597841532518408624416942377467350943978976767581999715513957560822369311558522489351887669133945413873693505155289952001942907333340603416974116076118236457507588935815609685432267164868369619369102586425750560526072752184892413153700318671905096754925990397072034320267353296039971303027397340706740056333080725772577862181987649291598428417545573035734360597127212694121377765789453946391313021742478490832944380515195057687305577477996235282233786595374334294809916597360949166483241624124841676607013051670421989441717246987886133407777504772735059546062442094710140386055445812975479263482352602537110661561600979027904913874640902859778447969234390937330651724792353510815542776053372259920197600946713325105509593918100358810057512002438056377352565018376727054539886264025264611889603582789834212762902782047761125741997781925365667259079117814553111091525491164325885618026435635241834479128867645826759118917443261074829558752578267501448518399263632217245973950359940020821678374241807592823112736688583349147753965412407386817867138230979101633984609378019136607368964050696460901198188039430649449481358912442762546152997468077632232959068908651776552784529147560114629340359694846404900056556634337812986056703306005296669863060295060842101011936065018124131033102419944588326900078564771122335401696651910040284096672337490825005315226311450228210681642146675543883650167217724670329203832910120540625373593682883745393121541587407931886846599176803213011281172254976085106290887046410078131282642242545750862215745869876239747475936018534193408473398207965012682763232703729404577917432093971125171932046370335332049228303655792767600009141368180900263282738097884888587126785869666879391160383826846023512194081064818850035286011824761275674482959964524737787750272455019769580877462390755391365060575372627464239159782378843517463189333123804705100546099872853344197429311344334268241140059283643900627375139669530442041254502767202907880374853565738894139542823879392671980224820763955422617693941408763313876248580640481493277682227493518625282618709118667295393671515022313313341572054319910659559246822085294920771376094521819945320334998335954960022494177048321704719100373770852509097641116725469855795688131236080331075931833675849913649890925346743935110219737195285857281451881170775357241865244484831975830823722942193847928051455825856074587406484640678415063298763476806965473479202773246222125203239057363249551048308289844340553943120216046120986941209093024999209622609638617857843213602849919324883035361114711311381885443526663649821776787583848880857366872797175856369916952549697394242365249958525261660681366106355530521685586879813670599666380548300558986621424625745143800709961197209840233894769484856687751697008294280439574481619865699487278053044755955834013258439110391129281905225823917337468184169078414818020259285343786396836245637855999892471589591594346921630844725985014601030904035679187988251539843712796508512012286262226702670864513595729857383639663482043061246878677022568475345020603661298869335046087712268315839379725011922862376215171908250804918065688266362937534357707009656674786362919292687816573983429214343813991439566425396485509544611337537190182681931920278592784033844083688731064128589789572588756922983011222109351459832937354876722884924499039927009084674406210145290236837709060874424726757636719205855759722850359597281151200455479635616858327915108408093134837470702898972185454973295852877803775631499478604965132545428454170763590414812737553600230077853720466375521285220606028270376898953740623184284318692950960598582364226827786107393017242693308716145204978429479636813730050258528976174733365676381687552008794028250377678237789527710687751606281048751267130033476117801152221347314379736680501199379671058931632468957594266962669351468774854592012671655511431518495505977726192399795632473275065607320742663887403940584479136839456542648347900103920337549660016442983193348509586678166904756090544184452007589626730057985753155391493608331010638407707910256680669111914357620286795545557996602553497172434639489956721992229494827549448437117257478768774118583188480187862108072394940011840338018824573083698444654282691484023279621506934952724622994960883224546768838948882151809098665178322163407214319563713543036911359878787181925746033084291808079462609523938462352080639646246506091109185372522677522612325898497573221534606141472057286867352302705524430361455103563748825687527137992556729536129149449499729367242082146965240012482654735389341778893172600451167965633910730961121340002545579565283055791681137591687558666859831395256216039814284765902258119918996426483157113959081011385534264466665659380360712695802452760863941633565644844639646129783057810159611571507887491631271126939195132306499419064177742162490888290719089079067713753554471250997091481314562119186005887632519892804774793833014035664633424011690248483815948623785759565126123679975719463319862787854156106136052386368358427681378148149730237988392195430916072055715578272489270218609335395744746745225829900416994453403705390800217061541386416662961652521511969098711867864044090592504753157505191080892606053005071593482768467222617897396078788159253132317990746084240571790890724166857001619830208679515136786490792314462426360414164262640807538854086481769414894591393285705114962983057688534329876699060381018539386909842958407595275204193106449291896929884040226478347168762003317287449480542084506720559283943890197484190240870412294710017686068034717277348833983615063419427815266817705458821561078586556145440294074390596274361997939939757208203551496900649117836493287549838556688645872353621162384071519839713113961811491735664337010324888974586334551465870807347956167787437687496343219257192439714924944927372435285305182493259402516968609908576515913552443754797617349616319900350216862131731079313900379935136867165742786947858372300131117435050293141579201910055963173303564531479786874538691748560316610326611257278614206333689824141163182121903543501170941195546524009499344467447338655924398402217293555483415586104026054581829815808065635792896596182810882101604399492738018130901100527077418289642315838161211912876726810738506970636434305865863319948526173027337610355956269611443776056972312572908601806604410892372546101248253704731544061757643931886595049632827067868608613848874587226964588836794540748867875715309292202218373972164959558490243375616099649510169710432563802624493393548088183849767932781490876459241656955119546277372794489932306454148445360987658750572960550063689040987062588117787869212012559494247222010492832692809522193286736024677567961760513105932486860004954557545653010185211434598567729536488127855231110607528810971649568445798035371490941005626073776138359730896467955042836473780269870630465506047068903368010750895556821182217719435309062608971258461285405278351867448866873615683026308954608724693672445149634262870346058564433906900280155236142395404785576192902053436304127944333379999041693044335005397428672699647736454411112078732246358740877957455817732197319070947922449755132091479429356559355798252537531363340217142752970962326815930837145083322326083123255608041216281443690791948980823866889939216096589020832528287017896773169139747789530370132265980216470634754165304799704600882713512797429970210807176107219648386293567529140084757075234653012687335401149127429978320144370590262443264712216478544463136045791218414410973520157048495004016677117812174950552415123694850326493202006158593429146723296423393879298686167595815070723543055359651622219253038848975868375934880728669233158482858732564868078861814714136214928282513584796664411508028605670050276732540802396171346845898774352124068816744786293918844220377708499808802636964243758776038888566558955365510470727559836267556931423458545116635032740125046133098330852694806694988664376729036583974114486732183934246766993442957020577538151897388733416189976864465748544661146058220871472422566107419681542434641397325651179004135307415609198935748759048500076033524917105424619068500369751436896487076035910846922936035576980207425542610651778046422799573926675309544236260931387752106687960962833607322904456869940273240479009685392071156835530892642848065934616720943788463890593842867571953075457501695041719610824272630444275342574334428849774576784156797503359548068600699320526493091876817314816383424359072673407750062719826328006163583819029861092902828298474197848556114263006363040798779990502784845941129153131058861476160240076951380503254962061142698423665497674215251407544902925280736691860415229013403330981158274037590567009676799286743227963875953654040657591408721777331130617308871896443023960253883336178269487363260686921696548840958195975507349035678198476307344839117262964747349112891574812555641289046929494368647093618776496681554740527429773839967617358518502242259442831484964680247716712235325671834103444392357385690382463613637693383790915085658243122535041490516193395028214052525612422735690181237390762439724054312242632602415485641503901267179636624721768676598778785921499764470744542900559551451363071144217730676886704875938782598044777870688929338958012520744605058550234844857549048519963933576309178984013439692583876961831843731496594387972985791389076312397953414159219189435450236642321309144372933219061963738617499390753666569765985624369475729467647735724517073072360099295941474200643844079007394875671884723364809646364631818556524208124664602057855201830882960096590432356873147565911538596506930241608011562455912055151675580372621757156302761272194060053095871330437813420362273143494596260354440262427240081055368975892616258649689201518938628808688919382704075060446972812875784658238092029851326562425188338657672664549739076999429283867301539681758043987848889133289290397255076975050786468827485340614148975997516096147983825774247146934667188076749869386571946023994244574564811306743184836673391068467530828044301837814836099207055891817011007052561279827260402095439107647472433392167934851815480009313947585395767775205339276079886864504414167976410240094374963762267631892291081243305618476408321017260169391235520038817360852773025291519208531891186510323479449524998722327512968292668234613885583936424593551397344940843595937900354703761905491701623470744657295514133830722622704169138900355685728559163148730305465390248878091355819733574917355508419315542326483490097162324058440970982341586824916320837027316202728757120370923368132388849066694972471412102847676789867566998958387072055407547934159152181585575655908489174140154316368169000798042956232820722234495878090906336419350755500317139588306089704481226358098495445802461863777709762880721431235174365090687531346987719504016335257167056374383397722666006460145936965897601154918332063216560776076481432198073608980687758087864762943882440866317145999264945221859255189656947593164206329203586660588505912732379871478241343302812266874606754575290980592656771152823026830731454723299894105084175741632000502439108232872748535286062804092682101063630463396328405006346983726471565360990648444932473947186684044533238562920352381235642523345038813589474998708734965483043682294739744485469830854477776343528694837628106108567824928128850428081474053606500993094476868776948032928565917506195628147764920785070132575658290864044140873676851030094017102928189004626324950164974923013194292624773629079801855379839289807615194498849895704361177691457857710424075049065088329191775334675140697640034155672822109219823679020364837856196341580827803629891546424710275185505245222453730565403000099629462255040074756434291797978818393483156225752797467446983708839678515838410881175872191714971000853988547655365527282647083970459466024067585211417967704947701016425125689701951832348302671995592342735315596805945946812743726809951625217344311239602575882269846353244475399589129807409982116627251346584659476588525059467139450684399795496681026074452517819706911113675751471140408938230136393892656285961544849034909923091722020645150086984694402068901804038592343439113355535035449136927652518193149690343402661146867378130817554437706376393951961291450797748193864187139188902796647651388600651961767966700382105969093500410631356713911278754079200673640910996223740266228530908595609042720954660753688272680525111333964085979373316256594084462882389439122499436334782040018289583839070359789890253258405923547392774422665168469536618362806998200632901331071618982922671777183112342128617462842554309813593556261915026313872403588199366933565667186167537918996066861635726829531636950428363908127313751965207707597058031285468290571472006646072308145843781216024935695068150920010065613034463043860024064741760572833975289907337086875894265254808935046719612461844876119896908430343868797225350871188721112136937317444909259769601456574272444440301132261026617342546732263477931775672646629401845520009401428476936116062515803367667687896641333460200267506784469949507150893171651481192327894831545311271597365573439236967646372148751811498320414220399675156637612796181073253481733692252087654132834690256235945925971730872745604471647458870577669603921030138261151940230347016715160593483312651707744496127343135468052876069740057457604211216841762391043616606610370905012797414141753594970987429606615230833162578327223936105412036957180146889191961610751562956277749237697762334884001240729008896041955211481024644250017537343367110704987155445132841551472416670476662734727423220587248579550705680273754864158373114781216732703872504012461564069137595421555987976186194938720129750911932438502228306823663912350302538999319513735495229296346444914030380879605032425544112452915336784250284401314120708794837803250281742684783446500714742278785864344669441367326253896002244267897708574802001453463999393586407396211933565425832312531201164332572363742830059271698499918475004222722315713139065879751003709457973220867869721381638625603727461735615510966944014675700731503670217770513024712589785284403598222369879697689979225367322073718338443936980729272619289062304235262840362840097179351898358102576548717119377469125032540305063987368725403042597540686919039095265828119813025839740274908151905884810586680798281164675250887457833085055071624642107869184715984109764468176015736971483969985020605428693969812661785673880452984227016684114706101648112127078585989719005962455310930504796902507347791326467178147426114897913558836579438800188288880785221630907228626793564887449619557637500454923028635825219365933534029040936294098663454661943681370704206588734076256568502854467651709266684803412559605653839420658320583631229940513290849370409272764649184394626808272615808251626748113414997869326193499764287768319220303723672337787170543002882143826558257806138659622042724025098768146155798288496765252644386864604685289690968322335066763435143304142848471264057032457006496921773144108139224387370878155007197962430640053557125998544244733537169775136966689046064769881085563060239782267820114714775092448087004179722476803363605653295422389217226840588899562751833713677455369684557357968741770547935488290741880130950189974237771136299291309543350838264923147218783298750304855593376234105721519401944294692304676374936768140188033834812377882739691950455619096180681587636212648621924453706769784907685447952074017620401214724776583553034992802469286348617392590068228076991896095469690188189255962560241720600143260040169342977804149945200237131759630610459301152347988647469618340842172604137443314374275354784124407872606323028675516310226494119312305013067252872775004928046111164460667694142613194792669854782339701701138539873853665583171472008053831664556360605284698483437669927364703491321492320553711413283813268189392278827674930112453559466085578756455357439470082003498317280504330860942897501241760160382329999325917483225461139287588049538015046908007089770270004103395897735444231157811539693883620063000996170399690275551174426259290360562540914301529152715551700638271465700049310760023136459315696862057600949775434937331093122172416121411440403876957068201796899421587277982551970113965701253140017145625062106749915033095490952148382432022921092959538526991751274683262452574193836770145649027971444097703646146408949631520734177964687271464937446072217563988258409330496376028579795699373585943186045685988081281325877574222164472509183966695884414668873755388113156772896285453573569838858334215579674437806314207502156892223247466759312145307341964235642417953229945561723552511130195742615648045085806361442524313913859732421108373178204599134501508208933459192308620514018293721744000181081702515013898151637736658913437048260019564652859567540332044538804265045131880398173848110608794254464763079178920901082202829864537892573706478814185692634395182411539133395030977088652958416747965921808746804371615398807344685207346009177131865065577420671028613191790703728661807037281425241509323378520231498409551483567887123851291742638512351236595901291435899596196130468143463025326748492439635537923414289618825621672993930006886441090921389303577379625141005214988539715393629380053029016511222506982793436980385896459207374291152772569644329090703584959764264367560204639272792441801063809845947572377362874673066772601703787314509194412289296932275328521247368640636760891464679840452046046142633617599362215676145966103432510763432609499351173206004855816794064322922974159554293711751698166783505047396891363663365646135371500878009577057362572763889068464074584964880587657915604130032526467867268985023881476048380653093904341008478435375587166484229420101980914751199975768063242102107929467151453354713107511536466411424708910757262616831269422329807011095152208298400547524916075391159261573834184364386338155449730052613941079544477356067463232451234277895618792246829176040943841089457080166241812359783192110937544592235537386196521644961421364777810366255935817630568841831630705314637570967317623948611703869890897679161470119392600916227755876182544652503490040950590570559034182932533772505327557801254209147719428672909804517177518286048715006206137582123050515833645063314233403587690166890503473692716768644229368977223664070513301239245716760148543909318586940538175899664953307125390677598821967126424481848964649837884150848208306618963034091978996902687633390747771068354148176491405710958313477133603304281223154090403336232232058880526999079476442489507903805602769458081942066615727809862129533817681470242302283405136462479074992793188294402942212231620687464520326637108246053140485177542167575124791500735497002916954808958781556355647620399091959724123521491860551670752444963351471873235093758749260625838556978294291236416968710875912670034968760731094176323052408619454357276307438053531326956633436542444027603761914430315828480847998142363380201392680865843326683374482942357918923729972513815130632077459391485089088163685675832261114291285834987319179150027941070864093627455675730438193686059790424405264294879565031962718967741029665739657686790114640322137727986196661140606124181532318663091188992283792600303329069364597312490390559462487168925441439398704124459660602945560958629843443255116969334653933333803854153725706188019710733793518087050180488528141321990327544226805279987654603760587725241830796773206405017809983255765179412204583177662491217472430934290106011329290498708550900921510458340754324326632383376998009430130665084404591846260799386044786793475291868684082564277231848894873899765357251048883489205177220953923741827233166489399025534983659650395747839219262954390405418147024783462020992301134593127241532582700864030757045679052873005188187688327326013428727183584348187586665804422412376626214391778607247535907674782110497901383233311915549926465411763843334028565051398054602232063789141653349281281186502016465771267891016631958341596281381440884750697973193164162690432217163607138356525768214253121456799926161551157071970562152842972419343258340736456735834081501700419859029455207225913528637728329118316575067242611031015219786209222234874428164100305327590383449173107054089400527275735757854453535324738077350454570476173229846582843398552556039481247325549405136504366758617925920450936600309676498819413801619016806043033235733525662144971480192511422438145706659853539545706691283107685504733702597109944747374866872339096216541936437412186069578893932335953656030154780527988360170170458349817262163095500404439884186201903826776889679397574067852953114080478056875607164420693007468212708136827287802668287779767890325433242611717168685601318989648564922890181480818125848541389907577950377399531402796736999121683972636629137798045306845624709436299879041989647938012706888234817656716111092079085509265146060649478385724739218139849604034310982918902620134076045740754881501034156714497406485512222968577161089735307769432715623821538252590041040205646574017845101331951249224317215191349267953755719817860202458355585042930494508260942732360613858468769040448148921764117061129827999057985978924100920272922051509153969154395521079402763284038695931082530841397518290075324751589107317544882172628287915719020903429974557175123994538987369200482936445504990510948618058853423543941161687078805399404491747561101473354881526878062944208064527699870405784395788631499811306430412056867821031761961677317355823559527500030125215410598516155740371769928899809044432190173282137853919684216692143247090803782247425807151488432926067496603643217504788873163315408568594762262815682780263154127623330324827143336612508377520780072541703752553871152282335353300590978599032381589526329841644691655299024026397538016329095982622381142480350493798726406236131272704849587297643260252189554851360863347788820825034524368743906675678034716085341131875976880827193268331030843185491788147066568351915291002772187174435847402002302918709340870427956093114892308867283969871826251099899879807141462030357412369230242001854808080570247961919718290973710560662032675999109678028044842698990838256175449370459027448562320725236104763441779480090096478660659904899562836935559533256742013496233817035165860015941273678523858757848902405113697401513884609673652340186012388699170343601678183656498139946471344903443655360377691053541933988718380231843283576857316598315722017563688304083603512794223704453415623700720443142574570041939783227832428182770142752986499615633879734556024183114343275946475408259294621717696582650748119566028007485088746337175658874478880325112109028371811366264919249347728026707107734833455338968173534621897063982775286170118375833077157561226476716464720646592081759100448017375507791968602259764387374674495806101199799440725239870916483210609048086213894851258677614844511835475060381540208410403606844497207247339758330161107739430078772844602242989551994846151670933134191796306571775864703173724921151095098664475515007587947593466590362957090261382021971189206060980834093546750530365867678459781884013441794574007191976170662371890501487801677173071618180647786967225018651273347149918486858513656584350476721647283202472502655075160586516463390837122262294455565146140688184394719587848631463688581787879658561899820054656369120068898696943360952525255088579104283852006903321677152617387686849568044263891914242900628847785365243263152246624906536572927649499113133398927652760801941638731282308142079474718746888082306505131558742195224708300137893019956011497528587700924234742501821921312939514954045189276392368706015686763073608046021918835255143876087456257913802595960685957988198425649195972325748439055501445954344877107507698879030816937987551747826679670941372589703923373946814994159414256788371321005282037347298809670074658303596254927656096231582672337419434180969692241733402294244551242133029755072234433642231113831557200650348261339678276027768714883945516902607066126728822918740343262331971016331241968529660059201780876180374356706272646254722852062780929707981502200144465615872874244993211104249517658898204646046428701751629995404024670029952935801422883270848393477104699368507209993077035921817821548676994281895470541373777173812563381241181891197718564013227169007047867834830511893891214738142648845907781863653628601007802584438302801750451867711090302149729046337370074851873533612435236775411810701209460124987719613007372296262700597807986482712066070387112307982198723856858109650704920174569503289775702308394120587161226840831788685318103890388706346719605376094401289819057135510576845741987651691573959408449075713145461703776253335538621193970275286875584621280186347469215129765175826542280139694601307466591236796435563049732163138888690990790234779270962142664594254597029789155760098217923070726377923476571938797842967470244060523012144095678601479472272059570786865674741070270373020877645278906945561608504042028638930641962340091650127207717383776022860697927463109000514751716332020726446021155471287046472324846180036052691940716167685712875199492958890538445283351186854754082015671243560296540022483956295017149817368762235572938559518969658608764612949167067627225334533132509699987832057231155165549180781836468896141445755899584981097946442146997144933532032115263913822159762508674659783482517534589463479194410470910184823552349561595473008446037560954489478634358669095883069474876292925148768696444664803112824239864416634930066859266098645744873168400927371020781590301335333683359839474037304706298909637488792265593065835587400830908096132069359190710895957460485809796542396458396139168645243052185047038068513207332600202503389045785689565678344578871936350046319685856210208519829242577940336069379325805945207113058308719493157576666675990294037182169553762895601950524118399397760819483511918519739043629894475638104322335139591070721155610445073639032589536323920978702863454636998476698618084638979453306589477742384406893908514849823970029114657493987704561772279269930188341254373103734159237756630678619136676223885125029969828289597721792172928172869178874085557654315983362943188252775342406923320156068190040632413292973933595643646652891232933624564321118981500016646670213171735066085127817462837487630227891300023280351380110611232361440628114907738844061995772685287876375344180942771957161267216567453898816710005507442756825623775489546631299450581591446574509345754037558975768210751469118355379104370433213902697243427085008082552914365149865320343288657151433913369366160427256118851195848881331646450849003771156319171631714058770824345659794412242421927679726550950248724276799620666779574281807804615184081394384826820662751549694278317262022624523195141268610391633564146829792746460010023066677589599203681700624949648637748294157511481641308348024978169989836550092281323622988325607883753351760685897633955831643283767102091074987480107240965729941758135446124643155486891663954468386829553074347915839424863859163228579581595000602763822494303518163013740377027501956019007999215818523336307771672249779098253947170409345495722526595651728218337749506220928378888951287155444847702903706207092355764232743558853564061779523019122874018994346603808968128399400988455632683749714608690099800411355393525539504501897950968819158422355441284411587130503507994368026199598175684086244574753832954683230441022482482810505869758800960472959571287693150810423058623980823861189890450062947771847798848924933733796348721453446353571654600809014741063493315296897070870869175184332336014017877774872353834998747068950172833628509284674478776253205883042163690999303885043557787327450933615974980579084836051432355523546961982125964201610379529408584580093262650571015994727551728720792856680605627396706894614803526947397255171887101674300854475464902787130522325065082864521273663702632400793762267795959547082081578168810918143443418737364580354025430267291065443162642185461364999188098828847108107184040875875570540617799089008913757998847494950279906924908156205393172165799358231153439233696091544773733031909695771721480931422838654804288367768183326528817424986479118950499242534390746914953755665188050791127974909206381346895294569864635868858983398525531271446903715615475187071504093132368995370950183531076040757240977963687060126057944616569499431417210005004404808494695886830811368310020893890738407207905579871102594069626728189202305613751619399762993993961247335834081277872698979784761076501472791142110260868872397657627896931221667033183183055202549498731235278401690709041690607551446987952625125600385360683956609601934112319087225127375630627493929356722271706608372244450128017289927383386039809548284072907006832985980509623469596903199025822696851643608022255910049609293620124496338036856617088304519188806651885955690701526838875992529942943806453684403921507969537904463799910110218030750705594800078909808861331512308854780466851607900999815380764902376019575111001701174514419147966079614688923155901769242095098585735523504731602287794516257750465972085258968752028240006763196217876235238152672811341566206987226676012671175061075683340251739612445287677979040187003715064613145685755044694141575399012948683813441652352167199827876710111647222650517736749787423275170371347358751114637871588203911893502222368066158812776134677292138033491100447222511724701382606112216173140106128379295745874468581910388548164232817539981246347943348313439095698900242732986897018713789322414958402095584306873037458016192101032207384320405080220073734438473537297560304715193019137251331606928210059135315327570045422927234667680106271568793532736110561332954918253723752483276991513688549378193293675006235816625549299217940839012319258462105716651100557226913849222395242135532796395449173012184035436932045928293337541512957543835638061343439441789271933074816637681956104948158127463372998338321214180283750396996198115673674240343927197781451342807658101147976699243010351796451255100149864477073828231892896604078751835892522567684075776478074038521672218360889847421046560231939190018513843638461731085974621687093782241336695234053683669050876895176483507494507617100917428432699251259710975687411668405264742475110412029149891122835925067556944339077766100024902124165358334307467340728343662361165162962383143337221205529359896974984089742238336696568721732151351266349821857794039687364628202872427497524695525538599447215943858685000244149394597777878054443170358336549654935279699345001804417166572651477710568755331751782463180642308781965893228657967265878753007909134955373303477738174561686743707591858851051886282925818600065249600319210403783352541470132087486123101300653935530639437272427351902031923921329881449509863216632556637918208369857521361655811565879370320143450819286974458413420920290302508277863504327845177185890555004643417508349247184748874919161559882046210972496191766920713147600178681771909544740376799836885805591523741333869766342420408059902424371420850675992821646931607528313411901002912860922206439067303342459341329495081910753628251784009246097100102032755802873597759661902724097759551615734786122495753899057092173879516352686445419751617441293262179350807819002511222379321918678979555630020203732163216390002272614814986391122138042649667540591421786342704599998639396489123591402431357278485596721844717508418107701884843659844100613917974500666792381244597757350850867068440655881989340210767181449429751432886494488919291375480690168588625873022160252166905836986943968263371277548719420652125537914651971316309832851230319594180713467437055490487290724269191236283830480321549265789345558254039548116438144858736500026426547227510746632799473895980668779423233345508463564615118407612854082392345304696277871708738374313467161667169077268350470146347591221318394714946215051197875796690588708827354080949678105804919274648403242380488695927325103182380698210384785152587018645002172086418928740034667857342371056016280240651740732241971849194161747202924540435444558610199271673428427170528401502473954464413699524154028112033122200697062276924465481563026421774512194547461824583911392750221283392339711806464333360661551159134173492601533508650012458061256226282037053464860979326862872541676279326360788480778521197426157297933520247668328103819814450099961995508104915424786031943928470520817723279315221847353271277834383443171284372722391148065815849345487370772940351953423510447780135155655180017004322471550787068170101153863557381552147983422162458046199690540040366123121117662659330327704755784779362761177840211215797444972102569907773145943371218097434744781914264547915785065397228897569570954274038371572073766568510148644535643670985275780667781440922639498331627959487342896696682559200838276711019935041860949611690500599498482091415985316821467865709385167796610139587215787556907833764306356696210283091604192320709608021071413478198688960527390971507336487867754403225560560735873276525412150454312289397941811266745602712956146301800008981088414334559033448986166376381573561788523058968749804801739450374397534633051471296161765946357827305615469607680653248811702041359905450215408128370916469968129066613117933807353918101954360354943755104028830647623363704615204169623542929942604483947198905735211962898799321709464294216654380884673715227800557175079848729168177332122432641688099968108765671023163584491455490731627611950720543577150351894759646407996022307648786365102970205220565458250924025695772035002855133812341013386031248931113702990913229027395115928896789422697285995359777686789586245138407067578239033397160183573370405121901971926744002629343520042222420809482158999124336338074138859148229140002667204174663248354388658568693473499799622976543014624590415921648087360077706956080865974647548271974374639881052837053415471111679427968662502243157950963314469201858591948060947061775572598205506263453973673377000558972844645426536008510278778093712473832684400331176391492346414741791472005659567727148863746503263139669874968734299058989590791278992933457168911798885531610180951974228648096877647648665591865021132257908346693645407486499356143014325971010349757660802024390452378008843307913967639857420492580012864310928344894824370603938670865102839136781929873242969842514647813879622807339073908198800828664688787524861607708536695400965471066367678874380016522177861989213718080219861270421302066694321373312118568469095023481170299621537076553977975810447891786377798200328332218261437989352200523411084047395619958480104536268257938194368483659961508655914851376353653369451841563913341642608697885651463414904310075929109164708053758696243867486515041114596504167044623900925372015683250056512199986443855584466546644940457380144614218263968180281564668901503693368818302808557295642337870549439062253301129178392645882421030971151604080377124988693245517098916478254612555930065716748858264578340851453387712583792457732065954136290829235409781640102804112931654016601367764289040438928521389717323392547945658731313883421354986845150026579153328549700870156353804907716889849224323371242643816684622433604965143029103378428364344600883988200360677116744137917063461880434582565915723850559205718573163633205238269862098512916797700270449926938204357322897863840538551136153859176434813236361481012252480224684943527182416017022207350471631088703770257591232587728841812529927901599432855287447964722147721366726344680100601519016783308852808288128038888475092978138135375749992221803474369648895091448549729714468246411703941541864966482742496719495539876319971142434477091760944100059990582960371974607813377175510149865135768196107138653669225464615824463510218031878879356670680481193111474588499273917415804039466245323370704516185577451755661944347078939958320414384717555701100517557023029632063264227102256356835565486408499468034016922591265984721144506470920826400371126520355733712456207517912795483157426501511550993184807899855794650876685951980159045144599962657925257301396465947047436274435055863045666049752527831527700261676226005487819156197891578918270340351425481120220129141155011905587115667920384441360690468592669328796975249284319418099507660634342495156843016561922041623222632371355806391280779649773039131512819299539550169612484091974325882867150692038379328400098929752869804322700750328256960582460028702980439344896651757197459698487972674373964054989361538948698934729154990707050719426257216093835622344718553079755435784685614277978396291578183896241830737451111373201045961446132750449011400552511689557885196356010238405374933079824481763227382137172219068670872241685288300047415824774525838831320368863854449083647320120965939573291075263480754178012607980909456543513387215660906230129072505303076380271599351537362676252515226531063440969464916361212153630274845015773290957758819919264002933943191917182059297825213928379397137708220373991402757387848051002303060737772583589855485590171929359522045238146580519223478583818367696332307535624719073004751976942369184087106781628647961526772869306131678100470265735497465992922953607633370138487664475940549531321280595009348431499610478497794256208961985561899533722801599398256244650513038589234691939683292965939904096248039950209076133395494184823389309406394414543045030009642957198536427778940025306084347760560769654774690676562462653329137089358891974908610039976586618445762642688716363738371324246651426585673516476210822837604016288107140623103377528564762016542616283861242578810808154676650676008840680411960919638907509626260023866900677122668187545046580251413265998387892412149703027585358159099591233884343556898047584824049425267714674599893243400065283614227305524409567082189319381936079615728282018359463543233609408592511653672814122518006369158162703704875211893657226812609932146870143901264547966521466725670580414296950166961490779920548409895220705520377044919111982916076105723171325355883368779602968646348062700758410489020150311199391646561990076713471026076495814907185307922615605342551699217424322919888363627548231691173149659791064280827781002508420216414444405526000278920169848354473599776680069929668070506782983356334429345320473090952900550544318984314508311421618671981940784734395822938831552577171769192028895486368227905475872159346763113739649384496483978286332943548935584266882927599093566186303394130751394651860554622318823809557872909601729756960428681582574980467553487175368192174443009717664498818704647702578127703390991462128113566495923079958342585230313844200510548529652720982771154051323286238753306265931006831493073154995335439667859891324173635691104565886931848381964458077939859105686762240401359636565716878085164694826809460524380756396302224557886134573895835426790468062496541618163989076959637722987452017499006441487587314694001838877929989706457994739497609317226249090336132066855403757381179057806219023023581977473313258036896313295430184386937416537388506016982679397945524338114668388152464530634446396039497256628025887349305778098413059872277777703971674041795960053335013946102366557113953130187592448923734717244091092497434834775423479011236919961651916894118827495728645592054961221359941543913625482305427161116250016769611910404401585196808561453388649199409544834520997739127062439667976277815007434410911298872661349487837726406583010997450843439374579147224359503305062573562806022532769098735212849486356425245316029200713572363726569303614918239221175650733192021289667202619281679767409325535619835654634944432777872511169534842809486707321834814489669214244747558550232488051299102307812918812969933332408955560244498141751873863144208695243235433364619530885167038399191622774697901209791174223413464825900527880200915742467025371217039578809842086915877291236672501715039487533959243540267998967504778506069262637730307146744161284802186357519572467732884029379895700648847726098592135829046748177716979528379285827809790211079136066974255550210967492846106319389938899498320297662304639594302441914171818645357692096760635828242389960043335102256592278859228366878118351410754481929426159750993163710837638284674684125531088061159620227046822050347594616082714563029281975367975382941848273739124256237701418419007553672695277776468227969181982279832005740470115104693610254873586339984374517659143725401937336944340334326040413064397000177076598736842724884247312554324630345395431417750822438840901829756754235710545653126775551731711285751801432731484753653700311965239506713543263177677569063970165023296004599958205164838811766222183736046684749965244666666212838549343793550154107914204942748374759946849140781646027210143226283864075368351863492074719981847191548387327086684333863076172610534562927370597568376382291277668110706496931854357326374326369921739171189725532711850382221697728226899706470732427411882322143663545106889637029491846091011896360673886650662770019284261017716919995800898463590458585070943625985627309615658904658890186740458149597504399317355021259718926194842404130299188229671721502651105990393587586799218373783354151868732806018523604011878159414459555214421374988136501295283338286430970858878319591590154230489522900147261801888764501788297511191004327608036644905264070044746616570424265264895701257766055224877231694089773499704128470668010393315280424864687246819955340646378523374590736141137540076733807177897758977218370497913651307476532185004003463846326516776537400704413847480176747133193762411379930445181597484782661058225788872103378623625216309364158132095097731628846011337207510049435959716723413794996213651219019595525429770705635685290502873939887812432462777281827650663900779806705256106656805432583985100000818750195460716975551342821325143178946596909938224853626447177000425215249628074805497461290526266877938857707231098704027548439151963892335787399188717375572552227830212717153963528974815763836570761696166851974310544415757066369013285671865057705607744677512396442947209583221110910484266350317785617425332049899212207207215846440215270761482040801145972446170915972056219901356569003833503117987882911112128427479205267700725345707991988569688876658636410830185139133571269861150808199889173293566079805695688229637862956629805534845986649767395768833481820320417002724592891941441923923362432623688259195802934530603483032855822860219255825830300140920273298733640772314183380771061379024276045027352194106302311906758184351854013002797795954742053742791703571550585228854788596679292319500762016364707888812587466738771767101448714201900869377144574333799660776588385882767933098318638725248257422976742870966781057618374707035829528402384831679707502427301692037280537810428749094044591535431836079606600226035459119079439331187514495203119188332270036952469824799584826829103525228871205154050684989691032110777301337555373265421152998931289842894072414535102587644768578133902986070573002241520793416042867263732729337818761187480057650300503128396158336039523397342162059942551614373420139028478825064842253400787857405655484050664254484652109601372820523963028333030395068699898540084611308092533417488669214377755036617430778279940340879788142860528246144451896631938091327943664416948250745458372066759327037461747655373096137803602353089018260510989318796544898549207031414807000642583343390614069269801810756496750814625676662092988204277371557314178510536723907736434693130751167477056150565100719346049989478367442196930172201741878701929669376925788752690294858776115844543298465412655731614128974886624385877418595948174080070794793532085493004411137933442658098171174291324014634960139892972759054158998501856718934309717142078192123290060752802836408803218611635337022184021674356660231125916905270882314888662607058776759032695814318623052944373924719556796961033930396041195708615079830544511140796279810982647127903329193025535569561554465681332407448661295543250035434485674023384464158736740558550528611894477231773327448933871269573977400451440117750549672417354736799544623068478932807318278993254589933631813655402474593486613258637897057591149867131325876684044553341319984751725522827901647391126785918701718896946480819117177117481258013402818727349407930605115080069892228539850014606276744205627592532431408440876060349228588302669922206694527774854907525709175002143372853180571701863087145205992504319465950835898051726741104300204480883392396703951948841959104735321094727883259891628083031978874660251074701867623976389278275146177660203432983529482006188946056689207452991755668085188184542753826088214369380497354925388469329727765088083278776785169826925985158530452955054144918742164017442784826120973946954777024219272595863473864984684811155408054141016443493178457587252643333110072127209227098213796668462534103723459045455616266376452769183394648185778490412589061115270559282952237973897964220978100818350644175680591770124339262939819380777951619709705334542894471366359787757090446509738852098591973905215510643892243830086450812804931535862451823412372055526961510208311452430297141496224006482174815846282041044347197021877691519826333148214576608462634490442937279506598352030251227882970886985064804377511576620915659293775873786287981079215530906308103330355273370463485482554978702425037317427161720078201363819473105276286715622724894483363574625171034527613580246215144949645297531343035137898722260195646684172139116276142414388457309703660520790841651276333071810511001192122272852241517337188158114243911780987976470942730343648085266002295261084198310618971980012231685461147321585587967069101359393194759186273522345350235817873939276067750342927061282370249731896316098288993964554998719886778656725956610934892780470053078690464809294598991085146414870605989183926870334387138269166944063009628404747425815197880033774730348270870232267160631691278675677250811862627423828179803570820654203774614340670278311792412435805361384309385786641107208906824869113768700199823603923790886839928848650068917771708193218202098313795402409626056294489526551659852750451512472159010553310381031653569304508794441337437471489850565062270313795387039640946540082503278481621413449212465044431969971863928199774398772131812983218295474783844797650542551767230123251055671816204501073119983884790226657263887399739776260284779595648983820632259300746838244288275286893927608640529124272842002276690781810824461793443107994186938526256604155975885919405050348104905322726833920600232654297802594580112686870582445045230241720231932505934837873351482771900688323395707853845557334180633626166955242279661724524035010256383836740673801332171451774847757192641170719308614075243611468662685960073775092044485850578527330794830464148362877787027962743727693952175272659750232625258077523464143470399865874021321439606294878238248126863346673400186401797677193983922488477255113267822900333841794968996807117730342552788732813796136538926076137217252901467292817626603253257376275318915872238593191913260197180937636977228270548226217174667116766556435915597704021479705414761944727408762546491722793018757247473744646975831112610793583194386791973048406782469192324096188782991698694034168522713603295295622723003814344201956295026677499627125056833693635767671934544092470627070026666850620829291526010422020386015402772958100351100010732976693811201752885591956130487553792755080709563916391585813040086593964022322747614432668729138648214635654780381816569351938882072557441703260136049362656766371923104880436278707485717222526207915360923733240451888071232796488476251902655610394906855513393318092256994223865763962111714310259884725677393908385957703673707254199588297125775634571526078184444992003505287653143621941301310386144441195587456370751138810787132027016489681954465817874994537492802982402583709226266338263170262111712249016396554620006082263101569430690362006790266651502956594631766227789484076896771490620943131395643329015921461996450812191520597999084200220522114411334379664614529266579583150407561689361596008420337740427743756964386056752228438602211835868157225478855659487390104023353371256771547465136963762506494748798229366252340852847740794147177139747986003684493377784213581419105261867805322301129307111595729860218267248281669161952025105660729526630063649373321570146135259584428597959446696753710548915815920770703012277178765953319418475963623744330903901089970758845057565399150102192921299528915089983511242502441179761319247898482871470355646536346661192011738729307061744139782473260498203972816516757052821720211467157620005498793772418792740673998217460343679291981372559552994013804671975979450265019628879476209082112615151538116364092453268426741771118093458564515448360553028803947814560660035888646073419788433763782172131189109662491470794926506105042678106578965218302260806683540606934122503513400534579214903938552854480321027962514536261913385066701600553882317471519328388149136560761971928532737410001982805709140843741779624817571680078945100537344134044830375373934244135152327439379162954425606549499058199155383013832765801463966658862880994884085973741184289919507799320960204891469359276578189557990114696437502570981811351189148928902976157093990532336456201655719222376836415248671542539687404071594998073363194153943439732480237112154820890501884508972449408885414754735883874220216165691424425574220387685095338533723088135035348660938561100570257106662872685161383557972569882695945141417874768522721958757146025772544412251459629974656805611027740570382143621134975096085569875003535881065730961665446015520331380694495725830136207975909552173905887052532655745021202161696946233330143697207772385321286329673335696417952470144733184731259083545221157829474765143380573146400962908133679100779258777744362388101427903963966699907774541342984738227292195702760021431285738862704127305394123801971631975048863650709937769774293946454103230614068948992306903124864441220053404590023741415687131541008256289581749119397284112291430462116290002246756985723901410923018409445966465174918458187222005173717162921688663116965186715287572297237634991036017252179848949299611364298063298433618596435293486376585085605691589821327957894539688143913410993624081698064264991293603520221978002150153871185314965240122758658069310621246762783958962529460780427544417279223557624448891237722330159025278817970147695149172397796553365279166501327059961206054949753756973825300050109371530592186325219244826488632090743974395392652826311249249961091870935085016616302978305424522853274307016627239262468750062502832803922603299038061264024555845317959436383508440696071844347602628922415671552711210455709593307979914207343900604966347977906736765587506386922260146686213653603999518584615829712317278092381782449851773508792444435010056696833642522536404275325253824289511507013464274104915352748058424767476068759844130588598592832691922490632476753891881119291943719067649972912431277941789933629681369163259258009743241772139060744745740721540843821732295533943924555878322721563385882182669410956302321203895640654692148643834971124900889214930913452439625902149400993091649409429672729939692692010415113375161045311755047917638076413075031556913187753903863515547575006955345024584771599533978792055452030090594992381908808216262341369827908033272458024103357664669240816656277131347659375137913260716599065538147552245812610341279117090560765630216138050333072569636460275367056195608529811630249421223297854035600925305984917818164800928925323668412438446918924094835405883057338420063389880958689360187940849606993713766444650463278010185207321236612977528062899677590912511090876056127284067961724568187632137626527018940867322332470278836464360206285667178553122434980694100518183421897257604744224742968989508321871031367448115426453928164793340141512925090509261758007753636803436212088027236992340074066819780083613478283775323422701355304128202695647568493024284140652028999052220065864041755396253445431387829207921665422222842333647678067555647164043296553294365163811169421891397914325119079261865289605705225260714655999029929187148509975333053371916940644562978425122691037825020987908605868409384971845931272401025905585487689272842464088179952654040299355851794507792364293509271615735365108887663529329401694077990761719784199483815789935082515335660106502587856683913597344861934567808278228918693870347137073501806203088896685709127734549621988327732725969759264114136443107630704462955341606655569641785037151075542210908943517988928426401308544435155990707280744313719610511118707151591458166685164998047023158111602302529848621932722150876793331475284161210056726299247596723549206758805197035218540570933358685645912121691622183076167015607220919610830058487489124981938215954065328019925881246418533820426731930726258100154870217557824020465364469534755154383641015251038764211761150721914190084288440527860745413520873765237044985717636381956697546436620806733808711995107252853449255748566869429184904668822275194022550318150534928824703354379347509852207326222513027822866776949806151548158179446087400460964253172460509894145496418081975840308540327809914943625166887705339569276359479554433837001877993585056744904863888013892720476070974338245882402379037408254014034463627903057904315991548274855266620141424783411052708599655881705991484716370092443861360796657825294066597403127801504141346030229126419817714453891191043138370508644397540401106041634798733633821870124722600715634735904616390750549113426900845416210945670665584363096335973464740214712400611665406380558874814227922157708228469934222279911071551894285353893171620606993438023176552558100078779537618300449228626701534057592058404806829743033126183076843513788518527281714158452103021094914118422183103433312960997600501143556121855984130901396036205749627374500360861677395682633225687283854517280228049419016632008473735279664831204037927496005921694075608980063529329368455351025717886523336742062483087260788445897103390417196110737099168399777751504313968508811472707972911666493112725882641275072884865797317377453342553169245688660774401826589901138043095484349639344729374886945345994423272765726321205246764195736896661322304791351692829581738720809583061072105823986920071197086783781131904218268424117701537991572641999929603506147834008069506319541032987503548734497665889553403649819194919221726183098388897396661546784628392521695175243507012028391357308040333348439359736058181547899788423728888923960008587571993759253101476542949783455275722447461584151198996100421245213773153464612423907361851620805868173813699647648835149102679260677190781655891729424059360947375210411727013308628450950880077794577326766047678696238604238520290679988125170942063860217410069633493285422658225387420350587332816471822679222123710196307193411374967852031188073034529014363376946209493397060613842088803498919963147586609680613640612477598035933301762831340031360639279035317600545717665937063943458683647448612295827453795040379596838379497367247055597811803371332069685441646285030813801868455693509660663212813244407289568337550582273426147310173199322641154869454055124698707327715569778777278019778748431827882829245680852958860488781076442192419741485640379484582537495834231515720790715942300904213633390111347610190665594851439456177462068754586967968639283989471095306227895573243761089326510400970299965772600250720453309605469666717505873378025965053024372234543382792811417725880014938081886198933585401428171668085325977004646569827235952582515079770082983700470995195131932336605174938428978824748079144172668174444334306165962744361523934109267738927631838953230280641146563794090086997909098751588456429738213547449149555260866751156981704027999971937702510340807705287597963624188570292698060680327978208435017657680518556586174918087049736020082412528700515363646242660081426706037842879142135243844306996853473237335555464565125925700206538911493979144516410680821254097930963329276703840696563905358641077864265302519650547697428770815130184659016739541134537700634625758719159447195277409026277300495548665462225752519211534911296274862764507549562018354140978487103299887913259445092874626137093883104983117368096166512513391152014685003940940145042542702118904238718654277912846352158409030592721170449340249687673631742601639433333377703198379605924547884267312056162618601572832802449600723515383860067530688188027903568540549687322977873380804111457195774709436626696814992889037775505663271467422841128198332822211511947322565289993155280744696824032685371642154560263818070892131165232626316758378725315926503955515743460617973466563558474100250487510502792792693601214308418484094337455078618657562261232887957369500071632572651487647502481253460986939447917391901069031087719082382314600072010097790719031010560540625191829443138906880487670916720298914761419376944515413036623575789187786801401209719574124524272072009481941170865888333404333646049493125764390666086891865278408794223899181602279394350606964921047506031503044894306430378481181674797015859830162356760288617818615015158731718319945499528518185811171662743161628696724579486732661787102525847333732510086074561115251468184856926715716335561076852175902174841524119054160372394685580575151948197124036749501084841175687664867016858084637621739278789127272901710373222823664561813407682434801790436235771147518824178922889915678418828771335132651895329533557962547876489515458190583985889884814556701956448656462470247884410021160686751504443271179368044561073983435028439090120453904256930091834584150573769182024572090909944928148037945453830021741432345227053849528198053876545514051516743201536483876318016271962300187693723232892162344954863313084389879850869124167384209625314011509550768351953586222977744292848769784409757546359404890842284296334498231324237307777616568079729683265765106920425660998449685298837579918951233472179611575589791428045300407085888107977558084366148423828479742289251511225958263916256347395503337359494797236750834350003599554118081190775644612152559731549912623587488996625316117415501852830941277042710951060333193847152887211210244435729864585582195333153123118609812057622245611539684787911503882736415265853394937630659335292467330644849679556473871544953862737016022591887587836759851798504356664713459924982854825205202317877569704968117580461307233177308872118811521052498503481286275418757028315789890676766163279772673871781696959099298966410738353369459828722041975057531211757525004500225317017233628763641624294164975897268202252678408346454281520460102953062039718523711344232111173847579130679650552592839977494307072600016838608872661512153682871275451069507735558309980918081053387531653199377593592767514223430877335547689535815384141559976629240880309255615883499511398014533124600589872170963597229984440529180443614432218249077426372192456770789688771635222306005835665435866752200258498321570640543511502149356862473262288142317343248137467365370218460968192659991653642937950778100952126615597288831106065418605767679813754256390715177481922873566679898356850665900106646886515337748386309405281382781254183643455346455144108720744291047640704358478141967226920942643430061198745546602753152098688163453111584956356255058143958449161289852977642819613841426370328216107254888346604810757195112824783282370628641149749291909475214109690335689224018389818068262688962123964595108160941280937015735220041340551368782243267417024463871759392277228204722044071201836151691085351804072504788690750234925595254527456144173955233286430856495310560189755103736581828925427998312544264597578394701745977555985660960658150330314908221426602821788767788841014855419750993936546902140001861482158478584894599867091609030383163637473125166137519957356334239465615913961600120588658724405872815204533289121802626180294555336416818808452386299780432792711361292756978857363983701335077480606210336772758747811196910847035318387258524918739207937080182748753454273041896594087652583619433503350941317508836535556982978244381836088858904699806060938037624401095070328468292650902771073256833449812641792115967425629295574316991947460139653443729942676717201994114418903403092204228670030304165685312991626991354749997451161685516167984329735672099085055961131907522629727844050720997775157555694240659879212898003217032287420102861363940477049056134125673406017432024223429827187366925992099482847760823612177731842092429544175442771907116413102567929914294467644380039352157755670770359873093975833894638777278702717735865286340764349434641091644194390162536685709227964887602843001700846042203275382205922744849654161273994144417900721040948391129338420539952914194488696584370190462059527435961468992273906093025635951137603231787687597915872035554136174152817858902516221160024168036597002558180544107614849886426564464772558981284285234675734733032104990317728079105606808766200432684726839692508899208910245752823402043960749765057159714866550673028867552167305688808892095598695632139590556725897044565655085085487588843162275900340879841638910741885457326772109544359429485568999775570708459112452494537057258211554716034383241518298633490580287446471251122398759430986617216435117083246068152743445346705002441032704479413857655167025505794981498905504698144355317169011887068128128183889213404591334712906500969258621698086481174103081382985866296739882581448410319821572308130813006541701768258076954891345506190999572656953469456691832568332617026527746426829085336254664739519580145650863694880359346332906453413062329871605978119627445676066245091580801303911231608716468266084647821839026663314287715564417838493573176548620642044389006520018178075964458343679800736073954906439567742157313252113430616377414316497666116959557167743748672216115497792655639839186962148087323595087003478291853554123534050186704880766579682721620539944566504675387494863549631065759798046878333062052734952809312971055311367061525044286911357627444718828770564173357885956605223771382564325948906800978543436313699310166483586525085716101801495032037062871873371058112615423946664669734019588786848574674031081927475820197815921522010422755052710940129862911737914701151892569285571740195685167334718631842172250581064661500878612958585721139110718106500658829554338780203192974880896255309442277357928112376894654053267376990427773190539697121802622771437391694314133356094336079948046956533765488832623585224297645337747428067178900388954265130962268483175984446275223847587224115374139718495474668475359275570808311859010066595379962301788419365855952693953962893025951297572802336077952982329792163811140030801247250340300939889059255142917287624962698770851330474721032036578544706891617748314866230488992790737427170014557513748492832618341342505382884572534059060267852657267326253616302181521456633285431548934689307905110631322247077225260776107985941948248105116620468089081242860840247790198656021148714110920635716325102848149614013929223193102086490973735557094074341261526446186900455916196805092840818442424362667509224757971591099257268506036271243758920896684104185650926773928884795016682406751547594009987870020162833965259863011279410805560999977909516640849283332143021715369340435203955615154704119251931300104834207868741958308879672449269540291809749408597154603055862947653746178206183507197914858669554111315253310654995640181670155149361537124644958672211789126421789075864184893365217425546493111388258343648717803177911029043894721321868208769916849221325079118047115764931658119664414154229592385485516648800179312574586265625924138885721197862787334384331501482643420745102900108701521092782404778287893150185534018356654211959047606471568523055601883030073416680910428571823003538073021965902943784415355714804966441309739024022996121538213020669392079756625692418035733364849688011534416061204670711845844704962313271946550553332283508623987071025012824771820209916160381443654576667212058743837738165826265285248307372821821511129511828759917122450678839393805044802851518853018024266489514278665010575110741830050085220292731837098739741386310472209570066560822101250982234115982974468776362017213478696619279099552230980582324394728067786633864105783282270005736194198775033994758985560498443608449641680297461294491415672500320405785732972380239155067911783091239081279842589207504594963177025466428879479416112637977757676725188311916172308006760262304598785502438070265927079577486373572704846047689730119662078852169678328371881379843006912309381293617205369571614585344104532882189711408519133372234951576108363435248567016290728167296603966885888283835921466172105280351945108188017965828012059690531981128144569940213440392841625688747345893384021248518097720891109846308528774226551994283571980131839195243728477293652287297744075196796886735067840661816781145517765559122307478205519112393471833854597661404892911022283074814991687564158037164330660290222287512289246899310263987445999385369520536908749818355646968858866068790267061670594105692002046832667330577216749748913035735759303962964276519334400025354049283568402863851779385533231350176743957029631151205415734061803975429328203935157705255521635853059623015326650823155227453617287456149077908915552242776705351640640155791396593948070692205519486538759026725875115330269440902488768806557256263342375332481695307878730149137066906622720077239683137069650580563051604696727757177291930872976092724994700316979988855091922135645529108574283597672352886398790420230621021665284250136594450725573665309792627059864228429168601276389416675328983756964076187515701114979524405569293133671676320082555978941357327340878379391258082045998979950564198785410915005911040047373641563802695488705054634514345357575924415156195120614466608416053061502046841171633278391713461447650476472353980981020251543602026189784054034671150908063868510245734304553320653704849801965385055611439176188364516958482998741932847332863668049398396172613757974348454550355803857552956593573452974560328768958612024719997370917570453810171388010797989559676338461213828814807569179299786549466744648597961511094865295759283103922193682939203841749565612413429039034433991570581661542267260611275427265872485265585098337467304343399013738637861564809662164940226427662032223789056833784947631931805834587780200449359441035644165343289435638294622907507572024715564196190575710173441044523045273828838443520647298546396698997777114820862900807084429820220891155603615996127529131371501225483797191359546970686904284726832912875749642147238009334117913596511718012149922813552993595901977314544694506525966910307373936170209387071454768727926936040945352736565200919780102949685827710169286499270945666195995632063906937158206606515801793425822975759109352653293400666906349042158837561676799739169769498616475621986898999081619951238138810337361386764714636417605831058544352476217574859378344326023958711106269125725135992339104864259850875384364726013851864629730752525822980441884212712215653165434417403781792269048704637375941306226855032383330576787842536407533362450611055763390990709009088387489518790839333985252595499366728868908780992028643265592120464138837786957998705991468682251167808286312984907565646402230288033585818337231306401562290101111342985119824707748077578028372210271196938752475683294729337469664468389127239730852571102868117746219700992583125913084660445967720584864658589549724845519626118911441202462410675932906593793610323159214742237504605417701314454024209129611679430940840274199698608912564576087933746802360504690532593346552788527384356503925604407475216302648146408542145254819124595684980468252602413192981571786538072348064757278289435616786336839240512654711287319453101520153914326370485529583465797913491962640779053028293182479899437871905261728730926607557711665525726362887146081442588634272336960821280955848151416921403504448919991721099481742554424446762034723175379769957489220446659243787429295552617259012025006978559890214388563015914425176623517387440309781967915251286992733412773922701935348361329242303760869065095104816270433544917403585930398497233935642176570316309027698454389779735403070622315946213781270265102472059025566926760521468977540479688613121477562985028659026875994153035620659242293198048997182269751422797408346739235599947552131228857288944464382479755082853556317780064834909561427180017673588530083595896438826574639494041209717649668481646551766694853076406886894410437569161020101743395671617481444910307030536728190768616823603010894533686773908053861873000635456899113630243999223134295868239359559604925992991701902534559670401954411956762414157580363616122374226104581472809522861982851569472972934804696104524137517687469962375045610660981469192501996834573329702480164747956910247762932735767055089449598507909938202406634985964896586989063542737969713312148388240151245630787123303769372705741857741781757038949118666526203980120926474603460466825721418990240861011880280518365200674563006134150976718974380476319891141634118515767050008700323739281826221705347389675272775200886435573883385412926439346913241934473896931895217680955728586079907114543480351835539689815292579161393661670673038667641915137748571049571596196576803469510644867208460552287070986231798279731409377672812513922159524293415662748956265265797058359454587603650625587476079315626095310846520880115376951549514460827668024252891554545479478847399678561905500525818912121709309321937942956658679042974143055983389346373783716825158126610363217481177885598267662203968993626132309398810333774244313469960262692110851576251659099741456448672659012645087070917675925148374079518632461149824984526800700975079791161582402329982960809309755535822277122452375816799543161688569078035610411029218243549695783664068971122409711373964573641039814557306316323566729462362391075501531143227693668985235533585234059149563353105581222030654832480735021821419401040937471659108290478401145118601221065416451108751472087243141450577272795990259997350278817600560300411938805964244652039569167467828753863537015788967232413422571114430840837415557918025573476063639214904335360256106385812999488743776317657529333020742292913568395960332241541720980541097832608278786363207561885972005829651935772139787189475234624893253025068962214820626988951241031794467504299407291710047457335791382009154539246331585200965214480300951175140588148686514332122715061370925278944169388857518351422874166237579108469622457101467547306212567149134989842363759582235639228743025954747571737446000462398688556188587550216580879698502150635813701023905158727810829855080674171967466139495931758792669456630491489129146865275219754910694697815656559977008764469805630332673134718342464125107960326139823521895464019324434323786726478959289199854663712055554006744936504066438834712507948398057487643089218224689154524159702239228058265588413389071978492255597214970041931250986217332345547750226743267584679750209776892917887887654533035747809121580077284043495686167231759323239944801467141032467885929713263031283529329215682672056610539456797700564529541628408456290182962753065828881993091297260488240977348870064235980063889637135130399272155172562995989011052391507089837531225151466450179661186376126432679639143594766699096720156370510749423758439935733952495579319947082319131152968701803510597953415663908574567846186580931334927861211641844418553792356092141685114562499443676595530143922439449650779928351617571228729278810630371655492277019315453300506875962403400180662992589982999676793550690572005933041070025431593770652884518040095440321596729763094774221814877752595557460323652610551919818261964344653570180097708167499352711058138965879130320509961722300284125114858286196579803506831129237766485542718655829637856164211801106025450960690948611695185572049222616701507432390435203857406958876447516461891789638268773658530854429244479628808114073176707185885805807236902235537177195556719746132600538628502500660563766145746433313631601097543137255045889310489853264201740651120279676684283284771453785957561850673721559879902610084113175377865987238932446930167990706408017880984122370361469374290153657752419771947928124975462056278366958890091118594263271744049922775405596132612547717077190940552452583265813038381234337232008741323629037714295245694447012117691310622408377353967467424083799533882001303338497619892070249304538624683311766631096216398617686314780961779055054516277507318451175530982570030729331468118520321954605189501721550547331403262454459254562398934701104982569636430092604001054235374790552216446520048722161083646973276880376088517666549991970085119491346863458877650210570284157724815012081765213404212234889184508335296272930803796303603937895056944928158603113362558823848048466803182666028307742279661187864410779000499670761604745194755263247344584933234147827944779813716283029577598456534313620694210171989165065043933946935463555261672816255307724863124607599650081131289151505787733271183589361444309121853116987112872089802788529620730287929473489434649326028368784387506448661356861821612443790400010574556604307352912024230115688295131683088024699732056966195216366037285162908609111316570331685150748319629464179776331334134338659683306618703870671182221151196226777751590645834673613836250809059205639045969622608040088984049497022249923760324794485000806948412684797385004909301841648718337480486571840764875210912129644068417211495511505082126651756836876320497461605815937133062119806767902078304928007296656006477662874955472049342853117588930059112284114762944129129284658027352057501096960852023244424492831098087343765339341444701970796589341935115393763248274097410166821648845254377224200879335681340056229825734070215091823651239366995459616354384133104966510481931480608521477353684627732575806444482466867020085877098551789705953122396050759707302929024477375336492036082046605891001899843780698832054446256527147650075648750138393118444399266473832784304364643384481265859379883540961833586798556451268304252637999548814429811176369751452254280984474354357510105880303148477985743725910119918783497937796332697565180940366796973711202424388067597891940463269313387993643344941740565867299778826112719193197914346828271538737619943899719085054510527500539902310585584049723882680659802447422167703892869867578059050254906199975387902335835545008785065576659546415859736530187641205976984007589047229000975708154555996236680671270102483961203863744596752137645963753664823993906313220385321083539160014519574638882505763086236037157494449850987749837628584092883276978756888083815633527187004548056932362514097545409999043396108324812673581882689904638975880200216728464934056090449807068737735043174318611050860934381642489631192931519152349374214314657346813967923856531483662057635630620947571257848397318259723893646063599667738133101913085058587008276842232056125847174936370653417319413788883570345107995609839731629311789634529242271927942339102860641518934204587058987619017150660094030390534453478773146686771512389930631411167661393122147568742130078308549203542090851724975276614773909543681445011734798367500439762635156072172643996446158916337359451245322532403405177336353575233250014987480208831570707931918593878484649307252364810088776559207158537671232064034242024385344119389104334593626595164453223259204286640834480394323830107378975487764343335591640114415592515288553195071194791272186789013917812312158515185261555743231150348586043741163582698582024976654253508554460360770447677466279608463956433111187543019306177213176383701064590018160637336715662612006147924712827850231371859637878896064101952194430199997760988459234445752044582542056324305134356673729643580737604646635094364918168830164222123322919863376134708695651096008079262289019379859489136071737502667064715702499482608493496413355990197104421619452558267080961679909666358545556528282128624958812427144331127287427682607652623040770334646197486632162900018873745479889989902238636961739667359018704137694332575043884161440466132083337300945218695678997779037137193797865627436358647191338452109717409281874004202884337846432363383172479708099332532381765785148583170843737674500374889969348521755663159091066774296580416122710814691654859920489455610280655312217903263911600063705921763867907515810669069868564263924849858928130628273430911631039656250987865716900182218107198704878524140961686436826275008810664631691046933670315501357038784643319496394924452713897873472026064991172890281456186171292126508461615486125166433029420847249486782694871451491545682920290845532454133617453970927160572489312309742493372013240228021783299599039557238943291631949602656849511510132166936338128548969015657845004166998829073571826823063355479173870848202431886530094339055155743001343909735162674713486056480906688818111460620173266853201786552134556914215332936249997063574495419204278711141739230700011357863562817480130486878900850814572680886161728251377671632809226253595182979907148778683165736476127676524002857680089273796028935764568648349260059256954200550351638737103617038355405005730478618129566539408535734346504613928985754549333606504669023110567481555046344773369802079683144755028735602987531868770100813535594913115933319051322206720307473471379082387588337949784706529701436047761457878376252910444654975223258316987099071845957990682368502879710849497580208750977336835320158123868907064005711944283024586502057955491474402051172909769799476869707672514391745931909627897260282203823902733991602846319046032833056502806369118309795179005782030231873997655709889811865265777069982164367795094709905419818061837421032371017368063335965778066221424614226828807109028080060915995316469309502242775639457519556072736762290684198025577920048422041892962464351714493139983305000202820657917860739185356192572114793383862279955849828805517281819314569658768581070014327747556420193961301280776447599515235683624232821085729671954959372900291532542766775102260476985346614641047944136817394565630038777659789132694146447893589741898779354217643425654048004601182659918119540387135907210999008495038452830332840197169378764044792197221786671621512355614767092723776986302259175902250072019843953141910903605842968463913625719820760941437437940958100642078121544450445400414713692212316434693933741349394007077396678283997469776125611959256584082817641110898882255276091264051099310673702509951905228530407986050710300165830808038644091423550603304547156671353433789943682543571003721401893372279508001410522836156760249731084988469046216116788019724157683688675887671518281880199377237496644051875594058763846410345446229965268381167156255636864904025911097140915588417821435338764010715602397783531451194943296096978788687650986146284465224359737780020120109770591167109548181762248231366628552376540475066192900363169518281876028847658704919626335440292872618843928991652168599204896895299665321914334877979752506066297735953412249305050774377542693234517845570725476358043350042588345376779167254815140574259885118528718636203342576690656045848759074689541382481757351705644931292985801327105626074879298678395746378812247197602802533935856229986137725534737500040273977912408638198563057432097941507307558124475944616362695622831174608906767549808019450758574349993685173683769372605146953830646179470520688485939430553087717560118026312913870080545827973983411743305919064746161531461807019753669673900720920688979924243910774488537724962883322974340962988437108724119468294341589492809110719080226854066877122611964089187963896517100229161038129893968756784150891194646477348071459436161112802772364386225380120308445681918076048169729773827328244681426464152738142275229637782482318254919980502527974809581448023470838748251301439383463850112840004305204293847302033875925176545291789867028495838876764116870900937463400777341938000631537370225176178185409391232240390715936817314748132769848820642125026329828421971128339219592353699216568753820175924808086135824389893227162423626611678371735240594380502941128784454976922614960876295549925678475179739912304133887396591130101362508823611184100145501635124770348146724232636653895917475579844792299325102624067539576754475650528928252190966798214418759215493758339108125314408779886530637669728115104968748064824188683465568341404784155851224480672149742314666517151267800359817612868869425062834150621933213566977314073063761021236296896458624283760546549163994989081320430922397349846817833934584869971186793600306417724092897399554726781264669371714201154313997442140080493783107317365391887665808392272998213249045132424020241005724143796051525243282396110571332449286408385569275898832071649938329043731846958376264163903838031063215949757582143316577833073081385039632468603617082108998903683212132196050340497994749195277087227720716838106268199447343758604260193237096182536780911242614009733819473590928330934494358537130820816380222722863026471446782628517594673904960188558530538990009262939260781890289316226172379166359745396334270189700794898035270681144037945195027987176560123898036962855098838805619890395097331388829412387978584320023306228166829081855208009576084120157237629827006649384620798355625002413241586615698204317079939107497956941624336875147941729000848439856242095181232680229040141722361812218523355682217037624773989150322446394955084497228269799051527431003143392639132118510574915416767882818033167865860594512227899854310214541988246553306839003121455754863594126330757075816582455413750373541355526117089737864045013189940755947794025192633433599823534336215583584343191856416259098826129539225517853188166696846827809441027742387887117152675703722798245599387867998425854460757165652434015743368743257330286088994238163390501202489844559844597940152906932814311614811759657560191567351448316180970219033948910130094931588465987464932813076933865371969643369845890726939295372058181344702972232435327837440951778077813405074700944826734704817705285579223668310505134457697809315762466728256430525656220935078499018566682422288467044422013411527713258447956765424844763057851756458423258408779003115994256074926959411696384311311195037599346152297808753549945684356297585547098156026190495980275246207790088597777289405896210723041481484293637713526997986827720542875237902947238950368793498279721230904290263864833069266247405490131039109386824353955090058421123239433967526715653864190891761257537354258847719477799754746046674551111467690295933586848088788791783554148136844538162295166868158210729156117233384570425939732149477974216498658668811914727036834397262949401161270348001512798815045623948536637315097708029223090312579929901591133700380583793711925095156307235649614677752958109814580424168996301021241388717234057617376050760909148790606453102774634788948520932448603430922098786497846023429300607157474061682664787932448960936884204470545809770110283312883210488283816691902602586174972112767438837628722215105601545730792819327616529919200573993037795325052349869366469730017007517257469467519169701216582395199526733770633761980920485414514833933172006526831374285421067470884722444190152970418420809976032630411085556118734369633965586951749311505910277952106906623965209902469141577648998927641049223339933792123640183724426771536147880169822370243001690962399297616369022444493338935445229446984957590757315663581438395959347287126356974795765579171147939412538991617551563294679456171970991303488417714346295706837167519072652324503370966431733322211266869840155112776836513801719963623997020600139826320389582589228814142755963584178420124316406297000956554253565493186416665523335985967267377259051968406328966944929872023877204028896451646038254806098635417069729432933308595954641534801994350686709060728765505059003252054033349762460039741305000983360091402254957330320851616953310703997391936711488451788607499164920182635173357836744929047407432264510120296400837812677277897232144427511958597876749037176419841223538587062515583659625785771801347123750548195794996910792172565524326255485428391084079591496233545810986045185996776150506161961524166604110598089019259673656510083712088765750402003844681656566834932288627578291462007156860278948048477774554819803861006198102310799476330347575476167615425432849406076676646171632852605998983567023867349162280945364673520232894001227498700092563805197055521367156238424770294719389897026104588536684938732358240202824669003799113553963982202518630315255259416604446505320362541688616581093985122544959023271155836374213557709647304022800664928945397528072467834855332495747100871758873166813323410840951338199336951425984468727288215887240560258398161491728713153255526532807024348063807047421643950417186020542850330716899548208820734144616301824403392603153292054384970660475101872194552158472097209340284264175364640353794444769803736313552494161576066879244699889735124294143615484884170246610195468643510559274682079946573936957109738429130527304307094021263798195609700090030584686638786246466736458362809054683388737139487128674297170663833215315837762740274254086546049338873850781166433999508035091718308218363607877749769221789116217081964582228301411225163025458142361833404004295652244037179942526884143908144429393030824167257479648117027380936476689751138822817003984432272819617847271753363190084312164593777228188223168298011764595826815108342289728640035471364468411680043899776024718672917959041222818646457072740381329906157131046388059307165804516143031763233552290485962258026350251710558237598393082688125125420899762701078147011359864413112861058119508452023266554965085568872418030637916726753907753362405290969294818403288059409946339997322139864000376476957194952709121928065527288933151114641219857186917672799286774452273592345887948216111407117732674495050947215898022015362255674665120870550979997803205124845471422967343500905467508167363450341443835364701527179813772713849958331979242072246174452625225495265259606071968037135972171580469666130047496398151670965850322160612395142159023936738018803678649871216671274024217759624303305326795103779056877954041070183828129115214542320933960572025784466216053702474871449382874441027306801647272364629099574463430057801149573748774067931807514021606376297773303264358068185518917358000198895122778291757607274128864216792984338125160729535785203819881226276321954322418509504611877396335721495322557926525509480213713185212568314620094565465196806169872922906211894265866815850084235868804880574240163916371050732462125953378158452282887133734970916474835981781461578218055470779015165111301071787089489135512569796785361859895365306623754599926804738618152452540913187452313714145829596962719524408599465611040808982848298703201572410249196871093058446121962828040572369964979438413073756876463081501823019202211167659296436857976573483354761312326526874189076613869092995659015537938235208316606526706623918418486509004017168073039191509668022718788333326683896282516430798465656024676451380651132856602349725335630926031118695641814267549202501772421937717395942317732465959815627483599781977501773079896439436581932405632969739406933432727053947040922686950925693958820199387001205546134183029952086071357621335416877139962143718242571158753180510786811849491849858289833680200789774087361126447485561149767303989435799807011253101323586910864228396194265618531147634209060624952916682802629257713303943062096642097073694088789670659404089402286594937656345246641525974818346038438934905530488521397424216233186824836346765944706534982477469353718609705751313878320900609623545224332355727159374028731838783534073767585311525151973054349955509986851721483480683850670130910850527228183700370618961871826950896908796625438184885126832432470873332360278565589289455952598667192323837388079434041886517268295468748757268385836343957209332980853352258548152098376536140073924350835757314990917741861474232176516183619967294649101525219776331508786433062908358631664058902562789123252691589620048504745186328916417473630791350525076985301898792321927932445777340864320058099417903624983809586135789415045825050756245963644701480686073705114761860118817415899032214181672324873772712218274537228360814836418938262803403481652360349178001504794681201390477651115794157736117805101108640799196313791785391517135437326688269874016565668076543404656954396749998319382028291958137392945336809901158984125304436883086463853977137136531794358975422786076536195383488749270851245988857486426800241461385075279840370161457572918773885375207743854778191391061405433803116791249026687352974886694983711222334537369039720391886762823706704292872260528648323933439246796542965812470024291322857957020824231106199965566461485202146672291410955669851737777714902282037550246813957580405746433950488587048237954952552136269822810326282434164993219792776024298473833576212717288971301563043880629297707747533334113276007054359400695116408309570071349467908798113902663486386719302419518577069041972199865182856082558318384626589527428149653793374462600015827365564788299277304957019468557517280569297343739013546461718562508535584911641982502533391955845923716328377310926844795828361029848437493709068242957552678152120255484395166534690551346888207682167507357875186814318193893259752971564002107852765340481400179817579776774916158940883297719538127773202286847938390805821585699236855343319000535778614246539382829643449082986241821007776812250403304932432072791446288860256608632153625277343725494977330047920514785207828628765312808072875929563851061762832187027480196483517852170089456652025557670693062834744961924192247933659430041515018627342853329924139012745566908499718719353300322885185221508096563018802641278758632538631980248420223532792831470571285373316993961006531465878572411204584445286365337044826837611867654956672745232192622665970552493552407658110943031780086808879496692011770006928633593546925935067365221647765759197525120001070640901248090958504340713156442375346057126327930808803100419653571641306509136423852624737957340008982113142716460636019093336706814701442021382682831490695506755079846800604351951077776492825466042103057957189347511261677145651695922762891068338591395219511544583199205092100385004165279787557405123707015645680645622136702031458331710409021608683951474517018914791769198854642190157128009363278177110420740756168523369758172814511099239126253096188827337336426876891279953133089328387584184895635717798406192031746968610625395465686539390925955043492109203042980936821900523475357672514229924625004869678847577816994511718945894377427083258037294662170189441447250582437604528458406137963713979404951761492186905090855079707741480969498584891593825801592065993947655489551696673323866099074711798295278329332056857405663827620021572760418079846466667967935419703787456134254671851965102195402782610023763093357729896964963376366399409490347643505231694076032224091692114811940284377388522095561943207698969240769763319943310820656127710312162842529761356974396547731153235316085515974187384896606829253556595109851371851914758084413556539648940862400621038741569835300058531765613561693554387135737171176949704014351309363558940233857666771684569549470008118286979957830441023941417744307935591080596446572211505890381745364310105491786942806463808384867216731483512665006146542082831293933522327147327361281891615022800667229256374825926040697304188483545294326773229165761371089637499608463331923509482609381587121763501893557041939746449287408085220673420896392009399355932729368730736622066289814465147441180127833336087807958278037214200592754486825529735108840755294135188024088522786467497920289285014566718870773986208412339022576133486758280964330314538076085304777693836501823633827609597244841790931004884116045726475906917553937597393416207960882339177452578962153417508809469118140349500762712337347865478520959530897195284601252878208510779110825179044118140119536859781774349776819499844498694462922654553976758346762472134263957754101320225098285216906240659294113909726528465179242577446744305878790118627908148597896503325053004286453410095404648972625013759742908285305124573016703948398813595264878146918716844286670916265065443545984743779466468830095934756950578410862323828128865665405900334946088199843199726919479316559209037497957169026501479818845970984397331976787016466235555011647602588084581553138458038055598695729897097231816549376989230772854685182488614696231431015310087062776829902498023631912091441101774399953078405781562055042805955542686689351345613357489367659505129099884387061034179922394903500485970548858602860210846666954904601624271946742431648400350044559022163016981353092971573375101887335647133542985295411624219068051443159449683812856796543226125946863314650850431805681266893193723645207939742400148830367954144698022624236048494216290698429694873473181431418929635952469192751088156574591813359767398120399945120609848880186995619099758505089599353400834007058500616683394871947464779050032899487744653066706031907891505486277741913880180417903263917882283458523186336553455104997751238977933372853034665860611774198247746079512875275870591523455028875611818986687957408560897128269169677405000503105085506923692513299466296061992145196637353709406665766423176233912522820280237949151374237506524825487114201163386937219873231527217516691303502490228393574893020897810045576911117741357595743032689553589735709000513627884141233943342190407650258790723475955503513923647772831141677586127287546017245598634761345647167240046298096271903563182815827039274122513270145539744235392875116899173817984931862799876375867648245386999814590369322246815118813553587551289804288556021230790210524586878762914616762034120492295544918062279920076817520084610042893562177598803307272001683807707277585377620931902923022906756724250779053405884457794748382797051323236481337443029159657281330036278844094019202920613316929370202259050886107342968887004612298239305517104462517887794017853761048441582490175450152579819040497148774331777366654575242730612563907520475745832049535748849325700637340200281693588317492538294804043205665535868875584332008377667118162993669139437701686092717069243148181104510847931456786648873811421545173780762614018761087944216562634657800392286738265878365090941903625554612014746244420895893833331053390382960208773278309752725675929215989188376742777972743444550309168057402857663890355753518316045690751389099650005101274152179117248443592582375549509451621546870598368369010733729129502573573167770873015828895724833814990863740839639368347330823472848481585139461713399663471123781484996461348918646142583413936535565357101544475119780302623938660234428728260893621438787122759034504846198660539020840183942321795038406182024115829023501027411807293032773932799409577827361537655103261846644140467879917243443881903754883636374482302073108948419227309259124965239711234193222185801499282968978835419253452449963716318510865871479583382553580245954630458934172831170680625224041230450077547119617851251352027230547970996352010279506656333223113010833466928980489961576906387541098843972094300352980842845428775026375502675049595310179375606685392287149794154961763094049266017643415441339341605217160520316439629502104186400923722595583313409915002025730617486152114568046420555006445712918167410838531994320878517742236594304361592599705350772483649104468854203020251025771949176792398488062852606379267201772156232326264063335119872464152856996154219919929636975041056760572747041830235894352560562431929370163749912077902324989920047442329457339473234322824582605910521247491926740266967693288731840643745010010141271602777546469397359144509963319535512410425800844871554355332393491265502845484786792261229913244127108465651101351060480210177801592275583478275710663615378657522396085850256930211706623650689359470360871212657717599472341397435906661551122550562882402772181269625910501025646762609159166986082013816178034807654618960874688108858594143441850858139068619432685572255741109561039850379945845780059134215271117333815467280982534048064007815141277492842716703718426846869255955714143429711935692908231457759370534405722686618764871504722114451773789527917658326345467089664964994211693079770479836949940823073758022999953627777656944992738959778311491022860639496160626539319933955097530606715045494919317567961835829547827960506545276938911979625284834283979688321877762040530998196428959771566445057641326686922613803869899019081512365769868942740933780361382229958619028719511718897868527586771862800541684683114866995511472214963801094803420972967448713248760134229614668092751939585537138409140170187947023485486874527600262899357806773284102063681217991596984968549347289069271312748298739690276917044043958532928193143952888100729571594989381582235383047028851820376512508201147425954541120113348488081326585934373847333176426633585744156512842312980621686637439697822762606541563747673339114634637484010390321038059891650896004530655249598846969061745058029174646679136217597351466440995540646031639668920998521048054205417368413395219867760792473722617848247580276212936144921828505311018442186320137721383746005602697491270563819267974368894890158689676326382947628854771882301148904557371082314943517764953810993712493528463456870490863461251352402948353941826079009935972217991563278351853678624207098850208257724227379142341233872409691965450758872445086560461808201868968167444352204377081584976023965788172667907548474727979030398222667850247433875811352827522145186805164464605313688117557102751077745277180084861772440987750438095267705667828274017715846152091648688429212379127822979842578416302926339916076383585132785234823173740020497448637193003013712394140306594714095124407250867479174772708391716662710059721334096867329723532829868897280470365714294734524568073623684013236742807536223411770417150536152810413062815692889603117657753161684199195107124870464925408790184643973074623907783738109613747973680254133886814737294432847710768244357830748898203277069584246826296483747788512014329296387774494245876170530498170220075762530633638242617455220755618015961704634405920120172802144079069108575084209611959565188715395753635275622536108874716393168257193081145666400674586909046984174337263624557684436608549098904513890715412323484015777516771737679887313721463733626417593632124690742052661786288814696292116897565361935819115867228116923669362031217703632023705627726962865566281139245595115573282233623226568206373967217958933240347279138344817154479705959620114259216861978801372337113667400177507478650289710849264637047763477377593551928790079473969320281968451443499034202018488098823393971458760256016973778441377560366036464844385238524797965357343069212544703103568043135736362245480008649320646220659475707797625924348746069203362857882249863931870460860429099540811559053889835915399286723176450887751157545344294720901877780186070753505207499665706886330174568160401372944158874358949244636601870432673340494448294974668723685443136507998875028794018320787692403152099593005142156321071543799673104959753955719548213757179936335708259549136240108791686249580578066727019584660821271902247387426327110502087926910315125046003174849708944258298550808503022561082508436156481915927205165205204228899358935066442578061699654433172726584085841077285068315944945229525531633701167104356127960382602547762870701555154612560381462354890473903778266462115965193645138752188999223760731527020223899033871501204598710290788333756231222218475419887315961515439512688491578060712117454354696106342993523461268882636936275274234199886805440419808025447714982077941027525880490161625186269846707997586615864628447955666000469580292159555324903722398979353059568319949495316556641113770165609754371519993623836521634909920168258184160141087312476705522483773314654247529993254003811530108006193324624609783250164503370989155347856692726150621695966570289807383767458255222635107877811596570479863582576350140230797363804552431062455771803361394494113117243477447867131194366017075091283974472248304842473686942439840675945093218937665002855762161372365784632756309693662659667183500861777412975382615444046108774209664138802558381011814390366254684624967194542833835216494772545776500628376022336130536738379424486590119206868754012829642187184089872887527166812630711272877120484221235693646017888022629798635028888642282697551066245981399486606396374346640493262459963698023300669934586971864786400653610628752909980338838337666606480791459974126130448249345566787341431125755188868210831503822251581687818232151971442289369572961862338431559114473049784899641112986814942775287073464958631117244525423320973819489303028433364560140677321492065382517099836616300114236548369943332724866300936790516010197410041215611828191214866514819434829798285565870764222627082713983572020402997105032505037418658976061385100065572637772523163681458626623971915054811714132310773441033864084280310843372440272038350334381745845207659379343705437167389750452856017852681764387350692252259341387101015422364554723112384791241629997760460423435862188027519925916354104397155426838822699135384616166042464090807692257089607906558476497632818223091823268120531186336602740455867376145226055046488812280120664971442604526200435522439780814496343580860289666912792548528145446514920963564927287878934086267764964747330147733845160588149158361232907239841646280013557371780601456788443787496725824271732375648692293351501512947764650275420477200790093753981695283096192747529471008883390842123535961286009892289879293823256620419850528540923723011213648929798807724754249448909523250351237583546938176945533511754155864195248186244888946682092869528415446801835208800268704180435543793610981304035295183061190944357161292893005973677855793458661996760819581192142259638950277212983330929562278580188155400460591765550228028351218792114135704619044718298626805151825039294283037731589767729702079264518575009140275047530466796555149454712183126523159538630105759178315617572836608952480127643458243983627387249423091315504553784821141713289007045412208571241091101968171905912418691335204885118786369605326298943749717181620489069966022680360857497677337359189400794634736892254855499564319815767660799399450485233018880943378693696780111346145306451650994745701229395807153595110780869473714795229572952303115630250199533888148613810357203128885454163976927736809867987488270891355269467377551622255204386714577658628330906032633697125021800830985209967770062001600480736518024889641173346680976375239645855117075430983637306346762525654238856814387747628224467195516552331153989818626188544998634411333006033513606488750047554088203345099303694299233748586654069985114033813330497877904577730506030493313118685159992525837940708029518324156802187298272695719335490180404094120056921927656248407367981812196798522709529609286484822918556174547306266428936285070027096305782202503520835018558568102053446635307712565154297951186665289431876035112177510964394938247000191422969565463213369261776343950387901367199923594491271670277295925372264252200416477795826894897522496979621177521482198368525642645011953879302301656587581516463832118428843171509326379567198254060556520428517438931567726944897868173218141347689723977714808856888422243169570919517082524251794066674621296245417218623862473179435675314066066445182268794418997317247508572631604894890793880028821095543785892728866403227630120277847102768080868033371365151871696598034092307572196043386493440334400435713322584808062137059999557284457468411565658076080395176463064753598564092780773310520587727455648992727810134198554142604550372350907760242768732017774117341648431320628494920116878168417078813141801601418547571469845720563446046915463014600858728103545385666874560101236476231336896390557551493251852458902661777406649443419362187848033751714140277471423813845673435430595611793215215335834737369692193532284572117992793979016006259565518428675618040046963365147327729060053430558608821252002918175604458633987670826499989588430092179439904941728475514310354563672981530657119426240785984839920766345057230794046168324026397200021101703163210723406408952616479036187177701109380137845304344910951634248813517187688082630827004283962202432114542106129203845473806316588800773582134952628477330854771827034087459248063972818081625115629424689250980665073290484653981473266645197470417957344572707937966171306478830579260146706269787895840909805593935901737054090877567775385199795057223726790199068008183312150814953557982426076029520102960643846151135683019434397675577833093973359050084547200696043262485296018983944616868322910589283998372940240877399083711302608964291941046354944096900900589202303353880442502987134130754934394047336788002054494202457249958954035878101892028951064576316223637208642826906295598400329568924379994464928339609707203842731604126398778036942930352335368727319524414987292781434236549096549116331424166881542145845869159949358614199229720052658495024627752403254409685640194375331319316703945338771733447433524431524115245755040476827965868283047791327788189556175738440400590323384904657685110390791657474930097308787638869598636597576106091217426553146230250376496499266828073739616295830052575904509654369542083447726170414548169674212039549516958415570115390224934942209005828041880982439925031523024386716473200596535131886655051782017948814987656274639063154954607173454008755584153483708152666137174683977216852736609072455254560146589258532254444824447478664009699370329002066486781618392504589945232476622177890972090976741885493916720217334066715782486369024091789247745809381877034066358808152807593145837549068183016274387915413512489295518933383052191278200667722289701265406644983468904026922703647004541836646825360940241356347386371978354897104661153911529086969964253222363627394120782310520497799903623276240384221192713531149425082423591412790466181195121170849499975761183626497515559575209205826606994977513763140552664745371216316961076625593498350361804543340127178561383840042420122113538008034407985042361623404985303434939672348625135810082021861334064028862573270512126243927325466360806254260547826062428826130699740680581060854681920130106875617773763386392615182927376664828637505006335015995678432515062848285649173767124205049667613430677937766157862422221089844088623642173686745835535873032327216732877521086550484587133092754872022824983721803244369242693742176960067478983467486803567894416882522991579215410840636479497338066482092572146645749734890242157670781303565518174429868515090915098048599881604763603872482645516647518799194200451018167897915435136309612381503572468327263318803814995073408986969750996807433180704248121706793452559815021238316978099730469179762347248317258360443483764895889442547765671426226766695324919529145647898317276677455925272110863455848818087131031361486705475723502145260153969747820215767888263566644533506801688387914105419934881693178869892715170197550575454132006932106993256908144679992903624719299560495391738553285097466431164482932280662000367249218593386472815512391847205214474208832079871518285479666176412663915886678284254694062799851723731270471562445456081715237006947453728925126032368904610203670075183825007053864992333363348448335437020606971768431473367843254527274436016176896167752609595728626845650966559274218207685407841777639348442630374574961900919593019497958376308035992956651396127921339866356251872918530249153094623061183794897586152381845602718827545855481409655201454229824244377743513838355191219819742801532553511945874444232809179128941027798942463446383022941318437017635647430312859179452518604110550397664330314896470550421765723973633759297577718698861416857255434713388934626372428419021362862284192247126220050497962209192195917833174910001756244528685940496482599863111420797615796067128498088195520519045296617900892480216990260195071907423732095690791637286332414089647669252713084070344595029053730530567744631946241220310636220069928213777514757985153610463073753734924722739239591621060764532409358578693404196312676623412218896307466579372508749759817524964268140073306059664066470152432911883604910734819653373235964090340478033850029608372576050855520204113927701185555409529378413241886551298316879233271200863862181196962828057154528349916543522705354482878425001390313483101732910375374146121206011938471554732429211061674135215075762269451331522865482783502805784892047197416768047925736925759530286605877512202991879218802790367457637254062726379478926223811157923441950171675845362915703693756247978307224841151277750102850050070862821183331294120265333466224331801997520091986623563709218688759397900931643557087549685266874267555561338885558042326244953708613170990123073308654238811083860125979709511815216008379688025378130218978349095087831528544573480769591128333652774895353657099503090214076939433707742978642632933027792771988736293320928931137799337427611231212436177611052117340633920851645664641000579990279798358878406877314475570019921887541583470688096504841635122137514220620178019953965554179392516690381890630394528181214084023302089356571038547354819352102192207057548460170911935861182224756796459559156699408040215190722506427694961785554992305066483077902342671550313478619168121817007436315025094847997220678316538457827018306324372778073026496415181099024573308486961075039102729346370947695840726370212650821955018555485978409867115358108105266476934466303459864348781070426266847744690731455369248761221621759772849519041716425356367756497904284536850958924412244052672462254095470049748131597407522393620269914327780553637384545340448802076106692472318219061868957888371805016897132677954630513004599983249483087130938003993425421562166659960831280468382944941367134617481578016513891416169059460128331077332988319783321549761575554467607532621074167092557651120627166021762911781063120680793042143853176531774692650219937093565449347732516271978050452751864889873210758190231547450248139098632176390579445031664683709306280224854551682978468526820359450203250504072805237565183096596667665112969597715279126666972366737984060052277743117319198335115151556938208883152915565074492136009188321011649005275531807345490522109740661938841258175934886977658246223600817690062542594399175808397081335403123504252028437176772461442463082967919219341395843071143438860664587703769044912545553552825889276042396101440075307530872972517675590437237262486197883506022269056947912071393053779711928309998501936174370890235135961140880596084995049476455733386045367750960419206328923810005417016807078886311981943781027235159590055246635642442167461358782249497737842225366570746738628522516585030441989749967330872950600161565098651067526240394027729877139935364001317087167638401121824532291070074100010141620240226864028584948479372938310157935436882398934540001269618040343857118619094565155261336797843390969776284208261103225340514351994256818313287215419412746590689064451186639192296302669030325594985418714091975315839385457813419383393185993427121705856507671964796510970434004931877087144836300382839632703665940231730727473315495505023879347287452814632659340481063580961480788431750545338499598624529187605629137414607429310794333893061583395862710510580956204864002240341598321299272514857714142061105639367853645706869939581498645029073355061925047502123555919278430729357305450448641983503772043639989847825810761065908387112664010697345868632860889567542271692688274488817913245253934961639317144212005097221205404993447444127804421278358498653512735781528275095563733740208793984318739011246419500763291241352540672147245539525230295690495018894893978720121413991543889413514356386042046925571995637542992082684566827924158508382156980788805392258884939549384991539564547661943871847259319039078730883101248391056443356465722541178232404050194122196009259256792418173919910559886658354538822596622534462536545031324624867673956679561363536076422936193959047826343214759845070911765385446372679791901070072449893054087248721917608803490622440971012638140926692684038721442965660000528173319113106763270230418914032637644880620850247780399201995746264712608945424879159491103335981913717704585948019688349496026151829253619460935878968872116646516785441140254684370578392806619959868272955023056500492925877321444794104335958881485649959512822809370935849390142658729464930908000733082189780306338301196238660242727315059137061981089517477585850999905505768715399275396329203766484562598286546064189713468383422120706095339526813115454664796959931961877822676510441398722816194439155226911536563523497038717761542240821098774198344436037030773597634837381661093518918798482891802260862334799768319271504964297859899930361575555439168685539689598733454575215017483944855821692125432594283648993992016886031604161841430153607804810216845487165598078920712440855510298224236330805516260313001300763139585231942442049450312080108933146603264039908743743279207866943163454612257787433554952091672264841631398830401612607806527851656848897820625807491199982676838796619265983094177454623021392526187461434554218784787045304345523268078301216873188626654000952224252909556449275189515441834129822351574980773310972116412654797326181081657782365649469331365921277492249322794025600557604895707688005412042097249454947612938702944509243715380239130035226025077593747152380319779173265312281906972415183640276694340532558347541981166752462682891104769963725628488707756322317850785370633401308065098584921862135262627634149217992965301738595826869839499791674337454445479612113343039663093168683223129168047711799408906210165140517936688535737717610476110095194103355197271497206931804172382832726995133051225010258546846797531909473773255410947749540605614489369753597933028665216336772102816824362901378074088823776876644445124522661671918378384988734351724074496064074471925943563946494113681715849586119559268426821648715769557793864484188854012043426767677226217181316641462266697562863158759679576343666149095884092028121171361813475626891299797664043603010273548599178512346904768011401751397004275650778209494046944081634910464354886361510127536684257007177011043340068932809408418524919897552535985895088461250816601255658734756221569389539093191071273902863190265868612732398198278523324629765338167587616102387132366725467109857084801042770303370767473711857360447788233315088289421921357720831193814386722619377203405549620438882982219378953239132219194239671230680250929181375561070709596971288975806983330875617823626597066760591521111937268481069198452687721564201064412671988349597951233111216664563636779386256445048145695830889897551524055021741269269843406971513934103824395914145251659529694756378809881897830571546098047997015406412284470846229563852972958279955800842211957356290637958855080304410654975414485259033825304603290368161855330671021728239885603686011488883136571010022376441501042620468509793984913084632617230383014999101831489214645405649387690344348087142735242688143821782613539194442944607581571932019472921243382489461443510591961520674823136442980675305993147657980220281274902875752452390909471314224646981450932600728264897746257970630839060088467907947794919017782389633043101671553735647415888887758128988924579574685911124482263688698148468969572025285947977497933793363425988104751062713441813317671537870124466990415779498036715137535166684077635519440474168316809776466459494682103397359817173792589454505995455760186915657132068368063444983864218947809624151811922297452413314482945390215122751427707600873175867221747628312177214116113314556683290542974206531785610949992498810047071844670995616772972046369837976143802819828311898024206156345487493841627158255447150859041260286053812950273111657227839163535843864240392778724330476321411218169870557267190572298038797935656932879523125528246580883967524929902553814619523453264797147462139449186940093898554301777130184440561123521667602570444483327942904777939560491844350594216393749191018992157802389953737007191901248340226638435349708094523511923318577180273740233556809870112144568890562236308972372602292315479811188011727268441154117406072029185353686702822146559757455559503904763988580981824035297532690538421404569429120682587221158674728493115108829638381866213298252503288984618296704412906958202713273502944220622773485581666585563956088370981193463097446813291935995640297501757560980678378425603819725163194679113526437784111002542058443767196209174533597000303247779856004670204675493552937814209455977773670149728170244597257286653337986450992515871130927497595897134104558886996851851421565609976138369532523790636588751126865242725312186770026497592725087304388800272603127084980887463770235835687260046741513083855639899409453299184542043852676306762946980471025231855507026397076254985134474372882141484642093607011143397065238704686720805521032185671290708908935871495468301131044497752801219014377857829801077339812918989663571679724561430837666409327687548107686584673003916547925294876632097204463986406508268557446167562132242262405781677392879703478167859093523554611144946365719291098860753757622843457379656385681452362933959473108862532360039468035415460779577456137543646472115436896132364044588928104727647963409617268602861598197612335757611371586664431746034131425301277102528813442898229365638326830568444548862247116324927913652758084259188016416503539382256196487666736872861649349696244760219766280630932504077217574402672964005964242440446000816622711255831025551059933020844587251278983878943114515438998207584176166038202215740554845914374249948392704451745150433396139771770436136959419685588362015452645808613563430446159780158801882011741177376294193200697620030478485289826508575367704804151581101630130767285851303103279283063235839040416720426173139796831375386572633224248799212751417765926537205847172991130892770349034904670233644243934095851296205146994194591543747822522887399317672906780349208864871549658603752839574480677760544703035106598445296615079089177078922098336136539271303087281939209304594809235757840533832069986568794156550612473971573028342656362505029787624601663280674093963605955723094879958688369699292705939479901877522723712236851051133037349521893147471738967480623951988161754256173599051056064084935633559933690322202938076762511095795175727052669871861136787021456006977624807808318396318579077225943989454339284140274723087391921037002793340014620212046316665521664324771150700281965458471532920141792167493526043346625696185584707125882057341651384893961693462962397634168666620772103913089330457574830374201524966179778823389090705084461398773670977057240381731001576816959837984389020730743725906130252022849915489260956318225151559638098046799361129127986342326669630240970335142982587001903217973134269943623469104283675391222188783590080512700914998046927711343840983120354248271138234368820824107297776045717152225697641544817348310946816994882919827183133333515405158404655921893574011428495761720439244546138362760062704452262797986008001796295218030721200595438396143095622909035119934585210641200022179873261708447662311760262522045430367280666811763377695656409566342674844549865381863169966803249077133930551596140292891039067668541222495674435562935550913465871495855677555069779820032458609973289192394464538368108598263301988067405679454853890426017897723614560928748217963768078721465257039430666217240492087696123222373542511046116101964732355510023670664551124566188018544239875629317671933481942544919655819085143126949573842262135262314342461384315794744044169149503602648848778439132795932771397760967867938214741324196157798810986214350441491099307762830388287910526471535148908506628943207524027745076282635649004145610101464051930018613934828266415251525801228368482665710812107009520971519099032259509271952493752885633281116716912124197617262042868279796291756873786553966518495297308987852265526625482410645376147418183712567802019352203043496629653634306044672778869949678203444764443419059499077066259867139744059546263432559522100235425865667637599115010407923527802031672930670058588266628871825877318111732474015849183938548702870699268813201705141698228320792826033463237495555560737537677284916874279813273950118633297787404772790468950219147112432153158541387669887617280853890576726830642333465885574674743024195339397769017805039731579147810642252127828681136055811125665851078378793161319570230260787385641521896650732847315233492444410280409915565343112485008921217634642701072067945914993726619415323577651685260571945771809531031650618372286286753265558673106695337765385662926816380401176129245652496795562565768657199834925737368365853944786159412330819711204672108222684919463074964262499985663479434199605991710091701811496222203785372739781075391751415829510622704279400068911263398062151255197700932783803014060387460914458074754910989665020716852361732019459551215098409134213276515946926458937293878459815081442705793566107347368303475260773566665446185367019103368858868013988000197248557789184190616324270786684303620106038153636563151538085382944956873646580866993660010216465219868018511714238411237938901306375708537011460101581187317121490456489488453601176651952630396414405644116626729229401836537966215108246286578140621524196338896244920949907287212700562427677070186427584499883091293532440159140714135903282506980708374590132450276434588572901911638259583436806480606174141557052572690160859751633415717762090626752641131129479530776622778574487294360803962262700558123968965324942365950456214265948150742299995980802687244267702586441180486993416987144845653155605543863948245967533031505436081327177557601212638827769304359228799593401574727375992543689872474938160559607712584784198941231452499181068180857487486981343443104905533404144369764476234794544188481084933157965531846951611264554448298408018904578500621318791082110904354714298990731183572393511472228251724063808247166309582383799746670272216743611897860294568785343325035275075904822940304951164481032311494300321225914741744711314366449352253838824650569110783476576909984797811946711295201927819099468613783096061236075432050692551280787348350949299631432529505196317566798548131219189821198575632389695142824819934984340533832644088750648656598671272957450441786940461462065185740667178955250786410043840371426540770860365386149306061494684473576388286033080799294421827460831559757421910112311772397287827933950456887659247841260379253205620031111939074968808149204030840616320802300185601179786347309522439485972252446253731211081948547018384026852652335204320036857297783944833769892529023167903239072860873167434497128492013276970882702113020847599614917341933313194129265127881518643464450714652772389992131525716485082756936240523292386086644236465414619064063448378023512803005058353709424184912214434506809054002860164800770814167667760933552490793430838763717466232727116314854143482378667577763579664667865339529705662075220717986035506234951302239291477944341706586891711380759958229507482401635290991182908464916674845220531495265601346101852606933733243000646058635034710238146791347429720485104966993183583239851708937011000759716959372299666144469954773072960786164291443158899208699124689631440385317115179825308067656016744730859183661243952796231431475329317343582757677548802048173296277912982850060707051815361424364405284671929598442629379470123537856368978622149029609816872109969102211979728002256313373094524428523038704088267605364616494917900998493889713584650101383475627598697326090691486806198273180143998580563611230195425829478130183208473545804569475806729183656643561004952266508245259831937454163699122446193720342753863993272709112081723937384965069691628602718933035697674935771208776104594073584431688411721720394945149466266692361421854297458376001026973394787282678023666535556046113054301302501073002199983671419504733504874147028321620166414128374232066773494814468250804956321360023267452193008232087706280788724614647901986063365158928255845366412551763526926383559087817821381912706351179645888257928571678591449040683254345268501871466479890014905171607938282092241655148021811085189236569996212602718088418141476077617068349717037900364775080008772630636304694862854907949967672046216923542093440666469106212116915131900099678156665110572185824219700105959834237004190976429582300263145877501220721137874125915397299334002502595496236849350917547580033270664751011908505218993033862082983931507638704595871281317724407541398749398304826995917939792650943188851877309662983137830495973305944103167931232170516735557595426568787492527042112136131541171616511766215776539384780105103756574578637679312245721272895480511198899722406762386674881999946904320900680942439806212580213185893311138814074307033077840208326552936508387557885394748569184003027302609406301146729606242727475655735143421548783498644539482436560078438000582508136305802896092287917909403143495823974861026530192129107237532109067478384679231601478802446920470186704110944114228628641637995357195159973411988888951456946833993664542268475196630296649862004344353594795485194543170690860317635812009415965002004566834289700958637763541588693148137445889253863031653275852522363431461725638727287271803928994494197479796605153026815878606408487822133282194757723383311177626446542436791318198566525616023065083263756376632852177143024660088837544496413346492388379379113385529222123702553133874642727634432736781685653998561789213634248836850829685445583199281299499819922501683723466992059289827878741067835254081229413725968740065871192949095448737946250408488217377696626455509071862629284751578494089566896162834240584447023632482655566724879291268707277732875079313887051066240318081588583592719351477533510584331125093539966873677301802954568691473034483145480842902202379953568784229733246074365005133823708923509470814847125121979674441808881993904973873198672696386130032268586436762786661482667693608988841687350786902303823322514598083323251605502695023103636706443339254413798682326735059262494282000965983032327474401387956057323912123954127365652441741821062046068491408794247956542018265275164416786854174038296634988713392963332414698860968719410072377973091910076171504522279690082415058999184096499166593663089428622216738857383975179791467372591273515087772073442509002115974602497852304206320900165461513167370663078279010719689551482384270371679809467790356869571627375071393560696799590044294521387282721832593623306000999038466893655573441707996004866484866551772736243715242575631895092826929216373411809579437919350130186732710639990617315828689443163830359242834934820364439937190817312201197095343420531670791497798589341906735064027095866221508495653304475035784706194104010145221408658669525284233674831359131345844956388532372829702074726345189727395018507688918636191513831581374543454384855413460031012067733357027338225537909211425699121854256829302226040899414253685721356900456345086597451782768036257232867467186283262205194279779616465648575991547630779261051336928619769391471140319720933244898616064262719286210258887402438909318671035586804816007006999936833250939598594855465756593445789672702140796592629866719994943592737386814177053140111175813152773935762628634570546425384096270493414146634668306037211990560993700119257827293936959578506676698386889159765941241800729727163523505415801710691243934870051417962132212432152318097927945424510563449317399171655216307403465558659618183837340538481207198050243746069833047891606342127068205870926302021295856895040085472143371990070199610863211179999236879972876314063825983781765421713941560744402267437402609326910271685853935076794330101211144354423254115978235749861784798000159404889352741119156063375064299723988968123404674266702071003385197290803173618707592101476264079833824629104479865963662591062225650311221036830690617809777858262381755249188950511046303018962482557181627899298368124339292430636801274022268864528173129038928082094328888136062752833885314732403023042616705208677549181876993098111124225673572322466764614932113840187330883906029367409878252599328966823707301207434361790457313458717275456245615982114804318840463818793328543735735740035029795417924444751897219951912806379510458534190115620769252202253466592262142950212915361071968427737585682433469025429386156951003747652874741300251653476270897749461810087229547037564789007571566693219272972038519617491671113410577079629426343265025800300139247594819233469425901164840478703953130896897328669794781944358185710218980483415907859173622373217654200649116981672509748381035339643331699618845774569813039335749518718868832377623107180478887100459138177798930779705661701491167493201910638834987923606478647429761094866831579677866119974102463972321773662187806732294102803491441077775343041147578920580358773243674062488706468645100993490747280301898286518190980530369397568668670789846702733591976481856450173926156789115832987860604647343299890956183196841425879787097850455197057260601284630407713434634392287168773185978331219727214332974738957072325106866712601057104913795849707681635467014430997599968805270736993919934045591260158698248967772688647451519107846800437518090771870711842312431597977727454542129532722018735145999292075684281499694550545090776452884941303727664389878981703627499525486260458692827481028995335567583810410000946227204701267951266850507888350773115763981868941246102888006233485805935765617824778414805889507345900101018813518754330093638012186003791477890578483818198565158877871564630317755288187641218048675294728396336090756073772925670175924744722244234648404173951279225501145308088581944491685379256919719164928079029664299524328525209342493772474431116983575118873954699246717745379341703706690979408021717040600646249148437913358753314728996703295806352738986029176672021777948692763159770593945193620164157637301649230527862159711622307865467591637316811877344904941031648905643175741251279521197008659116744003988175728168381564388655831303979142393012190124137029190844608513828375540629829676999304264106182616438226211667701037925119985549580023253206493221748367088898214599073244683341170045426119303621737827716771097359015916386691794062686651574322399360206308310850551100487597813584787812432874812829017035234025652945308229556897510096961867427843928966798065227523794846085547793413374169043357540835446774023213790987730855082849746370386608969535921873568569862123450229745116625742765256111118924782223046246148897782904821303020633498035973349164662533965539373666024944041837477956922661499549687290208107881850959924167863840049218918392594960141299626695251242524489257762811639863801727476053709104470045312261784017734704616463516809334893767978815997713657445513370011648801284123311140410350605844701081065253393955257916328720936716795931822811565145031766740898425438131936794302517466478565565866733531568269174464757887453605850310422491524189334688360077793238861536233335456417909733327517438454716263020980042570756988046558641398336037559363529347129158987489170429666186566072265846953192729624972622853283437402016614534259724999769220557900533192936751951354446111850730150061968035731905945152276414283758780441784391070746867992193510091528017560752048209709662261331687687741625885305452266293791192716596947276384629446288857872928410510203524982471019763527935863617456042262910369367684028590185897179873881929749020692543444237048623783585784887223716398237224368810148388659236528332116614619589772780976413348353215035528653334840988127937294519888910716094741331982206380005887571318203292337269596283493479829761760415689711061194214264986818502739823875200323077864005423193243998674597265487245334345100485144387986879991482654456949932836706976747458593150026481571973341165744382672547627898157174798178582837835701288159811743243168130330184362986463500814022898668937819007670403212568182595795580876960548265005437231998569663724825088286234482401424509490882715394674824554683567581255474069824954493587107084628389632387540927803804166973156331336926152619534166497088658123442194419621800647433818592617096437648417174116412866797771586577670998889020101845466761159502689315599631031560358602007215844002345744148878242825605178480180604064778236492222067653128882958495583674973179523760123737187956607909841102532230248291427324428915259304902718971293154674343216594180686626525814477469928225270156018747665362414776132685575246607733348201704916674314445431727437271871130085077394721549651521882462276118106838459680009069082494117681661554990278228857819169938528353416229845514443023502460661927112679190002616456191662656225426647151488657313838273133130174828092620756305852380426266172301746534675512343129029680804601644404959869738110202205157641812664498328964506130717613127534948234518000086993696177698208959380392319808747278093776067483280206112053138976355655781785200276183383988948812037640965399919475716909005080228216172060304125776847388961871091046783301663513920951849215317244865484795218469440895622821471916388731839876261432241945921601394731335192339960520590679938662405680271080186487116324289892857400847195059308857999874735075081181242005803755157234544257545253634131999928020072612901701492503192423921430346345975087242188776237232819381041246336039267735223193196195400266727188223439464088225996682469669616822810790614810228369941753970482022512326562296456344628370345478045142444230139225816601356864461706512899926884870167150505912184612591760044250470393868457492021419408522490440130621136142299849415744044773885941471312115906938009070111886417274847619343875440115061039922733998134809209951155268697754652922248517441882232050931108634510282365345574170720637361504207499806002415091845636276400499696132433149295126357720631291501536576481585674146939049165250785213927848564137116456906372995758853546522029750508321475339486802730911075382234740836461258230786799617798586940169223952255071945752420777009015187484452666427390628534317547083798670524337725723812357694384220369971954728291753571253612382833906807165986423304223728757435205345596325551974595377109304772365804399939563235145335701050988055400761068137255107753132422472986317084330450131426049328259826590458112498370830734908315488456444498314875732135495235066200221948100164344901758454255906674342178668171997373029647580260358800573346932079847616662176815305920024378048034405258142426615287411433219362424729159227421421349083594778633089085029785315691413550012797190907319304537502314711183325845582778965851484376330229462290273053310192298452661194982524321994809480230660016475360795902604722901973770833434758890574373831948852735394140516632081564929499679626751451044978380007174682328121678781481316670455906741273649951374728232920835660461930387233981253473735734699140941088742285546960787784966830356118763552931417207901219842056045566788658506748163269897775212327245639081076338620216889610575750617698206711845386772106212789394451888148535281076022160640142998185979551729586696540034993577570233304409702622880029446174524096097791289782711145723692655928763168610470354691678334312194011947684173804248669168068145382688198879066864625024149403058103270475763001850975417034503636797421524530094924340488528039257193575738159288118959246338397600754238310593708536529281666129383176626922683344400152450239331038273698925369018898064631041764740366682335790629885959313161924176334963862586714614088457035032560810873678345681853345840367010848327999304927171092401594252249414840988953886245958171176879010501758653728424995730510449789796599363322467372628898458387330218216569872405966413103674106601746810117318355788108319715528081779910343904609271534628024131714026747210878181589432177066092448877164941551766453576394232974831219570870796167502003313145539668502374553383620514798170476450024652543460760264962460477388083708720338356779530325016407424074376014513607243866828847537289237111641089478840724390555487816824850606211883500687945206393278778206790122908619407200497436985668584080235451215915701365069598420929290770572748706159342307172515386520872799868127010227918520857621566420146238326493434172265304504714636884380229313734522464115633703668161927736665397543220465913762511451564222133673213394126856789930181070475297128833678319682214848257374733721280789218902187443412365847695059989950781922020813958915127361872529063981839070452401591394654221597024552688769214066828614653076033928946134568395242256488731608297308591522172094285927630506517100594822718913216410038717133371097883159950304341031052827771335526729546768898172588044751866137816301825005386978994400299398897152719303046809155108043192815229690226637270513215462054678116037722747902329818759807021354545582782289587191725016042729670890493793767062855503358149424864210266742454576419098467819911562148051666624684182837131578425771806114970261515030672652893928097113417889751895144786783716006989993906030158756460929557208571300524934626229808641048670263359455026526708229181768244243011289265587389924770746303362549753910332510534451848915768813185957374244886025741437501550782322770442783412277032842435578747640765183982513767166073753660120928702842181205108317281790075446159870632584249258041360386253863708505095578230069765906373841325677761079943327618089794837684998542371090839876860198998048784654961867176741503380820137998131157154264994911436257495802372807774720081328511534409040759520714779668988313993427874808039065378617661456077262752014298236244378751975059158557514223298438386296150170053424924648262166230854836753424649567078844371360855299711748022356108352228283640760961316817811903312011827455352314050329771891452895362536884789156407581924484684746173854287790118829615215185623306754313210465358100969065160829535023367051103944929459560625058502887641531087139509505698432823957058428347007289650533282821078045762181394115552855578742501338638560051362378127028664003652252058752390774149257034048558792570548599835685048581324434845073877956008496329012698554662474373869134644013389895570621600097830143852817437181311214740846296379183742123079690766041191628209407577850858620755265267990458147249252623708903177967679038588352394987160239401929878804079725649268515021057374458719633803904687903370923401366336441741067209045042348951639813562166615119290790022718307703781736046917573407654245525609722079149376234158632411806386966750748569269740144955893030105028546383590623281665891010376516464316222137475857272430527692542428698299794124532592371946931247568291052943397486121963373441382215101685943341229521277306906802092407101304922648872660270912161822112551960963821567131790633521563780701842849555933596501293067091927615660199606021982219394170740332123548764254813490263786352195252498352787236750599085509133955082660910766831944772133571828763767560530070733720674685553212746444532394001778453569034065079087415529959804655588841946292222054461411860796420966775126222128008195779038569563652940295630137306393695483634236275442040426018788399142417494315351512512308509976281233081214966263062502003239141735545833541122580839439280560761507637151808936930626375686509047962142839269584977290401658373253275933923737208896430221297905692479094163617931854491006840206266896374305426496167392129821879638963115780699680629002086067085618029629023145099310472646014755787739630190964583251109524221864254026449557239622728887860139607182222073731736955307844834846618796999922676919650825489452693644107602483268068601334680288788301454646601509368438805115860565550707194736450054260985744892212962663690314729794924511634652220439776356105586272634627552069658895868158642082242856143727535835758690038598288606654389046360419775759992318854104319328837288976467291749101320695217343378327961358266174504638716622827616762493063711395105524469603990054948264773822442031626099087696865557240699834415163063444518633425362505889335266084919452525420999796397891516620713911840451689123975995412229809748801079779041178866887828550128166578645571872057583560370021606280443327205950253899211564889182827940941619159899364887006621534230849951992512518893667180095528902966341385815797288791096234953798455914694985117914979952607847806840031648275731953759968914897616484308201664007651929987670912581100756325232304844381701336733983187691364016409428815371010027988822467466429848686568468087392602734078399105694149762859664823750599680012548882709630981719365302431548753011008964360178579462868296837656959796640963434661335967394485471185522782559719482035641537578155985140179823996907233187115200964006640202226734342111977413770040631122404018732639925581901436894301057396436074218340419972967026031167377831581317314116179046748281469348637092242854852456605098506862382481692763570738649380269803436889985839424935911411341852676936887093284859522635984974783148702802342343917939719927348339396380539463842758495319830062885529314035261726216862756683814697266578350105146984570988640009476387740565101805704268138445383015087559264526140105594930860299188833612399815025440556056834756768643501241037196235953282230838204422393939534657254193518222316363608515500811044772179672435194727984501556711428341089066389525221592312198417853592599200660566319760898236854200914888734062722231384390365420954643885982102404312419268015027564635897647075777472374519552011229469636743358161146812417086794178278601424481283167960780276803452130861659439669567321267026465625277209072672790581703524382026840767941051801174883651711948677354741142745572931388459804027214285902618110065828621422642994719745022453974855917604228906759402421936154850979120926897069420264438312635784786704970331184390525497960804572378736951074650332799545555406716806956480695457136460194090655370518571609260418985240828065229027393792778855000407478347610893391404773487707249538003189896932999328336338899263237641528336760423630121095408696480476578535676412894993075121943552903444369704683899483014919902336753612184011357749422242611435417259266951500733786451299218926189899174790623961862026230759216603058957320802723609607525450403510406821163385815994763070507687456855821337830663972761553218484370019833599831924289895372131525435281057553852665491793447431266794330038264581848471658037067216648946384680232196911167242261980337954805903023573031137654800525759004649485978056408316649424393236496389904733186645863934530894481900183045119880176709624561049038311154083360645631925176982567163270479404612992345607382953475649372398151473253283577320213751695308281433413761544493969766454564373490833455562656206178365940786603745283661158069841151829875866782428283277366501181008928257770885176303063087989238397072613693830776540115657697558982265489140723037344434712944113386596126356906962664230216992973857507882531687135572483033353974318964791065603362014435281261416848495275392988581803140865124748273503126981037523925804539438508573392990462575912813128838988232623655369735792620032924310610188299257156289222969011794223207354042972865367120322169614075705575834349826272989469683147508643309063949239719282882797263420849819584778367746180730096069204881288916559167353009851702773417362665745041746874873862057134270760729040195402436050498601970233069151214758088237970712211481072517710881193565013019509211173818337152651810709281317502543768045418389889078255946531317951341653975957948973828100986823698614462837880445954217634288843336623946641244927545234009547780985922532548420105371777609164480796647363820906017179363745655817273767109761490446398747118578413232922169314543661160217084140237724320967170856944728565707957994341381963711285981518583457404085449361523623484065695515907509691733606324185812462171241320953993929736093447559908252719741674628880590854943734099339444180236982051979972458031913085583871455540461285232065670123672152409639500628802180340406885608776725834359531191723945804866620324651357899826986651982242961056617742444187962848703079850391574223598639942461173416492963513504103260693757337352795262781136600384046452862722054792256703781294890379939683463823937697018546366301350721880308669757821196947598745031568721038415203849293283539654971704236189402134566071231754687403608308318200358583012166655121148433390090514117193093539318743941364278717226663239861723772541441015192196691811078829057401350879482494080078651442435270321632916042579972358835599294829078648491319952045562958025352400778551590678440396559904800383892477807397637416273060748212540916443427092696285666646022357893272924909854168682331808341939932499330028804837591989593870288850024701548576843343135973449224579659419027235110678076223747282576969692687448038849893794842393575265164005259317131078801900763091460881120167794193545137942851405011146389375974171391417246522153320068119337393207955042789697727881835664741586750779397306462016389685158653707898902997441845387002520872683756359820306284900427115749525317825804805248604065789611103433809540505212214593535561152096567949824494046443230172077120254809732800287004727557461148411282537249130570855980813025346162374698511091589640327811484712473274515867621272615989888360992400893907390694449803958567887450280528350136705617128336078128759666223704494057593068349530274861270063259055928142370091633110475457414324066008341759300182224430414351158604761843748901235072900557106067407523951828778923247887881244962038232246223497737373852647209155883372849322996744600427118813104325777027192145917162332942634463174211531326215720676855347075748087845873243879492316486733860111060837680528573668111830298708114733179655417923567076465280007195716005763316986833547794960578736269040568500671222036201379625294688434298912646927623033465724417894199041864952727817903147300890026952047319703936158620435573931719655423842790257004341963630900199581427769933592842173376492030877619701805869009775229207156595857627891730129518688941766045743318891482287392639214396406405064688547113811951338380496605767873080196730087090410152558640790244178677122714711799529938652803167601201264042122967741662177925405957052739507036245605376724025756235357136081255787281988068093494462407629851574652712067971654986934587945226323452299866041655554985048173042148872274622056772480595100894291516833675264672278994141797013919774132367630702404663444998919275916591738882564366069800976516030891441181282638896682103097448776723669240375411979673654974069629683286010778470232618217892899232813148259466634867254684183561411916269169444207088816880594602750114087324349846859467854467567791501131458239259437041847174963047868692947235938053738504123721924933911852175366216748263496703642177274752284627956684255368591460680894566273771576938313336872799589660727101911771207366623763759977977992877887260553324840794528377068969016761387413860065483372720405802460256982417799836964123339543714915251585265344085701219628398946492606618717054865017069055978556708404089778323668679226293490171764261045854734376242360190509212529411628197610280471284881387598409230965520444284920127218317044749012505669296151725641055107167568004296794587221007517635695036576748986440560755009935940332817386938465004044161903048793233598818861340472987053569590763905457747010016724275750448522508539222871002139725502859437650904958792868162601419938299558318372642658316680977815496713716902563424247903385105166553930510594771088784488960138154422492417354910702714951190262450652832695482481453871575816569887343504304819463299477734200146355937038145053190332960214340938427857451419466988664393584269365454257851677305606468256340672950098477619819610404801348656059562139101624056273650647254915147461584511782817551485727377406220138604134920593928186672603873696586448621882548151901708326778838559929772664498244899964800563998081289010622385033592765848353973907422237125961138842346578170599664558735515730227955083049729380232674736738787997040728358668785160252358273132657435952373300765429847810148609859554229220464495676685481774275045573483401423501058444267619998766479419108901437827525044280220367098571548784547467859954885766843023773607543808357758217134313793106598669950535443046222898116522086390399422956091136847413665396515638283870637389274297253000754852114764397893156159091173651176559621598581453149858492185202925483187817338746244968768388182839347328284046400724250457579933474414412989371396833065331617870518622748360163659179750377629668699049238261836309191624802038009420239040654395503023632510290053435913094064385421215990118492613447777606837678187777473986823069519823381698859077593688357862923907938715000933685361120609864581057418839591299138762919114964408865509968884749479995797568931909117341619139878573398170642217515116230865308169280648681766726063721682214869228626334185659821174177347943102413823832532478676202241284314040147239334246197428037763161066275797603422746197026456183225872657029914944766856749220363534216433870017351414661966082575538472634567119986719601140515234571351450879617256436260635836642249876955924062338324256676313172447120225757081141712223157971382691754803648021748462016366505435990609842728763119891636764290594080152473128805115856517632365208576549140052720854786531645965837635956215884611970510592998605796405885776809415660253044443231294515321011946961762935722583377072502778373751140226503239399138635518009056509164425052759015422481349455206011108406716425674142071001516712459927701513390077269934929293177404596409286072976835138763229013433491520789134342188450835709285056917110891312651368269625310260168015510912740479334472687365337872746643821072919142072891271279118535956676231407372233318784782330851432513857208575061438906742310843518513411537899028450426230028444032570035306769344628606306801127384716402999836240575064071758586755744453646182450698264939580802184365639262768599070175865275139955663465582738221707513502081884317174359567355515920411576707290913025929780481942990489681333387643989575050806642967162943305959982346139950759640978343464034543248526151953576945469730257136025497503853032542428489580225330172213650368552436853014267677571001998466444212235715509118275857034251933892265621197133577047111973314546395508928794895121739023313279326367369619368707328160966345133336893927988091118184995858587830415706545368886037270657776984439963020567868130922575285395503261565143842128623342182287778391138387625350825450168333098113771992981235853373224125155492466474769560737547031443369917144989931219300658063049373315043191961951061787031883653206857587361785798975744061216125676459427241749563555637650137093748192551806669514703925687441224070468180659171629293327947216847389724585555513466955655493658809613009630730228419580918397132280021385784562031424577187751407898151406137150881550152721926997705520729871645647834868349773861196111250480082438239696144315239693967191469291612241942622241384381618737810734331584810826115354079456368144211648037568181998051212966189009404175973558211006596020274174140283114558676076909712324290299793105042505165240071443697369312753583065248129407564141775222472143537669799619125186089209106678219163526040772495515879060939951464269123110282956963169562321114632700294709704743832565235325881938576699264403637128873869458068471445035552650005365178535718644625967418472257861444073629398174085268326736326181148210310174712437231737978515048064467681963647867922128082080711807545801405636831422605815931648040280106716029991418945921834495909294601805697616807105706208369740567816153772983011485494822274920120621026383389388428612872450010402589047522959991110070875009723825462592015912556963179814810188830962370934595843056405871006966433289440083606511216937531309652494479770399206081532338978600175912209988583481879796385950130149531578223858034751909751717468338240842430928945292571539987262540647566490614181297298301927172714842424011228903774707830137039453644208099049888977902495884886748146080487619242250223813046284001438200786054309591308640718984668156574460427315556493503136961055461911596834230475695910022000828261332974006506832367907638956736716211375095469940673054780979777692895293429888892850440980048696958565555371151215447693959233198265414367335177718030207265043904722838063553889002833637221280215639300816364482762430466546135675159050351769021809396430822165972378232896637414096589961272776760147572171951896647530367240102599601093983857111073830917247062264085221964381613748551394285881753575829803863820286382635944596737736949015231365259441176643229383700487097678910200647830700380165974097742003149764566940625883796925511742232832622769166473573029022390087326600357828158794587940259110664016689986013087554878219954871449683375401518407046496364865641985746254609270188134889590619800961314542357064825112230507037600050287753446218170410037202418666779092483038338528082048032010204429758088548331534912491021584522485722460653125397366047800189324644101401713376279812758811741108732991863768707428576795138531454940546350696439906906314710319280996330390282897439271779389083972135220489823279266190108261659483381267330278735061244075645667460202993408554308000425872997162279029826327555976106298576804138836837023785204237910924759611330038226284170697400833331944600772640189877219659850375843322459773421908920355041284580715768256139879458542028062279812818704720161084189500734808220213362436453434483524690207167275195553437958490792134772011758252611664554371120187411494955776655314763868636884809602538661495962119432270892878853862919844658599083053037062601468032823980718569049172326449723609340315600343106056921371432000006353596269620310531522660940247055510269805771727506710463528769430648707007184371214368027430520454590684677715550350330152353228516238179692548813967351507886226730726662491693130415819340686780326977471274039224736724863074058709565356475084339210297267987126222230054508998184319462004717367939679643404922307387036807432589836181438528202415611674421828118376352397686468206179031300687890822876381906215150588444573416179123005794189961500694919686190890956249376655841210616800339790851005185052404569903543544653700190676883559683428085029501492314485028154877217879709346700945178925061973551628298641825967661508662617181740214447958617334368860306638832555592643453012436139307518891037896839613386078318405760067204658791504447662726276772770486067391752337673922266005904587259577955324477207141086680720175391228461292627697858902485681299935550476723507913169279848425879230433799812762270400575110079760542144849555664088695008281029142021524581950533467820913630091132566245981381781839194675796816549253230326982733498450579265817261956900759713707315468020089316440533566409096372079276568906205827291640031727496759437070788534148314283028889580853296680671616923786057810778833157774455848511570798739252183994375723290291683685384346494215870912497314169089976478637112852161869173012379589910868803593067154010448009587848771158138007519793229339515339717246430865667043999211852719060366822249328245049866317879865539458043336000395720404751730054419364723084024784488069692935902390710963114355176528682274441908671998563785429289863385677148917665227450166127641479464207707766887276029507476062649762651852920398952455340296506757364573542636835758429249098591629529787742838782252961906177955929253890924625494836146221207154364167466453140881, 36333758355695590496625817560295058401999748593164563955751376296384106622936494369483548636465263240549464113845441801963158266396667222340657481771269252902586542355419655878158665170545098381710929654301074739351121760751782978348584579371786512293946539302000401357546526364284023993101685425047124516900472280406710296163979367973910159675600212064536962756929683948657440849178724294176717660260710783811070316519523899536715823724642019550238126947001194758004060802337175936818537735252408166401840407838303870290712651941078444936915329287215342824452538240312215017064012436011523915316743826340041555285861197819915937905231002682762747307521995724401307068751338289889955986590388117385439866950150311993760744225083811506861056429009739204048117376987253075502278807172026485942478917675809139941159520670565440525135248007202779441588468497017789796455502547988390989820280805052195991098039763574153138366336255410956871800945983664993055135515210628046158539021757986354898916170369582917596449846167550121898274694395956053798814103443925266886937552720245546361116003392323674160970587958890477288812016707945370381544433993714497469963754130729339556435706406661610921287253564115967250766834560223407482342923507746203872760318065530022911919194728936548677128901507157770943091141809189551546454844039491398930080692009256412625488521770606481530043880432936016016708548418279967414384664916538985846638808853240596079383025475217018173035075267211740825948083144507247433640171788966276619391123421122356044350683504308775301924638803745899304509447322760302812845478070900313650433282072887147143782647462476965036406152538739591709817949042422750280742910369856639869427877898898864261371226886430876019244992240528787870052855770832072400626930293426462822352891439714232345406142472405542466122745564452310387203260661466682564415116190590735370328975879813597595686316290639709337307561973669534660011148443626678963806636344615968022464467316938944661928515195722385694195827272746505480473804408703181575048928433764538024936749196571611530582483592573837465214810060226957050419441295765958364862312686524898963286537834878646092047718855730653479863792261649234256179667159694266357474345891594424976924372209116248904571878323836878914732166458552403292882486092797042999817203047732154485667751329990822135925638482615734843548543300659977269182808749368138397896189551871921556339259791780950045726781670610603936314449841182177047034839708381566712387624627109036732370166477453424457310024765540952929294521261895006856691195814317176683036520448705005610554318682755562141773865071704464454404228392411662817142655377692912792274398465795023266503659713402630943257387069638815666649414130354268143897505324042218138371302931045009520014537931104771079781213574967486105379983567759316825447587762997979766910817732306866770771281724152647309304113954597754965858703572870329967680105848367721221772762324612091661026638961523485397956043633062971766569488795113711466020487969736436927790103421923705888058767471267106281315233110693733355271414946721410253221764578790176757573943123564607244021332977933568726220189574681622296528250372800261375636156488650265069907120132402599105127083978879533570492220724574624113839537199018702331086095770593055121874519658009390116076621951725517293377342754211782207046472823969946132321845204280294415255666676549658924071067036413699477236744156369220702187545564216506467096156136792546831830357451844489457392025030541398367428267681686873167460194864904122473029262659867707064490037214678080354636577139921159679540642687873428425321725788737321766602337850286790387130213890552943525601849208080715346639678234149463508173880309735826858561469504292036547333344947993039143254752871511266924769824691750538467309960072129168602605435572991291504070265738352079109790133279652781208576823687742740273884019756778721287641490346376985746507718199675689388531486135117908466939766552574277273686067846955724459851271968916200918928001947045091488583901162924771549311651928330272962756530133594710697377795822330992491303552741556153040046461378586092606315241088664821016460723864306272369019802567029807110965757836151146185633466008785425844695651883478551529186318656392264432146006467982360041439230029274184386075338115107083352350678279698943709783437677400406904765857334775581663299540891203211485258528686926041666345742930453857751114905447347390844258803098973133376043224372655847671782366401913366058718310507879137756127997757802291422522782776706650492493592241027023141265455572252260837331895334194540060310321463608018459910510398408501734759608511086192245643413325350487621775174341685121237645408772160063319497218235561047575618064667229365973659437199932206163396370531118548901740822576186147633067096751249272932957738192286399259397829492947084565218064154506557978587571658112856911208150368825247591256358565503544651569862846508649864773929711039098263682552192340955763367159905388059011842397137848151851309765337654449958398812840142841724899911506582515865542202182448102041233859794977613058372791707984165477396390052951874757979899082427570530328266416857424245416762467902658151182248756051760495236609904562657151929670183483596389391623896257101043042170294328155940290971533718513102237918926388293286672430831433233993322092001085749885038170978519880301868936465893055377859162252566228650425751997225136752135089263291674002949218695755827664294695026837137364646460808432054127077127961086015438625736350990153035929304547316673478418394085341311202253428303290434938707771802205888767986302817355880963005969649480237618487434644951195950747571603990232364424709383854287244384417967358281058394850351604088187098046040387177686185428869948953709500152698699981833429369106970953431081984753492040194728631306357251167886895104109053737919150903469797978316854255154286821519675467745256885809771340702928252316900625287716859311207743593222556644948482398950359913991208807563259832778143626878025833412716382448941994950819376446983794490344194903823971652857694498748081125237205822671603296987179711783868318212826433882736005933313710547807339711121518924694295518037258941942658329165438756130641866080773646888798841350471596472578359871135863681552533185064277537329885322858632658877352163864406038388960501950218005096468393891813917904216786113849963994387385252228092012016704970890859190521714974745660830925648211854801741901609261071398265162092012276121718909474020108671868774598477652722758334147174817516717639401384469944871713320216137519532768308712555006585604907539849094547493516824098926765375658611447272621605806504133439470605138920444389016004466277596755808313722426332077647760676500094548007333566454508120701527581499571190746741918019807177391712318402426375441238773223900163509905718475833390705007049757787512221411629848722358832278643243945278617909245970932212093310276478244945407308491277517404212664285709175792924982456862365792769761539194648466027621542772145103469318794512059293530393147748495554157193393202231412717918316910633845979502576274339155749855135940189617125744884882134146818979209845942165496039268615794706396984491538869626051559483567325938066259940027163851097430298346772247435729686865887820845424529390959375978368153566066710034047612917984543075898291147785040703459833112920178892345779539126136301732172521976673593740057583873180561019261549481042008375027204382100018549435129497595398703641321669401486692518464605696875595117940300158645678997447338962595732757069178624202734662385382808235615566757453823748430171220659639438164747895425784555349613242576832888366504689236611632099098010605519335395156582946302204795435695271736664943129829574631488288448308674791949492802884681403653470906387292158305046278399185968234213228749115484705076317626136435122058756760188742853865445538578630635478157743990298330809330890874300597108574323394332826407755208852362487689676084899045235294734278927164968383482603012573226241118380246999178630313042067095295854622573853784586964627573338366953532263216809871563836404238578304495613443645233843636425224970085719663986700578179851013631367306216131051737076333147538717753759373273730994734961328751320739386764724745171936121075034686998287664517033894100641756852098618448096660393422641195901082290196830401856555087971979722850703967299590439347241268447380135191849109541771834825655676481376770383826498984408999907477607396998421676755608636873266952955818454772941126981031670460727362454631896056188769540399062218645260874497764574420322825633853014329953638337774948533635503142458421331041475312884732475903782785838839469911562887751914015521728234562931718497925276799502396797067366666709592127605657839464727453381513540083615203079459079166249138998582926595552883103962316144864210481167905407878509183475645628735505522179702159688909537683467770550023593200827981323279982616709160017966343516603507575945483422949258121397433129802062212572657028223440170692607645167403360030221302622315772928825006206058716355145540032497426216087701690550191103210366284591217698757882070117758573025916095666737542484210955988570206394663598472947864886872709640572531446064337225632017148761814705236504838321870761987985311059809170047144588024281313570721721753336342766569840206035453212945405003431860111551913650365851152158135988207985120076442890350679948725879255886638368689303245108487764132880248111254755800455064084632849574641898619941866180221788243473473784335064295956529186065038512385366642295809441729752704113307800934261706866008359671792010163963353824327586512316855969202721837855201707975265879262450411195807801605076263216027770218827548301985814657294304311889266695416648670799835112726018804457092639543786040100999972923273903180392672112240429777932295407855944556755088443982459700885795618024496933075272885544358216507819004751451561951207241628710174163538461443283277344243078936869735423088212663231608353213155734773385532719599525759956296981583274156882165589063493483964054096222557851212710461574006712359900812926465009204226135755532270741049335317916894702926499862527264527939724058411179792317335471589440265696584121184566068400027257999808877951500616384055166961402963818818656123276867367661328534269820911574222499668400782242463980989443706801845896108522678908312287783716290629881244659386314935025557253157652851485598944893264388891056723114779479633046094559809429800365429795160504406513288515198012718736281155114610312877646744702529583070882424126338105617038800314019835197611393483269177576195032833457627824210572606429177281815159828633677615440633957467658979230527933336118106889176294151538787027517264863465784572680158647248669462256636773024655276465513607241910984386283415559005951724099727425303650517067003637046703328962455553533729053352129892258565806550092379893088742121116141604149376777011924160647726514526797717566389565216208040925682044502520811185372471468613723038742013664438228744970192997388956563725500282512188156820957445100579077651629693467461154254617688994081229816800546754503515392515790171150136397607571867828921454446410119407768382962300344139127479641181240283692413369786391360787283537593676090148739276095748749568973940157872625301437964633019030798494296885984930914932367214463759894806881526621054207300093119878373503603420820636296408650474660572099860985299162589155754172083325233785275053273659286752585823258656839390424711479871880348912855893854060305469284229897370323491363264485476830977473226350549382533740855979463361002710603030251875281211762342027328313666857647298616105229957499949168471765193814246868442620719746129602354247544275410161072731509714631874208110282207226418851984830253388636665038446871489408757812777048906893899073108854700839006193099642848612961720575937894243237659906991882772263458331294144938901726957228537557423689496076049956912574968237762702641882054077158390512138348090577199538036266501349042600935659781288424275315163083436975669115289979935384846010374964050969973737090735831842675655390528791820155438648105752381796671322985208599699821868775415725456708014346369782536063809752287774636995272971793711454100151539317662552504370653471354858158350002582406149486020097768789465823827796011194072914347463541103835055114089158439943951397683120719862557005375058876612189887536861024482988725620991447928924666714395899093486741177537958200674818189231528355378426169458490528523942300666803255902392160875825516290531585436091584831663274177828353603207828508855548705878473946826229771968225026649849639314342026603005721191414859305073796613744483594682265426708525547087445160973263699406596331672685184103870997631289248767606444150423158000661165869794603544357574531350093948547364801777263172243080775703216083946840560255668608353853236876630709544533218939428601855516208998110396907292113758914692366329894380538001131716566589459405986615440210580315220521897293236116164522667192527771113673250200587231512027889588541675516799061677083548471992006465402005082904051225469009232655482799893577327619152060680444066440007760637420692909200858405597966958142097359298679405117502664961893716195615327873360622670045004638219380977657905529920591736532042614570418632049849608143580905198586046089907530025060341228277759745719518626550934480850883521471342913542476361384156836510282633726191066090547418493262875945284576057979979320368195124520960825457898730158701389722904249791651996762439881887878275908807278074225265596237252333316459498524522700412679015574617089540927384866174529374682979266698283041901815320881609858977723346896217012011552785365437634607490457672493529130768464344003906962462067666864329689274414493487376184194777379117832537940410478555799484530851668710183691483589975290852650635441794919404557231894814428223146763469727411089397003562331156043001899399769362398417975433892175635124126503007958296449360034099717612970589750921171539191411884689555308412935469487118607460501556827783407945800202405999059870961731594824528700153213855830054958775777944682342476948694260300123419908501121350279918317262517454118824032572804966506810041560851087467297989535968660018825395033810428090319880588253027504032662917754410097528737234532362682685755511692321953389401682065113284160397097038625075737334901914610218777774949381251232589593229915247196322365228285041533121676141896720258154285432979066278623698488826932877386597562081206761651775204734064160190183491650055711686602153502390389586721281333334442278403366956139293551696288964908336896096349490177276532016351213895855303473874293927494435677081941078012105856409881029652592411841158607562541349824081159139173110345099465619523215456868427400994396478928832685826463239463781762678212083699175047867238221886606129169915718809141682891804612301458590229492218681637813779215872854647320954959522766208219984193222818674643391462915443692437290060569731267893465287710622925570666610784838888997497978524940550189979425800461734135156627739167655684892652086090661516755942636594319973223703766296808901147214914171311821382628365634862988716952801972626134843325610667749973568990488901285750047232791907886931577488993387722046845864237351970794623526743767290869932850270740394337852899971777426323770711765556631043213464178009050506350387215580284790403628559485157221007495256992965370912185356299526551680525653285325857840565886498838625821278145473075500640242308221753687484493996712773283591547241574608125210267434545843308242292566295206837553229386168468992876336942907864558472537653076959392288648563451378010199779045732259685681866864544652853805720466213128347321610858743203790133742743819840421688942607912563919156398121497384155244413400138096131401927376353532935078341411979516680801671693787557138888075741734413567633678396452192399557200240303045290687106653420515758132729849901219804617333155595543172172085578889004840524827110841012458140816341709191326911310217032502010905742823234727685067339578153089916845217226284520874499442933438829395431677918495199405757031321454436485385844255718523889886765942632933810224490327849063779541572657163827874688779874013770988561773095996397181115742458837544618022612605508635954023014987311939311556177041939248205503807493854389518807984900723322067023848950796932976145696451375015078718639073924816639813951113634027070281518784738601808587127604883509880432755938814167782418922107515161536792239869572931755352405786032026756978690766093339826982747739813109109105235601311818185706542211557728170096037724881950178104078990061965812772989220240041167987513959087018383758425700216648410046213313285116426935408264079860135258782594293685184890154879815287921906982339460380542511105278705118882914446908279704926198060881656813277025002546325489470870314718480926999821095790880910532605464135803824072415897393790532343478289847458001396392760392790874807537073426785185635866205324068970375048246949955162861254251282318333008464631502782773480924759900228136876558045167356654020411428392754320264751329506408304067140476065949928823292283653060446675189623941786425424516897528125464063326026216572924828313439153825328432646656761109528446334204195234670067931161184858031545667884428613209961455759427976140287855097085521749687170760399023878267687123757618295016259680578877092409903041897389517832425913310857300145902565691124703643102569492388635781810231133309472110016040284984559664783577695067755696898568680128175269939646970119341269436024172112120603121825889929487745602708503273877636317898555997484937558359863036397828941651405273811448224365217967596481182571606889200799061890732243673057865596296112119520143541672369572600336690246993853783815658721725814787764581837658350106735810974134534446395984121742076646354482593636634586971821748869252411698631361903553244113585157706696819752441583001240869902130812896184083820008817748838383560323167683008030042968409238275137769161002301044284848581061607503702154888503438965395164594626604617791148160127361929400267912545256464838798866752562349252249271108554817726975837634913712085038479644964203144403766612822469739371658030662645824815881256217216968171527044690235273672076016489104266555342101848806984753410944986063229277318302636390548458994077733427993717527916364733713694412594595886247911007609331826419743050750266568817209051961088178417766802262399416128050444818874000506962929164190522379705265088509771876409015457149829043022879840064108876351183092759326631897440492332176889545056403615716914443844281047034897875428955400805127620297595795857416285799220270012470155520009094315753256026836047185193903625395875168808765348690234502453797150804974569632314966557915148317828601008946061134730845202645374786738208339644171767419524432840418939057910596048400023749891042228299726855827218483734760984431393545474688556252450747144604744464428163357489088058110252748805236973624388320307796841393027032602789286063081965284739020002279903051649072230086009783681614032016489631419249727025672956591404546861479749417587177668664432420595064314871159869275989326981445311922728209847711668055203732190707295718512019387652938556376108031271676653244898910725964643697892953180096715556085593459012595675942572164361100986523226703213858314137225904619835791079408893107790615200300144608747494248465701704738232631045567471931038257434357702321959942690278156510267290469383054984428591174107115465308562913906852992238543167363516530455349047893445873714577865071723250579197428622946363890491373645772833551635586739345299936978370641325113820928539434261048464293081817080271939327150949034022742676147760445317936586183145294537193478395844698855063649064700412778601727366752758567402108661498893749906234472537567387404537028116358762312003021827363327619105758819352931439224404871576343065382426522139445623529524902189701342268810753626821582258939429153566730887101477240861442909746322149612597744957535290241693356176175812696169595541722371236693483827440417614223424016887145938339425744523190928581203036358739652391427899003684944802970557286080675338733815916700840262676540783773518664053493505744034877793355146545577191709912182738169104939645127242431992342807986176918641138015092621308870966692878955603063446307413868012292727697794949169744432850895182990727174021339347997392685679235362991714615746572957140627983789200008695445245052729429284880653830777642827749059706652628651565182303912982537494219869662739413530734928438603194574351535625095220944777472145682528303838572906945639555471762170752998658571124438914565931664839674236774734440000088402084669983834745053651710986860968828344631363565804539728149257481194466567144567528555711672532493657843644962305864575949418754150424341923567636861444327425927924584558413131801921140712016777928845485399483450987969916416799428593283017940454811719240467534407619162028463051846422675204111732704924514500890308037102899047684021805687714419687797003381988581621046824735063000776958164723449951449006094150232893852376918426552730276078454349394670477151360399878575226291963874820692446432935246666772570791298346051255798837311410021556609270136593033424710025070457260812801968435874327363880571672702416820700270230543410158920259035392038486948075955358480628928064277353598107538750549765281299107383276046996171291644076080051423018480020708436073203193745586628158743883101564718363257624168419483819960761862152227540286786353907645216373242180553775102829483500303138850435509537847060407151025434221553285885362704747578836539647493222123117238355014964490198404530370690804096986296099919578966653478585287050139559534240082708440780135838848922152295307684827182546386505657659245304828251489512701184865528022466831940648129630451794310229940315525665767710860098112718855719934785590406562194624252570004751372442215976772878458908803845465013989472082443889259521149133271240920799574313677480939532982888614957173685741754807702227305725442688372091160281564232648635092403131960489089445102810144589823921563827931239497737472139288260657939970671114190840657375687569810453242744490953887133121719435543763329270233705757337373508787898883754661110916246957935128729469560097548054131448346255137871246081854098250177246136570599612767674232523467387896886016996607224545546808367731325141676071681212348147633052029686368958726589633620020640126584595026411521830427954006917227758233711336530643608959905500378594613394863358766626972015137637157578198976700327229581129383739436571962765895716755822317120735148095855989918113576122168745364716127282734830310291390650579347090282027162410542971315933823347641309095125529981026512481105577956895889555681240774937466535381686702189890563288872775033813870347371344330902730096622811133154015514999130704015294657198969008516609333658928510831258064515134213223014742219470875611751262573563093360904450404148715433045924165090815862557991479122341007912918713235906263248265684575273896423711668078345803517944767745344780413192594869733165371974322801345325261532166543526842104027784115828381088998851822081397756113810913653181252131763749907972465715345480315208837943115075581501215901215648338987656574020860700539897146610093317739610082064784599034386467995335021451922378744988609019998591415221268267618109642564523500328524293834275487201866811231751789011396155792139464522997931788890883166183295526976759992451149742184282261330918246543794660815646099934610437523798763475278122136228688874822889956912065422556555208903979801501130272592356329304038974145984379266931131238114113609573605841601259194027086676638048943368642730141538363912838336064401238310902685707451921675295534317477420717772170129932998768927685956095973089314578635859093018648166126112956948057090664035500336771593390946130096897509149956506792888171383528964525371542943468311533229884597241040228272708015615897441279582595773975178482901080287866647595218173660461919843781870758196587963059389796763898794911475808432941380936769592788927977350443757233033234538125651298922491042259993095391103524858304637815113928126448689638996985634757011639497787281313324535265110279384339475525959893129898960727478973963792696170731524432369627837926333072847881518310858556213234087738076953851132244928002385262904909329167485724189733372126522642414171565261093618093626265470723822418887455246112856991829094642631080243592252116887107378821685106987064387641953929906344336359613063770150397157298773497462512699392990556108825050573969155317710993795214429144090764659107930306229852486849924144526460981807344303859476075698530853841197417386459757768629292721855361611621181643336204080933527495531336580377791206046366179535439292141126947371486946428624092385112059757491405807791552514839121589738478819611953244081692184017674090445890474925011129431449269724255197725315093029575637373270884523297456939025882600677688018007352590601629557683019845551223598892100169942065695768219841243387810585283923610796848261378887409660833701718011118548867480099800229517951966992736139512396006381787469774502173433731587644800134311213617904426306721222563465144025889813502255166315824209034234783405900075907350108127420293658231672313529843893065996305556155956355915043522959318647347872747382870872341049757604447556485036561063847057006651224873358327084111469642923255375903749021033925631972625856592412097815952553907500371898815698310264032874650075334115314938276266931887882896837900468166116896986642587754805245718356548399557594342939305808878867128085995610210377197346567306721129555097700057059142150598788807882781942056344061173296454567258736784870146187999085790874426187894207365621069657917903619654009197437927225406341369334898445973114638129997664402329655142737121847634960317214753983579342662867701185363468982506300557420681069099767282310319150579687535794988196815227366965186275627746693863753002228861521704010577516567253808439927516833372185185808698881217897512765275850357156598460813481082007387441205226469844909669314850992168448930429590247991547342795146885170262529334933874318155909864604385404936751739301301381996332312726883704339976916936495511778711733807282152650430953079188571298640060167378057859948474606290591574079481621265941411146427984046320661139508032950092365332386496627885249536364794781859100303969545062963551489705851990213999302587191788333770702700240636591515075959788446013623815144595430970383154542014316954918308089766714397249514194816211110237289271939927574688341069408062921675342013200597566658353558786534295722356971062568333067453721370478266999403184165446344479746510493347533845233513839675841394055532733339237341273920458947704738576021670702308384842126364162562984789995667492017843547701593643482978646919759478981479128969869790572435236062044824212911673422277594363654513655687577511332358871348800321004777910228977440338221700420541729527385715004492047835613000353012384062448714051432547882437749500824271844740817869989410733339791669672636032484485238875770909770147452942231514776621568987592950234290322956498383014780230676086017495945608464739963942693278937278867065485212170363710061900148713729650952690747191837858911042702171729080788445615358173226615699917468477002966546922388241829370589934076733945820310855633791347231186536104061993080986758481282165700073159822638797162050348213662990114267938275880126151831614760066405316628800827723089211459111099241454406422654556480618798155436318157307465884643742614312557695074368178883182384308531812743657880506829142309437755571615927543795795029519406416488950709296418263388748828885595672541278285102572073502500729776871387910833484400390187925906483360992201934465664889593649314863491303810587698813724867645455493302945169385523642213248719849726737349121522558422761578487313017720214710981337132603571971659618158491388718908938948206972273864337448564359141311741925484928370106004871150202392588749956424807166230543013218603550657418884197424462974789928322891198127084090653646182439156820662674610451576957307575043760432016875611329582831356346813340131673409956647526599963768409476391195588238776083610058741212134234833120462612641188851693994447674126052171498457276899530305749409720049537293368538369303634766781791238901926483931069918407733106033495945382515898530373466153143654829874396247758964503787264052021623368935985447487910000748928565710954739598102383555389623258861218784814227126583425133146657864436468956768834099108568782229975441829405148231652773665418552021574566998264561801047923796713170163163572911618894327477345420207090636236369671284881961805694376472105838419846651299346329591440013947608893081695927790896612729170145053126810687724321204823269379362812227325906898131270509475825516242118543690180780379173435266887684744723235499485391686973630881560400659072401536461431576892104679892909064796593459345439514869094018671126225440434001282685234663186743398614977296963481258958844796451476878152240279725818188886476245303105373045643788612307318546509043925851233149478583189348485516184992009393752398751986782294256455990353583281055334959537334430783475402204697328946938599401793355807330999438590877209673631050909217451002363187543024058032003819330059402795100771984149327704521249023681438442351572954079778966518363205692054577724446496047454168204369736375676830347103451193372780320864832254623353806576161600965512023981445371676969246831867516404945144730499617284354894025226663546164674983079794709734324945076038684219670121262630659271317994169441364223793270476723223329894070538761869477369865452883044865596077218385493362383712652718473575464255506806975092660978340601410706446108177316944149425981257074584987326688751714561794919677454525143648506198425148771730154642656296638404837637110461626675126052173226012632917304118385558544320820547537912083669812945105400766083087176249989915647166031074545105420541037147804811481241279444721178963651820110699751961327917006598373200340892328526986506753232495268829180977278068829069732798950285586820575077560319896493440676735096533337192462064613469967012463129414804584398819252598726053498986398681972087097084045746609675606707161260759730218380403411729643180819213778656414045944091575343535693404344463326924575034988575299196654318095917074096178608292528017417626165515995612489500706109099362794396121998627633225907782397159201950323731840667749567476119543140797560561250410294787997199052314712570786134050882935763470126296845418694695565506797122361167216462477638483308284342010950732934535950720822305135440217784847253764491886410994504658173168582558657354918648266290760549870362568555267249526368980017157839253919345974547581636003926584841442428377017013565669041938676344342126533723782586028063981554036099497778727385243857118288833030109364776828068920621173810147692283498194282074543303038904057402650108220242413070413811871080329860896860972259521246026508182547875255690368537571402983736157202892415838627457505004241427536900292163010503035013381851791894781462808711290825955098723919513577533799084682965702062008068663653439000373004894728247499340629744830393515719951740791147629357185752191658901589598795540731215108364306165302357560062879439842519792613540145438541323233118545913362637286738459991169027614112332060165250020786577941359732707041161921205700052884709142116442877909772825721556636124188261657298229793202527800635709599842237692615062496031009094878869703441014112668760552882711565747593419902551677636666235243695133321902905536565353334500664554828882829351174484115136810523308207582284625095908937288629617452196399650162124139846599568894735297821983135438087738829218695575346176987182637986003821362077274753566930927493281934775223279506947016900354088932173796667784219506972998623822230988784492372877724564010153841107268997502492486033689036680909237186522343314212109038790146608705611613178845427955990513958140898803282164002388312019567566424482607820521168382866727585071503282158980298367056722184283068911265481430649817630080729304290429600600342756205303327123855734236844716445758870165372612776699118776159595387525126623112138437302034942662749445411645032224733257959074525912588353777718634934215413124231209878644342218966184744718816482571471776330721325445942111271039791554919297847265928644277996727662426731807899144176865698494880512791743268568125784438100188328074024548014706632208140612960768077425033870357345407181086791383885578379571676114512760831315032535138518804069325271861613319203909051746382539643602654452950611953242601325245528984171112356171491632693216521321994656904642515231178866932983177815379701830388203018835712000821663972710986066383286321521772966862257775659783096477616093306618073860778462850211721497856289770936112683421335181068162258090493455737894901822612533220987259606428326902980119826857061321576379476457294402313952736024157398616209294851345393178925279463493988803426904408959504314868802047680610718181080564675332078746457481206896071177322359898669348363694613942165543449539407922540878519708063749023496319649047627086518388457940831350134942788983700021650401014665889515823504007293025307019208085753938598435628663977461669899377756105654691986664661979351608184036937507637740830104782286167409281557409215714334586370084908530185281003214739532808314981203894464768803596664310011226815467369271165340194288536431160237822690919447750921272775052159855238392531047537735211366000233507153197797155722314075071430040912806910609612199838605302998976269861768923990182404932357688467744851271873098188857354546561993698361609285180512531258624320231493332230179215065945900973225210759607072640454867659722581951797912782107911526364319023605332567171008757981164958189550884616540981323508877460210819232278140586658344397910178678566077219148754763514708750910831445422535526115439500399792786225992976891219495745183890605610140142194516905057133309293184284067573876905779639079578442301292570820508661078634528259156759772006233938452238908371492309841572268106832071843490296126396068283660018583767946717032407801013722998587312512945393763121980859341742002148796998170135281399884991510342671580264896889603158758027140569075571937522846217477047580917227436923619163076867834367114786685946503141536487845902914932371219025625202348919823740046280946124378332230882320424017983559942436389293696894702917610519425780361959292938012989096097208634629504097658323901697016866463002532534358578047746399597333466660341976379970830996350921414543880136275042041318431248949746586651641177598899766481960873965520836719436847172605910308607037877822460708733304684702403203244384914859312598201282677462216534771574426151098498511710145792597070602433578216740101787741281810039502065796708215494997199208906840033022125046201281671231479094254955511131316610210713849483461146806775653560829676840102440167677629885835036243523372659465132888799109357811821287991140449049808307951365324763785289738523704438540660010418385899581839799183828304313602867867966784193859045618224490638480393810671324338257168963062323764489513779483246129308118368957093107852324116925150445849613840049332476490351804213851555241754209997858105717343922859708090763837967968851465245087290622617208866923874928318633810967775475393600216247164899473462870526100566897221069631469039665935101297705921889416452747136013310110610614467206370800791489016323540285207230414047552142694723058799286669084449476608092764168856403588913270192367961921132078915705089368280821776608411815155953457705608042004197023629858458969905745831306762492700625241229229864754204792476483231599738005120169151376926359387770905633997224888589010448109385310568591150328272545370388794962244339670596562856313447211225612191570374915595849913836929992824199720789283367080059014282795337339746467661935130162204701114123240909913730713138813552474318426546711054539785587467335813856641991810037998843588333438849834110899652190244490728166353654207201396682522503434052365706846656668678310618047436853526497913899812919779114653086278077779840866435097857238121109494296873435746511189877953422243638981472156574589610915188835744343273317051360055855775865660118626626584866453425612610050789891620062657207252885403251455560921893796593274520679591386240352395433205137674888651030284017982919726048951279259591784723484405642410670616309822380063550806883355985167066264613514873661272869927327956136141990465120503663628633404225068049847608288109964700977426186145969270818120018768267345332324478503628091175611881672183168173105042998324409347175028045113907765842516768182085869220565782884207456215672320271306341278952276964139811985722220391678714709508033010168230154518816336358959198674157002939708303483684621502002466085977336307216527980722631883163339255460886296523643912749232134070967689782148413884913386233155714148748639722632253333180904354740277865418826702257661917486735584385980060669326394934419898991093068953345497819816840971037612752327247355251851734147763705845747146920582747626244813717279639849386303151968890490265618708410340975246001073034003745987160368032017242762126739052025008330047770387744253744427100282648102108265383172075972177185936486490351472942618769205273238807665114691152956589045229154385582659131201529492145669685453661895460170519620408012364077726983337440054734488881085748838515611943248320121085927269716482157814700313095581980629814871591326837358262947695819545529309992719356393257811098647408691411561728934895474133574635295962446877598713370311770108339324817842653315194951374548628898315422346804625514504902248434025109186175397885237534917106087203790189160059632255552986137645899758639722108067300507069917090635176645916201003770112863206329356566110781932283826421208445438523188098662566801695099544680359040229589617557521579932784767242142684782313206537361831402253590394127579698999380459112364724235638848771885726966836833657534778950572645522861364198548577290408067420729798259214138252308097989226324060104867007669855657379670759229168606494694030644038380046755846075500507326525794907883243292146606517738004794065328681265272246809709609130609527075485153422220171862547395016478920928059711005489733674721050360863704238627978550066109245795943729299189898570756016933325211629734032247114954170324004939030952095874210689042569919888401958716132315090801368232268229245778410463250465438872624069647849998007839652008053769366655647750386220901433025341680745675573973297815775940117506032029742753971014530160643852696806765431688405626363399255365299172627704112582051249691236325528659035146129618314003625793271897739696111607958517989688821190226491223444530917875019990255337043735357758992401251535252123300521000107521539503017269244733352634362826825736487134796558315277222437653908734702614645886684656322281148408752671387101786125357899128865280866700353648577463671199167840451594164523406913525326669344939604693536119576155347582622745005223592180159707806515773491453997515224160214172992127294724269244304334634663340253756481995018317185836846489400827503582694666068444915048629120820097010415214504210934031057962652616743646172637394621903971620762091856929895692678421944115628459913299473555355872838571284751764120063354531296828539201299252188931865562878512156266971981745121540708989173758407299553468951653360792446273061997503207039471526003108443754108091644866799475917199527153715415994248342799694099733461729902547359766771528385069006003177532455680512718570078267375806785634296743241901843894443120558710318576175377482010105653192040666417645570107223768729824594348096549531509437819145326647073911781724127388908522184975102973523931089190552719904129803071079742414462288475585844334055885533154307295685969348989672239223411866177832611400529572577395016606326326032033764278142514254140547873215604609426606344592389782710993816681345120147158147529870723218595018478224119449640788873846247777839390284560014397934488614252721521376257017284446748431508547386187302860555382326971947270341189249686076977592532479279341564975656406603537785563300493865034438138402912150329960331627005690197800060338683061287650563185793435064288512920497790776248303066006757966853662535746318638667264335767830837935718097532538736236632353301903394850452041171072499926414774582456615381229825194656472453777356142416379241048073210145580152340898673890297224726574372815792628562988702304595451952682257646227932697752246544753613445249084878572993118190368185259942513857099355458523889462147557872939095852600188756196483132379055910100225137637036294524320905176727133889109705927543575343723516446311196274286584816540972842060571120824236534332975139088086504705882550265201176617705533208328525747237606389058448802807059038182906810194159478743614752554931826989280368776123979009504274708670027655583096791465123457327235202784325152396142332491220153966682983227028731569796733307853946386956498356767841316009485659549312789358607817489817472093377342168322377066211417738841348661392964274433981676495216453504147889807309533918657724264894446033987343175335589016817505257032831330588440878770323108794079524813570478654624430510408827601545273257493278855352418448165189925675365878639295591828373560831625467397012784777855196555246258767778773882161215498411522252143667047195671990318109242570828801788022020575421055051722896430616408485378500500062929614906542997303157413937923677613449647318833289118805258455572641220563408582277516182681551723206445794862100605463373322442234003552850026705853258920117670010333533656302911719027716560644104363381906989586649515520592418876732246020568365872819706417812526463817129633827639936313017251455051565416746121208715013803364362877830564457841260768590789346440140111647639439087527316973523209021700708226116720441897422812693689243896624523280416108597300060006437595077650549868348701598074075319797140809373235568016214362769345679503438484590675400734729067165474347988286625460754171636179216108309830595105718242030470836460616791850594622146566568835636511781613212687499805739744383285530743719274449542046586444261799279358248418336312109547682446057069119059483216369491735536739735620622666112458314335343316643031976565263483044601667269493906288755371290723718506212780559117244923675958759446287743121292481978244026074175635897933792754987170342930124319695871548715471458909341394661128549867829963149220744713710753792428273296366059906841881094784672789049439757125970049249699639335080825841584435456383293604279044720977752119046304873744464518878454265557078641304211026216184237258015518288860565356207592481376341294429511506327717001834250853116526535080613683649281385327808369065458833826750841519453283886573962972875221803422638096186390200348298860730081800510896699345136330658807010768696702187899849430234602079222959148254058006804548060700239516596925329045707383035798240827706539280123059388064260302353297867014270529496072654829750229968822965975659396789831860853745292409118781252130255871403842614491366796150227502512755332359135826836089027654451444161282683094581528471762537415321631497756303236173182875120574961754043502956241654771172929840971361525250268864838285015704185470983772694921991183230637951393035265233152007019407670022361821174906068658458885347078828972997715800609020381873765976191436470766175157898838239003399115428303609040710152302569879979492351332957943741478524222853163845503878142846606453073726560109205917294894694060768185135783843023226149410705556237341305217976553559656108167415088240049917885265615108190873359841517927072635336778865382025900670217397194893839229295547476661639991952240653339161533045790750654265622933402525166822806334303749272686423251728851392527527941390809151667884725927021805124486590845138137312175432423208358439195200963533857548713405335743557004489198038167636568348265351920770734465185040819188263221421199550046682652564825578843716600368211155510966244589213123295071750357986369352480074419941960077408756215473879932653140212339138057675518763365651434560873083608905271241956962447262217440745659209285580879004286116748241398063114808560256491609444636046677324086998996257659505323872591245224367675597158917635945698766640906607509824065998706135245393782282049937349338023914435017011985091487092879656278077047241915478098047541660566812751503740181799387969772813157046461024231524477458489414377545260132859035158341583206662071717628697969983406289752907608308753805124894215799273758709512477272397480687504860605867779217753984518757035242880374810801536598010581870173925139333398806146637136837497472660350234883438693288285690898336725230005040290541890610194424539158995700660363491647025251099436255933672737497068931439323081777409164357202101506310464532388277791948009064855075128025896711913233551574608147898112682348977977418479033540052963025839150501274679480694326088402481789101179028345804911446007159743479880216470943366506415154321868886706163331968874898511109354268573814038275919756945937623751684727628672229167808091043528658911007539576403927617994785126576267930625725202455703280136215411676495959672476977666171285579684141840644936423235172647186095184296373063240091254015387370293415877295873433231669723137155417404855631429190524723952279355119971923542899997068753563758910764801209340959343420902041810212439437481373846324183535139139238962982136283593770511237243137850223481247486969271671020655694273928506811347530949239310548362887935642575477096258087961797583271022379090786011877618346442625511483277006646827413664940850453711271166924541799344482448091072443180209283554510143244385033720642143755124393035723832466038515949849913317054439193122474839509097644282359965373749510146226967801263388294662752187382932033466520233490836423926378726786412041230696599334939210971038574247559661070206425589970493058089428967652808236867386962902801531800706914048758631241467553339200502912507543710803481203654360067682732795712331020117084565788243811599441742249110265135627132151012506462528385855286464968448079746433262645083839571322550492715119012699634543437576665718578066615698365790656592660205231008851777783850280575168923983401318208021293867858676679874821366034978972885233525908105161284075526016609423734886749665294459295278500496560268850574352503760275334876932080988249152894606346656795209403948662534903589736203581155333378017510896798111689349600069691896624148727909193081751472434545475892459901807407332989220327419421422913718283865163188326121145574657779679934573083399400960970029639804186885565051109657697021888759259957680156803236954450570204194494470532470269032317552248729726244592824062476056414968565031112588019633585888671270775146433572475128352504049711574636890577751970011286821121941889720966390243234961921443470248808807750210132952887864173312509971426272105604816163202735392153557380053392375365771593243788843779749789734411840302149750227969415656622900867982608454770493973630843861055742336338978872591024185325909935258468801115893401797634124552170962648761147210687051247218335991816278568353451653953777954153818279357250274366773443051259711196649881775730685779094693891332210433390074397618490114572393640978077823699259778743928784849463873123416399064248939668117923819029560929212257246295410118673882755526188338103522463684677481632541265740422146821374082137114809579010242226784061080198753023696502692040486817515964094565246473999905048847928170225158056801807026157544608804389258141769743768163664320023918953942391129114651324021007452248309795281682199231866504913695048828896974595398032612501005682593380230587580541252332860169438331686006956409014467045792634715692013465674575976824486461424380813739346187469451306468385496565593563333527847004122352598803358848605931548317535434006028832758912431778415498878833248860848145855447042390206798598590495552166034275812171751234207443877879707477714777623124608691457824783225077595928288557870451725074701709486485152288221989645627241342827326597273329177904916746686202839252036069131754435414135773974918513868311467400161257384942959706988621376865504344681680921282704520355675450446551465604314420151517502921377994786138778870721699386357661085769433053614916169140572805571022027554510860237659346570070948497577212472040749282789449174439924358375664013860454420344219216963075287182431721645703256917029107032906150489007301506717929307151560574894048633669545349437160554179943078272460997137523624814491447473222216975707634302930058349172346542267775092320907740297481456849790279202968868117970315594400185616846517155188018136306364873263217759966345647221328659630405875602836946370392419058145682252172319269836899787001067663876423190926697572023945450243977139172878551859037512643069124802503760305975790404747025894955784822145354002414424043639311197886571684063612323156948761278799420956373095031971359101255275013042854763953403130540946825869409525582473256520268121106268424282210830787725830385958299034712861570839672324039533182725745534694238102598558472803587709772000636406049077461435418775337865648691374065020764027487106416399478198787285313748546141451454696027991409856089479928116957848803836810505979210276499423426031497274139580421062627788710043692961979794293692434340546556695045739321420256770772908937877030273605295107589459733916561815637687794247253976837723127592604098703569734402282532431933863757798939053653106276642319027439360685133501430596711117212786674144150599144254491396350957006574353978999132573428655262128615791518586474512622998071767340104623824587375205405488330708205412164239981191708442865751507797981479177609579835562808221181276197262931155447110076763389290472707020543049147397322245705219044644335046206551542222689604930431439064214524298026412944583288882851236600257397514346368050280399862093626247764759357515469867034375068580513218243399093137255856875926429758143264957962364996215672680235646017152124235400856943844145468284994852185321528984257416154716981228705651622272607419429831996965768285165716081327574670702074623383523067319564954834027530343096706532401094888061256854461724382021041763071589565442744012717244483189872875619083622369449183087931555955634871570216246146565226433362342231950560839548287248947121590350463897742671694789485477238757930361371643139797942290845466881817697797231049595481515051986611612325817121519408382969476828251792813233386886364664879304494152130792872239493606447871133176716324817015397285773413732172024756812038616368035192315679312765581533351889217282274755297779120477485582435105015630006000862440684260922555355519961678165007633686842981465311308563711396503081294119877064449573119516431053226881761177296931546347927306161548786212443626037417760236470215823613534366054510784621663650750080139599510776913620865065474933740930900075663934510850080603814379091088150884974662995653993607869112424400403710217120340528725321248525945317267218752856866832525594793671642424132911924947703921810361912115692130715791610572266591218936743018358822886437303046051480955986635166046583892775891385333043298987220144826511860553720448382715729117261942297795393640200198333986264018290710412185807233340433712002583433105620110532456747085176827583968205577162475737778171280819870743966283760119864930396630580962898972310504136249157688641865794920653538347815582636074034983313777059364854796222251944460924732350342018889381483529068109253126441384737642389783925942052858252332208448551859604523531655345040815911377104085173260821744999206840526707209624861503616131843309474244559225870619595275458278289613207330304906569216237142247487370101604428107141827553648520257276583640586674591223652045124096746217717960740056694248148871481897312465395985932267640890853014622362131643453010789573164762860715164673473635457567637423405142320260549375404448794253330891513771010857300340040899944108885861018392870136776419976142625519979642634020104909609190307719460882934410685546015205220570857131637424445532302725086992783157421200541866015035500855732413372566071048693168262694575768978838496778533196555978178552216655448550309144767366539340523834378995839487536691892381106373594976666330058277114843729826880681617603520752649230530776619121307715598521114569981600758963279425331024065341802968837239403239954084278345088254448979140861329904352869444526389287981401619740140938930993231661884552240165386246763658033719328001116899403927864576978551530132744889200481056028748163910844118242537929136315648007781098426674149557800750268018056151525394760836139123532135009949749838109836740070748001391393817384851002612490301554972974485797199838458957993875762591093608908273774914796027111396278047566694680323250219508478090654350905435093074983377368096467660046775039542676507920176812145680364414314466648744903281931767976598922822789168204606142942964765364324129539218787753814728514582899302126832827455930079296799446990197059749877856594621214852334828945644110557887809189162995114644461007702045014871429819397512673290437946480680925347757069304488406389115110459453009442445304061738996782627761566876017094416852377452344777964583006055109467646930786671159431420378051351227108251976716273315871175580520861661446981870304754409831616314524298201582829662199852515277868890063615616301010260427518844231169529880816017880411670318848757275628416590890757041594002239525105287650794792766979698688187992661991048413991108743983440206374787576361102734274749281517318510181332828995342083048199191021262912771342724297215587875760093539813298106897265087799375293726858649662823954550726318955450610941779499436264120229266888215639432454128626920789628734434295524369764523784666920086976525601765484236948772549707506333649233827300168963957830619088396791231152658404480137624770484790419524542893188641146443661221239376754590350845380370180192828647666114763165576936470416028022479374918341999258807523020341446308941709698074825185500662324630709827733969899373448862892079123025378169528589919009177081205446009412714077488185977193706305743927400058477807661754586687324743442593225382036000882795056625271124054283403477275091046493575501082737291872458443235323607475183765437773103034143190837825935187849702002015540087824182684426475985371744333089545566126829513361524583890769275081529441858866057186227841853696358592982562783764887933304236654807666221381823999610096895534196581479765859883249759798618745518692959049485103294888228249703511634928006455271013585143239428171651684179338045509857307199434744951719935925441621431882753772707117358985497316373794470757244591222538092240690955569916889161744084102058760271549002860671181483677599171160265152840712313580079101055998936451553711755559123881640240586298098714840444021874346003440274453156744555654894069621163426645654659363987536635060173854373911622253330248780725227476648343840804942584794181923011131782361283775904399576130188380014221127646052772203154806161815981512223330212887095077681086413052004126241890996564416096675057315430699170775655365797491102579206518799123224042081074821884776561161296882566475409388427412368261848530935266350496119383194536014126128005490106869739801095153795247124435454777003870378325912874130475645294625872173632222803780830154437275071951047771481036552582890833489029545086244785849582098157003308926499387403462234161860954809402197858798548819291608821930506706560007953119597753152917968927485497231975430746148750061509475872095251376767706900970662631779170833160805153113831385889320169454636308650582115426759733808101736518687508795185386538116828222087771569081368283186061278900812355570255345862530608877963945737336939506605587523622390205063889160728146127052243286294377635929443253531998461566180695155210806744625425959413474561248113262637614363064096575049118888859142622375975895075599975565400837435259526868525079566183612226954670991334211522244807535736470082364084944747506509811411393851234590745986935468641168026059794885843099166938770347819176654167776024088170444224023820488403320401031683605600597435957239880498683779659377488671953828481538294483297158659666060389049967336618979682847457770230304591007854966847285336138478496984945499843296472080519966449169255369177185822962420019113214761864567213514039864894338331471676875714149170327668367048381308046826043301916354983069269487877143154036961039123487976340136822110341501757964816451076994293669257594723324715740882402927232222044419153578274325225726411175627244351263547179945836605156362670884264580114283639676159245747922139148625268274162022509927284110757200420058427155592199846587942167787046811136947970413443213110661481009401298682411526002035505122107994328904900962776999513384975355966984926568950034124328104342989029225118059526745830923776579627034990914601400452646462526456831913681413577710421290751530218823770997121696236417131811069430805677190849227748321923370641963957842008026921955631200980652054703928019718391367208364298243229542516638184746242922798710774771267069746750865609217638639402227312835821471101408658890036839158144091523811675215236856364895458536032462484564758410197313692124805185828411171923548193704174320909418664128664732576876315645062205575471673503097919317604090984582854198699185435252216525016040639395676658492241136678842602746670256601659974575817555976376473681450945036675134663864158495823082481595339200351369662338897172151010520025490724398462831155811020389098046202156964068214667219040009404423582347297576714807441122329386869505094724525063265765038430294305707729918560179297172354000776911473871012415257270547853136801162998186591994329411092274953542643376267260639311992569692645035154501495079709475223252228468306006573693193455042868239129674892150919897608171254474171127729230809790451290451843631834864039972721026889243555267771291887768262236987871477651472783916843398526826834323684015747623116625159053776467197954375060125569152116136700435439308080520576168616667672318701180002298861358710908166500442239431459812099945848289659209240515453548188576508653844638198543132971985448826285040601094579957457085684395199484018705740483282759159553231655734368158527685078603896319221689475875395996333684952617394456920778651194447516856542978507419679461146427746433120993189950450459932581712196963749784749798218864686195286477873229686612114118748528979728576368038836601632681988560574254150670465044700076586397143875534553178491991892136709709331990711665870184397495620091273605769194752717467326185260095348389345781065776222448453201031947936590151254985933249541258446014358028869396530906400233334396235211429724710452359282287859001552426724321808890386030641893101698357453360715078610561508698126777793639268492264129711930352004761380412206435912978597188234334037833851680644556098505377257813332890829400213582541159281731147856771440139983714863113454233974448071944302389887413361451265039136173813180904350902189513440418853115490088285066331700377494019943644579380649243875876311268034712123516782615136227774244190079561435820840677673002521502142877450410080317323508559645734433522970451070375205140606502626226444956420938164762931665217356382519283720923029399939142232362819997079933650249141108350155206326099776723643044204722214968749684462324738006915639025353469080200169984587262019622818454539995798551763653159264745679933769205309562493015653629963556712603288517635586960493698528218179397130215175146495595211440356049038544737067053542142923038994571289878183647028864154604920621224137734790753804429049295869449596872649335245883787481762978387794953091486239639900115414622558281416350188918105156068664920989253849203082540820740308428165743067364374866497533458266219254852382668306549571556489169218654520551996801536185269613238889492498433500842970777420147091088600690915299242794056139050204038187870005393736273808130211747902941997935741409160806769625842713896758056307000398828892564821361228305428854907447151102654691246389719922978868985481645562586393598179386378935369838477350668330360768105934621586765675125135150303856738476860732292199655846472112838465463121643780973531489009639423833033270567893433601827065915719560287510051337400682371740157267115332844973537381905123347778862112906934493629927248866876584329806752648848216105420448757617995164099345234209933647868771149404576396962102165815498196957209864041300372853242090808314946556243231359845801951697509348697681316816263936267965229056052375672942294330145661460274799556539441053876550637256688093069163841122433986156965975108606255824993823182172475157356661537850735925857157537915074432129861143193421879133155979754533859866408602150122229698194850133353036219691574698333560853187293878269805855524480027150447438852279094909787086590348332311361601358089039635511432999502316622268435884863435139188210785139540797350920612479036729639453790929113656805746747360161325629681768471416559802625721420125103691022091044456232585795042608118981833869075533876667133725930072269952546865583350775953209644297290590980062741504919412214923317772798785337331777910546986198147402777824721082636133508037198354483455132559960444741964773652499549765472896490576942862141248671057971215606965738142783771102508794417355360719371570501842634507813505737966879756221956487990229265933279542854845615613928297422323662889252395739472249183233287676256582881547122095137078294637329110328135456577100871595257536083583629686805250712479973733566502933702693157554698756605620527333594400585403663360862657658215431238109023626814368159295942147701223746936245808916028722037697933678673186158714466880002294094837030513110185805279938899086028247256580703670960381192428529270049402148829664168580499601016705210369412805555233910756027861284857451583607753634517947964142922590307056794472785163259886060424989245850767070226438440040151436237852068712742519960999373585273864153174051389406202762871510853453726011112316298612277148350420236957170001614303427644471309240566105272480342137275054771790970577768061837244835103154614632161417010284451101307631315533994828395411058381684794015012780886801512738891552290672685410600026625150228036312434300840776949948079495790417432369768897305651183097422500996119730702111928706759727549934682709543237535783756898418209347705865554051496665776851848536819228734192446806325945831359367361693241098945016143628175665746115457067391293756699638521550410268038400586195143392251283529635497021346565695979203567959601317889070613163238223684081073166059784528644679037889407162495756098911239657846890826712075519216057356852189298472707968261281585507032401326967130442391220937855756347116499264178114039312546001756503106376286529546486617473669847149920988052581551801047251885374451282092500781729710401613770013367890386608819355856231664884610330900214215707353495232545429906971013359244905745687448669063795435149456473730946101522378043362817743749597371763384914362149917227088681853070867296270155131861762659381001568007372834444895194035513109407529549040893169675666098471106853534157570976101616022891575578963956565921990896398839425140676005497067765564395876335641895177023477482251742203761485468444453985366941218151174551222212175246345617967995907538385077129403259336725258967117118424986263531175997712514971944498075115569620114702084557174853946693202231129938622799921031673613353970066529245983649990144658458547484088777671959177979500493758732903951454909348097276972681255003299745791950815642553073170700155405205788779774305723080691477367037954255322849368528376656751008261851605549765383890974177957432351430399387754983351075499293701230285944647134881108982101935685861227519314589039231884827812368760044853745998835268775171603102985657646366840932573684861544976687155714513417186583066028705199643463720460557066390908961507820938761068592807623341878316097685402279322685544544096895941143871167207297678079866726930736024274213138686445494407828923425536895362077518337985277781974156423785211727853385669666648634978196077635456350551338977484499095724209215052074169394299507781156726142930992657022784987686296108685567628562222018083659517202797796302158427512809865144297419364103835077720636006028772231560846977791128173468341456709465858868233531093720281929461341665964371694156834421170703654417590812304731290071752144303250089267291260789196576198687344273941004635832317900889804500238178935832159804534563083521083464920114931318215796682059209166352184300830160748945576562094967918038935749826902026170866098908975353327674300527914303679794969688678299768454006037369451005040393408217055990841315706849892469616547866173030153596764689635903935348230453776659852514533480874072008645349694360993509801282654768674836362652989410402636986040603321428180071931310922886258871963952544647582082610240887093353080702647281817933720375895480523736829969020609560469968183789146353224672380333517478460482567884568430400285765137616578636211943099575253159777898248218414195243443063565162309308921887783637645271709850706792328791229693275385837358832523813757820715560292537385740225163197364423370676007382197065330156892340466436244964658800802614900854160653842870688938963049614773940892922755855573038618565934908834853699629179225824721569389968989640033681290987125243628493754117304956528862407978813256230159183027646133636832665196116235962075072781262521255166089092897354471313184410499375679913581510114200171840656378417372974902629697730658195631373486925016540531391279749670253272888098121045301831124366054344305706668233372605159475750782832479789328278768367060522957262587477322662710051191018534212588548051571559343628229371924276932434156463974322446890257178426484196359106894161848449039765998188048613515111012573819867544474951476741700700630988606638016235275409824255781109017041905059011911475061949529154245698975023974622644395333154523448930767293207925210952849710867456284300100668029561165718146665778267067379516573430927330974982200953973344513664940904278850651467665737941539583340866170001155879546305573313441117864191703595613883203793979026914232121102018616471768364872564908094799269885574068943628684985909436977791121644803706791441839178931393143417395449808677933298626299787849289238248468929749948429644389949161118845219493024500649443184264142417517027437406907569665525943711877893334499825783512490329944025773437656099515131963096785747298176161503554607250627003530727169092801133811755718573011184925233031272511610387803177257588959132473578507161172638181550816543160791773628300725559222200919132878741321319498163328680825335078259677942724892193560646770839131502671007121962029365854578393616335315644057416194130892104887649363167817351616372793365269586991152310402319766949790990231532657982575670157210106064495605401642090204179315576935329838354406596758888763159017713354278908056484693734812572213206265500690958998679465669325052685139963364418199323153342203475667618385934587205435096037952165151162524873662315769077024666599323097571208977206027989738306113735044845730072397871908746737270428122909990060843265244765000068584033871709199028603789433407734290346111620694675646003593594559250558473311268294045107504981063110372182911049643755295942566413405037449033073056287289292404394652282676205492252417715923670419048941363124115049102381859672455568821310638260585373302907251266100097225243191368945425822521213862556949227805989651454648148980101960397119787653216362309467267215632292212382719873849726199666801134665177377771293672931496210964712599699054837132804915659038415376637360346490016314837976653486727477877050967454623383764585832070599375846733775586348635069841670233219390170432554447942474065515482831818213541373346677078761625587594580409390539177210144472664441808250274461515671268207022826228578450431698705563586727631562672517513990416795005936616850467066860427846867673979387866633609195276380875953767834333069222849811404850911730638329255744363449042487398734981967065841378656945071902850525791213242543091506580565745330532114853889198812581693326865737650325682786344855124435638098400895839206251465917128045975912879608343631277307997914703683617587658838596853673820935854536601583715184099704401248535458543455826281427913481442821259125800869223040128853336037573141311247128318457917066945354591790599068032357322429556911770147921824988272654188902533008230705948042510592069149999736719350244616657763186487411227935236217167286305652042705178701465547131123569462104068193519303893733513884023760618448937615332345762049980767133161918156033158272806270366377645558143238826986495435322840445921274451678804538834682277572738493307500406176332552817077570031112792038226779014432228233106543542715023896564041156517131346153382534479285847490739548842168753881300642502438246726058687212135902805981162047358558547688836895453849040726153084781583905351818455545462495747295406813577032280415887000963304539706063111417097621948685203487472089830164900506233426949834746288911469279066740995142289942715587424262020111547859293932847635869058290614382163854252966219894829016722797724372489556839742558599925095758315075900888795366228409911141868706118796091834031619056542728452198496126221065298474313479088443148889768705825103285745176156004063471817566044710802290237250468247039116989158774142251383263984939661251914459749925798842030525938218882555666728271096119724236965204590175513630334292983561826512152188418178417764705577103036879607901299575290900711016762488862869692309313273382723606430945762573703242273735506249452098825389200139588725301384819148481511511153581147366352286494323256636677041737043762642580165995663016025841709631426711434601511206945940420888429828851107165469427691916371855080175571376225727996754672309467529399317237450866810990047839345414341169988098303429049798855898782159180923719978750821347940766992162744121323512713939043583705505687284652623146943774317264958191468856226088397231847455921996002561927972205347593742993736326194721509408107745691293168082898365412330195768154855057548915963648511173212481566843510102683264598360968292700597032434704930790853235599338197761003793825589619978180834742137547112108597058547283665566279944067930584815056163996038741678846896801958280564773715047089578219105839917392249484759589901262987132524408150476024914251170283704092424998440119466376034868105819745698085126615802741336705971700456814213254889268375713686164496999062166163610302595004589518382817830573693892276360448915042501415743636448026283736957387785490395974749884646669536730183149929711943748239302871604620795790459361804606841989274490672129255955674220218335238012754361054081767345152780064545950390042430751714146547974249412136478675690182675470537133113104156070578059580811849767860392379916994562247678932985926939441653430586946675632674000322062454753456001519885540993143798979419286837712663983176615274596609222411773357776554159964931974406394667068648212792541246098174879519018020596174732539763724751827633167296771318441912858552913607736825669539226515903421286324507528066607554696566983172622380606664403651563571621881321800803309991027972559380173313016111976876241264029500818283165996058155964346666687178512465309732334014839441848659679095300630496636866968822334343573419193043065836641253315841606474282394905734759989608548689120252690659785717225099671822669944994770712556857918060284156249231413208289438765310131374499164167899920289559978419076032329924955568203866974797538049416853919190868159268986685145420576488011912141322775650301026891971044152433021056703401134713750319632580160795659383499343894509951553569981483438108247373023506223819264489063043740334477918226820889573254417781985489394687272760813984439439487201422392887232092628014777757987830596138926639811025742521731001450125404267774581457110362450313956722710574830915431708296129010024065157220673380776147865513451746176559754233995922241969545245452606509145539381596101700098926298897320452607246233468382581320647948465859883015670748066137313724977952100369620102003955646210001418549374473880061628344716098850696546240807540534277555352695912465931686073160504442704751613540415155737392421706952267519971674384877833616644702298782318059780580584139141200289141046755186511624880248551815529695070080321932480733027668879912169970428558058202666672134844485522253238335315724501990705046003316127615288191922331704738933478013803084964950852657714324651950336485401282868177526216232874762874921683257319642627000644297344652077887757329599602307005039427797428281388624583833808095232766505737666619917644038458969912967345062679364824726152141593613314237901295530055503464404014054132274180615380924330428626867943935182360928689896657194479523274114605759886231921604904802571860610998478502556066209646905028441018758031411679714148324916317481912235645424857210611110588129977638176452685704046492946668005917272055810141014222869770748547159613366932059528459680591766329187086887136309775732195903811170290538903642450950391127464847504360221097245883412499802960892311733466437450426054465000682820060898784672923818213371276056467891945460218316054502917061556059181046310927663318561413125560619866329855942741788993796886592197220805291009044857013927466025631526349940350043529183553362049175725144326035936702407124408973566542651832408060661133400413647845119168152951864055367169861677565352711677717538510582751000590283256644398892650452497948148149396140177668681592225026169998554573861884846990529174607932833349340530624761767807477578798158549827371479859946220133275969235726028056837127453318028802544447525376654545635418233891090179903675117630618209784863562944530705208948670356860587117431923875763440440935679478493085672241675116923655896198516724607115014988659709864934963385624617934859141078077530388079661201815465662008923017752018600840020458876828670358774157973034843017731068520223451700659325770721911788119461718651432051583692773239046239097064656400137225912114647138198734990653819926655281946086679826142801741272316405653253920753933395616065236691813625894191832484411463692580898012310461318670479613755042900994699383953510414415793750973445765801156648798862105848757757975382626135104596452539518173700779223826793311509700651161259645925987558499679173266662941041628303698368636873226008002723099663767235362865778180428090717400753122945134992423456381869315355375031184216688206416360810737841459579487400031302736127604468858287094241802590908468132636506564347911593525345126025486031711587535255615864325116074353386119233429613289122344781432450979438107685406150977585831097926811765315304407580103306158686154992125588691999514829915363627755501779242880238660844834989308708163240868107017317046992867178482984420467045102877280992846172253621230072796787696049633387669265850607695687518702315341840024689980934993022803098266109498939429885303563473811082595901694231082285339087137744909381930569978621121484356057342480953086593315249971002051384482648223208222425893251620993209444566143665408862679867110220495627071778703061490367957071184018640065350312938414294953839984582063209765037251017742761529458674503645849557268613616498646770928638925630634115943175489744601761366980209361438042446640039525977761415113726732254511554230936345784665779177116010849344963728763680318834327112114185417968984583597338169113324011106407203685269028464433088043217133389097412017687665466498758785291311667095363430857165814922032531944125776027863814003653267613385077186830900772738033844433600944393319977485406780995490293542223954201971783705104798468626618503505958157970743744428604957384857113514857814325527382932453683270789056068530430270336710515070084317869137336465829660449621370490281018629999305124017414336665193494760153064105865499949052442933222484838662771506906570738102385869484079073201354191965537997902307491672995217018802868415163982110254952313674302535170915606286624854032262172931935049951735349448115425627086705682150558063018779768686100896651178558555516245512528017944259173505013011663433923532811293688723525676087956700664497763569244514651788713142468763569100996124682083650881661013084778221026355675098846362316268237069303154565476657340285297158017349593682550654610333063200443471682172760518867202147233202180736042649754027852762371114276877659861176967225660073968035799304949447137525143794313172937203052557345771285932310384291830325428020052526611322641042227865586867887373967439435657562175409911571811962786569304253144874810858518435172853352370551210075149426695222042218877331559199208200824203998657851459746852640328146001908733603443355707089391574536299865224764906435001898347981838480962743333945734566048695215055836803566985947893926874720370667979380249991384127446943488265400656518739963804117498672528512354432870129759814956722576323291124903848594092661499741784172730325131512830733190500841625608515175717066525658465145367222393724589530768654540010829019032879495064260016673876173843871231392172417425384247070319119486736926909166251220855802117073216420969510965008625545813927633695731413685554064779005147530401043649371119609775160483631904273366765571548847472166346605852458114320854317437480792227730496951701085222678174352574722288159387160009384944963730160683430783766686555446253102366233264643806604896575103374158421102275447165597006759309992659172454844098933927649355086811480273458994597826453750687487316283788857913219866954309122068571471136023610977424293062877256849348583707522979953203629804806832667070306890072517309725829883438257617096246407310931378352850102359307074947475609574471674675402886582834767274759308587107275356418960182003786011973236832194964038967969548513194905960266409730051884356906806193905769793638773688907503273117883093291824137376839830020427829938343534667558097878132056863804064233024323257166017627782397871724552427296832986013902789344264192674592678345414488994589474062496479976185065585412988224079233311456948150493805610145681385558012145768004274535416738263778751704558062621433588881883819344898176371950152372202973662087213329217510601283802244869942913557184328816056540383355250980867549009381233654965094826845195109811595610792810436553808694884450463229446916858719605122910226362953018020550899542081912171048049841173819497104337184879317358289559713370428527702945927428475506477641751465730327425134848853206637320500664636668818225610748253930544128532334575311478983095718643743679967292177539434740498962118260034825894187138956005104838278907124109066595959105670074301268339311173660238416672127689468575834929047576154557643038243516066481577065969962466777894795977728633575771882148617230331253329324416729675712597653737396709792175525341760799368852572404657146526143770962603715391607336139882427659713131848239386413766667224847793161776976285333811189136674937487393360805119373729692304715824192061622769264287255540045656442686378401749855580023988730018519115407174365412952665783064591924371597755435804152371283926406005402016933659593044617986669567988405900030360901917834868125841881319584966248404879614025419626928607136942192181714904107207216417875421514405226151921185552849209771969237119146485598926379663319024350676791437829764056910032968848471172341027894794890458176270900827716466334143998577935866038902896462167970232684931787988529403003432640571813966681750473227994742350088946050848090504074456909023927154864525212913130680436957337389861439712878230896221085216134758223069249431651753350784501164196736118307353711531195062657647631766669650426338567155092158293566805967794700594353884869124205729202523031973260616309085749283583760590252186544587331858686712498771656911050408069427391470568705845186141647181172264356536712624177425809208606173913860889903078807188414661560912031646886624751699711183906414196950721970600664841858694777417263161118991440064216027002995895488555311880667675331546480471750681706985339707401260787883711673895764276923906348763798859357949944051463705226862312468930242170193151904996551754856691810231674316236970263746838546171138841439205432099030357149402453231267278898741656015953701285136303444704005627162908152958934096302621422706221294021041429020458602553805351721309453466452002001488426811973273990597491176391717426937937818471988410336903485830653911433576912479270867299670329004443459605752599144515792064895809625905978912121488277425030564480588159981464153729804376204270208162756791855106387067077254189747197749274058511447576217562503321774750162704093450698493049971642034101504654751609099394876242125085907048638327192735072519639014276895401557519509301812823333053771984985814970903341429419485985728232070906132074449452999364518774857582917147252890295067793508833737521740721470462014643997681119459650653441451692196989970558745659588722511846220307602751506716565045428180453506786510280502208191535988595274987367816469653010018325464863862770339208575229750427064112952251954008690979777258673618810767387769902464332834202332029327674828729554591410120090273600591324538433993608554239067454356340298346423854405472100818669734519910064944177457680232507991767379300634250984372882613852979244981503723827892348365531876710406176073571407193086289341646872904596116545315584344147851559017616835081634527867753882042157533536185282685641356670251533783957574002244711329935123034405662748508233050978712434465683275745796966601093907603617886054456198233861500627462261118471498025202629488353124288425902962613709798188845482464519160427776021406175796145050411109850807657661794746520422239565726064223914550681174333011226104146922370406375513456123955493142076091652214047705933887231502725665187890263737613636990077894102158383470165993094594722237518422888719160050549083080886795851005388803951801675534112864620699849663953913762879931528338155634767376413443897437298768311900521817852487341547618957209253808215383257676403936946842383692942153959462007529793273818465276357633432854398158149425568659710998971579334091456879853112999126591883767525580628487082442020095843219573543094367430845427629864782897507592671550731688673852334465668001921488496077955324262589646318572607379964135677202183684559419697793698868863317707376755935408784775233248013245747712391936162419517777449356077289374621064550357796814821798241852694578836183031385464550072273244259678029804286820517808994618303689511748365440277682258174412897189758887174593288885175584704335761593839392576892506436272389425666884313654212180208252223003451948748862464861264068455409038453258374135037482545225195642813193287579454451525945005296200602511272475415773203993738611259084887244806976135497033792405328664723971805078413794353693671134361829609017199286623110042783575624298653091045280098392788263168618597948470872609957412634506099922811489401072782336308700805557149947997821374500837354319515295119393181337248943921196219570438407437741492214799029798618601530412782531052634275544396482716873847883849220754567211051925420289237907998394909748917235563208903416090023668298456122688002851909868549966835164713342496477747568244861062124111717913464806803766989307490999804065097188987527362773195032252758442192101602165487001220919542592766931705655034892525781949869354570071274713233132555602689388387971038879864915676022431324410839841525246047978750631978814563231850828502475627681162429212679582533650717037294165646761389477207562649167414872530473430472725776074645441391877587846633032858889498478252878475206073437974085478267185145376325323771394378294170674406929833414636404084852449246683279996437674511457266151603382059085002514241408510098625882677820942518217795730240836534472036349884397016646551096398649602468501836265832096485060604213974976251288471663491918726921956727523156940871806449217572911042010045116698039847186631492338420611582566806211559093756150000668178838192888245667608281879208841244093198934111143537267420326135107631371631335292519921086139612708436915221256729945380779202029751147940358006051338557724293023714569311539694345129095674442133201249744257577359661006074425993279436689227831071143437865782898772241805220241301942618631431935992129057633613910530608645756307576166085097671319910481160916867181125090052981424743176298611583299588002539624731424262582488215485808712917363847773551841173519388782567063576332672574284795510526868431420636682468803087627841762635157158047909322790354948493657317945810541051967197162072362601500664074279643023678186804937937915651879171171686724143510266961399301068106938629795605879258149553533312140810631450265930741181569266102761209085868458321239386177694131814108507072263069183621680468996633113175916788129610532451530022160036137822705918725853511421461974547642405508356088416977484493044137610675444887435086741801817130812489779640076219702299982843440118187408144851407218790963716791848996236741590438883227004234592559496039664176135716963787079681862389679776031806846795868501263690475004732556930181267934890996064664319064048949917267059079500860939123174739982167151623775658926118722334815703094722061542783446174657441240558831560229383187173917949902312137717578022606429275152032921312187771654445330624393432130347527915310138508430632864354273276592650518705695600103079134922938708699820954931482148225304567986792908795726866951276214327080774209525388417417757627645356113289794941851518747325780995070076719635963148860328782133858941721268049066622174878953986056441208279050004394266592260041273580305195724907436360689058519031975824285418062532126038678502241641413850242543656082404708059142674417133420367918400903065692953603838148757419048076303701780698447743890514130142790558694153490714079832941990094677268691654867269147305282543929370698440526096516599154162379755430324542048841170659949221740113087708517292158712805591881531354434651515743394878937379738123186210525170098087587856770695196912225669209152039971935554488916046371825667766680442718047145593156987824364635059595972501066926829887605551256486001783515228213698307153201279973706449147483927151594204533928180729160954169995136146364729953348667161839799156872948768216591131076175976560814060462065500919983948751365211453800913653489733272754416643908511774501674180082866834238997792401791925398516360509346466570801843746019892685779328594807122018160447109773072223966038694896453428107890988956995945043825292034069901514594041573291504340257594888164157310336469253148067416332825650268685495390662396485743450015940979053397021040416053616731111744726736697305962604960663364214302840513535662652703431617462018880059036347777177500453050998980574191842832580224486427882705572780467058575690390771806761526338528548206465038891811454209584005722436513460029996222962642194091730142602309615840684218166929181838081740565246603631679374878636234497854540927623515487069905772047339661505321792920951845526616144052225841234225654602590420534385947560024091529114239399925476453669659537776787282040096367122385917139697832517495920590395881464272168367342880653266257215969625670011087648819472819545791674904991806890111028285093467017991088938590841754264674092282526210640997421209463663941585656339203243904520930110267723007380599051427855780733645564345719605650693491446766541116582364412306252639521159365624837186535825269571080964516627607680970187413574857403761016679492360882942891952256199374764028649654151673526792507036328542044010797758146905621099044757963087700648329563332994146626861452872615989944167423631987655774769343911075911667973424807094310438829710530096192749343398680234383513095510379259051427430673910079869814460733648090556798952962950253836891166366088422872602262279582260989929694710592176569707227407690275557124503022346983425180215914815383802255517597225771712916146547184013222574154573205708227333230653059455916647306787033432231881248651779072101777680996087316768643191692310518908736912320322150320527868356860499261571989018644915772516822661589972666936584338827600154395564713378978883627737088756895782009463605218105694898676139729682285190658084144653870466057744959898544652157664858025210675707976607752168947832731391041461895699946610307048760799834869185785386924019534293472268221599806059576299178617485753061525503261451194081908826456147344947302291828606898189679028613065370449549223972010694621409951591854532403620653900674551938142704177824429679004834274869573319509085567072922176649274259589991550692386550556681463420410987127060629420850668866935054514245285691965008130060302472993411190481177067387933165741867953673222672186318140765903296409028422075811686980600685774225909945178448998780853521372765237069905501127613512940708913006057237740442824621065227048520596595315021472468611863092082048365250616746219074804464773130844061167747390736172099820143703370382769663033440862927525075360406945545394237172981412009247816604872876375126453946914102850429613509736894843028734127294254189549743245570384649946350414018968721450067908292892203534725843738166133977247920299181244628622697757160320556661728812217242747023171191478350616307996293145425291478900552668684440002217095177559932673254130756489174273289034553238381162379402902206595236274572204252584421003530192381990698250539232316609052238479511042833518233525559131327367710786023210854655541613477607735479387857079068865364104220957309977682846829943040196348620339142911331243886446565532189007043964146051359362874479387656469459757587657157429994677830928075082100551166817597379190742375227202703840792313089244573379435704137874763231239719841313418555195608926856215000890731718471408570626107003385886511723927509443834512208864363321586704257991930954823309765124021492774652181974864103190385851641660555411325082480647347624161959268946881854302026081883258694800379792906252781363954584252003711420674902094664320597537540776295839631238142507247248483310555936012700686551462799410883588984351443553357711497377127988550671452429397727105682128581255140243930543144190293122021107091253634459980967502232911890313593848468021936963337891140672637771963934682627288186563379849676200038443634599481341806625699233801275830641023714871768579397253209815150727776686514675250520407325527807947688177305842889265065218184752060965378158290771971466994611308361626162080338058717413776345525716198590068291922695867016114033924734880670275490358707375461362449589260243259192191681792226604243226499497639220418902850271319819919439345155279169788075128646920963597990876549321356651797939256254974659320738753136869880543295258880560709164858512728516848979701401346373960425279778609468761543220346471237088202902214056245092458941017144557499036187417149776486357731834515827791484103500263053525482368036749941593384536597498416879204124807546583665991988093613858051024550249217496140126657944574794848817907551813836463869025821434663122718358028375521718145427164377610455751859805058258388902268662953780279107183794720678746829522156492165529351521250997766414698300051726542815604960785564015883941360169335264027788132737628106480880724847741669950180479923026139225406396292718118504347770028828700637632865666099056055854051966225551014458102300342895259201261910341088173725327652114807801332028530228896550815629240416635660379221001313138520192514662782282848382937818474748895694188468911694730442130334285862594134454139863983377096485367631004002362178525479669104886727756097160088936793635541864285577501652217997979833715770871419166813215874010211841593786816416439789438450800455662632765885287642151245713634805435438238533715385331871686006245425026253601278179733689256666097268051144850378320493219819764468631780565441149553206175021766390450984076817729386547776134032186045060922656598958261842351602816462239572766880995712050975683141883166339692485846634051491387302208538975570616364314650090615027530700684463589936218561845196537066808640149231174180732208698104048861462842785720065037145728045325726107298902416147056154674105389888344195497004302402217096691170016814474453675324833206165327553214795020155113591016640792686069503579306711735081107937945669828446227284363497107277710219025108242115332362373526432976500504491671081399468243343187827929665792216585607758040313467045202260672813581882354335968346623934464764169908426624937969615945734174705617371726836520019481688209233800368155262470854415667062061916999029336634580000398627224351971378744260749016876723986512998942126669852270551398133767992628180010688165119807778071538825817820555644879828040454253399704827831278911849135665995002490488733124658514285810978390265460145793737341619848996573932017899835264494339673387207461787619196177942108963479531268945429270536248733304316752535054298108286665758467314732021412840993666297286440893135999512154225773270333539906628868799026617500685584393254122683816368638946171780500567888450681750602925040981599562059075743727252755029962681198878032355433017361722557513793327537869332798792783042888674371377362414950912884478327895677943483169184918284082936324686127168090887746211305481823230557401754381194820675975067876600014020962672282278984306843758988846467419198496042115273414507919551223045089932164331706448780843514470821730546478761711767304009779037421676018008554891418208498241064918590025793947810805672859862091359047803863484607670890976299290760646412796395379331852140142368015275094541350761238690757147601052644020213089612833199428045924476616010249103763629476451084280785403787818048757668261031666574583440650013030995048968503913372342560859193375981448688148840185637770442091415271488571151050070629207258804780197717787299792236381520698363210259630071432966769361477720379620598811399610499789507421465479852504375994635898044627458344854540054168567158032108545764707880331700302596426718296854138014167557658192175109966866349946199635844924669086950739083979013697988548998276040074031828903120255866234304775158678169456715042538672907569335537387822929039139273987411791376837320150663217834966606329594680592778430463017445850684843046700054301608282357195332890445151083128257134970296066427060515664034811925607168656155935176562580038165523960116896716739921909484403118463759888977953089877573949275310999879843794814651694992449835913397903873860485748884592709293142532473960329189287463593878328931996098382264447600758068704811951570638784752954787948845403172311750552750659780149374146494296179188408278526805734408397865005871907196754367135772949227264810198282937654741133372541898803468777345809477354248146595828006973618536688464982783946725662118503196280511635718459176476449581631518839244618315506137613680387182967532981510241099191428503502258735129083573413195140262672743901142592928742942887111323008062320345547526432091862456863510534063861643907204340818567794398907153004843930304502061303143729898525593225667908608627317980017794010422715707748626956347379027481957057150442353063630185622640865770886272043443951996187196129215943703164351909864707299551264363252402624305731835550060702850004578683167451324800450349140054160681978881307764763972909925930561861600387844066256437666308258487383904697565050505443963209987639002569390846741457067583453538855088539505360126431381915861119652889350569626441529776608405602639939958512283429423280098495283692911147322699406303425860105668535382646146847130467126359231652969812816182560894408967058343726749631109189970756166963125111312385134119618310898903947193820719114320008805548060583892608590049402864599201134266674564175093123754619032505699675064308334067222513387745871212232995936109358265109693321687193651354711571701070940020719895882574820187515351678146673682573788581431395317460732011344651315144871142571496919767178220764069524760541752651434729962770082696077658002429993949366482599048267828673580724871278676958169985556276591494966054773361888700516982812222419987471511367924101812444640571767090183481876578459385521029685562399149213041712683466008491005653050474719130712056081625774336808715992692418630676551622785793918637632092768550888110867802475250954716121793394460064691801235114657761527339730848501551857755937537198254436599549692439772073293651252238956435332698847856998151304009509040728694412853591880666720318285227789104362372339536587608373991466190884460183237380232604109603895207746126857415870680745169792835220551432101963881965864247525392099176903724676671497382331807881561092819338557336320252721360622133223326406894785668861086785241123439802775494775790395388280585988582583868247827203829213152096255565874064373778082121479567161778531964327043838796943435317314258588344205617621899065087132891133498152886825314811681560038187860157883903924960393818194406959546076520102027203873432537815931456434818822149592609190637536101156172414005660913266797977794601489113100092430283463224343346208924170258845177469692554922723913790877199989233025351056681929620223810241562316293761160444463095526141037159456496442293999924001386961293539299108681116187425114316779535034752923994727683261793766611150115393601057404806363992070248577704580510361420358823933168654236328379905259734100828380087424104887600571542747104517749847726516390085402552354057788414794813627118195338758999770969312743668176447403501550964854761864340136192955219769257369482333085190240002547905830894709512836621457758364915204903889193911580893675034557559224618963934339794914250238207708442603368469619685361913144221535465932742091286794195076048185644042230714925873270525143213919996833408121642017255842084652379878697447524832321752453188924911279629377214262014879328679126113735499150563921867892757598914828978212035954783982730466435899633000611662977228235094980667588580621221073349407045591369624002877055620282095883259418354125355787950265529595263236780047868931360141755817174776429689144689435343277319990256581845859267358289252831427206655226203958586666906662671263987956444303353519046587282747533271463163418886524960167404137237523824504965060748869884297379827648044752692321188383231501912945050462493238475838524556756034636792183914271618607106572560170701546989619782143330602654195062234852878591939338575495491270829242610011973828408448577698547429327523165036572203853006319741781211596056739541907918732028844290514508338573175010288372145088853995593051407091037450133003970211332691855694205777008764673525652581991020927413334048923725201035346125601807706507871081027543201351744139338639084237857819848959585359358738979433582556304581116948653902364031961548899841807063184495090282162177074495723207906514636067143982244752388297831880332459217036339721040863035736501711375714911121026227553939420178534963458523228343167678955669746342088013573757648221374313558193461643127613643044400272860162164619446286838414053924173555851069642191382787652783555365917025576019134463342912259584632762947103454157977193357767754786562293163730997620679966537462558283764452665265836845932753590607201891227948098790200311709332774340910661071387918200591583312776229452704667644360131677700823794376051109612396035016895098220472276202021722442598392106575292596316377544417904136022113728199213257365706670102962032308737175738395586088161954622710453563781703102422451120540424921273299981308685076357581938133369969014026663395683756172241483934737189130515913255069610511476213075362345028159396943797200216715672138611140631243943913968752434351681945124500423326396265256146519014896725974549175467448383205731162602295833561881859005191683517842321767290234732055012652184327938603903593931255564180684758511419666852934870512984824787148580736192407596450867955368043401927513887215542599203815136340945853077802811781197275592418306471382656316283071660818180373040471822141119406528619386985359301130228276650713738243079885165721569961324235437344215599172540385775305766473153875178069185883093804967672336187240604912851447508858190928408996172819280348396728516564274743893733559350979258043233626116254707113141973890021772991487123602430092620171380881142322842538349943614628348893821043721406146444136975840821106539304421873957280968953436315225446814917085590976590558962320868241679241537714594847069384574566173908051064175792800779606806176220232754850236253508915823521188036561816117302401101073807872503170585719028883844360215445084529322668008506340312321899964821832055535918539157404968147202553186138156947009092692153424366600579198212675198672998174061577925329094843796429473565773303739992857030049069177824760730127069052406539746409144892550799314123952657604219472513997070703985940557966644549640259185975638649124490091478187231144886566706486005516579741816292854632387499994554352167241686334248957430616154604666727836172322589560145759665572304237667499236862962224200164155130350057681681327871472887689195411037209343291139768832581816192208634309896912653878107138428823024304812474671006960107681708390264130917079370625323901357254519454848663721997716502888717522744601305429822251423218063233653033455083393002458153963972389995931641187477287372863152043092495504097001166541790497210552950302266251091185306944991118511428618337175729695894763821457280203100690017339959418268422422477789075191188377014362682114904185736857518294038901794665392396675506127193141162655591316823272846702114469757146593813207145852059251996622640060584055084369614095812270886757754455225659526482816186071528211256030505687096347367865607789668378197503785872721073693785013979075986671575441513744952632562164728428505649722817629197711146394043624673151356396143509428005893210388501000466415471370290664737567892746549760271262771065461434130782209159856694439050276657498600083078818826155183744628175876702285260836154013637001224085556190548858879077664758287572646182181184990300055890953791677658841465261982443261821492873556010188894642868315688061012924648842051671619790118955156576993517803838800145954028319583277970603634596223457690286220862141066060764064269005374007056337421250460525590437185744523239855340783280079929553636823104117919612956506724601218104356407369419981026259600500343934495587958989533662167725674734673302898142711065322563168219642931790784846887942860939028959437571244229577887456955713754900141352513367825616300722456423529891307330846850291807920073721100381805450318243372001070009963878306490778247613972841030668268103991698075462052745748828433181362153716982292649983731361627940996827466196543729092599527594473439478821938230799227264866798515337782144645886551512548842126218927488709339327882310488407977204612713581689550668018056194167266433297492136017471687326195538841087016087983334964965069851806352812101012055745968504876900148129631643164427974786768313147260122105260363859764798429793515650787476894220525491818699963709255020851618663781382551481071210407403628984054874687253259351361130189868093598682087162295366758847738365445342799779936270812239326232647419022818697615067170952853801783925773578184858801795185483528303221258262046152537256385857664279821062238913207638987241924688218438038685282495370829490627430653509183556494202200188717383993683222116806245224817377187164828054362012432033707699136940255429442130593365235244246495882423792117324678989706745708282032427563246391447356891903914087116390425077049215472993898013087808548969818834158488021263743474656837359304782211206350290675922984261746321092063472654551305020214699334471034114995592604292975026351979222280212602072129095396017318184026255783994136055773600900109839972756008822612810627900390473384702112895507908134848748502440442526143602041524180021743087789592604342366567623143904815409654721555997699978034127652003388126705274441412161070345562377273562719373857119306788079556380814010009279055502536035048790128133325854850844352052885803586270903462935819515181700173248575437517632466817764640134554442453133528203157097393430110851035393879126446847922665338166924193860816695591372603223966262225414199359224846211263146331112264263916682737656940764949180913338084333889888748383327023806481073923237783455170233007248200546296443816450286349336389294961448540755124589311599083354965057911509020520244777159298395215050270435986548428982676387497082472369733774165888981587099269913895672350024987160552363155064208545945472336081509269169520819440932765379029091429918876234866870452295621113281239839919238412072268321310179498632005500891246516964346661418119012875217700895724233876065032698553676564989246889768241107804297425396284659863274851727772049603583972182867902459128753506097129795667237558495230757645650614113029493265430137472569946793870384733951925023795674168926551883953084440943532434862086124625743120174035923485169810697069464418979008225666009355912470363286541253226883283831612120999588963013736308939446517202455151338077340624412529803268765191993340329411858726848868754110847016945501246001313741288028891916841022980049819679001218497849921120942127481858059108979891722280279538016769948633119729231128116321091324509341093821581302661377981262212594003584536715128050232150112030579797297425409716568559626254959207180364448496726309314975570342107655034469916676245784481265685914642318274900196187436660398589262392502525748985523339195898864084831161869938758346430258930047427858208804293777575770712921665925287823982720047936638055894159758558865650291380184842227037797417861951289943970302662408074204240115672325972017928453276756119657597731131624048208706725303777606173386507153503751752503834036545721582858333833745174723169927553408730128359289455248176930074354807017297237979699875668227846604914812609448887895555662446286392815518125282779454374241516187531619962180047080235061026236703934406365980587520260126196789270969180617771756072958314959245507423513691650706512623544414648111446959323101197934350712100712907164086018671253810260879131553704822354018671792822826004473550436765910850774750444801779162873377743350874085166893098099756837730820175853765785090336929380899625080337539646562854627514592335652776667706919807492582398059353255320532342044606937110059220680850288246333680548008295948854373032406741656084050475197271996863950232501419673757764619618638595044891178656698675463060783814734424441213984140482958551602827234838380301661816106421100677650591862587040319906236880925248262484091595787399806942960435757936573101093274125331648195028326982211493928153538442212750186356461077864386335326343557141155008158524307746282607137589069073068625827377290511832693400363391686830089437849594116501922632106478349808885998440646085312164660440955838696158866026492990298694440655002783989054387554421021747123965663152232986759536825092557133532141395777293691256084955430014770608026399971212420649194038568901091369309507676858676871298267793105489339928014853543744285937380870493878942046201413253741023581336913226876104734861540951502145493444616901195010772045778334478222625776296057864406698323501512134669761082322441099440375380411573428264425523588733112312447451406876283424834420223099779166088254772379490949514844648361765892511703658827623654794925562577823348152655991918943294452674045677344093074104201961041928588389543086218125750105828774527236980908044603325776438112425128563619216397667196365788621716775590157887793950396464601475774778740595839580362622169464733488040295232908899162463613524018863489699738098755142837416368583251465682254315483317741436674408668098195304370993847915371938408086676417674750677392923307391549187121601024561263992890694167251110074038022303100096474336167959264298044186428597536904200535338172370837848356581389167187197797542255901179097968171501252864578967112122590979489088857313572645224713644701289682051734894721411263154094358634486422952951168234034782736535838516020343874191351567109587213260937165438020010862891974614871874277132532065295597728967618990025035551650320690747055370678698146371405981558747294995535399270287309046596674346163762615812427382212734239069435333390054103411478835011739930120993395370599357807843665010845265113433101886384908736103978100721773206370659706663124871894710407571133598996058858122619798511652405912888596092431922144933770292088125177346832115010831400498634765623854812669540447261482308825717641478993904987052228435802641923326251785200122078101665940453122473901723159286227733951746061513472543353853951641971889276272830033326549651345714077348249767690239435001241054823016811922559659069031204938853897949226713662187080935636499657076421999402975572609299530173114243339929007188390342162137309112080971177746953443532517743636751797291842059289150174658580893132270778100121781090009128892641010662570305564391497907687795753077645053752525848523008535199090590567693357446546760060424812767820591290344350687531945612799735671799366323339270822164121284338132663510848241010648739662020460172178769138702166356443593299514954575122003642771964177310361030310509090198699302907349020984011445404154558198190588205371315087317971255137961439375727680303068514008235913348800705292072393306534880916792454272893039793743881526436568731643176750266541499829640913510119091850536591457126473369265730129974172048115173455894445477846618463507342869295371564956334172267270674546208973357056290638364635148593227670801308645205701874078593129127121417534297573610773443617254487003726028642458058660330099506481482554639714290312338605269399644723510962135166780060519826845560638256168760156774292842129981428051049895541360723390085518122310620250181311064237494401099935959452792299718946538204306472244133099479701867920830893900410710082137415688043554647230464812275054543208393016627372909464540478700967860794785828661808883364249245411571940729479232783147917185595061806995997115786342446216010926296679163505194350031006719109781004223817550919217319392452621039080294444007170927993539976056343635910057692685961734979394149789430464156999448140203773522641369661779797780288564998449244133977806509124092632997090167396810633366420359355521310487935948694802383220734347698552532664505573177488650431300097311013148964703741212791103164233535806559632412997681269487846557422543054778620017254694322169196580614765685265563325384105341632384163086207340152179301708895688685536903543393244800494450447945911793736337715418271310372340713989064615110882938795531148881634512848476739804826131295301854127810305987610640017969063265422999722576150970387620432194559056673685857449126686463534764914540008881879472762748494876424446687489590499907360600783328302530434908617794340556636957485306911128982731697603455084462450125190940955733868554138797756351252700273323048169579987854643949377618086130722245967541445227891457833219125984991537646371661340275425579778054040398204486712412373978715206427973242354009513607232921304629107714404433162141032775361246914148488417659603868484054810841908704147588618688929066547154969412082580105311863045280342253581715655550166127011675523965131898081187909031087825893913848120488247790365300867979149059369010387464408064579186949932945236239232106045235865762274241065653393733022245091635178004390258787161688922411755284157155287525710605364631689916389145732653467762296556545276008850391710596669654492147014468417061071304211171558689098601962388481272991991658942645121467402564826961376675172545695433041146882320200909487188451760077783371572087764592776664535115992347470081394042092596373575247348050557788573239344268496682672004702518182636258697607793089667454640657602544074029666898803100584352792020890525486391335995234518224547798003809174362881103270783084894755622666339104798011159772470516094975299612928818666116290843768245266255907800393415207596491736472318072538132085356206199810627583740418341640885506435939792532379493176515372813307757157962125054242124111825544509193096273696685243535168376119238740709485152345008104657497811463939858219240998919513819266269208165258738205117093867877496662907011812681697930017066202784687681997618813695447043145649392008784648609681502147623974026115400116901873389553050806177639729843076804896779321668593344263512604827831598644515835242049902178634090199548593757973540406554592369916096319005595511395173953058066977490745075328999689404884039971134549342174871636450470074781581618192771060570880671666094513065239108903288432814515107296696111368701256897249876179296370679323476768081508395360903790648901264242236330843332755188738258951789908375335514329657619545849255228782578446005657142472242400967806321855058722767002735616756759830154306161079412400286509178277763939944321449139028685074581719282619612312712953553355185215728319529026166356205108759538239073638736576717426694713274050080966595482733074410986961607998857057716954687917296467642393100892229333563500913185899312651273100762601851661968163007779091189009802860232138159377457944963051722547521884362846202507228755504853294989044624523342384355190269457876066565185401760795284961612581134923436706664214805442473152922624966418915480299386186193720076392636173817618630000552649306785836266460973204508418140696703497667934027522981462588376210768348759317929098684276105733425989479401948736906804073328034306349185342608056343885175694012887240395411387688944159351569789089781131769397363456362192553790932684896704898507098246988542196895757240960525319179897264955358022508479032871102339133963278495915763563228867644793160715270410636033773534236776117635683438194464518191680864593551744406069583984076048958602006616394923527333769376973049670431725694426605521052463298680688311934399195521610989711666084196603422408749965085986558733007787085003734596577532922602070314503932956784178765364664375696517810316159248478463498386555640830394869796471031215968393942732471040868496961268809970359858934148528455138290975568104733351689112994079074386316700071226946855638488833375169328825009269852420570971141739271107793538995545911977464837600551365009861242906045948624509471487384965581525481967974619419470635663866196347545706087097709259536336701435720170733535083313956210793014801870793378150524277817273758523252342895739724187783980009457689476650755976108240440534655766398255386259816649540932693961026404496511824449039825487937607738947641751794339019337457639295424734420209809812039767963079624451929158549766733431202830044273789631181017423082780301659975182967373491757917399873600299919360023676632508855123063312419785844388380915847087732447655307566406165609499597548634206330495631923637324350227423152322604458404953334084557891636609072604373038422872216970657072893035481092011882842687372177019771722909743943260586504439041956775067426900643219361003577736209392980747782396473042714876169469325396642860846310783949045935555767424009174144897272492809933302876286368576666245699004303536733300834176099385649050379641881263807760038945461896026578460758416235666968934348426113435367854190657966982671237485949521769206751481327529514246672265963508795801681080074400620933009172259294159679663656331322655027280847366259861144168930228106647802073989491696873180326228885507402312664179196256247312623985932818735275785943178999459741900505272214978666909331404975359166433683744881712665534870250611648762824959385249284506555055177894369043286881839819038248821742770415669650772307483892664225935277726717217625480138664020140407611104083999236392765392212444379210223909220999290403780492742977230715802647161596165586170289638903904940028633381725567507994066102103778952238684561440261511031199108950802209809838330230751395584616394876720078205351008923419915797573577814080510592017573628099473992876465723729597523014634596322253439762637044944826524962930970770775808126970514739228479369486295046149707155639892988067908314869133503587332581977258218346294389215859348743018990169289938974627838507512029082112406021904769940610947923565117761514581045453410107975217084224163086560097236517548960392189009416867367050247140831188637389475328928556086804013916029513832536480991858412000897757263472782767748157704535907605057445294656669210645067753931251009364061492424191716876335235515816050140463536028273188099284395561935243720026104438007386097338580501075882591906554538688395065379201095289395477862345590085147589517539250646452391805007905959778684951940073416989994444772350427780511218877034904366535882111696165534224764655738740674469949726430036516124536656684922734458543416762293999543084013214623375674778798095482365565557635272393661790708601693726421797118410582186146555997273650853271068459738009398561192503918266478441502269804488800760077626578270913605609265909851201659631586947853814799454348244763230008239997491521989356715200416686757354403962235805900292470203458907599372461491971701015548684687981717938968255410249217368425183720172424118698307470771567379259464280106923878656811390695457978587761860252138940825126016184597732987934517196258900472080948026243157361307225733965421417030637346184131978316680319928424629020970730711861502745842678183254903479933575204631421136043034918507915456829762264789248106155906753292542671790664887088675548051797900643988206212211140738359379780690191912968611792334588860643232565933395307893276724091261823827567798108183385079421423757561807347376911180462101659044422101117441535326831076986526878090990532043056138759504542343460095209719463843527227028033953688474419506068269758873217135063716052068416465116246251480642943476871176145828196513578637201374247457758366402259503341236209897436804914883436923669703239393665887083517300606845829544451087509515382170121054730828647628302965686649621624347668709320947231627166136031752364516913442872732264341501583730150565264180622459470989607931495251278158132594516597342838766107843224771957304759106271242912215276289287507415567614103681901159216363125120307472543540053877764088726809913113967806189324621132807104871422605085126001686436092676857396357429014455676495182047664750156927788574603219450506017882234866823944973740504502948458979880263685123581748523636431447538702846102516381262238774332606384325559576163264300563102018281694992724022367634751988339292787493301254537763611129394366498988537182829463535627826122782773842516634079305026714843929194753650150343704353342328622891276349856274343339956854557671694263313541384177591605486621275667096711807373954372363945268178470050762209488773920566410282195300525163108715748478002795637834537764419987885159029425502213933729049730203335748247457776247807515378084776681324386098638002150518111776914923097493405788146517214868105013095781248156376913204982590582481403348448352302963133389393957502667243917749222668932304856756431723193657063170400947892456686160146970217539358548163038565318365428906021675343150812064600088212414351907482355011343354954902236484913662198019943616088942913669201452059154558841790501922793307308640130126772476312941279384442435880311617820235965760296184281116763713329960723663634377793684106434570754361516391026502168854417863535209375563377589916154229554326769387896992648141629548663349250848921375183960214227284917442006681408201935645653306429594334213676580323314785595664116554837286475135577881262922272055935492554341365452495382617998455444562224773165498834661734605757374888165426964113339972064967604951902377054607886202638208788149478465510983020434302307032573908986421188925102179092526493274346330583415371996831599715369510888590507966377164596939898978398077596968938678101548893903694821730665997256747728026344075826029884470876680583717800804280339135556773635879553523619118738472378418739503833754153743669065125965688063591579832738464100745211631341666357210233063044206797745276548877190768403012028520615775328751134729087640992728862526124655862388635893009964499023994242618969802603617714776226014653252924019625332720880977100579694971638975471216158612920376527159837659072047577155716990867538631095811432938239559605817620814186466511454690191722379708701795433470212387788790955455310173699795681622206335718136072226429449120922779027723451348193585514982304961581033715423181952316168331815424474319048880813540428466519005388730348821392908523543132737134881014374588265742375080570342634585818666926787104775284589722129952096212529564677891921277689714090013116226202217966408687544005650489443507265134213865136499098001145419074541890420758227712426707532773325995468932488060910718413944985662614964233567013443846509414594873966165967375821116369847009829931518943133215489739523900046715415178822685321298489491166048838849607938366692934094658019070580618505476767288324779291792072006361102127452360345868185017166673660417616823819393651902673486657485628842470996419303990316706134349526780822387016426207454236297830859992771113872705138540940155201012740853918201028105257646951347645534545720149103028168197385028896080317228140120915962212210592191260175059134285755148493453805417511274232850714169335148288103493295073923101396288847878918843050615804580057134783176930382649820834824666483783844468964242317324390324310933429594831321104498154241844691769425970130475574341042770235497672716229313758094116477706253833245118808902799379925720224014757782778194358939253537821818266377027102841134155058020490494603108416017261665868803132382360954111826121153370301841549607112146536607772452678237499258325490055057619402497304172377683771139566408800839694611857968487782757386053725634532184963368975305460621581322518655071884388996208614799699915300608967538468258944204874380340728489094817828724908844777785312138351783988452368495374125074138044860212147482483078671406411940748537591035704437390561481722203543604663151491532615581974697374275612475675202178811784326036223422118558698435554161207776884710048794509253042505352811021182171953552545236271494047322243112107244597430478323380028084396276523181637881426976609568492515212691393920559488428282962387673653853585554420377727474372976536010899611537638970370419990398065880204583968495565365076875388541447499154187289773282715477834792797420278448319992862779605310060076676820152473272931787142299910308802502066531007979303111823788491156633103476892896466170368711844358991637461511092797006511421410510117506618613260219632039294299177140777337744670505958546791247142082818632372248669507331468584248710931325232261127181435797677523589411094331837087643147668887145404455550681471903736216848003185726237380541682227560830847259823254737717327882611380606033125103037647539787309748987097263675958182584702343370559378346240869227458675448023254101081766710141157687100071356113615199742566434865960893210246423039155561838778796559247208238558172677161795059274135443571171858659650180265427646654475454591792815948416036542968423228665782994344816967616794521690085322696648632812572838975524491115976188877320608521547158901200351048554464657198056184328249873776716230718663692312353059255626962069265308137369541303435220937847604857100178105273223994911933984113329112066582884695088065803110345662096564371257535384978075078159179590437935716004235174306625563767203003262144079491810850846025307869714793471217605590767624564832949758350569341323621049878599012557189571343059258311616354000937892840727394165515641909471355262440815794708706906973054417551135473846216216534457819110817863424629420349097552578878940138692448933323816619176640856443325657838563805400936170909782702698891867836700441217239678141986830070406937072986393846488981096443431200756632564447186812534159508050332904576865459521844524979814639281359498404867789579681450076275592000958926289509528406027659063309204109816955019351554704395541490524446350456125404975276808544887673181934937656335128469191623917520864933101759103529693800354765665275243019920279735580818090012312909175326536217546123221191685331898504383934998780202093805778510157953899156870794550293794782218087519381699791579956500652543447380428434424409827394091948784097016889764229153773599978398688335656929930781692169715385437707937317177952695444334212783947061002814021502817271509644733602614978784822622224244913016448165886349714278160752092709801905799076092250084966207050317353942828885606923465608912079611093326375353143691729882526759186796144649514560476464448704530465806920064251284546833818549738295090078431454319696891731978632443579812207956836899026756117860169570260192395211341207966912616214619334031713768732384665931663204254591320435885250134960415079594871510440330025404536621004011182355112241135008480070388122673061985928737738283507102327697415090547355987817870588960740153981315049110817838542193481254150500898904226036288776866555914179720198766096629503571650324518694602848982120316037032432122778639540116195782259030335844711337920323829326579648102925136704081011664348972160167426364385536760428754589702343785993293746146260921471635303509983436255325609860882628714086799923791368213299562585412585836075923727156792989787402704756726469470826272051619919934418181303264180149725466193932787821059472302395995368060253560819388119227913060956698745012302814239891084577473481646391425822002599362385494391072200437453056365522052216681541324049405771865059246365207104837585100477971933334964769074663763781299075875566082539661200748407799441819719018282836345390354253297254015740326161673144658421802489838202921842626361781924514526805944568185098680766932949735909749035833750478081442193144920185717339034885939720404585664912367910165256640765402768520007083461548732919284380994607017514019548011674766940641774126898523857467838967756116401824916535838551024013972929367134902823166036379986990154946142782204009399261957084128820667147202079475764102547201978727405648477180682037907052561188022791197833254124949884484545827811426174036049170177838085676578143990157012217366297584049825282671789210682962808226018067421688971062050347078461756153788601133215883577039172049221651396228071173718116518999599015412477150699038195645637953346368837905294011592623550600395959161125090218901736126252401342364599467637599217785558834662480290576286217307823133039458267422171708850410886123634342722669571029312121713510741519290557280118289908427287429071247385568283575795248164392217880274567726258145743406458808628660099822182793791560157608750762930108738761697411399604643634805582127192542436715236363312204918936464461035156857084270687674929103876729945472333782898947754263395343092922492073972929493207675624678303299177786986609779038963535079732885613700850416043951087223702777123375461967274706931693871892470277049005264607364638362784377771702920771442187681029759715611337937598539361516948024772028892000761005659026110265811430414406645019802396555670452716278627297482701354053692991262890332661501881495542066591561112155968600342206937795912489471166837246861609689488278150236691770789126438961501378927008110597984590551244719581840330365798189583373208012486586649161570087385374991926724402632026012553106211245725368804792654553475162763458427466540801633747779243067243322217925701331851112999621952972293608033318865169210673832882326873834279120379268799673187727536855423135600479057229313046121719830958560853254645108005451717144120652541536285789103733642116745945639935285942600763162892842468261193787970379660178370452158538951592751231402116578726512995145894373588049957669921619347149305581963654574319509612183214030391743242098432550623762988516418901781245252913893917938939501218711124252252148627759223804407134133339224592618075417373603665265699492927619166369537855254403344722563864542780979245609468963426382733560487138577089324980892123140972256536662621485155966382949057431771488817161918473968428589866220001926487298147167365048293529416875573548461211642856361337069367969419768685471766518001280334578321616387529923632864921485585628253665326756917780110775233990386592725056416855206578187490880840251860086062477563954542381599579930040685468139544529256978218968289254510365673251071889140301598934041429278100115553826123840640342553037676063310000483369183342927416655879793326148134091722793420883167174708503311575200236038062537131821272374007512226141449087106668909760418390450722630736669884944697471241787010205155194021989383097678494372002925506509991021041328269471496514480095670728287370253235258100333725245644806824415800893558500914983941136915920875245825703360555352528258089950532582455889140848365005874887522571020838760116727945693735463481219294767590887429700377903272226045709576836652087472549180523052474868622630588603496956919702582962915472440167225344805672142482761571694057430005377551186515987208527161540882781242495859162159656720893305399299221010933448070032288173143166401718418930366235937872712337363137884619374052073098292907873041470693417697885013825426156474046780739087845288551449816459997237943710260161921438396297430557587965891785666981983543712291025024137121740368078814265642614301357165799935494228437568448802465469674595018373566037816200766742533589402933511281577920576200362439444820444990294102286691010073998477556193093363917607681063375479963053097137208390296631653596918676254778784507038555215445760562282188447841882530957443977097228975299458731708876474884571654596827685304305557596822989722533196515384451704723530560241339274555517652038489916596204543395128444262192239841162158138081040569152724801463796917810251166241693972267551108771411992434919558108639959963737013102393425333223006200744947755666086320974427355918497571729423172136478161116095711644396765172933540769632788903555544838065782217334214344930221268858228110598186339497129195253426917978819485689443635854689356814256481345711551383413923485566910522015902052179481326332786840253575738894649281186126891572898701043688032480737756591675481285390370691325024493837670760054614481229894811138188133525332114909517118774115403585359119975608359981359096656873182345397937171896325224688067677351003605787913590748697893601727149945887229200423550868139876417503487040618046401320656998347789648377710604117228451951141354734263763373157957822749814948307061880050281673809775531927948952486201575390431814152975454086684740396682121309459953847610876518735545811170776278424845667500668866364347997838151523250896280062522434549995060641445659850515250990384207734533692805957034478236669729048600223368758106624678253878336635491240149097391538149942426023632320147437628509676504417143069851697153024663384718079662046837117956458899093682987178814479227956598798993796109142246090354640476063285394677744674955540608446426856163581280374615700267739418679164401860389115293602422670788576435595934243904276676397412956942323450924289191544614358895811028507324596159391129843648781663304404239197858624977868160642826888405720952824722832707617884850103555622610490664686335511574960924140583268725040700875339353550033641920461226845608498054491363242980606961923382657682866879284512173592027777742959069408057462879481878450740384096323664552223012036173114307588949340149886682143451423903267991147076479339432914740213039566425301835930426339261460301430396189768463716493773136572937921426622828766258048916816344231746427286060355881896969572647892987642261327527468095608628789247459730386066532558109176485113553328707340542341935136365003296401178817324914276952351111196663298283452249411177825733903540108178354274914658264758457197829403991512030784622319352001677449918741774073644475693829881968907451143746474670384087203426740172513336216034590654922658946649852846424134437623361910612311610134740226231077192092604251600373554703853666693022311153064828600612475694593733635924679802168977617108424987492627461770780778307357193003893695354870194274669945072991453949419630079917449860266128049352785474187557436539483948790091297150453077919087112711408051780635366865851515499663201306268705943013398850494096933703204913126391310882026331797784197592010588080794733185457039848203903610282214316604272445013799488047951454432709220666162688035778602250858874328269926918712986422309847835233277908963401281579914317393840448281907015157651506046806830173127533330379311477471780992665284837972794372006628147421637273526971593051149288016284009223318226564243336529206043638770541968822781731519536979702518316886196603768877289415549892839542443943092800790405194504043905505255807532293369768345313940109623074979824869382717648266927883028956647009163169401752793315724351829515326836742042541203877614133730316569434406076248212677292370920939283293973001182067839253533184527119448250848079677164430943302727343777491956919522679707981966450686911935877985658584303214695450305268625512222254131985169352352218967375982765316561102458185884377419925740221191423870989771214883737413296797866288684568998256184359027548362042623410570710008487598545906253462436992480109389531429252603669466433981627709041039532344347621768540527137564322656405463809982118980786447668988922447471509451669685399133815598836866930305926994176032853270134370722304073719143645699039506346757789771275599716450171922961749979188727353432438661587522732720256392090857797226153198941091145319793780775203662417202641547064005920568133909979777379071243249739587314292686294825580070938406245865447732288589591592790546807760428523974126911946246101942911252103892980095792271399147471617504895181257653698475738110985245572842556113648834558650295112768852805141420640143002222925698120967064614516504601349549630238621843403727079268793696011388138545647529643787581321230521427365117170910815215265730228302031800642619919492411818367727637493462721250185982558445917067648518319228453945716091342797531729437736929964993992674988540033652836458326740185674863382818961725304385672432781618288867804280235802748985198471503275355176771888740242186389060576868606280924829287700850624960842906922525902441376591554426289894355571254424947883860828686966537939891319228251454878579732352207471202886687924366034917217096518880002047779818190752941952250756118504401592056078121525208384797208340399158306514952210032102698845565360225363352043935980995300686024487563958274978431964721522452538871463755533815306444208589771531550212469460151789252016051914285531262682158239649555064738118243396525242393523903237465876857746043723642100772422178935345651737744112099809442740616091943209595024122812886068215024878564286687179070329903520454040949152285812198822555700405778792390075187933186557760063650935005334572095340309318115787980438255471533819212876679882594152653816462445125516773061543470219618061460956966704358043658032264130496307659567509577689842373875315768304162649310172910500293511252332297550156832982155615611689296300637174864943331505873533925309433745305120804505069875082686939028528429005652474433830525516640702892001011395939434116741080641524050004239854890393377174651856834196126924974256943750311162623876005621926406239971396201830256660696112426912357374748146326552201090748079318549330579252463014954982896408212878601466116264022555181944966564037490758523856097756492533433873645441367570172445189747686955735622170744367710708176165637300851635455331239760718581553443460391672129221328162479897338375734814274287063699034776038923119474351608131846508695451020009527620465351729231275385905205364157767714599005629486716808597880328825805562043047840437848631731804219004671444483696116677076471288362761118315374819658774244828354836364349456614603461146408097484774274775566277859404523646858775273691984491488105377874087796990493039092685571428693310247387111891880108854381459806836129051102097088276680942273680357199528086827554532166835818839096066279767127153110911194598118548476198965778804175461066449206669546456050418187661405890996927143137416590734854901187517421646019299434720957852453190955833967280392163557769454115281696604878888348210498625628786418359761743467268868945554850775408976381110915901279314762976087844910272867750465696264049741586978607275469414409287618107870431817737181568000086029344555353052220237698807523523619310173780405010118065723612744353039099638791139592167356343067894541480304603048770975170006792676265159745633327923748042585029511509491526990820961712327531715905896860404945358761942617796222448587505106038910613744905323553583055076565439397170285875352121306206145118293591586700960862662642504141436874704719467687105919371953662592334965514080537557001578602045810407247316071271767893601668485714537335118491173896042924537863453287319905573262146442375042249619511696348331448105099004346405425424894111941161530966010325753577167902101874130521341323117287454135263041668729203314616438040540906636950988269779281821227066548004148353502197229564228990288297789525162172205404636979282671922686084764599742288551658164285336292659595488819592292718633978211900306321580719235907193305255461986702610638938857153931656484724297434656973054634188444179292802268512512689420418026887114263359072581391891131367140350194819149846483250599125393395867625140105230935684425891784163142232129240092363814984726080893271490119402923511216734220078014307371914469767118053634534564090679133470139507180939617369373617041092340344637216887987804202508934126345291481972023081231393923582723892922640439913134934147696524079688616985239860219696444881967947482696560215510329418569227306425217225500146775050864784834612428548879456040734999068286761356462129519256734437034473323508279454330456077075930425304997809958799207124679491891020342543737112016301369937643120518498202681455717932383083799249323997284819221157529806967274004928028448976011358484903777013814117905426256241517468546021932652130462061744154559858216951061160988784629655438243626807492369390350006023819993634822075214397501626812365079946056083021032590158915246784805266909011263711810831313390643909079104993276202290201125044739337968657879955946205635748732290277761733399364695723419963461932243914638386858555424137081686202579467415385185650485015858410611300352838626472224722888310007511594567489601583991622530141210561029148151852215237948928971738172042088661378269976718771844056770310882423887542895382417986683713034293690577383116956144682393041902792660384374361182550504333835497906331210653648869138515627197594131284671383536323351998291372226974277939913057892578181451470355367419194318464833259496595746367835390784393163068635893978130603365849963204502447725419880097952405227496930414020021131272504894551771665303886569851022031500499055457539424619905790662146077262329958263922496168840383755219478785442830758249019109318144594255345423363624639322200186882693495360594646114709318792838592150678203154428711037454015595793915834141706147199369595768428922397851624264649877125566782028536819903653518436639874468691598147646143904290101117408414973437015829952099614874999780213011564229981965080050190416427548884676062058732771985049181958185221400556114485475420873655921993495622288541381047957375293839654903055958845319637693919918412515470861828963480675028366141073954433668279342710554459741219001049367560898440974622818627422775234706101239818515529044460093362633020934764091821206658329384930921542407681085809014119610535117948286179482896797377083204746780197667276398856327949982990635365085569985650658914117106830620716881691655778856131820670810898310873831016319063772623056681545574742374429702659195950822385491778567543416839723538233224609731411816834846477152984380978797336763027489571502210349695344097639654820261581666449944534683810731297963438511520529458992072800398001759342794452659955781688955439024550654375654951149206518989727856392965823070095092086816085062955263337755376809003375727337385644625267944136515577243044420367284260422112617182023878617043749061945403094574525725356627588069362945291769663575591160444912105593395390652967271702212566325792723281840708154454085033537018889752710124017600164049280666049274217831180994789297134876683234497861376079103890570019550377151228741002281786100889688258024802268515533623866295551862315250996133924110594197458714345231164679949386277273852720087578897406313453489167031027657582148578504152384012306659561086263664446617038885637876501074913265463261149191434411990114371573186327982006995724249241244097131127733313907466981272796586310211970390355958413926313423583202265465482396776021627318030976686828933159971445697969920575839979735314888933143025861164499818435635469743275851065598082538772716529631977983250916208455860958081291928949746772104004711955003177783570521604475648086623304193549505785531274221349430279962752266638713110205951509980377099476630758017342689970830271278165843147059200586510683888317398488340240652987744557575720351661870594948290529327843822736276105109294457482948752849309407721598971605990856739006781095567595246471819869472365707416602144418100750850266485321748899863858101390452863249720249749144124906954263253428980659398629745883318161128524213179595359567340356271392429063227413719824932796526272949158508365788663431743006822473145258416321732714979581269790044086097168688192662802298567026358946577283969905513954718216522682760069329315378894613265184809437117083508005100657049340520492949653708683074054918838926228426542286415769320828562795263315255601006492704011000896465246231578122065408296869909723396720118437030908245844017690996293946829791492371174719293047263963485905460479446109207066852682074653741344849262921245878210636547996755489347779120961329643540380224828368204166693238932626385043592296069817518921298493084661900458462304493197562662024337491559837916146224508992144094217271507170892722647243458001923509469618754953839194558012486715684324160270889876343277408145342798916033507918886367585712769689560345940226435531946034419623185613092754461801020512995107932069953913915909819325562761542715766264534799854669222705383333809449994079162389998364037520084406141009256464374905675458872336203326050626105726083032204119705893605903167401192732704550548371553590793053417920856636178585509400253143183771601982296303503282895972908626419725588240675144567787494965993581404044574786115418338537852479591005263428782573296722378748304575404080549033120816932072705375908584368248239417408090659796470665592324986905545004954214231218179076888509809367718450574543927909711981665695555189165725555130661993969729153586124860504097406156888103251016998128424191320589764802443909330123693905830346211874314177810625114711384524101782169807882312211727647942806576771529654599989343522623262149255418124957689329901566744033829985811678751275669984417390609427230162661605168910754877518542057441398942490375177136486433535249108321937137537217013786418804375304336530990193284866152203476607818253121568566314912407586454116219716127706600926867959692129862043370167377283501572287740165486881680367169929540780446601490924222458979803781372869495670850331105076733709687548445690927998420411313104551600391155672012121547366793577330000536928606908084742233795963170535913102200358653281623039901394650593310827278988945378903813748605233163663892527637462274038115245268566738384358907557537526293700633522486368358018211204364042980827045742713039747351545789320958010912428845855285579062767757067622055267254869743749891321313759217270221502927110942921434349668226623021674081491219308168297362872431579525719099837802129512410720583577808498735603361795139162855140705331536725687219185565994476372512574689925063246201138241580988552478084896846496609858209553283731234102691660326988734225569634703243602746232754575828369561828322389303300225421256979037642511696044722444849957896617476155052912471626947300939746851654813984387345777007715708004296463022432832253379791944621198821163043823100062197116677473150339376305466866062448314254725527153829972392142717884325873255827303250511609852231052888539529581119198464926711445855733850228692368967525356235625872632521403585459646512608423977601179215419594570464537615633809511128826814572826010773952541196898966940791592415382172258867598077185827461196405487203861703025026705038341816212439987187978456030686565168175738754434672314929913161174175064668768912240202098343518348155871689369748553787379561063411032395763244714050299190878051189513895584871676964546968395467228478677356288339033119608497457997428850160391651595650858296791678938910619260580556644150062539582036125335481058913083072242427998854006210416251101681109887068304090087790924183938006718905113704900634488599576634037511149445628501418691452799040679164127605436878365192584569540729392657174623415045726458139555616613172326627049660352174280587122422541202404242439646538583742210970952901421959578239426149647346832894990720258021733699018959947078112712444800655732171041557633615089827620929460643421462597267698442307367369403043700532614428542852352033872724982178235314369239997096594533438621614790364014869498511856545147199428077923371864236486161981261942955916842481965390300271858793296018175591504998916553002473597299240061139227952028677387394942226337101281179545520622954733802710162832070690211700430294575780451432010422499330250266760080480327491723119187963804933085549216775206820045217955635955421061186084701868455370182647643252561326820498157408964844274705898007438301084899107605742984250378387615267831636443815436806357600358818531686466186495178042321834174686730639899189941535885521540155080685980293236787073513252262782625193840211209907964640979703686914760842184899517722970377775268091133536365796758833486687353077647396717881728700948456354363711932541736405604014763715344589852174443128412044789449546186987122009360168326374068356500365627725114986705710790965345326624236825760378541879032143837391876371637466084995613946975446828848543883147209885097902760561031449216756288241382919003475672293907302008547991981522026398970391403358485407480787736905725137585462922805902488150069060398807517173617922319352719962229859218471723827534981427580112947775224489398033700934108942874071165814055576948201129827871569162367673208664551990179659712212822428544614126240277619309141776811216603845703821609074266421184983827691699213217712396504803836650107519295001985722813201210488122725733871782033705167309084501613422643269664511610093174677272938493617068546568456031729582315948145633341791553281111191741111938191976865806164354102113634526984878197931152383705171081156630868584762024557880391996410750794630119546146387833338704261459193298076778035479040848013041696760567529602690011652201768317336889904683917027896858895837576114886194539411392168504456972841493554507980594960575807747717021344699623124636278204965021302891603928946567254622609553658675093676642280875894070273080680408975550858296692323429950976339953455763578499090132757464414575201948755061370136251965625102725943421577353915960223977060243195407262697611155141966830255662100633401090015530141690137344949552655572600162039430618363440720529755820232109114633262056071512182358908797741963628490900648026949585941677418569949412128654656594961342623190053320681545701654926278917824683202692190890874469731894376253687216509898155815094250063892990549014506245103212236800500223947589657530816052759985830849408378529354567118239385333624671213173650749341718864300137313220116906109906542904432604571111893191473695766841276954428933359099693274071379473949136696498923584120838640385871572168684549452063299572170238900828192637974024229546751790841881269630737836643551211839694481292719859366022793841984351801421934532592010830122168385591020594193788816406902918000240521178107125300826672640937377758893423034317272078674759203633014630380424969874385913505671740626930545586038806098728249701758088675190287074989802442181340262711632486852982996165776873457220003751160875191102937128496468241071695611616401670677975297321428612093269035792203294919588269112346438956482444131952857187938993154102775620773555256615002264029020290637263845744575200579545867059222723126384340901486426161454628188088394654339752322199555818898636489016367767071113504398595162933833438784771902078694739484057550515459116341826139754147254803015923084088484818892610061345761012395369197436939002370917346652382649846771412595322167688926508533601270115130920282405253747570882736555645729874421703701175448520759840598326783574495095557792006073788539842567209313964072727911463343017206790956581528473701964564246495026877748706128594551545636798770552981937974618105195473140457533059000731220277303685115130218932713455262075530938934223991602790441239171267058043743415926613576325325379839586826836058182840356169073533346050424871244693888091405103044545796495902870667859369200155652556220171335116370640757040257137011215303641848610526402350749463933889203702369551412732996032465058284673261233428891729274437015157263364029110213944789019405901818113680585900349752615224586077252453360999477566387299867519340202262436488745089246236350698650703154008634551336652800055982828027264404513115701422354389875597751383422047728681722238753123883146812431365965354690144438402066712151655353084893152197437301976058286278505246865337783318849180241065939062731771357150197500976780214670596984001000647875481238536424647763643439756464815889262031168973885972585457230334453384915669719970991498288711546112269475098992299068436460392469149840484643426338517781953877653208892205085606796654839354876892535168616521051123048364405940383985993487730087124883544466988044953287743783709897041418634714565531997027276009685465976890373407795638916234184865367049773347331410846833769072906951602579548948361965040884676489273046896005854317115522889684557008484811110070346482900430617876201542042447171374624049962255616077202273599466900944733537746902816198716926851656098925460974773970563578194613347050740393296341108562446622408728521717425825309704735920092075351118342606227912438319375912889743350215054479795042423938596988303966159017107484218661750050758806517039873090126401982889858425339410787383657534649880467694411933966458960455549367606135480384977222260797158595178086267345074069342604481486657681955553104083167712863876695853479965599262341261879837109857686888295148697235459963560936737178853973351013163248813582118158089821958374358822793227343517157119705701084924743840790550138173858409134695879188057747575720437528747685796233210208353439254500517079952768849785049462182152386119934507911822606972116509117883022763360689349730593517141043894565451661714411057560663168259556387213233767617957078261686670074162313051123412320964206115292310326490515745379317432260332766329796222721953356443529766645223679014638976328403165477400970462509780301979553736839341347251644484897291521371237392041402407504422302706469615720211668002195053794300541415370095135522799519591881036335737632484565068374918765156211188413719716830695370127324090317879822469192009694476289482873817429698014964077024404433610609101683869917632512375441951142623031658881576159514973722566027693301030997474770823896265693006118058907811755505594812271653478818614887408981260371657431197410950904504608501881464750317541044243909412347584230853067709253369698168253043476405854453813366668635753407961893880342369121174241274332978114791779424368797108833685137806265716276506947547252190547244352219437712928867770638878193679686312501998015135432467252873859699136033887633790872460468961608924774272406814273388249888797711734917067293476854320577512220188200185544086556368223185454043877483760434556431382093129400943535155720548409078315106471833594833245792480699826056255273126464132196796493267711493165749875953334969058795568739563206720391036476184697062693077323817653535307557176851969412715580188769745586432133865922431540318680798073175276642539358047483503552374401243203681545069396908332472895311868387010194354757407512534080476744080349058650101948545465682875808320552360507314892731597733571437828155056337024967094908175265349348523923097970817132489325218756800689461053904374059145848100350362653653532753436581075419710133702315836507076567320609030839236297864760118506690300979466217995656043344053629068257185565842869223337027237240039563436682386194910054182890942302215134887856794390709801168477152141474199951183804832108475960449282179285098768430950727863467821012930844320944938484110269425517592498797604935628791148175494830361749652683624430736416855585541782366738226348674266436221321963933729751790286930395787098310742840765866634310357751702840723832778179556581159755586822690232872036213571666825339075002084332153044717853883128280807064224381149160856279871756705690972588068151330197252699894167952423820379687955043143877402947509408800681577036374932618930612216704715505623303025076672925071182225756179551118312908896842448138381078786312964724784429991825241145098777196995929747042425547757612575845752774080825239479323040891771629169499954490327761617740474192137287815457203414681043710952122667124162971562020755674538783281608528464111541198257892366637276429110629335346043005167127237211598378679735141289402832607071285011185952136227342436840334009780164887483500712636038247232210222564920410816646702328365209516781359200491182150284302930337391206698500216905192619984322143505678117722344898265521747309904518304275915331058021752478964532710385755962799594795528182492952488784801248821696462295877360820880446136538552751671896935215801867648143272621673511939256881058613406154882272365698399399771367975825175069848955504223501691326694291221056981072504586837596273695965539300704720326266993091988080680816298262443577290799356934364517879944324099848393772359161217017765078359544278975344133083434434156536779586543678124873152241273536730457199451451249705577900185216461156703055191024003991244291687219909855798910361123782582673922406577730610613988620966272586126082128730080783134418224406973789898135555929817052420771288248319363208242215667422027172560843955675268112683974581873563777082341864959413793899817415577186924042515520228068057191569597242231196857186884663186834848544903131438504988696590579839528078992839827569282626924435410943076002027356295722802430330735311174921915188724206441899792844131830475533828669352269183644376400155186769417978908559510874698859348959321539584034877747633307468878043080281412291382791317165657759925921476268215742786072007470370434758514589449617652719044725273349275148793618958027550075910077323157286133376722380904638372981192756655947585370166413918819699039770489019242446638846557828710879211505572133347364260366942110985381220612525415155164987772033713109024097223465531418360125804609273449093126453819132255668189856199404627251847937722986776241398654284684038954821259227261254016763240401117874277846379587127874458348327030203416570226760712473907531897075156633294113021805503638444275216352231180050836627286555126402962293664485195840134448457171243900694927770900484094508258968375068972770509385857047875639633645076650482453534262845288498444584183964304505923917562376086347113769125378541291692138866795338567257221392350104181278478556778432457935831870618172292192747206101221399715350083766982851753457005190460224863440308724328272847169178027391856221962661362177606826063760147827845153570450053382359158674805997335821879015154133469929776509825296961829536929026462192334314232531354693516520234465835364441309668640355223650360596213789034323648495976016987379472098558832756447317308910445578415847456187213614175973490172563080136972502982226948178164616485644245027059507903623878715893310366355355244779018879685947900764053746799020176000329064750018771462833543116452902368268532976334102679037631899288879559646024702149969341717458192298267179306557622274132583306189838961128171342955859093078453664240267142674915054674750181851898246582139614489961323520782251775442366327993668487043364982273117571676442654116620629959562673277711999482196935151111335420262179423276020887917171908839898023143227411902663481020239749274978732287296438098494633329640391874500998957557145462861120661549382817439097089915219151081593058015268650009482754888794442784743275019895030863725619950839351449081322121301860748560419375431898067561807367381785252048409924750197560592272739152475736995287044684748404092447860643540323679071994098515086792180393294882296092069503054566455977050679224044606470673742671815643738857112328255028443975505469962666282277410384327469377067712609085687230758074270823644573662976978053387206469149482067507654872807545009502316079419341508506086105104532781474042564460679708370564327010966269453361070170938211175721974781746658988974861261012130800150610762614954068817708526082645219352564379411462015483251828182615647442478926058982750049845790775427259510256111590217326151672926400106210606712440987605902351475638688534927323216587289194656220707130511543773141650979338803507415132439377969126764480494642033666152029994579922189107760281484744558448175293168078496043427803340733516938339698046093513708694040929222651983464945287151687773135778097459643947770338575483709813427929626969262432107478020570012541504129754222351356980568977263454761778091788403117118019721963056133534136096249733397534650118687783150149890043664710996662356438411488811727933464715490112714807637471636988215233428233760523787765654136055961354182467906826108543478923365147698427163840009460996691784978061386541541356060139877040022892464578760657031706602963707380817202096372500200734522932309647990958109935377276836459628058927821615015237326025755125599979210527779170883799889780329564608474947539190849348504184475535986485324924988034587292195805579371396142055228371748647468320772635702919272538113802749095734519709223216565167197328286903477548205728173763513544320700938883394986423137158659204951889334830534272905923589918786055640837408831973764587365985824679984198890046821289042855365374796872599556351842612642812932322618824198016198339390339109534941511799054170837925769594403809294454289006090302235142246999138860018552504433545747586882678120588098883999099873274624713524157031416120068185752993622545263582567003893331409396215945066340357869139092643789287580492974794189979948713583753841174000868654344992638600809576587265542890456639872751513068862067659910938292019039272143719388922303136468571492472538728272906545779096102774249057904407164398294000950373821983441318666570437766824687385009472166575081902637223754618517241377108346836677313819742917636842106278461321611368244766166273137259892272214954548912918272080138148264555256449391852006550761256756450424482172930453032028304740180939458577413893057765271227183514161173251153090989496507236237926951938457402501723834197471964732051853527176215123524737676833020962300500357572375557091276466658505587033921354646449332757932501156133907029887587379527891970025336775900277747545122445485886275413335962239070454716666065814406443367791881826543495020553809777631419424879876991493158504986958182075142327351168683697323607234509355797630363159498633698082099067230760685574637913551730019878871658610160547781810523761695520642427166714004478479208728693133991160037517222804132659285458869444067363452302404764791950912432630673391354390085785139534565929896544413610727146031505185667317244187163190501255119066265953324422314196890184588903181147479985833521959279965614087515646701222341662846223989106916488459966824172549373489147897652999483650529140698196711618703170705299256953424538469527720725307980299873413524967417793445840236815568371392875468574555020488666380289508391060615458742468430182585071885760449816281911268017641229759717898030407810061066345949233188254119557977631759967602123786455052301591701872683819227085215505153232332616388744092510747591182371124723456956231274732362462448722725976499348183492651759445552590898848505366092510510343217320259821008456283521499713218046475966133015930648352818507638363322688454569444413059737877163133419800682449671735673838507341447610206061236979574270976340365727638355878267344182090154769130936892940935841929620693340763940241536510734971734551684924439939968660427365419934678166857046908664212519945702540255297372315285188928084652929368574859111212095079941041713022724981553241556561775920332321486213691632589537411017794247243419223913573350261107022562800975761398154573630884383311946099761588590204203209371951957339045539850490944223228306316772329518182945756812480896897327378477531222737474378711104650517966652329711203201949400256001604970622927008346996054112628734246618545144436867617829192341085185887167093236106816902017137873262830627427841975356593812771126921577139178912872207459996757777948186885558919921960606022591519190492266473737817504284899018094474382257247215477505962324544138478644002818689782699052400172916616155805242549254495539211024579692258841092043943091350959255348459983337050546994845962975314013520925823523872224244467315309085451320686238259956156713486575721624379170829482505980225406876743766323722243737819059693170772234762685842544793508041497196737366113602967970284598016809387870450778731110034325430206741893254681594514246240991052169444188915726701078911286784040717867007775398890919266320947960159297440232601938887133484232651477895271457558274612393471283960515807389866782389203307572711002617373753997901758962967415682451219735568108021909641877021577593013166022953708064415342031611777131863919448972162838995582391322197328825674627684237148335893657717466022567643514445452705738303626004199160529106639685228911831918886133017063142091924329283545623256163817699039048801876977981994470854122933383180475761000738947645726240840621498200660280253439983004596316894586267927868546592309103392417177670411314117601959262444666344782983264030964136164840643683975552962802923126175699538587412906129884684175918772138845865144326488698127249221167201033995102113745131195032240474923707665425744723972743836497692607120689548187357007233786398993944511503699838615494278350738035975830729230721927172061470917579644267913034724849834497571367557187423133660663041639706417359669782619888820820369472034167018447629274238931142106766241559627675418673945373056766689536125201335218965958845163135363897494751543220318108268711069238477811016137094604978335850124643158920914925207426236119493616223317187537496461466246463932803932975665482265705309452299320540295224025250095047021350401225413184290436578409826847830844827713354031965120620496051981439657043460974586899033547049399310889097447629085229281525916389895444421942608583179160423550730882866468471131123993965794769002667844427766221719357895254959814101295768272222358414200133897579921921853830695574628147206698116983308604766035454755239161115145754837226497047616081401946161295515261316571427176147194767765346822390094517518990033641730835399289349603389391638916954277620167298825742419269710360522258716603167014063078057755509772434697562779131024618506830288285629014439921408652267490948540551973921544053458015472363724769967286619141791539480898458343299763245884242512874245222546831410309555345004722727640194572290225584098962765368064612187357118539329986471567866128510751227690868100425563856981336731601562450899920404503662826108636559984799013396493109924709247184449766958713234091880839025019554737239946988149860766420532099442798734332623838372677626835596610532488185212200311344304890687302559104483168299267365600677346223186573953354457889599452731069125246233933396643587388991115949263153230687250336357771046457642582655679008868160926279787290130033093613775599023076736178375535371721454648833307328663881780746423764930826744396293560366255885409221514083319640231221131026685788353030267348600972627970912926223732863837479383558886462432794512806742501400103081644548710587410812395903907008879493119942817613412754291408240759103776856028007498779410268085173944255661553409138100972951312603053478036032320095732145250374071595342258604789262204974574197751614475381896915933124675896584508132129405091725295835500939114871080193020427837578033870807821643426564385379664785772289081607884781463338555490937665738246789861747323255740087906826375564559677694220568498217476586803746329072789528970164717132509898095457939901621647771635820916359811616126721427602133367459439483507105402656021848431798043069910899873520011804374999375864228320469178225428965014630927124156518902994418795157165004437612598492174124829312752891995822252777365960935558791290386159335216276124156220402294202356888181554120914500255346703586690308347665595554640970018023320930355363678478565678783753739201469353841916956477434347672603297651439790694618853424913032959337801898631577014705021905807612038700852200334004712038270807617791610365930740449369955354298472817002196597403169910966986038090863787687694197767974442113698854588979437977659994941333355124017378045819471475954787391516299029103437438620399158784968355893668693336379930423762712253688250558594421925531917889815072689815307061415432639551934301341671224068894874449164135224166390267999166561105002742966456343268865171593814540070729487203485046847877970857807979125233424895743501280134828413261063214636879504974690851316524454057199526874725423286903228302354392061029633598986141817982887781829929372103453690728653078787712118618515689878802065478941124636336367410123526485017622018008246768496165976364250147099776358390662341014934357239044795681548066791232029673342997500050826811174132750522251920953501380460304379709385112834213062778495897164730771033191973053822333907938363917516662193635421966780725966039249844727402770507492240234100082496505089537782465696213072842423432014064137456745267952321673245576155882983804926527741405485163971386855728744784699729584646335106367701542041501555522397020461701772892305062422982718456191912966118317977224904108372358419573329982107997522719795366237364132796355607153099435216042551850584177169599119490168671478963295314884394214335265392518394516528957988444988348995180301902700546387634382341067086726891581876550162414377022856695941440818328008598318788395813778879728724868927037665793727688188460427742692206958427275023742527353778377737220236867937986397167152167070399356912882127079881524002390906688760939870224653814390734020456421013463814367440322482975588585326349817275788224881943703121282362480467691941583292193955847302914915569958854063505127807594211823356356805086357478060796537155024823157373918636128143651143310473553851630912249377576746378633781807976618761626947015521690200764657771356801954312731337610590646897470877429271010654707151175166112289723838990525004007200639459847212650925880377629123584305605578373088731632803646657063516355425159809607573044916859899359401383563998120245129183498059607544545233091501747221917538541256953404634131955106179425930173085677610347739724745172181432563911697868841049723330237891571593541075667739935418501852093998608373245638465451252224791613154905484980916153043910237999142263999030174975915216367125760369874297404848076743431616899119389733328577738158989498588936548984223988967698668837449977163521868836085276532198394784455352990230326180299028361791734765153124582878993134012533062188531529161696301459233279403824634928801819873316518383466449706345601580172799592374367170346962579090399059356157618431211596994955474733810415165745408579550800342786949269834674668986624255890085044309099659510913015641695248697323238519778896621905382849400721560935214214458413684964466707647389929669780995179376641232176490641168698680899677385315014333154388788027218715226283722363373511612146437600782719626118009706682092839188053323415134327254033822058420546994914219128815523834535794562124947901601264156321010481557768593497448539898873987318023049718932774199630321934349258106184526458028467069059075968564127572921143423317841429622990182574545589121982884213706116781701563247883950199514277400478148659713485429720296665260453940559612829741048529558072849653938229709163018031857527768154614365702199987768487230382740398107132824464543190127818606817192623774367494724082700629967977688384207359458104985583279584605496161069461219781126328298283510490003663951706967756441986201531336831908837103228284554887478717987362791239732227687667061571191878841678266797287903959435030555044902084635348188837509735476858973018212359525074545158016021377939040131266821371757424196703033772900201201964788274234449855188934472020417565558405293498482501758778531107089472358462045502069306918222533675874815095593754653499946005530495535720836166065955322072325900824425738318222002564383053857694884530721703535709874696204966617943016410504804586688625157188521516299863514794199712011189170693919247059043312258649213980997047308997799283954024536582694810219128389102067073126738558090010775904007412305201093874056284954408016711183313008355499634427248054283635203691232185237228769491068644189346803715753227874933033197155096190253769246563639162256499607479443114982077490739129810426359454301027473072365580945720993091939201942539062153245884851864840431896961520195525236191898453203596601396868139795950656137102148705015441846833588519355220376500311658566252058193072795751921949393782487225250170652200717831232779334882408407925103636360689991289273266182384189977077543485229705960347992417582417137529450713951649748999036620223490532567545929323447506899816643516252749517131981433194033266494203471289688777442921499353847821352849964063557771048860416242579838046602052418145211929576937580339254798696713903569400744201157879020598764544616122984332439098609340900173170265203914031360155935593142484217222154024339070634145934110625338545770956602069705531611965210339254632456076035599295677526581584663796867219414006619807312205709885900584823410973629160866469096655437119555609701433513613236313499109388925041968538196759038554940617068457665810373762071069086005515569782034197723853419972711594644351965750306732738671998464909578793927844995033171180917621136992825851313710600587242462727433107108927562230956633973962211963058732851218571776917926631410627609641562334281199078458041080082190698069837830249757943200914283708547358621554017281049450099846406677335526545952546328821965984765239944902767237717334607258425892166718672696867488260820218098172860921157748010005930231443932053595072918048544485018343479196538814647063755894644877280896250010317420809103722187656697454923612693701694368437417414448268187481755254336773548248205114676286936235181247004691601790330340433805342486006892487054983874994370585945858367754272666658773741195607168141055206647828264353806020598460880848553250625756439474673367600923506986609483848415673505991365071199366815280686344351002811237555614665701221293897233724911821004263464214061387406740095658041793167701833077665675231380275324075656261926230635935000669403158001176777860495423991384958689599980592006402607256382012931544163598818718857029505901851314752728464483394692454849647406879373708421762251986077912093781727494715655489153103577340432455301441860786675647470278612111928767075995133644994872085907798071623160015937900186511482232302320728896936638314621435505325832321827339302728817160314270867478993421950096724368457206915938027231509844679979860806282950715355087737179597230094982789205026536154025549377239296314557401866483429034743834662140041882493285944815566145031357782371512336722408742519651786212413353098184755173501908010138955228049974522805791681628219807863530417653340446411852519566769526472043481080560058354514612099204350649888654390737904179677633114198193174095242281140092116387523519806053808822412182197960511423089795741548122740866466997983268496958169700228149071759458132056526191904276320176657189846389613649490685049976555669463724540908908664114194624128299602314177941479834230686498493340597100315825568495869865098558626385189065656946044750723188374375028561776383574776753997761267712514790594628563187436016630308703514374806780587546779610777613289675895528558744826526922894317614665469963683138619011095349544068302060803518258674981062439951198977381298495770659011475135683520368174277530999830877234518194829406351315303085785490873511832344582889790738611082349555122905645373013805153511850895980833546200509692238636628671923979528674061211898307520043475623678327632096629620532264101975683238930250203190474109423797510863141282122411986938970243460666931274946443425508323393623293583773257452918002895310049740673597532559707722229319653889988944355616650179922292683970385348572878982641839558301688597102031112430386924492921987076567007121305519832105346880380053138867388253376549036972557911302068837926415938872241051852163713145930842860177197941533329514648605357363277608674296049579240225274904024396994379060102169809746985711482392542974190911529257570457590156610694134008587730926877311642275829711357437234303538141392926972652184644018481690974290895658157324233044445313202440731344035358658437598286740390547463060501194763384541917483890177584003376507945058289303131113148154660377127810060662584372093530663167161906786519870431883449251116069444124637506308698883291679546510171838283567242072492236245555288896630061517461668872507986119872825599668064377949322210223589212761036639094510347311814447537874360769603272380325921989445241563630243195110336768089337490787415760210994298581029903095719754959124823373332541203525037706204744234100370948642110963646624841973727927008195261204823324320892108620537522962967014994487087076993775609760031904358573148481112835080042471152641862318887014834819186043962060418452239835364218685135730761068575683780596747372856384338072580533309669853100018561400570484634072492819626276467822024979317242734631434565405044632201669742956818253562545518994764512877946607537455274674628626101151925850550495417452642151474376385627036092453810583572989282549212903434796936540070562063650854446123774962228744099397488835645821904301178719235589924162985914714046298924852979940085553088285626972364982455340692339044737431605043751080318577480430619735976247296264927493304718326068489609399138061513578724692407096588551049828751940568279727565559857548657415515760970506156725167975600817621627041434093587147175028500713176268895257449825745203861746218999949286654148315972929447432217432921332925924991696048958923630184704454965010647085908351877336887463731443821136141474358467124146759403180168985372769820565179189192805684958894262940213123021590979277851116853372368107962621105346431532600909418324008474371979548222958468515387322872621049686509554573128574935866130494828667846217331329999993465956737379224719384134298248773721855858774556117401771871420257866688039756297237864676888380726878020304245305221916007946105183109838218111218143975130906094741302176753274095896224891710042424694584274559793223346670277356038471283719568969316928155169501160471836603510398234668645362581520230682329846876668153642685650085526867656225045280577628528854808801038118742555122429181951963079551442180805764987831252673715628204582898863100761831905943956026926844213680399221338847432069109118230137250153584532170230850762548034518220460437943729231339585346319996660467724834264248501204244938238732531349903231015355466719588818566658431029402381750714084363948765181480921467373089948426248192183429066365943766690986081613764987063708980095033680240635673708066910954431202235702642990510148111082539524053700592190025259649788128957876421356706075289506805441407762963361409003001320546806807084354000033372150507196883709045160676771145807037891852552053370880535724693921577029001417160222939753770777132587318979801415941317845341107798313852545723067658108808000661732998197607989178540872768851084427451371607668000975048016747163719549707410084176303680340885716856582269270509483982865069333317802990590381475287442839626762622648313839123729982672901829570222968065380658345622780497366141993024716998577401822369748037174810294697614852305568297607423551082407119412055215267275980894414902424961967016006899280747390631301015507274852946328281882338333268245270942797187286166031208983270574804622182081901078232173888298206073040302870824231113757956208178949953538660039850322653598674553543066223386362652409708699437932431523419868141084811165525720245015752576762050496671722719448408652804710271374034511847149929610385780117751403841031606226715154071630958071288380551930117109475870002370473644739608978453746495750358147283092581833145233844647593721004940660663113403858822983467798167763599445165674032260640044268618231413526969443705920419531006589949919778103842571136784541925218341770580392125910743230445021351563927004787124872672036524714349124901611808828557863290589038543880687767722691291488601151532743112840114968277504440991828278869774364523340686527753804405431789569128880086636316380038768835260918521998310661027606323613521076977049301374076740188759001795531139473304655436405225897411550933439163673308424880708745081184914279797828291649006894766275529035262783244434178224232693921951385124206913626860343253130560325835419375975681326507864859960944726654455095962586744203918431871539028302315076191056498584133164500156448097903442162076597822548826028430364771550895548084775435026748114759903898904995591079493399324748630053759848813121665059886537311439434186673752762596314148316047511302940213741035485429252055796434474973826750634259909221852694071246943358254820815068011760099973808666720192024360594826785475076263189348912996291983017949079755100830674256261390665051520181055907193655033867985407091331595970514963988517005678186595548314632609143765957314652389189781577563546860416707089093561762474328769337023851614761851210430974599835449532034353309189608816844075802712738004926073171143354319379238855672966990198368952841539190696391816139378050552470967350837846922908948317866402618052997454667453558271735955599629521490145427228047697046620867454630833924348259007052167579120810677561441225214575318750341867887002005231051519208910993501546362320055925611786784468854301279042284464330772101452838891904457154742534531479609415115130114622843667563894931371710451661545283789654462361724435214946908786907664795627512574243168185482539094401461080330338654597651270396954081592326609008966614319284977561708369237254415374511881606414788035992436869151604488199377473497033984675512499999950784295835816918743112503915667773659284472432565560100289700036978041008223145553171174711921321871852653472723334533329749325880209924629777394491872147234873629186038068976088437540678999762616354427164520136659473991312049830649955790930800676545189678075248088433232390084532993833744595528576103625689277819332442309074358507302815454491308341992625020720304733765752521525282429209191817787441110583636919425816599071646963428895528170389367416444046514021284212274729471470117827588598689340168215662083960941203833669528697945571728513308173630957919761567632260932281839816574044269364854433006424177821400147092060357399579812710627920234462762322162974329474409463861281774137462892181419243939130315725634975687890993219916033414530741498843994387093013520152105196381757664197670730620448048560035285684500135970338888918171693489310134111827632212374646765439740962072825168271812474317476711547156215340942178755893841880867766885771983496362856931248494658171237724124250626012005576092559415989525173626020237608310856651353013625673574851886392451515854075796034179653117381200379805803274988463207483482631496743450872329510167757631025270251624015391525864673481837022794892391115766033182084748204778904355177255251926393776700137023638101676401396147729618900187740128920872235428420395481195647118425380939934239420429583873211527300754383629439340115517659891460095409815943898883644841321411472398589217927930062540971648108328061262585411402260625678873178658020278062965498176084147376684821716731522733902447052990822110136983899165302281921297964522911289237027844781422406613204436393293241054488729839921511252638944346318703402672246190585136451441168279135708682780202854239538650588003685983280366959932006941656266543532454044364329378262546172780831579022662718956144561934662590925911954279195483995469754390474498453283190420277518409984213105567830640035576397791653350000365046833754762655091142675185443141251606060331976831432310110777823499977114571704350290012686934240900695663140099044447229025996342727931841250747469011863590479114857143353796085248129514403445738042261414776558154038383147294819788310758870750600171339311102334392765353613083676762768880717518887533700069350253378832108384536987138876726461390988402626993761889786306331465854434215041909290859134886734680025500149063855721858915624897435000902339742037591949672862080350369454595090731732990352632924308632186834141548238492740627336435768313416223944764939637373525178703098744339112389130249375794444745571352029533365481104345080050667401658241508576770242283477609387876318745510530483675035464279590058651294880821464070599192794188076969463215459449608944521176964693959795205241567630338731964824029347629295075227634392566806364764002062658752913237807336796349411018784114291393454791223198765532882866405786519345724269262597106869905019756183087376343622353382705490634124858716307104995862742298983698145093918910305769758447861548810443870432323897444861752428715344241664453934605229436505039806362253278050864833017920032132130609083866940463558732823283933518192548555659561144468723639882201463197003881566287504831666564390650266250522109603036974538770123957288073698101161281206269516054414516404859451864801977640080475089070501169355162492225837587433856440212405257894210604739109002408298860722258329372804244997296982986163341570147060112928863224925185692598330280683510465100310651654307729626189612822324048588090758497647516899978989172494564044571780835552948915967362511865999449074806635648450757765914607044273029239227988505967674111349764812068838456883054547966368572447714286045073413526058680213464939292317213094722927200661307476162990850471425909917581274674369649062699097203881443783027822042651669768691910787559915211313803008844729183874427751926857331336394845770348962939572366919530131493966903310067518839885069195605985241780268364040428098952973003978819524856524246837789646933094220164931573499571964660621542089420015186695009599727345466784475231470810686694255930068207559372929523435154104930724553570415097503799299148885001887677291323707813372062952860710067972795683216410303303318529397810329393824274607388764664728597364282229348262156795175855992576916179479507093066964707343380362104583746727742493538729040336527701280244435844036631597001532141137035173516998355540716561450725872813267396961609970169940293098831371935440937321453722912055810068657456889081626128111578210597468193093889206514991004498270108362216874436031489060507151223385433103986442929580200030628042538831966139390797588276790238927074028363944025236051013132331499378777915024510552352271976974345093483443839918634570182026798891746743589671852698245188218057529821963637802970841579658325442484479479515609202840510382936396016428013577500414965647253220766913488000934056309698589514532624453112730846544939879919244855884241199037067716575858808707048399736492641206045880993091273136952033909838125842820128174509403130042411101034150634011827004992051427369259766356109417442159424611350176908604833351487635549396331968083429189302430444066719505742398127605661579445293798050105047972799883837390145172770025058804626885179964370764609847623646150081463286324139102775389433895396384887052014781480964954527422878956936716256620272958433494267001790535441757323313962804957731122108021439700538286838288465793876255770101307403427994665669170429995838227531807688493795692751432640051925416879376528367866764879147552171163404068385863035710356521080132881241654550748931686418911569159318359195101649069443669339442045229327333779118520071977233490230090028716242414083225478890340540513329114385916517845304962028939005582705884111044225816396975518940335789987134557169381835066700694887588249258144115349811883208097862721495088538652087519751433305453896752949338270879516059637886662562671449096701289520555190674499704362658201507676255468187366857316089773080097866100181449386252285877499390741408904087550931499275169607751170366593678720200398045356022272249242954330905927581472291065215451547509549022062767956658336206523386358485192056021763768549006811531569956991806771340414253655352434839018217639277087271407887329069503165341847061557787523659199579760383770838574614635847855947210872095815717682983150902834948384414524699450319280547366695318711785023984652044008868147826604254629228259123917720862058103201083676063157315415256545715715313115141597741572410891324080819476551029727988844081809942000574650147148511044242496958448705455105067877256677136925635412662061021915542801588632354547493445196723260907780572277918945801423007447863073649607577261403384717474242938783961100622589920868270466951991458112531534006305300626546283819307733206033262566104719561927580238948423814470440682641805587437883248547006617208579361539053162756857597484587355386009082116098017375931742004081198052988384652449485293397848094508111221959179323656731268006555716331303989011499730012876899577315794088443055938891515209586436934180645317000391672912303096850650559560771112842000733478583267926311076093697162687199413023252011513219519760042135328262598534099103180164020838454160134060088254871322388136194712816447890012032657700579294203179188476973852779809625074828471604512375032836935984672315096925863487270993045541767779727313364041688788013802971408080272667077505726843870973883081601126605707967504191788552019956810187790585692909437035290306692073057312773408411698248383448056481771056547409232069333112923852859208522818050697186193467648925617133018148352214262118823739234004956677761897694404283291916019705447382350409598669561406102138457277255324122060719707945305062903787824598068190759961104259668447360824449647659129919462388402203033187620327636816643497655662257945896236044138540363076380262653282806927619809709613513831228909356224380018840086267823250696290537828445017029513358819808887432194008230493040472037693133813800689192776689546765764159630944375943422411328437711102471095177590202008586760276450205606639431253294153804967962722635876798375939250713937507978715981080943416005299988202792580942896332632282640668795239808937272993832579697052801205190226646683384453156132466643858940374442783452883299930816851785830674537529382515380188518292787575076225656004159817893774901067759601485149245184941736302053714101629480916641216049306543474771471549869901157272051240926035998233137482011474627473954898043301828077722953394500317490315130354178973622969822608654734104912704856484914751395528244526144993369899080355704269643918020078078410317925559055635853098007439318917596313478320648699984433986215382382716321108788425327803890773759071390364896403863463569520263591665406665149566165996922688611029687020356123398842094935238387108528839705441381778027141942766408407667505618860519073902633475082804238555392230580442889143129155286784351651750004352276857656376040433079291723291725279763003877110456025255827358558726516650758267013301418429906607303109921762464382130769060854013346144653464449264875089847940812352125439976175349098963491831605523625583249324475290973567529546989826659735574919884341979209422307376239639202318794558381504822713139989966529462461599168016216026393311952145095347105714738644355812022795474778597614013893479314722614617994216359066679481673852419868923425451001384430621712689847652665699974702131945958243154671585699449549086331437928726153530221291967335291100475573682803277419546129812328140910730297602383336074568076898533419571310174014810212127587090044380257820363061709381452820828938341759633565586574340359599752298306986895286782549947744059335500765233779152342379757040186154845115719364592700699025431110250105632272565801532562294198517930989521428983742053075664808524145845169722137083855920458356391069052002267391012481430952887132923798563986457978513463243420731438706262222088579322142631248195115301588495413670889540360404536133638239985509477358280596488628871886107084856741752849347564149583223967349295354432129395925480754523488574262303626990342901139509868219794119525959299568084802437552117829748586154907786580779014859373415844436212977233089592613144009065515265586051486425429453659752569882688459022462266520987530526440811043890125585185202336504927336930475030673996343881139311152269891741789667684800821331037044345838569459645594276511063854098092106935263287734474871213478003909810162152874077439825719758603598004390560511919800683559772154939810848683422816494138869534805579304305461103288861030424578410983163167797453725500202541674942466011932469736907389403581336775173085773745299935801386466996033191478118371138674424345806393466910152893979900131037806864513699138209908054608711504637954547201153545355601063775808170815899310511030517384931486163293121390563752740434953930869599614768139838926768988230137994578393525582767103786163466771822049940365153013352993074972833142281938341745233210576332103035277554517591467288102483210636644359476607680891276884637681856633557338879068947195238951415820478588835952247061895757329482043034683522365415885233826715239269060595148344279309855471035456709520075229702400201363641809278620465437956110827342226122621306897012494754351719152447807692285514844649002658008556002323042662113862861892450929017441353505700251616914592326299209790750527506128336865406625036796826483466347326800294099291496990665404836327549888669917293342484503010341014027690265806819362013276281331140804204906016200271116033537776587770305818626817700697999360330664210198413617789917146359797162870362114130782410401316423149856929011705350413394961417164788661314346742893439497263442779576227372615464428775132675234779820290821532845890352833323047527704165346272978486819798032460392027319133239938703361414872144166668335973731678181306708743487311893505515098691062115526394621860210235636326429122342876869171565466619685214235129756266883675055136432415554727392390634268548073195622701202003589540964159307333757008522744754363314450230841105205480203935390028019043039157912533307635622535489996777843499090764060743848664352137851433668788646588251645529080504325319569576032316713796189218850960487275016105911191301617919065480927579899467994409764804284847747651970066338478494306653622078375967591428903863838440754027311914576253294747620114161158784294490896941468753629705688276962457921817767196239216222551495884500332923652562459657382110043610308412476963233565658653204483442325738378952877102678807174327470025270809286772134916263061278931513707250146273952588469286411398428863469314623029354790226200438968228445682903891361097470390518351197907859548853320291151205378895939020229558825115425347658588036032288416565645921584159193449993332422472672759788589381234028149815507025962437200383985957745884104766737647673082742606588691637294774595382608864491599691045330593267782680432052375958321754307158000137856658354586475468886566744739168202505024785655538494740764109538769136077087994686429078770369167784335599080083202924661945437363736627272160287658420801535593190124608894192386488544587362586802216759500780041502417353707678032700374900041769668302497121963246450986272079809666225137494874004870103604717397443563142083037292984833391975947661481154651331701743156401539519003612227172584959630147386393127675219846716842145186105137750206016540122626697703312010173489680851481368207461931181445126888503649145901245314844733123373573862957372459815415006428357244049093682258755756870055914502688754489182956253914711478740412490647658345931096241318345926264875709788448921090208626181210608060449231805734881075489066494629979224098031785230317088244649269415151386129313130180106903699247887584847916115621202283315312677523176477173193753892236444113864732074855036724028984564558277078148678668461483749566660576788018923801535787106791305401817737940196176337723984788747725152069076653787058111036792901056465417258707139434598880700981755549945580171215054609377695425363025596367111728290330867659841303467792359253161442950233505834415210753940906378549030717356876056947262153199425307350828874803108127762037184327953358522521129330471031277360858118322272491201587059239889341603586716653826645404558349124777465004526586022732142063139130533430094728640370339782790397187176491381491527584481469983140829296325353030560869456263463288967982081632719680094923790402228256215407995819339264124472909210728320610932574396857870725615396635131909600625916371477066958015111223382365648321234456257082696597800808450814526048563944392374594294348039850222556688236262623168812709903705491243568104772798093369561520587943773385854735059704633621314182732204920214953441182379824783723159490648720699250126467812701719016976014099005758689829131310702205400873608513008752846979056877134047216752869775012569462193599312516996511047634176875696804637828950958846052877966013865793145384818892079015646159582594630324292763638778338626353637825746364322464055582040608839502640476130445912943638749161097491659911566591514205779297860252821594678731376581972411323238288823367627394625645632869466773900061806932738127972606947472993175726789380381117539632419315076184357689910055219544924064580582338961046266159199673927482714227445715137315887096002049418967134378122618240586779570610649480285707395035851426347726282430233192256510391202679789801214975299049149582679438953741000933714679773117301363588459823220642769782412797581953360353251754854761449852019089593048663780670411732636986019596042718541964856065884243098886858905690785787077485863217521708215453273251892040959972157749995752818063278813731959281549559123780715211929356533345937581854441100370487665784331735535684860765375788640724041933352865224090695323644884102586735905852463025911430577163686428594386796807726437018283184210559232423437730812962841787487242248076389079962058780608722634262863018004650316218522519570465728497604172463572515521580420832354261385703601628017679588680159790656759684300127557205730615579750607756045600400364780414006330902994685805084143100502111156023672881372501662771648646061610966326534900526049223619111197769559943208414776573705993115671217271416763268531721891909155388294991736430680872360014259842617899135430599769861856419867179985403172075929560884867974682811725600033941611287629183169934179869629258015512798279603008814416220169313778882953019939480714157692083346609445360740788404128919626895420832883179915470060014350298407240298022911196449728977006411597149865999948447470622102712836747111866189377102168109689105389122424222672390335577083682658990624408979451931319643180969177262485968475062659199593910290843440302702693762192922764951430932356822003767702854500917925761069035584882377754958559304543502873628598123082841580339483503205112926067260284227864751271124998634719767430381760256557221348413504842769100532175189032225722051415801022979948742361990028308990410128661156852356597234438186276771760362210818362245961977868427278465504254032181371604010761645059615074558391581012931788061824436588111477332716543291629996348443220449836071322533582686618996630927224591240700881512133095824767988237721574450428416028952665633382004836662192011018516338482254569790483923833335229408514356489291860860146044510932894464582320133900538188327693769695076376562356575768148643696211594281967268176760668967060659469861250705000910238919074291296223179172657671613686892844767526954486484688009426670203776385814376921794251959397440940208859491954574275079862304445522380148188369863359063414681598377893264190308675800254894882244000650281592693502307002112545476059108299906863262435014390987794235686864980587907634565201528566780083349216108866153274197346151710260862478031110004561102344872214362990410866761676354125308062708283526570199032391093631200914448869618304287263380034713522363361505725672447061468501122246106800759253406640873972649815878987467827165551467662935622392816506113002723371543422967558624697272026682009976160752301836749995336539028316902637004492037591382887596617359348617995185967044056773174334258662113323822202770119744253358675005945988225541488522610638786345334047290685818545808934316572835631376604707873254367993535683653984256396283300404519267133116967623934244407127287472977079544405491864275525866199104241972331777297510556607733035036043583106227674796389707419789372296106332243437161144813649243581684991999205947069508569377975407019240532019821377426626577877404985345799035528848694306962150633951135597374777097148375843757757961460417480666965445733251869685132531983120118088235625103466957897423955459054916887551588850068632822010497057392467814072689703595828916853044832664313909110564603077287631909507753936631437619915238742493423801869414221306126458919191985871599890458317713725408330356542705231632439320002589289630683078947218627202749365546731532524407075842932264486358412540222459433976775673711017481532337083725616669342344686644789452846734177585624062155608298398093846543119355775735602083424367334190854208389354638735379760302402151778307734106055543606177608574264141614800872357001184645395711879181062384815146027629723478699746991510188771978218732160878098316985258085568193198803171846262515489570183058800557454816380518408998552073138024379704342445521592455902892779686695007136947974881315325139021651593754561759038890559725214233720288208759616068940882846914917797271937562269725537522429951782684605505036317862718670870367222234852448049594442083411284427936126350993204431429514021612751417607771144132019210387485714190539538891350009523195191145035026175455829175103205219419068993333146312502284956243165731789787632989267131635456025582889241653223973750271228346858424942575459816386087904910101020193391397881433561724370894183545029862183325788232041504839582813152245884202262238395835947523026397620373688161838858942325207625878417153621844062073461586068584217851416308340492753967233246528350451548465299983400959419552042835525932092952914203797184483406869067048748827961167451719290883545532404446882802089092703280171608395266131243205161412321893795258644961422248421119056202643329167230364899102105378909815610577389955132203492506135411177782057016715393677147002039148412543052036623176082026951079005104553561576365644153292641422601100547764892766523755408575553411390436696060136840604787983872356848619629838497961973667026690413557215083254653471658274180002006939202951128129524695121308753317770905193652038469700354233376927953403228842275040228215854547119529332300146893809018596595082000885016189716934824123589368186414926915774002834342746323483473109161596101098441798448412824860307825971718907941041266538897563282717554110208904483678067120620643332746601254253447052214429570293019953194324591052782718844876945791802408931765637813068678612399355765530096713808447495511501005894720246197142160377904103916366462576418249777867797648650495231778255297987498501939931143572212202121399849514484729564124287185776848861785709414517690923034578451150886668317420536694256412674135515291449493053541075151851128759603203577629298962035221209777493185153261179588228108786073287406557041175564382096911169788371301245767742258990268746836574359874187517841375123594755394685492317081494325407620968202032717760183156112924175877656488742430918162699196062026121230663465821265739237004972898001244812124390382249075785969596817120697413080386880488152837930273183144635866431870126272964052602629555145290539495130086428265697274458440872351938263661036355143176270383673856791262220582756687457024717092640677821991270136526836691553256752171446871763147674328487864043597056365358748808111806205428689336196959459412022412297081897675669238541101805936330339750386188603834572141101565967837196401704860766182696764360742866449333122793493634859687971479589220293118570005592437969763588639773007732054114392414762269849380664352993344589469257910989020900323909609793205741341470208657863289532923559396001550522186269983200835324182707774677706787386477989574462005822514928887254299515853428178784370728066031715417061008822108828176080315604332628737550390198218547603511214386693345272336476511952331543912146854155482438243839888167219687367814544928554290576369020611942773903527375444603295682553847762813453250592485072341635419138883124684773463092369904901281840491822168996417955201700197103109170736204796504990695547826420758899142750224714550042221575361041852718855295993037552966376425683033749236628186936413140372073715825187396115718066965622052458768729547887783651819205962008923138424412075012385987939525063368753382000436819373908784900671714606901375141046410125598468332681931519137049726980305604588314200447507982736780772523647330439498143537502427936801238539123715574604889491145624372207487391032153073409926923835848827212644827764298235379670680953198469285009051437785960297587654655319191050029622087463641459979142239273583685267943874281634641777020036852571322951397266709448103962007688710225794441272341098431091005389808893247513532767975798957972862914151116146567428531883496171649909819481842807417033855594427680188990791342822220487664651773606304254772255330290176405744981406050070712745822613759035846545264001116566060150072996427638477840473086632242941689019381179171894695564437678959947356475286580415173031149351009764552920951756391033841491875174576843972165070864841973465721223745519767655156045383475439467484454313542148312632791909729828238285997787438922809762372892331076414943854511879016802472705922218716648562238675102358255125890979243123639553367673670025021029367342377110847847035372224628434328088825609237501419551684466802969693924781319772050398336367416460247458221552312766470683682074644195033933787039065226935634700854332122868532258904777514517956684433469820766847083133676320479537964825312215709990188714278456959084028947806639433783835851726839167685094771054836389208256680643135123494639183449302842223655268980868568604434802976195651474002572807519629923303813981309176383440515647259010177828583386994833266679367299280929404820782673185114491858103620883078378624012798727229964793113534952923657555560181919234891155287668784407204534623025439177951280754595836086461454113583664992563761016550039854331461685630032540099957767646459055799425469097791452105758574146224883243577633324089290290402164815738947328971072460924914079395251577587200354522277571860399452789288715434283740066694848415146626560189233542621428704417030945575101077149626671637457873948215238254777803284145933272938860912094446149643714798301238661823359099794950995734962917910193487463423213664451969765803447892079802401231821885583374968168862231783057320913838845255865519204957940176509791011119358876088432757966836836283130246045515880527599373980601643189818851773670707908307333148079985310551505877388193553502888030914705944252780442916464227744570373386777540934307904767984248090908116452392774094581345620093655246435125416340222081508027685865574610452208904558239192953084193804793589035534741289807394514164040280853210692914088227943125856718140538691794312786562034291040314494311198619109835650974778595215479364542210530898747685940087182316365560686766766934354335168666260076642528627994886631584842693737860924874340494661581887019368455118552637330790846572461793827639739051825598089099851313500553974895163922887768525752179683927891884334632650581068928954116413469512186568141795257399125736924447231919753357052936999638302823598111774359439371171368267323893641141716702769455897894300866044961334189100297777745178105023072240206948059327497498351083071485135039240891246325417377198034991493706898247691295946955575068717170133841876214804850485550903076587090502267228667300676566866455325595138053170505637823066061138487716528336187105119699536996415690003543197814643684416899944693955295256359094658702478825957943435793471221047135039536093929973177026792381358895370428456541545179083622578925597082394208537905427898638918721874260037696210051263178362778449911012761230179391170443721942519856107735596815498048477155077298392174497795106356325754756340525430568616134053663476273299632563998440403824015667686089378639679881834132851561212484017827567994602890618312317104638308034115632993626755400004535759323782619308679863400581580422962685456341508739373902712690472907564882565586991942202966476964873208380746411801683477618851105266678923972422614641317809481197905756549878875159859225430358851806048090359881866867147774902906195278098454095639717202484342066279060467889994039200487279010111062293537488584699872619526827884493049443305409571030722250318587016319287791103996339241359796427929658802462144909639265577023730064507056543151894693830571540621540044494000247825941643796403575546651929339403951861892956615867387261957764238452219683409798226375019716144654077920270746563233165771915575239153779638298211612708759567855174859000933117170666483844028255676253494476042652240328189510715797468809046070213743710663234007120311814779198843175437031764542341759409912521280411782149400339102174387080630042284034132687745727212494720114190300227569115802170730429631105872394407784910217531069743607914156690780680086080227452279019436391431084616721113960851559201232466003493124865821139949305841425652041886300786976708632386389597738903346169534266195071554672967456248150934903135713672170309857573870511046640090582065183183303426994543335603713055907553055163618766828046526444904520556090621053978295725455455215403415378711189633455152659180874345291662266001229848593124238251119606448547273401618578794243198217260341839109503810466167590056079995850132747499408419700243697500357578514372569082925782897857747257792251803947950192813866104015904528296014642737412767281054557732588505680524728991485327853688884952960974940936189642465216749528442477820072214692319678712094156374098433552708057625704663078239715779710615687995658223551231339928755145998772155701615325079354580665042378900000240600272145509212398747023971365586601532488029013207851779292915235431945002491572892772981157461722541563732331455788558758455901832340873899102076000468132605276412028881475189778462639419860141576324284122027890173686273313498687476187941173122143141174735652497069072236345516449435745897456299897896189037771821231785891696067317847526732536647850816055743987437738408171266685549055061845331346520206499865372464518390745004209963354371291818857517634297049684961876066004463935303329965838860617675468148624369397242849374467978746915485261371605691344496730607623891467419928619900425394056749702843837551230548148143417105635524610156605023443462488716537095438306771636834598832495021407386198711131368324744749320258743139137911842537839660919802504042381187539349044309073351987646382649404948886331861007162208097696826857836519068018770654521401520708511487201974663915878861728073075170398657370269987542519461049515360925395326522458882456418403942837621894178244558496873476697722735402036049534862950428981819394364722959158507027045009889346631905323374617297909627799223017646483533266611086229485665085270868503556243724173911524385694916585936532295724122490290347562336885223286498859572627151220081782787182533621834750620214902759595309368674733491213176762018401954865754695596704696415614699884914561575772794888375788236854005730253851963088106485947673291090204611640561501275188794275980591599768310717753717961281860723208089002753347516045173140778315061047945200031275347430574363812070865935210294283022752541065733959872912907843593426873556327278427461015920703694418176964537464569700786270412323657998132144867203077445667122293150452564252617970483625002550742943006436856520215686368675383303647793075124138129106933876518271205582079345747896973394116813181322203511508718972169205997898668292267649760335981668161888541242996151352758278066173121578962691576258849019275615256215835314644440329134470185456065985790597061646020906070788861811371215346323422704509697028197317118297645228250113433207062245295821982907779445805724982427892305419620537206837638958335680409991197770021117179836326049718964989205519984203239778171078637071936400216150240678301359623075463230880693301597472481381679851391869964050271423636961779745338723227598836454564983459819880373481090374866595109334524808633285246191383582494508676766184469664888091567962539944732918307487259260237486617193278554442078422201197533269288428386567310160374800575514147201050259848322305249767935380565634279501241814303158879546297879548957996091466946816783744524556197596067745186398285618054815254011528865251173034880133952769287193278198541385636531634194862212514993343411554682105134614220926371274782357517885506448235519868045776165572822070324947761887450046632320025100939347255152261199000408800693205969814930204473267421764902135504350603225615310448134053387763610827132684653039599226924492743812489145439122905237134366031223177710802198134286856391262434817313411408883472199963805988468730819111381225516680615136495526843361322545995586301450554866237021108861010017343955801606338438929337854999299405417769602850841022365003519288361017421528703092163213507771928156398926803467466668663444534205194710393749819305773338818623184153372357963335359196208648882054318797899463687810303319171649227362585761607712310419682016480446682930703148546516474668930592311503359925426617994907861759401174114056124522285027159672388809560129107303966109130967698441217592193940343436538648298415113542809726140500264742862282708032025555491501925488836368447240292418159495427310431667487291284230864857758424061542516414386901358067484099837985448857998068148565130222244819736197302034042831512983048051097183756140476019838420998093729714157423748900900965264870047805929362219254090933284263458241835032904942156034410605292523168707953449075700196628623480276612734918550891219082109947770806440875552938529669366110516965359787650877242462718140628521568567215511909444862338946577738657761904433189914403515316522371018525722973154746939746756452710658782847801010702313752058147451439003365935962159836399885711757247563973946017975754391981977943303267735177155386117781261249370451836001639273927906014599845206120403160648921576758968917498970496019209318810372642143803972959783462916524911571372652992961957478320082667630447319394220101394069049575636635732552952185285769409490590710109711006747582085511838299200749951743286048755093421545389822043876221068667931682956317492839033111466413203153760950578981143022545929824825539415107971324538044670919641892582854074422893453014788572671621324455765606929608923660001432342397185037422901002117153544746855273102007371431764084042688407306810056917096250611683606554729483483303392939011786708741127130338652702501032093314914104754437941094736018402914625394905233738039928209227871137201645663773531571251480356365599263086156783697667574715950576371440071167058057085278192439447749742129927756725739339865982684775947014712374120196488005590646556315822014793378705280671186121721716196083517708462157704638561311767549611553879437415349092394313109273706979370946566254336496832280406454290934356218564523727708358217731474991367573546050315717156506366481750522310756089397703110631900158285371757234816310226039168796976527382552442947658353287335203174050479120695840210942786792555672949579061225967992234707127594390636596978162198879576003569152920947300838028160937418844174280063441115786750143309739784874017732528965900900847674814621062470412745498420106207774826855530585062738013705270382482325992028406896021181747840830429833721808914510774768119101505991754369757142580395603372419865700002622982609373875007854914255356711242765059152668108627989193124443324757154399243581091219986427318910966199318943766055629401997040831600392565621208511847010840905636470284832881448067512289981473667961485039456554244470603678718935029656230125503528221606461596172446819866019077208539039285906196934897864236951909687021947932954067557215180596021710262172563713065953503950428401513869769326781475805143474011785907749762983183566375009809429977638494504337909927963048915663823126765749092735003572010095477026562024654451979297406716491059681180478599982962641114224364074753157769157833348030761459011604258189003346170406716903288260092204438033015836469575721578305322035074854771258917693222148534120827389586406094880542560429535303398590670429548573369780919645515130088135889627297795251069260789759756490361039408230217528902274575696283133522146762149185875379616152905374925253179231926685482962249722789245090260105317614049691493318834515442856580883462701218183414223904005005797876367759877123535424548134381384549018806022039413221777265084172924676089050197600955031277527325601333407935373254172135474746625660810805162060252057816344735870484775436582764067402807563486570977522895341215604772399654961549390189386594182958164767287152858599717751988895156206428064292359813056158983917793176625763525904119482505149212740686409757252271054669039816518239715724501875311269303302000761539327561287715495425861450861158473610083209192373510875736721727704689745816292268443643383136620486407861499321556398135269915454526344635161846858438990903954125019875817442295855459499267153975067249508217501635455045218288251555434111229694868015672387263800391671339985544967656659529232567036359878161129843137646670017617723785538090432766666748580292392587895243712880393638498946739693995308700127102992128497301076433784523530138201354403890775139904707254751576897986772458632616849089659423820952927208633659046544702515542242786495179522828094968801905144087329796201424378141502250044209968556104587525654974662671807152454146830218846869945148881850201781618584711188915208819957576330256462845283646795823007663909380519191460805086778597257788935639183770092383474992676334582241847131826242400347113929769924529158890106092652466797528746481916712097870053650507263836779890280297454318999398481535502326551002608653901042191986658319714331154555402042119452676186903825849631899240014369088166626051923692506804402149059782407478631539844222314727237623790432655380205801686358016905357396420083539742280539142695127933655774071891131681724639762467258230979225818664552354130771263040469094969504309001970110720759684858614300283415635086621497000875857754762849559190063934410802844332404622930472490844281409872697255293586704220428052220085071595534468944686376826396906464793414084060979828068268413194397675554760881079466354115304928963986748652053427610621245301682862794037590233619681954702198461684930460339153809672447911728892620734461659595915320601643930004702755777585676899263952632109084328898492432929441312384061457302026798466970540359426672665059500231490974341977380170037283409518865648704454754961018953974299262206732616961601526785338235053847932143743883538277018125976975859660309534909992078026401486230213354811103779475976468305202242137188124661569900649573688465116514189965899962523492105304683420288033012512923422650950902811415133372207199226986098419560140599685733858114540348883925039433195180785015589180905933772023596940711463464933242414355328726369291918793382686458548393405124537715114037649956837133606953873964749536040331434032740224578560572604089334777921110167718020476027706851972132792564026877206926452652150461857091929365538547057890726524056380900548361014331046510006606793135975732764733119772158153942266260759918160982967169254149684502719471672646020959095241898215056627305725718394695512715545063806470917001680566301335946925789204928853654632550062357746906567891886093909559127784280764126030397784021140790636167798544976095621151195448654321376062827546565096657498070484153599513623568200669371633795123392403459969305347073649509146147810827921545233113050332873604422679957589488675009712216579505298537361049495155979373025634157592919839003208902989064103291258475151734953424985253753202586382176177266938070332865699456626495745373168960308364077340936879179879360794659109618525187716393454717458897956479977593328883436388865708730953348029264941247580567599137624905949389027587194161289600609787249098606633073158125757841627459208703333798619416194346923114470987078607976864980622026802167985380149104990974727487874259030124037386252607900408808532217847981781892540914498531625675866721832208245722586492620606775425946590734310566217544676753004640681987622000785038028735967229019037244666538087766379480432230548202404792004624956228062590118923500704883289285722576047553212687676850544580892440204194707218261540620606146719770571573233008121691075288851016312765071949849816523023030346543177913033950566032799080293648773381044768679085002681420756583647863464025589938349341273019939495426560510057709807701279745151250847650960675682300727422360632956134266061973966469183504506638925935555867665227189734871937134939323535135978885219343938956039678155973376915871840270231782892636746881908920258261008237386636257891802590218645345523096889031049244378249301038712679490451408850645969105847830972258058193563035799552627791028132555436791829770841353797907944366271608520364036386455596192115081484040982124544458995201526761018653549754965859777270570856711456357556352660769830325248121482986921241284300681287685638946690177872016466149466728661672144916996399578656198411654263307099088111730572087867168540773706162199300632944979778105925657372528861897125281615139805812697808504172970068507658462514957388166960903621798623552613057159601933587490330589046502912675585462624545968387791180691743975908847645820414249285518322668384759851258631477373569243389579207015275805563475624266394432913866839433743974295073400007396141693326406433244565654538617287269809129555559757317234620807678681903348710800311849677495751834143700644569098902165136195119542031644997670103961892347292292090449609405529471417393205548717229663625755923333033659139813397045843759664919494701660216112721189661400467044254815000242006226969252472788983209334618858816609747593144802915323552326565725468677195824531377665324005839668717559710260792270582222645954356955109619135232662593628153097487890441294392531760729845621507496424890094898265933814827115616224517078088152334306648967288816618154246623732453883633597289101908868962594595785748344466208505985515021920471678790616184799273999984522084080700095270800166252561516260863191585693351106717217881036560153451453152438218105359138154147831090864019776103530645810782210893459583159866597256306359497512091938843080601995614362228424538835561742138102509285216633189248201108025085082450237670438223940265224622567501310520763392482672582873092883232750726951055137233217377155052767231121851958129065561259724019768459465731695486291840963367177651099555130266034448741713453686069510609983605191296367448398536821300847897582088075321982168868539268206987743164953872333494950288246933172720642236175467598558657346437544683935191202168339449857241182672078579939113494767602020953136355091375842232506299364350761956047438051829525224896340516159494707925721810437932973256088422076881243229572452188387629019848949451740816890604560120500856061325170966960793985865693532463888036382744142945973457847279000412534329923061675943256386221649441234467780082705463626455557119897205679963795633625437116522744927189173218030073269797767027529503566224221368172434810517939139532299394064747152665276563395318645795486560479367467464367276431412453836708186789540980452117110893167272477240739586367006117908249916706834902504223372228724517754322515115140551982766097782344436675427097253112284902562105431138788037887334428121728930339253129632881026042329165371057664782626427704495314379061285738320576395149434989009259999051915918941952922697782781941633056683299074663579563181114352796353072795399907069049363754700686542613564055064918939726441039771287950296995033975758802939659123086331605525093037532572211750832858811990805240000462094738422967892546964650960350844229674198848207858151793181629693474992485643665654983031615219369928256301749982666546893744167662628819893999263439103798574743901774926662885779029486651824638259155993063224622550164639871715041510652943693242905810847585909095731790490092974026586380855108151873551799201011913506105663172354521611792428523311334724002467468985925863208684038504871139176534039352340765688236856631630933868299680729175765472541077108605106792145834813831877555425863444131077815936023911501455898038988425361765535878663475848046203600737657149577046577773836808255548535471260803829372018379438407892115370573620728594135783348742916844545415380502369691146198862463509029076820355959228781989179210398398205653098054506737243232390296845374126383495730847076418102064027001103230706856132599926164181934396554016947548681669186564117197467272372266552156823703713395029662849783749751814222331243041482401116387669917068385936287728497437149194582610245022880595021726823644576446243719277901717801117757415096094433965999673339055128125535907163144378958226037548616233583187218669682399637633557519429626037846231009364992835260467700447722258296446450113762810393067136028232366792187872054155702991554860316796663640527973913076836449460586959919522147530043893495076034900067688473261106775443678917585574111475373982390486318125212933137793475986610398504381477805365175163838772144336388491288576576511117144605565235052578170450894937872336229485658953784309971632160923387607838826420236100381683957928239542168051526234024297451440111599367137108286923743648499872270957196941994677984353693253229444547563587876480220771088866169987054272265698742019653014527558745536197407915790437090398676969162120296600792961449649808273715450400183192372625323604621003934515479082329707948164865951325417176004180167893440621233674674737993743754335881188161681086705579905808912306426350613614487335250649710315687626225493499847445052518141909122080236665413296475804464875732935258475065857035597695403298482446427613088481331372003512324972323663596241588258589517337464522824889399552912342124577204277443012184140196832965957493902627505224100379994772900910554596825756583876024311202179525533160371966714962577054691653382787365115866602345526247253137647015895126816770966497782196515026922054028227995509563380531327601288491736243317646902195517826300521691465546923673067556255235876725150623679451198211915308091766881264596365027649800432054778997464378076506482022551171685674907476969243074576789180856067712836131873578951585208255886926596632697726993580984811924231705311266629739587589312598813563224337755738276393738585937475389167675396617203858728861259394480874988376430465634531378038708456742432720832488867771027118805394625988797429455059052910926390949186088663087939293021785251731491756860738723777957244228401320154112674563570446248008131492389425892474960807359051987306735212799515013217440567606583425323425077809799148982465944285092004330360280784249773159639284610684239639061840528155104872902375301385701918891335641861264584779278063505973370981563194687862045287064588092717836066346537254647719714061729630898179301405536085135373398864976042321334306071829848859631080818028232317043093902088536378873617694967473667753331773063353008145006745419307937736014703079361622364441934197255898723633769140913578134793479914038263796293780122808502188253742190561447651729371015270877936411141553520808462672118185811755728086978845950241317060885363029196426536074390511915775071102779563252428050841046572346851072674528151817027949562698693855551252824055236001993157911738989757798080334228728642058926397657888664944364700772296068254794229325020109481492813244047535528895571438197168607859384745637383308762343989662022144397428583868448559105011977320221374958111840615674486466157227215242528904048795107380508033526153524729696611747708478943155520245855449223943738112713617208344319184199104286393856409162194138405257947009178475413544288916543617751592221988520420868218617161114298596568343828253568608952981958382216157309653011711425352544349104274807511828643245106934619796645645009996573904502559488956356596512658296051257500644374044380393272820514493102841343652558381603678971894075649970864739458400473491636354415383373937070433045941456533824660650352503395695747712723480590639974640564387535665739168284577442233403013962187795936989705440904667071833523609519552601569322442266679561894725031323965200129047962527754894142587012876165573296483331282988062966983787107292626121286629696920878115607419757315440998107198866287143447579664517759543224739735479619231153916979408178331666453915057702712683464804391987314255266519580346120905919967919943030878807189640913389547287403083378740276755825324715512329670321592040856656419669182534589568722204172494988557213676077245359122973838557975583148117450506181784967150680231921172083184627237398961401360437123531687529505580760191579086300638372030970621156712062977878320080080306721218226219111080604126318086100183632650176963002034431928246510050463750115416457666233600715822536089845346349125450055927262839210560064144612074937100991347499957719354388096157954756904887531043516251247964713455673418759271016634017665793669043837399245683561313313079465059521501309074118052063079903365458332634542050605842696753915595177575411917392280237617543646039103379806995487715725155036138385548998051026870692284650693129198123910731369728386284543494822729422335113121923645276970126711565690455733567496201877727904172646615131652549188266671540960227933423150223495372718978567747917228021056616711554161953962815452197294996377158857829236763227138489893238327108965601543110966710846521391836503455960500241726690980604069180498797526773217908802299724200614951233858970677766267130818024858582626261189900222174822938270080390328673410888046229728713784929561132920915145227178083547645090917019251541823642611021952362989597211498700655533900299339312991226305278670275764478121998124123909342822873246528450601399687654156370364024325604757356523840712854848649354949134495150814313054840797607062231433866508667282941603138433484839501283725871041806158150657576164361776378042979608392503578587896580803236784535946981158325565525575097146657373752533895803174413177102085277596650351095134721106836853610102090289341606663913749710810253171537262840381294962870663253708234217376986390519848151781919496009324027566277327422105837184163662983575075724283299805398309948509647410143882411393799823397520895576134583989879221637985265983508536573090703532317444264871498172965601857188090577931448456860689716600249922376987178406256746385029018388427883120592621917108203057658839718144730175922434764060933157956002776597599801800592689115778160577115532695698531812831234901516906484136148794279019894439750865028140576107270218632730964557411225158912757854472018735771971886033121563617890583711417355448206624100536709757531392084638753944348077182598106172842174917753965750684578259681599499552430248804707980717321464624166142423699721328992552709935443449081103717950313459457334242292883575284511159993941915076970748374673364848659948654415485116143639880758508950620891308707622929560739442755484703174944260051278446557384072355141979808499840437503419701834542090664106749497310403159137600319767382735110083171500432468371410327410545988440120990665406658467299074711762636986579224502368451606220972343305816985771021493174464994512930225175782065616214977091238715778640518297745611323975139174075311589658408408484256747634686229239335130885676800672286061427581279867964432051171948366242745061681106645359147817846505763608632801064164604083004486773082663272777228571031682351193828220517192338067064337857085150609103432024028655728818782854867069875649099528792471703337397373317903302670702290489780320760016262397712663600051306118244203434143754949984451307686753100564705310594926557389462707423403377387659992727233167659189868215952849901159968042104352294800853230539443155526868722847881931447325487306065348133147856745903170679598395314483150388515003316245661136394982755854929611878204575073709993571520313570054208220631481169679698427197179628612824846588437882216405957596193697579984584967515147866232252833226085251475848896257734646445555846317235814181003519682329804909149854950102441328842287570623644219937192833663605329648948448677648824554542037895973261680936641728999546414405243874802252213659706506833247732392819771289445429353034029233607720998683723801597015126018144523984360780267195780337022631980510788253045608597803314809261855321540542275840653757594960390529943421899281165023295463751467746739401551076729263780475003971457835476297241710765468855401430739806692320537949506768496614424953457113175972291198656058961928257626416988870831825004103230816476927263021988721784367956093861629009778698183522638988361376341569212859240723797336569599829553396471909192441218602479984967876021843748227229810050166624393693931394272806376483388369139092448169569039422672018723582323063056899339784304118750667284117280679145167367464813359252192259132536556743555329890725144235903926075710818370343648702439798693203818324786829988565175917031390203675586342552648453802197839692657105938530173106443728640553197555915582652292422255604677250168397890918209905424781988619267834923681521882329078276300155575638673666506119318835430730651342444777066328537028172071051064259019682471004014251123222731466302489566426231515520207105998395235363962595936100587017817857024893973226743096782156063888003728826997324058367371154478302713616776572656540518444855020179952128377083771089818949021932769303327705969153043438277711939544030274982145968280001521022796371499827365122828553142951761386195136919774740871710721568396788327938939268739428612099640848864525271188646601503019822618759724819265256491099107898030380459165195690813863127871229637659345909347126250970993480116845829387154664150240794181467350837835365075116963483798702308228019114832223807042329011600706199978261960736852914834804070458550347269891270281480892204121999032254738582347496234053386775679069080002611820176440450623949726585509769978252602798168741547682468666358650286885173268744405003852430100562525431045169219938677641042960931184756854493246659843956421192235948881774950796083697407386496237332240869439809149262583140316977259834880472576008957789728082958873357158159310277102749574415554997535818907349646862456162594709405210729591259821757166146124742366928206751611108234964578146759518366534856016143877489386960697774231780621880509736947334802767923926190240650997789443340381926531851696041218162034046814133684574073276194543277404410732412963853017647199708982202125540576874189122445572143857890059346248700195515858314044145690846359414177291224682119328875653326343928429264847584957500379954182868821239071824835660301607310916945806840932144277841894920105699836239314372622692689491729422766162387177575995414927806735355664968918885995930409752163338658630151816996099815476043981474444416631143869328421568455535463885808710463654386970952999703295712401935890957860138894457867481140603660552650407265101212367438907031795809850144247480179298444623389913266473655209580706581780281728149560842943080895479357120135405887855666737353496361030083755940082867091825430545192270543889184750413717691263071652435213207415704459870676194869453146486511789138868972288985308219419888142762207576347122622985292516284872898401768736690901317452685930233138579983247469604583778911590458960690587705533753545959996412423949240531482198687031242595699732643085210696417232136264132083204435479080227210520312193063584319394118667394271031098641759300781291560569869100322142192810956016494428713508353541817437338015464900612564354929787631679760696509088865399318615539575871876169512630756476264599085195655654569979519593680074525750324033411368862345282465900388676504023827813430705939484877396585403951175190571502833410324769690873691010765961886631483700514368691717743026422933842574148519911543141953471633150633332892349304611132473271539926969689198272111655299519858844839134873500515454960753627852091264821189226177522850466161776165484378379646053727406725288140068657696823586451861562810036800652621087049445171561506839289304913270232764800392516381338053690699782494629160028808303608453602256567643749242212972381211481547172188428816277162480749454733343970685874851959588316443160702534368570968691177393528157891149267204114525929728236651665126263415974490777168877083965025757231842150445423106274831266036544012762204894068198034592879198405030156739522768681497701617329043417982307379761894159978364374242400254403360883130665956771955651622277208728236693801592365768232579796709941321069324594017189025081874807231534893299298302832390293776738912389798115701342633562851088329609969567857679858180795477392507598626923624309355343707071148954409891969512350516566425297610272465799417892894328823823574257722903802282555773115938237741433476133795149936779099693873083982231340999803602688657547658346130139782812094780498055221967387243641487854735779427103450236036001690980977671202399689712683257838734115292759939335803641145861889682429190452294846784906183415541720646284429008470213887012783221902422960472315109341773945993774455392825443990906118624098183503676274874046944454626271901707994839985835622785132338193187497557739484154907866294586451958263803719851485066240261589529136104868729121183904629303306859743858497884453003764446013852989544135935647064916811265266772426642758131357324713744971102843630846283075419739933257836798215260087649847467847390519736458604357386513284551973044683400364620094226957937633337720323393853041593279370814596368575038307066283935164488985366820407620399153520207105499539684341407079281298885925933726573722337400102163611618075648604423615055790229260646500153204651210063667500567500383369263491280163938230262300826268278109448104972587948280263801815773092487033417405575618306340616110525260016067640440635587707965639351114811883348590426451640308590781515232261801565413894381530676414594058340142288203053561320449947683954574404322655094119540567276277648053349691444696262672053876024978874141073290658788166332587192892648667211079059935386225802768058048693020237845022470497479726746217658592282825461398864489886561298236707751132395613073255557950301170785714639302096845154367575587558216236518635479266222728705213367264132849361709204825826798422132461288132322927006486447865377717284359364419318713917614200338662480789793849735177123505111633962354120525539347473671577069900360763227205491811568915324441283106882340321809597434067220951370780402187421335810166637271259477287529264896437193967428075305770138220162403378965959574117539729436189187137020357128627411262357136083030644912311106117345620834554439483490752059974979791118494306328166244074728587455466798468575963513437261447426815604555490276431530013767547500751533907110774444284795713990315059798796170822251695432126728611048189213218325206414514462399987476656413568389420480389515144993192656739262138440725240995885104380693904117018039426446185264012618319711271180838818946486952402565061261885488051401368259048968040880487188258775634615352529893733806213149359096664030618100920326673135024306810563902400279969831171815714672642425719981536623473342186427562874522040179040774579607006271237435338763690652671006393172481550175839557388534648044786279830719234948227672976794335299301015055250502497187098568647394494328144115332448273796028241317569829124388173887387620985447932290966313570006850238529801252689435999765234681103678883809547320360692149615496245312608319498628886933649786397784956785730701629766736481829525619782689725352446467228041708423766064712991679311161885269348402010018991065270653792578527330776735023192430090405523555969799999147505475725661032367403386807175661038194944086461817890680946886182143273370553611084032340002712055292300004996377455206289653158283415503248666638170915479933152154306776739657957699811525443458040380357530349216295986301310705058594435090723613452070405053255763248151217390136976518977870343393860751943318752344222984215631075239690754189899253997006128583843529977158828784773436389757225141274907265449250036149164657380330582216637625438484054659741103014426628395086251159868074805383949458439593796931994980275899368538635430059460463528737284080400097646499115773994336147822985503387458770303942188071578176092417880489413075308396442175205154279395649024425152091835366826052693288095809103965774781143716532090214678177615307312779632228996553138076388725263368672555097970060561403457334466949513146639694095007176600847629921471411714383202832462353636212555402050706591244474971982723333295561525522457857035686702171434988596097197326011734208193399818236384740489267293593781708024371479713018660736991268829677460822256297789133404345636567362307894963239961501885221507710714858877587088310747071646425134148638830761126637950191845879381112306175306484386404505596690719797412333980662224016186506760913499361813224990160030227225160360093908426801471760239083523119431482827256558211637145415659130224635552779377410622386228030221499249493988053312098898247833631551735292319534637216913886983432350109623695789025028819335152477762206435797771904393485858937556564734642633992617385196577344946914000819361783190050605529740453894929599099739822610790556200340251918618836209061185223020641070331946277924111394253799806415114299823415054028825003106023360529479829412801368451701494901573148941439634489512623303793543906889365761247759080317268612275323257112616659912830074595043649488773189136518709281839148507965515407233042856840754333417862130941530179030364524057166606894200207777233338799024463932248365707283328109253584485249054348976092695487343041893867976084441531415355423461820778480624638633862347972175530217573440401020582234048544957267247039922326592622526664306955476239386118639679410679672068948716318130667976157642531667791642518858428140414570148487909853299337237595812982544293146527959519029157643249083907147704380512726899311562737896245041290676492983614059320842874039724782702868724669997346103526636981631005222000775882944994441106966954515789328169641992436163715922310474273923288441442052430616086449996506451823653365611630309073909931155992409033916795392362006648342963138700833976005065114716501822307544215425527470625343195637630790316700073339541073354031292489215762911636900698365167332425937569998809557392550589666047573108335127482833480147452942703798005659348694256796631078237128465971961454257104058557105946659845306375694558411917792469700570691907874215439075495750892390712022803105664674873856299782411733808626998372207201481717947378267538033269095366821987171601382588273415801537786030211463874486246168628673786375697019412836513802190617218194691451596200045378529431140020978631741614342617129221003028660601707705170680731374474331409054082711096006233349426113147820854475526326820872823392370090280358093915530792391110306082716448961779296164670662992878770192062256068926284194264764205660940379742242858804191435820258229063185732637873229930177642788085966609120781607437054556867419105081269723588624490269012161485035500380258526752381788308486372389138168067563072457016732361140655851380484107793897725795935681068871648904273426314259664920587046020613623659099496452985903443430913690856056787714499078936260111496617086650403302161258997808391388990256186825803930103129570708883337787436469360333936784771367352068078307466887399066839338309676073702597974009552264433260330364923708647136546514735405832740132571047173496571509916085666030966063761124223251443093667710901174100749528142073443546590629594226595794205780579431031265652395621461571328365731992387193854389113409370093556197716172632648242122921233349946624557607578730536982977988468282614853984003959289805354487917146355904873856507751669099840965995403787285213662872986309642694076795255806007422134637854606771718461456671866584232946872928000928245110315191263129076050405957136924582971192957497325031558959275055803620899325024037395557962545591986941886588525406234519391204554950955465840025624289112955170484082324150807064520866702133929628900537284152647205654510006049654321547656859146997543957322139164871599493846652925870192304915069267065308029211650169827015612345765487380088069901651426382514657707190419811332203099515793782210013987203690500379619550259138357711176717914032080421077610922541351955372321281034224469717968336089508888193749970290038934337579011956330970601925140611762136152919972258923499540287892118483863391183608054374519624017844640019370596564556400477842518775357237830624198923941229543592491701006762011475318989464993048612518250348704253331470046162667174344195307305069159406635137938365317491517813929019106176826974485618987722728372322653638721219831994757258020508675430874427922497708078617665862998435416574801191736432410204501330197428970262247895788767397135656171759229375078771088587353708510602892749593169513107971165428183037648844020176495022478526053223228950063536443636019576463163181489916681405973752624987275955681850963811405605013221247540549660514214292861411955400073427059020499397885386788916182517757464715722213125896809387912060129131398745883110637983172353614165956598901161497237939877137815034462317535750697778857439686966540210707599673319413772015637866158320852434015212556468267894503011991497060707802962300690852515915929084281942497687562876387424393279505843338231102434835644136446068112412482528425245844040562344868487129562900490539752546901821975719647207047272001728261205831309017948991087417794809379446730111078654759330658859468479668238734073971809596421732316266929485073621733949582256223876451406643867527142408070833434985181715642906669668926784520632708449619715144988189360590298942564886798354869454514410657471043005090663660306125891142592758063787462841235803160510165521892457172503388634413335630191872258146112084030147482429684215380569527152245400098581647775755254004559743963425501632542715684326374976403108519783585874856834295390985321364948268436766119984824042027607191025261233536033589293377016112773291576319276994249547062054235863419369532784864009315786935638622938543464080767520148746010002260847842311927958231510484616049642150452344877267178341921822765947613432256652940433382230110493055592937102296831863147465960468975227196739010891753330328145110795615100639681407998264473826904780801881186553949468526714488405309602807558085731242906607336274148035303683173582212193079664136247018495770570179811114802829970550043973534200731325595144269898775837596704766707664184305519799333188926346350705464358895456133090030501413707162695518264527306363880255788567885792427261518084483643197677155771838470951639368965575091425730207654135190971955380145598421239613774304886967254965673948157134900397816319420931279835722699732593257082756186649696505001662489327467708000636206749513551612578015834882560009552411070606813681458068850236172831564491547621910047685119059672664102337627470367629110107543098673683352543195927738393404363420651661139571698692650860017427821990608169032780159838001196911351242730219076855301572342841949860985005832243183157181690632093456783797236427928787202865113296322476681007178403931063412961335885420102686041875790650913353809976212670037380681353567771556082915104732866595369015609532546313647287585541012337086290208237788730709496265590932965425425181766006794212011695632145942531957631261800727154819030515551332094114070028979088239727100522094176159439301608815611285789005735088772814225952249113380794781418106201575409549778240239245226476589368446897960206908539805300963372403093168665238777779975518721839290917900215684231800249786049807822800335463917132679373657782473034127076358796904820634158892723419208393394747091242326137382812033131149904257420701303024247749375438997583101480805049459076374459673251135186851722437269500180931392994143793752677373823782768462552411453014337336417141871603615357106024272098380787192001147417512571541175940889444652751538390114399415141128999051414537079485613303025501370075624657555499477823421123338028526819128826702865915061063685368420043087773121573421150601538032621944549852657243092373466777073591532162507971838174089407354708389224325180266369812503579471029543226384108560111374017533723518418588770914240960038270373844190299401835048964836951901365758391276844622099410005615861498226292339552423803958664590339013032981818796180522585351731798975124031869086849763804026465508508161441487106794171379018015736390848978199901444715145426087070870684562695074159375206448016048464055572682225600073248848283114948954103694828187326712983953853178547310723116065719424342319131434397774273067550298623374996441451632404911623946577959498987833349052046222777472034741983609084398691099659189381164690514451393209136602682557529868017435587188444487024174272061578900105861730815935532769345489450634943224332733582458638399545916797714358960796613816206257079295336731497903510655464079449800501147445313351730782942286463852438546615449367352558059897288238015556655206008036599288339597519743328600042049063717914992082941790365273405690539956407213124750902978745817557554347005630146587655339772679669257166884970755704164760214844715264844351272141424910561557254848266370719511869937446849260813362737329892517452821645584692276622973043607326661263450036258380483853879769888138831087716635652315673776558720026587000970286643287717668971502956519584887888347941093258501008671549637367362203316511044694423031852456250570223063465429037925387925727684685415983902318006868096062270496770931878814662645416077858987861484100513604988553002493195241931564729445925256376442479949523474027213315345997821197235265580572291524528224936961026284059333956527746777308992593987917490359847075771754578333758148274653851652191143158375317462768864915079442293245261953996307584343235154012281207680945714990215921682646751475770167744479738762760729032651307137900741003057815964162727490108804918923284761553786216238039368063076433494298316225702503561917501734183224703527699221583321401001766916767839518605913709258325632852378108897790789029725855495327907424665818288637167659572900663027620807559065863045658431039532663433306583718709014977341036254637005261745988829585943074112302080222055555906191375867896642368560576367951345532523976759538984321187664090325798060165271266901263539878595210365959582179545630041442363487776191429737434533535971242244594284333515593696116839402628689188068677088456381635414203886293163720068771403510399719772196618785147518495251510030686624239329979394233881918931274899639049480269394261817917365584422404743915803880785523267017640489700621660015766043172015628621413285651733709013026362969697185618009329205771155820748764247079559859233090319948751828261420068988217070884059668178500753916045531670813437288959144643868962525274185906826653386127412347996655633315123437882958609227234814444768162183260680352266371469061474072113890232997738892846942387656133139243532104779101939131990368761534511676800445548487902381196196337586524063798231112565285580539286342660718080419109545784265975115697943544270303311779816768629444533667351224942074632413193375459191135033152450064144310924160196735406320938260533380249484151932899914453181373592330335949187059043739726160615011144195776867486152890359274435593661608236037289922112844323961619538887539558071776240493475449480352470458694316942441620201333736099878972529333749105047741432708391964111247998855602596749520954424399274680458939840585412691864691835719054075974955875333086177233903123378531032525467662446697011741444352581659657656742489105880858702956714462711545889910018344310593750017897602197004121601484130925494952968095113776798077423529691531642296371044253099913737986679760806492955915145935871251309009456635455568266441352140667187815320782498073572461355274472186523584468799187359205937169844701515131374624321696605644657602628381081865092285165273525164499626199840768017489342280521496705945163023689773704669967579907454363914248995439412422972411863037503754234004169693117704432895943297428914182994244475501924753521163128179445635394517088283958109184858116586232876048178971572476646527776489960765885846959317735182928664069279155570392003707539019629783167238314320497718425678336001433891082819316269345579176463339156990218589054758571949988601130207097199459873038546251775709120902918225810825745848210766644148224259754837676336688994551820627355239355728550505306358862496344174428033579937670695754869238995352999091453899442321473083619671274675103792688221477851281440572327238603751931065638335190966251835859826289593304812795681380223766576940242953355186082769285742540239653351337344252883749394451333838205439764988080211478128212591851902233485408011026052521936455100111273527024529128301953659201221525294497326615684361915642415257185847413985950842383706827393369712173154922547644673127527190741159729994688693539742789916988099172910957249266430667865147779007611749885568754309215107833093423289312467850919721700455676771943072697362717946344168326781022572208254775911901276319093487401460853922154715984652089295674916150238353535448730029828698549788144974265652264756470926497857950741676491399515974531304724729008585000942945010953544875637220295913562125617823278028424158681036930096569122676189609703875608632799960539747141191686648930381759061540644967068492975619039416209122599802367100724774625515482575682496441808726901587020237833235413268583662426906116049046801345815602962609089490315339258001755062183564284712077651979190011212123443506107536537855597966641851965180084649378848010970127837852880219517146633287344958665912016853651686118428326949953256229276690507346802444591676047830819263337464371379689901415195170643589641044522489806971321925939193061986078576859464279548711105600346025054057772549345402114475062595800729062066121418542897602735652290625143504932819941032703895579314692980300148590857228270678066014218925716871731771974124077722655178352437237188013150099218420921772507482802292119036758159550282425942729017300833481681006839110024279370043553933910256885854720384761462474838227730443397261682868520743430952042769982967402122939476775961776293093690784101462157559855029738807892748407565625306556916371422024430970560179109295682459405136501222743133739221469831362117147434170360762873423001736466621293028517535852994417664429517556580684775286053372566039262228479007922580233665507079933364433313306060900455073430100131800837365910616833622339901440272993934690212942718542199663816215361965737976760184917850869369767450861549182723843156658245749881849483391779973539375866997668514145834168977944313050088343789012470369802629615998749914356518024630942387467801642543885915830624456586141765186227858570884024491444349954092172116515036979846141400451085861634876507685951972626820262544474424096798048747036683180791591809610915401720144952318993987262543970628188123002125649914860554236195900647658465666370552920876840244702015731012612388646513783006740522819974252180257265695492608601400896472895051934373192211247874784727226419315957860578916611875815906514638538804046843717385572625715659857956226093758520471375937248928491136977935021267200799342434790263152009221185498325341732341967799439138606964786049267197796109936553710877315836023554999719061868455984626134397507368985643359078847418425957865688276266970668930007906281947564653001316153426013474943661273186212172245354041378816726194389001987777208828092169717093794968514441997073622134047490002507409758038694338869001751883186671644724048785403796759203439544278273829607311508941987751170540678953276335832871805822953884074428827442663278722521888581787022654326567329994672598659471346414154685047774703582750126895075172411501586856761487370333306822111307422964491040621721479865723492578514977955136790696586263416035007376247195654782145944207869058162120772483296147722234106792028444287618918306600551720146110973316114978528261160494796143680496673317785333118348961995476648050120909443607921216594019756680650654513817767950048475425774750627993684461618793462187065964232995442277617761122601973757887501624411567884555183812171398105588827303814790708659245560238621640375580309496342846454984331376051254611426810299670139216952992570468612503679537809345685687991286709960863169473860794091965450302987622022725484471030216735893748386226299122857004125258394870825078522709066206812054807947769264875784757180120567725083983392352631948531704468348306012661371814500705651795296300832505293538368227693876878621873426574334180896118222166986029899594063513272946311825438318705799529209947436461376048826852875409506646785385855334960490677751778959673684859564311633808561211891304659673113305172537987454760424763575732107721958341194021272654611647696157992436438889405075313156232655766182639501719469850883831603076078096174114033083931646796616755727256206520956186041268276062923989943100448605132379723317751049913730647363525141906485402031638309355926186606819684858950598995303529681491948303291015279348423947240941062288026606988982743063483336405419972465699667060844898264216376877641164731018443221439211728811460987620265062053203368571988935817746225860410071363074955026985444960238743089105816166491191401447250594778141742856171870234033663370746397637679781700893722646732998888544958614497886014939280077696804462951938420043582988576903446487691310118788968015705953236120936071189489343355159408568753973006356821554336557498110224035129517594175581750926699310076267397698663765892778071295796750280848002835708095310140388355758649965236703193350656454083513489533533219378386553499278999024241640838743208115341659728851230971739861429423761911714892450654667061239890200214597981076454733173983804407675470374411602602715930336290897520041206845606463191581387102176213521475833966594485097634376404048427123854626062462409253973801795917259842668329969858416216564761917056468891837579244890582304148139059718868866365169440717977706057426677957494824009617257529912615002456216118887928257231604279552935846526797479924558873269222537849537749989493447341192924833866802333936139381148691858215963469149786121995473757437907189902467128126730913973899014023128509337274313148003854140490294941416424292949229475542672456642306037494204715656343908235264498751280200558085359819982330320568505569213609436972478913705944296071156623952453495000878199530595904818701487849501230446948354263882478170595638341555763130374577273277410452160948625913240028009549795640895604421152363139477324147496674101843920675929811705976902484582199402950047875088996303992570263264648871663842473047416832744299895865882721123603705739704688095200083599300082539878145539780208305850735427344242997509414123979562832312224504848824197972945371945931772378213259041357386089612423708760240579533957362254035770596274218014074061899554111766499144320649511453846937996847378585952229425444820650569974888218030032951385104666419156562818562095860926492793468091073678590622557343178782904609604287686585138664177377158765024359906066197932705134035226096661457377676373809248451463296595041804949351450851533139494042553213655831569700441238794297336447293854543321760168988445356509894973974708597438168915999750929515933094881116873280711165531045782289573445890852137700893688204077388763648833661704357208764084010084475239740855522058448637080181088678371926733499831404585711265930577279722634651161265369463836269304481469012322075026289882099433492633192873656114798425436522647206581397299784256919695388178511359293098483630845136452452629221743598192128321765793156920036733872098648272427961384199478022231729994975317658153638435151962895142717612383057958678869342648717123057763851877053370457590912999245560549054969948735553173001997134735905199268838617741652915429366902349865144808274661993622290816855667035887444398652128967737564295083909637179031220183188946680393480967548430696859370784717139279545396366353768886944203202439202096861017256492849673937399270267423289943899068822451533025299175021486599606289289546302088423273551221272243067898457764875054887630552583798737447474512606528454758997217554003654389141954102435947006183605889332699265623480820501948098237106869364091127484752646206299049535494339149887286758880549614461837044753240191610610828759268465249113085309982140386381203467814376933496418738107826967554202708579217077408449209434537566645017050987436631882415945015648173855028204634724089877450124795283346558744494573803027066182742515496375784319268647685241624259404422931985489619746413683230859502540474319499141796413528529833996262886797388972891981625972586886984747671075395647995342916206841324837880778356532237830818726779154658465657891605199477196119450864762211049956103238194061394244708997766235258545437064886877655024471078921024715325197467419027594155195442124377615229737011308351734652578623226704273430012549325091186503051990239133567225710282082012286268084334401133629687979189910478880306457278922652028712636629235055209369363789928017365697422001315198165244748128473301417651436282095357577676646519957025210419547635039585966344651489360851153139116379014796701433308780683864680485160285035058215660875901130230448294811798649511887780485398872192520684706640921804568599956776435755982662913234020095512656708521162588967544752570923808889302330033375061768814285471057080789397730250709318153972337618112631950844948989051646532016920877162628028727459510357360260773057049875317531490146233062668009522190841175747871419287109839660268139544990319576641213617561329753717370799804506151022629030520907838289486942958139864745650842961464455677132750601971858170716396451303054536632698055254391649967101879843521683043862116569067688811595854173465051186584293266779981326201635333406585687788554172052507473386173317932367949561669278897873537204571558143636417366190220196591356913151890388211493873898399221954973609069209658653304900230910518385570673085805802602318496976303421204821861566422271808291814455370661943868774509720247501344531804454658171972929172179023819907496048068633733035022049007626949672510234470067078620435634696311349602098098226944200038628049965259244791820306653489596736223801352514482694207347404191227175406412019344398649153085819751224382509205278817095801296975886948407749088569788843711448437336828625511769506467648367119656217630187276546565384088221068089243947678891718304078021295793598804929364681685391163735141181159015852063873639039379370116486973248520985571417786042903828853229266860040865598347753961325027908117008433800943773453859017954926326858532202533344199766110429578993349322954792282082059913856723408821332311444968670907383708693333058271306844787050832105113089011261908864186278038622283423125363364361157443663034933936023560631722148944054200700479664606371338365282138865405625457107615806639164041130124149201174607839210378411677359900790930330504978335064885733330432404834647228017267106265194232148414479257027887136590566363175263848952187718427610432878109361500974276431816444665031833202313622888635352476972854246187823986974351480521425666134769980385694683082479317717943695034626472394332371251117152242481912640264744671857919628055846255829472275232549710896708422387785940945066371621900492986241314550701744153039822901130943660032797069905889974352273476405532931380918150189855943132894793304661059348475235195736386676125196584259773756391873535058023324088373696059204570529104993621103654163287877555314765152374795473660973471022188880769891781908828157215571090653641643722681153651993961549645553681151452913740651905219053916603896584744880116534295216800151237844266476611424346136038814009312493063057481176246758120061016545246623222585033117809068913088617299380313885260047896786297194372987312910502316902814637515056915799763622064936628880976358322909467266606088056167611908584977771294453815503000062708962570157332135090594083196036773271159399490801269142948081087891209326469589329882598445707111210141770064918698710894183130620776470790318952999758965247765862313801540702758172416884375651629645214240698626392159558997717266757940051796025080624414106977870696398958696314265731965899452411913002567007769720702020318025702029140863171965104571724003116774551825214134560233514357714785701512443742621490641160930789385510743163305531998941652799997956622337735167101320507168409154832779144286960541824977616216506485455561289209525397631541125703151321655482173009296010687134345214460809026843912193240854359483870590751806864547300819245664003693741010551193594001565401523459282400306072697023050568231744339579152225708693187186574702918665512481965510751271391584110548184539213213177612227840380431121061643053780781528192200110486580861233292920747413521632305425163490775476608360460292500952216977245737498657639129442621044262146006304203466424371743347366558366874123908116866400680244815631098394158330847956499834999975342058232815902791548703199558769570369830498372819736626698493415499070147340413112364876422692156381179710301562954308419299660794528634508708167469638640930442918746675637458974875257608837965339504884183999858024642550015219741041904979575533244924380194461181548313252261675254066186426602204575086518744933856217647323701973055132352166513601194645307757558585268591295185454449646779879244114203564223417400108479272263111157398062967284469561087234944040973376363873397503009562158234869815173344650328079485298169735463401998736604333768612131890463998901337675575346052878016020768264458179813722979528765856258929440416709759117654931677058708417239542680685455223843746054151793160979403330487621938896548175504063813170454535116899045993342787824096642445558686822372338892659605929326410860160423379156084137488081414370563113933319975973354351632145157436835808446939694374530705365202098286655737473560116918138608834939878848535826395261767390178898140389087294445809199925994448573648284525782436463840454005198543503560065059284952836803844459608286468204973147144348275878385533868872371477349727132002695215730519738613256548287363361652918535033094775773091450003630727295729511025164737210822549681655038101446615257917760843824109164565732466204940388773744570093193846550522209316961805583425030262879562879726332165126702709950279104925027001305852240374086650940604218834218136952034459505392446421306675635526729396207132127404957196274112269490858363781905081563905000710767696423292233676453965512532588523846650539184827830041164274006058806875246755304836213209182005721609207731712239963540438897438319044421749556571380502789396463671627929853896948652468985349721383642359400110647542198987119184487065807638724802955168239816366778448497013954863906849674929290817833012449342714321563891531653762693621102911921176812716782426000614156427076192229930407907373522569566401600033909217668533598534211304019723344576926216063661155956713369555952860511913608777938790511736942353470517677110396686182617655006037536436155622937283895743955896013349355906757608675950089286282547627639734774445931487032606272707881040655923851377968422513342158674835259094938700200841736622243876693780317880313481551262380117069386168132605719785932059547646033357654209338041634098793158061204719691662152384508516663343600156556769891001729524648444789109789305807138177194457145705565683473435144139019449933614595685875302611277161254974338484132487392588503449370679450973242651644101014144611146998371294277216458604669717483158562278123351839197552437186550799203267003998858433078327019362812508949779615654537505293556997983765117473993985519168774749383604486243172271218598645581553621729821484163687884234338792942458430887363865557722558516481431524931649808825692910194475453364614466380156260695554588731569404531641089828602365765767997509497298539576207442945072832074524415273561942684187730979777204458273004286646459931551291652621503640329092085542012520062920343773473449889022714767655225577927759689918113998460262692069365730335163022810430882490434058328094873910366906411795611072848615277035453369791282778772413699372192264176205395860820660674813422190432814764392109235346106013019397692423057674185343479552023771015397060796290732725761474889508570945316087788406371374283263464449906139867755165167303467490232474661004548785272860534738764765816403003390246774371710419853936751165743709366421941951280760647676461519781689275377197116180772884672391137182389826245313708934227710672257599518089159010224001414976455083003380354994395859155871771071563939101188705858604828332716777796740358614888235261147108928951087744198816240409241653876245544780741604510678636210275841747829293048638496482528658604689228934380774411623330109904893502554973289263068801493335411883995081743943884483482280008688053757342651268669225669208130176316424392199621750358020821208968674360226816608170080994834644171403076869738797628772101574993114475797565518330890222444208097417920828018212872181655539287233633522254596359866660416229482542357082631016409448489013938326531169849270829437189849944489891605146910973045359457761233648702572724860794179249297776719306398497124940002039322972366580616091543734868397625646792328469422467209662639481821389174038047891327183109808076185468802338742060322786826040248548872067125806237489894384497629309078637986731062818927916123028014059953730130875085636471228215737990301241383687400476709299826823134653644284795981015760075808704489592796098386950505740427050649149356288807781836917045988342027229620545843013856589502841284367032531400867248984587083420531954596479588568214870090786660898505134964471893197543355998524001703822404234729113569522097709861116534223301255886062773411621833256678944236588051980226726118380595982592092117151640383978937242588852415081651378064286647895713472469454963367221664353522701716691034586391350367141134675008469142064668693376486654294070231273355528791914587560831520970476899537681751302942785713576008281678318342502047201949934813168712594798944386105223818066756813048515036286519425715223612072872338192350199958437819403984100543704295652525041135592853484000710650935311442752438909907307218417213557930342227119522300619738135731189025748182108487138710143268486601436128310189829672632387330834231832344061546775677718026247609717988521184611656233930527875102532383684738539920295462460254520511274339123240901410540171086106550436406803652643736165211437994633528768691885854684234192432499111873174655820149538907691354436729225467816049848791561960370636021905993611853510984694904115881585048149801833430668188033411575830544044530337695425679802321894727423406906566353982080544923739167428291186972535367419211313618666255383207115365690362915240082096103450738858770842632809428628260602536801999582782644921392672921689348624903741354345141407466206486573648901053343451479415112805289873896581712246912566725193044849649440735778916275316092531228409185128454197060669988604537823113136516517788081349514284745398661499639647994736427882916252978842903712747466822155983013422715881609653881415054770784241253711205045288076198438155404745878320874842227121696694440835135210571344143000867892248396630524554252409143575205889490762468719342999517348106853457697271898165101161789893459952097737623087466991290743384442800270347407824638801740362851304068654978559035858331329506217812929777811204200499419157817199243073614147012721430662058549556260163439921313141273823774020446509610215565140382115910226281933102842611158378208953385575144722399109029739959481619495587557301343583842120040071382956883056549852068920915557321405013102287396610157218328279430447759548574104305969326478070011843929321142564276937732286797786905207485896711534702532484053117616012040909960056438538395558362824473748786695530261049628515577582327926231881935466415044828233816372737417347856034947171966767839121845098566755850128135459594255914403664932198779640276135537862108496534213736003827002686052042723101628508179666302435325198443298701286678329258624870422748912806036516830403715866718621041647447846949382329448955083416264148263268256170283044141503486462199314963758246254781287235453530009765686465394537243832784317329630973146493162376052362485512731853598851707195317435602906306352849426498540553472608180846180108994159493605547369888028921132637277159068168856627671573325665178705115889684875403397386543622222025326024162254749098867312812245557074350861690426720608431636295378186044080207632200343469821041767205654609932290248341739378962764359536975670173374370614550007722838724382810177154716053281156734089127285718373073580927092793546835566400181031582562755730706535297114787915207555911246966998363947311701255002713537989089963697968718837593138249270629200973517626008469394405117475589956835364827518917438527033191013416808863371002094929326020328906245995454358536647045719890463645784041033252193405821132223714987438270000093671178860958579316227193176122900698890016516674727786101781126489283075936148127194483373089952780531080707709925788216763407214477931911442190867593075756591220934877749784718061473770117246413322445548017979482397904301580963680596792798845269214485233211970550340345077537260488611235596874687159950096761589422339866395791088097691040405155910982903059971887832395819635830411635571980980032531341081376311567467518011106645679354966911758015639493813308034796226137437421331463208811512415276954577930495867528304492171769527054925079118446445230181667107225796069674531937999869972235746901664258061577402040645749276439887381170703053251204685928689022854586296318159070496020330974134271444550252952598042759806526660520080593444068652940955855424598463815891602992045569030979187608021385498858757245304584058100166120443082397137271920928096582297797355078947779526990072307456595543551231858012101114225392608429191741200910132511378925950314941899935076703434300960169880863235338622619502383102848463555333824626019194111407113257560445086564855686070662705765179802917826058663064682508239928813641339110963720957581003642216964468169204231410402301809608794293698741716610574157818093583641056238723507404031434242166512464397258927300103356071026899423745858462192538471104314001608105220776114905026811361386705031665085370843547049533350953012933951227905243111887481906084339189676899073397956548789637634970993655675905586124856858481073662321803032248429483063207513739076544858211568101571565389004113552126258474889911933552660181835889929132981760135977773243616618612348893019750385639939645611785704994701677737380593430251841218998418485500625333106247935948173835831817422668430016914511901042583920845488700974888824708937080939016358182072616338214891285443957582613375682287744078247626729142737414488638945302928737189793941382285629587800536371202425572410736166391401444160303628366324129685126134761207228830967137981887619008555554942561456381815399120999983698342773913473793893300387239680430171584804395615944494615469154196788343766832258626038400026466275260923460820410957092932086071179746203645522138818601496133160886858207388905187400347873654642431157502912564932834809565664426024351196270999155678883026728471489732352785324176094130409479596726090675150998863091731151587387013634480372081796108247983320087265249995771257489360253895906079758063836081244888777415421324538025404473471257998602972653731786128655640961515761297885666889029680251656771872636196384533063440425352350429429617952208698742960660292069734615073872284630809886956782582236225667578232831898135005167242422575021127095686052168139463824421764829143904541408696472821216809506972380990312395831278932676137558106008737206432017664355383545768129635757536268006022819454075553479333436698425192312760727154349702169076784617570252033692919564463541099205023480117325645772312055514377110816085065784118157011803379412142780389167814971292797310754994391190106914286747806767695852870639873113676645670996832613749324157614259166742109612950453741830533467900902089930773835604527399166771197978451530457990273241346541926756280697969923378530676757596045585362004426915632619509927230886571752987346001581827074266007518288064124513523694417094751122198685233753822997882834383605628559239461921962495555352070446948274164887015866928801274651003816734977207983522533572196236225065429852480246123926257306159434790052470249531669492344297509282238492364838164438541592282693869824471815472532701506050764078217909516617970338622424651827826061048878105281360311609841847082249346849744813452547220867500516343273221447365770850622907745638062176286046703977758829276665979565546768024237791575203257706281394191282777995387232866837757130034366484137699820146545587766455944721685290983024108279854139208168099896881562276530929985114968354741470601868533018481292999963717627932245918328525696815386016947942688090050680965347077045219052278982717636704246248315042405661234169439211510444846326905952512207601524754564428485173930020175830426340261737230177106703640117102969928915617418430154577641786028968919188389979144967947449354513534019245062580044748925982720205718474138246435205932763910099860683746375370781768901375763701140817600542673127127068111554806805151419728078000092022773935772269444162375368076374390229269419610458762479004173256583762023065992070443021197906529686947321997207887777911294928985726838420775467194233561458522311049663478980769960875267440601916765035401606589746616892269834349595653909555336734889196828950125419088015346743837441123202321127133994619741684769236922702309753659793394406749892827324978501964307749864781983318688616989147018000966088642231362471385980957206957990459471409109511174051738766719727464340509552695979670319576280242416313296303130000429677633342818081907652899309942561496118694448563238801110079487045152831634070611273044921901459647430300774649759692722444130152937544211416097475843154356135915825091941032910650096435884233739058561310210959843981327534977952292303034790530436087061619319692931615000153581705240929134252229743904530606466544400670384363296066678495822696611371113052321682308154287354722949450267056012851149760165189668976401764646843927294572335702266728998559399868619131170794548922557031281117760879314081029795266040254824878671983365060076643943345195831895461835034197730726337658183663442050541106794587179718619247375007911376147243773262977436543108321227727118710195359127047954235379528333071088213494287882703674558365653245034220031904753801670610421651331878848421169407210491882996693505434990744119771625555309010730946380368225581901789711373908766260735412805937724628496346515358760445671818205974243838277515920053763510776782118153855053437644645730658243554866814565204655620818523497406851848127429548717738248996441164576794027467146048985634027365417974743857738012404592115946259313581840705607313232022454592396038779901521126428861592540982562010258877847737862589139137326207973694148067911229740701572473069136183277940500417378703199091003225941081119633058183244489127256810610943770120586068436766710643620227290751715279090959125270213488497439445371170499116727578066078185258809196638731595909597982010228374362760743527949878462676073795200724753808030024781992430868665970845560229821789627779471718130665777534521957005022687635156715300658967971935629823999595583161877944959919584115973167872239257787153257290495482959610570363115401745452325826538932489593553309118444598759469701835049894081013194540932847924609667158529503755693601854177694003180756746694106212458053103667738276169328402607134242474055350670521978655570272318092840406463823610963815046215169356138460420267137473898775637859923974613873547498538752649183872704426176253948283327278690953984210669868759953127025514123021066825687971713902009706503762642485527273350150920850771418547861274366282855900246279230032385297439098563061978140223977432378967063495030505785354310107082762628091349337088405101471104951278220669685069623719631033445576410987056161029164676490734457317125185308077970613332843999724779255704666296629718642098996922366845801826447409897645301074697414865274583465060003092964486871667866525953966142462128999759971714365296983105982437523253346745954574577166452465131743118944620954342665210762263256985109984251385549690580803832748920487835708814743454644603012444607097087447280269223867583081728070478863194425875873232454754237095297963862283925482713030277473025934235230034317362369219373497960186879691493178706037958618686301916125589175874214821910009013898384478928422536359193579501722172088529808899922115352024186561446351579028203712043562426721731320250840716896011832286268713180344486947797336904479210733828766745206584933415643029890084243590439698155735449780660899324287460545422000793444741804548966452296964263090737363699810051883862097092246746744167827183387958986787704952873520148887515908545635320582459500644348894547570627992682877374118632426197045624085195024133700825751323290148082643517850945022107078298751913937719192553427951827437620850572098340612139011066046139821304235179188137891715780056317098147245936718004667417234472429953789822351320703585995707587140003966937462526210025763685884292750678995747129802447497246371794245694451282804761714220378200227459999527433494539215053275804190512158220970124931061138110905226771923410640832521076180763253951023647454333723304418299353405214548071075843588977844229100878535169658815081367634210954766613724047203025076164892418283970762239525073173155353305060844162037499573365568876035248947037679292776068065714149355464649589501731460144536021986024279716613643958749136821832971564989814580416209725758772299310884656764829404650387518625725358783111823032745186233313257045257113590551776430351082616488587322081881949093435460412854205726460900029991035259744389833745993896200831067769467834038509860721540101588637779126422074603755838963469657571594788951945970904912042738980140047344945842251056199283695515442769567194938140294877778764314682540822683127403145463696279517389337741798173809665088574047603633257409059785064018784981875161265608183487826811216783014596182413007614701449638029396883199114544219792236524955350427995051842975555284146341349804637347891047845826535879418707569210972772192374992067268064454023189904376078793735880930908059937520985065651571993190451899513056257350399112283771817372086813261160310519149924986289516384469805882431418695994660433080492432767940074754080450259886476665271557087664609545717014976561672188509466369209489937731214113150744122096236936563729009571767263085483157339421636158190774968069547071581139630864235229520579770236159342417459874188222269982187983315560098379810103573570607478670492182612848257333459722831900185403892466067920800409134105553509345477651385636076302768033789367496243614703020516076743652913873077234473010586624832259920579314539853462886990024153502748534904706066804785263316104237251128699316518372599942947686263185989897291544404229941230914362575369496843849825983783560447595381490240883767726881642208437942411062873133148916654307163747621595442508181408420697394675034675711333894180684549236946998125119653806278814245037651954354116424067961987176240342284509783760405361742589163969206930534009738539821904279307065546777400747404322580460329064026929756449318994582410418964318536878636592162575028254342315542875214696189813128523179917534194000108645553346477060619751435096646761278649842431882651039511924941667743704383805183228189187140833412331895767092697046832209414289362300994456727663853675017892805710420307953793767802047204911788329040549934256555499843614978978921052910742364248001023268838433188031032886842260193564125402187047252484659899612549827255739581312630870575477964572484249462554481880255645146030952765905438065969107575627600199948595329018273796551331964016530758936169570713086102175705031086995609941982169462193147786858208232012300949102128285620351314805104802493007301192335549580041993905805381739689702220098150502350710518782162974636807349424836529335962874784294500795574419446585563947035098304893219043522102611985454107484361988373800140085307089335515093291947147829390569001541908457675254173423677571097186890487078734230739288948474960092649651663027643225643866393054555193125839989089632846226006195665125389658446440131688872504445668657138655815307942134274917181737118202301389588727907338797982783010209620777499583938146013358737408790206607014923978122893008157124222215176284974415667016134521371532625149114066980206449759501836573679484070557391009036667603258025953860658390844971111398766439642643612925034081624595291556137911585096606700381600056679918650647494002108582262462108179182690475529347342602207349951453678580640794849263950543524359892989609609792693086325050237744570755726397500729626656335910793518989671110136293968826821957317097456567631951509569010170431567414085196966015601254989688976286858709834316674334334238797151736756064970816531185070068402054075689946728939670229584213699483955925949566665450819411852132888265903258003459565558164865155358539695025284790592370751480274196161292559234075019014692396877603904062621698688976404044309474993042570656359839855141078391863125024859557936713533389759148320249284365848578963413636738145657776986608664469142914991643371202285917989447821113840608041025464500306304787469683241757667740985941845542953290523141043902763668004227014944016311841628312946805950392229001024966778426730884325550266696431660359485191582799878815975609528318618233616533084610833375154508933329108696147203420546863186980983841552112501722419546181968026156031689125452630424201474207559301908940884313152969000961443389987854113216076872762095584370254363167378431624757501031044743420615931985899423875156067405537956884053560332609204559640327703522463100566921716127423443238926832061839828852121034164526617405475290448358983460630671600568045708832506901730129574669021634595012617021467060948775685835537134516624233405408369834791604403757014795385024061781018342291424671298002799380267894377818596144234383386672018939740682018747261928096514374588736765220954452564270332077141815168058138774267012995960939917741878112203838012889027740395630988739680830462112518902411914567022525312619302845809496005170515156770662356618030920824587136682866526826412560892709401816200258988449756184774489981159949926319103781869871823624527028258185415030404464187054872514615840222174315319939037629392606043625434400676831618753186868762416012885647608424251831891396840943388229325415351499304932988705586263111532067254719115074780808727074446351256214334773641338150456079263336603719141819542910843978851451185296284131719501981234383587038396188517560778724508100653825576156060658916867130056431818720105260199732683428073159569032137624722601514434578935200324265983607652739781714445377481731681784720108432806865619857775902026921842139811209483426717347132682548339999371302559106168329818023194196180056363265515047849945039680223996560201584552449704048555735458352298139670625750367040903858645683775590151765003227653725281318361594771710617821990312616362148487407201031840361342511492753924332832961893411527505920455692466817887157790517906231504684936852499391801154197210959368277173551695363060176825743381484752120957512418248416315844558572394318393522511652957061180916557149020631286917718966680149364462041004034137987972011283459269249689882763194361383770584312702987861452581027740284479044420912848363605620388162775319505355679645740596124682435960535027731767266764442480136938863991918260223861741230597827385325258618576420740127797246171874207941978767151606434497392415708880623969835694795795392777153783797450124142276252134938993674355412886639734511813303080318841836538956502303430538415568679749034502526556335053483592774921111619267032538410199325823779339621636853935627791373556949517945854378736557938244224831472280746417767244846537292908880262001247201126556430994855974361752340266830946633699779398073245536069937939755700938334359965130836551927814101081109762773197683405585971104994587923798867017318373196472185452061676068653702992478175353021829618701392755391560448531675583447708111554016277487960391339869678726261936920329979082284708080089866180446141464274204874748594331108987457949099798713322385127967538877139671725899662448651768660297053235968427469634420687631356805919020981305978697165496922412393001784889944204608203246136755140916487736720073299598262353206091677168245612149298136931074981645035987128814852423595794936963880911018799484216544689399918683462600907062998066671372543080737273938267494611203151599618042945330337703692849930943169909590190789029209441133047924269106107796484165413241821671240317333785204794623022139399179247547115900938253183549280564971442285138407837263501668036494708547528346530593987935347051546141888642949320471581911515084805434567778856370100470301590717272207642066936528025055560998417668036985765595325774508129444455389518038144203852829649346710349813614675975348447105458341197581901331817025978264072153264371344927446215607061853984958213140567706892676955922573295259303954972051837276336186884693171621342049858346635228305506423013800805189287922806133060337057451492212396783307588649433096693149662684676183639523822942016951345482905299356698318107935975039723253252140565820227510226515396323229890016181299998468526334670557917589478458348953945186276384801591538397026375076210620377499983816238039085442425939049376290342839113417878261681265513873297534867267101846833756049927711494637053094516256494078339579434409606855050692883702393756804878217821768425162219749640322193068898351519527301951317923619530485695354385402887340792914004665880964620185857165089678279219526127256290559128644344362691019299849226489471550827539557386869077217751931650038829492433339639145687258241519018793318363031978306501670201581681544049171610085635181470550856114244324355259090056455058162520339611814724299574450607932389398864689917037163410940637119905812087763798588577488187994048437219726134997884613125675401782125044651622214959301626225717129317963220616296908909417248606666287604998789921268647553547210577281376410575566071507210927539981180526983717937876055682692959836718901619827541373169600660797698287134357169066800676027295447840186818157638536599060207321671768364174103782222047484709385792502976973187247388735551605842368953493986764179450910669974968237269925596767549765930603549580167766297088418350555818649241876837588234370147280546173076450173691606325145042827721629544033892912278922611219860237690004302565595258072023676768529085763384643844498836201155078644499146703756169684692064733630222970015850899479292406121649189293759279902098079831418053561464634888456847611881038942402347258655930825008758818215046278503912353972663338357358650906864688275421384222260404760681722176900018085885191440462027882989969938494307937049802497671213836724653141553240493915409068043956340411398448876475641002804830033993673981060724935254981760257669351490729396135565709233959033701384151172533513441052033179108909997134649630953814161834729470211593278650040286264115026868273592811602592465333079904531938718202089097411225576392527284375637275359683555710336865705420398251823868627512419329386866073594940940709672399927472038087070691197525571385253208230836828073163715116175127678645769646602402252071741376445221668857559824523748704994629395918699615543781649958845008587707739807564474974743195755427856727133913768272192183366200496548596338725182099873776629824151851692430209828500770756919109329778345270590483673408982511595082868772756276369837996608383704591803212463521653593199380903832406932863495014197343715932366002470361042904611696483488943678372380628850596137059130507077291574580947193400886165406299919708771763434091565298820774495554346568630694827519268415316955983743099460496384809046956357385201846465033769994330700141749066666994550142938241486180684259670445418934706002072219183142431896174328147814439507733083733340590297922782269996062395240595998342579377490377739142714298314527405683593206632499590825830069521639321679349690390812818252437853713672870609387000619633271770292035265572351138659176634072111618995649097901138703393204002446598961221339128069319513721524340131419999007636692497497660569392945414910778681144243262164344827139637589325078503618508702297120336125473467200088127412861032797441643094677940021054885053312955686588235191124693984426802431125469001854264650833711074284232029516465672367484173114968005733363170826321199212898415590984166393685787011444004072224902074482393075775781027593824804976202814388787926935293806817862046565395221632497745873410816388750366715280397814149513136644282851299458829429849409598744395786103299132119034635624446892650075326210205226469301857392918754290034329163683620528539579093408718179284969642305402070577930022073257979775964256249899279570572702089920599976674604372506627935156964690514791346556430178851629624945316108816538634372235348266635313484073465343093807615737486320820533624568589232548109630780136655991352100843254773275293048919291689765079717515372348173273454318504412101879645813928533234335536732330787873403901878748660030558013237071829225279012277517580838791585959459781515782750055882939100502176925457489533332444888000583272344092199271196442547498519999684468963015346688427389091618986744381605718286510894008627790890344277056540785675404282827993603767831078329049576662290760722612186244712744122929779832740797777709682244043844506495779698816389626604276707273612599156042293827847825638245819122214551175623065229966044748473046141334613201802570235622677154339661845670761789635805785311444806748634374867369174096711538179908210468397987481818311523346559524952566674149221347456411971878643990017689869369284595791503437374113064077656799843071272648852238891749206102696666439690335628462095554969738092945917140177865543683821939077012389214206248943153831091588255006727633889774874539329671931766137731272090755668329755525778913596725553606150073721722565146921466432605761718633473926819647983547549327786571581719340270751917072788420911421741379686421965711982434308902343458956128444685622679034767591435888849040415742538432826361927423331932353922975677689701179090946492874712981001913700689798518659654350321655870620391163643093550121889547582441175310616600093845414380919307518737412228614233750413419000874191673490216990109198509099414687109899975035571591169672305569106465708415827783343993950183751405785780670912097570792443199661338861774384765437483967204254548047873357409590478935559229582708919480278458254188825147823742210880810353867358683498291979408506209526104341836085186112704499893971385437575121425165745096434406577145904785295159833983954148193149833277039737755384234653752061833609546199467817946597824949502810298704243879221125670948664877638728203281829877167004646749630427050217813193285129961389812224123801310737601440303437937561424119024062034585067249392114434524957486401270444207340850091567872743169240641078166466578321406236644725119032281249324313714443639610056882873436807932133678100188984402376326946974642663283607675052785623942386064796369508698222004636859791082966771500647567352398005521720424816287563347518136802696520919416551852123218112900324577815977207888621030747559656105234376312035566710060831028955745903005812767419126151559696285571926704557895273822600627402349306875276906958094037458871960883865865127365816371180078532477826788579289264893820148940292653379739130846927000068107359067253807633571025264762337669841479006597957938790577479927754615244749390194494776189079136344848943110852522329099798502789835570021846441539771481135977804559857397077112550697808640954164833531170144682612982392593819548340999121613288838510570519196683720576438158232164385885275302415229507307738835632465829916897190625126130572948495682805514898938747729779591502242042933185297412602943761613977299088876573329024395069467655335759031840376232226210264384575543979464050809451880278899894317050739960751850966325757091094615310516148911919693488600872811282029164342400657273509141107525397915533770308461804622720362960011561417559951654131642281043725614205664564268916421145647389386061059234699899744012899776842081851561858662301597766030741462413781956908595512730855581010237683286416374915385787554026865647750983903261392416626761821853111579461419760512269013855417771447476082253349981401438667479086198851931400821351428535613615438058983025341954809980938022209627899147852507753628685423109141337322810803158175204720671065076489391209821786567375056943127872535723566377977473151210087978947725498555538352069178440572939830088313817824812878559317450546039881426788415970132435261400541858860101774714268471755688739415411740260030833806860922174459031975104302548564164668520581760499091346071252477518185866398165252893582205440861224887610766201974477830471508710852722306980972580731580390814131827443995456913651953741048510765026008318526991450572542084902649137733792926975066169063086959167988369820755166473071389655817462674009421041924271565984847154452302111000119893234534072471721383612192521290936242276131801659540079323453608512156562380912218666405403357636257212401491656722515364214683546350795426086275607612971306719592942858531243623069535815533019305216280328267583446344510322459477997194375551319595414235957379266937377423619020214860131738711586392143791637072977965960710776404381036396995265348763569659850478441669269313188459271714034712245901296045704172431643237475253807661826957576126222851164566848621090088388385512767784381101071679105703809301503271637316619633455412473823841580976327754486145507264018018651940509094599686848818089693340839731507577856528699047832038551613600903697114936217607592210737331045302867959998264277590220591266974657532697313700363762191051317988226588413850482830559630803571951816261964704055476137164819620337598561274394416957529100273117025835510082963954687100735456443249540841128558840962147975912874453122101026662183912398125773201499923278811655675667586364183848839403196489538792296081217915645418143462913882119992859583642332511489460422631477296392303794431524521850735811474744687197981180896463938505248075002622991084439480067689145536787380898883042732180166757051705753190441070951935049269465490736913296934405505924509229655349329980513406301041052019366524960849251769954121802643456792280936825687307085483433909885814070564480263808663434825191153350807011069277295980818203054510457088926342012752033507278218454796182285193133622742925203945349281765465316890368942459061232666401338059808036005261288499068523694611286342199162827343661358552151311990472244038594580652721632746324432043855261735546539290171287651107232278528095136315944150042241056370549439188789563065569308405738074055645425565051771802705493296694077296263742299584228901230550066652448005383479886897852618929150864893794462554739312345268637242859465206729614645956909440715499564261855906053771378348609443115757208848476637069303946423894359821332836785331663310827980791671167747297429623449858570936067668419095516818243617854227505362152822338127012450335193963791511014757438316851689755947566666977851661489913700624604763485210050358670881903450633360623006412131745926445873088199606622217335601906799345311965553141685661935228962826290234375344614842362162206474452364307503010355002164683575902924710073079152705551499225409115405688558943696456019321936200922510477657013184061691139962161030686638706980562449994586098712469813589411135708377379464612649748585628043695775190474324520110593389394256438396016141998533180589211978609428752571869936754255400310135480248524740107570650536953191204536997679377092801925806610088333838379295396804256256220974340529584663739022088812675619799886745165828340082939358379555156111145863049688030124822476726946487980310516114623915017900990545752703147889855680046573080998773740205429985464599863717699394614772951393990158919293948928432521943174279745900106560981950357047061078576965721061097038512693700713039542827579807663421129362252530812394146114012072138934445010221705758325511711844689500431113864172313027575684941206083871815327078131637204494765324756814179509453470907820663163882955958275017195752043706245507234951930718001463494811617241261753416590180846913104935489858091613379495897388514280863107662637970074787113854511561986049981554327804389873998276223105287900055238600581087278277611661903375270629458466932261380581668964767255522319750037595997666231883238435991178876797017876213225883615956473011370117475443740973749783367680006961996300360589087674103186915968806471433205768057583421740251672600357576524766626589125128301293240219287126670505866887362314912463056300031085254157272734467679990382701369934077251274564344723013336982462977270951171352602994622745352324051691304123230445254385006998574760727007274247815189722293457412638294666918802531894989451291884066602214527589453956106732305718694036117128454911875959428725603766015725261988431436624308622238019167162872927844512343389901683861712324467568914750302144413067404926597373427558856540935732887324487788433293825437034828757727122799884375939154653056582382450958080337409656613165183962157442640616291402841941786898778848554215350303645799535758886824396532307106707561190688175780204018038380778193052866999400941569519539706994910788788226094142670426041617961107442014210845716281929685732355648603494063148006555558668251527742682413982303082409955403804881217418863995664862759567680019022709376308072226992041236441282184818967211977410154474892948194397623620072144307070645183717078308026512010702776640180543335937264827102955915175017859588266517313403590871380875444662168466862814726631389682298210126095963633227769199717218547238384107353109819082814031390653418959636859516204912066537894746333170183808489906911768604594124811822553349578035790328619623368688239399247271105656798530842484742812049566292483188479773235093868302502284976233816241963931513672036040382867923982941309936504354868207589698634164773355451628514537358705103006564060322629173597649859790655179590705182828025015172252382698936122474612872426665431525634327590496472667401982608669077706217611031761448461298007728067535428893513502461647724993142446185643088129937376278851095561575397108176157051043399780607225258669224036190012588787797115989176200358266666649285071714204478326789862520577476945461387137495636528172739007154634282152822959738332477034777114872592553657356841865076012058396825800328050823212570825289122481568946158639162068113111489772613472226650924688823287245464327518847660961523694326068687029443411847327144243893387046081061570834360405403471224398804852629197614747195123287008079250165037327236960593612552197533257485456839555279441158771401344821971129485649840818470757380190488334185133233170003946695232589539284171552348417319712690350184795592503733231870969844709588550857573612835138137269329532540819595816584239783801287733743834381395834376855693099974406811753220352427279054795442533770345136279198914377075647537610102907131680880318021909483183190622069254919187088883706022474887960484032399482161884962050685546326190473691887303822064559387728044531320112387360313307196984402390464167320410815778223758775781134412710137470785730123983128799660730382564019763064779044847113727762784132120787433699394432107038197583411368708732912560926004967499763366839934406222509053502251008429195728587780534472286927438042686649226294958656009734150808649374913874624456427142286190246194612262943406770613277196564462208860334462969756430784443382467354582813562552188224181564304146850224821040417686878464400345201996895759691699552420079869650359133985797090624305499576567428819944795846249815385649407210012714130920568208163085718826124126748283584486760818199440279962444708691183065393691784995146174157901364874170669357093994013925854851138819791446634873338933116148568758686616583351138312287596769263382630726268911446057175465409626762058081428005305864126755762460286818581271935584018703037240190552939712847892234321759423151333099307358816373866487948058959831480315388250733310450257790627817999331107747036663247816182945863942694159501131698308834027702603791246701616086712724730821056905218156144180656878266439029787960389694794775282058987728052102004672032455400133177953269045588257669190094918247045205481504693715330653013331758384351056337491499167162422027736698682004504619130253257554650579174652750348531446770757904686505223899073862283920868579461497501468205606633512864677355615182052501506482253236994038155217149763843939247705187675205434031748853137306275407438317057388749101552078873548591435109604639492721519991386526449761209185072806136198041316551473212345961821525983092560034618320106824598020559575137572413388064102971404699812264438464848164985835707342565587975648857320852753079259171913584167300765589465812007704343932717915697561368208017553624829435076903982961004298371480173967270467376405410361668202239780469071354688872291514541670610142644610227142258800562110058612105132156621618437617003536980567532470165513497051059071023590324100462304349401960541915709670730433898533854826001164119300924145304072489700559224985435850441214399729190045842221279450411599883332135583439621531763640158483772092835335707054722844743560129213944240425805602367993194055143679618856620949268586266635487459273984590072771823792063437044563554347370099212787542453760286079964582281813049740281637331893539135401485088868478879582548950121392676143244466954621499093609848289263157824425081319476249190678300557172423631644664279425045146124776170768012651089488121023999217635414337292513668530284484130383348809932522459677858279809529655476438761545490276141538242383342735031275013633246374815436210694552867426930729763771971378032382533239948366841376140343302164145512472668293419723017255154229870950861910359281820375294310819236075170821520868255141188352777247076170818528614883205084485321927615020324077636915205385218970635899205916681355780772440406713225903289889851696516678764788533670419239915113754076946465927918576690060770931491502961712199947762236920904977893962974890306597572660472006315330877076946769491444806201054548531647293255847162386881741503889111800118083552088220137031822094970117383041215421664510557272049493623350045562440636654876368188824013610515710158644171150864735436255283146028382376840640944825108371894560548319769472945413584969278607075563366778778585408112506168937578168852851909715582635618205062931500597285850727919591406878350448351595063459548561910364959678247570380355933731417765457170899552003802826129047973418005829794948202811563275000425330408240219179870988122978202901915712212683318057370841151261831918947583784733767445827515839763915007863189568639055285763393175812813165445381035321096098103580739880689296517547715423807084922710533068595799283677290524747496969918792360217757205780683024325691412169854187766857070532801303391079031624757865555053989784024013438829918653914732107035950173637623957089026918282254341111994360403704643865881109841955950539602039575111587867663020370948548534452000913025974261989882445375140215867078407183113552747029791701408073168275627433648624321304033256930729031913876642784152473745381102487445454512236043209195203396497019792456855968401982754949447663592243649950874681339090472236237361873660254531477951134111948333600480767267197221445368255437566870904568666921934536119561441084362465566202854383660369918537027686118352334258922326542527363480566816341702333250609634024614467488238307903215081288751218843962461091095257399997582864183192428789590974684272161765171097998253239326447709198647918825842868326166277506986940071813485972320740659592322198894567886311462382265586843904198284327151315563272975293449209508841101004071195367360980490112431062884706599081312920348474897817167541643577835375618107074267764788866759637124306234903903426568010588979974052329527255309553951039933600771629086650339085265734929156615168250114652022204303466232839687012957193264962647130464411070716373548792305525696028876543943419025902258861432003748043964462864716214479988497585233714234857271996721357640821312179371484729148445971305430256690113397505247195460358579229749155003148425343642945997703161983824897035739828981976857813919340814956351782193629676829757814983705424733974502763810700723882912783967501442315809017953070542251972292133936374430267756369003688747733917273096345243541675561472901658764819768289491982094013963174591762047397597423711815583451801941941390233515085673325946305388638693218876158927021712208535876801723643076073406923946208943750236840564266950523296007453535804492133208761539996189194912553267021433221813849944533833341715131831523561184518895627179377660468535758228361262357628360906672872754320789387772406915143986107520287186565451042600502285121862149520336555054878773347890728861640800874719776997983590045967952104554106778484716448313941310539315687840489346310669269041989830838496998952182399370133022140883490791990297410162528445336357749259666849993758112831265943245450715101887875877358223938470094772395136139380013261557088433163979524076352173100121685870768753500845499300013286083557106697436431981077536930907933658793931670087995584601806177310051151022972610236140009478551782991087527989964351819426230360731237529045151358213841721417029029158517969734600955662981518445679046579854429618297648176407696008237681766204436298410407752521123185006001082023206051336983506520662555972649940086143028548266648023261136848041679447015219956117620835422385197811498270150319897247326293290596915164675728300571146844213465625051771935686244428217835652830769582483546838850816516410421230008739812868141494446759149745894498600911614744932786098408723137852353704356067034274316793018545915048632745808027863478716310200460787836725098529345011457717914674037678835784039767077890846438783337816980624590253815508997436514835865293207187932609197069501223615600464935304753427559875204592358235377307351756074290332019009339467752308376555143381145281223355922100787433280301081692602648999145336572979400378382221040971771031792449386886189212825356586147840128918859039378691188421441700060969908954363340568558070713299724991747595795983324577918365030358749657009505575363219423864272014697838094167561524581749620430108981095363906931498715040075855416426437552429140218118072516123544853115444802490467364927866250440145264085359259912579292855152968488754768388254085674639283692700594969257234462844788816286666175535350357743243023142528205196917226904510350480777609745777985156704947049821291904641122227827483774791820490668555377462798826545598232685472084942436636610618939450034566583994292565370093557735129287717254263046779300097645004809571071372306164339868059110921431602431715914946968696409707391937375039479703263400615497264472636528921929701644443254627113770384804429412131221772243319270192513053618611331707790914147374689561879223786853247813949232539108463413813131418270019258689219825067671293961887852657375959159643673204885388058646095505531633376841836443298838696006538648135271416023234061028883653264052090733458219712095950824062191882104209246605889690475320692217499511549373761906289469635427883518480268076446565637502618043146131221079767494228092831683789278605485735473724295693213801892322501073456625498551213772368841530516873333703680444814671230507161916195726493310111371856506685780585848261307351933286147693357634398194899343832352024489135009035466152318400678923034971174959974963165418392397508672505182988840416360750870054711768700103000181855359857186787020772075020705489055304180245869660735875552763025015899610616682394617708267159710833779912676523317371169925296259351404305599814732463442369061194855454113787011601555721395288917710236258243070364917852948857404166524309315982595957882413043981224132279974048742076948927630546748203270328299882763802378090528647432594409534942117634450156684923343815233726440385631135044455166731943044296545680742210901046924942065740034180978671155681877002690678457753235355212572666394579615807049229857787559778941050538743897043026945688653169448434010819067973025105117709802697819707481599216311220305169350061817485701191264503729192002856348768059833352737923663152787872002565165854724084465183417610277151359705569388473338179030223230554636741503091605165471301743736195284388689598795201016108870240159572612955006086726526382891369914931670993975268860750571215290828695020690557938879016154279423435521245836212248411841689966004379412948036297591423292895756305672301822313064239483642104491718570374797484400253471636917491716746602669050895337156071819991768906413771338268315677365442736447065006012185797148169670889955519257392217136512821178303727170424409220447774410052720645196232788093444840132937504789887737750175345574994159996611029149380104900812811920365837903119037511011696664065922064900497079662212989148816094467209417629009271083277876898075727189452288856947689438930648485428396041230827863076731388071232474810118411864478095319528981822562752189935709102506685498463018470757052830505529007627786118273364937459300052846643533998271915044063054263556272542519104024475815476686772974777193143369972068862843748445561626532646967261070433920257468961098673786756428274841263526448262050145832345194747459086392462788449659193920319140489070700593843370688964189700649135282423522237123948973741844289045870095707886961106696770255355613884714901195258017525581327348295053569899309818775773124541298138674352878457620363677469246385437745101635414850542809924651161676172765187578281110907432551066141538086671626650955979879416402499156069909247250211447328304290406870786885499390438757091873248059907387084132513455755025999373649402382246422973019864651521858070322141512135960481207578557466690398403304741922375012482122879035250009392905066167397038474924387389372097661293753598021143318081358667413684437042916663226807131440906497824402274501828122510605712518294812478320762117277577240727763278910871123434606816394250602474133294598903526442860894136447532317804189122249610026756959745556497397778982900411800654807704953949633042751885275170289488740690102705882103903604439585200675170605305522862784793245026214143230142933649469861390202914487746919623617829455061904725101057364382332441634117646040977271108220833853524018962659417869405054005510477007930428213371195197739361662651452799846913455120581205196231919678495570252680194247719891353698850628561116792856496759826993881152993238749604678235704321490976303879748488759854763792451514602009217612246452749642306367283047106359015102975459269422394372806062589854256647206489042433942209669010045434322220575848921493661586619702759343625073311320005948371063546732706250597020802434518470138867436122369174618215252661639170773360541374045065575461984340835684523124057396402944618674742586370133589691043522220140414202245061412228048850179760123398281172785715477242453388314950614275202796801457767628767122987872012668918317624345819157511791861451476379312045237042223749637500420803997684231687606982855924969669120304632928433532548690068677328322551000670523552763105326361878359872678267526259873703042295021435980149791496835444825639881388059487061073846746099709438538016209892993837434895518467986528229089730491458041342233236576487151952920156299034400739157297265105352076988854622915230015006148482612331305855711481884594927823699737708392315860725081074428312617424568802562539333090858705716205784812967151482805351857210084001419955250940273614898411431754654654905657592712524462098081323651811293546716133524878557471278704048379281414297623295458669180186721467724217289060000501223082775608168251623084142203742147701313845799001831151533668108108148024555155596840956910304560333804751620879835192691201984812025872700033255589816363562429612160544368601706467868148764112605328736249615737906414586504395614500779520690717139915801031805657466130673971667661864913214228650628898481399532205766357479198725143172796273237631525754687128901866488567664500790250865368663622584501870517319681046119968891321424522683952010470429998517382254318717300262234763779793248111866674967884586973615366551266022641102170498360794255037800623557058574059628219590500723919015467436440081716468253304629608741208306254907673700843603619750020725450459480606218004446221494892091985313513999280052235608026490583641711014078005697231002849120051495134408216311282504834697465290995892801488441735876553167399919860604693367073266982513256700287906422033361049427583054076735556039048871900616563185108964491461301139081170905983200255613030100500525466667887145010550298873897926501904706753457439957925422203041299399593985916067718372729758672991517280350053599228855414875179157718770615453670073134056927329141038201758828637991658607146707690897400402082243293822672647168815257678074224354952439790793130118066210012523702345185127979017538829790360782240063879773563935963617445275942509596631965417064957143414517791357326901407520118295301260557433135648150234387598014440993677518154644786681284128624148512295962775326353498706569388803043884622378436301584407867764190878897918131509154976209622598643344552583563729413270851857362887516143054299542101744995966080210078050157921094328074627124716131830561739175534254490439173108813415395202946291626269643026214385009668127214617768699726835031289449785161820145239252372132359861376353569282508638571497028023060693841852695488808619264657511321996926990535937397670557177294166848537644515189576662380275101461827921234046539087623973318966446795779678413194091797266355824089789662570349000443086870124076644164750365565502061063387813173578969514542685064635507046471579111197575810461274449154871661400887960311553319874077647424293718233824839140506436249115899906738246771247898438498011561832170322832810446608163489495811718555424407143127897520653607285623086799110079922779284081240817828565752373130275181999246594449652641914335911389692691132376903973380192901562731064314932848131240589519799816324571120363202190875159201355851249962170891535492912507048715817615694306999384187927943147107523252937516587424246760227348819664329936664088944349488694634250848519827109641325388498535148021163119219581094117906804315101764686083613048539440180539790894019377609626910088654171990196724175672187096106714222403874564953731406727930266129962508996886375221409321014616801000709211324786073529544585457632983588290511162044591202535231606897333288690122485617889206004718237359983072815035551467989117790455248228043152596317016970259897457154580095013956731653283246715218886715934105702244252996430027748165322809711674859049615012292961811683436113537629824128387412164295112537640916929770048864548315218378936132993396766789779138852289281933987874231138085299956562673259939611785358794564877374905518295073895426541104921042368387592393863614305448619458980583353310186297065393620845021976736838636429226626050575600518476442255805832519054362780948599839674948257316846717196860435886874533367248472980884846011985986649070330328011952229553905778056897988789757800746075865839032334190026041973682222363430779084809742321956458331094775227767016023741813236225079862481412275725656199664852201099755058962974988507008308408689836805217698468681619747469745914107855678764554854520081769674807462686260774935607506093571204272268326198050260800392624486417218102373147129072411089414429628956185576413822066326831960849222685031420329302869522595544142353243665978864819424854141659797083003236059759874923815902887240313835571101172364361191375562448713981863044483410722439222406904569180144243896171073523348272013663886395547124246491641434154872385382251800232754670776911718673522989219511589423959078395625359389520051240539660978423503292466971539710108124206135151061399969002076802857684373482853645766429440285709625312393453798881508522047298579438991240871277545432046062885141067811201442788060156430700182717634097571157316751618969163276848617999448567501177202156329508681285953701774850543665606948073768279350326872850795289225060791969142865471383072162901291697663656200316727413251756883645051234147823089849628934574332780380962683777123583748746975487224801613873777043402793771914991213315338536680397330401377975612740952592480416937122500321185698208541606223954912280536571075568671977351396623041431212861374177581952456201472273900919157877635026792133808652090922486753089052696028861075552078700495968755975071404932433284217681097016402156653550215412118044632506156627076909960719493824226519167741178159019931682464781329230973151220465034308729170200573205669939764990069444303224492222193103981311039933071994906125187956521258899396512209176678577763843302105803020068315690833448258618321432428085393242672369122935992757984017055346186031380303683459089591937462678356921125625652558229023394239285792423873743665192972373178831937739171937825759370748752684473750430414274877458498525313306137985130689546327702635572281547013879403239080465761423217874380702839531076917062652135614489872292324851991402888809303041406822496898236241062289344036262027717467120118031637823966082423745612629633098625603292893232038271890539520602274463438707365283096150956223120915913558227059733621090190483278995663421714424625459853337558650698143543672443614000762187010651695245269067644021003232247192930670169311556487898485605964031185161817329534143797574415850130266401160184543718711469907459547792507616294558579961593632742268172897581269868089956305883689363618431610514507578929007039211622333985235225270088966509830484226736674113998225940187798564236107060625021298900899228131629284767779081101177944720050619748199299768421358351750587083179088413942112919093967463534819104021207738994441118905301260113626756182419371794555277658049508313946467328324095645473272127495033358627005737263739923191619264640598987309063709224275092183059552711979683924071644838448632614441597011165655018668021528301655647604595581915371002527640225777997088965947227691121652635943342028971003225497942627159521768917631204259764436343352670682081234253694706123244512917836047582417570890666495415871241977041809190987381802849948397063112660427414534040523010670555831442126606492021427451783104032945061408429834489181097745982812878866099131534405801673696590992601293303190631194984608749103132103195350227687371779264130447991902998118104787446510849164074161007618779380713105815169478882510626150025070185249957756903093341605812377163471546409563453692961422927759229535851782943145568185350796534318162087727294038499045725532470464991269441176488088080494900587056985479994909694884906363953798836013800688582551658469920827283608300523847524395699305302607576084068380402757516156806674344209144561397880278147782341442381991532755671878735161567038709344025920813521081685938232485126633629086023224241298051957854932418184028949152738571597674493381620005899161105586117323322376802456603993806456043616817054105858889994049372992229496893295059317733901215078589228873259638266332900668051243389930212756759583919719125189874636928970631035040282641114804552040201077253922038350778107237856347484652577646757138218503360609857204837791439286250929235706851095134382080597205618337531149200537834842470000807635051016728623904921616396887950199660578028601415647374383167491737242755071252309353617388304518626308064396564314105306745758692925775398001075983954334964636902778498480420230204913835884503088598166942799066933972448951868938997848334531909710202281776269178887084041042986260312085665749995870408469169099433237395777635530109159037505510814173690842773688392923749226325678432817076199514315793309936805718473656065015949122988330148050295939511185903921214746486136743720083880427919712010715669465255702832062002987569649615050465694059822659733045713333604757712073247181039180050922387043114595265799005158149687886651722748610082922972244335055708301089223121173937379375697633034152345122198088149807421800779282483299284226242079917645235361941714494494514189621652744571500724406683310103001460856944784892370692482412748492494123749667908799200379764353451759756435469820389489214452591498758163359941866357620612099485855707937161733033615312896965720404502689302998771135565859680603596113442364743783958759906657635006981181198177435823764864003069307354566964529819581816451223991783413174303352872848066290158665504950110402688494525934015727322071892619963774560983001875812980489831745434082721537314459450027661174141279152446428164559545382251773104438170085318502475841747383316504781979013193216937915577617200823672319082092430187918214164543458083175258161190373595984619852065340672562241194011170366491382918930816988321855037910576503251540803659181937138872835440931519135714032583344151038446166550846230040893966171227581254122142727950535923967298538057857451215752600789293019695253845602232165478958189363581579473310181478146759503694314595927334221084401329101235512746792576375571981117801292377201094171162125354650733613801829916947439189498759854614245022974046537532799602546581382397530284007615128027413540198652852853116461281773691293954055958857065515019327715871574091255216167286681524725150857831382073218816520318755558345102168152016990328021306232808459055553241588550035836199265597235131407670500692483386443966793010754874438617368116620116819851235061037312475447094722357374748439685556945486733389600178043555277357244245118508757193825664053207838231312240669345065263254158934977986819912881122651108053937246091880193578214249120866576663390910359768265116134888599514581922902523724006145473267595561934222617237919851409689853348412097272516865381541662059582286301983815095550868868035576706012107509468038850854412391695941048190349129178852586885465702830139365090324335243063869742072395264381218403901247293881265907769007681931411037163118590548180796780373759286611500749417115979974233923872496889758486998953868115403247978089146796776083046152771001939876055524079651759732433514612860731844907029477216347494207603254163602935252885447121173690026784262124648074829463303862501836055936349965485895043693555085369850947999686005708198983541533809035862148304740037069186032727754533295490771775547039797121393095312390009310746662060019081146615495229702741951615130523709319783216261121850770500827028833116272062684850237881283576411579772843170387607875366291550055541000381357214207986137470166374761415395510294539507356780189825727550810693779379723116207953772092745895920918494304653495003214732278351701655191008508614582201577337140155446087984016245489319671124600377612170875719988505121220158871744647253199453320891045801061199725284289792598625501742325107389472932428145746364514709626546498491773886887070812009823251096012346015736460572091282916930610721309486440323344027657880397288243243822000202566541264285460504720436858508234686574436980713520782587586777271602927736468660595856797554124258386109894739515722815586101418350472633594284254915264570854684799603320423569844200176799896541337140854606071694535460073746448063164882209462166721439481584673576979250474987202804715567314410354458885186169851463299189507433900325028904320278902785556791280647802967249368242215253100506424089074334854394155034315390867364925162282362076688824524600597997479872427351458318771983929150890036370278286289450856831930995830313779674343449889919979112076282833021871314529834372693358031139356019346124732476742344217544868313316191748449322150024446300800994774209866192120848090831997063401836088306343561710214615729818785664445221363944046653501875846142137798912472705064847317540366659763221521872468402720570031885688669113064014336884324677022509019777982615666819796298430980349498152463912968505733673171949715070323267709591770019820347153783987340845620794626284219049422996697836525740440871263139008268811309520421128556363539553294366165155090145806539412746508334442364600850008035075987333159813052652077538898639352110484412286963153000659582108420394928103870929269646180287250730056713156524193806987919912801565476967316225540573952332499718615431196819235020421974715659548283553235792882126611195377800175483181961416653496835212513641910281209376637724831283103755383823914479335295064913114854205809225553301086738815278552159347090215212347775990894530497615491651522844246845528308347938835910085820669960953147913946762842755931336676371134944089915142897065126082992575172631125482206191990239176155339114313884193301724766017610920560434986738584207139515922909540001843049671971197433661733893800713452491495381110852865266278874784720766163943342992327794367304620019346294248810587619380175666673675927759840118082991311567710738115297456376158953529191469524108027859414478441747310033212824824601637510802257716405243378251751691242052257070045462940876383715564894988261423663756897838488743892431402510899993911867496871979396293931804788174158359482075413723166391998440987772515322771580457595810839562515960115550881217534122608706467627756598201099401327738900875152574276464558595163300272064968052453709934138121225881533263321862464931485947912112555791678596116169012645520349243784523912731720024245306359548632997163936611697113022774082064950747123209721528326326932993382474699464262242726599998248464214924483472633495454375286212607780016555744668104056754032268143274493408887413706181893865190928922539704147712804121298607723130636003692824995729330719084556208535909531680588980261215959330488464511390875379732000955816754260887136618434791968693877625203671747938441680533516642090616873767208464600219199403072169317977719305968741959330731039692869458191705488690246131969651879033894933107688407635894770812949492589364427011039247835924224242515791696168012058482234809913284286099774688280116449536690253691259005196792826157393593639729608252614333057671525692533527902597285695831208317039562528962885356116477987523179109583415081181323198707591712796554556190685572712141476427018284946359330238901733301443443127828963069047160931251400448352134968971485993542317646077795070923629626587455285798936549927274259252419400102810367496400227935429616565227733565506322000001365926932898379151930254881913673111246306576835822380870996609692238759163795223900525289086995154120938590329250019788894677916918726834230082786291302852396361446700377624752494084456504042225606503605690989881414682744007326304194211115912660731360243709574788510972844169707208722469758306474416628241978225201897770691158203090135052987883579067399817275597121363410107120204738724774334576616507066129413908747550955535609418506506777425780534115821344327296409907060972870668275963711280714452901532918169808609495312392853098519883363020805977738063550395428549767179140457590125941597420164540384765423467140312142036769610103751328356863167757423790330983713387658850126149956556328418490759288768889103662580570178432499373003342638069175301625907481590569485944317755784589620583585864113215531819208726346177887742669784284258887272570426943006276900602110500085503052172926638047049400528526169714550806261852921488862169815596921647343458863607983003502087340952279060788042199482597682115091592762664289356081597888420943381390908485544896490329431328649457152341322995020351003149131337243110640963320931210152480600646853203642400269282376163237255949174932443760617378672241406651857044607681342837265991801448557815027017126669763536000626818120187906898371504146887490041417755016921954752424867862499230218146936885875850942080460568669014416262315260006263285776916532878221857003438640721269159395705354616554624505281033609953967280760602047991095814568307465657781600640158003979289406001580238386755793758830191488939154587942957659689613579121895837319818251480781997441499904834541070534906263878349293111256212615624202549067415514744851587868446441769423891656553566336990892705068713774275246407108242653770593528893260565335110167967212601117849071879229480615555406619383211050944986393547778619533454652534114041917824739655183198389031759430794847519487877208084559188486594060947432605568572251148794696370184464977303599334992388056165276642065652772984515614357033818525551001588580113874229520263736911380588654211188557289945336096579784354493971832737963072008476557082466733279653149527033395737018810969995491065363688249058907691073487866317921076893798554062629035861824499460967734972715458302676225838667400896386544738346572235232879337909986579126973839075131217594150067918869557762697978577626799108717280384686041502872476793257791764055779808550740707784663237403264040268025172870522514446378936485064939518587584892584628713396773810145705048533531836328966820715161266677359509373028982831585350852291311050923710050374132412828483502739376603284348061359039907876863004210766383565647157682433611591716595982798971168632655942905546716592815046862002015582142409787116842385365042232756371393545639011566722078741517781266485114046558693257699112683884304347333368890080512043924491756176449845709562680349095480328117746789925632811461527544118773170066067982755953013342432784778423618339083217410834839456548913389342448612520877367330461299962492605622257466381095456387064495076490292529516815430761274757450270506581534777790782026607932087862020565092085651959341448820783424698230782532093544467628867238531064224152596085794618646955779147683031784508480804499146203527405201492731819153926949275759786581352469527461935658716186949214824424519609673658489558985373579022315590225986578096974042718321022594083850341699127180406210419898224174610533820236443040010065831887843604572732904288260144555442100719203581300301808480186029186896837770582589060241077600567731284401424211810130417683731232071382189849825140811072378339138360422057712404030258302926915600198245879610300651928663887517315665696320521000225912127018667674483231132049111947044374279512334251747009348118258410913325189676235671706588403986625506077037892654227268624362514097169888248397331230248836067003193792337061835576913052980641280905377372496085080401004744885979675081932539511756383398875403041828747330441214182525850045728282970912854375945923848446608551331837106903829508902348025732048741721346144821913113031045901856557218417887011971586897650255273918874147340396563435353643992053440285215898041263786376206568885529507395257777728224461780444407142640257898455091531492511404457167846678673147026947737254641315394808133963934360474003225047466404013387894917690760965802097148323658525202166668783435546127154196825718716793321775312652431736349201303126086175497027616581423817328762125407691979647687268047291241703360809150057050307009102413104519131619461697778295148537769465619805622250210620495618825028744601939556998644398852807123846044149347353432236982464663648288740555403445658862533825541008988694968216673640849669281220831281293506541652571241056663527841551163397451192018570207715735989425521186610399044724110395153874511113066122750448063086720411555015800674156142510728020573413624961485117201335478178539631440647775953993670319129549293310275714120133178671028391124823117727680540757501647725819672383912646096014418019206791433517131467360760092105114975564126343881651795307022728513184103549272901873682758085165238126788046072517409972373796016894506922449315454498485093041495131363354994230196157669058644209761570005855358296778240684624107573241782016021198283698932979143938006676308617402722255512219964760610388066836594557493266200110897119621845111539597282762575644656744753962809651018557977962971481836337372438589296224446983473771066105913989689624787839263348539247898777663966202572709166881813434262710764707596827338192263222137536189751789725948998864921667128315439208084204263634289612799714028711446359893346285032097701570349735743845464079473302496883368645614852204647708182670381105384123948761333732673218817377509591909057345137758366593238322561222372782507045672674608071996704556218468930740699220890071297847750461020263552777276379253684222136404456322480368497763435705790166043081486313304219799838558709484153057844453353820682682960257549534503684421652193859000689476169444090231967180302445729994449414579289896653925017344626333508351968317782302509379816633251707863494135205891032417082721709216404139764273673763355963695893411305431549743034159152847799973173039385191678874516603202161483133341603311650690646496784388173965401943384958436951858965700726241715036725628491398727725467352101259568327030913065403434438898859614964229783847183570752301633451207738843716884568774272086778144257650154922470016424354039601006526267602906673478887762836330278601557558668036433490524120384885006844477832896186386586292678091813930565264664938557703007781310112463512763788940204174645013458970212077113230048314444018330825125488955850883807865675824981344042446095681074214922883023812964470811474898149526924316818652460922671882291540282940962153231405027187327841253467222193149127203864530952452527621205766926588610580213361944003068373824840894675058379435808317743880758407915158882864254929638614120097932605846411351935201783737946106991234939261504524300922667900911317267073565013488188958236166825242136348447833107263909109323208327037227937624494704432520372484767585919779284528061055725770802492582430319613211654210120510287889604776565400033814700084040194527909637952886788708022696337980177699203193451734900154919701150693574212209957877302880974654693042460127394906936864737331258433074373942225327949241067704776534783602603966182234486873173492998315562631287774090257443495342299233168684710182506991141896017165949047462595736486206730322255814871610917852383258319811890763282459225115011990489999591782697678205093046246450271346008202368680655207551996391950733783053128312693241057039426512685413970934701674680620871449633295362684782464852911215402701838132291063190667039886790980926149814392472951489820230846679995966766283011362207972213730499372853596238001955128367839982634535664053683216707678341119646367202960371945918634712259912560909124187901136110479398373823807700235363840903561765166046654874587276908227821997686624645189689437544116574988109810490453141626055270068344101359331413281811080582631909825657670019842070012309076406868889907543810972490595947849731293578931461060783252271503912178820864064832239049258294927865426045682865045094294181450792154606028282049136600044073133961016952621077458088286255737228098361981564944465787761521549502799282844251625833438605956445398523114577598882540055075136053587189287864977024679918272391042561702339199344353853299514144102786135588654616313147433031484710173326330835590588704788644115219988222652205348921935388293506196958258253478190696077085836433420063059890063094362011857395274715390418405226083554646808206492959655156005506098063431674254600183482999472515228258868375485617850250610143319090613342145607834503887488693115420046537045516571341601652808526858402801691001867943542349175939944204623526407862041519524844812475143089814157013162487569737132870212010575937865809170319073910687663552179699615235012683288268014031020855331563947391700144733077417989223471303322195624642405734512442817343334398252750449578472189423428918294493826407410827233621153077129840985801101339105993828461754418948660746017902248684421096713799392291792862353271256878433946227582733993395382673752565319108520318179006408167408555265738686178703404594840669051570493721450464860110079727777652842087247148193932416919879186183218147780957574879272540003310245079941200966820472467042870372563294386224633859600045625141539915622454327299169708738895982630721940735333361186544924054161628000027958857467573928759723236328704504425258291073654806547773564450186062728099417280240243738028054718407561581040082814293984617688976034110443357106566913856448065241573551175451016369801283616259472094691346577006341318716236195582021494007103969457875515002690348613009449339625608975160428391198475862787021892550504279592322660726486390757847561647162440021210765921713031517838402984434189008795770298480166443753415362668744083331261755128818083334427955912490050283148339069493335500912928340824333633993650085605078394244515912015915016623301058464218354263143614188938902972329767994780923392739751108687693924633910631678366403535461100687436067208354943071005952343018089640138089400595393196115811090717867239820230851706519844408503889429037027904769234355427634681881913185107969076260536341740215938439898857820700357411875658269328471974346794394114500758006897810737846071550667761024553793190113790818989479635948306644789889585617339558422927900029380854543865664082965935815080326254850518060839754951864997353802263506820162970016839401218023103914434574633347579875199964458258004845513920564997666668638534185994976650842313261588490365817015668633695141824381299898702796429737393656467979949543181987575289207598493705747440279318770396273463185716059370469725043362657938545141477731183185656202880700940656011687902192442436850689096564025990735395870792145081650143754150853824651405773357844257029706912171892717626195821991594527169378435599870425231624184974487612914937185699456762104468028349141280027786722183983441255691167973171706629497130196102405559214022197659033922726219390330363696973354348365495623344765172748044336133544837746995472845815761033215486965418667899204752583493287181578597684754354521760087584766431893592396511348497885646578057611927970757361328214961634444080575167884700421726027607270279164692754855160886490683819260523726343906947416353594789848424527668829744720275184466912266629908341515063806152228246484612661936743852361765854579435646115854373225959081668969686409712219444363465545313517407772730095521783423821408651774747934818936701153198134504504808703935394645695756879128049605877230217206349114043898933583905048386070549737185345131283530840478639952777343252872758483671450672481093996714843138247020104214904697737205252462577336161964892645013790386258569433779421229049616390710695937733604982721325466229575228523240894947342872217643546712082130657227999422124830311931872472371327692959045687359523446136138009609026158751231843780364953537379613463762130174331208482539141236125901697123300202927201305908182069371962719388989285577800358062010171378031970453677966229542752072933712504479504780134195778741943811668861688957643259523067116204017561535864390981582547595650516789029248974611617833563772430726879258001217362449127135307466439157623068755989686834338569792403534065266306115318515913986289278582592383092459820240453874681465588368979440603655293787932144649952886787366289294697884730654164449816443750019332933496806443164061141295117365470874260418966398905923477232926375692100143981693048251826078431654587390754754226153500579949382419123103874488851722164045490098495532708202449967164383418448493398491202542519628715832488302445585283135018865637428134064427882264703491705083388368675610682869834065245070359269097997201897616990565532178753369187183334195211014292452206187863050595504390690749161168195896642389328641509919005724770070073867060460998813323629009634433807393300073571368662843294324388247427173507192865197457719745995732121275599618507260414496642743400922705343646857247300183075822098554355730496387094219128765703204435564810027630921589715092319110897099265784146039057334095540989938991913689073196251528791623927274880924536274055521245742274363042638367867775367061071296272200974361712590803152950546841588410168004417456119205243973388641700181271461380822388782978574318261051855258929235992190472085867403325756272274420547064209676512951009393618004231602285558018012152804970825180627495316474900225996477069263973674231445363117962936881442472503026014345764502216996491870820467993549203727282482491072326185921999323513416724582649079398533572000298050282500760919881034463771777856953206500008422623398502223407761595973414196104893140711444701959706869547962693046860393484746748289463447574610474110858320891857456195536548269945457006606204682156320824679473118676453297180250672417367355923045133996383705879456762401073746632483873303179134899009232112671543030896853526318227598448037485526090738722164504247394815579061302730989211485112364650745996539572704790427091597805582013935176957354744861209972360412678919248402839421209852604959860127230036741961540696121080491503355672687310923708569787894488134345086352005766284043276339642966129367200511985996968852802239533031700251065937616429386916732952152121649110464244634715519972396111663605555063151363966518155344419959286097436969488381576448424918875791518351855348700177188619739051838639275546511513166856997810656081589172276194967799439094135677056995716656543904631583128185188501352309459252818084109411418715287271761696068656646601473613126809637107625481833904844058626189529318309356290703756963362550559582188075844458234206093820315173237514993110457801577564020850114197137518720109473879337019817176250186437887691061124956823265205255770024169332565681405844192252534762777561180709531422079698174288438673435973382889432584291092384738716551839982088177821981841424876625627354793993491861224447726839556234701919305779485094563775926369918094655837069909546697459673197027564308686514823452974912866359553944826781582763728923048418923819586128032732998845245413461392026058345766070211857841652970858751627433666707166856136378967934754546355969310569108844290497720905339305642854179726371879002342763788368923032942064285169829733955823683663254316805661191823693846490027628634056100682154720486458566135474988931095974141800551628049336932751284051353924026255293540058942508428998912702537252819086091900277576405610488970015880246499207605098413839884589178482236447798480217124685230341308427115196464119186621788380495797562908130860176441713408572274158386839952786514155402880036684542003057102146340155075310868822898126167196127373197674279788120755734766479642012953508567512428240666277240708631420355768791923219116107575707502967521885552486892908511970141184522226043426195948219873846371209930780777611381953109646186063370707481985233600413933866589798130473005587609854951114486492161166202983862520141681777917386477094355732286710176921847316769294583762258618068263342714715347863538862970680367312291899650670734945337838442990472953527165408965047483769267233710035442806660449231208144900011512941700443238643284802570161857541934292578090890627361313937191027299427902995339232170294281914127666231354365164557698391504242518713564010885278473195021884494173798516332682038175773597638386216603181366823824903673252447183969852755667493409111348204264886681571211699919073217983642339516314902989542315412923111313370853160986049621181009930645451377779688465085601734106669291887060770340156074958378781737603077433224631616278722779036844404362516593889870385208458162065699002640028498317837161408533678736266348051181340868556316360217427567490336479523286067499372063011270705388026988766232006142075106116260586533972429300504422571630907299999075729431934504794977949165075227099361048518888027564364727044996654159720441253558128889095476074527089818235336604641679211868463413522638431329698032417123859245303625690927043543826339507829462818111631049048645762918393160020215285204935196771788880331816570482991979422894039748286329057686691565005451538447610567847604369162916000574266765845017083593138885021066814505645054414854366360015474940197704898387600918804058971364211772698803789406979847881054953439014183125133048130928171843296562407553919187474533934440940036880691392435785512421049074127987930122067876174088576930055862266259141463833742031918801360731478546013849651447405242474502417111904585823869698053696182465014661329355918898291192836731577394446190256988484593041783791814433155867318551748506441385154647791669377704422744533612080270105717424575851521483264074011854426122210945503364283960947972834123932932049539131412526560964267155558964963423733340440896254971380190267988426690042000096099256273666946367525254927942081239911521030150329343617789177824913344128940198614522190748079564005367480493490072439299479130053305032035086068530972530593367657996632060578114051245161437576711594691599595582398405463435046044510915389390607019049291156858596865004226558899213393858953118273236210080580400212783756554834601097372231468675133644311677338234968134026985981059319014638425116437031244909232901006650521501120978526598062792883376986649704498017506927714330335423120633571019445829139470136414220417454350568810786180607612725181594899212372026680776785772339741208491455280615337697073067155513491222403700455271722514132831331223733099270863955375163773909910575896453957870072998581315673124858000891671031079850018227086391518203496978435780465710062492261298225296511764891850181310661340872710751068611846140861096949331964434622241209614791991898062807741897133488816485061998829728008941656851487061796753594393198729729439220711807431578534571092851157035358572583299529346609401272109942565025769080773124729102960022589067597645853624375531883477362064500332198028375721962273462979521271422086693636317789410194255251026158789033945272712997353445190220517735281499851414796889065394165863648584285360300875177069601854884425485369987766252238290257737495404294263966154315345199180934937411665755325715396982963843214729081889999614330184360675605764128676003951474701661233536414670133145454674743200879621046953180479422431694439422582816628325680845539691869196788175125795486479547536821057270486713776020959224846101385456894992650510624709672143517586167999719515498913374442089904259258390047635682545194516336969928225472157928718617331704919831509747089756784793651788728047781467449537678891607245786225176686691904302435841974642591619864921990825290499198136874702903135405551469883414515700708766707737094811697774754563385232287528401825755142338484167707434057906411850972718915467327978780995345142955858764669567153426370591724894982938153264714411579960958671378519435293382739582461337088677370445900827189216384436829386903763221945761368286305093346807245304000248698324998742725337963528147872929209772401270590713599542107594323527778776154259054779397002471739468969950213988514954338266477565583473868027967576074218776279448195386113723812591915963408216777986693549081233775627719718421966510122487455668974390840288632557820693015951293993308687340692315859262457270112714277214526910198068175810663203400865612216019520909733104530330516341920955406982093070249838200430689353394716987989199271890312760698793448763400233073502768851963318442765809773965591256242828642748036769799884921249497588169146043850825609189399771478644179969964884706618880637114557471160236943512337880053437634152871421550718299955884979687244014536252361569417352483124523561204269623050907754284660615163232359118739901000380448204832490242442940858449758172888271989522842687113882352410283272997255315674049128562003905493362608397549529654752223136175404952543897784743979809619845592683522214230720906786301596113106919385957014495729512086215222077857046802577692482096605771773481115305402157543838805605677142971463602512317240007748651819676792668735152611139586134898178985678532519311488407079633608182776170334003335910772791298622936567532044858915568083821448019742896087749630290552139823618682668678064589387022495060357361745646439140342461868702263091785249389660453725633491114206959750721414589375841686386695939330479040574297646499967891563668891280272901639126290257370746935552085691088917194042014235369799028953569336130007657724413924471755601988839067355783299436578231761901137989394297553873381509347504515693951717563273782123253133656620502622579080866705108196706756106582911892188011950022360026724871564156564007833830111617061532986220840599793192746355277621248580747646617199499606480069749220612592760827927160616484664039479141453715796242311342381925207034816087828889198604705581636959026146757269064669257676837973050686082715162664830936261755005903040443786685767789432527145839450990206689778988917683682583054758900963082173176631707044571910242663177024818323858889240310134718714221723540062288143118699505586025452779266543322311471968525143209939052844476706740264309882479418517468687099118351030486794684086428249043588361244509532889423321809550109857848999995090628746621097635109151707060033427117045919147558480295773873283139002766118209543900417779575827396224712711267699637106972919701813364878604000522363636361542534104833028206378991369807061627379748275656487876534098095719832350740284476994059222794165514667596336095309172072051047802030077546462625514383172537085469924978326410520693483281052611087424722069918309563156227240728604666510472399013432194466120845270759624263551704607019790745513932594106806222202697702802872079584376021596626212495039459002985836257371982909217438918186345295275725956337994304000725991369584696986971603929541830472475655838315652824561220371910540057053080388376058355953803414016153674194002170730690281729504017430829896143662729970030450720457681609988251671384693947892284773031003119830104337253518616106233744205447930767074894949805955690952879881408664132107992529000694671587655900754625039593465897599799617534212830563833301623430706969065300860822421457199646740542127777980455221584777614373930893117822968904925016107978632696480848481760316870527486950202068450971930206803853851947827245319342546473039984576140709984244320347294469400827241613298220165490009080226456847110681607320187337711760415553354625661633029543165384437031039925430627293902130892852066176040636729135518806533223174323249965546533860196586617519735744338720334688346045289701791827924138208864191921013711296783550785900647538281840351064902758988109695006179225179347720662567849085758470728618253363320901059910636100985158984594260791076791851223521233411928728218074136038349414362591855178152170409168174422144881584426631440711831733054037562399457906877228479092151171067484752373956703136596814591425516405810831192719078660484107487263894180229470179882085547941963221663859497793051545107558224385965961563800612268344797860754684092775600450382458433053240713909855584317863817575313339217303375017794068694952492853824807044055067400542902006921882456044591021369724346720641442449332735363418342834085805192954950330957727124244324578797741237369607820856279749290213478802516799523774142099807175354291670093360388995235938631753583493803246074292522618457681935189119353227484826663149553725478034184038081994393160456807017152844364481596863878598619022329620152445721313140534951979483216072180008387708002781981592244282273663535309433373265156510398288343272807601572574914537503673816038653547893675035128307909070772636072265741379037387433231574748677834109736604497398011702435286856887183347969798965843379734512049633198775921634451991714625782246577693427329774794307124145126141388515402987269178724184926222269758047855551081227363299820107547198661076480694611773525166510825712573916041558026746153729078390189953749137178773659540160258398788636242843826977851195743523490419078616086389998817647441635399503718443406291077519778856249109810848837934300097107312386975978158570931457075260648679713645239205474051792593953795354543617386763992369683613755088137467792960602660876385111165290582301790702751105809441989607161588234099466503083302680461057122894074689401706445519654857119274985436461648402531299257101380841261805499514626323683013286110368430079571735050865072109090543421841303253510453113835814996762549581177199948946002921453284315113031392534468619000523750240001959712747335512249115064840460394625901898370515099683554986084171917221860102102053494947235779702456363516824603895233595352236409467827465479897619830682331521961496962018312577797334467408285618009333720046757609501635456732817808655311748020433921688850534974449852740469319570102114212125052188392796053200616685557089823955657286916772707959090177757457124651327583988945157480561493338880694634253668208989560035789330242382144416374355671470413812573409966718783801690862027108872555040945565924089065931225702968112507323898909423735804137231942025785820757157032990985834379257431709652172157529548822547980406686878066841677112027057256781972987418805914846850791776963299774030534715361833793400008520766001433332242279725835115271778700362794844952236331297071479871346181248235570424106596038484689589910467374140705848259556206626384240409113035503802779994012985451675136995232088419974483453377076937845501709347358597033125549601248376451956916382906871532776088372012996670073223660860693853788969513563877695373345152886600973983858350616859658259314009867719739124842904978489017655444301690028774070262092613272560115638142668311934625984740478971190872312438171373057590742432140339442902282876207795359871688907311691516724604616564103414413367167095053868606269628723344310185288406052031201291820344470759603699144997751424226041596117914825259095354065267054804018133671495326614603078827765969927261084545829500188585214561656426333748804871247229483643588860891551220716280734688757595952327936118678496087787371097932334367930228013846169752438846994020023405112011251640471356055232567104932582543615660974051056394180399476374800690289809434241945416373593180415235512352276680094197074552087273238190150923425524624869317357649136801059554046206983001560849473743124313139927685920888611154791587929331220337479458137490418045498134065784551100158133499584710465413359525440664974778986216822405140358427877989027556499889259317145537360187196906505575300859830353325243417813696177587571483536047107862528172312702449515731778060316001628348058788140400703477695035777915513246115974490013262053549774513264698688704444743000477680576344009112001805641045228189149960397005977083404879591175639675297376657785933419785192046532134471187628239687798277519546946277940404459541578312387753889950477445740986977581814752161354642439798797897538143306772938896589287778134149739774462845193673451920372031402878787227367393129299977892062144815546814864587220514061387503538609927523347081818834988499149664507876295281306370501876642997106480545904780234636152602196782106224134684300043802607425060707892393241302842734407422794257941119268233117648777608283693557315555441633470859367714606969004567282877790086183682865838532202923492794634349703624554019321876676923919137398268490690794413787952513578630527517987714924371049517817608448598013913362652322538429857928741661037907493467300453090701962511758846041134949900260229038736769941646722283131536725524980839411378247399772844187847302459399293821864120244056958601150776022061342131681093391526897077246841305328579815484031928026679024451147370751927298110386570760895809888654443460539962955887683116861952929023758838826288899700840346141931219746718179012966935455309826711536910710931404134886558006563154303476531148436918984594341181785788693136620176115489102159256986797009377018449205281377850991271822644993526170062362885311507707187815277154508909536984521887574899327464758791188757734919665007191942243967201022442011626160366911643059449282456905617817097436937170605206517812607696150258958683698069760123363802081649811235958998105050708031163522139423379423315238006328791333278692060901054326915868267925145525302238722063701008004759974499616194367550547965925101182339710610946254894059191925005181462158999054186102691004721551166056831899649076919689838124539571831516084477753776702560918892654578633184297376292815879614694280919646931096142780304230837530762249972265403679076905168474835625830662529590960295299490714243831985296721955006005543229396789990525822788270437156177311314019172234275307915482397325816888328646820019245514498687873378818622646873549969141760690452688745349250084570909093694281858334244130733972954472198405207096785705611330187635232737243963650157016425118348764877304362845582337579474899687957541874701651995352725865978640308408222742646032772641985204462796079021591795691305988060881858263962332818386977022033150785635745098758144606994061339953436332876096775529145541902091666651287926705473153621018167539463308995016305985437620734901969852353551279532278737160084654067770787779148867034816568431450284361285803680664571398148042835874282977606454750161197895738869743502492878035712279315040934661053530924134071563180631091716286335998002023200222253839208567963631905100587652996217960916145789537869309918860434357491818772406723194713348729977959950592202833563097024213408012974647159314453884938967606373188031425997717730978753826700101062631959224859485714409579237285706899510306233417095861902750142515440826376018493850206185312269728324850494779597072449579619339241636034265295418093960203472363776402037302886462954792414993293540722765124643019455615458041968325024655165538988676467570113920259891261585725633034526787232607718428943990318705788632154201513042697167946884077129127014864214304488780227221186002994409834910452738224744809839422936313316478344687563240750714700220370255489892230143747958913923840010625596937302039445364813475950719332760628693564751955093028238796082065538338652718089847729169706081812953624301481302090943282213751300788902061126522186503689258707044574918492372713719143843752938990400692298599614052650523745887529457636600139263732277301997975566551217697287766373932261989139823067540044807830143671515578604869086617372892295135497170626972883847359844033093582767104394169680890203051232420124024685328764900191729136138370276971596550682239309223381017810312575135286622102888682431123150104897928925078142380418653020376368734844788353887257320981094152383251086001032415885478526807879881305607791000462646140102111346196559012230820565231032194997477002583078838923524655529729566286031677435850166958889235054481233163756213658775233779768979133456614218316151700548783816159974288309152240245241719481073039940324187821170137458108969224356086520210814174295409191611515843508931984155279935196278926470814951528929822743989758484031232305683375877733876375618248192259223087193999978425488934925527205112784137439732192698708049164404627844697839389102258994149850596155171080730440301778990523404782618533918238371391187558922237182100827362387261198360954949642540922922536518000372692518743569143260370530279245185696449546520099565117483364708517886056301034118457313811512640206850273455938047195619682910483918434809968300165524830121789955222414977141854109209320331902795260043024373735067073236733552728237359401274826860851675577910498773759926219445503753816986844327764217221732021527641337779563101003897407292929795865451779385446893419299728007379361029805114246231406568762596012179738203320093630057814848558388258349641575821630618840763571954819326202666656930908114673386338989092984469689688896117190980521566454793146116487055710460775641597050139487417004863165803976224683957242188254490510316400062421493730586935850296387679478607933269345699943522487260458929226362768954258468290129037019629649190593292658413440168723549251777169491945997200503890699818632644334580646724012764364079102342659077396363605265729928080759321741921293556358546603667663343225264486630477917291166205648695208872616780467892212243455106754360315827886322002023020296859767247213795681725039754238897933729514233133905196815402184095822108026737422364875208548169806845966538970760938048722283441815028197629856800874268054895102916358095846205608608523477287093648745857405506874231298691515722904486555620294685875503699671227778173500285609586707850701755664995783910712210115544504321210987801223622030142487779872654276585069870648079379608645957755256308374128841018722281847051944796957796108974681074947139299920896813932378463508383738275409141240354386341214174538778496883298212209988255707673833183251397239519803135750797584192775967721495605832032896469534308555993339827829889225971146217312951675335242746743479913422069353682227773105701927931559307008635288013151375748223335211082670859346174991387289705287410449701494704977820603929476414168607252707713711712209696843698007225078070766306358822329865269787740001135959793341382593234146790730826008377759553231618331835155306832045008273413885821839308738771476871443909228199578243083960329308946693992713529028824731153644695942004711839415044923805269222777613814399809829228256587828159888701408306652277059918455564055863204620610199460349595654711153271832923970979807556351950932411102254534900709199732390253513929077036252741254760728555693504629928665708809202190969680583130833144812524041702133771923501048787814278197534295731739799839753205849540574627242572498090252032108622187857225325299047828755258487362697246996831496983672679182880037362845757007742966604311111883424164215695598908008688625838564823785264316947308889215644203285574432468633157046096410037607300897535065800735335651098106974141873429993067606925050657526566268753920239140354263520023923467686103607098568934817510942385532938003397982966185124038777497432573192323745987123671695412873516445960470232721442446506957114164120489448921880671782606205540443529620087636657358800318160564387821306347665954580452382998657961560887250097657975017386502070323414614629633731632267537925954634349685093011379881064945889232269916390437771718031436051214610490716454056392921966116014505103481481537995225113764358288933746073842096145300973487466299299014014546319521749667300784582742248088347043486253647481203759969943309179528970738006821827910609893185858344159906356771279500946992536833313100691932582140661947968115566383808600478265702513799435974421605853139745197950758192770148977388997787843279080307366005580228242428510709469009234191312621680839832533994775185208983975994477100545561586824498178866324281425919825918097059153808624447586524428072959965447596839499093991760298586759864309541136879099667141554803456806578150098870539225660336547089103778658536499962078329397724119930534246919870744690759798893118822520792136218268239970101503396109706886393555904545805776986492290868606618554652835677131784339183968026336369366150112038373149202371273384065118124463632706457122595774544201668605120694278027838336904487069052174257318919731290782086578159359116123771088665410088769776468712047530121684495553370410275630507315385306566985944013808368156633350431998032347470227467103696351066433613370309965647012295518013781528771759891162701955559485270832552059713961603775202544412092035204223824122366632972014278984408946340604181675021871510297587138510952724090234337551716009867590351972323278109199042328466467008667086891467993058689635004468221868970953704637023710189537894129002370376768106416697048864821280864166912406279980324945518762850258607392847102160595695257208731784086728383816646565448383341386322893894368873689844345167952472645922379525186767975159405001777348803061583043267552164030253657737465577885506325853708202551986777487746307212530591578598039878288958859973776969983671493435627648504587800364986347936107144544963827465622995045817724409519654838052650428543568596373897956742418906777621262461198909903537757777056752839168098628562596157292017007921880486588991360374934167305247218812900378773042443854283525971614069985978361159545884625495848431725553578614651263956726398876811890273548493253726516598526005294759379717918910999359355337002414057517458966609032768025426283969241655319684255487962767846132392353444896233181275096440066100400207176565626240085799833249234878961687211680047612859115163376920174996730586792350528141641150316800763417580604987933970528396640203154762314934752754301821565249277096439500677065510644653061553702026728826002499403847750970822823201404830536218807097756021224582105304573941655834782438492000546286974332621934413639953225596903165936352676055411837853145417421654967565846795674438024509627524555764850987677887788868491087048275651034477609472144656072895264608552493595903445063223268001796652378076561634208604704595307890867234903276092022819190370198499868675943190417792216851877434133002720558545591139136283203414175596597915248915713834755060508744456242919160339494158062725529424308143379623094621531562201555813074693689611270584410094040257568427400551251166951910390924555047233296979833032134118066783948356045420876307133033462072520835003446452116766148899071316144843779079870949656067345098275387298192477450336038887279236627100281245388269252551895927534168009832605794049732082667188101636534365183118743534850450001295418268119462284970930504966264460500293924762329719027052061410033927569230297181266625707806051649102112720508364475935106257345540406460207142571114839568524491502098321404922985463551775760366946562705663300305410978182473542728901851333449248286981119397412998382267548572622522687412096034775530249634528242999564202783216654910966721956155833820759129122748864746891926461483060241324678929301350710250091836240478376287074297086661697645967035728330490570404097146972347130642169120121001201507283432358534021460768840899350123439143480160845982049324161162811170282148766726069474695333911050101813554950405401936269104441373390296745889720828342379705468611611675621050640733280342307739082869186315832895165061726940838928721281869704506838172605893947558546164134800612480085728658059578925635090134600255144356968442469314018927487599449840609713358345365070083881822424950124466178572542140647644250737778754651690590998461467011522152791619155159825242966259090079444154548356326387647153725197965741639696156112586311102754438408757079539307551821682046620636489107038592094350914519832766421485475255965999085539529105599796156903851153776259797604803739981061995554791491026108865392200357127420280794594014474562231484330480329784185058233109873633157725895242326676221454541161042165068173642260445754936508239112024714076852026489022060987088863516580029411918593448678727280852747659503185852904001870855311730339604463172792060324529152921592928693869008178538983180657944707878461221651234736633450218737137567265800769849031933661670360762274191476960032842315496425085432547376334140498607839067927843241863323919691396549886642622088548960993002566467477374788830329249796127634647482171205267166316940551261414586278823960510181151994896995400746057872459958729008294950581966133598611370696981366658037412121781766494510136995405344399899838349735919238888531306000687098535086077746198914660591369841451063777756373011207852323182972611985092541978493725588937383959286908844315000733742445878132121583244852912041209523702724837218669123728508514475952111413743059103710068993717557569751919965196851553009244950042511145789855171274998138865228441004324762669630596725749273137122638146773559581798702233809286938812500653752300477449792049653948374305241760108814795427082480515570785436960363259023995218526963861755859102515300437518926359130544612354393813767533188444489762341197715403458494342666313511157556817057835836005908159019346755837245144306127065948279782589368305331759526861716811451100789276822156604605752971615156044340039102414843256607795015205086931941554356747438629606492678363785846379276273765407897279032960245878435650252568421538940657144023333074525780644315997922132917303181306386803218086034424191765116024924006109233416697248299054993641554407088429800016847425128472969717240107488324199679461376985172816132096033342840689479042257509036494787763793939687642309965440500155900745167153282425995004009586548301356840798914891011450444775150793205310826018335783555193441172066929647241330247248046249002048248588872782752098760199592187947029778611458183128606240940505976111377808864575528726462389911730273008080651054370702626477635180114040762677540915174177960188855603556638289387100566569975718380815453895410679445244600049475006224951929868826774148811132056853429703384035081962849915817414450610276081590523748963235250872862469216242712939359804169336144193242022451635481498790956629133785688460377297703402743299737994455759412758254648269691229306250693729287613805363818301000824584024013412933590833466433946709107114915811273566130473357760585486857216553351644216145616575167123427084878693629875420179358822576350393113680466992545361342196286831822090762192232588855746840496985107495855249467518767580544672674705870199507854036548400458598343495441115231616762158754139856212893745698833828625399268410319885447353116155673772987817893559243783487283081315883950921256992706720983787969338320960978596121297220820245106994798213906315477180457632143271143883100815425876712221397510288061242016856861221408130105463690137765177379372906521902852971528460463282600581661929400873600868929843399205275339688305349278509088783691177420752226239153660034291358328482247385118142095808962446850836941227196397416561918617872892812203208647450091000091004113213305498956619796255677427314367900722643276687364160216496968959555135814419669199690403038117848934019582540361047155759599023170666124496290971248379341408325705502398866531856650461087894381791265763848806093690186883355431942228490929768104088556508664019714017867983591045687589328103696944606543465106321956042760320415482680980108120534901222588810633158600113378745231537734216503293981779305116888461154999379279459220390616020427622955922912204950141897201418744019550242086570586960671092539300113480658685186236223787786346835884113625051833425881414930622408715691488731210505172338161004679036297459706043928592329819697550873520257022835398609736154723146015400751329014753676425234273408970375427788199071735112682115162141554218920944662543253007761969251836952201659505505663975687366344668314919851210374668769172720806173744095351561985759859280885473881882910419457613161662857927043599418150694897945225173194718930010136657269324236095309496558190340817611392038795607597216036670494556216780852088196238959766934297449828384973652450531060358870083354264603379758713099080034870878361033738129996151655415585671545638930930459368052159298314870858952911288344565145227068283175040589002203887713810322327896354099678964561104703388317573272430465667592401245531342934842912173860837420420591546859311271617874197529374659746354393093265039196208127003736721844747739219069647854908059840437963768369366413313560520916979484755996049601273732049064318778163250514469892860328135118997228816049851754049619458036790755706725150002780803227928765632837983654860566633163918946456705180569474198669401879596039882274329886333062568981898167438581143301282183024893526435752436899065587006275675983467549066366579247820639760600063756638636194235812022869793617653172756588973398356718313994390511144888029220884265473518362451629878024521014363208368099248261058557610111464727363205844957037049620519260913761492826980550355488841698893088978174237971407733909805404729337462395872806532639650709847223696840768496301704570454525890617770840685952451634023834287702873126747436208741482309750946728883706316017115908927010662245636396620732321817241028619979778534982004432255819080287412550842683797031214942389612712965407792560045588879807430208381045730184106615741651912592706418151528663424534517460183874388473782814191217644887116005283278350275377860411650094697004689887585646706195641370739657154492714629268247546979642166825716809129636478448787286366134967754968363829386067393642898555143848615589730750877255821896832957029144076053340092945887522734683487605312425832909671752745923345815351689343060587068942108587835731720565946341520712396307886656918776567796170845386387346151155665940855811058585198623532131260218372817026155654759508420736908012127780136002298620609465237547664001989207244374438680296183009078319275185818118781115279864656983658692548226603153876592610325994071883482103085390671550336278560727002058830316300552692047870619757629088927215973232371345119093887181120103534477454886889777391400460607157592864705472256328534214741085354000900083106029090574955709052747473965013312799768353715185670659299390990614565952242844023810435580573943911422677362701580933124876536727773183181983946791548247212837355915541584430526775498325299013535705675346654310494774054562479557233794274394610033621518115624076863794538203183489781923156733898676897049476838437371850966725554799458111695026362796578052935404019716512209954387261675731547709009794638122730518249029592122363235569936644018396388108749451759551167532093787981943484698349843434283213227104504656752965791315136014878767215610560965145582416302552738059885827507331864570990020585707210871310090009583779483837679871267789307481221369349889938071704610469857776921588184760191661704928882200996528218165987144406715728152286437257288611527961837968130396396804348966392518058417703718181998281288694340997375573507263026418232638391846184131149933807328753872787152533618376054013745630417958176887204988481033996485766260702755826733962350845637761561861504583270194796317425418238289731548415978757224083564790034314376418068002708397070705234102648069992966055077930049774288892832332580470360858012678910445103814204207965175549604686882215216494174863301722909335295950638669057312171914910170860305338558082775135185869513737895036687724212859952866113837135490078035922401399727811350403777661448870215837844191160244744427558553121586060152295595576071640542487353852637495043281554584875434224564773403129887608765615362281254993423505048664300624066995243248975789094656267464868652008333512468953722812803626939857138833361261348297597483669748178036770131355153074309646131065691878852461505777029535228472606280618668217797899232509090590192824673679827591091566853033274043821257684032737320487586079603434954340766804786732777374452572626127792988030431642635454079606783515733999604269206762907675814371908786793910383995195166286382742539927850767809482216824831595818654936644750859240384684534258397297335941897410737534929098836714985917388494905023015239374309705940315685615034856999428611583527405547840059565206889232904144375633961029059435435552480731687304359469539191156149442881100761152988201110467131239020198032899591316841325031267848834040707252301845310071530550911854282843340371307767433655110294863156877207011382629861733732155238555642795609947330591176826332644438474998246358201912846400783028070431288649927535457382904617492531527756795961634827278509801265477536368154455303791644004739848641184130994144413934494920777918161267593214722577186082915846581839865015698519216447780840144334960797366259238324780436238123966252864098747570631460145373113440039373657779576446523188575837138637011460767843853278557264765533443089677557661909577379124019150755643244885564629634005276557512973235135729632976391868571278217951800349468773012228559898875345863718973141470173145400628225012379671537565992530683684487703392351402570672329696004000939565134347127771233821059384930118363797531449813524579240007396085606208126330277813968925734303303131319783436486547848214204503542511977989556279650107780208441336238368557556811715736938106660972163377118285188522098540926590807897925849654814518883946806148469713458878644018056107401595914002486764321798360107857296170288662909733399744286149227380743307753768334719907713298234995615587133588564770797384968233578379414356615644274499909120206109198136209562747070863916459243280758094848003815427269452907001923141990023246835818194929710253614300286620521182917417920194838722451883123965927893189049055656841648690228246404482335588324410704352064301289575123863347970012688520957975442290654551662319842542768972281712649367634038977776304190403050632875643512980905980462825543179922414047720658709654165790641859161598615978454048490717970190863946753758751197509485985677665273217368141736420500792216539494126356005014760892872819971400553981795841044121202408719597610880257797479068362641119099301099455869464555665670019001992917993209180349683671284027374771153148624924815128361381987764201591534135256072991208287066465943817091057742466987044349285448569920210849565797876719792524626035306741613530664228757424587765910847282210416295960343499038352040239431259660792671776547194165098545113103139924004354175967875496371267369091460027418110148706279655355692887229490938611357162624723878144845281916656684269164894908428103474611596741907052407021908590839642765640423992072186845618192666608980281327409654250817976828192390801871408672015175956704130965707542325362380986219230184400234939087044810148313325540837303673930497627335185365997344370936014893099663502671136951447833645461532697413781546633237774838145547848468173689395002064956413134875491857797195563997620589212316901059455905654670148183281096540681353552417938892812964945749864850143116313980642872328562985892590599195321399579939194353675995469166967650742630429608989201662390792461775401886681068123816926881143496300769934817184004743962910496147096117751189049211434896784133319195131459607987633903932250835635577194024596550034686978892486474849999717194159325190586991941170672196596803447310947997195778250081351971833729735807965740005766402380007342326029527428285547179640419165981317169707734393542465780978147724058655774814726936581644539495321656035933237716050983007043214727866109796851109998374348056296656268814961491051794279857564483716398593829917682478559778735588856028622826962353949530174251143115121401842900584137039123144405904027273497438413299910923266070004495342931405841455705815280678970341564226298646625453074838209474423590742267866590919516853125838499420101899016965286716941560045299272109362908431661713948724967536317048230787520451962518879040777361739637864765237497204430368982328998766210868582314336378024278161093658824079041466830619694563785693253207015420803003792186187234904017299127959837574592990720783893910816272690073397791110545106824565151921620465049986362379068477901168821590196092238614119538831136831082911295735493920789779340042589501322508923910067481760330143216685376486642985647189859249872558210321104724791577304175661350741101819964690981721679049454444296173245468517051616070056230796232245117407083683870746739909013749350100999411767320502494822759351695410730343370200173287291869263991440759039668383061550986224781330397717859061139711671763253480268938925967124477198112616370908735202676821543021027496941029732869590157026237630266473580009145584330852558240006608054202267267772286603875666370239042381794464884939727426236677445190593877715746646307748252050876039190659595978283084424356759849918012223497231907309125193360817294432249305521173716229566899135068480919897319282058796043850591039716738095943251345959806369569128022200891808777291875158749479003561897535303205680950711665598028206142432008684105447623493857067996976236572153691313238076146401227475948217528090287027851698222208166962827895088890127336025032087055397547930001595073185682893067206554551796446857513716271373315242360043593452280131794849406461452915202407700751563575021444180453507901591032964085557102083057730103422579397103786378460638691947167314265239437050037848771238209407711546269193493836354935637537728240793542784293756810939364576288983051647560440546964226670635501722406180839200753317965803133081615883922091092239859024789213551768145882678290116580484645587049532579992771915177732263971118123705431047017207114810629629921905975267782213849010036279465321394770047228481680036411459767703979190884471031555813215836920407930941241733146011669530444492314136219685886644795264987901060263178220461481140533466483653501959410776354365201593389459123389303240226423488907440243533085769934646922658905930631595179636781094816503978516670392250148694353914438364052521526490382810828093382154329659102291779379167273290217377521613408377777407702958812115988660681299195396417927464446258784485708918473714282681325357914941280749792213456640560779098248445116225039080711102332444472301222841788857870392909908499795253112957640047385352480852819204600335351031138368316249334681761773095574536621542983792475153166767620797748365473884878414284317234844801343990867373108878454993592428855819665356161407379660699510062952900538702761061798751455196482589661828117389754009201795148202050699793183232065656917495545974369794890243183227079719504835233999380578913435413998540994361680597633770081248237978129707821499046196664479142773596664251407485828911899683778560110364023350262412461234863530961161585480785809094652138205812944397759868773260660785171403935352669984131269552664729602311652887511621101454379578300499315318807628812069643034325292431521937744715123575280729070590186314143603683852251546081629417596419011404115396572503356749043773774908795949746614000054357752533444424720034525987642044354952216827788491213017176284949388532884026483824119610757619751080030641099311190029602132346096440370305718701866531277992336845819791278526737822615652080590419419715972334889885027623148768668509834350601329796685070400865631924955389461267205489054185331651262643253247732714209096916774430325243764262208090596444302748510074109189016834095969303843053911211194683721004731592409612310810204788664396400654734643530987912152060913157311770460793623003086989429894594210823341878663526861646338487204135405471652500130858293953311309162823932303204115847213456109772778535020313854223850515026272212287424401898254620931731799324629386167115632839912648660136874986195704441691039329008961082624657510667403939372465490070511549571754559158769856623508625469032145538376452101086519670601673928613846247257668634547356431624560872166081371639485068764043912344692317230712066033122406797593085949038251137181892149521913294797895710433749084215366811659459363978146281789817380035949629110609063797968787269615911764453431555912985962122500294279063755506480058789121808666584724699566413890116005921206893299540966901868968858016868139963037583096094088145729663477698953520704930206052837606972469376366225966316060925378868012836457389394251281425340870188623350649431250886137941015367748571464823119710833312536697419929213694635398136803573949109057075751690113283819292427848665177103139167747273564912440966429078325052971550250154140484915070184110629673472920304158781613731334471268436815556934762959556024245279219995261521663861930114214056541988991936989251390236146009763165672541542400662694615389508213162548882564601355963014224453905445046382054883056177553699995152410972699806689138811184002238399843740830712534413876263933892612987860797341441642653537140777793425594371116314040345144235329826342549015264725130705810060807656406457499180330349694020302208796964353725746324485391001752312882835727863825851753193541104336908724634059234670668987160572283459963405368469167108734306781623176301830060921442181263008900886544431831295447288174203912934203200329584535033031635837041196589103349420077005374999891864926845108221505027799948892951262915791820577104618442811249952450579435212554674670325708371991497966520363020368022155222294298071756158985787582201435121465017177780763367945095131282392685241166668712863911348939148456052104805648439745274675485020414788223010893100065228306389163843353885679072286392627900235053664070979188501096107523069401294045499124250131033184464508978525310171240751815758165027148550881735174760716343139206100930597116194431491904676034466735878320322200931634051646673237018992033923342109121447093227681861778708258783172275641213504537230542097404942102042182862575732094040939255895888442261296589057985618493786818518022657317036286140314995757667524927309950354414215064243163260879308937650618986804264525696664695522020065784397031502294803898261319955712071450566336809917887932116694086625817886409196483989467630420295311255599661132525149193724565936844731290233945814361630414667206964636529358895395346496195642675376876947138235757089590979681883876065033908814465834888550424913317168462978245361919933454488009957192628946410388996751927144786084426895632146017842406899492320975115463737552778561451473977844540094271994175296421313569527006862144016404040066636622711715454043380618193150914022874171509227576559512826845193514890841642236885687965101025547978081882041618816706223729328449836028195915933858880520983314570253313304406708032383712319177242235606191140542811492014419544041872657330390807311257610324639710671405125658816337132350933193690123225858968572396855085009175523274588321943473595880357002342034907653676901074466674381811434463435401838834255828064254678102117506447763291576434297022927012240253776366740121168372217030167000276974261395274616775784923095929241518107107574820381447738276285382674896485729680314954550340121661665851227595977082979827933646968512333184948861130146738160849655561769159424337484317046343027185748795625851150909039615583140270018661011690676210073116215809207482902228997718298690595383380080371784394822847863769630746193115593065143264259396400699129306462193908212952514404474542568193141868294531549492787029921492367655906434302690763933411375044941302500834325530650762004128831589726431297475078606174516104708630119010909149102093969429842706027279448342085861234905869088120078191959594352476995487559915596880998050222838040239023468446477923679431000056348421653901587045985732056219904134310363288390073932232453227816488889525638001581416230001544692893223890422670860405070728707175499632788223031207360908429356573177057544163364430559649881961870444013666005975459548936409931708550026887270945659010122734331083956978898972644653337222011446055912976372951434923327011746694801364724384008673415297059932261754375711598642853670967718586853270287134727684170877232093501918082662267731105170302963430785043392568401869033684953769356779499564451694140683940068813099605972986326792878936943243367259157429211433127947052009151313988909474230711162444342149620714552811797497364282772216909338690946896774267940492327199174511023385666166752153232940831166508739226426538804785369177091066272539428804601015711776313891683967272706976515211382391622308234686543886104586931886811648472129381163479975052654430059265816464825542370353717691375710624124212915862541988278782732289581214238355374909806759072368170910436224847874032348177564861296217409992215002777330244242188236488564695530762850043097294808327674626028321471343378552743583560718587300513379527715449434639200149034613970598397265920443514850196795737249049292081479586004236464157546415207622909426953632450061146512249926831342928238981673061815876500839648463537155353572260782529551904059180827995085232718024531338253890600329935167310641686883973130254740995862500559148909464708513569711847164215329610105498155127283361755493740606479532040053274896121274535343138952816155699882152097270709899729807462399837880358671379420570507480657883679780786592133808784991900090903166635865342008759839137128711216130764389012243421444933496085906055389555287380403037605145546861675670356425734389661064925727915687377290195440671397685313492265124699108233338703366568558178138550393056111553959168165077416466095950784516101189566319607514916583095373690191039366706568721879454151753342582840896178642309570915628733321140176169772596374763170768027306500830328896524615512540801098208718002465464669789894374374823488770552285726242006004535065317296276970167136441194198407166992251779248623050400028558332719157468845989374407145320817050710004857048927732745079765571412219888347445529698656056426777026035870587513901806506854931351045449569242601623899175674747149206638886824614881582636518102938306284388775185903518636133275000616175196479766498332590990591636951265857626760225080769976637861889997574415113684245170031380796858688780923342314548056532369380344303103963778123216841129308591081850108752945576247694171849258781046534007735653802217570250927159066142343094664040784880031599707675810131152444418179052664915906076705851421706300443496343443159805719925324676532610089328522997697848214690857390102719281659995781538538079327075499874035241267333971877273034038947431445313394994414106500219980483499552350860261834723648292016839516466668158646064008217102000957955261463384900840705108297260128728384150558806243631137549506052089613437977945226745792431101651495719828917487222961052518849711709155969333005555690627272838349940861631908749428137329784628299419744125751488924900203386186088584039466063977123598917691868882649969778531655288812423659214900113968329212488217747443921301788804241737316484234057623822849046980998562425687078420276647307112884117793714684436580812041511890380664843567965784731272786179150156291135872008245987092407805552618220747137919385321208268858239232399230110346652872845456626621540170976268472083209074666310358122163065672400245006605662006267559491551723062978198285904259150857612071234444643230390529645848308736383861798222904431628114130040197556045490225650735789216841408519225517470452017167034767026459289503868333414549196747765811488940475161410241293337674612956168609315788115959602821997306835688317585971530950317984828404644491789570682356990840961017200173943480432372618002966648818124067530341713757650033930913059773612507491262031412062688078335897254845515066930473220451796117655051016968565286658518623646660658753742203528981941251032417133334656108505275504729453741285593969779959295661276118498798752404635051476177638158696004306869209279692240260178737658934264200330734696179282322917062471975649915576028562317224841520427886492678331931546087394977636140726399086169196405660754102154636589005070529729586372936190381079677913533091193767110475562058583261755800887645071973226410350287981748117348030577613628681953679222535668602207911690118442873757973840807087054465074870001193865028350742807545867503884599495054845627455919048799403775865138740594781629791086140143081175549200007772082648727737148762392076159693836592043248245015240205266381471519509396502628372922730450615418189067873748133703205490984242778555417010421621911826211026275357293195614770883577281377817818309808970038282155632764200503705934546360516370667329512642575744551693927488507851603199486897681287697730420197721006298598391598220172715577651544379052401627782813463679695790646785520665254109273592624252881371184234133985121963376636914613998325045854355430806326586705344777942936955461600591957567402126237995071838838828009511951782772867266763405312245235457381996615682831500700917568531740448148187388217113755484773285942122159829714228695639085710701005535100992178413548617531341664413587960501250239599978220787702140372251420709964396353051484709046471324586190449028375152048210682488731094582586899381770228977944720282182010522270987980711698789387184601998993407830841750692618676684204643054550151438301311179929246965131836171501191771408385438907573526262214182227169926987338093878577090612867339155792651638825216749312467516006700678929934850870267668828688449698336211695712035935810041218282158085687758345597956054254098513601326870018739223655779551111109922605928486123440315267720385279835155435998370165643700887131996325700475273100170005912793223478248522652036839048534479533558343699367732266662246562987087902559420386445078873981114523211192052792356162499890832787567667752010247583558783576539133390694745957733252184722370218359005888483770193989353116584776765269771787162640617332112139312935888637428194707453895880413527475514322536204134844563851706821583141979246938920038033229724460229264340284429228397243622293639988814241697033822609959046562742840020829002491410733609028443560324498605571764532818106598794610702603815806366587861405663356682018579495076158915554201677189690607986420852070280166873455084562258973526777495150716612056307921634701725579039430499935760378923089883017332034987001227894545403791482023958775768010417193595312517104963589429624869600493662145616806052657681982848275216116020996147067225192090892381165737059881776240284319259912943292506634222622698395704069136057724792685404915274139316371565881827509185359785063682954221670576021168486240007640398041820215831708959582862508463152544096709065334317812871870532106577742872026627861841345159427893378399533759563073674333637155332562130916962954101798083957533037230149798715825642182155332802660275966250128254805622385611186444605252182259235987312309483067535977118923689885712042460131810084683100123952137219742687427564977873321346154674731118086784262485617170331945454499512213681897219643595144873576022676860474186809716131485172198620217861660380568850686821797847796345577997420312397669305269804028373385684486875316409306757719537671471140071923987705181098853428788738037313747655673938825129306684640873755976816417518218179142081412377623437569201629414051780603781612605178354495205929087081518775746965790217339958403645109699603823869292135535476489459619534147989875154756660282047576967926057844699491820887927494252220730852430466889248921564598410029661410831781359046852816280565433869226031854104364185295749904596222519470237112392567563130088002965975193002787196111270780521563598621284255135795680909145153758857887651146465746226745904159708801150102516864304186744988076218718043933410451763423743004658760963088901145235993749109263249561278067638848842080793496514833638727127963593202704879400274082347511491299316784444117629956377003747298928479623816671242331995051221073128897276985663733637499621780759266166422235250847952681238983200775665383147909878347234821232569963845938673518350395337886301832212001457966268234394628187388454450794568830638259440582469349772626113057613880958929954775937675290899049436024087883064566400338863365336951445917339979885646071066278203802093334369985429699164342056226187786423778089402605760755026641485306101869295206533630240879842707970618123444273257180926442320580438238929901957404210274935616253089895023549096380697502815638828548757559803875092882687113270489389942043171058979099423773436612359523858563963641330902107137235287309088761187455218414024578356877530938707498064155782544985414805764058573935699630567549863438713338193880171625944428950681831421372902487503639031852536355006277271370029190237325881155460035645955697979795719656350279124169748224481621932542846799170099480278444371594944055724128714374824410893789159808564201897733934308146641302450022382280547197696495109502672103569278207494736384836785940379004767926944739251403303374760707082853268454633821486600901333924018410015853847386526683806955716592487003088231261992316170372027147360622894001587187655596962032760262689463111989053752495107052976879654233085867343690069531037683849949170932127969237192455298253472408617921836015756973648500492256327640397000729525023283752984652080203480080731001510893736973404673454276207642712018696854886483435058650664249628916096223465995018704062019720070259143508320731819565782587540479061579511605489715140202827179865747015879637955739959117860669674582784857068489370114845508290722975123531075429731801903039111945305511728900965037391997271750877393101850064627811567870213804258593813030766913574070475930418116768941968952150320716934989219329778048970795786232633059834596028204453700025601462851913717509577713894467091532443387852638115372479279811436743893214770048287606482365817726916864718552146516578280600126818261068472703002250069609508292404043100461101904093378355054949378024336160548638480782139886737750699568353691287960173178491443071703248745991676771079897990296347725549089021312404576303352025457218061817980490338471273596349279548910129768157981716040586858051342716736413235366278668942430918619798374094679897524131490573137379017388592764000935106415403024123052156378770208097329589234763155696940325278099713829634110890352495300582231658715820372055201969287737949262152321492684852262750592004503783855607727017849214923408303110875617594070064955677890261273459343348564159076892374934039168040250107507008410544487088114764951183125053949522216562962709575592182030514120328053679376156682264184643556687138422004442858884426900059182785300633414807248147025152750713545285840372133859943686393193303661766838134889669038140357965973302834073874297022109883702773857144935227753060498130540043457551704508777129256151909860182565235207515068816888050710915841149660581538787434552001157194888221959203321740232208284975391650810413161550709137733795976677674697076116682055307238729725646882429905875109211972512186982963030492228799078205663127792019408266295097600905824338657181800277988384045673464712501467331132332436657251535791226126909881121517947280263001133784401229532191104502392084526045477468869736865202066250185875394454670195330857516344352129904873041907029948922606170230504925705188418613681528964037615336491093038510995068081821800792284112006369666544282240057699367711897980216114907023362911409099571705869709508653007764958365645693333097482894027894311397155752351575600656590275108927325322215026033885523723260493074384150591400914455042307261061400979745348646718327611351492552907608434271166544846048479483725182292369315621341476334163380282560993474104648251219335453616779937294266827836731943368259732205451075275749122400617164404631928199302836614128173379942368852024647572631406001049844955914528322006615938851351552614816645176722216020092076180009409932259723507040263976292923322540801969016307338718555094507708921884287302317304417698631790046138700482180438795406144134124622477350485213208900005854342292115876357605383074597408555550878457791490134740098410670094157852653805082000246145489225276401484912962248299684588369264682368311678669811668946074377145667411762069644125021527998574923200935268046213582636376266260230721020209680090093602256847768741046647906493578698199232613716863016875091884134638152107170505671341000631678591248668057343797248482175830480787214776357876704668123206987838671454469094257193408383645854941180128927150265429077570092436262457727256724476470185916339584839850640670892600851859911836360055747886803976051659272687893725173309910329651414777310652957763480765529247983698697907233316585575153357510235385011992568219356802431549418423910637635632304055037178048189013477641754821549540554042480992892321654134763553983322416570148272487299046158906179931919433499878828499275000935455870077624457637090903835069670817476076818403987827961796791798197671940046650159504684832072627247608088589449217487234987490809252593658357541195393809637625996239161388085469852732984634114569035828081714054733422611977590418876075905652523531051288941717740211810103425699541647351182149263281453373665112554857603397941588481253605500843643866186114107882798490166780708990740583959882905039033551675914352076106553378198946193831757291596270735872589673587276105850735619177375027949793837204571704988022888453392099723757489277229707851244463002304054015709899997944310565086095258636942832007120416012082210377870816926121339552048229830140210665429942503090610665975008205645515113754766757178662583902057443946067245965627969404380811073581704833026494254691858299875551464327116453520115734708286023225239980516730657660006628335141577794989060687117818545280053369233399962768302675365164369422301089499130259334930655877892009255074475897093877086467687654001014744177864564410797493345435150620405991049610483864579596694692853546889483750013317927254774881032861234306790375608217424571043799260257767220389517440067578092667070258535167390583448361632214527797669306841770612511475225564641214425845829197364093489116278726735035817521653770893040699589444680741830601256012606046602441757144583570202093798233009776127835212397387547894851976078837662772933796422188807844137115747054527434248409857469601674065714143932754089252618828028927414762948393325800858145870182479106935153015454448799012068731252360661998593602720425365885271527956859017263023512117158624735585247622454603691718116405349312016395657929159852021887244458446601553877909688979564056160569592493884073457082638017914980849195041865870943780364469544391295708656939295436277881607033470018683370810518977241787385834369132731986292519490500697359220102444749394936411319721978841585620745596045544652322824779657588616759310818286483630605809630017794689322147447666116401698371693298116911998633462625823533120405935083133120851524829009137755824142674865058710339090084376202855967209518420566281725086685000204328100360115120945727426171026083695413414894162279859579700150777045516741299399218031856834397903751184477515543623905825173872190395413156428575000925189859371054955865594388078333243079606528917233174014460433539775556057498654339064007200623923223424593045814985591446941910849360164752598983755918156721695823439013236535467357879301511555557985790384988370883564203792740411770905599953866644313926495906718366518487570962932893717474512971843924913901277287616188087533070776548490440235265159204947913450626964316578941778873710030357098367758832329738695663546183474804196017344543673836263378803242135755379779653442351278045796547785249432381616318900450291693602741631459510510850774830749448687162401286243143773418072815340622357176884808580112861425367284654182594279373226871598258963799493135797352390373345543733531724902951218125195345395474379493942931615127325436165120555684670807618768483572003999473330699343199000344176260466408360665354287460539836264578976476306156898234407398341231881372263639490511799043242180475770426930238964510439642388489655294860626277098131356359977614684534822190151998508909551156519146839419167889097251536811181356866951599111685276102863764489637397226888873165275889332845094685356304987696770299483635142225957556610711389373052690094665909710628939227225696997700395165484144362919854640438214895187392639112778945981064316747436551663735859477420379950114528016102531664635732436767484873978379422365676613146106604827035564016136226316368785132814888279699152511079840783619857730720228804757936078071858805396658210146425242624617130382433775340626043089768565644526325342670888393463303703858607666954712531619213268713757866989613290879086023449184354704554419314572532108910396553355812478753455025734564480662782336594537187942923961445686263446235391549079169527166733933555385436605723692134543740335455927979298671640272756604350167146091013820457626475063136323581017826537595292383328443875936313624837959527158368371434105233022639644189685276591492878930231943197132613927485699268911582581537127404633644174143658641747128274914796908510573181622653957629422383965052759681631589072579533175877138959228122488881562449834382987614648831276784538640655646977883465849266692406632513199631447370908372054936968897991417182797590971179547372067911973332399896356361621895951014099498260636946086748846469845063023735374530212755520223878680111172901139211065308983001503383629868324467029128858821385087626593723447465452810870208855572835892241619517109585641884139464052042718332647074885515818816922220320125974285479141285052021626134096673535770851497826722812162880827211750094973442250486269774981354727748689405884412870855895554598315581058055257271259625297834034071686547764778793024201501705600228164728975178572997112545324162964246604253708938961797231222753977079913366999239762231146983367003780596249507191156614466335080402777314377857110748074913668088462452146657517091832755900249652174810087156845216208645722318777605803965653796347117001443443947839128912131852341734522561380179307208669626306174967307214849460096788529655855189766801320906801331588706254424408615552603729422969196905326181121769980405197979176572400976028665362913481724913677138769644031571660914859115769431677213768710473340035397984078606037375484312058771758096621816819200865804018790233624825850516993477319598822648199405896389880310464224631887684174420561439756119603861520890130842297222625696283551807268675715709493796950463080737873249089125637304764168365215752797072793136051089708001499134528375052987732231946544442162633226594127951937668356360255614559761884004214069240201201599935148299148337657466387745024377347685268737396264023131642002339527184491578581026876115448947333726514026659814251671281958212056703229374346515406084585873683010604556108718303442354817414140334773567393514383626710640162969509567053887721021378031779759073430513591391768314766731692453557012508776178124207110664160613422208364747246805734763934808277068720751148474603466551605467762592591508179183018452299833117161446141104147164398386351858572505791001431778046537610974318518678946637048150661017653195130922378723540093271780496122221367481541617898721433132803659750540320239776955472592360968271427242543133102635630536027824783744155143388516003521710158122380667776490219264082247004115492040879702006490929965136635632233621716745275177545710191115056772453695459303782479999029753576531075408579019534617499520001543933067218656055305816179211680277719818816922264271955642702822985733990411576961406120934322309452863841492163848019435451411562777262704624088897223143300301987360567182380524788437556786528021494602312368384055313326136061115469169727016419043257676350334033647671737687055774476789991049453889020498902651485280889328203009075559427913342185338481151856759741525509289163854716842201434764886871180034206833982896077174737879835901154316767470299549691735540910932388618040104066899587610468926279234353385378497267955409532113536136393822485429455385614346541785894651154617202619214529694387887589184345255393782273122428229742502466055842891477758869657284582166417113567975835030360227993585660342431950929089913296268823472996884091715587576135484779040783954609180976128700815092974715873210514986860094414851730328631875471390800139119026870930213303956332956136988776771566642329211640521816865770464093666841553078823592074477846092358402417665799645087084781114138292535815336694398258073083837196578899154221221207993456071883302314539011605996394423396719811131140610007022019739035886327409433002984138947674316417499173681725168404855382589083564208034713745871336558204264488295525089785113030799150980944113176488058091039997184983766048540209581972800073023860431219700337923151835552568053598398053471444527131101203807146102420236199090544977941945820736313017663436027639316991198906409745957616154455496097481039434161356841951367322881343534665753905683009076025255993342301671914805233718663503759772323123752471604726203483113748299724696126516513235448445682875877810061095462261250230040294925760754894298919303122489023497905374077903615265811231526691684376853860461541893984702508706977771713845587583935319322929248125783449339177970533003656718888519441767476132359084621235394084210621825500398910943156826649299347751728051642090770462979253129813183037003336708445756708370586273770589261312672377761341473366348541886255811023623071385853872965292262769025166719972962077848076678466878705484674081151185452325194565519814780944187373001137288576713518585015727257759220650640575024475000898283281589047419890193459842936121582815050908428114877383362545131171207373573062189447279473407725601892220995180089425439847936550988291285316681429777966240621990704421881662501340493663147015969903763341216749792068895600844333717106044545915631564619141041051065366746005684859873164631370958094732416335928597289175704346902873349392865562304103854764462406306088562779808911285325488940881516615168000066935839691295406462382934103754009708656899696830933796025414267836001602828056950568758076711135733096184180044856032740259656290417236260586190753908902001933006534078739935880059833963904484109272894876720284481649403332634833254318176850278671905078528743926897601390929433827281131206659475219569626139476485269758270285361995279970485289745203610156349334800480778591738232754201728333649317810268217871846492644696557353406738220237942277793793449833634665424614618709247674823128139545560965673127424623921646673178083290425542927810916507964470398798738110327662516128434031625718978869982553610059362566351995331165629573811771299234559603471217481648244802950200719800559694943089300545623792377009226315027567582041829818713588335006328256025139006967227571200774463692010663523108652949576171475890854026431178604548398431107462461032771721852412524944749666291731195848210584674312377744884210699836296506549845383218360230103975637611487076887345642021845602083890225897622625261671227880071084099982470602575900052206254119641714456263898786792813177716516483160533191253732846938173547534905622636462427352058118062104467985536625435905273125477768161200450854729271829710527067588215562298121054076283694858011566384097007791293472426028431081745169947151963025605357546831837707536746794549423607586419218289301761593446303201283861201335714264178500162642131533542131713360257836444086909794736278889278239529089907726761730990400225045387954828167347851053400313097640307567653348653204514038819014845473135965596752410194164074051408017198225941458823273894335106860398695178571928190687669688467257170700507214275790079626248872359602844692344432870270090539518551906509728276772849241572713547843227470266632461216890146823614460048347665724933025719415737579021231733490873298882544452358227089807608541183416032849200399623128654010669096950397054800249394041905912828123844489014739952846752021850967386782659810420886123363804989590209638385781074851204981039670637384052500637097016843360376402294575337084558179397855922576721789007024502645883074814772162620523176779613303681924190207874630873100998157256553890547300758069177015401215960204338158611998236527572470604798183008228947836828091128365312673046962958296254987122802810827735451986519036409276908095540534228769858950727334359920974539779297325337456567293557676371446631842698774054170847785441080016981794359287654129539422971992385891189511799238792075908172393216072753604781987296634050119078854024021418875231983459382634161001483076885694053588034324132200155604303465219889466635903982952894569421491658412084140187377529664903438782682715042353906030244300907029919628365545732222772908010226866820220348621697652792893794155410073872873093816479366077556664671808035608949449843078783980497485076681846911824445477704170755629549149423303953532845935841195675765940953631853401151155778806757477645927328262141986764238939380806149465411889431000821880798241695519642142849692119027500282321035809148113646885921111700037697767230522754820343346562192101070318676427016362609383068494785342708572652976908134469410058818934945774473613157594814108140575852436284970084542338661579535452527411821630157002265503559571557456911638475317933015506812009419520758289686483605368387875843484920556373161346008863615259168608534151661132022149457433414316436711232562599418238897192543607948195334791895367722943435931975510013710914050575069698934029815754932358072090137031942126976726731952132462008068370497995925249028947320641830597791481349677767942839434774674202417868628329081630521430616925341371967457808831104025598315741969826285573055921056544260307471834691104951395538076715970552446852361774489439492603900159421823026441192652721468329583851964908088125491939776050531344255218456280190105197120203881480032964926536171369015647194593818596152550955054224967810007933677039446541412178555200898900143522695450113210017103855004666129523674084659766664365681055366909469989621962747900678554645419562962906071310091755355811839200593365922288805443370603776510366398245427311597310950015884923408279023529341628907242572655603502829547957451420296547579384331744016009873796654005964814341055451391908429862499897704293099460263942981937881032345768774799888366014994567733896610563947411535913443792808402048976933374504181684093514666117780117986195197850125057351030339328406733878095144280870035015812394779268774903938728163779019230849247648507795562755079104684668800096532030988545390038467452205680045457985228644373075744429660667042395450587786397510908558963574550151213487024845489074211223295073087143200242722276719017958056532382710483656559338934530551106917121493322744204515746606266362453580659088852169955450582314639550226456543175848293289053921666094116691132184290740132286374007426659756044692478712620935014302186300701715890216308658608936179038091669197941467323995882083902722458956915444220342380616966936853717429726844470670807494133472543187121422977460687719260215169883563861245949026738674930991734247571877062008929243165119912290994275512855567898724638317165600968215227837798794157530205810878703377810042711690635549470826560247359549373881152482319994609238309592947872393011702245482576303728562008425549876881533458957410349964408801133519641582215673000144167049968656343489219883586558195831672213226642405584531451991270723115122237302490531845159454262490665266758501421493527456958432465403295013910602771804412932845701416814425858124154015346937778016876049323113434079341397842092316886710889716504972264460161064991355550064453289627180009566766909624282705480005355514417330477486819087021077701972321808162569204723036512569641374046933005051997667391688561240591566536933577428855071624234922180844513060412441318634879744185716247637521642648784618442390471650778050035011830316520578503200598996766827216653485369929747090338177498145384846260704396465715127195957308192685513139053995384297580734481242028668541115878971753149031798058780401520999932067946456120179440237084901879877373354230553928240401171211005551975342240727206300942945087335402785470778323167393223696527320918426997546722242842924618171537101444273325042723517990032020692294158771093954147104522145941397824764550910486774433317740417378669529335991977987586878966557715584498739501299971551771367938943556424084957716400618039801972343666095203905501517646707302254020557379391767053194863226855727863152577956442344562948980105392867523041427778392386354240449671728881298780668159631991692265093491229834283771674710440200465608776870779523181471717946851008059746615390298180827189472595831876016064561941043442278700142374748101004175612366931844110775447275434209031892422333410415128018589523043770802235229275579709697695879743396853954957055573257152446849600810512319331358389032409977292736649717202767608236644776391256781167354927254094515964750810261830719239613811166399904668715215653422201438639357537202506641209368108938799908283861270784393906667742058527164329809750387197059588702354845690604737597507152330769135855683257121326442332068288457060494288123866802490029440977723310050479540701314480881981973538783740149727296213464576161619372202194209802333226853784971091827604930923146238288380436852999978679276643348017165912577101242673726928102675441231798750258240566150033163851419793754579570599337016972477108862144335342297715770218165387338058342075528035397573911461545503981891631838745959731593184162455292860304654045098782204416897089787055375942032651068397815359909505961529588392038347804602759521516657929069836732295624139410464087572720681142548559479334593653065867690357515698437720409494518078762645368384546653922666974899163333145571703703956284326196857840807671685130807402272255079006060418895882079392702182344120638774259256315420257354690600487696254225923993400770218083861950844375900677238142825950818408844023542118748503485863618748633140327003004847348563709656420540260591707507933060480139107770347379485538882955212480100373026974682963602398616587423512531840172622158693589793020347971884310172147274647301210279510819745239901448917552958837721318853722797974696829979587629712662103395993352160273881439387369334844149016248624326557079198289270347322538199063653483339392204864100325309545918093801592021731518223755406487738629787127458880854264208993693883691019292810614830294812837999983064734833020294628540828714068907998542900772735021679683506305134164515347304021986306693627742084765915682223392749738492218137455912273408857438858998751907930032903727709421831811223225918305332009998092056829796910115588241040570774505889040019605302854134577674945144507949582628537458534056338069203562099740273076602663150505381298220545989356426837270357082061146180494993265951724194960702094672885541136060883310343044501440482328916801682533715523928272616652628687929756186227332413801995844441493578865264965964700814753775086635376568987712781313394207767645363151902434622524810868105794584138657505358266332045520181515139064194457294173903352240141665424834543112943128915188193880990064519238513925716880820473006073207354328212624755907427603091553941880629080352319539362992904417017169785589668841596283710117285001196890567839599371717925845275952532909599018049248527431158740416487983910637251079770960549084890954449247170619951752132642108347402729119959899436153365495166691090905694417663494948815424318570424757622649247072665846691502308023042471600481660489483271899046880225947227655891316363397690622201059840625626083415852501699049286259838736526448940581441338904448853713073795381313289449271829820510306176964395782284895635580198750348968886760342795217108555040853641067925302858600576824626344211629251907076860670580296320783974849263796118583828090389703178070463461658882659030499330348805825039144619408966228315900571172582914018355723980914024887852501136795140959449481433501416718444709955784723677612401898668227703436837167124145871450953788456914951222365933846270706358598631482865033235777515763129998262858574208085766853007097047079339890040401013832169564770308092391207773883360805320670175426680101161324738047740140793570473110996998424365068250527797825638868620741030900147874403564202336884354573225993377312731797478964328004175982536276975843968259389170376589732136941891932577264754527623106375154119026618703625290062318603955176038732541445629127059336848824564726868471922783092210297481354669490803895997855128521081814043140315705758765909010913136639329144394167248307169371161526479922825833965602332585990347169009493273323724134955632989398201496250845034773060293946171881885901458986321259534249128479235747251595301619385815380009922684657111767442983862754010514947368648845426479078625899789225467578983700694392332098560172392637184523502682779916467168800240900444667274396507556692706335159340823429643304792706334792297875858055531116298329502453185711374852296638710295008992429490393098026781110583266216697107039838293331487394244334696860496588874587317155625105948474540516133028615282659684444797846590431703716647429103053381090298126315992165778237668086800891360310745757355069207322884842872712139259503144956482928920125907031623966191310778650225944004560249130472986984055497923951563849093784011005293357030693008076610767259979206505035996992532350587929849524068599752796181853836130441442618375630834097158157606444491903957775206208354553714784424533913481896100485799869113263448824297974818346902119487772299547322679498932289150310127249187727037360892756142826417901685825758682535646030644713968890509762423186138188887724498937865964729379854843838884921297854168165881869784121480644800152318905854115578459924391318972605939939162963226767921307310208589077426512636712447664376879878654761621792111137494479479928594024187603095093499705555887188842390268944728771560929756314613794088073447559851779437479150605920923064202675441127267235726872822560997756199931027519554863165359554764179017351806657314056639278100699578828228658879654224884815390050002369932635434890844228978441409364244835881691978599318471351079800044568133628071019414466482361938815762101038418441877844546712834452508326910708876440119254371132952275868823606544287178568074734730074731498842911123874420852165825512718210441583168781885885951573272675866232576523124020776204595485546037163301187774966674564828828648291287192487251067111361261190247036255371817854144966549120585019084887162397432481748086262060592470440689835363048646231343170708914135810154365626898477045859506575244274735761166007587803463897238524940888774057839380784889135300668438385507399242341985033910660776503070282287124539279618194072653868597634833292220474571821837266085240987610992493674104371361892531904115284624859443608711222309206928483911445712645928666083055807575009244221625497390459615448354048106388646346729448610597528025353932314221947394988342349742506952409685144091642318304651654495635398598481005746934454177885390035327586303549929448622656981113110179804996184006793194968512487538428558451425378841428212443758331865998798301877181429354468302846451341662980802103703834485193383568585105554814500898471679176580561926413241093569348607799924226474249707965206248455739688651550632989304059935989028908716364727499046163184504973768725388203295381448969093064100185464750846263062895277023819773654703298158883432857081049844472158035366168034824217305385378314440287430032996507209362529429104189695464086129582740489363338251887175926708774092188415530562571857423933551296678081007896258717736139815626404778779152724908866773546462836300030878322933054093370383247697232417481893468254770316456025367192474957316283555565271598600347149173075867741510586130237800221062080037610448445451416870808246444721682946456319038718235174708675484902047637872171169222041497909093998869459894244381714487655312223572670878333471970336402114170001632920356067336924072248803183548143273572498641502353583586655737514901237808225050108370316370717514305900892775633208897519682575484977638127567836372623592774181973420685357823804395261257055538366301848488774718931241175615618693463184049796009973605915976962224681839335670332704229335910945539679480971078300773679137662589299472794146679815968697342035694572280701947845593889201460111806371585482430448539753890515624497698121071447744426413156108260789168893084655661300017320864668541364551629481595365897718251565889273324742719715682358779369250512945260035212186711918604773434995702249207988837193766213327881190238667804748638748961695418334560807731071828294488857274787392214560323101437603799642397734691387501230317855260493355785882132978611802283510913368339687624103370363879990682056257237356362180259317906776265128506032455293681216364039470657264548197919078115216831618377773519716090012090021896298109057514394829302386198007698381844595052635315531633359821107941134504956291827234728361392461167397276812774491131058950607424179631922219688777083076458598152926591379917740847682139158659734212665789500267824574354742653438653374280667264236332519947131868153587690144203296522151450985631155400699605930295755948636777072975726721094858660526532620182395132556633091192768031218070997892802426262879413703959293120302107149510660252996080983740000892472247895133603886970765368882232144247647001551472659582239980760136111555475049876255246445113355703119195936693451779003403939834214006874706695783103257220775652474878686740832895625750315601295103439705867464513318585120214669983440553101747502514025327776304013329971332126622712159764991493630500685700069155484356867236961586130783557180693722103461515382833851203676200850459091435959766451391291227124451548030156568542910662080711514466429243425025523049585667957011808912381055446604610242744307095889296600474679150891627705975889180019489417589585921551419916157936208444451881415434480072015741670711569936318140091494782276921613032377672321128447695218273476183450515619156281229785562562518042753635243242155759571250787388138106276830157963891562416943224831152239086661399383879049810978260540705634789419399743329443341329918045044242723925187136554096418799281669161799007163572726438788148364716152321393842132848936567770183221563053967399552699095173352826474387017657093917669779019147198690735799200136248325610263752061219120056415004438785139253025515480537617291332789170758039756621643694118720245340054061394001663700728337428641604668756326237302196829902493731454891753715937849160249288057432201117675959860225478494449750123378533058363281524808889572531151805780561124734085750290501511825461242900623042720929815915239123973978767004806855190848099365689452900664360919138946025781312214088776796422608694742808566111299045009701975665121470991541564521179923773942015051756131012791104677971271152641203071316187568993862047429604795839426259922239251966278265476306226260256984691093249680822011326853907051358754576980290663052560361754412247893819718866900350944054653584370019252045251512416196568876701296174917248943029277976626479918851758716388445663383035616945601846686891898483982200243157798186022404590336460037095548945901641173138768111723560260775358789031857902110507054116046354581443699049958090617432358504754015895475817512910174615204647725488946069599183988963364506466720752748990014499406321993664026049372847817835845317742534213393120555542564275549797908630841446080119930470296724917558416781173040071397035218835321389168912460667953330405910078577916217726634997532271491667696206707305240143636798783435252467213887595440524069799388488134928661864379436699814790360297366986770242259828284689604974566210283973519286861463061060290251078492988653789401382712871588994795172310850492358482343095020992631545064487069207908305821238331562343862052644619550522449977565466757518045894539740876718269910556176923651235826967766408802615585569674667976536449752605899216628021538620368191791789446562958876275612384909720853063378083943150777544453960101375458732247890950577317289819541845616632211163410296864344177977296497266659946844856468796082037671958186045974477545608761231247405712489359421383547779634535946734172890827684235519908414793094087624891402557256951205369946641334382962739258129009250480583413495875260929924647977958961766624168954926998058062418152583048330068180611553503267257746594154691308531925537341519840047641970860037809238203708685158384755369600395597277438264413451109169550068443946175042145329084933183037134538042046947529270176830188398736176681267931454225714153208623523353236275906881940123956684626120662396865745571880878692419865332147032351796282389240125439627130170624974243909220670840296961342085452622155275354285062895533049433028714112152531004271786408843789051819223995509702724883961480399846649805412512551673180647228332261532234596683191130301281457504758290778484797999438997201601136828740156589563450666422476731386720570696831018437355854538102723150971833810436790029177804172095042128394638959536457810697741411564496705368801039979198314898050401052976940302583328585077275780672631985150090700134446405866914542540214377961558567332400267104414397959173825830009335759096398250506746772195824387939707715011485194403922843208875504166302209930358604899079386733362629078923345430307137913171098440999341219319064485503769622367920312728777936274528716823756379391952035949671109035182186204643744946962245441785341746353908175227702597472426928820540633297699611417817842223798575163298093878267718791121077416472263798471023676672671299598775791658679409623379901356196535784114227928588288318958246863761567805691023275536524414919005550954308708918290201603627562119445873016978271573251475821068664064694137434386271006310706293511117053872815501518376864353788842009742243906806736373015359436735070913807812025100169298482858423345954064606144706550118870394921825236922989183946157345603163773891712157785382011244064553473397160017195492882359189950841316954329829268051515235987831049578422654299442478162651677324564897816688049845773435073940990962795007392468014901728100546487892183116910986323111378399458753027635082350193375526481810281896668925874898705532200360540023354861077307992005479904771801464601756449735122898256955698708267220738206452324901915436736061692827410417283668686653272981674161271227315785615401323339363985356585838218011004286625606954757332720681619609301877918086832050367890625134000305664064470515775568567549158002900561581040603141368682226413649018472874586824862412448691699148889605418200147980830923409987362294513833623660384186715632385266091165145484232285742976348896151077994715827689719202020924546863116619604802121362903444905986123946714031069651049081399365064259422380645302949052679448074805826728202234239742758815743611937768469832616071157143133483981765387187984642239724354814043234322869327309470978714883369309572505312198274601318759775248782479981995754970650062851635064218146288445734194774399440481611184405425301476519829436567664244594363980424140994264132646671808653304777070455828218490361047995917174166371438233177097722934400352346357699441825973620594817772963812016444564600057904650381473462754657766359258792794614682346653708656702603062749438299894182959419526559625001470871156695551835586986875526310790947292481212584856031464193053550578230519464786175907885222769642394562729583679015690775470233809197098086040532145310824694659525596090772276628023927659960568508305455088530450258281846155779256032876534427905206405031673141682975471489034757806446636321102388206778154279969082728431686298105971711511405557679466831372397436715458220559960288255125571930614183565042768795215570381562406995276453341579685592288153523183566915131664337320029835420173447205701505694827122923924165069168826680534651953279297552720390398779893461143125984775641595602186054604378757692074248503887143832366973512071023328984598276888294449340881917900481095030732134750608667568634697384005519067116524724618064570354991608993181951441014914979902226724555634195853950685907962984887057170888126801318750798990364749852203049162719415764740346972378134510021507537403018140572647205501235601608292188885018232611028294813976083421698381769182779963349021942810923859085016109358957810818640052910857625295800407933903671103147744806549390168588351093646644196296862552437866611110226475308179599821095988327217933653334062563061410536959842012883199306904639941891839115604278665438333986058926502235121954154173862341283770238911922788243130150539352504453894610312577022420824654383067599869329374299617624286596040940349705635149247416976482845699652618742702223994669378925730414917810520433462394712611536593095571202467031949774196989753227232046366652772640225389632913568425353998747326492931299762178137396307353461383488135038313636317491456580357998631880889067393053320406919525558308254379668745438486290734036713544394389495473436653324840420862776835300527704103025486013365307771910644980710328199251407225596286451174435654945894478405230008392433272252543915759486066273291869799280119307264994416387054764444788142426838617540110833674937115369559638101733924136724741437876063201265641315495837901630083672155424718062526236871013656022979935417554565777747822743425816210154418439782812254639678087031220634241398388892623375961817172398652277679900547812510401099218139846630204651562527788234593787211958526401582598921307231152368286079047164412788160447283019647819060336025791465064598079422793797482118299178327203138162244481408952901871002598943788919538553171812853637147536432551702748473223057915102000148465469084918144211288267834949424481337117789778986979005883969169055731126609109939763283141276057607013852983313522159703393212711127217298203371547956272050208710526471227665739265141081289686466896323363751110239650311996938733656027510402792674185553769113354953482839562460197604774435967303796768915693484913076609090497083296582373637689363194371564274861689182795595365935529322831999791388937217535878789488487226888902974908984432591164397132707831366234042094249476206020784125956750272988431230518543027582120710994724976280667893472414942996138759354714183201770377123229733208359730150354344189341756576150644091600493042390459660941489056995429749883533960195254249681968024885336955369760220358338205285417085319580289094307244730035704668020876152892231217997796360769237318434148355927246780753677246317502617334587364749945453601704071052393049990597066474062567347787806410814656051716350192217655027211317629459893968632143998150725686213247545747453082284903012911189595252016559091484748313419417063143115498405136962520165212339737446178161870000237695749185966075358420627639506802959525813717468414365957400696968192146730844296108360832883204798409685893110385784228846120446035262356017328834691711404163648185849882354137683393828670523103776092633145747477679552839898022558930996473427667189842033747211101503102943836502269309609659966460593488023672360799859724469630322390394877407588827140790806868040062429151028992648839349996618429563671770110036230257032828217978467290131457123171278093904025764009011498373334579323073107544150926164774571456453855943468168734856957861743553709451213181556291318096999018258639786901520407711054762528811782268587467678408056961905961320613690342355133879443609960045568869104529079563868242173622456283336533139553464847272358533604717658357565724246736582365364140787006782778113793621772562123519259806261574646716483429437005754908796601849988343290293415482463915508623332218823991331313810825210415164248184813643365093990953967788518327776959106790562384250011774731605852431885489480514192421434496309487123536410236387851815722727648386143752031597694624176306429149778066222344862862551843052978888843374020122474212398933061068034973175035733321579764818495864145932572251681631815046381782237937580983756249881499089340388690681554214637426820970245365088620223500315767100659176779099906295175695308042197063868807720769061928473235972826566381445701553388012245813740791384410708630960878121728994196209803155711491487138744413527730396296171208515631177262403072244645760756633050093959721083206499324809074910271842895680700780960000088050776563658411024434000385997482657043367424497957503256721552040139279145525206388635776810820891207606784879017955854498088977875629384620775006879071355306305435166069473308131005809343070388641183231709244739304981804373397073319220423741809350553548864678874025230765334139572252478048995147547197845230756664770018194031651808067737696453367744946482282299687220576697351948742112095402645909003965886969103178805666805902945989368186482379715123465155647431696932890718573213157323412337935545070627203068964414640889496107635824922592439907993172200125716425553421927451703981982418860426062598177391345510367403298704519449017868743644673338495711246006395067996268802107663141035419112129554518931055854443097119125373633274769292800408271489024778591150214962775725764885314985238831463211221448767619369453533398874656949686655251139441078874832725482401697823028173361416878499308172758674174952756876136373757848293578541327765422885964219424293347219085278309945895474756699708533547433659146078661964446091891696282809677752026167298147061873299084009021814122592213989994381970839125218538667602495534772273419755140929279144165124883533918142943595609377493862483718580907948222461310033035355062477536722477998731916598750776188556678832390808021406474623744726109186392774416344794822774298462637584448409514870805755404777845556814544158380968818647292883412519566758695543097299559589056265312587482106978787466965011535191242169214563750438203984370939746213331657480227457336077868788492110603580754683435980720505918316575451438398966352081901947944801754918779324199976905082871396365595908709470423074819918034007405972898808556966964996198554675095912141831916347707951456365195144939025382464903593829004778390646547252677135965753024920497336150302577713395696654398419954958527354287126587883814845001107125454179535928123426686549715676949027796567461913838912447791532743264489057167520347454154932787678404871468359947692681827617271177758483430104028482955118876889794435826575587221705493407325214897326677721158711457751541387438123753977925867810607778448169066164200595518068828482094459236045939378498833616302052007957908058699649689137982494422227868933540757928566246899290344276147728951433922307583525431069211638591397510851293547960686234394169840918202367822505918867375991921391415883410724917622434954588874598325985084724378682066829565298504375367652465213831627940354691453148029395161711732073588634594036126823804904961576225691214598839523744787874821181512869111673127361465665276569228980087556279844066043245004593187944983001362649644081726333219620769347327141253554601400381929575773511560401693760637654344876477261319957452081877997715736482321695949425499323609089624860207607746051906638186239865557572962115951714384871725741574548476596547962778804527492070964095438585461223700800182478115071048689881292689131203962216505528821934191166648884380240302061443204755194259111822519131898214595898432201724180396720059262674195062609460830231691740533640464217860218772015525406791133298689080019716255581552221405694379913352362902567285829249600478976778707752411363875078296850813443643384551171111228122097658366954956834265529260331944331613752958793286284976951480171712335542043748814615604778193786025616903537464982559636971706128290648469884466688126494876626463039124993081932495659064478110846373217031921166432203364314708472955322782379347121011600521523511099799035830630566115816052113036976774652174250611419593354688921067099931543317024807753520932243604033897035153692543487495166855845088305300017793644050598224119723782825377060325774868717354270696857921541457541741626922787961234084737216126696870816571435422398585761529585808470040302913264173370196717276514103661195830704553592110369983316282220029147729378292538391979178224462482440235404203591968258773874799663522635725499695730947379198039253685566684779588953805304587473058363299198041899348615922361703572395270028154612872757264807930955451021251400907733852821610380689751329407751940972293607150317883336695464783795009754475436568678800363335750204433598326209410870931153619992493005790192885259235604672546220392434954331114316949295057621991828713461760469671275628044429962808986958907536018045497296259143547717644735783471016872890633947408722554967870736951736138021091065218341378527273420198214358339526635624194673133722281335837058916352640928940214452301191212233347541316134421581687827063863565874310101704971183002031992970425222026203731113801992421897164659636202148691095094867059551699236061358692587525086900284674633264485663300006187715564011628318646420020932846846757494886320640683616757475840195602443761620644433882743098240310336597749679888667758783538680385325552015092128539004439986469446818917309807152911577179455339333114635938524743299127974785299161326579180381347167756103353280848615418183740127251325346365061675371021577929821202971003261450749219001117843150604973804438197982676160577247090323914754327509794573339667712454295391118505899771688434254609558041254897779377589331657547719811132871795180532315526386511256911788409269567912848365296391002197353935025444760266462220426688863729275113245090461657991788660998969850908990158699805611784666873479517229002943639948992357027570316271510134843195695958585778727896793819400906922685064732180317415850195115408370169166983171301330991634034034442587118401642486494559963716484094845809313066405771308957910203255794620205866061398278963692341880140912730444272949791113396664512436909822801461454322344152567959767475259843528826652384988819878362010721879874009654418428270662072058078609311404578715407800115156215260214136088390134633920987803006294541721855046962762399582667364668746524252429046211640253066226883272188559768944277985743995138759007195951253999324339673502104946214890548189385598859874351371359907434587825405545830097394118529985365682840214629125802703534105028159899515017017663567184598457521169702595072884434053277673250779284887556417259451795936120117074329010954413421172797033348943863722526366545628234880095009057910887038209709819476234062176541231276388072865628582306840456143828987059207142068342333830360618712802123039968558566844116429537368332236010330241074894434121795747504107962117047704257260278078820755916825735913938343581694760278984791529445549319188936044149811249173124554059934789420699295421179888021307846471436195526356231346120740320574701828112220590731520048985008536328464151578081124146329646917705500153913524874542415680519545687952405450321751004188172062083372369642984457947504282120452666822851750045641789124943072284837288463149334241641574668824301330209128699398503700484498262483234069032672679923204630680085194629230761497594139089232462979226824327181332291075976302515210950426138975698486413129417419322344762177952077358932356555254331344166821678977842233544181660037484526174695275174383708689118519752574215767146294383404445716964754258332783611250106208954084646737763284348712942182152418270372562425111032058288251163220744562517226343260889761440396726566686450384617745520044347585332436777239907896528679804688655412584901065203692648375630883032145426183729687554466322003760949697913957083229331085008601903536233414308560571835000670916825891531131530660937883037823281392796106791954500039729739822801234304080200464916146386416350005413529165294231603829450122584990695984514477039968512192422194976571504466511344916204750373895420990277076799438007469676474678345878226587332795258866570540433438635297957060071717603484346176392415631770965919440800939357908894533319106653714949753231751198479185830220005966177136251290872824087410659114391703817493632057610541877119254753398340375944882581001662959700252146547789894022698108654197836555119566357507255567304579584851162897663025221081691845945211795014923716819907993697595281394547242769404986726327017219097970297223695008461988099603916070007616062336788119804050493073052129175834872689105245963208398650657981729587567722175281430226993864572071537588853499801553161587948934607925106037967881193513361854454066540392868565382756709627716106387885257225250053642783056261552520461058236056355371158201818926846373300688476756455870393347555778050142704380147714637108244039254045295268256047223453232697575759006513513066495914330593817580914228683254698720259664579565585487391434133075675140209816280973185370640253557699126394853170221608266020568914177448889608107657745033344629869685905902970920042000841833736675178085588434404121842860397433439653377034431395624795339606508904969378810438993781502221307770944779170609757432154548319871551652748841973049368225001662207086415829098380063087055110967434893317979816657586981949538521456352534926670468303036595501691579625627094945102590633371271479672390954222071112452116269600239457181184227258370591727525069020297681562147306981182328073539279166542101452436074279876324908774300971260361919566181965555699092029354262951599909447941524064863608367138894697994688680621551609114020271608163390888255575815357565457517194550731657356091463792163640499501593005115729228855633246088481526409961361526812242760041481493358233760888160990104389453436511686959293554774125361599682860322384633097014162681685665835951810341476262297337094945768853876406856761527973743351703691590640445760222872653948168578750342481645301578921636136773843470150862838929756821358334976411836692168279345161895439370871490780495925564957158390266555409705054813587112305058325676658706743431602968958742790362132121837670810674704423171743998569035577816259332930822498218322200309737032070438727164674450687091357108228868513841000429631404352321391063845919381079386466155990440492702063140950045453193912813136098886616009606447873164342207303177512397229534095492747677187205050649873445499965910495575847241559001534276854424287838637243392789209995647783612310755494075623228897609533218659062088135040529631092384171557286516221390148176113084396201511602681138866536996878856476388669451465381263856339652552240168764283959621034888468382729265012518952437923255164373385224786028473156303714512472828058025707628047043914052394805046845530769125650996716160461568793991108852330192563046091226667636064113728503730317454686813457233572626339060392504603210037651220768929415382084121521162506502935398810112442053398350555921710248474394647710480832698639435310679208338159572507052165716376216980206001623328622710532069696884571188912105618793410225244912894044909520982501991876397417134819503299434615878288059097907711812446527695974157715075619676715169168890091828620064257692361512013597552091621701270399792625574410888067999694014379698166869633177753207696425900156660857609861713284457398042367053235283403829491035818802871772611635621993854810512398561950447285831590827178995562848496913292020540254534082390522440529774497619157817073631307444385871536959871734104951576597030281645535786977202126040938524389980581097667601931334417608946106963376399500855333986225470807816044863898180240908943288536731013617278709172805411631724299067247354296460876910261242511270651408747450930575145693579945114221121316862126541905149591086267874519123142279708699702122639785121875384383997071955363430710988783255574958582424223343154302472395786276560764328713418035623905722769290310053911425343308921959371460848915934180953038506410482095856175150082483689602279056878753098840344934634813497333590949718557146007736225955254680855028399833487607274034114078303319563648144338817863871787210824426634693706699351823703213322965099545003409693432657196211076399285550365632743701371664568735116494200236668219683426758681034522277584424424401616213966034538945049403210397097580453359842171900849434058605949936062182235453139548500823889009554446364484607002514979701806427559339147144547236420829031292368105790631080289229825901712258187753049870929462402246458595045277085434159429299244432340398159244850701611926101168329162906838073038115323611138339830620822776344475613336332199191683417746771730561018394559169062610368831606217520316217176848505692862591413237851571697579039697660456298154245916757842505808880832538283374394965376985641064224144181855245455827141797934241952051170322489076905037032849439309586615130618569789189144125995640327504247944180352776892055795226098005062508840987567042457294100721015039146228068995758433459187950842711257802074994474717859172627776740925906450087845355824973224481923413441627590541014927728390320504218183583344408881523631490510302095402387503009371846815956611914987713985491942129687338276763555746210427646791602544282272486601496772515367737425990429121270645767097290087517503456777125744075326970849487927862667445701626575194895450259376803069670340895422956461324128615353138271862609668371119300964703489359718546436606072324873004807435734090769190756897823988186364134632019241596374151888187692648350954307548439859716810409460175583657535589605496421524916371577114870503564813162142120799465533985498980274803801908961000862152839454907774554772625088210652461049809745844015213274154776434650481901313086175415795701144218456703348170254614357210041365381369715353578138012690629410685147588663668945571782797085198554963240942408662605202201102982324545555796659648209174873275855575985390312036146235130160339209015421643591134097473773339701820319367432941933366723107613651627032389101269758525932472429028725634357464322794442161335051181773408265139142536639187849039614179396322025133642927510155669088394204640090662236489142311954338616160474627652896973493598588603182170666410365504264947667537207295799870312151183401888068832332048723212105992643473196819635298143373295092359609063223538380430136906657696475320282693844702006797811027372553557137063386045409033598990116898140619324197439869994158949516312849723559536547494788750216708204845152664627054713729173164223417508586752135711216343906190711715449998813375975081318029122047642240157369167089738816330736259781577253953087718580079460987424111301368070199193569884831724825171866743684530162250048218683616882877038020415771970031767669280987291515541067494120670845678753697139182984807300923782222126013697571677942430264760902070226707059287692010233223749302544917457609473736512770850568209053390572871153886179796428028465623083648073175151442626445188360650567525047103519644036124931689488747228570010789503722311627307435555762716403024948884648298079530897967003229039921937162851917125063568006789323819414907908908918498890551720211845208295732763010018062125443584375732294290448975383450820764763141978786909527196732009655019347772383096199342532253356291639785224653231333876636134870203770495006750912290820613754608695503222720454885701332990739234497278571769035281263941775237010017195147661637768344421582312191648525422034159355575111040872939837449892628564393748564194978225480738393419988659152525700713582551612821664087161091494698925721866681840078624298884276520648415848068214861610042689022491392156909285623271717524153519048967833963243571776414546484332277661597855806426288029299616896033366564473388530525468095868841926239214689365680081110006106332187801218891503787282441381451092708134036006616745626785707160046170029691504739254443120252114601418004148226529824609195938714772895525480643103475703247259995365384075461817245898404064854417709204613964274642968722035459571843531125271717526175933928597251015251637049670966903480532799959514347378880375670294804574245440176581130053264004115751206919585669327767599489864082260942587720412788427077065014990355645885823467838886239729621580070118305320334684665171512392094316932651232770745155604240912494909570110732389241162273439198154329697475560706806349191451082769606693001079276006331613701504733175074434548110021316612537854764501318821201499595749075488941791620559960876128154235357993601436775551099018159989678706729769055205885210017949654059108012241778677280140384850112289981894390880597141330244565543443634731148576726845788353668605329694867310619777250743948897318837243869070415263063314353151396969342715078131320363826903774785435872714476797550901218551804409984089349458226639311908215783538060541938343000622692342501313902969332061849897191384990384308127866339936859399260167687330257681833989808915901755762934115957012157466291474708175214646158811554653521821989119893789678111119656701821811058325825730539839908325193735294518894419711664309412833875116006100175745242467404939489177798029474264109686082124810025637495083032407248042250540850689263779828998263987328719651612744842064401135118989988320746447521996275363568725409205161734912077288009307027876965836797267815009878831186409311634023110038338205761528228520761195709399771292315784965683917734678990300266465876518803394622582719311874611837249921631763005483257371269907227516169686090305215221316476817998753924590844195793719066525498526813588812094015733663391418412868870004374557589547761118964071642325152863772693547457700874766538830859201006361115822075967000522878839807368172965459882032438434851227564166067774098948577763672044455576232437607783161267543927863187593313601543218611705428054498798506337176781379709862890675473736588423638724102719448371091075442773195935404825514282303888240514630808161348696013114928421793590452352275534552943760352720479955657419150066045662288944182873422237828546316798435690455079619926070737919449908966297136479405209010767498337858744245095338204011307217255814391853524942733461139906149010180339215861326261545483019032842127319976425350591344523123268903156314499052559513461300104676540790506681925301378788101528146630972336473780863078758859609634938784593816472541512137228630097879477637963025143640071259608285877606828379631023328131031638581512039106108641333430825946854448405991495976049399905546228703227489470912068044575281202940681262557411127716694674184061579543091347690731847470089144895328801984239149758901192377861922832085932438743063814871620814369084231338495373432504039581120978540258751964231516912265932463474449113827639013314191422361862551029063506633443719299734890208570846236408564931482901569319104101122624470741283691991191952265998302938534772434347057217196961831801489783029092729869450406262850553933462723806805623566462586792201938895006276308954570661481533897272447368631764386302625260472445061695646722052584463683094264419574303680239126258765014872467567780225918576358427675340450364147861142072851228448234842956115751547545431650359630839240290666675394271768477968018936787622289209534886599397915481175366814516294117995168773429719169949134897828710775561533971909534549434617222434608408302292670015626992177355794133601955348668576137486002303057926138010855997077550486434257644463342563445160172159332910532137972122903902312490988274594145376707505034882099353316199554608541209012877590828795319225729283417248502765943780393406603728639319173124270033662832074014948295225942069679304626521172515490144146762399859779537352133764226691103042132465018597854665260677030480674131263432268715501468404822357276953685891507498667959049983430039949071415691555257112941338848377999632477222855739049859894218273751955420752895844853648252979307824853532165201500357810733442462247878183907433923871333692560427987286814872671277239963997693646430086867378021405785425315114901541207114255735529247306573749597741460799320266504371079057783052947446043806324197605629792054952951033524982152193175302502102410902336486577540689252377810382207124224538378111299356889631260267622762285833115605505494460393366570705656368862278255859669832595037492422550929024474701577969218089301721555484350678405245162937111170610744390816394763832160190012754883114042401156182001535366910361933682428065977865230552283976281649760942841850721418551906268826861558469026171559794921727276783166255702400305032937783954746816314861566623136462465045518083739690170798552016114270145364393278904019509007321828851597630618541083071710040446374181790327488826063372675493282524519721725046729747559164083389753324741862816667590643256582935676311463275990428122842435108239179835455297592390712019236557612032907294324646121651871104838586744364060597556113711565184308795418274489862499508483869487993694712117064458800842927171963872000398709925420404042956270348549212948267724572401443624450906273915800973245857214373130949114924080605611273220072964320345084376097652801838892626504712015707302013664320206433984981335378083921654298960576626814128174867970823448779944304558341527643862639348023725754586204610606989494561948126211959787577088412465033054679639654393456099489985493190523513554108126759878117439274420928541410917043286627649507433344422321578059102423966051430100493721123949061163771197583805295794181057282566360439170161680023147604228577016577426293996297396713968022338311026920861165365093448908203085757355908330947153628182479954090022846331501926982111353644590804347758600555195698913173516218817920882954165582678348136346096834917602039599510141343166815789902881272531349778951241030753531898612942301450558285293516300919371591274183155260921015752874054603326191194623114859692873911797933703369808633300016251235370267526866269956727952090170136151860252243534831253014166476397976040584395844217980572790393287260401871659605809139941324672986617386816474344211843505904215974852235107389568503307523180016768115897420490363365598266443704138857356973014004745100086182681466871346494519944678577227817340711437039921440067927085676455910646210651214393062843005218997489305293134935699690071664411532666170016735653516785896016363700254539167134254171667237919440305814348171946725767480758947712234781015918502107445830614173575539491410637346630528862651406509259945698530716101237882061018413992506568162085025213770542717457728591464224755270189777276426345406541826395436538671518490677558504355734359417646267148331433061590708995507388783902740082899540605581154876974568143389885249414648772575227385814256625728078558435453450412534986605484333449025629752135356543690003799097919101034750812625329534818901313760750813079706584307054977475061240096165196742314558387976287291894164611503640503098143485629030355287195340681051083345235035295415202253220773787408098029646124034728978464975195067468263273120687675334968004523012154471854085069279180003055675933480196517102642182360118103642243698307474690411228797060836298540746885249302985712048880647063608895164740646100251095612894377346869066321249569660865422724333206943015554719327208694909428813843931733049916414015190751729048245302424050150187343139677128007594520652136575987468202676854244530863829111545246236173299496387573083078655649495066413460429764804619213231411621790252918580628523101757456659384452512674488785319786041998738831964133450130346862254508060862302625242645933771997574999535589727599668068212529117506495621770769617905493914488214704694809730604825027901039444184311561573537920584125055137511259945423811396365928785006038409204260014228543203418521042415885262252721381121022028297472847387662149633098899174177694023144519593722314486872710878302533183803391800700338893420172716408949435470792936550556920961648433493632253957919490162470993562976116845222160395438389851357183857174185837713319467873861261442669405824155824431686870764984363946810535110464807568597786851325653810295487330133902148423583320696744726792819719722863234241568351881529694182891705308942220346850990779819070325244539790922707907356058846666136943768661867224359434006139153401892949162961202131423814800847091556604727730843111023665198780369558323653165522488442968968067247426569203744493997249649607112148329876790502267163265602761639978133932640715562157026068458148973037135407832254711729996708149472297219399065876818183140108762676945140574374416515133826351110226780177713404430584637130397953959208383132064010936474012182425388509358267574211277693305799214220452190151905159464865707894826427329898956151371732899623608439942755931529832658739488669011995641854958496249349030467191566729467112389174208461536955397380754384154434406501351468724105316166925271999394890782699435704458571931422327003190320933387185676850899731002207506592499477647948571251730349934561357974017653672475177185331783721055637703735424949996721770001533699631155904905251414929511321544686530237250620659923737432035372440690836034999240378673569615228309879893456066801992674702773173721400425939693336966771258043868995472519150270262301339454578437874604477254705799266768832877026222378946031151353024571647912325595294725942922553375256749202634152743571048264845488204534235713898059840350525757601115628585460959110652687158007131930475623438810390026608926140670330107399816161163432674218826209237441042646484096861928211342380014997899324708252714879651630337281910814769343962958098136133578911007192281153180227808835628843828712341067522649950256685399648532239134868198636989461023795916852886289411688863136065715560233188168084466457135115611089880825183126591528474663886345481615618845023580621680329477792028347485303334255293625941135239945612139197908355489325210128293684639232612562437500155471640729395899693787938846155897284219483618439422285786169804987866853015530956577019073164998310216631415257184305236168079301928890686215109585664723117338020475891743559616610858274471737565427194783400674982644804517022165641531213170992155194546029963577324148034470339505130839381657537389704268956556777811248387356682395222141012735014134347181951994888239434576094212101933759511888402723630631454749348781797848108798557771915796700221620491159789932085540691329082459907201405536360434966916622030787074559724401383040346629304446111059859071618631160748116047612296079528507376785090746091921462859568646660193348817871640035064827169841389133315385355850308524248678899220066082432133094862986718499846468132389510914030001936727465745409254154514728430416732043806017573502474468605086718691301127141459372286923943984842638657529072672548646531314065670776423785056087754922061080560476281138777026967190596495522318853602760516588575396843994288010389170248894441077329534642669365770877982503265167309767118019965816862828650198477479467478439006765844564252928523905086233462864745051169464096744892535666517252439489102613074027658994876254142477291904189159212073164929336019351482908341679137061279087906569604777841698792067158140982570482702064674157016057496820727217278314619380762853079515442026806789620368824860777183690066640438318075255106813884109533284559396646087301453735752264714439515761106113001441887241878051160914901289811437529352046342911882159938112125043172850539025042902047199689530863232194151902015957871901173297100046357736591752981675618351651716200897346753595444047786117837764633745744874016107217017807666915887334022888884078034540970177090776781347310707611683151767440824089340437981191567080738665924805913025206698281733852653944558399413966275417730546896544945171515775077986044073848453328330312034239529487228802534259900458917461881307546952462102592954782773147457825791415217534631122499790878964318053573962144587212339067562744223325628539169596661967682332137777484588185904293008919391368368682762616436795631498334588367768771629767446226964759699303321143442300080861020578002487390341746741146424015567814195917546473657218091547241291354357628579998274153328815607713770188672330001380116580383912147667597983994470431097039088491980256533878413017455508234497359911366486840200727866813677960976927662791872476226857283607050110467173270440093822093322839109254599648836769796607171808780192627662682105598879310209306316436250865997496391264740759036047503934809724522920963825417169662864507918443391216253701583402379218704258227243620461397971153949094637892736798605487122101850837259852103426908147480516457428395223473845585646105850626375873959296742678762608125470528843666479496962631986841083594325353240624360325188420864894464775379036726746336130826142007732535025000964343884120192390990703624192134489316968103235354798231397235749223759608065130869578351552771247980594745737411855045496286753264824147922234134168383849090484903162142136220183953454060353183246119686400302120777784731811400673344616275607548767515830169926383573443644580357882298328560583367299197494518999323398704451691405922855503094873734960357751607777761587203111503875645761485665892079038390061922714870952471622787671663410462612535660581608929203428745393181652655009255361810243885985933969716961525355343490452774278546222444213713316468071862831876090845465369456475916860501980416429729819003824590128511269234523736455919429386334844368958077337940603952425906477545704644627206534387975168669111981975442743985268723430835011542798909323258489373032087769267839658388179994766381889279803372435304099958762241934515292188134953890937154488393207897910064773044095351305579839547719434360291859078831280233006260065756211292377789633762298055604412348622043449684821687593366587993654259906610762321674882131223113882459419025244553905233828574454150709790119353449801268983807157359109429098199110513098152738133414064924425337574013865879109295709463629749585229366453537102278311466756228995737215995323651111406635715388589802943843166750567086669321074161134336917092799682015478142357207006424161614658232714834315212514832811994469528034520241696072215673803921449437460203680221361412521595775941750045684111109431469114003118735162529951959404851127535903827493549808389467176464279027426528841575561468136789298038964331480181468687233147047724629738946985041834513774608493040979470276489900078374607582472432047527014003268133982403434266831587803849467942429637408038842613662417659839343490255931379190113018691458338900564850769086582532234306466368717614410371114323673027646472371691842082187910535442777496941830853857053915614971270187236908086275101010540890735040759807927218701621234768860771140781172201571617434562090065220672596302152470147341799587014621643454610262390966165661795288470686293120297270970954337385679197264501332655122305630922200739826979839687228080901962818585015870662987546663128278406642925531299114719487968752830909174671757924541353043588038590665321158503755174712386672832320251102493468513069625303634198797875649245100040039867882698093904052184002989865013921649717972094258350242416560421909202531179268905298658824402743427175521534103084974008176916719385415885063330528860322582668109170948031691508608587621202641748423023521371864791737222246034704814567568789695163958842098038340137588823690842697461602206915337278099176087603977620774812763180661882162815769268071527484773244713430410060904958458819798413218876282389121193549060200752570550939343296012874405856712343439274068891660914066062663221837015258582761809556345937136443929913396720521118662456669061408729985291256396488627041790105282423618566369368890632968421691019681541425393728853906326875752724222452156719092815668211301197526849104254745271793169657347920649645635958746932810396701891439689576725580044182559003413543781070154471581755056287834344963760467459948457288982978858569844849939913561795511068469833253366003604098693774491127356572063697827897508787242598655094187056813453061971520813977629541538270550169001131630570856544032894006537727328437517717764614140633406710272854432781655941500419222590601656331425118880052212149528437264740516212980666017484966097827876273600752346144845796738228003801959904712186960483527752014838532041473177073006017689676195995039227856693359293708036428090350920528699950760004684129659509473671732959903516278853194142385626158171509541254164453285872744420489322478858204334951139849086148158251557338196693751054538422649102229544152857049469198721527692048366719626633395779970176227951748491983014184645755820083530864719602403116730847025303219040471808442422013503461494307788637130172241907658128414084762191598909814557282877504809167783399384852681365781652455120131805266795022892787465547647837495745506796448399689349855977979320295538590101317117234985239177506663798116239149657204660624011995085822962860714486884191363730513568154608144862788741434044634912027219372703579704268171413569487593608780789883479269354090090611386694026492551048782558763100505170353916875755902717315308876767139679764322760215420552285184857180866988714926648121013365379262459856675930015183421419445221578984165189495700819267111539423480285159538088427687369469397603966386232359297327775462913916713448583093992936481677260916794881163759514076530321320336064631917604570892832297637277911251781365756962208039768949712341399786567471030678297731441832110989439744841064838982131665655172401121183642009432850362137964664007332232423139941663226606001068874318547713650840918909208881869783602572652099459294314096732749115689048138401887410305655897902275041771941105520298814394208806442677986300862748060355061806197883961526299210562047114520392780772937067465076575310219177742013745894575952392176877449779146795781424511853419174712427894357853256292659654025538491389109463992229240832579060908448842748469573910111796439379890062394439118224038675653956796544269839042008918407986360408984254381280977642922204585731546048972906224846239790354182413434752434734157272158352204213408140038238041883689744292716725570831442389973494200305299579721467240408578587771258230678660826803746868333478603439868045896547669073730258615136648119982012051012354739204189823709871732808365826276231470385508228513446092998810524462929339745489008386118015794091553660927348294517384194825549153165556221172427298224039385967112654504870018915775691112509616953682303064997789594538359742947575216177458210174768346142376573377272234432748146630257709789913742374956357105118575520098847004299029957650509228614757524146133434322495627250695046007718391753939421050007303725936616060968331246407081181320519510990169209808786800686848159562829029256450462157374688630309285449664715445434557995748270666898091943676671165836220362727041350403682651828491725963498613075559671396557056221488488542843642261848901675816436011312662797175059756247110459258033808592570173733703307664935118281374881368069172332950243084336472219423973718436654926888777933665360102006476298761267598974087584453311199681668959729033289298546344759191989864406744962622617617875721426510872941593639781087372080688894162940784159218810183925565327801559412368084907172399399524373134511302534112887209327958574606116029657609216326353743484524253389704851420226497456787166920431833518371889688023771323550165883460753801259371442318146159883127134197952998786033598990716275226955503701529703075270431608972548720922229298727864079851294969215314715530503393569469585402088005178586741513369795148311256230880104434857632831891082444228385309440536764456396446517947236450163115049665383210645719422370724710515672348940650295334927868986052878591855515797690093839056644553228407150924763730913711603428699747155016664565141049647666693919163830640964236928931843498552173437383090100455638427482286314618270271658288749809415415847851431852405685368271959670496816323606371313368700810241175854745628296614454280487727481338427091657087308978115617202630232262267232422733162391832061631694083354474201103245264084867379437350148767816763336237216637845823725728152256515469479955447563999036494231383528348581702424044126848623387578342328297341868147048402941509167297511117965221069838190019481955820902786063438781710546324096102241223008272241054096129625165865976608334568608442793023015873947377302482932295566154247394666690284933049260520956216295887286102045305063830248750393709814219244590289341656077524556915687947994035615874432840136711695571705969692863022768178031658096486583652841807619761344747622737725766966234496373625535238382264054080351406881348076318139528333684734876168563469909435458372834639046195138844883532173154802955365113544738940998068187457384538312989972231647562400980678961966165861366430614931225017036256294054242843039197619054854203499668567860948712119869170551587846390961808970832946684106733543357760694171881017393213093255627045322349483769241837582155834280401894407604470757413763693385911594536734003202994518157787928863656226140337930916269916411242008174958960296911767111935218902418817002244579437184330516631157893094538282930105483366234015146213452777428626993964223740091119998176808491969998011473703445286137776112053959830684333861829331604682279201086957044342101437066840014995478808348951686188129906150920598955586873169339862088679865551248371442241281474464075388526218693759168798675790812531871335329027994637123274689209482603091991848437050931028151056704802834882809903550919586964781592185940312309483681116353922154228508418607153793486413698791737963832888194818615199985576196993624159883044593604140433324030832516341845397578128546536706036256769606188357186201223994488440759858094692103817339606565466076034643397328078017540923470476135287347823410157101319114849564049376584502427267280791620071850973204392759927793402011492922000697021074671201294763701773328177746159106064877943377781256839858669479410854919815545955545964835610930856652071239291823453843619012015583918458610349459168136782829899725902611403572151622212420257282567760035002265180395840324570535995211227867406832044863418246291424151595219961220629656602116507550354275973680706686161078306216938772427222789917820451328689282308904874503249706566248023420003086428390264604168642262749299643474083412874997429522028867936828219209871990336459152563633989500527965977143530951200812399390307478363325068725545012379785885139616494658749696836864210433397827778885208481766952257809163830648491064057951019333467902591027980895636813154209991285078653276928668490069839505574960502017080030966011542194328872099055323294062396240568716804641256524067658454499502176018552670815751710205835885528650114907401500882804908209899653739240864120866148227870929878933858058317361298554102056932442442206070690901152636237263296036796306321682111956749605823702133165223111414518242836267484590989039091353327565735296256608210819027964790514664401748677461576823219861177634913648750338966244405144168846053404954318390200263975837048810068655656779237294878091313326477773809903691327926899521054450609190492742016797381394616284857840591695058285179733447111276672677502792633998390803386854945301454255502249565287330160140484125605789934532070309476147417458483012391023762429430825949652966897699907571714555005471384976975851562363185566496153144739001500656046004203261811614919509084066476002982220439911830186427329170621216279898899712802464094142091543961970669889009827640133520191806793810379834010982951843704536480228937495233618156196413960738458828388277374163665742714625153012429148574746779200843967542825477527459177537394580671665525220365345971423913868969986511564032261718371189893970843722383040718109839727007740843294664063759309951458121030586460137286831025992217764814249259341660775301599838256147572068847382414154234449960558489412726905581112183266881375598305416390243010287651835604048314548028147453313536648087134829579851941777190628455290991677872202897871796827928502172099477202081539009089996254264030221876074495718711968602643613669391375937594918062109478960358307307659175000841090338645761309773161660915517300121422840285292032187873519408764971834899058265668721238439795472988019803408706331515137358758480167022102536998370886203707913141104552174382365398184818471422264324295731461759386151649754065405977116037233723112669137270596745055862226488564764353458482276189399073694902745229361814801724356750489865328664868166744906558616099279517641473345339964362411655123192847755020632621077429426726288190653615157711344545892255799767499492662751125347932009255808739560302040943279295400815635068913237114297845039149853580080534663134305912688442073621757038118888461478925862667330833210722198397644908635534580903055247778860813287560081541559279189886313357337794539281452128110780600324983407517875404221943568636931639317006253425084930922115117817234027040738001860649560942160086026146035464337818639354844645757302175996227934352374721328303418619478025120140464596531134454239304706382822883487850558474360856820160854884773060141259132385519146427431433303065333133547916442252580630899645249517880723629943790548328534762810514309121029786982136942724634252587492092202161286823379778415034681775346097417493580906636019697110681884349105102936447705091303908463219231640980392096483288623033544842990468493275181097193193647563771023593873183504177238080171974095159577123984617960218152383796727660045693336829165521444736223251243532991734926281354828155739874375313008321452510376123248685457579623345788616162089131920999085382098773740853454604293655809777863003657926951710306026826029399674767902610389206142425963124238360261091410345838779317072612345928965658804052430240147770982743170557518879990767302350034218690674157169439834845970605690762824347089226424540790391943634117331698103995151271698221173810929491168708604047632157073029988427336858756771998519067903458725485222869596486434386865931918111616970322931682870389695248695386536708303315132969362003317034748916558317253931763919724824775525996911644176770263958299641144319315530121678117025820010594477053174409431710993320409270262618010807631710229144217072184697862610707472237386003458780692839038173165573680922262915633414464223102417177854266805791334512066164594328715098123578952261876304537195061669253439726438713175857633784673966692822774782753180392054846632140747252442904378599549807080262610707838001874159707866509434638405553473636261361937889060862215953978087060111820193334475730157908907459934311447050534194805966970816466487392186434463269122754173099275035249379815562171394695224683133113253263423896554826360676099960681741283012478611141026997058358104186987082298820575539421905474105365258855741391148697965995600197673678110433664105808135775658251272790786627060511641368678592051124000208864632640940352608018208505023024924174684340601949739977586931603138696129987341258997065914515090697031834703173223973177422451171029677911107053250386043178841493452992884905503688706915471356991808075317201687210406800828231640501878392031845531276926578934858060843672212232744288822149601853453464863901565122149907802067459791829068339577560677569026981419266623325042645764827025767569293674590101694685188552260516027369524265151869735575952017399163781284673261304794068302190004127411781994966933183464722470464380071728388934232991509220228062396553053413680165312457752700073086214770333295958389867044700910026365657915621789913014846785094737468555833384332576898231549385829411958423401652581015610814888200885779818154077712104393827333555000595604002852981112892868551410458032620059955757558689067089860876232457210534723285494505501389529105168795348113730107738433452926221970396027955366707232364271641318183277139617446183876371862576073964894747995829457651194504938100921094018950897982462995833337589414019054128267853661358279899496234024767638241490487778337214749291163082869355195567598482736294389056207503587344626215279550466002854237846037370793699334504640199570902539763782688914955007187489614599146788034845022109651895485524692003860230978605607060072780745722478715375331490364525520021172093981036875675479673236527870600627984896596763229358943210242897841371706793154473101880293592535299789332612303313027044186999745441657416865414576004871631002053190436366319475016350102770304151565841554919351100242759710718997611991593683389949879703049737746580492018693501659581455240075702848428858173099360020031107800309221556605044241892576196270952660799072013892541233186714263407351694824631584915497301306764349581441434692953334361896723672048581496651287951796808094350949013698584224176552177627582268497373231598755055952342956624717083163208015857231124142125354212440897871058898953907737767047468455228523346045482803334145794251905599371077674017477657949851196217953333151031587891440458252864970639920613687340613004687965768927321544168450133151689171986561962649363616932242320362620404415928043638639156218030129097747463850648537818223882630470813006255256069171242912650504111362845462313928288095569295127342121987369394100065712768144061532364299841198301820266122164439311402453560590638289363134055618978905502011694741137584607211873412707071969803176555221549860247056185538501129392529378161473867732131229351256881833773246049872868297621073095911575171462323557144767125254039787608215883535339429006990681970240799411743295353664643500510101031193937519773429404238719815724301525703852242375028177482464330589108597577558686064218314866830547827688886697925909163486404220755572686676782203761224821386141206331992423986298267682740542133626720016278658744977466276727353592915983299770848784514747559506921488689557906974698879470755235508358668825729520678037301356562647397623727053334581176509021347808187063600701084167148671211656428292027190590062288834849387950446692306944150290438630234535815857857514721322425443439544258999569836433372943043981619667385754076592567619524065845838793017010646920506156625907794301767271333000731033765521807941394278401171810705482673241547501658505231527274692407047206209309158561232301208848988947540725873173974278074095354271143465486032469214083823611643775010920065022035512065712189825523903725568395805004344146876948559887398026395773884345742305134240783004279827390173685733252641867276659888319971596923945988131285397459920474934678202114103708081085769443281106531614731642470501710374075161920204109147993298132172393507197876583902614164375103918358909815360182757488699384242971049043029812256688818849163355575138521142321226039981837250226633404151092326907270807637858121866627113685904923150721503020164403862788153221345963291159452502855607020117609515656477646034958172362338317109504979947348760296708247205361661198724405860955547013711521270643554864249904013421448031896678254635734298319299625290409545167074925987920354288806977055677903253336854764114048709754794704646115544688055894473266330169730422933962476998468088533754543176589824240235922007380618897969584749916279107757611846653123634067374184669147691401229329925704135755215443464032719577003523201891385683054413452435077847621051117314537799938714458238749644855395637791715146946950272073898692602683382895333437294576764319640953477982957445290338026765068469808622572506119849097317257768100136095258658986591246281901094905977277004965623921492184604136948413559700523921737152156115706934260514648516807753242806215940381080515974448076311389734928781529886216773746583052638296586166625520324064530102161055364566649041552534141087312969014869056410946570256056301501575537724945995643500298414365219833581473491116474931569565502259460046321963541796098861459312636581093874521724619105024071723966250275718429064947543631344215703416398518750428900974325629067986101896017484125832538810956027220894084264946952899752120220922544975308130070361610534625206239862672546645041731835432154766625013243671631436168289513486419592558376541575647781156569983764764462012775420707857698874883899687796510742123063320642311902742160645564556859331078934568880827385938601242047715354763798723496159252370878129630568338698704169958380583388123510266752693117608766559525179746174561393765731966283230461577436091150397765190934522205171003647650482833135931980043116657856260507744137558148243549124646812742289112092075359531078909286720391469920070466381643332016700436028859872085039984497446211938603175982116552776728150533590170924642858204739336150604655348026098041380127906810989979926055381808824014503055185120061482785923716949604160282605417955048825934482539280561576308150354556958555842150833831112081723838466335790932677317293158375764901740061732796799346617494056351480204217850685874745600528846783540915914364275484480062930164588357293991524608206217863603068614280722530475171369155899925082056873673476161406451343329817607427202877665989475498932215480042879952764068664914069064941032263905073612168215700932399354585641524247833865755236954743486813025892898115410202901804863832995594999090507547776942100805139305499338071390812356055329163146052976945788392159910506765436525815121718096854520075299285503574999502853685123822756460353613273932786130752615991136392406507861651052406051253565203630844871945979275009411971053757982989027922649129027266827560595781024574192593236423570386422078316321986224451170842227332107765295319215053040011604547516721848010064725600765903522241562287686933736793897274622483742102042632047472943266822695353107257072215806592694955139095196490901127683187392794769116463134065299636689750579511031141613654624965301304286727877866488012426266396789923444567414018243423108410751051343047669219514670410873500435471790375250523414377272940740782502493564006599335291901428624421670377052258057737823634801256914811842703265503944916987137843593651493273292439259911731954560371243740504735998406566672121102117691308759180515667646744791874271956766319336548951009235815700835636444391796883279800028855718301110731746765265680791426173703568286531281459196907508413710875147577356737790762459587766170741274452204966008559124395821742773793956478819358404131262366041775596528806393933192040289297616740170553231581946823168911260612751622940593053232510369613541331805131285889767876555889797387829467208379785457514870761136556410788771246210495464516120487648003013442702674407835689325615491962586686554249771905508840584990657171476261096491233782865288327867137070070159897271341399379791781012221815980672478847369584963701346095921127097243857252274314008843005769854242508451924825403496140758532767677980627610415093108375357407439434278141320061589163595456503422113139031352230509111498363697207899571264216958515736326885200321720677632194070105031279500582740118898568457658960089173973252366892654109013717490339259134542998571015977258278060398156533820074194483981797912949378867479329690093099267398364372785524755519750290063593075722949660098480367449741831791185398992696633433857007628012853922564619030439894623632384766269394127897397176993083154638485256301095171225177642405559751195967552564256835854503010288391944412194449713179795331634310782566004928967499838845169177418453991580864429304814686123971515766766785840118820873250775732296703262192654277892300801176823791182426450464482450441161138498645533243105867810706497056473218293641040149710535001186186980429301482168990945908850012378696593933429097297332085680247764324928863364458654093696582354989254222569379313554065674090473998290780346282711981144607594202643178027449735441779288852222885304962236797827749801574120232009733273863860963354226610594961010430039477130234759099047870479518574103473918345246361680468885036707521718161925032103253009107060225385270580138337570827774156317883164465047225106214650839219281017827328369484850057512420503418007067017297790262409020970806396315375956275146839240500769625159997083057895521443342807504258405028340419281821931101508470093490096259638615861872826333422579428262627342313555852010480159153283507239663592031402541326030624081301583757084693869738050806800432142518243379549833129021372320623832694896370033831419294567121100187662616606600924339349392195031517759021421735497490290473063073041289119718523495069203075039254035244096400895515726238934500917455037815431011733666903216218749648338917170676359469744042319602063250117405065785107726252308788939903799255898531025593643423371770705801763352892315252199227904816624216092976597670967148273745812734605651449594914876389705103082823977184669633384115485244626224683622472991989394896540321315602398234850326763667670521413579666907467929260252402807752650553452265344559207107603687600698836987555390108161878799702053908102303539527337274206426776517539278287012739446654953036968984683028737830643977330898747482269280129642134288070351307882441089925071006051184677565158894264108911699697608463955365028458836695133396685007410969045100156768724084735104966722620438168607161310694087197597399790724501290349540553281507588133875509757128104814767768337349847481158000334008997401529856941284990637101805808969110469024566367806456213065563212583905223648086534831050276600271877578116709103998615660886225689444534838570093450691776177436494187094710011834320388333193411511863815903320070496073242920896658574508512263871335274624053078303375639058091642648685593507128252081230903595975636934495183111402444015069810758696905691934195781027947624780060100355618206596434174828649522584537530769498077381119330437392476791042787674542348029862881780645669798803916005191240896323899994545772862789618811842228383877637954338294738735835335143159522125471495104135676932630496450342902008351618732800873346026264815854809354080233610758691770281492997754703354891703030124012825308900518195455138763455918960213310105203190695733023900290504322187381184692838763637168226837343616682877605430283021989260719245406417154012219838061197886627163905458150915006762821518382356208808110605411375745434603498866564267489913282216675969542942734075188093497453944092433228910743133955001212409081385309251199759532347674180169376582870151543537657794080520003132512664803069193339076210818483513632528579062693567358187062191780954839822303082637047094403957110262778285743877203035888373873558571856604401028528615243130925595721383611032387484486659701826591341434415788619716520337617598274994184109339796564004524929551392594648246027276584188503635832780895715672684949361819732887767510428181813182067787396364980325576574578081784235160855569416306977889012948996487752000737501330672505942590079884293734901774953789514105284071736607922473062213241984448768653673456250077350381791769245968868266404164483680102373191704501293757417134929962364723807228769923432646294317885380285308216185473124400690914540487788287991070917670741655208413055385912651716126382865310029871656952100731736538646709160651166906252715292845408765159824020138263765702119948529089103450090339162148154709081104186653961507893933097265568555321376122961005771567829283644785263052674965829229598324385860413932252799419552626320346943900574512784092635972128353855300674047110425534953778461263874477467352255529696915495965251745473926382009142143672562842874767131289378235177563916983996726493816081197944944244437693361774240877253518821682022532933110314265619599618085887693245364479410411847429615384933629788540540149284662446679927418789425216589255372094387414339034443602673285427713087883599144409886550627992977380182676117910741960321078207270754383047687788865386317426526931167186269723407177998207454627649231156078842777955810033564669448372309788927905956961292462003192454464986686146267011562367743299525878460816293821936378680363727651990265042610814051242489896129748645618780093704922101762546074731483862280632264315413210305462761906354849448944198508584010864100044138919949923063246250861772524782619795924134126577126220149333623944454853534655411039312711125311351052863629086877728041638786941534923524113131475876549293337287546038011267275374929656170723261434781387795992510571038735753789637191620503802710918228866273829197731077408441015459947169637601519887233761915182496757038171475109100744442883873148983808719280094171849472563039448733312022365462529252226308966324339800064568260762176452190845999486298982966051514303401224186753477470397268907889530333617711600862257219030595340041564459969245111477997470840285941101219252225093975935580282533940626718598946888433502871332995704483026041636343250726387538359570296269292922350826501922434301557800033062213543584130635909812527482542079740847747192431807385433409410917120789855833875353097883477006775307603424763087336122978410266189434219758566537912780099215786218152412291517166842118440249339949149330165741927507421464047582662853703565869681568746253970685297086059751126508299595005558567747258569037846263769834875980476335388195305922233713178318148613746385069776398267167071196762807368900545743505575525562460643339211752319793426400401215652580445182102562964298846520691931994283297416035545917497854744571469688794699101049080386179073026755124149731175111245956788281988871730363138573273094703649980638901243186016723104659999199608488113628045076584002838080590411544957572817613398978317287572094084893653890286028688729391416611334410539069129563417004987899275958338388658191393371538801913625218515311293748169578505688007058988783410912577009286992843613523686272116696583350505258854974815257669128481197370264275331578923842647611768690280983340936908722026106244135609611553101244173921986899223133655829192109125096589810326048424656936738949544189097179269015347698040210954815644252317915077997379895730381809469512016281783317792021571274070954379816176752980502428684256222457973601744288095438265607897043792279148094457274315720201295939584845857015047526279979350081772872564176496955602179676409925505233458525705205447256430185610893238582421724195717856641098795966955426669001366646580491882737699777414124880661760718356885129161076601484780378701198524258492433867015377494133977445363593455894457208059503901301861483396648163905729478937678513485866300466297786741071605474000324216406274561517292305859479634809519077943160709820990671717299997349513980295814220540340417418024159518022584094684693224167750245381650305106275946212458778679117134172655170910867029796855446975269441696377068864133871231697623564034233777906985090843026379629194185241253927709418819373837450510923646272485710805716796212491333894627493255087504757146703567861138444659838271109974849780896009683180011825897475164412794098434216108559224017074969693553497985162556633611851175756384006944513426163023162962361741066169979609967257682069416377760996267425076647186119049262580010841763387175869658498342036954693213987763276701515031130925337038084734441701227253370201991398552250190306214833184573616501159272307947153612978614731338222437346902040113535268483305335297355738664150878669313616771082863009520266729388167618851275556652026032768235447359650934925599047395152253695944310598916666023700141191695663638192716399939596860036739573926208050726585578328639229232355727313585669572176465639053567499091664092787262944937319175467616202242532029054216622362210409054458145404886329405775964572435179041912845475863704814138712096204897033408224982129489907602755565928191784493081825121652131985839429922565600065976226646840281635312697150641272824812760460832197316176427649298210849489278264031692934155644225797360947665959452375172865863469729596579221758103706402718761918350637110023192865026632822491518021724089826998250385280752077219047172794160590210464969051609485217438165659389078806381332693681606484439953656223357203932133304014187154992936712020795973643730453025982182964661016434090145597405691776718208128673116139588462700596870000273457505584994467317607135133076492330256262258914851564658021925064326871524161308069531551442485181148433052277278632355172675545847559975519484650328565352045441717386622320368542531618717032537512640825117388733103935028697148422616236462185794724943939185300270020411379351006748501220843888434080023571132803887627233960469760400225116871721709872902037002173115717038580143042347573480609041003867745142404745538550633311816549045793773630854247426227940793484140812140934889491210775474542492521159274069400309643061531302864962895225212895308798529870890287188683835477642599849568762438187864909333616418110041335491536180605432063998518946183769314718958939481890117146846757551792149027727783222773543404116549141238288249853704536387374448382424636863846152399121239501572058193319857075981920446308447440232830097267548708912163338340062235111627526452895353563313758327008843044894545414593360762371725373102759109796374098895029721706351587798301233588371384774438880879484704496628159382802993278351154379495960220721252706938015083394435138988299448520553662608517874270826530691588986031815840868780122469597132206357320667479747670853106216713687232934580451422761701882775531326741372084452864781905915635760201676410960903570328566349122381592300993297229415322315150978918454561934465165729112287528702792589848054582236630253628336465080539864217031021842421813836552756195266207269494306383622033307080558719868768455112397112081076845930786132290950199304238809545470937068354251980067459191003970854363991906952398510875910168128870079960960474347811773103845854149139947493467657511710059502399114086063902785620986866150558450624963617503401563817927928124080576940400402314024923888834717919390429616622205483866633583056512548477631150295787713340415418099442162164355695021650992628027015786507332478526802240151834463787547316653702743991011140463724162362787236494296051092014856116237825691350554961940728861293442415650283453957681509124544180221140164460318517895788218352841374778918726917494959772247966045663097357282975039551949596658226209216994354715257471370856940139011152308197963791984172466995447190680515153647303027220929110273333240176736100768591451269696480054201069362395849166700600115369656739524340791177980390431621221637772464032560128756537599070091956228594967827635458052904664651613057921963467680227922409771145988080006609280589512879574819787197255982447265005419132582937816314689747204876268362022290260906413886187735201603981479860125823734940767330207340054133434266779726126332819317443998867180741771560734579650994376965873979226633644006102339086422123435562727960422116982142901421813755454986176767496927695921077516320636630654998370715869993494531289553801285026414487709673128491746059238244430021156607322058558435758158968117126543609434353375972846770635190106040420907241784580782529958768831429468994676658188906278078259667337259413396507302998364680561075729311078450881233114251458410405463338099595176608136991369618592055524680772488209762834358164743027662933714271252567188802180672189907309904556194459102630300473125099746269709763836028181002523092794008620434588549678418843551937047023781861520667810920370634261022274131925213938037247534219493807780148927883117022715656337671651701475809398431511773512039238032006326747604040763657631213386242807143324815015582279533117520394805322556166014130583544807785074986366496209538901069203063535665477581185085683463000704645604210937868480177706314902181797576129451373688010333161591347921308375536660544727653140817430265567151503045989096685053233741134203138613387582016650358065934859879521233569157682997258652479831689977824735764226051056696229387916444781417380347627586874532134650375068092304038854230710999741245474855507706829936450828924764138434716215351064937004435593448440156386966020002833022438719849861518745873314879485192608081177112723790766384073067684107218711771235897359943825842179008215140040039137080605532099352793722666352344744734263204126838890363633026365190593805681855730932384906343811100985805761136214559444387071992231366407505352502251250187726728060142105789379018230709780216355347282619522085127612509022159130254215321514387442679708253435642020436845668837425072829305524289900120277373491111802151935148532202489142387040907931058242321927365481684920798490346588165928442317042272937877084952632192981642306760751999076342182327487734837587519224557824099704798017013278828642803770715117328418506621554541477821763531807967117147684343872845418304960859390189146400196751663090962815955835842966374386844153811039081592781144498865811878369264757830561385218967638599441090351219009572606676225026151036223309177903460332379910693806944458585042537321771477015263824632668745118231177919101720785058080375150636554893786235551795458799316888831466949140136705472933961156476755451123998874645776217421630549848545086494540742028751678387036980400951662796354469076003473030445012542738613779884215720365625333899520174233305591656177851068865853059995318535812771033103662629275451682168792030875121157684774920885852821267435908171375223279538002131206798196682001351460797953302937357713523342601922516384928299529637432705358240410732191217769904204405415368010743889117032620552285287875445461739616579490579168578925188148916321808411399172616412867241052692736536713703973208319150701836569496406338838560021479207495887209473484260575944121062118638216385447994851932745410600242571964986873846372907051233132373537930012223828748352418234133095892599457018230184186340623559178987378121511097356981117099917272732063794083690188806702284647316718803256483313967434993678481799113643006744126892778713956606812367785800283332685315167047181773739328118533199135709821828639741009855647634297078312368342762700901610421134900363829998649962780787901381089324034304093963853001646014477093142142117885398260479327492747650709748533647048235902331463103267078229150160513746107487665544177682648742402957875094027946434336738362382259453217402500220788907994714301061474272581841540814136594594738919493102521919582954139262561179661906508606932647375839719043199107983114368879311165199181010714604565796142380856868888774371686730810424255628176208656275227056080963784844909579418626604116531519298952247024040563077884194055373219954185302974834289847680794093629972394033260234939666502509731004824467464401258646392580116220044630161300870435042493922452387459816605084191372640620078654746888879770551258209482719582067526028028527311844724386231259338476049722215290420583651585727199151242875382161300012042214368834331761610430780472554948927420274428106544240962032974296520178498526692174541835799541290666308001755043317294106848772553222605738437745186978018088229959981846187847636469437074853861813146030959456934103279790410525883892326290669897440161760948448838126167915119848284366548326932494248279332197783967892941072205831295290677245193930393640670677689152771267099468826589037122074779944818003602574973588994722093356446891502159678867581828392741558874854400461252148778722210157265009176647322258941284006660713865712365712773578026695709406498700907424635705818400671638702580884598889365731312353103950597261591906464095929879989332015493954889206226173555694571661788057233034643558212759609177433873665759241276544789350656001945022823278090614884421586518887947225460103356381902648766612162118741419871209261358164875285078005066961172488917496323915580257088113162982724747441463650130907955575303406286718003484116363993105928050609286750704516061329663385241576112216206536532054162072453803448112724941469168530223195790201751499243023813745467492456153465815560442088336803285360398947755773518616355892758822174891349796114600680481644306686859062096254903585946647083075336623541134303299632578132488187477126250472822042285583759873186789284645161326758492749156171984381953801181703685619273465525196428198735645289333781549397925450626589120975328674354591576514637367080489093070714108168673438609635738060947340518813510005576939035648045665876805270895835409500771076891515785171332311729797609575609972856008879695996403618208911753892047262648194909236214881757905420738290765676002191239754566749360899612585015005043485101387175313728395813481826737333792747958850787297856304508854003564028641370280976098036601680134691790479780967683786691117984288639592549197396701820560091305301229313814013592410011494992404382167092313242027210876551076675334447865904838727728183961619940777077871755504820684976962540740026993853170787589890965898517711730851406277598283010493439139016875774416371643313678781156099701439688727773003030400000696064290124576165883714562711760519525684126029416913816777508159920395384960863129570802030466981518036336037587496987109888102571445287421282318482713974850430008406073755696917137137553121320170537829669660600873847286383646205475722745536559739694722831410136114428675561535935747969064526596334985579151746809452461983407007167985590070821687358182817592287630560537907951976163484241790350314375471082704163743300229844875418007475795412923765905704153905669695174519199149465565380940920567270306573847910792991510377937844408264700622957056338273598179875690845798208081160312650353608808869789326595796815215543706313522904266883738188734383516988975996225262714356039271126834499901487248905529063462940466451896866023528152728859511443508261743385237280960280696052799041951243044691343973688190640900700584028361156898323768398145604213670532526515547420272231134236632116796666630874123688955277075014323385472404945858509664745892590889116472437060016623712356893342353564516692699465861595052463859125265652609861243876154483570585461551656387943844702589930323336135133302550413937066543689552673682188620436298603491811758512631375238086397525091797499305037825263070354670124619529577217108343292425616432410282640640685194770026314848979830327445008965869563436071436751383651915364162673128862631237931105403467559283090629658654480723490870412227146893746479722146770930234023311997940171927617684840351942350217578455393888764625633573074254567532085513886403857057813276316844433414849863228456588430834796793879827397884550903549137973624478109906394998037037379878633342721351561038699167834803495285761073814259272955365948396899151598302952182485188374700290232126011795245081773652398841240525962752320605876785731775715018765335646935100164595895352610537685113062515005277707917309846473216002079383373805985426583029405851784887375106254933431605381942887775993211628938517277286882705941767755197448150474436838101140976480673096916629033659841420614741395366469972963487002119431686549047628465423921604520519589204247824537663973291904466506079753641484297914655128355557496773943580852866069792665783375976830558103608910158149565295381959425507298160042657276777942056410273411791233337842587543831554068465683515302575990667981630391425198109607042722477376633866081406920100193501332302672683306198721510543831537569144083010330145054958814426753114024784165283148980221084845988281521610560370653407165171253691118203677585246118416979241833616438798811186882784602311211569056141592248165771818099231444824890809103126697893989759342154237068644880646566720534754784954777138156568968370021045647880542325291978606879165741764203526268856605888894905315652980784802023321048990798008227342781455609757365953377001642882436871091305728529204928662917618077100706036062753879865533692622434897304775215457415104606827034181787931310616767475928177040716804213862086204859629693458895579651211660392036844693923329515590168270748401784777939531693233882437898001288255132875196122940356978116311180529809556301096428948228313478011987466672455867935926787562784299352012597498077607815546051654031302594002864378588602580310394708101519622693450543847634331712000098933999374233185200535260600408866246055676877441869959811591024425748733800849719784408278726067915812489510440649101531353007743296250586908412453930675276577435671259528416521365009858385009014762299183399588562790215072870587192827827853130301799784442116903361335299949817053262943104327100892825483018963708320188234584821958556460919014860735650593586936381951024359739710080261973258945715109449275207844611691788787911628865003974333376215953929629645279820732600844452021913948072110968167794356577534287904458806241998582559582666360015293630054155916531233522864306389924316564365632440316211702256772464778537266984735684253305423790861462044407384502800763678767844298659982999236961435866865984440318654483839835477697144282348971777184822735352112106906135658966120096660343127575739309971683235207499222624962455755269324211117475295056170271716024479614404036207829127238264777926921525635457213323367970336974488324905514556112286528315357924853899566539569238038307448809642612960385215608265901104668046416358864951105980168018988874216149154824118502811684483014255143002464551683040048548129997142840735192910921818665211392813989950456559471937014733667148557482897130217654410079612146842440892389261825768668822087182277359322145717889278496807285390327594130036869169129471896702647544119528205152218123307867530820782959479607891216267805206155268402224420047926553195064867661221770816469104882177398388944654910628177898342675279790662751196312101156621183259580582530481547514161074342107958625533502461443874910611294468326349481156114062965709201288946291332951578188710901433375767124190416090903116702988754290563228566473025609540268183999697890602686378362115587484029470333286346863422801094377259919141260155595719801327977704838121700316242877724618766825691330531311111865661323884264308703938344648813560340765640670737423817264809202442856272569942172831139012739338279689172253033014665458607798002593647574136118006399170736122134456873534316659513583461896601508796961949390590592408876764797084378466442697352338314073544601725108471138003537482962304868560740880909905005778126542849960230889668791586338016269797099320774519831738599635627959665107948315344586820726444805469971740816446779117070459776841228199263989508502634895740764527270540729778688280636933895536633706644259949425491581024871800088679726345843367478016097427915119860210420055801217339180775256733013652922675078126610694528093404725494122271255997585854751082244685526723834920588594681979567285789847667286124924645581333844125139198966570526477480800854702953075698267803629648435692086859134250998609819642841971414296317070802643001303264002522791674853832879962280029925552322048480204607630242793432841214672597762658892467454767909706926106083642244232302940730004682863880620110586921591982159541791401227488685747912241884554947349145229135658890917810613596802471804004429909127844969601780981312067153140661008093001182034641941793619813406028865449059936356752993033158315663837588344391338815048956793057913269629954752870103250912250779366049127970123036836237759460321741674896958000949375263153323148210289239119126133386608971705841733998066650080631143155865131170935754312023555048319873422441145740913403025170831963917518190811233871592646036633565756569083473265778201136046565962962118413561816705124733730459071693038409760743946832690459006219036542102750189849488722354156994462986519870301839085723912457543590014222762995814869552450334018344983232076446154238210334049714634974102977617254699590727520066272657899413434276867887188985413464697902598258277978678954350985030504530879304124119917733458516559819965741781749692461134943720739796533355640798259432528882833150222916741924162350526626491393855558582622517563384532455856525099390619696611305328007156946593402062087311954524948014243365506477744472982452980611867242487595139407764273871101121018368831618714618579486720375950486864843134560409207369533351475299303667885382174269866148332937845914400133340164146136957939034545647859490565698395884998995168640163505342421341184280164763574937865500471376673269712327771947890927268265749366381283475887775037536854727642358161436798445749405136194600211210391801665996123546765592993111173659500637595237185341483347267456750641810609776553639422873546593243884891833155230106829141313608741351824173357991569304804946308789077556332253560637998953511643598922362335203716972496841548895546916758833265824310275561671308571142036674083124969659127389721125063291367099525459148187945234513691291283543370060798488242776854689396176384655824229857912904042824471044214943968714106476027320260488847102274893779661555183709152770427720128555020411809342336713684323552693122619477233827015741212809248181425062466761936464560916418438188945030378929190453873199506901831065295542633744724266415869741813731957612943618961689016520764408582013935858135785390130207156945116736510630062261320790099185383319890260543226871508081812544396545287699681487617006732258523036752700711699810308995479274199660471629841177625929430039437995741998325724926566041627999450489387519485501318181470673675144754771142462179631984050941573580347598516965689160346750351836375049147862316280707157002338522433903900863637658220514122189606215263140873527312202006588139782080865653105128456960898891893780792173077789883580737202114353057081135381427797685713637505301517778518819216890593166602984326505334942772793054597440831798217490345906212090956180873899660563827733962371509997509295672932458223227807498843552158985879425208268310976310637370012707476976323507169433709422667622969545824936606168751427344535226440537292172593721770741027084472044161665423331445687096102596022465789652651586239225680231464116807559709396449296828479718288597867480105679215349252694361341380000707984489869491889194497111751284846028030569023163324156127740994748804613085373133054105161960935385583747273623643602558090795503384154613629014136328228512926738022905277398303867315731438125772597837619672081925386703601078896354468023208750897659295941072991691916156626724191745529215222195370101462096278872805707350694364487246820138776453728031339440074097451280751398494964559195037602749377296651878337267466617049658993074838114786100971461711734231055302540790571506359375733289619373252072971695379866975453161901207970211565490570043177914042411502251110286719521600308374476927427843925302349916176156950338205366632856742010452427736982191553694195532313657417216459479074925913614765950379215410047017928558102413248890312210838640254527595975364512721696977445293854902467663109342724425346516206613741735856280471571529039998487779156305869461497016158052997960144316063408725855090668350937360480874196226153296181848760898268030003701861828038417794394504805717376934598789445098944007647560265024794259271636658821887453108350960589069351332896285694129276342096262106588910672852165067486152090632231823579938741912316332611469973256439613671288431581563332440533308074978362854989553755436714470003787150924295534068632047781879084623525541930044885632830728354637198570616507715273882471549544851510562895058844272952709269133881765875306803403919426434434188786395458335853643663068003086388200463446008626867375273729330001691941351656913841001669746008492233514350422971973025108545370327554709273234860207578677582894751309277381794576548727484436496687233832450657817319529537197039098735228647079284857502521163766033624448245837321676435397251219985322712354360940411371793476167830117775722472528534412627826074505316222307232859488043766454193993203787259369881370677247493517836775629748171264077299781050586946961879106337167429644297178229435445419427818599203950562064576841063914741546753955594100122181042279520487236998198618789632293742272696409220922303274494616785012034848429484253833183333762197059643893552736688919306269596992975835868068137459907625278159881735189724321747865485562374229502115832607675328769821387305891952821102829180348678574592470521435384632131770674951228625168820821700227820428191970356850931691617942946308994223089136234711181396912743459018921088891624909021161752577566224923909204366443548902378527199973822399701101999590512460788653897146718179817209212236900565591733896285160789117333304290998284688318757735374218593854101066744918981657091585874485232095494534226485531580216597387394524047692157019423679190234383630857802122085961270897355684200639548975732751900602537187077758093626906480077752546386242809279931114499921433025907910057771922701541891152163501822511860268722206128917477361740564031779735976540299232440290881068254745956660652265043325635457787175505980308243536668200945731337719661414942604939318371105523745842374549385264694937593652057651570168114565861293876232169090620402070897804549160388232528177985604981388332500022963567378517934261783706092863129224678861371329116168339127318841957628798650580398100960622971177360508721284984635205147669727252600117504609122349740231018051820786967521828472145849078509790349711081932743228959621963308479011343542214485197098372970034689884366876349017484403780375327169171966470101007751426203903853297739230380925479859466608575605138927510857830328157389673623810572762630111012155532539746721098171565935113599046481368072190809700892220474804700348785271282207796781581432932184650872286378869281722174991641712303611901408917490701747687701405416461790395530046203396893883575287698929409640651702830967127572934883703166454849533534247296346418782959324649799357090432689000817700750607896912595097603918861833203585095927595311829419740575423629783872132741561115542009773093416148628002785193708297102687966141121225727994349901812336001322913086199589271218614849731508073644685270763007931458588883788649022557201031821944684121205000098688072113485278486683849929770612266590115174751259188319024204683504393813126804858491072097847958698855548330421926974275608513972629391762193722118821113349374638678959532348401565736322590529922592652570381818263510655056740881036303008515858582838606308637062158244534895132842490061686470928253942172724138613219263663205574193619081430081051119229995399674981642471483695706643154459750061991749335045109388249098248263412870628979563779398267161546960793295694886776280931905271536227441771192500911584423890358870647356959876164097731157538928346961226719693345342621942838004626372220295354564019780154996546088426873343759153917668812208707146008415189572025064348075536609177717103704591651050966875268747869566037621730739020768253931449427844072378823087251944376919298000563680041018088668761397903883015440054749436793813781559070205871903041046947763407209399808182286223214546962617351979273623745682642303852091281629813008323805603400666576293123768379320521199183544988632756149726176534102250306477961614084826547977086100404350772712381921730099507155109542323809845970494481008101600872360270643201540287775372051755118457921224723554076786795614492243731304819563534603626201514670055593988453631582143125618123629025625240174712670245406659571848471301094634509446080708651736859271151044327634894940362786031924920433133962927450130124783231126744325029810655394475034601453215301483608062966422307576071792211890170616514330421190610265154572023095120482731582480758601717569708042309027543560047047662059948287102561856614343426925686783695167362691881712307527187961392653559191080849405000776030554489476161039016684563253876942994211227349141107381498697623594177498673797438361193816499473886702169112379702035849019428825952883834163572625401159126571436997168868515826660633086302646684306549308723814568475887471017590674767530678933527767629170026200311508063894388562966097391095386239618735020078043224466409063084872539104379782207816890253518726597229495876410484154013934222051055150838232285271190489406768788445080772020521437401616929179911764655436821286085418798188128467715163859719634654101312132757324871526741784673829700927629505118203023428260379277676886973188229454403509219542581209965681804904712452609013381423057895861205173781056335946309608153658164565938797610092502985172599445416932817561254400196086600492423098932241149654699801865124436474605030674316147287444199445958492562872340711193123299189104610526853256457547618287766161089629702502427980042607742066547448668796712585206607485936691533263522533431854169705939786115716605466463143636774615450478635841229027266005382258314368954748738413019329828236788817630945420298009769184490286253849042519190821582212152563243109107767357714736054995496284617720318857042697277572655401632372751590903485149448600186250235474022853777268618944117805251613530597013760428984250055609553718481022306324865153420300704452598415921729543223734930379803843558505374858356268973639383442137234329814994263089443193780676441321522207535415544501139261635817697707987990494131870314474184882976034030557231048204029111696213622412317343422188365863725298762100564679198220260953302975661012025859672475633859417230501595120388832108543947254877535555681180762297620557620099847125557326894753352531410200483091972364607941149500775716381132352000493043017239498066972647071777425430071126615568613516345300800233657695600557568218541251661925909152992090806426413221019145134208975570013958351058839634899915493330771250906047553624501283770205702411010321962846827027692589274645686079713650695996088030596029771360205560619528005342022452372202958105969060987957421697872848573857360052678657628580094397240951141818727682982881013427636522892085160458221563176036273916302852717758501283042210261811654163256236814451727907877049628495260529360772831769853319104587380963964300407609877985600293413876149492339564986502651624122833116183474207188959202740498999528228093396178233202861065552779693967997568838693589561295781813942588016336758767142591552449955169912110059018274220967056750107598690027441500346059627141703652281537057865063606113593524503490062214793949466509653449539254426575970702577571629023352479536201948215113894478377645995578867723279807995139401351758793605561942705872295385292425606762810482447894606354851961018914400540198733645682690797796499393392803992198606895035581390244788106055541260317001241659890872138468446632061562918927470882796130439419426952807263915317514961089519026993558336087455326281722825576400945541385645293812092291689694853861871316056252331843852998463206771632582351396046305061046386155863505954086743830456218506499154212610105862916738020464671529707527591288929042389494045539476134748763308658589470283750936659507518600317744853050854087514563691092066459262118910663575925603507952021667539973975740225763674551354769754249052408881714453009713027793920436582043969569181151426940108746738233248269253304644739432462343650838482505998588349628028489105753745793788107213870008103537448436596506617547354913787852181511667975251803461850210437132862969888611565601735199246942780201902559578185424606449004958260543978457589354669084120881183565379303632220665497005458376305489200182774822124267628604266969499330975766756263172950858743165297715390691730996122449735346365275043733050091592702169288188761454371761802728721788670617128517054876120861539159803675471165397350562581284760175877941825953622449118828673035802019546698114197154787528433594423938826638016514602353069250743520842645981651530973246880605573957901048938619073842948823472801305181001154146538468630457862201553910628753812027336892989775565651711480479027516942215983833823460473575939992860831453019813289464468798920303136933597306393637067648391702355013673853347499152482402404519133815772274951715923173617143424626310665188080546652984451185949396613650217217914113122345646597742921660864127744630459493120755930545951124290675416377596355357194391181151158069089156777119936770648739875705730888779855821947261091029937700958246088074129022081370925554496441302145077930419581213766368913717864841438662272690621619462607258486421569384232665043454640051448083802966612477122471544035441681343581072332253675265686081767472385178658870242981768773190977629765193083869912182572339070989072849406087429872250486225010756255045747933525425893001390777851729058621358180389795676377988004784775769692882756180478889413311319832753277914601424383854951245667558413908512276364698664430374269771017530219376689645006846001382894300167223529697528614646203432023815310275079389803442838058926545314105999720244369815239038719438317103760937106785129819494778480351273732826135310965681710142524573608329717679498710180940282058131934476556496132576450085263249193299932852184162675144084139655486999576060886394675804261194656682372938000803464030174426352678167371036448332559486183547254381529235629100692053220964995246890190341966402781110146397594866480425708516269705016415615077542208405502108817297822683144093770996126049137253412069744766982053869061645896844174545185310123194277528684067768881158647371761177958513442605763075720557967298407639263457483121096227002016631476320521160659819703524883560365716344427128540883654145282753240168620556450621543235546010748977494669278417955756638270710011130411292191987458510044548798413065716735440801268867687316090716041118738352742447764389271048129892482982647739293774075316380834678950838949671402892973796192377828190980783280746596369320120997879210734027702895784678739314817631812013870390443945490612985716691789173364480908715563257651490271745343185980318158026497388623085248073397661412526729184086856405232359125969613183030853957613435636711074286702453647455822229467424657716749394720589156227409082640475661591765044166660291796389486540997414229759065266968630449384461749928975427317245379077577109429504317462794271621516656182967515788382296599958473985919659121190985208602887051993589952770709457533483007522210534375841831393833703123107387649591634794345718433911965261410682243461379533028130704411966662540476583949490261061560353064086611473775926242071003275861265928477389593300240681752471846030948126843288667336017340081391813246240595292695664877748369556797254442650943730017665814368332688046419301620662570770190760280909729807504292372954410619201249680190140664254602485608958477405386529083759210084277651247098080519334969223741343847640523926108427901570132381581949507766742983978504095342008564506807705572066836095441221228082469103042982531426764698722653087800647489038855530440971190290882208332598620030838521742171021468472506636257806464000798270568473550741077921513223463105399693635725783773310739765019838525321515835358500120479604521658647935575005634718464687511615385713058349814592349036936315920910413470168572686692842037060049265596468560039905875058350721794268996762704076907414972569888136446857504281297053940156533928030398049587755018845334578448106270796795669941090373357861580766919381757983986394855146477445359156878140248909539644871579729753140860894076275840534422330256350008263767221044104433456154544461977067428954816734347327247440737940184432432562942723768351291725765513933306133713382809230539053531377139713026216978327843015952572115039817453724584455044230739234298499087868564355885609107613063237772948808885621529422087811510130809614597574371155108206908142912491229838371837552835206575415742581870738695440209978009043240479453978191155836130053820398842973294251217408951460788543364138764823441584417383425995503680028984318857358205891712119042072751797423374437201115567878802763224098245870923294449838798933619781072416642058527025600782162129348711367889865158042647305198646819917976489677378415943963180536869012784132532994485060626281470029797733122491590462217605566363114359800485870865288890423900300057359590489144504593165309282604039088068575390321662379831141861371206081121446843987387020357407548086811533347605189567078809626999125722777103852201457071962492453839236704380416722500125987438289731968748208372290215085381436000789175842325460676799949750893690062894576940459974674602549195053529111553312925666557294185078910605992265331389147866121583639103030978289900701218097971864183568205794891060134760173946010868064446675577289178475193522485322996825579605999991322288498382875885810403035833282702804447309533862244295514760124403600136695055410614748396307100810319875928441197391327210523674539167998068097944065035613801280344789657753296862133970753608579590732142258922405121468538574949855676824682775005196071708374959654434940443271561812854914237406878907027030700240093698702650564079229106320814682341823920306288942323712389321245300170031131705115236791283896496181540843733641635130381973297669606091961270629497750521936320569796677580489793801840547948298970987676075302858434193264181566285814031681376949157446251972412029490261062665864518378363978426278453282613225956699428484407057390993658874932130750677927460730274120116640661896754367238672058331877582972225782129292837736562060668967534619299530393128078280691703724328994167331315384176329890036957453995844244466325366883848853207327725865334161127911041570864287844411523429425395234779266351478731867835808887500973005300976364819014639366365017278837187582893068442875732810923946558040833707510554659814828171575875824995920897763313181658550540387025663589014783956671487759339204768807881722660627553087189656751884512140502785899291564905260563416546039469977873523792358890122760519935676708648137524639922612304662328690765608322182564586031222019307700994410810224379873817331020702605069448837834216668736016638811018948925278902343237173247417624015589647372657701325240813646203532510351934002581178629225167799965869013604869564681756995824895471493382825825425536542146171422700765595771421744999993180268877066476236511303135578587561529013305148526053826800203122805501635320087244927401453726270737156062944101357198739423072413714139193264298837046466020230134493892293656098463163122669641468053855252733927766622922372228609187800582341081327293542922853231608357092121756701950567929334902693678856719376620640418285093832240596144705406658971686277147663938257691276527180035589255742555232066841638714333605976888464838168352639480437071407730465615587009762960370459375124843281206913092790451036941829008192935631733340107445670207943561720726421613264496823050143995103631493680254346275461100118586090693844215884624940846547081031954153547145325075555571430482039511252191203819658248300489282982960844677131287956866112891136155537255442341655491425615586607173905868980712061185911684047251235438248332843619180484270215032593021118698884532532942109468717444713557984887618036471922096498228309233382379290048607937372763164143410408043419586377871182520351576504036928866323328660533071489849287350855850584950543066866164566842175001248836011191690379723821062624255958739794832604754460462550098594379981158689235953070182919272298451145786800637254755974157822904693930868436198585549004924564857145659278461071212605244901258601661459755079945799978268244578872932247121880679146241995273814301562443021306498631500428029201103301768106527874756238210358264566850883565006291825640035568572923378101110580478550347300066828719061840939826438075302857331113768995441722121893933816193210117467336103771748082263796590066844688736112629680178651626405611011667802699824936145762858064105356109110706994927683859954217855600449126653131014830919883220802656504731403815989766322229457132777215318208214916884953768478616072485359521716847636623277057751868015192078677819678744600457860316032932785721487550728790583456248189559262130199938824628926610406493548390202783687084670464032116987472585640934884305350012016769444790169356199157292393325843926431613809678794535952502944255912405949647254884642231868850754657948379425440826236408015221136540415294101805651139988559109495721573823446757791993155945355805248200436988334208046796986794243406241079835205942152741320841655479381810103259930388564360546693747220091988518269548125797747078807172105481281192275266663084313407728746046009804949649450280639645310487180216485950520352984390083515891495914848474764795272995041193901202227346984079798349127198354549816203637327841853855771481544430020640091488288396319515910250386634395268106371784780888399720803897459231809087903033348859942283249483740171120136049334642212296288356437810190835953839975289912454834415946990392699670144720737597641773701825782491561870347869599131695095870019947733653988270121696551476758040570477950454000182175768859418177719687092983313094084292036251223299736494733515298035244202879383241622501297775750205825169089096859767349075387093096669598378275056496338885440203427361679653445721005750365864767692807466034012463407454739702285402284833072490250279897431305993574371646246466744365285422519098903879472319999663412635843051241460476903950669128382614230021506138697812717398589434923422492747856751674423283229316007460339742684143264692119357238653887665489417985946800454925050437359575745830017177871242587669909197270196342160616960909269262410165273596522824544470166954187356273060196765877533401111718225498259772069341943536568545830974355495402100087234963132824398162148363272488331491090610886665632430176828666365223743082746846263132744286055315125225972549050997958602741895561345982910211042263559680015764969362799231740426252541748407952434343566286913359090438771754327733221433208806074550127537776506860312556383965162430724203830896859423452559899570865812747253740588105116117618722774195053814860314683994814463231677024407823249441946540695313807197690788564923930274767935205669153194625311074339431442404763324905314629867187162248667084247510895767302825882596243059358040613161415386020190664517390351372202418346828118295136622848317558526115092915039685989091622030507600643669336823404177580304258240592490199543069144237101521583843510446374982342582950432166886322746196500387892680945875376756279630275524257829084752872044307985631891806470957910684121397400928470425127468240299718592985337792983106535640426964792515549264065435452430900969993651228955983005041203583082081788400223213963015797866785929563479596721792390980643036976404949386160161654866967672694026243969292099909461514728739490615893089175034161461548444776400150768798295486700371276543734690988562339865392533773386865043252912069164346136768752465349579507305861786459643722378462478517690091472459527212263619212527715952953997047208446159992717419973606222744385248151670692437308932603362923012078364366777065409960366496067511981875907942677089211669635842563421090590199493158291195522394934244530603940394119297674908730748444748853920945797596451614011579477414778024745571030042846487076342233553441935296333134859765594147674180161924710374795129310832639363049779115008561824509222440887599883925143968480402141216061514564688405991205869281420104589280807525971711980558926943219009552462454432749967894744217649137451953282427112769691247952071886344252647470745769749779361061185156041190181961086239809506101118832438924948139727360672682767957078477459302336495609969488488395660321629813665786289036863150507229275321647775004199394519945677080107093042349064743776438054537692255359461547673240830376576104029515383985897075099830044682794454412141715764261796996440277387748958243664344507945558548390812708614347521289806898072022259797512642768597927292393201657517673751905682813993123750129188926447025630586386872162707356180147018875452300892451021178580571120866223510099167642584952240919531528919451576688962419733603062686221378390038466904719156444469231130406846254717121303878263478642607066989062788546150651333894085417160091367510205414738666571580954085500233637175887758284717175055729644731495020447717249651851422051911117222745209799402984813798390449772607410188696499227611899177855975629459799933119247813202189509609622152147804889389451462268774055356810753091255294524638778778857212133206997162082859464885251159341216392904124116880271257058886044337900020088477590591270999707830532548064375301111400826121186524765436148195794893620851868372702984914982497146663903504349905563891803746232985471658521211652993356048529743065079013730761992686822683816397130598920322151376231612893742841024057550513304027849788555120377405078017844358423840436741268365601887021558209485623998406305373420364076433453802704431441039900019967516279000783419888426520536585419134628855365755785017800775158468647556646335837210246850037891098687479359027525519906088273342725224700807579750154856946673600041831508556478849846752117747130018510607526118456518283499008324140889127659674737020075767427802755987661752255452955458742197584652690109664460431649498983595362755693513180480447484684567910074654864128532132681539530711785968193986893754648137291130255623472097481525807694190423937599436764290651907081091051217421196159979179313187364010113343912899653449807310632857948760100673173606042152136389690421571179867174054322785883971780984279225622091537278108886181562956695976914007923661512256736691510705381309867633849869035356697963917931579301580493515328650920823816692700754618860336961184858909035367696404694585621244065809441694923995052831900930745108161164913097108463705615661362127039395028830224045670709064781125625994316560112357872798446306952156433038310764867815602980230102833287872742664795489653305987278559576328376051456406843767347844851678367556345524117175700507560061864066605267009645567770865362586075198152880028493361627023650403670237438135675238108702670770497764789788074875073133027579432761305237465424692383879472039457000090518462660081169502554825573164060558297693661136830403006839343755355233709171629635806839304168347048463452764476050020337735209956870122418830859546177666459916269467193588497274969768267306444256202394154357337263631202754860714227695592658123949758832933386475973193659255536854411882645944734233189022994269479484063212014127431250805640574646392682763750371583281180360670451499176212884247374581611142838597622497003788815320345000497095510300205604140324351358133329018113907925561613640123012016590002612435213938053974023799588996440525367774489335769544026990375933353198715282028246077260143603179145355939995585432973137185996301062148673040391772008572867306676421260325402828480042875927087531293400095740174007294270807264472474944908725176710899333953044195625129207267280600282798237998519384701437142912755669654141303574428884027647316067198541939886118117625782430573522529286901917280737046001183186834498370842255097814481579668458762871422381426123381504836703883829181871635509264814924317297550433374532142298193294756852819352024798055016275296798757414808793346251500282143757720493037226677936926963475899494333020446225278602852243463843293193154727529540488453740133541111003288279079189089328947985150454466203568583415364864790122971435437581384487990783577868386236848086694731617103112789450087153618837069042783822535076231848937675876957204096458408456635782455089292686184750794898849477225751619031895706631395343505179847934564184678478474300454155565366542726667600608499547431924087882486662642509034337368579907866196361589260061662765236163127215990280592223932642465990437717065578375382925337906518610932565957034531521510095537167170082076650455429987983793562329798231837595436934431783285750228704100886928206393503236345606312922732596182504904392773960912987252850416793696749516796564354456442763371426997623830709256180985761670041338793059856484545551113413639755219182428236492391642817235697780369151558738332274238566172387047498972605964078991770222503587368240575987246220923304246931623889549467937330221241169478592492656888207754488635555070211296535376835487006875993870426965102120474238692942059600485276084456625475199559930804708245265276267389731599017390790087466264450857559914812153864505477673005628647779096381014714360034736092976108015239164439600878544823945374731403736633202278638191444048826317039141685778007389738424376042524540894880974667999721637904241223325323991529940936949244725223457732972974086452775053732150107239750212148851947046938328313610954488419180292836066337026801067984329293544888693294754719605526157419340063396966866229559488363088815164020599493622944727392993188890357243266757306248034455599254689942699546236877535738641337580808819261754715926635937490357739309524691201379023551841188475044651842546221823607109857831771609193710170487467271078645748587155955250206335473813203030050176300023689333820730743831409340546624792950169269149865770242280823373906187306916146096238884664162904279817498651612387946169773370052794508602627958816900346089548097444997816485570979099395389794047679018732978748285609023224765976146223870542517878995480922161237519232389617114554499220814594078897750755284917682757173578239230176041757045373263927538431743428769213594801304730774902376143644958158927991084680875908257581895188131434486533394584175143510641077228389814995682014575530155091263503520149877060607412003990702135621999022296480080368313844839637512982454759647127389803565580968999323782755448541423360155524300739553176520999182392412572429058429244861248698669617317590009102983378129326762674400593377664338327705176466404320149208606641795947976557746443629417316562784573887248441481492101155017316121928518059314421604179012010535712317258236183173716094854648123053173421900916593083490872087532771208698778658879322526429736240427027516572266126082854356714288242671253814521072925008374597315550761629062883780983774391088212186377409402320246362129197951629770784756088531093307621966300822015289121502983077087128620263682062567917666951207595682919824089625711696686800496277707420025490596684358618201670991500456607526884366119466197439695783615346438355167744137398453246226756806748735055395825476931681873199739930855866421358975755255782495866426205628962318508615999194251912685936178017855814599939331535897128645353387703536912333152733429553741809824957163544648709692370076984981852680621504190572964656548494600010946972026937275044013222196572845451736052815853065233776754612470391802012985861711080599865166984424505793015966442797926773519482731470142213132440309960673568598949915982375887647686664278304165892081227507898378747960728639500604283656553758033345197794291312354802181164719540391976609544729876482847591170233893718608495107360403415259336255050535390906790005594495550339517987797904234278766139625136242772938260351552525904424388086618495535926346591766911577724634174041333252537889225307129388707666095927058136052499297390065449306798209722006152541026731664980248912815147331363922694538766380577872662008097898283977090611832180362334474491357650266076555801953865911102054351529049845910514455839230380811584616153333148796384203792843124209930691740136616997199689483498900488839105714276576477620241690027680253484218338615295794678832941629491637650994831114176161101602954006194122626037589086644211209521523064032534063284549697495289260431853782377547020981782034015581621765831997060770094122175382167426432724295292922313426817760893779125305986237837504656079637825394305615831031467951001466503322671363594849864863587433903563812557513479660179039645458567169314641348610983061424604852622276289437090848144015463057365184747946420515945699043066994918017144229425832493954339551504058055688764564422521688452555964419668536846047836906808500750285859673808949213326862673312497255367130893423782983576299639843322356428021975043095868228623265301191801890765696453717344218126084466026383142298378461101638362029382055947653959893229333976567367585411222802859038093415640775664101018252918980061515973641014316432373151720018426091490547912042978733215675046786252803191906902781662767744653757410344110081727002040094728612455468718454969931298776541917863750953258637114005938671202560671214917008424078415378021469554648129671213419248549302389697912388536491096659172911864569748119785647804616195674953985919921320028071055794565024046659437125385315018249178178047867110260452676870269101918831806088488690984961244321226107105098845349121599839236917229488521354201809013953669069178444900902593188553760407540372437915135555389964589847170769670836893726075353283412182784796523879573934235229811168238135420220556872561336176152484320228986318655875546863041924407377771148649522148669096044230328423136506215747472696312351665263422814570818367204849880800746843406837556368778437269391322420096623276212311580782015053561720149834942662071198027837444281761997155554393505016073585784448437268090174141810419844651278629296922870690973795947146873104898142102499193989940883703301277754927752654081195072244356914064933746011795266291258590679649160959829404073247958389580050127143517248423244618539392368346429542483258671745704696393564018727812010162248470613733502727830249684284830089727566936074748146273827447013508424771861592108114940059128110926206240027694536577934988718106550320654120419455985176845378939151265436468503400771986895915674673358997739686734916636429161028877201480200482976209578764332049542576460743594242570512274256505777089517084710052859434551362264529960542232766070589835601933750859937857608302581445779496086693215544974505384570195246365216291623189515352181306861149005239511814138822689613809862978634284320722961441714568576455975686953815848773170033647320284532684361592901038190807901755182584274001156319688875979107480989415220068269080854041304787650375126867332008601352512120241691203281330472972832043213083731804292007751377282917166502717622846619073432996079914419106853888470711166768543363286893977597217418563660352271771712724594955758681856649532224877144499270668293175010214819431927099170708240311346791327023521136825551164136435040972203586869054775679731043994647486663594560476832221427598387779088156399556175661256355448917553383187092515214774598677095912555897894509658702187391973234818743691293286026487254050529010229053005567565256243455019212436273565090593618468653609576003886736627118850640625132532327388873230883526131837903482860439124735063663261730153906505605466701738223478470168970944084009212707470876546357000444732212479148386658344184112162176824939911422954446035899556778615938400789486036154822054525011102645539044220970860773503575148407821631483754660209361217257821574650845734268613309770711204317727103378202306038471269628459513933320495783582878025942408830385848578279913907248410968358884088941727598228394057248806683944642133531128193226525573015576530182714352454652987508768868401007985963813930201910991785372737045169238005525195419218948229336631424913050612271453956305569348862240967167049300644330221835517598808896464064451288198291562321168108616105844583272018117998142290547274582640965800797413802197554755257357109410008135933479604998659142576628020463663773867010982897215321453908349549152545460204181508535085620416586202196110436597212711317160697548585850081503153583648919995284359891120621825751981597430537645822070861437812118893257609213769422781673373396951582459496272045947768358670091874690569640941984072794383610478233735084220876903089961095774873222515417230777738725681372005614787768774798888386383143699179057169412380604070333861668102233490211112741631345838947240177812443516434182701869966582307773485167947265418595071277446749534320357837077925406366045073422097811186805027112783722311998122331292545554236254371711221756423151212697171729490880799782416563727623176675740103152445161825800957579658338982876714802237245816477801940172531178236348089046935816989769682366631304000591536166377359335776026261036370317260508598159761877780437789975625348193548656740175102595165869075753303024503477387705300988795557870015199138890921162312985948017745283099580990178838242261333903421464188610291821558681281548690592541462762957894285190224961422036499287882793272392473518686805143034177221558725293997725437648363666243350240423158579028673413591658865518818998547670747920243783429461472448145021744827701109354690443204500332874752079790534261805787320226518784397105678067938972604487040245369294072985624459129162447079866046380034426324874453537019679234383469205669735824689426230818999125901802307298229392050141859373706800976949941018302549228404748675278503034794351227196909390933186798465460241405995544691520586343640827755005032559206862682826683284498564569561435918318549525606983330374800247801486616131517044070227205046119623427716827556682053774513773785118886491115617987098643709046243248253047553272051222477108820935716511327229331562092506649641615722601534529202521023383339377866825570178793797366807942825460011349791620565315977980210301243817586089548118201110140738960326742214136314084463784473848826026404812806351198395419171608231289799067444233367069034366060744425095469995166645810250534712304472437990113928244206072677724874033393056228093620677751107991121433131681179731547147257635259752279240793059276168981843721724088946821352705922735975459579102652461238756197302402562068804699749403991033960578014615979451695248639468803489163660515400638012076977449516586982709402731640628274024189234622744768086828077189394578288512631835674343312776731319610516671796972774052780942421281876158230445788371306216963457730347957789451924697098686158936082338128191935272077756213391010050446010231884815467533917719621803143030489475221423058458748208166094786226773756571636019772275064834272646534151878014391624469125387255784853563352701889340676276140854545944463797342539985932563312396274304759361259359203278728237091355436743914716076266595279440820650346663324054291954130569928705446361103769284258204291931041384797141095807674441746260234755655278618962661224462524511335891489571358247564180782436348079978146825040803373582779716551295492079111502832210298921008470417757208631047853789107760663214660107750022771423423969098689780608620442450814538636643136724959700185295819720289830235597657744947860755070334690341367971953231951813649486977204313339963759908122525684240831121120021083920527552782399789903421009989971722427832639292430578167710505237380214674293734737704907979635008524923609261934048482714402365542898518502062178743073441109697846539838327419218116146476936702230544169170169934858929362978240029582925289544945908195569107618001388401104538315458058070308516121972570130677042187688298553483803625781790216645449857970944076071499334787627890389970750321358670698487494522251570810161659700538288535369474670873810806023028471395309356819665831975009870791102909983920869071938997992832266523545619556622580115208928266608087109319900859576182293690209077812359522812710839299353914925399329882905212365588796289096203309795971595345163297844104699296418712556674711305260264216948936772714128344130135780004993364145252838933369150650425369039002470090012850967242275168310248511595430242597846529270029222369052461373402653004355295036313531146177659292859415280489914395410056179880387930908801645124216780005182441064680190351640354092789524728036684981245194553226248889427558776992472750575456281057650834477308593525873461575073995653657288521807898406257707031286849452827067599953338124273942071704774663474854256808646349107396706499412558093853036634013460378811072877692469302802477675903282801779154261129076533204435066091202260912801132397546701883995898947432282558088976551847912121957730213377426207484257776858259915513173612804718264641738531458012651035614771706663450546574516676269987360024438356232374909412366957998525861740709956800353364038575821246867906780910502267543277690719865127590279075864621328051657339653905129618572959504707326568621921167129271456765613784126313567087279589695531405772937442911063962167339122126318430825158319004016098627244542031329031841428833008390413867417149732853176600685203898123910504752709630247841871924742958870397275478376744777183558954964031301311200793708379228306790306911674185502545010894298523917868774627582152928644327880604494308517274629184024032257923893745202242649364067955353302822494842426698637504819801756004303685981971045994972236449544403512266560601993272731581040798347509326792959808726649412094578171449394772646328358615014877489868435172859081853102098956379445766136984826503147831897010525540933760754587100173428050698726466815742674521023482715228547225723712499588194664073295647981459265104393779434317720947688026318853192091240268490736364602558212100980414423553523442241790007201924384960215806660774020418174572503547906027564477396192316440854398243667298806718080029692927870459293346950066970898161972726830592051077645845151780657136457490953519548909637870100301359160524868551733943877659395501619019734155500093913488211086641765833025009306351371210827838237990190749589049628842503123652865482009793343451340691425171066189512462551149850143720127417463310354732196267921302957033899568681450409911695610940133431521554031149245953188610666454568010993599945930931379450383873219531484656375111342767183176116865730151880838763797844933502974211734507146703825392249852214319125244207466997883763389278425085555293448082023647762028871181135521721931040713652559684679028552660891420759874609965916801067682812389790627229311297009091876994766382872760032197352596142509799222686990247878095721795086731539433018667583086582237771310907558898699557676292481895316372680938474117339211707472927696909584711474534054181590550736076438000231035357872377072291777211004912227453110844402151361638436691453948031900296860170441762522167482471389024257454746969459641414742707025742983539174339373123265117374929933735649832413328156797982055087394715941713937092964611215742894655598513662650912751307007224021460701664269344476922848050958054425704862593943111736083907267869188573941650306316810659529805183471184105662101612652281958154072789996395310355268283566908405317029329781704452968586386299307270746812402102404210002137225338258044458182119455330537326592528231668759454288266109294635117640943120276754528484469641007321176081045620890268400672695160797445682151603413275238779009240751168001208256010862611211413252222980030530903145537730486928507390957233426560787269525550739669755706904437636880063245781971768419848438810942660222000861719736764872188728298211033659820286690838000898608465233139515580569194637243693915434977478173194222501244084057940138552980078391295464825550411712790125737494040986794928070066906738205546349908652567281007450729495371927438154236765042256932407342861659829848235545278961325058223828151491545829953612012178032969040093456965952876227774328612763216787592177606866113899260828623648025358685609429553934220275865880567666482584741486519233495559049696081298168504073874224944648856007991920002977997114125949398214864522242094718720767449524194800981689347383132052316413762340283963098602267444866487565280963876250559178637100109417537213382749476552383546075408187384483109913178822725352903691639042880128993258978920479573842125177655025446753467336498178717156088960723127415612674870614490259700404253296970859629582560434543253000318249164926363435284025226547718465950096319570777343566568179391530797175328431243549173580436535246165291842773349721147519472863293229859726720973243653041779121519503797465911765150298325732250832696171216414645687993420172803856314043790599616854486825603187431795544943125805839781954005831152211818576991377002612123244608469142046467136329876848899070525208799809637872406216134594509414136846755745173524815325543542975645486772757962729274969742835392612500239253376989484417259567400389021649778447421856354944701782221148120369339153202662903046382110152545266832526296099201324874726721180619800370023468550922203736704497864753866785258671994798703091839521810292829304059645752388088485143045280801999079239128728085720969723013185211905509878918178170145080846703320293083686276136725766910698032686998036475277774250265744830125398249056456419098080147053559159859905421202185186928327952172219441176667949212734263093573836114193394678613582872828956684917752995324718336804584381971616508098263965167855378196435379220239028371558907667793647501940939324300181661527012503686448712912471334706482491104375847262575071307220113316129384125576329613258989662903962689525290550614513268998585749672470930179952325169831800624885271617279650072064112801081134883416215574823126110300668746427652358176625093573462379377846649599628425409646297132135464892859942139818677810498258569130411263749536092492435622675759368866597799263592564562282722390900886301476965635624426708713747316490843525841350123261812432163626221654747947711778012358220839877139710602373806452204315984080277930817093458297177067826609875737278812312608837299962511397491782341803076506109649395576004768203329384951794622325307129448620139817927449515628803994982637987111719672879388887915198747130307958128266588940514302922129631180801681806613416007939642248755639065890018545411187268094074790677973827741903317894242782317348581275466877235917551198275451997074178185575464561116193818100975730205196339425525317575039040538481119950978003674650379821461712239293867593097600616171267635259477971651661414961220518630251942739174111503247792971863151165788816483419361356145690179531155857330737133294777741749053828171585366854914391047431799888080718200516717068933116370918587609500681068654955146690182057130876309534787680858780653338784413396240648597148221706958053896243599010034689108653179047159358903301711969382657793018860551016329459709536248664441741487266366641862291385052303280992343983499219957861429233564773369203011530280858779116652285817274598585357119661725532171191085650759108297722464750401338723192980491517487484582246418040207870718527118259050358363846345577028868941538186637123253369203376944551558764576626267787504952605863812782552681121216094854934127357179945367473502337596006089439037732488262080093333252800344391819868855955681695277791537764195966433623099720649251204612804497988957894182618731077548765003833728286668398841006165173199414092074685778844165226697666471583598537212356685936879321990409757857132191299435380525245184786857879194526369216140635709259728881050499896589465120997153761621450936848725546843724350596325614727023380206301980578582273661770652930805366436072737155923473699446705420830952577273956908539037939535359999437666241894708591651589326743205901773913272011257762068224945699187593345361339466533557154313999465976220481006177902871714628948891692634142207284246977013587910766226203229468102137139022300703978260035712867359103764518823555098706681254535731699351824576512114313569707126850192767559756992409081984408965064798444262253017425343719919008370961758751134143864535683603741783086999866572156055777290476754683895616294462213049081435350349475057514888161507966146031428977894579592942103453544527108604381123349510077875453443076584897290560269666174618470326434179547635540063173946695860921112679881521065198771160142006215365416913949239073253055735818491159022464808041890749363659024389645603034921730841523659957227291890454968253546064431766984319213767082349482304432079253079829592159329703073004806535755474745199312135197908967831251108501648512647878580870196050499059894053910040487956611356075804638435979985993968397890365471411932203934267545447485504877965686068199797398432374633014037853072863907377428094161737110558379757104956401677301277415571271846520568691063200212147539914942586506534904867385467389775538729667413501682155819489334788187190913658409129727803293708281033664031046589353713947897525764709319161018722726029699805920824697232588123963311184595288247793785079950461040385711305375972379054485918809126675140762543052815882754552519766750686910383766694751401289163708124811998635766287980096728462905457644902305345733457050800469590101785939459347609087288260312888106107097413734453059459889746174059500214265944107806964711640874784504562128184159978957384719825386259901890161175464400289078393007294280917915673911565603095714810309432199686249425543953113080030460268114579558211569073578426497994166786735129189989501444529073227421951494669612489923551152792960710997394236489477113177281223599787897879675308790969730199442159359627816502200547638114848638138660192476747817340177569968786346483106514379574652999275962584584882569261221568487909231908320294328723223929909483522719178024232691762033122527305531462802348286345787242473359396912696611810591060576546855331169803320620073561055463293931214305294513757794843377801391403168760952413161007354367263725265352106340247697520682829986788067198790311577508132542793426308588273680273413646364295522405435045660264908536839904619319467525211863152496824257640192542186228506351816368981558788816081148959283826051263465736121459743768520745135025882361827806633533771182174031867524680282560190731930873700445801885234681488723787945078139529496282865809755361452285837524323520088576372246085095440375667195755470951567856038820128936634514217858413364983861267268509675449745124364605307684104651711861484756079160862101926494992790540523355402910211058712455709876257910371452398719476225571107437627082671813475402817253524979029278176539612007852485219599161473905682458792811146454174779324243324853602280408096107579139010669521522776312031317733440263530617456645694689941972700135577554355590931171302512570809900433946852882626507883536674052373116779141417409960124719123769760461632630006736288602319460523970759047889826472418014649906398072595381939973700851419497698402383581891664636484166345664692689578814823146116590541601669401906944543434023571919962393430603166828209428672335005620711559657990262304188253288369019451271542099976578567227843366315839264308537783661790881388761754716468953264546209385428617108136429547561405913468474857362919797958596805977400769134189753067681488087352689956714968441001035672317215776102262032398458604121319069348246412873574847639024209014061127833771266345239332113876863114407527810697541871456750126716589072844283681206233280015860345775230401653628308054179988405285798259919894523520912764470820926984363016797698192846039879208629563279999742488643684715050328665194674319538102731406075591116941862844913567494435200586545519048866368363720141718457745404421565714246362773897335905040119571373223770195900320046202589146606555387636773529824652059527184081390737311396035755948582825949821138620291981418302349996030883261612368785901918032030093958106017832466919445477950262520690585566290064904526298903256777130139922459117106505617855421698078431881584823966464835107272531714456904786725149450274017701111800563311694037380867458170341628310338263164947539839528977088909824930200150323651800247760274867107709801872701452045386461967249962131294809702967173397355028072445662927330418741318197291749540525542530637784821148495096730426879643190740684095716690952222895700840091853969668913891200940201883882933013343922423103885694248170087092184395284702259335439480749224646049015592339732338326553436605009664685567034496630803148834182178774177506333779395378644693518607846451855943256709236851043575664801289536802296943328154048130953900701302870986148048783583200901043880350926740498960290642519707816602144365934455656290802773861795973082893651329651030003136888643854941729385477871314527458996527421229802322276282023823925904964338448250454522412210095194103399877379120950934619664033607277796930472302670679407517902297477331158038994220304242304715314775688481368084661256735335316207397837600649914890443462096315974296147474034580940303242412860276911583945152573403829333995761163501812566985429015545791114474089329858938150419692029716019982385371421894815279103149654860154123708369041456623064034508362766164558661329100182393695025419152538784577133267182010262996003444312424684929817238576678360693042380527895803647739936608590614631930440742667833293918740912810906507687893348577997390796689546226417148319494128026569634770629715049194974288790704020701771960555164939917781090775902539879253806070308883270482284972899045434939168334197663326329171507049936104124537011788150144133899271923805245990975350380507334593287488365710105992896608680206130602103518851132966762037460633051539163978038325577079865343126040571418474097153434206539700960947836150886649904159894544230108343841557504430575647276996235689834010931464355334129984341805221761823516394787465352282537690136002049365030626499343893629679852295401332648019408404785394837822028843173773361752004658950487351004520369165558756870749433479312091209789809683961518671793434920797246572546706560090844643652518002428808858962433528780757732109050496234618510524853142233606708051299535921861299609583608675289180504964229699317418181977792388307473723684167530341038829858834678667522525420718290536655828647734436969103860835183932579651652366357530115677818322128821851545815661366572666467476844122370768014788481763582806256810046283940443757379361289511981865009546606887596653477888686672349535385143455143335724518801182706880088222017535028399503082884292230243029098271693194632958098464276069237279138489422999429562016402095716393314060138546125454737012426589105964051078405651084190318272733694628536805594006621103401143032446552839587649744412320624566051310826727680383304670246271592952390154277955942236135595431524196016217372906180369593365572402067241343558572871775647612238309224845117908033743763982682068845613514145389419873273528462709061556085883938795597047019370589557302094487523712896456208004618537763646204525484516997021541733253522074742750914468169533191505053062698549368600788764418111397862569322552372201745798287750398612569619779624892707155918411337182717673812836371522441298594272950645734254144683208340609399952739064537224499224777656613942395456250093533534391000989624435729231023932829920502483162123410833578414291618716580118419224004188815231489698245198870549939274495463584965782738056068774629973691478218381666696794805680381139453968941353154507549536790860484268695130670068575234324883201232979407195148086926349929566293050237164019999010997523152385442020392028225003811459382582217239312190297819686491875652551125496934442322738227952743972116990179718639590277990864364538099961115455077257176742760536862306176899380278720891419182348337027680197629097152766059929723737852613920070270238583027269433590450450675602450111998435760130590349829782096376337560751081886223049613543572390078883766224763469310236580817728441879019762259845653233112302167600378293969734700734333664472082456855254727280026015637706227125480511088234669043456582331730846134002293568865910503293165663748360625548725017942363137386046632794460275997593165615202281107437085380001520450238296613275270918691327939151607731363599235637861088964279479158336577565882840998271630365577843835624006530927437437458713313768669293233676823686507471281549236576562577179454778587045076256961105346183713330280625265518562753565900168873778564919023102632155964534625145672307196505728988300164614949272531321242767797990877228090468510328599125907096326915066239221306291697590413630490043564456805384568256892567987596185279661342170043169203422387676521552152876246918539600351568136376540473136455934764323804658789125009648636817229397858145308763180002976512943186506627798740312562844102527613130622445222330721615828211335403546536252533121308495894499482620209988579177472672103956529460153108640615893714479308442724204933240456921790726179721579484343204833416343696481908376219352779676030648980529119755644144317815979996582346250070895764175879166535343468499460489950037479234066851337351500375358386275629730615270089962050723876518081198826218444868357460781814457492330467725699764348840880292112348706190412923476984350616841933792371756749572871773892332858684469949615521081500399143309701606868677142675421720839268231103405867428802844700159997170721052764369071566887546166853994619534479314573518177463333145846985164028585016372931888552358902708419532596357865235404028832735377613225703141450633526013827296568815813653975391295327006549430737654365681814972599196719894544653696739901906120884172963025307175069937910876998814026349026142322199883874375136866096167494375024004242373227449387619733111228092171737113532090910508679941332832121481701327641841162827714825108579747282030711742458597552063935216482950725706485607186722769759700201041412384990152794528200033082352724841512057020279054941825030904184296325026156957282045168041145300658595726077358490616476347988041526601404288499781314387248196578507703247970769945696063570742871742030206385201782084139493414132232412450110602490144723514110686587468644893936319372029028242636006402114451140581369112352420398077269685248359529737893619021378654976547795005435825404559156094965563233537641055976615771905042450597520735927624400343714659818926989635400615191550893216806044515368685764480610020155592743313974129178586026777728980405673420843808253339562500971307112829024399867246542786951751989507396796765014053542487016106235145745765458062708990944149945513266987277660976484674360394191527162108736396335506933332651745284823962455813450666865437714516373959448277219401956111300753452448545247702370038484407276888145611152992464186478135063168128189097603917265576933396310889482055568815018520982423530753300159806364732510165980987104568418378737068099707028547510996917085256218438028633109954145841859158237812684781064436040351537166710699804496439705742779185574794584755755643899486113253107720421721936942710460031326921942223006493773194396224917854012287836714734304416656976390669336741619874801165515000501363104546876740843790399409055651864068005115379572957048259466049925638668370352426222939648499801556428754037152944553184536454638473515133665991345605915422240557299090726212892330678279920093148174969293488846624920242207326549396235091085398039427222856562963711720546256513518641579088051672713187776339341733062074139961187962330880172749652134431248781189521935158462241038205585009594390661116032748487137696124996550336294369150417861389033082124409555289657119094105710307214503240770093844284903885508729823616721127700819577967229777165486402318760007958625491446931919840475142068979094125159656690864237334901232393310546066232252529928801611631879523951264837884436476603244341549893951106851054448106222564905589433320607505095116914287602959690270119897660659166052206079236579850632179130354102336169564673738894846679371302524018366643233314584493539066430852860607418279997142940024040788092459840896161513259190441460568609887328996373620305038788191909363289265234992522592821072267986250287686777696437471095961611445238425036459812588120766022877433561582121066427198403311049292901093612186471722867765397553462474155231079593671310102953524241518298286327070527138800014929182844635666295376908246983575044957646515162675446965519918248533340737515881415413219891623546085538687244884146760366648519795302723162654983985070530238116226143036040954444216006958437315391493968578891724429608566240421044199552811166171031783376442816022597608585118480880653513739580201563700626125413273510318678042027005807193101472029510082523678018053604873328266063398090648542343330995187527705012709211985197677972686086528240681732707275231471487282222977699383282591764743440221861058537741019502526652692665907422073512460470939784399118481494481210573523373303223652918613827944037478662221812521635435183178821713995147823658249078319882294222141917719429601240267205544284415540131670654826140321498900097969091154556553396296065651935287943183970341751968524672634643678401763427332220185374996458397171648650743682895485748286274359150096036367034703670376965508372553873288447188643185083516700782216211978318461066121935728146098226953563211963673042823252774819577571952500313081108955631540808131976251932183434556324972088129503298475582443055277296826698320298995148460626937390168761746244217568835013543455509952571439646455950059089613376705003600848950655728408313953060191911153094001878454815121363525788962612609656120604086666437796227123795979962497955946908815754795996182707558732046004109498730855238614202118982729557804458125275418595476433207427531179095042547195685502452231137811318608511742664871102455665710801684448655870181704633828505096092433743639662509751075128060206987226882555746302873479514639352548215360802084811932536275905367189810625241286811463325007581718101337042016330430556020627616522539000057267895918465890742390808155008453735229149260757527169351942527921529986825206103444182248449201217220371088496822711172259234892254848353688164146565435499254220363077559747752050961174013938363713817253161760433322406698560478698231183307551273496645606882039874708147053485064763905104804004806453298950777272847726925522380159590333413412843464716482964302154832274249525141850731244060675711731062078729175613010602878453420463657842063267074627307907929977646086908525269227670791578249476055249611231521187215025756309653684960835766853483894088535151372217050745117973838992729867032432432245737870998068005893364903979627358585398623248299537687150206973223555161924152590097113187770909463388683328175951777791510594479225927359806266560929060685933590416374119422743389347439575118825450126388072920632498738351883813208501099428166888367112959464246982391541729912637291304896918135906907443604839307995709078404220463190069318163080486161546407991112997690886869344663697335461873052320021790602311781177515831350186878120817278900845671927882747949965942439295376015049880866208997396845087362416573373816005876760030900213990517082059802274625433965185121813991736476027387564736296813147272617317219442635615175814401792332786745565835794569801409323303109184109435799859200634865155505898278112979417987813543463996260054321235550196550370189376708279460308710722317723557527518738846284715016521454817577865506009787283956583091974617190459382373779491539871126520258424732146947439467597691465246871856399091808821305938674373768024698558102802065864098706560515511187938175285372088529363372949249022153848134505765503527930250199058033250689737873851149699631636888088389026176114417814262658344997691273872200894162943469327121291588420072205236544322929037606071590726703499372626761875243947170531335717725935610265946952447376944964974626587527241117577509529213667916539552849285913804984716464321231541486363642479613391335729837087795868505523825450395444522542746684552673717183609861724801888331633986966897159229841953238761763589695396931341325799403462725171864078079435189598222012548164813184359576939605370813049491908616900229440304472032896295021108433790638146418314023504955498466456825026453585925411883716872229737159149837417761496797973672339192789654805353513274940624533069830569332633024521811753976839646047051277712920705332897227883941571455180956225740836317789918486780582275966099033816237483983677321668969664501926187236108969686785195513199539889542124303996667598497279738394023347373121192691275059254727555134345039835800156186043716555739852622088315916364486736307834774775571389595359518141187672382880589569059776234819730532136048300794769936631480954896311133766600720511874730386272118437221982458125148080749571799318896673638228260567314376927111007884057879981434470876326689462984923418189747185072837111374269392836448780031795746804555273266501035447459925308709299179849622904030584706548215507148712842701512357652644617962340197315667212344133590608442457711337997748592297488568678574526216637453678415334475297865222088904682567201466655050053664642640129454591841444069704263724312262696360428426512013894641919117249738229187322106694983438148326224452422291975599102326674866572423669475578127192970963061794250745673389317865389633467613600194814180687010137469359937706344137430356160682960730525266377657604806014959558399605199219570518384510089366752668440355138336789440194870829420984665044564321091192588862052013800470124569285278957251859358954012041788358596751544097822343028258898023004226948954733955521637569833706286989699738987231429213816163299850230986696615737681952513643998262456680818692519552390087270226711354086837266402525554410399994914286534105305540916519081434921949061253557503353320469311158162201337143597252563984464118748048345882036739844442696754252377932246642022418538310593535136611747457041550534926311751425978572500333025888690282615678969004774189246789336040345899347164116450558758443549677551717879590077908794199583755240395922797474346859413931325689460135264896278496178502015716065576001556597877260011279198557794427248743180294516068456475621954776515436648071834828145016342809751106781341063726507838795786184685487276559949991526571119598715841357959161612318275823585107537684264231527751789078513973779761375529960862897802569092202576577762277552900079466152724701233152724078621994112011325087712476635354629694110222859422723075272425848836149020138161375958626285071818267591783255943242182793201553413273221399303438902244718444587065869005452371232789076055406939895908335081917450228158210333169215173978499979051448946477539111293655300626581964928988883058266944130137367718525615039096736412425563792977213253258629203655219845890242551413750436438664833542690245762324206840567403179103118963052095273376516679131911514803831528648791427528888057910815763000304627388575168001520628854533141860085560970020562132433292364837539898642299875371344734469139655625708548016567723505437912996530835105873559972567740685438941935450592429010741503802495406577435057095219620484023883802067111747937823174849437602059187947362495556449432480018734445865955037760838141818552916632065683278131389503130668624971848177470488911273769360686294025173419580524097306953671156676699366302590342418285889656313715421234963782779626130372318212419458942330291465447679516580762666041551499621895819813549670551996950143108278774417643784827323223773741894590733022731583228606402915549027267410347814480242032909236730241099048271248633622975360483385744285002306749751812478533040460201152267697872337014386624120067067833221237470152208393894917968004347354554207812363967123467710844370581229795026871623866899746517905314195074143639422771787348935200133065931131467316771611992139969376783556745814904580119995909235110746311857275514705508336354037873212756678129844667340447685049342087971980390352042126802898531739846454065451176704726573611450267402806830984798706942742761872149657155357063314808014891819450474478530357684120034485458663554958646750694184892443307754692675970540114706770395747704703394039188056100278294132523257938812864943198434761104287628987884674791166008211515205440731375451646735877526930785381010930395951798424806027678225994502100988381286141588463424001223696079560881020635135291524853968953045193387964631690551735210428685967417196623382312389298699609766662640966885868222155385496175655208887454614035941881122855085704721227914351064974466821107650616398180816512911814067342589405277588116901801488288518343966284996749976283041744901280866645982997091261647450498192965349246039851518600781017375242767288510322986840288121305796330313286762263925978745359723203431337642762233439270744833068474944855104500068760602147373446774971717024331406142059263181581046061949513395947245279035307764177296455663146121469020882207897201284966535254423459646294358291355298511809052130751364862283806190731267723103104615785287774607640601949260123644923465290942544680403621432298893199890594588572065471420045644886550334174472830081060368453533248259955301519450561709126444675608418131846483672102896909537577364256985569696759748357509222993705704434944636747712797127000964480427736436591065589879997205708249892877549551093756860449999014705227822662553289477136581671417802119584129276603980840147325257633980830713000267417071123944479667005360659560993595496481455994230431188213558530748611155828153708650531104882298322856367228782153241276137122397910793109816912555864388706395036690922130351804867598093451100551192485059037499807154964947892462024902715523144072411416834367143565477362321669778533162073135422067022560318098619283061919899596824233089978682585551598990257422735084258119767401213913144100422818575100950466007436385877639330338281263879353070803664042987060140188821246039404318792809797871681962032811419639148180420940570833048209145856615629793729725447339607418893915382928817809091257555226917691630287297276641630160826622318908385478034378548729467187811792274745807906522722345771081589717072679974501693880322256022916188033052181631663913074857132679137978357610669037353254625243114216260715788256686405873878964374288654798374588861261081814503083312832339516027708811417864128121948720182090166399424573207984181893953016823706254657797371841582131419421689768594865384968007457250619289982864091563195762490533974250953620700017445897793528359899542639838473561908258629348402231337443037516598873447374560347704027831465974181858652338509374433273673433821342903020422643205287704354070054184872183631470840270908390340162684840299901193539286158797846045974904069446458085631186843702893635717076276138071503766016709194973097965451215131066366268364620168808977675069719912810392217012642090122014311322597889165140529591623190019255410179717160487227521892285488872820477164060502882215032875556797167442765775252755158317179887723550894448125138126955169610566305763073787083670849377819101981526270103633668464270093438225434316286997459740179515271640737533746329204057787931830808774818117467583016961787422227472981286900198937404225300863450612165990991960270410217266260679582522465502484401936797580986147703797385634403998203355527947406509717218503286230601080876629517828467573535584331658607238834012693469176940394978236697261172850763177982221175697686621133440718747997084071440442675923574983777620766193419323328866050975382915452453903876665482056131197910205587031337331160906773469526703027778159392426470366428677739068034416295251426371675829380770161844849813276386221728177655579056933628142764606970789735853878207734132571381572432727396616535419840164983808918012556112342121640724892393074890523416871765072545351004767778912783896881032185917763323374387571623175654918244663322940419495804200333010104694901432293581253647487919527475981462273271262851900154617756012756500654942103204108712747109230955696934129433479727414965606835731597026776110232023675679570403731121326890634751549392069986869257567243560025057439796220713143796016173000253598419913041139542844850805259024950351491732238408778120200329646465483108989896531589417298859794231420523772787503735527014235281027943950525396076770934650657747294164264386556377355979370406426789147788579307721835355002544292388451285531365938519836893499688762254636063770341472861022433535802668268271347323446569168776388304237124224870849551143447190922085583969233049801001386817205134408381554566647999635719731023637204719172513594401478945202302799436821110812281508770962722526752247029127759008053423110489337213917521812115664094042959325396701109387205029748502689635656553576852007602057808525489654362756714611943121559757354515314091281659624350766336055920764512226461050598074331812637912425833160859364552367518855828853657933661949542234156742856806167809337202164557949799759871970505030638038911472739533022933183397836071396550971868033616052882229092495290968043732641884599274656399310956929856994755302683286291032328504301162871547634018155315486356101178242912439360842994408342955554194626916528131117093565900074598105467132458037638584093249830038139263558318298007128024141916213451898485129007180766172306357252938629935691833891761257440141669923657001212990977468852230910384895156328902622508233890529215538390545653039097593488545345096700615579253549543271517344882718812198971769311822724849010935410553374251724643909884059892744854068444885468707520642369635877076081266050705109630648423837111597830966761467421493413878366782407102602755333002849162490614192069758240695324401863635270669523731059146400074151995464442581765256585998307364053750035250429746962256690209096706199264412107732909358336659903609001674115534712855575373613145162995416191294317932740125563197211705274366943816560965107276022134005665959044724260238330713369252069481733887537667940319824830643680528618301928218149456514975988228451132330359219628934035483174848751091136104051908924442063699787800187401087006761242947306789465854313718071725858608492728760516458688190789980396001567840668968239308105715822418713722930709894616203095302059739713101995263824198528196661337092186491020204166034725889659100562091903830364207559250489339623367809551949134634358404758492010633829762713018917850421527760405480243862136105128987451292612974370208288038625812137616478220550442356841325929320119549954519063089872572613492329837807558895908181135029507725776237113167809628772476856071286043108713168694623692303644365856953090651495884823706264463772877778051926169862474507799112492573287351650787192541844653312175591744443666955996350205641572088367451846179377725188094929460520245368623797204438461192344500276237651947613427993303134613636204588139556609255911265759548730489223482980618980363134798843785103593084657172906233433250813739578522679621744909382784954963725888586932485972696665921313596382256592073238236952526693168938877151574694860564825867333577875505517950352471158075022195473471578190597590946242670480342111334130205512280623220160933120901462206632983435259855775635645894532217931043859259428600219678625245748509342497494436197792612551925556529469357251486745616838202645355714822560226485649488466105192379711174560374669142747371747962846202431604933507647588409756209978509638692951251410504195811721213153222832785367050756539579843899663268876734110203053365265209405160789975571865194385772766232193005791278242219094188906105989906805334122892388381303278450190582810775733948604620104003480951658178702425868043761970971322180183446506419037513749448797338847002897741845824250218932299565293119569742298784551903028091672010637110455410110415569882316648377458304945600134555136006546786864259468086526643689996350837046422316185346978518504588442997402388734869775172495553804987400706505615895634587098193525454029152153971812926382858401083183373045913865161064316811103879246041576814199120814334034300908383798712507808458243689820782643420037447100820829942524313932458745303273547067805941451524043973402344588289607864888474239924072684660344983394106264489473497193947342627866333774129006421415573555287917629390882736727799160457948100747515355455846669085083013492922698896064366412633889534528279154399067980910224885742573634632596066040069085586254568084198020286778719859628965614626968123597084602877834668630304190833745386130374233639754800241359552209118601657134231286159566493083730961636209568507842783671535552607139161107088697746106867693031157223705105794702904487437566297321916677367220714219924129643977223056408882620142899775620240597083151897764793278430002802793573575260914548990012770364924511931072613572857266193212711932459567129807654347452991797672169692321934867138397083014198490779187921602159214120455065698402972126297744804108885070322040151509340714722631895065311045721888309729297804473751334322829596645180601270587970709670070657151384630297846804864831720003232113548407032540457618395759711535731221697880261749536270953958655707581315349821682683607003196741241482381037091344737605512761986014069883987868814519080401010976727753002224313396942024738479245744071886525522733692772533624218359737287157364738821487546730028839751100611134345078834677761762889336940830150470878937224407354533507647651907019845371232152154956094764567464660974181508978535276265617589893514389376192140463312208959152303309606152516079758621017362541378337030450861508161120856155009153928046333302206106303678226617548230512762061228619846434678399247285129580236551053643611898239416264234572370724555480811492820199204620400830745655221498248190627008692154284439865706738102213085217680085780301944894237575974544782991123808286113151303970501487860672048839595407276088938152454865776982076552953990722192317253372809604170030407647336136091429754302237455155842155075262161817225973905190506594058160200945750397625495172485303090325415263528256279087276275617921527717842001469004717042337630932610014207812583712958369360504767729866373166052842846210084706219412560974509286542140674303731782458347786120878843447344440823888912789559025688889700502945757074783160947731531253667816154964277539972980153113854890682826458204434475028218958965648133570776230724511057058495311612341758950034475840050662551674842349672023696214986691051266975253693352271407709125708780274406505322433457040227175035551119924008156139032068732501020939749461254909599922633262652511889344018661183414586572912797219113548421184507326703150578711125689616635487959756319109481197805444905330157173075137918156934490927062642044972210637150381255505765734332770590862424030917921403419200403250454330184650063093403185087694953156538104714501337297423273658170696753496781464456701125235829968059032336877156113676530770147483654280081993862188667577558371167686106894156707313240732928054905415000363369461888930525862473031885379534602629299491628928550125828411486164067281150182746082081092259768833187787854123520027723810817278827735491524730385274159272947533662784414912953099091335671024014324268956522541412225151724980195247603267270238938824511715304496358093643745180796051925740961929325199381665775156949800505391545512448251309992227691000924043327016609759216805303242019228243462051554841162134827478884233339314502780051894750120601623386132782253465987328528571544214713081317090157936743931598110886784786061054789427240631028260783957088676647036223817069387524740307853992461354435369979173120125114580670162752914967335752699437761003187928631582542220956909585764764933744825765186507385750622555182740797909503669903699535362887263418973340964130874574719793189648718442249334483109538212076449866186708915867584088754832924306749848907887173453693170647425377263028531404378591571006997121613894511416816517694732202674815693806654908603404790477854644220830238130038830700816566320904480023444431627387308141325005099303592437199265708974763524090381820078967326187219895932276510600092472446841219404967215304073683004512329635509641644984437357059841241184939956674507626571490625932109297758563124698302464569093334171031817130904858889752417521613945455387966350892446183104383851132862988678172062876769931726570753613826634103635713889707393380125431166120098364817985179391213164729195508540193908140332685299662517534149945256626746361855270102613122277626762270437707406971492944766043598350839104816761280395937518554109246022394999577840241474359757548082149014343098031866727793524199192485980718682885747910344033412458869765306074589024869125661758824911769942575379390352255638899359078198836330080587963414399939210316559576167042875020889642872643268573581793626857926239165672044908956421900263698494098339940466829188255817752881883639285902791405310638402292229996357474415049264483109780970990083620427111017029809954867603171815909602651588961134697581848115113403684181641493798197614591137927819522218736743832472234348748101097161976748967301753449553206169036105113048737103705123818781578668290503361865743743420815039929090236052044009521601400388932578100243899523489084371620624343617836661429825822052997836401768779606204834308334619022609383894784239107590497135284564577524884473301724654653264070858756302291989616935386828556536902223225810669855358848783259803089461145253660674292735860413828504281670182513019192158296755818573408294267833535151337043648543358566394813933599133275786860015562964959607139551630436405396171262395574270282359331291283156632356010750616927126271868193755631656099143401738467690206350786956573190778851821348578298507300840075302252807316480490190280321124659408050202170411585597096428932753374518175185652050468123497705604600982273183405252856632617179304212491361249022747957575536278547801151140053422054836302530211606638803438332181555145236427199843721074050407861247140001961124741484622814991708063129762129510283652525446571202651456447024187608939091271727849327221679666896973899490914275941742358727669219837185116082470833509698008526147746918990361431792147481471692437220074510306504614656743132070944145688016660030352800691776977021831087385068520460866744370330978392174045661848236668780633706262329660216864412088877387958099768017984262179831733199391001085932510375615793046094554334395096803823195065901334750053441877836929785921225082008345732076829954788130756987481688159357105308382855927395608877730157300051815290623803030739683076110139826310735624111544784477361025367509470287914485796915033250898691807570493918488201276991951615883947758292672176144860126439805001505549817089151101210987955830161108139912771237685997212986536386459386864476899458045230975378438506809016516749162020969093319573231490461697493153521816736485814276882627575152527475965522813612794821726351715006350338656381719442932061307143886383991292224436291244960784869701228249897231942090266696310077833316379149986335788866105160838906874321729632198512487839611606543547423101771910304051040624352521969193872354135344732793366691589042426831799889425858186055549813939545929712956445916321586134184149784779848217062979315243178745446229936660810358457230126432930229337211777543949500661591825134308007269225519731095431984600934591938486772134094969858249599978069466587637734695816963290989227123030343932331367614088793803177790371150368309301300537517971682946448711757923918422646878958864335666976929002535343838366024183323683264017355799156576878561290818403749163354908668283595773575550104766707293927558826914120370098435269938029949589656734237734261486498170440915841647262527360080128367692623546848181974644768729680451260449740411011269439416493201406753443251887382193384044414219325257114897521975977733048317151750766333132247856416353694728613796836581653851504758791177497094597960328101974675600819755882736706107150249221891257202096107143571422175213110025509933761012362110841890888894780764834344095581647359278688568526238205336392758721287703293418685784611508014676063344280645611142171795735954503546833741144407206750182184884221523161631045918190901128179689827006590629162967766407904162862528973022710643973023049448193744662195211412436637924652851714408046421401333105210713167868654108680862789158671536225738971419390131702552109881561283427317324918847062454777087051686584028016122231787215457560653715214182410445639160833955346512815640876191628001426179578018320407392188152335640901209622571867495862036280217405606410125248226784040894008276193733258234478169545259151503420914117064070111850188864972792700620243953418858246848097103427704717716207961499749307739661218747376719935139561433155578282942627025358102698099463082253503259645765331059461948760224990460584777211840547839111047884173776712776938437517934404577847365619321548165409342337623042904397072138229770028942386961920970635909501931985215351711771073709472258832841676045056412998727404992082538070063321163515788249195015092039846788411153219173931500432666948683052056978772371189779348582018456636520213721969846458259578425167538204476699265317921359252327688916288886514687836954559831942981332089019806021237724925651096711207337596664768107126902105955522184374300326014167817962290340991949167863995792490265750509549919971105289711925470763888804092253241311667468179193655594259675423651586793400750681226593865494363514923450595962059912934492039253242166188657210873423941329136332249470119995126501031704365532649611566640221046576857377768943152184985833404521602955723161610677130351831089885143211655462868054375440656221033396044480125306349894225309511856133395693820595845883070204520095182016642014327898719395533946048957271142873768117572436651257421085665006215546827159945045156687098910966108076567995149001789902563396610958029123198939333798032837734859947510846454147325158180243272544911688660116421553328269149548133091361288333240159579906849543742218780094604089398306828697569364504589173700792318203526623617958248468795988331316686337894562960097170792065485767474622817199367005977224495499939264261065334845187659570159229379356465536699332319205310179312385003344693983656427917795183462211591173153766661972100963464567522795722790341916909287841973074922404752624843656458100676918039636039828369432700059695441013826889992223493418700498640895433695866693667458768404529266197357022028967558007122012531263996935166502059565488579518134324156567070935118528948804173745023620857856713589147267102595058085511842937970511252016382207282461282927658333787191293196222833874646859032887139006767885245932321031829612387883483900255663684552086009173999493224387257423310257717035342036567383526485529773486447608594772145163888049685070205262252038180581796362944024133767744956437840330762856944685171001220279940027298898825298756700286179055335406436260826809571027662727856538537870358848921618167290883587438772364811715075692215340850767278721085481290811055127583154160155766503635800296586261016408455509096714346273619178867099090778148935748428437689269909022750040859458200512326760706094962788411467083106839577341453939761355004349743776705836582854247247799345572280344914730319819297271015393326386887888291985289118469811702866157977570480112100652791242023945760097763592498245900409063600959751003737547302866407705066880245559667419187849758755391916033849888581306428845093178444170710768639255239441634660126045796924240401986490575945022922948108462129683308211477315352947472994254011460859948004811319815137136348341730202629118276545111652775771074713304848659956410700676096615669140023554934465932913239428403006161013099195139279930812528960596142809791300665894887930518870916578468605373352818388172702769979879468877242150356573619577705976594818199167117441666314213287346093011382293750193864299484067830881307884785278843134326318677033790095656818311057659718845608368209664618391815886455292557886143467481180647537029439334023612118741191922324151745779922165899759955121680899565785196522372078341852893499168947380735102702477971374045596990443942922272267226780245712273082508360972786356955217838721146728801940274732711756226895915449423454293731930215232591596956913454432280415609381912995705789225442801218695263100739659704213107190626428293651185166099409221553961075842240591512323639830363907691521670614981962770566834893218081239242540445520334673910613505108153025901982932964827514306966455196397311787703245920839806237656241374069077118955003857463714523418049189624252929874556049749703037355173845137035397173682258096323605212584157012118188964140481875979870014403036658074185993773625737512044471853649441718002219551304114756860033596357001879541002245798610565493842222017687572770005708624837533295874028891537114957547073492667992030510484346750128560777695110902971904002753741984415970913999208952207532609956953348630250004933553724031928010264305362419302512279478477036900447050185144769391192613550107209982780818419181802975750601755399871019339307035951221650260259085946587477006951301736933371411477083986199572182550054048781046270358664269504794607381593025459756450575540666771031095454065516686401313638603552534854358988437804798244447981881786273846412372289951510663976223649310644888122878652752364586119751077936900066543398319249280475825838943383325940079770689965677761359794634512717661445103298237818238429509149809220330648752532907043664149890045249746438897259568796811956235032129725226796315209802893844692441215829029813597441465061211478845420177660648293622835523047838207497898251081440075436850294618504414202606479076985361591639296114886902006034484495969458145767686427853101538075054069524877614339943105376614235373273034270002998618731758191252975391589610042941983797972500988184797016593396814045820788000602516929735616898079038426308933031245507370252377769800081937535213395241531033302104531260935500815674145957722667335107401910430001521743270962419068343358611150809191089305278903927032518597629383286660670651742202809244170541327498336524120356184117189496390361240781744264068427491012378730903126338367129933795919909537734144133226472558440904828962154487469974820449839491767416151090642103556869694733675621001111928096485147037634517897558244151448250771845137108728602303447088173019474198227652715089956497758698272921617692365784584299218240421150306962964592241257711137723503276295734685325460191803168268675427915235939445236908766551111999153806443466649022541023174680529079294066009977120546155047733856995439723138710030444054275894022688192678557590510973165730206893802744370846842565522067323575485756943126639133001759407168439525164885650594031807723628336915777338565594752905728779075965544354910930360800800787708773420305387239516871298951600775629362448009299724404107314183840427005127157718783229130315221092181133608434435577048425312422211411883166349042926198272756787671922499922070575166719080902238947622699160583114428351764979213935581760321794252413842662721294596986899061376535655090725606904488562972078253104923752537403458516905760389404002247610013280958211507577862261757350529423678215918823942524022046597537090580007684712365836732377199911221093842712231674597490132996225173042222031138719956122412691172147599786537547800134824393630416818189474577348598572252305930424039857280430018330087933099124558395130109833691429116227206447399844310036991327961882323017358843492646715170542449556714014969532305924027447939663320518450939959664565132564021398677407264222270309553656255491485132345068137144822653709232723963437809265757306125812493546408123348357863537644108969096579223605088006673759411670034598675344643174449323013518160798404658798820450338547050005727425502261911020558182117358618425253862600330977707397922487054181098789678607489048161028023104775135257964128322779170930453620926794971844288370545754927678945703183998366210111601118351162733767995459109024850637254091866478582279036559578754470573563260298065148498790741440587500491139848692471141156617328614467946510490763724513813370542305742737917841099100552551101606846427369025686623313739689866678487169072342410705424748969909241121471706337587305014876026627345172087339901113508897278113771803352383342228084943367115174490746776957499514413221166221757183873172010431698502397354963651655088162474613306406546892679369784805561599872828647023095361917126453105123446213735899497588309044998001722264772063104947257480675664423446991623854363196758805955683532944235508532306458172854160632553675575644472200875763145979339067023306485433775114802947442545604540714574649354841774618247695431410514631291241305215245065236036401703783749166766557562112554847280676693204498394378361020666261403727379294750998317164542521913660684224619797459981727960151635015470009068894198603969770091486449457048085316461631547975939206133554836626432257199771488157659024882008745388419076284671367783988703406090378399997965479090746294966850001460178379540331202557507544922657399473114828619897030301803023509876259020660823285749570984766003863464911559653194320701650880374005997271283188857348115925478339036297725318180995000075994729158332715178531875816698825828553531185610489844030946160346876045221428708167254068768372779946906780103819926267977218842767260365180562403065564285535126614139323160295553908456117455109768116617937864842583707579054866393291678017723033807423886313835701299290883372217284169767948281535364431408586033334439207254377719393832891127510353847347582897281416068275254753248776640310884632971015185772741077377372376516635922927219384105438527549537711743391548638534819581003366856001341651117022654086607381968299129238875586146475985223486974921098415476880983839882472877486762627137812053806490856539806461113647849147092858116791486375487240251525778202324227183913624064791201288416563731436450751287522835538386457044181010282867802706536900311447554032405920428029389713378999216718016829659176035140879577073184479863250526839004642664833516270846919635379660738771004488763919760017467358440826726762024372820783654157827241305262036796944328111665671842093274983202599969570249227354286181606759122900269647589902741561264383585556494509889613204442771194241959374669634959655647476654436243200270927421397381178632790215499795987758431803667178343626714525765748807500763434454689195672433374341099268277297290342503637798915760959973514640929402609435170152717556551967176979492725066895263086364247583323557876702274876412283984053969587380230298157610755560631135781836890095180312149253448136774379852236003534070364490483572815436444688801689748315003665656149356553265867090019528887749341253652537073361403593958280279092126496565305595196087718784726073712081650949705954115385737828397181871037031511904820334109077371526762462598870768251350674144552148255952049058908710278303615001423859897227067936564589350488513744744846720759694158888312863995645006522967135467193785404529438100661767228235884395970238824121335249887504399010848338280701821072199658279112482719795105388221871376253253970592563620198890512411644530839036951071755434031689485041022921650945742002710485751188230786693036150603719944953629208164963945114666764223653070460160261993011219146345146946281018179464890606897982777631062611265717142832612037586800695911715857392442554858226629113236959938789196773610527106692226007815674199466457417064127186918291019080701091412558135192468855563932382774147635083258177206122330560112162431651467970013860482400090483150246792984883847239472152499006114263060879733455684237947024118752206466305370840239142086490036769783030195440617773676700352228593807030460008966351619108748042490209044859509406327912048787308668450315268353767201230456772728010249407729447033565888852560877850259140082271910798532686932078622300425177673188951881755233748824080550750737339762887532828730351721220512486023113841876470729164751790889652257348333394647257666680364718709233502820577399369931641670887658451792739683161723443146664915266100613216222292580781548288362684639494410090002441883852236492434909195721543519875300306073062883487422579144591124162944438616021560666935238458594517498102308078525009867212113586927934723366298239263896770997657101191469997323132396371831485651489957186262669351412532851870974841854380246692405257121140654170109941507555247699401456508865238395362405712232098940907685470916045906258423142916155327194885245495485026967028682625820694931608270326979828303741133897324174860337683055151722793000163739934696082947669228053292255917770669647192037187132600923639086605254238573356016005690167370947335756592095758611438787646778599776707036610310439015125690513213645293355729996670850424509234511550350681544390864724116237916029090911918318433384768777888656606984785308883182581418539959455502637412544825005599435395766070481875293119680165793205920492243444400101349008447663976470722910981464496021453292134063547057311958008320235209587231807472752437398440279774828953045356009146153736907649481520077079287736252675110487504434033026191003555074154699913948000243691600910286716775089644472962781298437989844064671058968476150543759195466376236399701734529439338559139863697339974383969107802209413153628959945542808977425790125191028282110330776230755282925411486489132901985510127295534122718202769117994365289472067505555991151749265645515864773956081925673638007473504955445347791058727393629800288615898479046079737086893163928559772145001807185376150811966966589950483877558772313345683125380622892206302166518026678298795598369058957423066243427996532434826212181841451586472699956249163595446879542397157965680334218680462230144600966943410948854410499651813113152289922130169991606950532522963855347718468592377571792923977318208213094193159150342548487461996387752335909531044652909609043869594198211396955060307962256241845811242643027776718233154824375490608700848368969588415502596296490892282773268098018114077304585429714367430553704095385567368673474204619047453913767889539654096048807799581837139858146957775308754656250805129811620823099521080152983195050358092014630005551441861994995246158135076882069312742736551461471720767654812812355030971177753106786018739815053915994036707545325504223416159606440255119059034806271753826530000011720913475365213038270645482270281996326864897082584855527410858703244643193664707040616723572792476430500018855754260873245992908477089141328758528531682585399098064021397012221747835814689318787170687957363523626995397590710011750871272983520138520318875109209727218777105217612001082029603470142199763167530265865524732823414773052066592584135745951707003523793270664474571221560250130029911278346010602131597504275656013517259944588104058592637852948979706132286685309682391290690119136552895424138249313977602852805747727596239873434490533242263551195973270801256406650393031173746525437500171051589941660800605927699298124809745242931746292499379327810423915835758503986625299670002455166266556681148360829163101172394455018850319778048619222445693958469079357425937606779915147301510048029696071336140821956554333452106310072090745977069363850688184103265245607152536170701993908867367543913733930866725135832412961430400512940782538221225958253010213354940745548445759406946070417292172049550689581794017375102883026096027120168615246098352977131802042730133832348579064028758546619197706057663973304725126077350480176852088101607069695690616786698736212617823267664778383712246250535081234187496890993949898575899863668851592845580807239754631397912049135840725127940680377450028154602380160111704600328187425337259713052971349069313548000477991810161696549965360714414420794262034559340710508637733324999033741315699047409078205294299618982049320465925017460896717334675751751927691140338665072146666128707555314981645466391389274277142123356694605382022477873498956819346362586546156591621896924848067067665459427304436106952101664320230006228908213495575867859286130365450291129085011346720165056023611662655720390170771435291801251375453371774817616152070084141201664280051389318641000425796519690170999584747238237546377786828300132421510312022516511842299936712889100613410483606704790864221772415405918700936475293329883508576316722777295174263585029296673939376548565813046754428251119763020864079589578723299742678368971582443449013763846515838019538458175041309770936787310522356154414448741921666447892178181403346985490569323675703607906986078205383686527710034426738695024003402420659604757016272771707801763645189839361778735478538898531842846814670363222981924742813178626037616807884221290397080234094882917506092500380271478937221016769889669948450722422270267651926211679419086528209606429702465965136208993704588318405545976149440166380875871865265349837998813970705551904351558175412558501073706127914688971016138405294744252622387480457903855105694571632118544115295701015860609409437257243328599826532532546236516370591544116615052755189924467374874360496879337095423798464777711572717666796212681270282072799878659834489069438825526173043304654865926169914040038410854050000633391418580035878074747543971842998902101178048358573204408664357811743399261813071086817054428619541868655203491413722176560690447265563546584825949355318589872480582614330741928936251819137454688788123574233307460998792256566152420857757847147548066000238989801055614925943937001068406133330264690268917245013237937476910612647653052703604114119250777975599783006569775917737139128124758903303353633355477860644771522586441996099031926354822013421280918593417621832905898129495286907630418713659964957300284234468301553001614435883559678475091258576089007806058873395552162885420028259407775755367453085821913425484687284225207576467562440815806936987326290116511886394466805217488795948916764050820165641239429817162598323247437721761754240101495883708569382421952778152106317001382567643174555746974852640045909948292745269851316820267084319665986335752177277318799851858089821522728535733516605078471103169457965293158580206057369338765176636368656072426769612045303201689847577916397567859710075149883019928007642727605978912205377330263717357736211810099621775206767768623876232161692629049388306979465125806444007775607946603149475300797324705140779983559148695800841894163047500971593951839217570516024054623192247877049839929908065516505165478854334248369771794008413006837701879674623622251917603267890687242327072130864006571252469238243808225124239356880195066101745958344376919023639635767993562862643134079618494399382424333744479804754957900946314184338575224083652820017215285508346642482834098949913997926159815560374289759049231202407894222145877856273954639583647409416512171957718227512846926221293780116478921368355067564383925719938671392424336219657895191397630437509572622036153183261228216212030275023768683957996281473805451154729299342247743736522669214183943336945235223935217754937685481468724920133049297270330303860679804021384146137527618687341174537754596791995279193533564222082056684329620878836237891779311673426351933410281049441556219669079268772884465759354551505084094060618814096951012219497404205356504450364976171280769294861641094348346012833108695705204007269748649148581174748920687410381418105461538335014838017743064295459178176009419282449923551805379351262860274240413410189977685639932054167395780324075547843952478938749022579809359803863655272896761273240689928866438261563564231888945524376512049116158539836304189769484326925736991488420647286711832028461005812933222726755006491100504997876242121122883439464572752493234604446547133872336750726083950879844058262353445187665807804211736969197248184793050134281943798646070804908709962170880578832157540497034526904171991714907935952973331195641785012731827956197789913336859539148020075687648460333004383025786396076887910319972571240989065651776211599314571290939110358314261817702749883244086988154853663294268827780865839434571319458127507808658149792892795130995748953153358072166284429454738051781694417399887097787981926942991686107194544726730983376628458776194968561451078577650305640660441864794965655720866453762563815632434190418535309402865844732407728182986472739080436335392397147422959329859572395230000798918600368055005448082493380224344215168791259457381504042159407052373658793906301950064160121349365656560948071969286474024564739139306928094256824510810972578594616206753403220071501201856326578103607862678742609943957676603425630262629431935648585476768684177329947759520413162217531811403546549427086193705295621763317759243372885516493047936674254596811260060895140809858925779696977561824426672484987902051254108494739412690403103236802910264184260467405146295612691343884765800110795905960065728842148780749368965637361539819110112015195554761558890332172086773915999895679988893806532694445883628887458067809055661261106417976492360766033949427438716156432676044519515240794719394070359884828159557688841143917037488173747639850742396374260334362606652385662373700469059138162816132453253858878222624006614722293947746784537233890770039326255495930570115591018968358367575986795129674562459429699463343383378431291659045679007276883616474711902429971192291219433319211217736654137578451334595596614728889343930227904879221209025969312000185615446940260369189776211453105779192548194641657039091236351632600383284763497886724345762222103002614147649186211293761092062462509603686739312600492697756801094744601440061315385598883873409778372580902628401391912553263738870459803135448641180207242273153284312214973431469953523357025975060003720376038112236931629830851821085794569280341925383854349002009874727950736755899219956597145526641261449327556967294668802249779813373343631297390965320088267921531609746657861059403441844486330204530585358382308837637868833725645516671798617991415629610513240670191693692605179581656116705651628175859391675550699581725475377469906842607977250703829527008903430220368083325900174159689093331436579819784817613960933771379683970351182844821671091254136543720494597809424757665436085018781230927790933799779804525311168255741090048157001711597386014040941606786588243683890887270194415750181937598992290626661245078873000290487807295868448937383204229919771352143571370741527909975973191228288559352147872860089473751546238283172123780242235507115284983922032705010744220815423944775511174328328946127108007592857651174767473244801794189021094739075564344928974597482933236597319300658262254130753390575074858372478885573547313039822899101798463614139001582605418499562549042353052389273594772239055227178088352331064669361319546754970710038874926331208846516339913053861907693848099018675143016012190027615914765112716567006291395667997449760810778567212061751860354322670721526388328444864232021317084756089551376558173724751105135666819444547975515900865733038508198020024839017679648239427465598412021126496333563296691654982802737877461674885871784512038988297510615650420970148900465795201856674768099304100026881421958233686913058666803423302175508292905021603613217519019827840929642584190484183671089665427127086767614262005984608349034689542917150620174185404607277247348759217836880581566258716754586078139518266744817162672368185631999776236146634298853591136089725152491372469238113550972621737012463698266963320168716534271832367161346046532746683971689984240952952140523017108715415802414978881702823319271261039579527781516211562065471672069184394588056639253007592234624224075136571491256512749746578337028651465072854446327070016195364464886963722869439510364731132386829003283727390613669317735899321322538204564098504008763185536510541958202387657481399002024319432758597746830071299651249547974681449176895574788178407241118850971986366203144852268527258572472711788865603087695642600536900039944876424905350686491696495127891763460587509022176833173060410913737654860103270078089220729791438404341915632284081700337856124655843558829223763099726261172930970398091311409651508377843253189915152819928068947076094205359182289373129905472183493376255537224713114049483381790724255046546391088213903528466393229417139531669345235559514820169506402627908388452519364561697994074091079221448781141919733393824936027724112482224870676376105850785360898708686615410458997900070342235551671370420761145684093624826756959588861709004585609329211914655252831448320681699666783734382081433486444916227962007688939481152821065462716616243937628721593569026660457895628729067462541364456630039960364562819698473295284962802708140342466044054081009236675431076850072192739512192916750051838045844892456496601436704403601043193340988130111908794225417827133122558138779485156300799463786022667311669199571403468247672572291011119392290626928990848487078466256260330899654769003677132055868064033487408882577730211089308065047093332081220579786738787021237462637668802459745929600008954066824859615491576717354048669464877063021288960373284664237521875603537821087580967299864961359581238667754203024316366854048665287131465843150022410671223579554221944693734168596454891773573078717226564964983889286293288853634713336401723636218081222144737199891068701764469818385511256957503103149782168583861404371375416999442880539071655823147033597385078693236298251986120610789122581620875039099616021813878608551883478724242372128875531990572833826885551984812727473268216402273660810938859841779621347789297513107510459648233751142653730032018631885178604782846117146465334900109675479926009909914251640390839034757831266304729499066529520418761890341913565872558840615074974252897621830106976808959563614003404913530505247305737193569885366197539172276369782818856902275136115878358812218785996746829325958182108274227021709686274236141872749170886928980785325538936475597467677648447181505451676271098156987396744956726367093612279680998083383338471675059460654515631458490059495424249180604108325160338344822308699825598772594778291245504724823727237852831534115276291568849577608451172897568831508748710501700789644693831324433366342014561041416484210022666662974405855109079529526181812075257854523718028312670277226629384290311493890566282144813773606190596448981582704089082058588160371918470569246834675537911071565944621716388608020321819098482224358471805345785754396539680687541190857734415229676073942675345775635485041631939374616171656284708814012155126055384282230165108384322531016918263452035367450939927115669035839541372578381276592701580134629293740980535675365394681723021382482807000481922581246022360160546643193901734006541730073295710273538111903556104339352787949259991094649903790950309662594247908702113220975447319574474423383748470660854147649349479129634099992090545689407458442900534603721582849577133386882090901163295271286889351682457366302178419356296745262338736558950148577394214087904091054854394037149764719825061724530777774915203345055943710385781558628102596446409649658439783155865864170394926134898525379522431493490214241771964507335585092861672301249880301572415478113032526345463555611543528440167992794788685126760771092970281691800187832246203887348877900934131388746679583624295201863486772453067710277381023971073072331003696850518852514364772799236607414039967993036520615735467795870693838001934673964023777814874204818087697509394290342980239028592728385739294764694695615240860906917885101004068858290491653433627901248203447816586384551273784719724605109858310950576075455961612071819416026617966274353332118915589196564994029620168014243930252342845757016360308775123006728148646127042042198253574215691024213353685429034715820927686148168017840590438860513541548425441441028612730148162134497323500780021834493894923731376984483922637520277786058654247007309127375327170171706574468162135017678044581810455634858680578763815306322185421905364260628720073606122875930725456294887092156311694624902208306357338759730897457509953258788465987786228445461370664721333744042508820642874156666557191740887336503780197835706468584701149554082375278749622121900764685584325357626678678256691110010110014473636848754789960218918864716827660916863536952566432041626142379392278808781708914826539248531428248213108647080200703672544222890628740235650917526189492038303723038165444149834265253985470261511065819719899317942095149569294196470584144110941097365987218240267293421236518585475933432470275774744638236519834784890416078851052045745785246893329963690225961714941852243899576846316743564133141631222372873922119897870857276762013003160712183601477235100670804071340556008244468909040127576416148014250975322520179899421616828838615003982862140090234199937296029775568299275614259074748412374542040132173062023559449181361495359633897278391477818436200168351071654912279559631338017682520129168915405502011133648048409131995318630146581243140326264458793263593950119804554917545970197553241090162061605507240849747473602505204507160571991955957134792188465282100181902376403179648593261225342984453821438313059635787193793339204502227841122171559635945554100008733775084227852587718054787172418962674123827114421458479848658702537382739435329727708560828103638991381704865330791349616774078859738768171087919343142815086421773618613613846244600368786418129016037274521245540748281744141838193929240520501580347930834656539390020244276450303746616772634379623310337935869351858928672876123081889079169525764942379064040289215058495377072613509048988466678873468234614216790540711618996509704361520551570777091231486929703554354219659484286625196689742665575454353941360270216333630195997247946643602346699306390054822656799116995829861116214763128399752928137961141428563391577869894902918608383614524896046077407788932773684668549413230508226357170573905498306198195302169405276598191205600430768440389783520135654154532403250448663523485924770057504240229876296258340960612035674221005118935363785901844067328866606463728588650611856107553626446986872831619161077229525688296530801946282870345768526617698119733945090714827386967700619535573953024459615156913718883797030454097635076957839865281020453448821857637066782221321495043641239595740205573494423242845799856293627724188210087844709652972010268905327045536708571311790597807377607654234883267965872215861615035081274571457250518299401891836372429403620649003417356717580458906946098750831529688499780073816777246701762924245025675367130292512150164785614869802984902426410233506213445668673125151319990863442892898125661570375709900702352268478332686281459342252184801621173221733371780996591344307438426333173226165796707828865821828428363119014344544254785426022184527517284778423765007207692656942230499555750974977589226287887316994999729237183639587309848850133314030448478253922814258034306883474947231201629223018048487048955823742361727343617262870529371494513138091324384667809342220877477505101375263125227172053937568966199897923593461681764645443848589670721662262901744449567700698999577353969411458375908206488879269695288623037439401479770393544887058925686082783273561153538200693218944318332709299242814063722871098003813467067118640958038668391356074939468402703870294631599029873003153738901900973817060758686542587570119703662223021725652863309493659786869468084150958605678234785353676209972559109966749129458003575984050050273320520205219898424858662687611279983488117288730662986731175841093953983320429488526201257310640359905660832381371090024506230775076296457558114447107541986924272304928461261688702513472332534664120185456694754566373765975383269780873628738605709246294130102341986774622890181864601159065256419003719658011904875203740879084157176347673052399970501100452545236220777786365174603269495918753525128520649773790192615428901242010339598929761868631457074525292275565413729941461937191813450682279690924067473833005933532211716555728946733721222003634920675638561748668396916593017801841587898501220666575480122725211988724505694620905307339690145459998566741534272892587234433583004262538177074645323904324726723605780622651206279360330453357496313781221630770191746367937189555728497175935160668010286198850529355408914297623288943106754842121713688251998932884089013413981695362851366084872416214726272154221821472361124781048074916649914734428355698951853820255023131419583115788615776116435650736714675049693935030365236544004152316328447440869824501564834529463128125515144488764931774114035532031375592444100152577579688438847589023363539567479731359144546215977902145579641981572394807890735618914697489822321734660059936264123369763261697086409492720761749360501197490338548328871144789449316943461507635779769430286962083897196841159441597776333373006899125087058730329731063322720326574162409208598795883576935867338197763751855431180741321394439653768552082532579696935255371028236987211676093955060397152661207721989743155190071869546681454883944513463779167900952691999552461156524225255543396958880935883879213371066064815087406689813142242539978129824987131960100148594233021088410390237520382648624669799446165736888915313287928364407072162030357036838975304928949247152108003979012391784833718732335792508734113494951473401390970687381164983682526156409253111476095615867344143233247293723286314237121287309343314635469984456251059623216339166259741746086724153028733195949810706361060237740063389362410993396564671026145599763747765476413257563203244931696870929964444620540355645868502936549266697038910447657353124098617844580943312725142038904195494828189662577158642021701213129348101712251942369539135724881894206385019349613599511827212535550737037112767576374085937070590333005764647721234864774130650138042177750385108334775973257209844194643386522892544201963204942092116781149570271732988932167582348625841647646799363921641815992965993302595228592374984858291179871380427626285178062643135159356864715251900266718116056955362106765169199360184227255165292638369991849920947244929889542685613516827518283547591559049403993669266923428374853842292444535310646321710697088451226421557240163481515269974017863491364659689383336487560706283028925984127790132869777429272311974132258937555720135356607201708423800026184725391006927473393620479897252366053422233476927412780992883408728256128244784152284977779507639906735041325343929324941845743139444210559754212096081512280242016078938418041805275369925396903444059564485155736781624474209889085006440400448459915330426925974036397478643038964303873172608675476426113469532950886334967596151002251017426160724238896738209634844814872309780701228925702622506919430025311442332454186962566990439892232763197531506180881575925756651477723621590959516442923555264511830116545388111456942787251744106853692752994508561839448559458478940275601618187014504012474018496558211657081061369557397775157208775764471974872927169524998254728361672919184561446237707194355570648632515121296331687985585613702853720036975989566477310591629092737761457923262511035611872769318921139006748866009225677247257759830707826376521432540232954029277571837542946124387018927749659608343125757251475900196570118192178857059206415703666271666935922894549136199582881743781386706177944078699635663531876432232663148231731575205937218360135182746302825292735878033675410547343376985118640954542533678225269926631329079399395528886837613058492117618575341065106024379035423661911018138785173463863574646596233867196614368293712302865460868826607011676917685766132348329515373380354228974824982482570102686300243111581720520056006727880777839594443331332765066573130857529414952798031777984773646313149213460668901607674584734655352693017211048224868255451341274572409144149176085741432899012884887157589877364818926141400314403124359169219572798571693799074852997164296874593791370772745816077124988000517154229274983680949353846058206823982320645090944082536586787962216803573527936690678957543940588361761809422874702819628970488808869924582200825549060790530936896452048688743489205202212873127536375224084141227343895998713473814878380877418957000886162081745021417445682332960375336735577581821230759811073544778159644429910552403517927052091465668396326243879510668326655580976530551610154800010124783237024447441963627565490621609617387327917491835948152197991271896545757571333895479327567313223395194065960238187071927926660905760432955789235099521880033416736003602411018472295064375111819029872616675634118228147591216806089838877823757210529176444158694431512147016888837234210502062965902068108928348619918901624627019350329083317263612149552116029438411494708885252424537300886330694348885814350344963667292861881136742047645489097329226144892889222597047689367111583533760859404379578054688059970534480409492128443278307367761627228343986035816140007627834896214484722763330831825990867563603043722110817250711359535665159722080157667497962745217169045707757999611784698561206886312569911982171542693748826160735473571170547390893816388294970469841617187835862324839855424131629398504146323949871145653377197774074505145633211157199016665293049326784618037874248179601406872267056233229041770736782292443895213080798923981078935001626859914791467446768151895248994229062204607197762764779127615606020599454198856266159901991352625637097212001599477090263481836565570246520658175758188059262595272997497093874714507149389714635027724411206824971179454568617080315185413504970158295807774972409457619184040736056936860874264149371556733151792641983489675530118746372493558401377917974655309771227909533817684886730486888064002939890575642672852429335809486255263725492171940358259143844723429220106896222560678017985121852701440759146390433127831334064492376770113695580961946857411805761407364998534475145512258404009967412656096119638361470978304563006160398255944422113670190873407216314636970552358170119961762977567723318816406029989598296584900808400559603186442637516085034627963483325218449430122701016248645508475931217985310550269155763475991239047659070994889684086324034889143464462889161625866476892677052072621761876835256852291594316711918677548502614560895765202130727697815537872746881492380341545238095800514938367100396633484837463735786546519930995645598946186093668820052533485451913228770335301164058234861003278790479013006909092038192090444566991634540731174596267064160969008402499540132573988556676645668003947320729552016882866752636139845141556107489678968956838333957054349203817770665439225277419833266626829676482216546993614425523103211004917960884103435850566254629098248223853768733919227822348991949704628767872869180173741095780320442029068186447089140421632897473153721137900219858394477337597381343343876698862143108443345306181196546217439129358766612249085842119697926824065040592746199275467448522914388392110261469792699011232082850842434599167656954151297025879707708117351335517946020031610941148286817810205261098473312224059757228282877227548749373994561489708924746114180792930253973623718545206209487786462399399724336192588636054355125346424909393606094320792870426127061559304547261942416297520761317494703044203250563430596752244055811621360376380981280569797188829306361522569244197493913860011295700128249149488312039412387599765137021331691663913863084684266713525031415376106997615839715925863858504680087260741995334003785548344453380589886250780969089434371634284836902623667254475710968857784260505392246095162324252288462991857648241134731798559879964078734119274501359992159943256371366037293901953361687689576426502275905174714625561799716023842459604968371435174147678419866402468151179563848494548870094357806929835370417875995337576080828416621290427592698023189310271738532628853692637150144496293639550254879025554067324508587854522505664530826424862241482047583009113200283007218774324497149245374620502944551455266535285297237511033099720253410024250463084392569167404673909181524326516018195271892287284837466524108753713733266962689184468075472940442884863008055270396735629570866379767750823431931312043213012119464958203480032813744254914642440094157363215004019655753972695294209503263142795270907575872329417686759327424678548243835321028862922164905783540451206460079987306881104663374439591523838364822296309645900952692583871989338810558961705254269161119983345582877871228175183051730534580319080965243263142974418564349512777119453707420684004298578168625945207573406113995585957133463301531364649088782810502060533685411623386021921307717885264194550798580050138010399735506956123438173707430844275642696751236498089508379857889324634561171698606602989571952136017811473741264082304863184534860343812858658954222504659920198400041451032048361243935277860169953679924724961989801330505651900646998108352944992932397713426944147901554092874581114821538433457790878736658683586454181946014215118738838845345825661567487159171829562904600420856163840848414551002781890433916054742316992521598152783252347130584525611508491225572102959666275921655910541502484040777429071268596281379974210111883485237539422741779466657181672834510675079011636190299957677025770069490788069822229215981365799962949893774534152360150558309289933577861154026250575515397648433217590573852788362639228798239369642090487969043514099345850029335067455510183437174519373554197814386965065567622301359825080971161862293441599658393707965959885475455079422761191587160870821455731538837648209419064686491941768759192664672249477706062059875305217100834096031627046312155350886188270521469032136388721202103086379058262346252362807339369324209009744378852499232912716642817626215490227025012795958519852346537513502951198968198692162728738483555377578508772342823089784615103477201384520517806492595200554142426345542578307886462070010316977128365744794846819710934824727160254416217096233545987096636509022856932802585723289600919839647528440069304216449344958451779094021558707136600076042173169898490197031350111433521059398595363640059126241577600484616323845733097907287609473446111081458370469690921672626581961815011739254881756598445774612175117697359375681764072122080459753544129816816166652344738742895268816204783792080095833473047511590186293579234044221875772597884621318250757683581372487204067194242689793035381448804937180964203700571118671561940962326569135737098004911954028019930541023845246031176770444613350695491986752357617254126222802501089053445333720920962351191967629087719360326493457847137451179102457950293891425763106837997692825686583200369493962674468902901778847915511653856087014349479870677668852764855825194906117619371294023949939371232656083491280001039116006873996002248683056118950000901859528064101183362968593363236366282844598034320444722800663424816281608216643011908098862592988715138801570554485908376741109612272501043299195106863301543248287632974983998836591777538822730838558766222650527355480773420569477838356271419093606873346537330141717086938773102363502252490604288712974249144881057921292131300207019984299432420903729640428454398487325991106878234071540883545283642740656520825482810806865630078016926558877978516215935172203384458643402463532012130106730123578571081673427870928347643897523230288054974517144479650151103627499181484757092308199477256874242705573948765114954540657729973443561130949189509876815468795555387073647693378749352730356742766205438584178586218137736437101884481705598922291239256555143257945334552114543666760866661523761044306447724501861859610737440253876257825906034590041450793762941311674349538998882854141251495663407935335394893874686747563028784284818626667877643959130725027568293510800049400469759392382738153987854053035613211254598722432246029779224968284071840623964815899447407730874438291933487416138291804756884634808236671824452430806446336922589095377865938546058959961597404839034964401935677587237077288431337065130880567845980522293555068454021230235872354928252158306975784938566775705129193774525564739834232742513069248758991321791296840874670973631272358044952066491869108355226466882141488276327756997737989903182096805982966065473660462378494116911210842787668735781624533023140291397758492132694743783868552618829586973180366166724834687852497828678170474994700613106650665426268076886529712143919459450788230421338714055810365521659356136728904682428944897140717607515867967940676032726462434312636980986188347407150543214121144149406857320710433591218458069211953949860504680531956694355982577370943200958284028968161598049894135528207687757947077582640873431383866032345441718563089980437348633749568348015762391156087326619089110701701628340572660307505310330016191525901652662581330697295476491378094120846704420245816355529965111369518573251724164267497463021041148819278079480079446039999540293787522783767107389461959690898304937792344983066664219989446971232335258471794345933334429157179486656609287944117625946495987163042395531363576779439176367709441352338741881567327875174135948911459363238293140364623221847511140554724903352576958149081398364422028603773723709165720117348625975319747159085890480494354400774855898611199372828681208750855579936497922249124289669363848301457348452675232097546874271319162093742609169450049634115469523075403943567071622229747410323198437216502826237280919429729584771775021860688819904520642521593922975665891618312294650338753023006083764820892964419589243877688508045881929561207816301750371347120726413699703746039033388345928359870372312196908430940969379930236857359450875585477443303409867377125898137511894479338085857410155422002574601365434467152703424563976398337772981922281833305114357943025245831007081148197194457852006109783953926487567575661811806994662616613586936406103544559828952355226931164153289944306140078102560356867691651412925152969054691892418331237388934275211142148492404207663831139602071460063337722391402026496399931061245048185948039543661271376188357877747923392578760384089955895000236694022129484083083127859813133018308573662452287640242121343982541113621683714518057849969967679544589173963308607026037586554313583897067305212808614887315242566701919242659044491561914197648129171678044367593868012798399650208922206438835460850861807688454874751326820367358472205539744737017386451866851309470155556776812657049717582846411366208391029080162674330208173702066715225199761879418212334590633846723435976457652330404269808702159269352504144121294631258104393397041281448261960518170918535332139509575191379594294021559812020444043126418279567433610086385158664813641808108663023871715746011671328114796759455891892678738881189886988460207654202798668562844618492000249913615126533012996387537343883416131036151361716130193391443365554131840511125549545378799115036807721948870508200589904106278772852054661323536967643175830161161443327441301614780058748322754667534714348430112967941407202258575946524423381165361454465633315805074185838005880828575435980730614241867158948681165099738187162809515901688338356607731214476029807799425022363064552920731488146128523285227607715184102303908879163014719940161204367493665193595296843642993322882431537884738310459523798585575481032747021292515868643610924937739200506379110592164176146503355504139106171221447863225661385509844597371061994201358600836217324086937277332195832664495542060058212836513658571529379928775217513932718752084102244653439951877670313660559593195989548660889497422795903066513757765750544606615854058105732749865653225271648266838350755955726304552322872093995376670803214572581194974232283736304918242028778828526407426186137690438346881394578026594644105150733790269630693202791158734963190889653896327661881213185681691636122534613677462862021603448586815818641759559324491943812255025436702164622599446249353161426593361194505190260672787001213583813576424111629651714996871660631566428580438874150925723577474657933269567507502558229751460520804954056896846664601580855344422583116234226882993616889784965971612649695871515000096554002728201698297578472268432253470311155519578828924107921884972680184639248254870681820599507214933504249872545517333983924828055057078720711095084525499956127463218947688160582551423415081302690416469353623743218780344222444959370608247181326950572387229713607077871922649641643913156155288424546563900346884045185204769559121511042690227283275301458832424954772829616748373774152914049651923817179070071032014720977557330046587848629616281513946865554696990642610209671918425361769945653463025534192522045912641873236987550340818194727249216788040279545805744798134435986269760718952145793580854042090991840328388092568640685553323535503709221360639748430403502414282120397452642188817988856663214521748841471742698712926944254026115562610345348661518415708425592303131968979546327402739286216979819177671474791217367995621940351750407376034229411718772907042868789851740154585412434726287165166398835181481235552856862144276713550925894321662713192744152228329222767808282028385615460134352015343527389326229976880288791877349207860070644411629051635242149749717850763388841369851285751063520263707303762202054445304349505376372284922726941088174943549328478396020921354936435313371755411552423237164759035998191338081323005463571890691791589411327642400987945563299836826625011884661142118159005877583731926606899050683743547954774944840868183371376007279213401915563419629105892434202234579139683157066288314589474643882939058330139139527427746643874005185239637000688100455750976189983734126070942461147715487768437378914925922134913828478487107245252099216675349453436768820972852549618397818516429850908004659862028446836785159195324932337343867776414452718906366084966811401405992300701152436056630198959628242168973467628591560465112707442923209229253839959140452450312856713616916838462891977423270556155967731044207570825872657325751064475394107200275075446043734202996312443088318692874961205643730156318931659718695386646064465621361733489000253026269788260588799619554320907192475607964936277868558644597537487669669913712502827501152271653111122052860713833870906327723070760428866152092381064207614567548586029004027244529455867727505124887698048929926529458150665543950476784144650330039198461026391867472462790757946149829230042223233086440224191364853150118636177207974885562815272431398171190280005381222493563464175190394791801220656437182043823097506621922043513284134698212585711325653231533594421321139278141382279772500784569642308896444060270129003978847688175690256372694881716669161923371852018645027859610654929855401303893847219147730621241808080726269844802152115607026045041896186434684686577770097219867127066913236635780410681613919010730171563255394529884617281825123598090707444342778861772682797853994947867243395956830655410423469372710337896707605278260800960564967540358803094973615399433583624485489474155240529433804195683683145786172557459980997973104341127317329463583852621826365093949329240223565759647462281193872471651374828616513433668538287336222994475775084937939861195573988486976566248594793887053202706253014573793236230058140886256292621241796551188865798669962271373720476212490076673772207641323812777870711470332350552860743394316521567114135254269738232216598711162412130046871394480854686948035079789065473092994701801078736903577129881570743345038140887868357440607977533753705122598606418395949424991464322121216849130836930570281278171976985597290869051718345614362858432187470359069156126163653241940696881184081400838655901465143190929767373991056511988046297623599101177258837299620888306105344123528628181442453513872520499998434422460535908111631118306466462387451415346963673795314906095806980287944117082194946845123663473967208708197526495012064624888524839897804280174063663978120203373634049391559122431554803962670898681533183241303120785625795765074771657790511394246142008722939270389967842847208635668359413336678239942700378666340860527182117177245260411046338842390406725164290783595504916635352261093394747735402949371296279565882257868260142689023890760840545547254015222637520505958660506531545209445545757408342774563474234331041896682228852661898989281494244932174778021615769796879204293332560606876478243420880596985218389305858507389417189656425133830151413814504392303945474436162775366076538306355339534755373048405465418354501324723804066399956486353121496517106142331237399753448848604780303491125585214959763797362968265067720863137384048467724380088857436409385972503353364829478038730202578161862550277483075477362914629948889084960536028897561495637617739614340505690154290538504657292667498597379029582442447442728101187360984601217042097356305580416182051262370444441868411856757688734112848947002287231276842798409522704750447177614850475959490047266570249110945457351376674099326881179649707416126954668045105210080758119519046945657647230138526885665953228948310777661072767793800802984291738793509867736091387057791105084260317169154940019911763548433877668331453437732754514030428993842183929925880965043413881614323764690055975107466929963485325854253924114585251876641092897841278105421929734223845325637977925675177922375641764017502271975984911093426463301145721340786611834656690739521778281308564144000124163190957855359977263046243315523501904378320960717768207341384643797900744928091845000004906695096573386708099995452870581401774900440705143952714161983854124978890611321194834202767845041988677592749303543696624383574998766354221778133104088451834343351455646342607404160170970928815365282873893679395261908960973542984114299117128375038758276596119950191067430418359733772052312735473434052995895594469412268808651442810057410711093121346527013144907689833514313996505934510092392114226042213459633381653622630250555623624168735799194084221466456717676149376862849724022514940134727887840539831439960515685557581969761602698699761242792075306003236302977434682120650351103288296268796633829047973104442065753971568689317494045009788702232320110038895018902787510968145446520385526969895380734850390938039313916809831371121558082872857189701549264041278784807670763112337711635776953730826636235664186207171981083494935775533629421255020210319323556145989909790087059533470547986625206905815719065015046608791521455699713109295142627306005739800483689077300063786423016653792074047618035808728546415678257404703011805957779841279734452408854226335009150919060482285112273460403976666762013982533807076140420203622085299634716836174334565650123683115916671254791996452957556246862121984068381535950511432037710419560036982305019946623296064357030797873620163230486114908297412228816026164798620908091313651388218066020180256719583245007676579062745430343171046639794929684080332453121140930183291203166574679090823500992012226348575899198031334431156189511198657348498662305816601258637424468197850259828439342262886658913441530979304595286675052005376273320059004271425539053237619642782338246214325746174866534309443466790865116040621382041122596606956395023177702078831859763436543536652570424846311453339890683681935026282144121293187741979767840638746212004982795582086758165791741500557128502844586863155103872983375150836445518266711365138451973910406866410509299250993160191031597640521378172722027182217776069998278436185186617530534093781241067601222162917628216064836175590839779391867820282186376848931814672095195672513406061957779837729195727666761217084360729745427942795071359956622184522681385601228711281269811672817060036135136244577688634046583695062489692371713805782413285068136350191606323841840594422135767067047539187343943874638242690720390191473987084617637372965504873494098061644178045041751026536828327095335918359570131660099268374447219907369174567698207464113721541904828701192205832993718239911130554949292700378824649864938954443969804565132682912158116482130392673355135160199015404653634086978219276408214062621717689072239000713920868850930387956949588135571784277088764364456203388541569002376116299248183043155360274205841852772334015746195183866045028530999040201183875572561877202804697085070248512726704815192976445205851684098574150696566785271023004532901363538741565045579665079157272087262197925222443161880643521280083855351537223053427447012173513600353488910747204168176694128766945316370900804322543542930417560531887138350878631659863711927618649592045424399865082655044906505993939833749092247499495628496356920827674801028986646232626065293200380171986150222763892780631168744207366959201378132599643000472646581842155676261737839335366843148544697925211264070670608774181942581861996856462251917248119849847574076937577788420445327773533407940917890838329592526230958283780974493383303651911886929050550341619605813458446331033313302833383585657755550082854362389708893733456264513202324136090988740992835778946221489793499980292572260267474286498608527666551358458956935154725437555939338560993396665967571996042745576014383624845172226766569714759740923512976072125791394207253856601268077620749305550789860423488202021413043321532513035804790653885569383875294152801205652045228587766996187505735409980454912003515782626826642074479637405421835081205230839226632607013810148919927372400744796901630835043087334502198998030403222136467841745682009310700140959249690978079666170034949148870399253427672373003865998496166445642535508027802673691227115059595713383373005702923126394814017431234624199041017930127319181195958614012250689004394924353335438660920162489218013251658882900950929277652325112181059531056623906233110889763022551181757408948579460176602623717532717852487312331794923245004723616832051036605255228722419124067372582959509271541794450474810711198454902852890041419853942001886415192050430887008590984369404984508392180492635672545645828055805921841820387801959259273593306989080256545906664617093824487373306052848422170607507178830810244930150874426769605561896582687378157756376279722984552517960629625282356231284820320595529966809303221564417515161670874520665930821777119173115886690090165376116727994387217300760117089646209260177391838130438309083261785799287766822440667861140642042349950417941278372842310309574244003036965067266602095426754677655185695956438650035206584576534188806368548728980548325173427519798881493038792860199988362143965098747331076567664245414811022962432138934086274953124887097594892683287457411612756987798984514470502596032733189440156582355327733682799417577404210067383081468456070872742123602922677066136253273956851994613141894989985533557693977811688328873297908079020204029118672249865748110503732618523283291238019019953824553462942448542295021043246124324206350211544561121688828332682324457611822326077591589111571841669266490900036612481249307916152810929720857956240683206620049585041826937731663665414626508556670010530725100794001870072216585076428463147436943872138505210059151233645431015571695574503806177619533980889173865456444828781559456713250801447332712094420462875182739300687508182592203071792380495093973447628927081918832595798553232900999869168947350138781400582100760225033903406193956990636428116472727166252319045430647069097186505999249201554357002179717675638757664757350385717522384633613403746548611712018870823064473960656365146488973958392475943601812435554095739154492449493046151820678247721058623317234548271759561217013103410061086419894254001607369360662001248154937726682859326558092440696945612013453641629963661520909410282778035765209324647865795203390772023492368115744257839891662278081606755056054241721870972906990345497579473889101366896362830996321489295469210014332481442722224624197255189284360185059111671836933090772103459747235770581642321814958101505297449048929681935215444423760394839851023943077909753562794189903272024110607357791682584010923270552649103626916745380709615484167789633986045072399844486647494333065354437915437710925220555065709699149907997847234338951263886192959308940460233043422017785925816775538846781765323078962397641794199034220408908370264149784843449877181119612688574479556558375526301423902979433951674441598825035850416720035665321103811591314049620783848274396767020952599475388518544814193304303989417647718851467961447275695852626853504663091130390700088866788818903057280888523446026917183746106838812712189777402720921999942580157953424762444893472697056118545601562420286198060449455295196473885216749934637378300747547047930280642551441127494832761021645852580770931021266287831194238138088667252092046346583758748067576327559310361221927360694061517281804432040933840058609353264039506475992754033545290077197956489233441037448086457107957604462862244098183841029227238995379601407271914114871110127827858509787568107635800318872697985852216385938354395931364329013436100243651725251715121241410444339923015986495850072653467058425985361859779583730861083671151764960969954336507206271134585331139136388018089796750404366494950968476160069176144261691037535287163440757564010573992562816814666677834204038848669722876002019803470611863174880005863395270278589389268398326828489808535602898092753638054497895971943557873151582123890418001206154920550654689492105592222468138179044323541281742381668718009193967557419069368123652714884126837485944216380912766423284025368189824229851636614646359951778520420734003793909017462475986406228670827975136035769753127375090887298647445424109456626894040412327261558432885876825814178774244810513594797927861264643118618613861559967745367285709870596508547955079133503596259832383174822952526086598564139483630431675139147190905855276162873137081369466166017053941908493556207930294627594355714151920960047591718175084811981647382094713594092185802949319555696144393104927836734374260463170781831828773618005949327890335198833051618378919442952079466449755260939021987760255756407936603241868021230244842859904298324897512397594324451701280965135062749343298335513361846377483028555678853559646600239631356979423863121793906838279073499457987607720401324068074364883842146138271172761901740825727191647689996938980576866738235836892531513863985603081592609566390366442315236814607920874598312920556113142506407530244911324157921268441387858515359877167416946467138064869235329545696847084512567266672337737939291860803648764670643772099522442710562604528809159628640336534445932443678840522913869118952932283489332869827559082659954283617267916443365792743782120067667570705194357832178980830298697676522297344735402115046053375315378903870448148570013007661752843482154707537156632744457633557846641777563027753406609488547261900223797567590039140071756315350874488019630249892834302244664231926811086334478590203321705342007371741182296744624759200188884786520170107771021500193108833599422159485206929414606665205875096447976826575444900688866123298992535234958253134977560745306568667130028699094038776718021921355913205117991018222004311475849368747244946071655637519672987811768731817726416002831470245643842047521957198805868396708335141386437832122003780904271969674690705475097174928226658606823301874887872332933695868327461152360587555655251665359453129344760756412319789916742962095145113427378633092835539061786329504728666864143493805677311089276274246685299344500712684890102748423692136484737584333022449605659158008189377865240511658623803513694628833170608338824538713551696100352252961414341724123786440031071532908237190090884901354221813047523983325806449759836174647006139132870952741830903179837236422203865555118162969783486489917446136378105425333206447356146859987170201539379831451179132690642841259238292803090554563974586053309605805985077619680435027639800991818131040150548162299331295841311346735741324139108460140059811083257400732585770584569842563963710374356149720229204808477210400564415830809849793540363768874675415140431476065986891419205757860531200293769486803672498067733672832498815174847519582357287789586103801432047347882272117079365175695301743411186521002791470525163056314069618874614598013840333021564710256684819908204898113478058886734673463083415568401338439725863050696308728916356367731967623055909081308940683664584921921449273939058941628848019697681358267726518309164248293978917419938722069061459402743601235449833529756066483045991560192334821381535559509481078785403236922409725936609465408227267308182274569129686613892270738513857050882518165371173351548442166493713107496401334372528562971240574915281016303057747002281131687092165998654540484321730208843556764539154054534363917657402856097434241941946410872106590302232000566815409886989559334633849502184492404762235079964282585635238985130383857120142928983980505134364072974189306671022401896905143448002513944530238512122840314462320135242503305433759656594087671326817327150113439363090500845073991605611434684099342623981585419095280300043530669384051924602540517303085192768857652245001550574897611250575183956157761479161867874118254379107570552404974613190478411492213480200627044210611429755538016019126821378487878516804385164422725431977449629121090286462087458577047008300703561031210170983344903711707015929659686579476826681239807968803631598332309973577789343609234970809767288634328771404685841547790878130040783128230331574285254044354161765137581051723786755972032787699542605898706547464468165414875050224430505694987049269754190686497291936818511421941916818899974524116951829529535113826533962286141381001016684633650432884134122447796849055947615139345455098008860206473670171038371019003084104567059683848599388169840623446345372479395412893964091602888215123831077414972879360583134532699985453168760561519756115869950589071113257144717113931723622098362069810433859778318880766311266122784262080461217113590058125229817461464511161958491864240383693233387553879612360007359797775194653360652614927103678971139482377657450070829532194890651079006876868435351509475507112982721468857477149625457752119640093860409836455354045323378033910902322905208386555926299572353712544788508677085165598509529381235748945261677709333217041063222884117472531161223553186270918574943408388498271685947843944517142056700102641594014225868048642006647751588409707654132053574616449307239391599871982080331830259163239805610418567713497610911926415107355345841274896204617779933849132940970614390838377023763358851022575737388836616276410016738358343506781911771059731020517166181344947208116053438536318426547885250000761024181751460285563432095257427972267558475533621694375592023678560624200355091784040764328793083154035835320357213952629921765644685335515321331667649435665444914073141314033117761636401090812268581204860249977844167487064798532973197825895999273183604089302214029705393249603197988280293488709359193566294226231582851555458414486214705610362616119696311748885420330657191688767605359295578607938986969076426548455188441354687629238529520016828222134616652862627109037026092838257459313753522196786273474250980355324225460971342577485571081153808131437620333758072775763788474698315147280999230752920791587742783655769226844359017470140870643663902747327797525724586900287588811945760439794074532003295244027714920345050553217904720870463333086618387395844766774817755783987314338768236565430000036202941653894311315793553923629820515227385744127575642681877825468642878890511640962726389555323896341477408218833724884374106483004278720084319807034236101683364483648006270260009163276795517180082745028924644509521074141053371556533763658049559527864055102888434743165863258103067726271868181214968057770548753217553956089787754105969278153008892403163044342603295357880155141728317282919828625605182409707799679606170540424109919694596859123627280966260356660677918766040103970987115751830756158712269601939966316652444482685528077702163530932087033092741934195358157919734685652560209591524991332521417634906719099568746472797817687570470477720948696874718810211656731622448075303912497441968281413469755687267685869183993079360948933829570186840685826279616343405894910305367125272871566687342253891738767613455769902406733981969480264150624955272490684861596463473105573951122191578330161045647212578966113497923840548804274440137098426510050212456889746266447567233398957937381239739699756708223477586565336160619083881603020878542020670752669428478951093558269426820660807599919327250407066104233899020932765794402405653162167251439560620122172342670443616251787941640472285901001927714479215474250653172846630304861569011781412367146518328226253359996829603244756546233670387796248487208702862697664076179134651630705171306769367242807775651792507976915406344472470623946974755040250415057809464523106751791415084104360246012198540029273343183978705706089235315744876477367498940630650549404816882338900743702787874203121696940023076912815212665776307054522387193173665957757284575389682464133092535005852361816654489691433582312116360215705409621892258084362815886318449035693725890072872239524083282084645203314385825416064063180317886322542071897494104251350485148463859865831951596494045124650860819078991635792619569381008773650812836617780935987211841064632518980129002562652234050456501319532774158612365946281292137721309092455835674179083056431559313286397853812934637654590106494514584394264860352145056299095721497954232435439894862630481257200994577674127561347130248279857942375441837590122088755797769804018152840389988145141992037881804369064077375417214388902763594924328688423004376872032348967361728128545081045009990081026799434316310609681719985920783588366999793503691205386391782940298271055922151613257124858634228324656218012081097909278697346869332378693734819554994710979139072270525647626226010449339333492188915651622422833310505686333196555987950702422374405572389316339664099817679023209245321399816929003474011036973972348159897607506439454380207402766800583888392317001481094154653781948186553056073606853203367057135053385741194164626831339663727124861363332742365261197476255457579486326610905558031775328818022264887714840354015995917637807103531032317772813773927349397068898862825492152497213981381274547515170079706619593587938385879869032812525890625145332918099934676993416875676988234758087927387254428273596409334038552879223984800555598998537607538126973631968238715490965535542085648079198647966218790368744037221992331482037535515084466139634273444022451911155311659221888626111651821635295949661042659984403846122816383002801425292318779953759201485326994391192824169298395302333725921518165262646133956673850371702817311572449381909511041671632970176579239613646291670736424123996489657911406579224393063050789751469930726235255629015336223216298351424358232906211350255397338481149410778780218127685380918987337279600407112279351249041510308273198814122732267760908044478196551164689298569672885152396330876573857577368790873922396959908262160013642189571092606401811388984723327035420733466879601966525437267823153019363417022365814921695783145714376114458838449267350379322886337597842393727528622558366913813952715038384668878741817218991220265228384244275073447747158365158827674263237042363643896209938914534649478592444010327526855177506676012881676362186306458799248844148708055790119954108127900060140244908526007702717635979966931110620742167270435674215506016146769688085272092330023665764692707925737304038818509343353076597487252155646040672757838434768938738986256862363943068340326657713351748336682719133379111192875088367635706334658325933312112065865436909871312977410465034660816952750725836761149104776239710500001603496074674738465207609370235281795542946567777805533834979875719009939548212018992124330808747241285772565265699247604894800271029231114610422872154946116574030660688461653718268715514543840871747115712634080495425753484225285161114846373195542969185659598884652219183460611239649509497818229054400852461607569165352280838762541835698175097303737712634753324172104127858298044596311230329522975445106917913036787933306858489927657747636028978944065115162510224917304172644190355902371853011094154174987979699883653044323066433038205237869809555134072762452522874608218012973637214628544026344107990937897087572012188899779659505531091713674499989005760268115644724554199051409095255630981529073513904339823839782113088842726349466696718350118760881260683430899896300078743205344314156630098841266422792358545022545644035241248278874174847412975592195455282273215349275033844976960450081875938976728856353441444004176455948782622280588322770157626580738844412373388760657211256157382115428707711046989412102435979045120674993137850515251439992767920698501141114372202272334363573587043160043103260264598329764353132147477025891751891555605041388259415077460132086922868233783385522446368967759446158291162652222339917444778830168063293035938527760246121959856795717521876355783267647553444843286568637458522258237771012700175075127755519729281957872217607531449024589799570564884696963030951119648682072921554241256846439624018193682494625352851171549966293981917485740691093590047291084428919410107904218008693524255596596343552822161153425752417264894337796929220767106371074251858593746710141716923657590115216471921163888559271370623147809213458392662882768048294416877042619349502276423127548464874515997346330856903355358969551137663379967860690976220788231165581359109028695676727359874173017194802354834999401395948073030551465639710696187296344802827550951310722457919512956269598377181672862562969373419235097198976432062842735946729751848207228854050343616715518559656147920364764944118837560300757960121840572708579858377067792920888683351111591080490639321170209639045637478775389334183034288170352357481482724893087783278674547099241582785787806815886740787667554671080249572562888464245061768800122240350022939364074641569237431832093720714422413308526928858929826891772521657797019061774342588435706656022200699333418300992823774115690550787961720045987044766505195573237349015710795091285973575961575397721535890721669783038612362084969162435067028290997722178654584120469293963875395550792224447049168510992837656941759518427921192608314630109430531493632387193365618558046320145900397227400143525997868042758080193846336029882254401830059241676154507482238580292436069645939600425832262886595691518928427844895625879303880330107049012582473622962067970665611361138057974407404948680711282816051766954275354527566111773553183857212745519450169512774479992167180343930136135038237045476218740467088091614642844617037078239615997091354839389778282900284592059552755999321569413128125554185815207392436755397878537098606337518596799271228597408004761903955863414208672325059809269231843150318783917846805521495057930554313440342080112349562771368830744926986160855599506409789210719158142152688273591163892939577792456614693221587580856286118969734222307090177362321261280606939235571108700670440048330404751832337945048825996088542124757206791655790245560494112251942062376205613360424456084190282551618975003098352652873736533997192770671090638348882838509366036836523903426367966572249174232895721550555551353205901825055250465974986510415009382659791660070842602769723252479267705556048209728193164358403582974443172675834746772018568608912555754133451500833149797355104946279092396879647140397485396858445854894222778570938152778298767711892690073144698754129706034267646943434098709625872650893564552208451721662430068245203820241648500962032018889207963265358650251539764852977374125453843951100085888744449129031181622032880158338935020420375568551050250765779062611138338598856047719961884074115394608242420291297043385272123424366641332964355803886630742615115452531869496370403525878396730655155092762938341829366463883425333053317364641790776889075288853884854331270911030029510621109928409023394556670896687285139374674468632757017373880634894219447867179037823395419485260376411534876949446080167962052880154225893344277939055737056466118361416174478070492201279873922328903020264438638636743204938494309478713412913568930567450661253552027849980599928536065807905170595339559413168050355704483091476291009647398504566073306231293150229472374573481241962290835610517087912195620600959859831185582693655567590668081603636554134754224386181347514521469674986313761238149052098651284234441037428639145515548530644824366657981788530621787600338677109998851776441306561288587685373106552293683434818203131644376391262212116211599707740061726300423807561146194362902359199524948925888570640962136045663988665769507123662545535392805266974350611398767778676444690558500373702727998993515740623261463747197853389878241902452967106597011692500984469341668329120709184990875615229472389513727525727846278612494438048006926123693224762049712247742978005706878287045583451997862850341089523835450863240924485283433898668391714552745009103072310444437024809091537943180935175149223459168234341797664392292506935347166077305518903113480107525104376259674322995155133777714168693322632764265155653861415811782236848893332770053325143019828783717215789546592778434731694091766714031111885092345529244838349176449604548254433559535268484158181663141963718818829448871141944665703111960974340723054624536996412708870060818215137340169692667385238867774459674820611815537790564240825052025555170833338560507519105948953504505002639519354121466151650291673936170860871964261585817772039533279573292302305883744385991090292131904134943626468003630128436091715490135460021547137085013188558489442460330937025442271818673714531052300851603234908757100985942225474836648779261831481532877247048810855714563245894107089905245986643626861824827724382401298167275603499667408124870804544752962016460226955821922348996866795053849335437086840419094173033263489978028119818845062375326942139683689964839257816211879987056644300683169976450166571908946865078263636681433681927416251059533010102669465448216048513282212260036379165790683834298539958551883149976979408404952887205617400023241922106103775473611981566371819200346798490891957212335034429958259777321805236922189359447934415141916693458581125244047384398214703598737742479329732392961617803513876047653357340198082350630969423949363488782109000280247847529931103050022956964479723749815213616824467740037881626761045797942723648957485258040708302226159552049599656654876658949978657843378368837395237800396163117879308955594637809967399507812411581647284494045308631299184971621962103798760202117112749351952343069545343019234493165162439128938367474232942749140964182773242132644346490179079375045933939243391536759243943999283259549317412075102538613188941317865996243726693002712989006175530311416069451388538755849744646577446164547724838944923743270249579108668162151810200732637248147343452737345659483961549678726061895093335871977669026434241087684179912642509422339635021455776793527359305885891502111079082609195264805140848799154303683629470032790596448500587909704306270919517387684723383360052108693644874421935969412263557493515456713814673679366203150138951721979944464247066721691179811225034435550594227198736642445898089269938056210053792509659810873679020378314744892699163901801917289329323526509767854873776153251165443154746576258488744541799023949496998509067448873992360472223734628782781072335134701527233301512195709882009118353553273212606445195752380461106039834982728274718425755436963432172362495892818730288305069430260865534579181710974349655412318429972758639199573509094993836318124394195816212152344995709967281246607021269466579574776545900500588227738532190991585462730679306871326159391269033613162829347726686136931188867284801752172425628989337884299865289460851192376527918036266405849636823237676892539092148644269436897807918401524487210681195436457753079670076667983531775745138240569790654754262329421747978467142269182735537462104354458900736946823710939704430751739141039716557788640919189827966222900653878588063057148795140636846275165082881335746483588115455457201965752343032931963994755767870323579821245305255013597052870266562143911285977792398235850623138785962863470868189346919117382441957060249853379707139068813086110519323960784238021345528308547928682880615896943125994632110016699214333199813915276255263377834907685939191355695507956708816408250827236282337059414347324663981133975625100492650296238859506786807963345030383095231065059006293949102916129775437608794456787542052054748073661290263308400457531965592972258055640884820202513769766660056048223986829342188970781640988677953078994065481507280310079103443777945228512584308251691365121073782341748619593465968392846514361293529749107332281551211167173976480459544987766293859259862072521856388807833690254701625837433644580256451716998443224636811596388881934946854976941806655519406224550853973070563728242391299995446912527252168015840050723100952354327863029168563324209249411314669107351588497185795960289647685598893336784855760752412043504186205951008063994144125167092572390316084212006950310150995574857703544171855592820893415117442461655514483767804114014102425455129897984718583332434586004668340469432327790077757712521549528777829055332622423057841646143485566471122394909321848626084232825809936012746978206381617364908866758009186605987609187671194972478985252382064217179874818014618580971547794781851675670473647875204662655829510436042752345194127213338628067476869546136350875070173296381744130789837486280480861927482927909010832463832406230043283845028747535428683686029150865029754078882375937400779735249880288672644197535345744330360293800758541292220112499290958739670449895112209518078640905493608353952717538546338996106437865977111389252275847559491773806757567538937740190846413464740411672815190685782690335066798773222996858704007960675376416448415443487895012856273988702811507212696113719736396064546772205204905565129412285747395287303327644058553922148045654285893509768973162373214829978787099173198463330089736585837861302913639080442970992515484866834513854793227692249679136889935935483884525392000099628174364728981611027695923973266327589344397749561445865377469794813402782817095524712938553729016165354954789166447551280656139491811953342458176792750531668765006641882101960230936683927724245593269859724481454590557172761087392600342542070096073473989925102626239924121946427195820009608390322751456454470039768750750019452166041485565647329935001260525945233405841860781413114851411442175348003528954421740708031372272916545789044621739496474658042464363916174971723224593096719740736053886223920434737698711741387370422851399804524503985641110563249698044547586407324598420098428502424285442467666892792362377232963700447174221893767043644313685160411598197436018144545165228887696152808978918929452504625280096234998303071859008281003286468668289055642070614568114598751668794082249981338931362130082494256080348026742505114319624204560836053175211287630390100415683663523943403740870831598913665157933428885504324230978679781786890168086999323819527774167363749479507800460057678431121313971556335187978957681958213031603075027938993838111115801239985143298570858720769314709173173732221444168775962887699375830623461964683645664718403644507710689214255473108233680801796203106303599154100230291437740597316084129714757567558821791924290099148723810217487797442519664356929343062787276126847138469719472202978716094561909768842879947071608178837766773265646271365112642770067463491789609813641438752176589464193406659432982710473033396088660559275323684404533750251662794998314669356947313624102919331758158074964468424471716594679090140871152859923462694332532832806010001253981394476418152956644055751614589199912453110788137502893756302425198889882198978619334216305443130607119371264054010557740855732896129049312371670910983048302547865887831906659163944088191081953404699408010870491989719074618631207688886909907334056642014856568168930657199485566462522988790428954031522004986450134034644757136843071938457875277199236963614310398626059536759506799320073603740374610216188944318228209609960907816608064552757162782103348580764045665332407715323635008774460082635749641945882449038031303899859098678447828194453300709393573182821647051466757009716096541254141537303050265105316968975076624368597403966395693133102705091516135320851998727997517804645749407050114455525261713486241555059512165422391836677090563796492961998246159513962604831750121901262487399199181583003158683415302355443962425389872615054065049516963060430828971976371162940332584019735856846676861970719804333760280409292131252846938239271422012793590874785116770231869930576175530489710805171224347420186998743165344269899476772851654234913439173374293866126432250928161357149408137348695982732297396541967949995811245037748888558968253297707991416495650809319087385031026243105691237361230680519852128676875385163763868325800234627648477800963872721596640300776961644027176996492787246526079262151502445280060405216866943489098907769123307405999726888276056028313027621979766575007388809492254125454098579901950254731091720537146572909191066685329235062770655425955470868461350725455716336014003887249576783577860105443632563379212408564435924074903763404992752868439866176705187563224270247805013394221126756592787030096851653558369968140627805738328173999368958610663221162355998250404012848360629599363254619604842453188221321922238037804688296067121848438137057997593398138022616177611532694529283715505768641242100551977616925444448091662420478633671282476964869364257950978984581857170267102006344864308419950284796643228344325524028247304613960876625039077203629867152757742893322885716241947454263108057145208692270264332319540461004119464239358376018765068411957999735851703929138532426787104507727046246042863932793724589363482761339751595507814823416482384364781778646835867324323419691550299449077158999724139566114022882702957100100891436484004853816790910514354403294065098481641611687444970708559626312149227983921079836837121542874722402997895893905290481712028813877127986257250457953789502797352427491405717147376887171008061641161163476276477055086392483607217111707856534539775280574303988198018264142328660302589820019286247009334589914221898902929873899410395457543192646577602900299149920525321313787177006264353957236335143248024436957841754310033681490495106927774250475615283803447288271632057850279067844640412421667050041661668746858502389845017369965780719456600394297120787479018130190152648933167199782084806569169457470294226990641351191770846472690652233993247626863771548253781943212159743104387294198803282874593591643581687021883901895319544528020654024196169485029741055734139921007216463379259245165912731356884422278729463756996488360295141468240240835144518931378639846741324788719994860733474313949654068710722330468025978523651543299302416238341190855052400567499465204816809414561829853441615331710929833618364658152392404366921054785417993713478588580430888927251706383671518562939163368706993535321434315418919932217888282626916994072855760650829632582769426185462791752873485022785671816935863446284062423926467111360749463534639401563840964477781438904311867135087257589254510934823012972724235875354414716193830953895421863423315492926029974877093400214983883778233742305215798771875788720866386824987759320434735321121063669470045712447891030118065639502802120966948346291384958852958864135007615437071439485871145251041004791163292021597079991365465451021830964103860969213405823449357193625998388041002999310720393252959611018117623025242949455375925038434844327942418343575774462606713021059150382082702846524592451243665700546687025395948954247985827148175341999683239618186771711063056647892915937945077546339272454604064738177292833489175247765381054542671709073383967046633737757210381318103031899050193561716770580763983334337442787626198055666587940412035863233854681324332471555786617839456276408126126722015307703431020661441564989292895271150343064758148584138851072677377971193139447991934547491626579263674042365528571703707726870537138120066214144596723851376897728003605332799153655818404428819100305809509038984066145365997803798242824583463747464414349402610001501784609151062003409003844168383870600425330540235681016218102679453160778430004750490632716679046285383495291741638788157133062091916404619566102555739710414045013513016845225416952115863371643487978929925301517820105270293794089375610187071350739504743211740746895946612895394936444806023380149993068091600035696040308782458379789646776428066424130711565879027034512001598737496283039958342651375847528660023569769714672065138065490419238484323771045473891035882162842709077281818084409979884876979776514622067400345642130557487154292315969699827529414357024351352196344360758759237567017084099813173748468407794844816846988082092019912365729353446999155160554609952071089790933136489186635394987360456764778631683737252006675070305940722329314311119986378099561331602618531442962553117567354125514013839832373727008738862682340541098451789843193058104235929726813052278398441010430270274192062764189045399655336844234989941288986337504161581408295255289589862570800868527074390276280076097568836822730521947729166523961753310703741591758650980069852505628605507875183472178471662469982224858087932439511067276483788964084252819338485218036169847674237621719723492298094365837731568735749390471317690497543934809533781002433667423176664718525322224497789229242454046405709751482265198092158730818719112889978617617504437484283293074270745127799799590897375287410321301784019921955737655483703122049472826174460327605534775568990629735801745586728800189251339138495881858852977893866064267343147233008555097610073308650732368000602323644465083317368358810106668371626127041965190755160792286615522049609432170394823669707360755997537004369685697074893572297536066786304847460627928717952043539549051205489473562723770321893049496153223972583623264591488865756775007793917301813268425782806369012859171340847957784824378845647700944457281983373844802219785431428233675398683875544170058611745303231839848537354872125957895910312946946975359669695936117729094044473020470800406417381376965048325488725727051524279169273091289684649853356734477397558642090157747282050292016269166284488335515715656043541108896621932854168874966826990316721405341581347313292663138580458486775074109766732544402661396299481584799921400763263944828099715004803752183985431431949643719829652190116978915531442197410497167135006173379273843419412816037346324018084219323711025660599019906443568074674561998425143233776885145261899981834958832829300652638495176935985394730525943294335218945974730765689811498432317408189834492584890591312160018743242159324228312180910379055899014565961902965201536779308610642412320659842973683878431557905449804813267307033729500815136776125456972547792294804821349722119700788804351518598184855424350973747241963602973290022651759049130910208126589275482798773578641021719867139055690081990622873548109644550929625864162584741531284784807817697783683536715244230701707241491431182085499059942540682724087219402551541135859387564264409466271632645328835506347886915676514791771375565604444252150210777158964979083671999613194180892430553441348903985534338258126187081999085212213166774951487464613200252938492041183552383735958715374702669038363676536875487157883217798494515486538364247507430645015105032837852667026421667014097065002863912903623639253740797308448278446470050985292985024085257405285185551376156737971263912554994734560205623499162697438236171313451384962919580293538854123754638184481155417578125755056988313771880728975049396945769865539104576451974705252336430920827044204732290202206632333196824983567834757016193648290384832242374707906645395266052575513025642102742521339420261501367685571862920245454873148186127185652712714876640192352231307897471867407424127811735274896869986038445440666157381639167414440778201595753356800117871765137295205430061126839110232838051100093800559358983008394882360838098420092344210642703448963023162673745976289088341679742600682500514470711211101496941164852111145142114276077105753527182022509713079679656046676133845198944450951078621621896201713580955993971166882361605671932570433636765392044690624788652429130854214931805120286785353012321935847580324977482089077573187683654279521227186826757270027924049197977629377483084370838869186723310337921168404497965941886471682608655697437285110391604159526225296800206395549605773635392687671434606311016773587898738813739036534106776920720042361334354229970589963812089550223979273140404117774281812065333755425669083527957127257877941922861803189242808910503389930780511985175805224555698607703884537243746740657849891645778819447034846677218023101140688353632579447480936363894229904497944057596659269534346958086680991907916952881882665883495712664825387454956087018885635855277336929133221757542616139321643670832484172867224497194234718142436715341153202511136810243967509291124611197131446833009196610800099223490644716561623088839369964857747502189468836684399469279321959628278454734491410012744930736057521343246938919460077706381193253915109848920014115398773499433477815989927267400428521101424317699908780195102398951790720542197755811809060375246084844959431142468486676213557469726688465758914799629296666822902843304493629306315930737023902478011930572598821696267782940635580430409782145210727142696227887219811516596229923318518509659394574843594591565761233338734945199007578365949438722787794382356221175428413411521215113967340147862365081802946902261302038269019465230876024910353977955857362367762612748135130761366538677785908761013307959719908187492459624201619063098238780830721312694171489881373223929186104790589762764767283019085226008025338388386625339900270841574544558992607113978523427140726721703541772951867252800302679756161317439485758626234037904297010726233591862709272853312836398905115182425768689477187421804548406475399614817626159264921897406172271143913039327738426084975606548470365886654070605582774348666133347209386118673000212265692834332724482518396539670391210168829368469428725189140326683914522960487696013371787180713335815959486937884895601573845374229081666899096652065410013518650225124980553884118612113652665730009696332565822555564021425611682262994486452716284709196392624356768934353296105838220935580645316335025550074126184878281382151007882793635000644770767225647616146565871337949167220695714860553001824715708290060470517899762906597311240078738196063255090724819713776372946729076434329043053451615451444461673693129873435872114814721658114447311072452309020605648496580709756608191126570003587528910696522696440675562812697390960489344266713609929888281633073442224033282486729904390422776035946633475063646003844704220819497324515891695359674085357261629175425874807136026692994778046835637272992418825151594942614158458153301040520924039553078675608433783150072686293105865699452022391588199834567631542644560893786429322608699914711260519399443745560183989131287022670164526972944404543755493775873458060997847612971405271720468966528691384353142600125092998758908458013878983370128729528578764464498968369990833496279945209179060267258055876957773361713235264428731958014098611251588201450362098044120472339187962066006943231413250934030609687501014248642225766495006501315850416229765082716550210054199086267550416046762554170221252023698920338148716588609543649426536594387691215877144560062517753153629172608754527193488873014033977905693822360310816352715715841867862951888081543078286611891629322972557286870518401668924532639093752726626696466261957236432110006422194156421348698616784537641340866996124733704467458853582069758246022341603755799592111908724996338089034680353078868142198503272250461502395585320901050259673802976735979718443063888170655636529051810865486171339413802970039387291377403397883644424605173868783240305535882657560191765679034429445148651911544121363028351322139022130670090742114889045611395467976106676951795232149499697113830312745127897252990879041201468883522363708449387041203015687749260338934740510616888556895961271095199728271885026794176430582546522722100128779418141638563111731787499733666309373210780379090530384086583122066456129889836860849637682362537500048669367398467330452943446323058214516135060370210288626809540965608812282638358852922536403952560331297764375188767159751397590565968770238541467820708287810933955740325145285213247221137394872993158069836703284840509521864206493450842522801132900490046731794022126568390968388614695131721662725046958346263884781996519821051465016046972532914102239431012092721110000973903173789123052678083681518174331770052855623849851830321315710013769038239244666454157593289786099417578502988513435232723283357698027560512881849857873165727489174073105670607432356044963310154617031470422228652894652047549805488189223835854679396823121688935240337446054452396478061793275796245118708047357350115379175236961697417969924916686739532372518058342790562165317982007576295557771624744199822363412617296639359592441006143013517437151651422987976046509137618382318181108578187044664367794341191323833652559854073265802550520292062050288937641544338539882288855961676225411761231521711143492459282380867919728245861015580092981924184868106433970285155816094138072833236423550258256811702471179394219273771298099218136603311147102822807541375700763401608846280338719320992367057880220833562945047263053128048700159659006568877953632673176178142945640603116372912524394753716614864654161741989225516250044285559148830643965157594920285868703792877517298099577923729715535084628455281291958795801155679560700205907641808950755144242515264189848113627719216607258920860625390060776142057403515801921159485840356531364087366744719263081890713269264625067934915236050435632280947301614463772130080957816706132272709031025101887722545953599290050538035519198203826240020812769924545974002043204336023497961766197405302281741576828518802964704289361395405330685779432357362136289464329839568402613240913567567070650279117652157731205647108381219178404451842093214773398744331457408694607581106200607990628284472128722382232375706814437257536755306341802233136512585974887160028025557805011037912717857811055670543190854914825526204960513449570884202554628770978286010377917559720006067650208559317209455272408064869677762535876768612370382500471005086048370611763979194553517505815071630135341589418466862091737759132544353622700673692568678056360636674168084421757649200042854048054052140710285723985549762320494415504820473707672242542494272926137907869182588895973292471637694661657458058703318629438882670632549069424071978952448004494634562695768310994032294076442494299360701642668930786851437675487647758981187206565913486736225853061964347327006141756817879120792372068960218285470343346915346176362418528145770960273137241876129226661075224278284903498399490683673358068740164512571088216795217404602942743879201842723549006834773100181940471738775933522768442609715518362277985556188082465827372781703631021441157168650680379301494401212921635416488711011601346656203407326743297000323562472053867608817767266379814233535633404424375337350261725993252978020396335272629543470282302735174489713581033996473395327058857330807886653432553890984932007792808126099591094134450913124528998947109550768731676177648262715586235995825049766122651068575447821663204157109663158363337570184818294260138757649967199569573215222626196703631086938516409873223477687850830181851454868453431641255861542989181584660949464598985011145415012721459821021356195982030439808446969773976644287830591461107793107262639084562196696949813329425146070422788294179996907464586209284837734231180008047192128458361120975353607016818846433052276827059810159309758983230159043574186576078371694456996416052332269003200946469783930105129869650110919457652612303341888574803681977616490133225520694478958916616171942773640062095554886149636553219761105249233464704379798288612582798872867194231317631316935077396889094482152865426534972932017099432898697301708930133741935922077469760660313394127116556473249794772739155093359287013677855875208836554389395038586151026964179157795212670149778590461955307020343489932759935891455606089839057026244931807934176539885742998591717287978643389754505616404646049323264097527938816126804141080030445594070033122073808424249870186522093765805166491358468984500588145390529868389361026811643139832135323070344491529998557131565400458124293396888459402945842334687870261162625841286089359825339618913187546772360204022704751322201501088148076857316131512105933495421535005264599133272149561762028656896593359876782720828527040696363757238190273302503650069391670112624514858947101562666473450194345045178478118103051248242636345642418828716319614751299572202837911644814511032057109838728599964541446027007984841833458104976050344476830114499819699973988503271904754627669129963732256973330611618051524184289591638013040415499517739125556946016620905186225488695732730250293196793451633553371296987556553172461769776827948821672636239797377190212918094747864688502511554855671934514407241900877818497095378334850462629888942810038475593797930939056237533286542386231548763755947054114659967720913517244083376314361398533370557622030498039152445868933780945109836860867418439431776697310931652996094849478576290978125178231674546734974018004678800187272413954599140130024043972405620795639631520536558040748628083341745074171473011535991132723508959452342607873708048915952574407949616148153337799904700327425168987790786128876365391573061751855811350099650233106611897435415993193925284175271260242254581830666869976452798454191699846910147153377998723178916219649387678579056783599364403573757298572877869741666690378731444192432063553303933367833847119915280182154451070626925751473334465174164803205907352482126272120634163868423470572344054167501326111848528653704939803540986020421888043028119907332769055348554399964530761493449983293346296894378987617329076324994260578424534259523663389551335646786961139512125621658049309072666149980582733228210312840205733627379975746136691465112399863978508903229054945179173096619872756525998559042941578198643646162036076133427425988955241714735911796263596084572869078725909697393172824217140078559748673577400119305577401088414293403713830300501459588382337303728220185696377886297400720787308553700651706402716536638851428097064465708032270508856810950324595279020333751223051907235583428834112510850410697668854807368443688425797971875509399448196024771338963664349538446618527290487435467634999162814564479359197550267645834400787567699097961157264862189313955227241009764261707177311241040100115901212789680648435681494611587891165585637787777272081059803221337997437103562130580906959920354471612183306550996411835989451347824317500896702554062151579363991950494959732040539778698384948092499775012068035626520472799050077114253351638505925510112803418461178499356642944253796432058930926388385610243275245863238087673776608018847684694613805064225356089122445033795397058943165335128451457194823886647588501513083087038777054197448793261148943436638773124791068817458436707593914561555477035393255498994752716924038412283955590852746587450499322529149107216081206549759152760634740657074369275028451382495641530626895446758769897847297857072889749141707743176886473727045954739644961092851632807689687647349784752707597220822013417667371145198639097671487365969309968202176610192784368249808065837639178288182363299769963602334050824371908968071187181328892484987720782855303478476480158342277949853645271167293068585024048609636383513395772530078216733742343949295389393882445176491372416130643386174996405808792539425073641836200080776690312173484209232060925105724110587710790903048525253649041689237629730158500852752893928324081995412786469775753183655838657568019162162687985068653689223832857795383552078967066965114103576018633011289275290072037897696853544011967122117718439608900097857657862180715654605331419044328771832597798331752005438498659015450529991492206057792049784127742575427575299105874845170579355928937251551023474678587231092617957393323233494645461366741443930419483585494627556866877856953767801970817994538324940975096481975604328317599210977054141653435779115557832189831498056807389997113228391668485673345993896655341650799084218368943086834469317930377354028671634635642109292809996606069307628562692486769614047143971726917298071738799580675510448301161383002880666925556889672726495369994743663928496463958692500771428708567640602765826269307282587643637523056483830342790982096662159029186668100435092059843585048969038098911527436628665906726697789490848249578256238061402093712264759692104863359106695671374501976908400503582634972824247857213681600094813021331212110882157537322201191210715343057123238723849301266317613526847995068491863675210709892013361394996314993706320367106584199175091735016651962127876263345823488460190272108908206676962142278190475801486613538495393767092979902448307175427492624631654570088413167920371913051713411041173308459527740647528957974619468140234645577255732562397854878636474713353572909701695609523397336719460676932883352933807169567041435889685360715940197368502019526163625772804210649174806531173876946753715898918031238698075750278590568124089143682554858134081333393170899845958075442843258810546751287006565321964513894865670075152564769647937146813779571087293311756759418039650543486405168514635895284855513701724513247866470027943999340824326098297762657214425235866281345535922406497831025968517127278412904244644790583409351436444189132894199929079801135636132401711303853427225625426028363413473822533183169785689012572141257553113961889178069415368887451416187053548590767294846200833292119361879553603418926504762179967450672947262130491005283501505578783703730583981165100754902755266451990767237951316205865962191828039033051592147074872428871955126656162092067361684258583800038145805337158987941053692167705620145234221392424587455107849083425395579818787254409617104244659460205567219701352952257618971784769108371077770120271501550024638694582474405108444451888687418435728552007896378597551094810080255821329265027177530253003335856622361144886830338089310521476013559755628471839585419970240392786459279299209864169077376577006011421183350583623617667582737940812826758968730874988466075904066678847000304763784542304508090964392621702106375640008485197019327699990913801068549945028017256774269226226931239134388062431693829479651530613721656103064249882139363711645932763179503834689549423215089154906203223692419268679082828925503940443625880622271865392854619975153905431023374427268888442512416872783916485238016899188027368272976007021040417930324268014909374598774357696890490984163943546907575826991306801044828043765755626159133934988344634385359737575087581244506190495916487492931209409867051463755651437096536563129629534699717753798024320889294896448389330314594231203280928104887663110865259316899125088651518139815972659405971165775184520054205162842509790875722172058390715795929642702550568191417564292075732268941429468074824948476662332710194638060410990085292597913770687108907450464512796349605153713307509381290227509735393644220413307709778901613444236703188886602896358486614273853853091794726652247114018682520921373677411355457391331185377112518128200531293565005568021730230551894087081312066366691325454119777932405611497337474895465703518387431978440820866834559690862643371264477486586129835662762077128921639754881559782271289796360605178069027576942210874892615688825484179349998530366488706301383422089007807310136629441996316424570745070859944748820328438810658860167700049826099635796914429234002479389355100919713244266789552719834815528737620737009315714719749323721950366014641261974208400819082245040661774663947038725516231993033620893971852681131994837730884147060672593872812837457462287412082262777798842248430627010757912794531741605015857909882988318745141656187177241354950595357483865613388436717331540219459013286627592592557238705998672580241899320760420672942438992394208523808599218312616983181226292514492800830307820375278886391019438391166523715255652783382871662938912764817744801229775097467175436729028759963280955548308621135841463275333636527660381369886771498004900360044877689517422178925457476833967450386427794730466221353865530677503573411143677325825719579205157401224107177908529151479205795975605920595233338629880668962489288426886698857521213271634760419194699761020124590403720778344747832425417636935361294967139579904709940459321882811460997698089189867395033981254862400148832604104775612450668794947001487263539576274255661887778646734041022945587388402925420788611927485111018439591250295796083615861353585421272943248317737518748837190763581645315888008365564240427645894504874834859720126225484287745835108517565492496324514714447780995043339274199810523043396859960569487907162322149280626869441329023495878361507547048034755035791320353551680089796971676815429954924506741463824734966429179278170186154114753299106318261423295000013757029142755857043407150808969407216476647987618067900117983483072056403333699465137177632897183128168598701351280656003405700113080566551509576728436039778137143029586923020414164004118360264082141296977636216890733112155307974508487868355702371331677622787031186894928994129413895776540740121877045962625640464792906622122521549638685011533716289267815326285152351868587052597704858478530218926605688953680994301599809924248061059786003807721646444670481925969270669247684261106757161191128775705829050148639993020888851767949308942210626897452165082494307936630598461277779382490097709937316617716841754601094225089448976568390601671344327231427182032097371238995403674630706677539367974446412819618904753285932631040258859026076020734336277811720765495154450815406054721617873114600219262738133846355375579029192679347998131681126025376637467776994954804474860143714266451191629368314078954611828142431588308101170923427806394550900448417245203831967681855437906119137594397231339803438751200779015256698651435712198330949741236078457518368519427595363338947660718018771312333437076330488981092271283119986266707730142812782643911533203808103063155361661608030829252389560222253359080282731884286868686678717782549568143246790468646596175707947694026755255432558319000050399108679669340036000310895531241811542419657966789476848765667597546500285275174749061196351538654576178971373693605111278902238896550492861682021186643034165832655681785493742053518490771466433230197455104151292676541344900146356746521868054352669492933948989858178178123944232613772581932818216272202790996013800903986504851960810135250235105407241615344487687933258454106631120512662805164297006557664939194287602570485385975507790125386034360681107143803913609077583158668547382917136207358247577889840276608551985414007456973988978491806282463609316212794332083863930837484771421120147712749881864608504839205804502382551009412954898742029026780560523581826157886275855099144975082343601364422022056836057728223187597541297221282036940489726872542283784310250527140831739694452656947779879809989464197840628678341174119862242664132445722528967407485544804667531237491669193263263803424684902370061674035179568276584098330249056779852102399428950991307217041228699519367270338927357252925148839944872930973615644428705173663407489312586553939974500461871482568133404911207825111547245107777912968795441420412529862170696454567838361358047195095675833234745820365935494294944776526264433618167887771383203004709203972150448286005828238454312612338799421405483078277251396111540196639522042184636319303246307192447079384787803623949582552944253152199199074099904662427552909171929731834512764966672704721387704397926866971756934712900178398584634043935381432435779881868263799968565675177219719213923269006525593567043555647466751998782142876015868872889471238161138127985279676122457747427422763983169972552891491373935775958807255696449292612996279471797116149980446996320713842953688630431997403482305173758189264909188239412746074566990440059414357964220206462373696744406435470508054168391467208043348481161296571725078868014335083618074930951517493565365076975079249748304289162716194176397714127957821856636838412624159348332540738760262156789340017817045869283445037978991893015779774941930959740688678113414499500625114351580003256258170224251589790619235070865118412414076987993883981337665353418645217489369322804610558294589117612301172669267602585776810411577627029004612253065467108946905756625170988718948622248488822876047814216745938438253914331272413749817683525967092714885828924619453514459340255935069010257159889865323995846520186715169996856340539342596374433622315907688232726283345571796912372920153274551551965248584252091092737462525286390971128265797607903901525227023945179550628211418716805191318559947748898061357476882566437590368076468616742076510043103914391945391692176814439580488197962651130370653771072152808930822140043706198318968985383369688662176745210134698896639136742202767823624464270937520628885646300632651698855412020803892373319663722752649050118795939906373345892932668224673713322664452142741798798002405442362297871851175238449324585461227041160511712382380113964750830038788162169560056284092271445186719671086926840444329612662081896020943147602278163578338912414404129081977596867983832508602683817178818039645079812818365415496957083932006721014926964566646107264788947500189654670341761374964007915228902298224643309577552759974856007730109909776223124281834618501834404266334696126125932097621545331578718262924144560432759870370899787942985126234901910702195278832513888369930828399322682117452446512503050551852207784698365743165191634255501091486431579689883178664602180521588732567216073987943423601759229472201142357921823981443704637026225485691586509737824977679344478575614539760230413547369969040447942161695019315178929511501663270693195350441742048822932672925875526233546383152081980215191167707051780824357494228525288772877089757521836043985799561898475803039058786738288411675237795309884471009167275915126248808273582733595621516218792281169960605213011246702068734589350913259409503127559271752631491792815736736831710033713984121291522314350834297772251842434361154517508593522773117696834062035826934551774983140221365304344416641252339367226469381407688399104269356810369877388651050941128035778863590490599851465337593500784244953082362180915573778779433762936275777681599200907454980918505967619705366866598852162056639656286990091419369564003086019985841100499477193812955405652394373211273230883024619933738041591608224037520947028814386557653977889140421451468702381128938767829562367443468925207501872679129991680179371988975137090243242926093578251842033934047553490462494624520051919005682824339113793949447170452367768717696936087350290353723220205688438479866695043834529504572331737405559075698691136952167555784056101351888789463516419575296946904347316735147737164075134943969327034511796538953636999735323133262490160051476672564524244757109311435245646081318483986661730074889509744451016172697197859388736339988725434810133711024191008577785550735098295582394258052825659125757928991212900291428299387457023474727109717275959789035673167160536948217695626502358147181825834689686943915906985634175879816688161031423018427413122953397252342647804731343734871953471675470542688134256553384837023888743756834788048184570773340718027782170180979664832003897644062677585437379014770552768643098712838063239345072746182685644104727259233428438323223946123143223099038106705154820998894074686973526856523914097879591911476949904431239406217758240152465620571856560421484298942540028535235747978483559958482072130063357842740993008576737729574037344220194443547827382012009797262585947387349628751909736520900509740464728241019242156674032209765766309770359563207107585782967387765305062635604757082770877488531052621695644250960174429172312681999723236489279265424862843020341833807447943244204269583932765716356995136544339911167810078508078037325385428525699462923436248129452970700775726219104091689201092010112367212105842147102884890420879108233267692496182698031981663161052374328808363434285456451939815514370690386067634624563470306122273401682474985388033516336002049663769533539625023599405324563038887180243970783849625265325806957878698642019138316156487319372731698740635716391132904591968915855710646562994034205814241775088954178437905615763812324126548384073096597953014732210835155098852948173213783245522117884070038578221826882017306718175786353391766504104912413944717230400012507645379579432632735261620172917502327692652762529385037212156072531427336241123208124959110065415609913352814295975992057615705659867074717837816404992019609419726868386764682300178158234619441836009594788584445030308677778064078577306840483940656712647157853037569323015645095888832292421542232552633320844967240962236776988363912077115813532811991177941665697380468571473898023680019467587418878279087370687024197380106846533008890886723924872479159587261876050540384048855246129467299932469408579555379258631998858784392691252670015286391295100328354556445616672103349475007456515306012047055156849074485131058329922467767918825532470694991009749165043655715318101774741188071266316781030935601057915384198384089284141436310904450690216965646353945498205729890649283764685836620366745003766294622317919302902312522569878933588298788904348181646738981250460311435201194870448464603292743437560170855671467850834725052909603658723496097387991978108351441503893430591729176025708157079566643230661759558828174980300365610556625748906516057981875435609467410605457011250531339916473256738272559314855107993459955148215429772653517164940605140121120909262879760180306801589413697757676484604622536616517120374955985728637550542886897550080793697188384705096237985815286696751544862389183254091187321046805214158082604823008987066515820989588300596627488087797840232745466637773251237862781074488097399331598398681195611954586869095865861185799659327288408898986540017294399126615666794075466954483973757656135703897225185864351909539878990288153683273418203812849804591658883893906582039072528115988931588495188536411399674637996165787327363050044840458209540025453094751136963095556703617872682991505701106546303763421378713161748139453998352947186498636073542937687851627762565376733463381192531786158564359168624609829621079374425975280174651852192277260643239698211173690513975892823576254079652040778904314350289035487666325615243637795021975146576354935284759222318558325317860975436346229143929926638710883841568594707252905735787307002065719905774127490692921525242670516696509973276200479853606781891043692766112547002552298584482471063023122864004469127957076888571746347698813341390667350238096587312143082274303399619893607119621674592802438171545896727183548336695837809871367694701338955556091473615211698275567846234411765113499895493364240448647187379908748821837200266601898148302810383074059530550005186263096628874054327398794151112645894721720874901108042672219212794689194126986556937193984683301063372509846890004357016478290962563689082965494424587854127609707492062608122006003747454655804698992063262937721968429231126052399768349078016301245108349151644768950519900454344504549724605727287465266182659941499125886036717868740221436614441414707771753308090162210254731431033880311594123555835502794101170280257798540664165894750952148316957060321076200085663312071262142431070917651677972466088341865807783736445389430623202472163194776658491980044535323412760257442689345798698221558669848233944094136255416899097550964624055083168707158000616821389010132464526102568074990250683010832299380784281024597152640750939907763607212009251660134169529134465763004275836014994828066786439469058596790293637142727666842570548236273539155568377218476418472942565363185736958165388958997100417929906514046353857920531540244081651184000030114348694972450795872162497289908724608377614351467974707671037207370132021719892412914007414605129197538522179627310785793692501527556576913434986950377598178239682742425024585233537226318543537333610996541317414849150703720273843135330374801935503568868365013287456522690053292510567570146611702097265495604793670150311988795567395331577877235684283301576456863105345155426727240773100318760667186388608966983075795817385277513897707443688321375942745590346730264738176362221958685955216079045483500072721131247968853460599897708144692276614362184356875563133898964152508752982805465348388368889767338325590184021320355706008713330341262685272866970249391554698280972081895234586333076932606911412527587110295223078932236459530564737253722833103070892037236576447229507066460941833350766597695477686206781041120864194580455253211327473291803664483449048923266251242426272890138682378297378504209270076277149641887595714863884471634205463064014923275340225144702900195159588878807290758756270859570894901679541243773627504787838076101401139705143206345135393760046464005423612721149035342504189898480408143444485025669023991639628842786525974802852969785146541298497095725829702609204736038576800718877037065629700006202499982310586763262275689482765458148450853037102004774848385402160187675024717606386724053880895722515911014284502190047483573506875264000166601182206848144880658408728127253908994981482728865739529446039712321811611838898421358463647933785542193153602283288778850550641742349017543920244142871695816570608913427281258236942309684863572929338763062451683717818606632350784818817278411490054600647679476839131299070973100619653470879764853795160835244925800599279597168718054565107520584049922331414643179766383323818446301898928175248074577535860535313150205768914996674859861666266902340680935115445420995176093497946389888014389565979487374116989031554425429234442364413424304123907373262883255520970126603499880630276932033107235322692875373554738640185760377686287550344414082169701570461237830217918956217138797506969924796307448665762945131697571945951998575228266040430527233521270504266145574262775364527419246121716680271462051095522451053762289957558706663595661427345803347556998300399810180297154537866888729018957074020289592794980773481639341688978390755388876997462137745620324384221172729181923312985290908123992771760027638064353590818988521679968174410166961807107425578983605042460741854681825170363822945895074337458201601151566102269322484007880539331896426071610811970620295710623665899404095432734797791194878207676983970402730861514277253842772969891286784053807286879211984150141826325237018417448196175831566214700631632761262030517526377835139817889925119108044934484517764982797830334598877412265099009630378684067528957694125303837128966886935578199786801950578281042966623967495407597799197576597565788509142073109660120113744633954555183699880751873815670589389077116088194373464589385493338005861897365516752036029716171004007908319702852954425757934035872899047800005377053775238060067311957519746478571915569698426740172850715071760553180298023744370488944308399172197120656574330912246637598795581804398267459474721534058319916482789525993997021522659251559002996412097020790644780843181047326623613220103343358939050738996894307638617827804534207134115504725884966729563972631219655220165824009194764095174897743769372565013861353751571278121685523867465939792580249842021429966691160665234373477481690225719077793101320280729785852506477527563375847004150920687924431919382146423878277469530215710592008643848395090824847070865727970049837398769003401970353054879592882014087539806525512205839830534493639998733579749777426566481353671363807913161060346238693471124591507480363293144189752162378635709451137784015814423642207379731543446249487971654075558624826905159763680778503241969914932008609699105583953121913452785635638482729978178324042182044654038575350855348790917615071829251644333953552799012133823857782408931447032315304984835623066596102741016177612519341009178282315177309909771776567298926776814726494631502478112677083536351749614552987209763378015337858642925958347774951459828006977150117236165928531145036778490895358704887308529092844422366807674619175968364610146464194029534286597724300423330519656032521840202073903437537911088003739752334638958080707316824799562943811968349832603290463687161230730140975438062614036046332368203136136959837463753443537003839997866244003868196285630469511069582117676513297196806481879808442192936308063287801949659582344751525169708289016321164311304010954228428204724707261509556586299159708138748008386021369294063079903615184722663366253541560188973799819612098374585304486461331776574946211324727922754624603827800422694676678225261493080133153605849637136841352873284918486991165658284967158327485337909749547060416345848914585070828458607362990287724654695048303133558210097177958662170482492313057777885200178368061923725976458697323987333341654820894748369070830382831582786878025117301996749877842810407500671751584017947820327160192901337047385279691417222873054008531271928366905183535311531784681125798815021711219149479367280802220175668416389230617996903762319736888254316476475824364014083119982098062274587819581612318722570714442390813249977757761522980386412377998443894663593808240313351638750121558425023145544178271873023188298590307697079137032768441488080771654304972090070326773695905051514772192549001160292664036695073323658709649525203989324737082242458670165239836980291489806436367743892739305430264808518093396278229187660291149704652553630916965139574111786734648482136678138905703884075194254674589615588554887381306813687778899916390868499515779512177230210305081491283452449487981740878028679845600062574283634828125131325515144079620163864562026802906695785610479616267094482091037861909748956876231947686040565712106363103701956269814367580844084059357800036248683770732328941740252089743004654074497717819795765495785352332931524366218094331282891913539209306837495704753589386455129847182677145156227253819837514739784477630974962301717431402968582045776603704450140165380380634984364174099275253900095052208378031114321867657139204645948671208674588530193469347289624054992193772191938474230571256995251631848075105737269443996807680044351545883752853117240311249969064059063850799273596210677241161234933862189849056095324293949137888385528814995361737449443144285378719532336375319885137580144726551898972194344099606830972813690091839434067702623546280880131328250709699851076371818787945033251890425425914265178768836493650304040120876321845884917759627999615970472036866652249068203992411757905567613168831718731650389984043749959700034266414857403048993640571405029392606634273686225508398570617640104193486019487394827093809822185679927671548021343579240053129867050640819107678257409164780320219411249868049247492407551866612816674156038663578896932166373571995941515534630231643930400709478113619387297802257199342623266733619985057801431810678720725951091704423918339840936453943761128785973407686806435767415100412466077722990901572118574576287426451172900733634473074258000223114673345361022023154747064553409265941234794148592115854084031168383541903070521528375219811353100396423397585360435069789391405081115625702730552172749424748664269882951461455449163563085922151888729248544368139171972458839903440586635986135065000302618007777991474033699188937932920334377088601865311588269924873423394845444632848324935354724384242223560087356101955496581266019801292924250255368274187983645269310359962362280681337151873264961538822913092338027080886676442500704493517034220602028106168279452221000599793130622598577770363811866985705742171232439149993717420521036637674047144961878250568613834759620528075423217506720198472743269772082368136940581506039726062818777825029065171859641239572961851285805581468586856079001694169891460082262536899193567540210084550205424571049496625125305378388262109191444212926803090786163498492861766487428072386105264576137013670515654319841377443613615645141377507576782795013082777250032493155554734080211618728348208401479187022508777663981983651560770500050902730460950850205773498447333558267577941816680993926369170719477166044324900348589783314803572582622056934137852322933653340177063206852681220748100268463734362722326500395474514173817288173787008160821753065768080167834716011758516690490630488223040210836270310997055724404274108299109621593970255542687566068118282768420851296531475192820550333168869988915857699382194901387463928100166046532951277026839726898488318167307508831874352770815202403242174362057697482541091089055858958896382050522065896441438707145575802791205452834810707302611808664848744880242522580447345674226944096040329016303740130732414350482883212941713573757724861867970269336965636409954366970589830227017064411279158725741948868473951772336885145414690979182275623380379290988331525919154847943371306032722885023392716363352254243177604998181904632718278065888650432726192046025630757589123130877700619801326540936810874808749637955589688205538029155128534963387794352076560683575909426329715160521213602329787682377777306777113243956461052261204183984111203151308115370476108317692146435824217701169174079108370311064886240874068625811572964263830487398956508952573852624712628726128902913486024363320594218832685475939825460140246479666400501237415162282225116372053698211169698594384103024880783540652430383102143360064796806360885631129590682753526794878254109634740582811857914166930036972546650372044603030826225100342856816037364305748317301799653539435961867009322085717572981287812196737937490671505974215212568592368579877242824711174384079954282807241587471553141133821804472755140510909326450409982908372246176972402278604219397546990871559704671416109915626106210973540302510345496337513303309586204994438580096397347103897197426502080360366704288562474629346461127458163908163378410373219086924211482724955153989252192729534904536177388112651145040201589872725713974630584625100085662217468177384156550799237626665141124181430288663520763790483162065401242399000269565873303685870291110062930821652800355679367772592877887519707265314850902023712089782506192692081825925163250584594498879282202912815353997775793520578695574717770637280171062407196546699221372565586726006177862632801863842036771436023197022614909949635886776813235970228987970678502068886205843423002089405541670004551099875258177022392777416756939318302472137799810364580869332600240190956659986118604239300731883948018410143633574922601062126927797404014219952156642626379376726823444226146741531541996677261968373398019841330379488011802579042575100330089643085747323583144828266663458346835442305811035076280653008846265550687803740672532893660013480407907743376726950416107251679361446430048087706804932098908646616059616462467091714939080305408185635786790245523218860857076382624393435597757083164194824672317570383323845133752826623402889031028488240201315478800397925766788390064537160074352737244558382187337047027580177853996899993534394608153843864729457225407471940543256881198313269506693996150218939519186541850812253822634277742951510286135186800084895085678303825727563657305905278131310441676257502856733782974446566357946647912310669693999043549283613141022436502549806564625031959512985953893807603631265288152884342762839212714792457556313088685782476607913416850544005910614116958345974766606850403753785042617238246414515030684994172749985784064997503938924180960380790663865813925402854334530456133033088863936082013375725300310606412197334395983822771927892385995792356735206182060265455414655009245245584770817265207964449876709217429267844417352529081712027870426381827786784061920965593452450311486986412379420929600742909171488398601667477224058334049035953749014628212645301054545812572457488716206359063465297136495616898149990418026775373533856113243789587196046355887833461192249396504995320171940123768620521272385685898471026976033455808804679001060168961087845901896714873819253941227564039033184947675530719379600774433182305339497649372620762027130241110358935787396429840900833104308568746947231872555568380378967570834536608322549220908319937302641047477967060916908575549487930733582088802392273584491352448815802392881586515047988246163148761209410306180564276823677413720497638904906993045827609869197664930976490713223858504699651538475326864371632047761460834923368868166638306725196517401250787820040099722191142441299972379295125741887623721251190091747103154055856500209612113971504506866602787625581269095472398894921777800523267333217733629537709342245060049533453139706243258235556404383438152246460676550258591631360737569104250192533690069856061811378320906167151742021852301523218188781451334497959806790585789081836219688685266050201058806127913439730410715347182752655507788049431582634575981019873671684769513597118511603800208669815138553234385946954161374382933464240692466389083691541591997418833715534587801248855712094256108743921757993809102164232878156820882503296992939604010651962435516841826348482392582708177015838529076524238570156884817584146127414359209319341369448926728609853162687822365203367302466968206017782141156394406144934243515858153134237678843748808763542523066882121277292650499073815381908570018962501902948292937281661063108039556573212784682605661834956825839626967803295987448207279607870677518077073236142212141390798853365523794056990493485101704914962921223256039540714110445124284823576991886144533739058649067983743638789165577999511436488300656425297071779347541471866456994854886046844001485138399205227225708899698980504098150355533656359899300622102932233983635851089585481699706241181301287504485354179863967105144747938541357307150881536203165854383658546952045396921065865610231267214061963684439311980303906816272255907248853835780456749982512722521297160585241260358262964343102585894975702313219078523758533027977726192870748144504411130199945609837134743060732938736480645799480433380922412535768368459618652542259915691255163891380906624994187761089310056884173870958904788274432085150850438927996593547271525229514009216922126395612096512757523266102481635403682942596810092622719512056263355945076266281901807404118311749808496541297636736158337356458301160366375190229688489478555284571883872319302351085499363912532733650815178830934993957572028410169623770492137372211200078801308796689802594760708706946071196365836341976121728182399540127036258471889313874003145924542803455595597871888894698795787136839989245599508992424469449768126157747879773193154526364704709981504927447417868887777432807187000874386919239491067670721677217335157989080017328323612769133309105997193561907598598980595226374512153684897083762954401134643066666705470210798329158211431291937346485205464444313628792694924154891970897000544449987286359008077360928106040928560540022533047929851984092776535283382415564390720392716231661122443372831932997343741278113262429341677577951912336073401476144872115882043709552633749768030675723713617002185945015549710149750757670662030875300456381969452210382054295973693243587793057125752734708757467757908955119513515335883194785949993710346274890906215921206180710776983442571056428581222344726905811280293497668802981660798545542503348974122834565717408844330466914123218002845923810664412608736375407955446975982521594643853095795497277561735307457119841651795815917737308186771601070209895880819551117673761617516677735500809143381317937620939555050276232491490869042795480778360675820589288384731624928836874653615075875268522069827444619907340430439630761977172827516504304662509532893129940775994844285944662481107949104912243677474548120686966283452895490355456958908612960785375525717060650248043675306298901859850692268909058049607123004618607674972822625446450381115223972340429455068667591681551305332061953732897322555596813901561222237901580233672648280812782789029865865666920577657236445410703096854343778053407351227365029059881288807494401926566140252160298229628829814158823013774091123697820686779110844107121973513335888659160231481953224522255398755943335060720279976561182164823031527350187240409881408911147264285499158959668223111704666688338768268804913649911946326532173217772048741582676667051645675288786272855061443925046745768914581971752931891649254753032129045720971151292719902294315430327243961361325287734217492153613121913081794367077555269079971919867994004956101090152779481567376096728606546856149796196362534702410537066702323135687811921859509173331597253180887406528436087123982848947042438805672308253367647708038785895404814965421425925632149626148205302798075253906147387122754266129564356489200101355150789969895950723022414850725104059766893286781381057979263428381752965515537126774690330903356588774875288077243725345692179837826298243310393569024360912345902260248025127976882353650376154666049676342703524285261065561686042309640817096045347824127945307868515050475060204581318588926603493834359437197764037621575858048880008056854476281919110198013844606181147638339539942454373790742984475307288068663065116220732138713373872585350997374023949813841570270121623664907119569514256137657245587949789148674210158270234842591436077753833466316917967765187956797195368037493768671906103343742787163539260271537847758134924197477878995923093496824570267441292638611754461507154369074928138710866117791127979049128800779325711444324303532281083581563966448293254952411615141790928704930753249907834207622842496905692809840053734146406338049560715878433444347073562785431561330497226301518855684088391403844044409001503867019152384195597464250597997933425445324419113939573861502334949309799562754778157874072030832624699898236451453959130942588445939839064625462817560307082854803479910364433269109774266569587634396907794864131190375578162229301573717493727172793509082957955418133653396663832596147826009814323123805414980819334385272875104131134555934137144110907499436584912051702077922530273126978132798674369675007641794074459412191343235563235164967711195243845953846870062927316741105088319234460008608992988177439435918244975962596445376012687501312599044390336274777752902765739511115994520161206268260956666370832555275875016687475733915850538641692714950380864129656056593222693163890652397788688803455282983737040933043380607740989980795118450836362495005911041146246680898921245500158935690007678590777952975617473808014632331294664186547572195455870254010346373723018563477663640071363651950724002847238266685961972961977979573667894866220360786810036563497552351185345069878040321424463048568055779420437074873717196626040602738057009804977954682091910450064158445439926727791303232319791570866196497155139475320696357666441820544198340321537103359197003754859576327829005259704848788074552261204073851534452687401297853789705925439625231683885793337560679836915638041421662367712780716810567648551457927031520182745187414263533216253122615734230060691533998772829055223577911752411272626062090703012504863312672313158329036723922066842009521659684134261900247368505724387523803936947751905446294122636586777289073188691256087856227742131938238944616412730578410673690096399077280626588359268891797514691786174942786112366980126222679018459043792744132328204030232106409244415777798037148362889096420665255226501467884904715096069630559515901958663412037912121716373218118298159053224455146431927746017878091476263090749873281003041776252070445581642791470050638244846068609617231303899228381050324710536299950075369325750764563105516116672562207514393073777984797706820102360314297434840427412329854141130888049803013865103251632092838598669656067968820991817218202766437971979541857679170582462992152314659538994203200764934263563289718407366418901756233223570007946537154425565478435503980757199877762445227835725011624594297504477247497660873583389999049226696093754234903450128355700173342749334869600357541699860806518441671084383563515722847448792269667045276590482715993183295463294580043468831290266441649668841494115140359875185791228005557572881588089410178843647430466318336316421980073670935815300235315233226250026898925241589721022440707773796461274478741705483270947383649744253919923843140560583680182113085381701210499687231755179635594092584219526281402610768634737479954278297883045589500495256004810487693840952868414725569499981572687377734262902258709202096266278628068780832309310337094355261812135540943143144573616252180853165354779292260265433541842458482962775089072513182463797867378442373233951129243463517745458378832356881185028918515660245843974635502729698970813911321822353110047218807723450685515339240212717010980651189077450788584822201517257778250353435752683215332826267355997615978951615391784327793998938934648374230545045333990018248274838849764953201877693169284448162969920867216665529980994559858730381005417377722677451503021031089702275077557646783954514491761681330899626307009942751293575172715907806000160617425268907310525583779717302171251652603613168541392750356774741359820088660138527249499365426477909213108536303640458199739778456732335522950578782886432047274446482087441715344136344114603980923252853771531186065309422717254889347435168201144354052561232141320186303697116675679364381693440910528279830967133645771750277926992225027147768598352232658929265320336726652881710178524372974501396784815679589731536181254605812871837500779165720787178285284663396583119649665755755961150964701667020702663152816994661494270530758528071110459114715677393873962112167571615916459230268549146504199592651396827002929324063352900441992394969156467672517402916364230171828955875998201513623295244533731353623972642893371034630566069671241502587172974852419456624387102715989609342403226759843393151094764932401720379007074112420487918798014173486749429324693950441999650237218244572018385044072136886359592870058959142470792602704288292439152359176923778315075338811180689051754895069189668258577596985619944889088648904550938039879934956046640466789131331288039834007938213115147663358372834011410967839790352839993923696939683390915479551910717823439712557855199374738774431718429452871398553789057679103522873742515894201381842870367380423310034005157479944920392328051092628022533975055510870925971833011361421682075381940683957708781966151039501003541029592754672968904381683396421951760455454160583041799295400163411820891636519974242729136241352004648683882770006843107879637845850694775616516170677424051357887730345109926373762091903667992723708594744104194416020162586923020675765293944057345244521661377459048573540822602820920007266148028758550555938284606938930577781681135857801340234692201135975711716879854605824570218325144665019913741932099450603938036989085158246300216937300442359554228478071475669837329361103153997270798196488670868409564169364870056652305655166352926402842034197997863792764751773996880242068487794063882510281065085474496417555414584495637215578143759653787033450840196923891866306929642764766138230766357713471354310426619147714153876876828590559666532993551319228542466945104951455337516581765336782552599765907528360857632552338361676284126302029109135189380857551487982053117479012781917145338400813956634380487020434663402401444545897029421160488705870576967532960890737188885279063343418408038375964422093483491914779482970603236497605187049381808724968235615498922802015886471507113005008045610199754466538314194759759814063117490737228499032982452117576475761727081005574505895858079745867945200513987820982380356486983828798889822050558513554968058259858149219415503314915244362349576556112386653652084888510785164875431001029927636939170280146915992893427425456608939093037745581215465142801061982872135648743191084232019488491173217813176464056113644691989113780833997497036935882320445171536850178345008982494062853009249079600563700171875600675306826559236037384738779759622870689195094968041910694591853444610710092302495784944973546113776044281532311327507721513599940430711652067243432104151348505137237196578362592734826630335146342169020724892397132826160221945034983353921973530605933263891906332429326334148687133556122998780746940991780811277264446394900850358416524522170574139609711547050936959563378364422513885590191940564401525563109543069648756051655324321255963539976388580860261055122386308111787177737095126924515848136102243421524966523508347757338415907251526933714482890393756432274580625672945906705032495279185035099450939909301369783792947439935278623419175806243434602491022117514037254429672650856992371939263606158622333666577297021643294081064046017059531225571422314644869196170275979119105663325489577446082576189738657126311485953293220559470300778044692040536563708527206082299374422584144757194980230543690748339614430382281975624589407933012867794746494832601184537745626696373608121918244427925804157410411075653755497519589588475157450797777523206526767108736332637072787661850094020580925608374767274310212781674763874548565626238517607981837359436788460353260474323983647638865285030643931195041506225081838321200815580166671989883065541197891272989592484938514267083680551999312320420605769797281437036467711126567180522122963390704609908490994349382539471940322773688014737805083958226543482875632074799173259100290827333787992645386418516454790063503729339396501150926339434852877402666117432641327591403974271350863413319100844181863065892944766010829472181258215714974035641533704141009814534108362590355052706562071520575237433578086762807610216089180265287318350619822415497717311061976733328835005897119577282107105749677019641144431737914522847332003139552440255664340998192314217902065495053004303936883343736786513384466825611910742155769413069750564632110207878804009408990225451860617754922148228505408258793185223378637138816609256975581235134839767747239625277998556408190371241301442881605346851550139584414067790707808167114664489429229527513883418788119020766671770430157354216754816224590618101041510725849339717988126897374888959574401651435319482247580195735275066544307455112584794761542210122315141146524192002271645166072412604803118836454142609536512310200282295512119757682978385893817399103186305134651523992509479270650953505406675085032433825729432526818020621372132676880635028970518104876794395826842184856292725472948240662757325257653526752291475415678273042517481450791882640108426559176013859282170055310237507674199237928145925759787219502904701465360884858068157524702622382027315731337163201285119639367846911892920183633665519966198197314494637360704214554824113792486516600569532796461389046296343027720540679284011204459369737654111274706585159762398033934218646092887528048448385372277125610724752687680085232296495444042977255112491170532761892106544362525333775033737995105050796458815872017567538637490365108385869783970875933431495275705020957914396913378165540941408819028391289327171803859278358699114970991997709375984472653357141883070011666071748058616217136553825698386364222560638141291774281216338985797805848340647022297056060878789841825916303867675084679713654321713506094660026346328440023126953548805071160141185873850137123439191488515990821375967549240052139625627720855115960373192752285987532763559782563907428777723110812795495152008081718190349742843237927031651252965384619161731052515558415976265663571790559852227112928941468681149751496478347928248245276459617784773359667166535759092044354881046078383578050736233790082872924463511679711014725791805182623041951133046498739864030170600688245412725287201900638598963859557924615201985562215952703103417228010028804239845130320951329343450159984213461755848700257281084897830292064759405118637530693623602810391422241547747749859055158011609273320813871381446292026467617515336654568438108250053098782773371314980148761642030922405583199128324370643855216377121647094100621896682917903921162753192975403924760675457459522795632854934025848623379731652744791043978555952881523735310126797069525550234065986905183681246892728706439335126431418975714526419481155514949107955038840560937195507685302205841899044353910643549316407275555839553112541253179441197661222967924734261666320826526205930072053624999626634293960745953279471117010661499885786512636125711141203098923004238047654411446031332147891844425600552854482184572430103235589297069992575742112751869806562794779958686732636372631473328367526517019526110610421356193197113700958330698656496705407552100538958304106111629245270408832055157372664162237487080013641151565302611778270500668236224650419194386877818150208353075529644668049928134257555264939463485975975274683536647106443309488188483738488673805550093696486534684195968192256495155890283696616029274896550682055724316315719895109156378560479945860038578820397034570235542019888142314006339305808922955957577751238931606332599791520617695601882134207972998094367892637011524254956115216132630596017526731079931789823757881589605028211980059505252516808226260846562994225025232695773375750436743094274646466019640031238767694335787698343317609598558268994046467429099803493775896693602086807367258331191920089763686180825049687784334953104902133297657145100443614600244172200307118342924035885100362311507750759223524042804575543851110789388662328175455684974855855496016738240245680459137879363128432383197088990301298682515987182598860637231023703922691179789492937957780535768651476343726477590834752172536057242770028101010423862200504197571337143979787186264705693864811802598820878341549080697186105733247652408600530893312801035034461683193872548791072505502610464285413656838734529745941622354959364429493330884258958921565455858427123203215856261878639979565745667511157841620344513557356217733339926163624198967953469564386024954345794378120573432651501486954315914177822880821592353969263594475292916318682783425323095430375121177052969110860766052791909077572762427116523273620087619535942717633006602523808927286747521378973915352875610260915599955017282036531145772617504788166695276491193700584343034021562133364485428158025661061662565747227140869786898712863505298624462508756111524610028713739579547185956558618666198141001811135782385127870792874811391839721282157422389392423533020038989391081087958061416111607366354643996158041477062211258030385247201964097906272305146915728268267384534794659430832947497448578176566311710900269096301858325377941451766717510891140891094974182637228535238331725256853113789258168271958458078347271661843280048352803928029565976150805885168520464888680035984813439789176422352957887758311440010211410612574554823946897431772096972133251134419355812244886624014604961535487576222790750010090650109253192490432298414690572531329303542411289517970916048876896652707982599791793563419755582744147895271032605605245184938057362955846944364388823996142561084696557949827384572463443448119430974365789682160292030772886159171569764375210566369208885094488451697887229717247507763829929574275726628161210114258847308796617066375023266801874209553925934924477998542129612256783504821319948333809827143528848440514566232211535378961064701156832079098544211122908554407588650172863869644118491183691845917621433732915991873320849597765322649301066224868165057643713652715336962963098092564674185441969206836865752670314740356197175811037358501764967405262979202850089217617075823118109491085715367839902928559009649937386230829948665480521569101463485210802604727681282699332659030668209246292004493770695523812173285848805569781904401796248875171514476845757784181095842261216636028535887248052838015054111372535140768144924351836545753294240269720327702337668399829429742627342796338162354059168986252810429756293073497450293738533969379173916053362691030910584057223933614767447997766433586679082791196064945808370545355639799639967718982757637700913200329906063431780026914594345261649363825563228752239281916527960534807508556009253499607932938349241790940163141921909742644658245283742723300961953015856841610972453872397721193288113014122073110624355645938055684484016763823871191565032102955989189775822263780969700061988386874641915690452138031305066371497055770844947600633892756447183938611447060006456230958112690960424068540407739766063635951599044441081482320143707505031572157037161262927756869563759490369049674806914023131578694740177024770392604435480619687697357608009988961189231268307637383823164547820731177140637559458032632067813501325031274670017482894703513518774940020745262730527878547593813390616885045092968743820963862800133949346516438723415555612418492802608241118308169663519321495064484095136595769130335757008509370876902876147570210752456043627924372427641467705038466063327730184440434742044646730668372691002043010925993681428500385119720490058331408191213796149877308531641694871560096501713977775357918067132110627012583848670497509297863569325367903692862551948480324770417839221839387860747876251427029428632573486211224369649233418034226156656386091849160814813718563606640882221021740734032928405048140380029755435202253995607439117434134565052561306284864354832797090562579346128384132742850153492009284382247017897491898951395580716790760941122827845378841799570729443487988177984442821560199192761421612515585968720330073185979998176497170705224632227451217511435040755672213842956753282986625815673227172888564039433218801368871771146729134272377692302700959877731433215383537916531348094374172963697620791272132367377469345903299622125653223951439205072912293069924521315587456937115824492601986043330178077331129742484895482534432010200498280707260140640082935329419606916877033040333696406808221181674148393928653177721967617964321159582597843555949695147234112426097249375347030630627867184177195967572052619166303292311981874681357049389116180353688535418844517136726952721003409700487665560818852683265607839522269045000988674756144029797065469836898163581308136771189435566565258051778390824537047311885568376902120566863863793285568267701810097235958532219594545268470545161217945202315335824940092310960840439955698674400455542926433563529305303934089637366120371838951409341323029623015638273852777283294391883871323106257487926168959235931679336194454132050021994885656668258654360839258751066758537382153646264048879569549396619982228781415707691238045787434515781927614306134493963581852578132055013468753304752331482670960445043965696317831801671877856978120231816591916116794325340207847026447093480257706412319635922009946339509674074511229876354424609093223210718877993230750600440197296921844629260272155518026110808248864873198273465356441600889968922576246487170658258881732887921368966791058440813783782766592096968668461957143706981463474505538065749498677166824321304120926421846221940985808830634487153645947527144093260875638026641583390950231579384970946065542224942818491860066412078839190220442699818097950744893228230803842530706058974840837834587366949658956692567264623515021607166063965688101243763988728401738646375771610261496028974286933170194187085342035274074885955584536074291805484039564893929050492202744454838641808305313087938190591836719069989582247897449676571395591691330610716815660459878102719315316668659062360403192403751175690973827674194802333709435135448336580066985817437708261807800183277652775678987831668255738965244260745337000075881033528745218152719193787777875031912837023696493990922571910278941227382605962580885871788110711419037589541290829541375630615436358959845623371604661376576521564515180017159117438540810966942310954193757762926066996257914098403289994569132924318723903156593302631703997248343378868705103486085889872928699945295424131413424306133650690595233556260067510829910862013302806805279212712863411802338548364584705285523854471120474671832919425621293259874958673610845310202106886056102562181769727892080512891701667657978433510660211033896838218300318899099769866763008250877565388826152061744312788587680440092371205628418475413337380571904296652287217237603400531191993751511646716158251475653147870557300824094860394591626654830178991473203718058565486930117305947490338189095544978664523746625622095113184790078141358227772312000806113473978663027018007711556825949421271616806114106873843065792059135020457816702683590559050133632663508256724111592376619672283453128109801969049653611338538657317809084293682729482466363099369319271458734415759662617881446890374153299653766415694563600676350827137203960498140811747524484177794460794375383375511919122093634391341253285502771406130850992118575844731179616342368515571542622741294403091260109427797255613338843257350095022040769469914796151375855170473716192282461221309925380094045361403736713069370471359288630971433775671942447750641005168214078560805336601310632046114255102537959096852895995965902839045197163020715254038711883695859772227717819391507042984584836439770812363404487027271880293020447759119818022527704904122213633440916732798592207385768038409236387595655974019935447317163999587138343533979574057288672229395878361793947290107222081779631904406444185608273119624323945884214290465790404649291227971536218380681767313748438190475956444600499128244101132852858577317180567391808411669374062113209405889676213742625374035375269317887682647089934499443444474142778843456335432306752107495918501391704205613476720508784177318337280803140764360444748203607283282096578516425099887862280129928166928703256329376675541273432951323095507258686541203130853738511109625563772714056473378750297380384953052893129463042025443889356832684480249374057499291523347095728747793579865931801307415359119367361052513101482946804158332522067906411673980346508930094423045905745121802652887175425985599519090317742246509210212585507673147683309126902425919967544959436435173371207136125440567491738535782057243544995881219645393948232675748199749731044324562778251324095766439071562994387176368394723054914893003996042527379681635588430247581016208468410610506777945099180938360381879917260870848098951699305426466892831685604259765183746343014909064654110280662902786633540751864609538420454951092980464672863011386779581069699307149589740244909540222261314540713820848987531948598064314224884610318554088373836774767533892048043663764602523781394315618945194315433543596272619452005128605382093353761293668028880339996298592641580389696803904224327232063105048586209399336928466105747627083553239876586866187250200890813730710570268951487761154468991586399442079479886246975988253556250867458630880614804130884070855867902274155343521704926641712417055610296479003351018834976660612722948728383927465449017616646490490903176101601591517760900630976609555528334625061425864106741412632327135687726755044750961481654077502727559308269837941232423936725446545152927190807119491466876505416968980928024226936738415808945204615640662846481877579025580318274895711530138225277238574164208066493932612697681078122222876595251338184689164240321529745294136360167342886834740785416209676088143893212997249503714273655326440041604034786748858936486226939800757517346139098974886621725164589416763436534754960668617169409573888350613511650520882484042869065922362189136672156553022666404908525763477666459585234872620377691831883271541425008080629167193824391268683183886860974536825012720447798930989622939454720667776535697787677349962291570655483065393493877144660543514800237192667716875512020257968671243137736747122287272309922255825047413484623335281862710766773264664141827356661261383920530644695633852741691652693742450450179536310050417599729663319632015692701128262894551817192842431499937086602833429542589342340915138754712165991697214807701523125178315094446921617107980531760202964118873642331163631832973805148510090327123161114150297753474276955307625496980913957954495715533442195020260353662453414547796060624915456279477044591296878400237374842467496869528033807046467704559508967006181479966413971064560586385247335002408969557216372075776577843727761614246066234635373662497449228547743047843370507733721626403077694391184202188414731380162108976722464625817566018223492619972845744916693124423747262288093312975074622512740182876456480619038469074939762852919979739979293999070770537215103796958839827013575807059367350315574609271762379620555039782103476775116906882866587564646536244497838321072430682887045889731236354389865085990871699710640964509360352371609737694264699284116337106564768954690163110152970530570210878116701043466646799309085143887390687933515197821203630541254731341788707659536864145678078227871650557821896783394727517552885196366069800739380020334503675930271195408438114223964178971207112869607899425663809700177857259926723936226339963233841720273070349735572864621387489221665268891139899715042445204144409451112137707251960733520852025039538898933267209327812518585490536527072080427486145890166763392918408057044723798700716889354998625949660567535561527971623154579531340044248299937672989777633281945883818504661929624851789083493403151943527764850607975188821421286114387185964827806843698146221907199361339606662531036184672318616315172736587900741270017052237596657173878585009013248613631165376680195676078922077431204380374206759957778778814936252598404300134657076475415989300772271803421319189108915975914128871109765482315493224052551979015623203135100382742130341704713163365422366195054365548042494815427702211263428518297957937290656027937808312663227944860650575731320390052336805973852850901752221518264601579231120243415559783203688559444871115914492187263385561689407517634718487045641887705724160737134803555192522152681573299834913598100181669786056480840676119775253112233154380684206132399527947525357022839959161993790080237897027321063142263983538811266020259726882792053267134134515916306521518942102095560178797217158429748393352850878844541115208712192452725988986534856924237236256422055088970982458767523902102074290513683033288782174296994975108007189811581262391437646957940633662138440643152200387074927460586129346904030645597482911901096516530520205381000265302706432811984561447276547870680561767023165122553075225965988381516791868048255267759826525899640479173972808530588647323235871983074338811081969346224597533110398376405950407685833998656924993803144951711151862677019686722008862615154912908801814894404607879946341313574228376969656940210793953659799771527383228013695893409970164883840098500176653063180150730703929426687183755442248785970589972978918646874630784624481837064906511563398987865912743415854820116069671733709995984605235235105772440611871081756752748396476548047661729358625905568456397238922749181766209725135455698599989274506417515856547051274255581647600289055164913948687053974261132767514552073767806918162647313294813433107800041080272728143689692729195625640683549906042706737241461167235183813335292084792402919217470567587812561697627722069517821772540553236385024030487409444656915664293203360579737721823114993065010428707738665182697617907709440523468179148331442617576194739840093214611255877384366682318310333433369345408133697664623002606114322752682193838127628253418780721602938088146519622368866978298244463167913798633087978147834251750407507583976651807326446251488484984754228536935775728858731350588740058939072356879967636193201159846868267630786871826592429296182657739279477982781848831594703769939680473516381872088140425540044828147453987961556256550588823729223633502198006443833446975478689079305883669295784385288691743794986132575438930673050643940344201464231161542868697277077438679342787545759595364161135910095690114922442011560044632039139989992843838110856581645183648012311522694529206772679787083877415621588027671703919942127770495187400412441103944951563319300249101722644574941592880672075214367589183267243902083518129882598524423826927449473759507948528631829568631821059934099481937059310574744255083735715852506022226372389618148247567954404224672316456983834355045846373017903464823671504761585277153697605753274447692648268401995513833084610465401261533904089477750899505954475063978226483007013831150244631042940432582451710282863401937639662570186758598855207065010458346222262718334230194274718412847256927019567586724729711801896017336544920148089006754094392197822807229422688487645826210970936958437113739447436078333649109051584808909660754995698100906437986267702702024872656034284401109655060027846024658987577376114451260950255600904676006900947339688348950260121978515619237255284845849299994871504080452711446181069853599509407421928148928590052158614356875795030342273020794045177864253779363943386338304188513729915484336057875847820306115508196081809077267753285054255292855291595986035287446437858304105005161762380352663076830205586493803864299667029047540832736684967274956261951314691500282312354788594394824127233873356565321631650986566791680612583757008188983187468840282915519333340488536617057266101932867542023233049138997996481007899525349524839120374458890095020425590054576511554280743037238888807051566238710620036233614294948402471555376852031948758183681983025113409334166656149846948433314309548155391144165811687441736779843197121995622130189920289907911259185289546395594205755945137342510730419115546539093840382486363011429107800677309032343838748270748537157991282043181446231414796940461551577539524250343782504742609411552445987444004506222018682059134424038127190304362523189274351417325484462042275092147445971778015687419583155137076825304182248906166295591695053820460688426620053681715296762022136646117685344902882526089715018518016565472483885348296234411535716333541741769700184491396081349223902705646297177905047137910748152403031166690349393154251520612264682254090549854487773001112489412028515909267590358263439026220420399685410340795386623612253945605586855797213065751255326111383801681707491617882704949684063546374917837229018554688900643915316298149631672519791426375208687697154443660450559297719897659393419237650006588936557868865790043869142631885484447275041373453136029992438775171573720362130598351747787537764254193683777588135307545696730460633225215479969769109514245094189134905194424183648002846280303920479637500821497134348242370423434842937084252289748540788727595062696575666949821311958366045791939958966349585884244683893636769155941184009867038878931051274340066000576011240681186438904562005388178401217655832559957710710242171662574301246604900142026962145337646521113068838470404432329903909965072199929695227068755412958722714651569050669340026994564755319648762335825950085450049852952070818668524817848227419915163356359378676032207046910928636120304429080792897142541941390058374608038674726101679717877944597638507062191440195404262464878055023473325450771713345742102039583372658110462958735465407778589239770949178932913546529982877684618948879505292036121551061081470711560892155350340113801394767711277006493839280033412715038447486315022962719050823676217993075451042527546103531700141542350857550566192690161985137914652411667258141169785947766612900443664779843082333859419506470746965618856214609790650620476691059148620104146684219970664019892787523519622789090642167151834346529479096234013682430237343190574565055585832621561755609475086735827710066782399828559952947120498778378501764119143755507000659517442528753043476324394275819042756679755441103319126255679617256111468091281157234060304685190416387750562347127627910478657029453414119479603528133694046655651686271198144420220733118597784286994919989108549032419150417329761042935713618305461173345325084864292376887908566849132512442702919351431247330167497556763964869443220010121359365290010707178934037169682325949651904299014346153276586001051056974978340951140985648199100140687474233762760115759457010535337435601590208406166110572817980920851609059344907225633326138721612983418820664507171650399554557877520841510689771832831247358528163448174903193198279471459958623678697212763143445509560470774810254940125590634523262312206078082000016428167602641776678354082381184682882503598802365198351255337456646475836250551665612096541171167346470627404726119256476683229809937519245144684937780763510381734447630241556765367937789057388908058849828381655023852440887364433693869249513250880783186464966441701709190433701179897909980649655575047119321728068307832437491080726874949081229696251307014189611298151738870728296956096855984352989422860174456682870169607349548900462423809739374858705822885254815601758175309484651819989030568685293220655209569628937006216812309776582793852004469705173741633525486734476945024254794614952910357404955076630388838554038819929262402583744772070198567108542389031497872595681868709138907585561450266293585829941113857042751321487997560950545496745526914373366522961306913088777351909932963235613524765043097263021887846913287913095574431249444066065570678651139108252317833381491641498576119496255439552460764806498663359805204220808821681286782159869264761046345755773091093575809164577880119015242776632403512727967759125091124454044388579758359183226787189955799014563989171015501931363993532851103312190379625243146608233951066363029289384918635077764267392847638931644530827729469076367161336231085379450604744700063225320874381173653636696524806657912059315482142822081662304816461078295853633434639937796093326643775671660948364732416473206764131653539516186559710467713427955045473795005026751072862276377508154880069620231165180011993610494861568816007348221646547983130505978778628621275130623714090028561353165112000385196311030188770821551970646513666170354422548469275801760174797666929465715139663715860253420754607671890519692985612757314397356392478628487227797600537980211334645427403800295723000310538250005521546012952842131013846575852060256572541892841639609712940488121448656413587279426722457464761904685642361102288055351823510597487478707152076191130824938046280786036572065222372717946182081047507632356043366330447089893164663538468186720627976457483555462556502708227878630088946988518321239741079571209005233554018637468329210494780623841025505771368706758999936869872024503258552917557567206182362076878953333196510920127918031566589731886559837468408570278688287882912709867223229415752663345417563326799772395432899269441133703630844191940677756243172924516337319360160971558530624628127723237326614361657590766393576321202010530892631990460673890468387348600451537725050427342697674825698962076832960590254757260141235632888025381071956160875062630671297986726531906759926028598303907042104589996292501051162070319580437535663603342444827597456734866884623100649366927937496968442433795660401023918490422102655771871671664093178755460775590498792264419891749218928672423174732779499145816006478227584601574379248895213280789867211588259880894660183923152198667548679158338321410899224128695212262239533480374723665195864169502475064149814262680691950451594434610260632742595194902606480641782767219970775501760276937174122827313505896345496968608106196932665860044475063212619449614644578207938332362185551887225670489123230569211525986218367961850326836593787174179371675206529152909413910843353880523481691908508126842210901810019740587505048582015017612290602079481164670258899303206397231907648875584791358418918886665134406402963900306699391065316797357601543769299865438535183849794920163347591427772752153250036301173165905762936747383750132697883950985600277271063441957508046186577400091615917147404473283642265886606822896778815205632910675527597715570116442501491026816291592945335507921371866823092267460226471818603400310082001725461340997980769841870475942115482179856728713336808497287056720123469023249629215038181161203795071594570357846203565470847547276600259815975809607383931286936771883156891969552873632024276201569393524919016257524360717145516387854357731862405975327596992430003137911583738598212203219930883034900979763303236438997000774031028744232054986467516519443093503096111939675698267725903864360285374550230394970810040646281979776123649688604805761380654735421957547855786560274337249463512766405287510792422975890110471229999279978509691068176279269198169024993895772166443226588659132704671216658051334540097084506022204430780612890065259413766254808786764697285848044570577678624272768470216000345008546235224083263218705812551568187013960241888820888907515913772466376000376407261965504430724407245132675176642883263662881233312039296809644086982346805644533561838982612387021364231919952871494496221095134466711016837219196701972222705710864816609978628010408884731222911492981053149120945923413538594149440279058622642368753429397491191571477326273301252091271549834582013603956618212402101784702246691406801475245738339289977991147046831056642940945205604833597879923933786815016861127363025265009926772465264285523772490856668136518642535454839907716108623944354611785870119577872633865315987581948858459526393544911652360698278621578707236700684288172318015720395219703325662139794448801795919072175806404207072163291981507502882016919877165150731296925551636260378038423854592386713031248435768541987817264838149883157868947503798736206793859477628029492393515539276384265192186459486773383185741663886143267627231768854565250265079311244313266557671387877334911249131700297312330291590664539057687930262584025095106826412925027467319834900568773487028883154121477417252743430538906718763024795735190947934538051364060310663313057132786632145770645263258507813300255443298660752432827918228467786863861603287836869324903261688650103778643347622108021794028939186647030633491348816114973267331996703943382778712990902370029807716435657129911375732320870567873493324364402802682622799963307268922973661687864705468338014829746227260144912045990917368497524405681322485340025740831625170628181233341874026407782375393095588662329559000786342102837827393132824233645746325375961855698617889663954894323696200094851723256146960666716890069135676876252549020736150201628535874556703377619861249196126365156282055885494996449819176743841071167145730781666433185595593171285747144467084766251210020017346603332535405462750713049790685943378903850100979494030183317159554337660092718422962177618917052635905353919551279246108558866787906736586956190339204084764444190836621227044750824496793155075849393645105713815601595838157748654086239815654596779614652260813162862351217648278972571097598004432311551457359467293751712790064453722271586150645035878389791474914821994544613528592075258494554409806208373775141903289057319270564833910901100667490827577152263863773926379339547778628130088614915566143534517113158997300195446118977898648335398178130062468184338670273409888859402785578622782454683572670417643088501807288309781616522141394484672011552842043824942663486968779225107209158041263611931597960818254214161299496196493537840022512617134703936285672329558223232520107358153191679040076239126739088863744610284286518827648267499784500613681186236333287541751725187982383136969395307984347946974642452774281508306850087899594149113906000681720339978058679154519240922653631807666566571107122069376419908694155047757026365877019676264497361055283512882675428524586667512877073993149916149091541967842365642208096529672901604783857161813356133945187877193065298258935164303303712585551151339260918131105616347568138317511784027955907465629231463288052650184616199603080903163573085212442454037440416310919633098218202529159559370748832979540082958295936009299700346928081459765217409699039561266140232407697245575897664161100739897772530200068318387550443085547138456396801367667504525184577943466171938366404356653525893813299213946506172025476815196353553694825231934716830893624137227427621406235391329872106373108639212753161397358236158417454905693374637432851029158826665040179290559600239840794260313153352416596990740412647089600253947021983946538889101401651178365275426928275228596319663897253472733068945757070048365385828035181565583105600131545615975068434083955152758145211414802106198597789919535575698000890591316366096570765567970904277744784499167911336710072467219460729015119077496633440645790767488236423224058431442349372722083897770197321559464764151857573794588331380604129959978353279928505605283042071197941957621774995693896472375676744626910851570828450609849619869457716181969839006140862354901334566652202490951197062997923635398456050120311048410858647591092590908991201096612628407633168101074232620419897894663929478918098803033000056431586887553547357702496119706022486208377639460866806445540882323018503932593176954258410542329782096256140632623093986560897163915467747687279715841619570810842285816026660419643334066885164416681552754732553604143169038444376222834729037451834235398574783056506193114905730298352283362753416953379314303719789454952369508261674399937167240987470342563321329559374134801348948167303067312939140602799105318021536654504448583406064629850100461623750612469890838050037956424536546907507584979077210965753075512640721876601406975059688278497000272778942511797003076805578643973046349632376277783431165596341103743778577411171425724133129110935776884020696761043377053618506542812652721790207336862422887783387126630623459751602768485521525466556989175318367988138380224901168567640136069298300855516044653064693268511011976941069234923856393891154677579686793505961395026349849395638818602040493454613093913034325009357420849471092741341453621323508501233585588569930376225331862944949141868680850829182867205413578877892374823829807821457560664335070543526856213807222863518657473281130897432953948541398140316241921688737901839250729836528300752290122692451959588443681088491994722413456501368883696733509222830248341620063698552389585831498516635982056586436982142869457897197985746691421056330118992769577989129851184306320380913004217479181184776443067455274618947647497556425002860507301410622400289381070684962056825640136376039100868123799434967323060397090649087249914241692339735909563624267952143693437431775837086229829314821277044951159305425547803044931157045222323621612447192948240910466154265855929228799180808231537671270889576165735526859119008295066689313404923494972330157004171673847240220014473123978104146905627221005676645547704427132437233351836032012773723983482131140876279227143733179133438337660333169635737908542087668385474266875826905137450378198442773783215943882921333277359758771282227384035948462148687614507550889529267924137992236126758199798316122776494959832355695624479203457396021390163920796240766974970667329260299932232380625222243632415095601207791154824278712652337566723742260909178576453553901355413537720585453777127057266679530002479420051984057262915921374020910367939275120007120946058914499520043538618562461716304227137746468116217698396179421147317198899153273502400658453449192166124562897159952008369097264473833566862314791674965846880822683907508477387643787322270133743709170170849986278279793692899631030533872166973584002602231318269730108198864354916075600697999671816712921972660198497307373551073553098443896643780204762513833179474668347330445972198958873396094858995755508332871571919541663566369345476215957449077420731073532921351854387886883488659454457564569200686534329063763742556832289467639504401738734261397660219610602350239836514205057354226113763183308394980237301136538659265952325141132627036437073176781271907459614279780188153751750026024437768299805503011754629021402759523888395261987910460086880868916689292580428508140208193482549213480277918590979765035731061288886774015819514986592264633094273499904915453758278983489956928331615611384581009829792011969734892516936127680320753793414651634480508541537361434698716581439195494151972379974294350867404326088527069438878545562436803384292762329968910140701951391092036592445417693497462485210322658820097967704005111646352199564521600128999031266862069623058441921726183573214942332679928534755916880329729630766955171107596792433135404853119590361247500799536816410770881507154835877271016462387088859262092237065070358856033331986522726903609190057158731805520524138582977619847150459302781780170501309869355727179234239638588872671091578580387792568953026782367192609418112260683721757316491081159431611171100903590306821279825038484217214926532477213559905348762625589675796135451327152532423683982398226075297620638666812160166026392740184100390220639013013738768202176986187165461961128337890573373247191576458292048119555844350704153724063701594484040605147710836069923901011781458083868838175223280324994181687578096886721859701949277146457189903069416172591911789789144520801870662719627029607471505776855834012472528797684031869785987722946023109162168640630461409230210916734886755210738539678648644612827637363927996113918614318277468183863124934080458165489768484840959654456065599703371813309761290782591534645290869171090136496112975919700742340874221465416979124769452194881302521461471918847556646703906212156608281121098243467494292177376773418949239726926381596955193798558661638414639867986912474125435567882511584998902987048192659233414855887333609777333316971672202209470562278140434292914556462270274557468821641058272956678748470177108026101185782418338084814160574988908883031720483335796336476910682696628476350733895731434612434720393211426220620899623216019912492570133281235554335504404869090285894500282282468256568435212817777169433058874370479745166724123596208077102162827290836276543074689065693037326446839372971041910526852151438506073421114000382763807249418441574811369020817682952143808920146004043741604569687534261589723518288002826609796675682427218350305289345262540551075712750541739413911428935299946677854300399387485183339995003198219840824780519900268752666220186483203649988251408081722526705029489524728460023805722543794793504972373912280307372766364049215518538132311897861777882933052196339334010178123947962194665144823757738607340189601103754774545411239296001005400708292705783897034742717417893673962705999396567405530709850986546400862352705782334935090432717289993326717605901677989463852900717173917445483114538838939552155657592565435135968534362973062808216798186057608579001443387414056169451636197826039409092332853970747823954515753021392864811367333603380551801565338009216552979854276694665933940590031309576896578289109621033940646219194245647228589712891101373051161231797464137887410789322807067816215950875241080386948298586526707931521474643943100602706916963648769138046983882273505672977662885191143263663559594442157469456721855309613013273774443298234454962029560224318424402498680433084167201122532956752625490020821791105259928853226341059501637032247215710179059265931807144652611298109636870277829350809098721006408981630837589420965711816335388507871941941157918603097980506665517336167951673207977184886872106725055798072126056933082035727623388591279866849890336010782074518730287882420047941599002911720011009453980410173906471121564422768916890470884574626455449508520056582065557180198977978826633574223723455252500554536183549823810356210460625343985557122083420272565933079301330506569553228677053182878186458654176592367638329929171429060549543888363000172470163002133943049738614352321913353656002376361677624350924129825615643348629617283172924927156276063674593040460650899050674292061347508674380442772329402308958899590106249681202567622123090534577263293157702506538617948079219792314980029802973902751214573920893346347334426029282715294578736019745080506304491168124662240411448953212614393223397494154243017330013518328187331508438147383290642179942868618293080925217502663451144344955171416919506507068968892210219485482085465869603468360839222424897152937154353878855077877129536695092139198425017105213954254537650544570450446298814481606967270456366247958671982722582304377985101721336676656153651419041497678623747003546494644315069669319026396517358688885544808715676151948511584047544295128597608943221738847541285023520383262327264141176474298618566754010559192301398915328010769027487326739572544773285790184472139951368431555555233559891715519295252150491046747195291993758208421056930159071666068415604739907825558013466857030124617994448505555583750845069968833838167091763779723329843511890103325823978472983403263434715256112233620512193975820785842755818010267117808983621739225755425245668124225025998853209480744847903109544485485361975020544203100870610200531330644474306275957075701459447436013467838296769655218295979957622909453702462781845463145175392541293012095891840517989986920716978632399241081399867164863261147651513732551794807381081323162676908445680458424003963247295184126768470846174821085282711275620180202273936724074971842147696050580927046799966624975990881395064426122518361244038487954478082415958677443406731605969987486390754400727094846561999799985551920362027995655490534837106163202807464422515720651830427117855294329618740593447641841465345743764061475835516551299289525297099903818171173742627815154423271214947787229625396262208053322562660714072852785480879461840242352397038129562706369630453013254250322933970397543490877197129421929319976421625104454505178336477807962105830559741898403080595020049274356320596601553395041317861634392376456778783435376238006064836584093937654325153538606029709467369340362956097822299719864409583091294837567104610720597509054119788329670699329734350481423301052601610670597775255601675888656014923684185095361934741126181937763400088771567389766311014485939697030134023187575427741100717454327800240293798101731322377302031306983899387319985451207869737403644574658200069184966569114279228944416704360726513896957147415564093582685459096095007309421038120591022484433717889209365009761992220584063737967685507602561208671761229350088426556092395536500592302784997448034218403398579207290928691836910965784638612772712493961623599433928295133642296689517756509141497875032727765136675821248502773216224330607326180670132228521281529722702362082056152487104223802269770825186659031733547403528876541535820255148771021851984465682002690765162701343192139920197868489151108243368706587694923793834510182377696844643231471836832541574931239363747865362849660089685494765199933326694678804163858279057459279083544600693764497904655788810691534551576563555082104498231180649366298850516838394665563585008072930405737172660817456003537566005543013705298535893684191183849452370518522938290691999298318762447320696541942414455627793445380077602993374888283140498195497773238383063742509575126731738030495461034024679144142606238525693443157609951987118052270401546828804388364268526905863812637461585132659585621416689873842046171883807287351613993855587916130438247644992304412931443044614803871333817342882926943780323642391562790808040395744065608914143593696478302703305742024426492825289126630941231532709927594849478215943649681205753081662474233330389067843504351611392218105245338353831441064750258564149485766934572864064575518217164226776046202688451741423825883600101349250055545206383268640381612302786013332379452330007803403896356534111714373078801785303999366875343556694274300651959100665023350881286966851392542827827876922235494478732834206945301806341906288783631580231274388409469512158286233609419067933540035830110404988710753750357443249717144701949519914987564966868859315080661214926440492455144774144228858088859202370301000058197946348039442009739034540620578087238541407278336473966666473843684355219420698179249191521120856133528648159005221053358985125747066717541521744733680895756004844852762025778074053376936427564308609303878927951707516986928079930169124944106117048802067684883679029901962456777759017992271018915878359471838073135428240304407987569643332800073032079402790558588426953887639117657358327855885386044949542432996745517950758669316136433521543483322046084043635690736063604142997276195991371032377687641228065785746981176042762961054430720554088404844828613452152769250336557102912919059759388468878606568170789794201896133559666887372834790579918668873776923595860650952927691911566220544307734727907848717261889715621894130177861142119475472827408640602693348758621985300025393163575457910482282201398557760679368346896615100795752222396028700659847584884134166893315312548412187410757937195697604299458239826011226578323941587863762989914448469161626523061299386374914184698137634708664408478819018355432095991149390910682786249892548535657095421924849945316102011906927756711226508535598750992727971109504509123492093197739683401826857154924717174758752386633256997499955092406806426918543855136661821060053490437359360266196591154951445353377740759658141565723872222152340368600167298781198901594332575085957414752311416793431658061784294202981463697258782624938479831186795576809490935619523110958456361096619868985944383410267881490960697890191202208946340970959220302802133918976885825058777302433298107415572950221586750796889033046042503165757049171855431042472153767986874517722707513133222636957954932020348130440211531850732870379445313831091959443429276913266742124271980865729656343128068553272633923781399632103687308273041599241646014610132840388143369569502943074754013035531523071402353798818475128118683286294041084959237909185201400419151205762990547951047587775117336685998043663971139340568635957579428402810144659125065006425032518145291839246548822221206855129948556654195682907944194064468797260456973771232878285771604967918995491423754246397894241156970440925629902920393366527933637583737082658494004373213641098358506449446782874957598010300816962315595307235079744453476261463423432712368794317844533542933726495602940622763380710624110116451929326911780259864212809953437525684923444046450003362700024510681961950148892118078677297171234002959981266720965795199883309949733969563064313446540912196284953033952198222608590643142874952274915909175463168078116497958658538998399910760213314854135915331578310668134909831942312328196590661997126868635232038596967321287868879333953289898891377484413128160114898078867933536920117049583308435311460405600220395065327287710362824838249459111620861067178772249707216569691137498249534707980164038339167021461681272295529308243796207278490398903784365546543501260327198051483068934742259599816214560371443125018186098190669771719634525142994649105819450470790591347849790199910704723309754513737871354924218404984000032868392751324335591460037980312937841209814974173024817484066250073240157392104275477544533549738879065776117491617019726934482059988858637217268723837684006084047111165931037897320813945549521401812349961582059400639363927647119829245220697298349993293236580594212681723104577817809239428616067757761728882207615202846532906823405811045583115903049876057631842966468918374416399853625856780628850871784785043043384387242471803790842416430014165357455372487054340759318941548041371712868947835214136804728926355496812100939906104470406515939508518492265813388557792430978983607578986364314859802978158316093289442787894456761610166459732720640037367521056422556405623841307696131920492168368369253193389568409195623704535428254194616800032946087091276203626297708380644972321566745082124238443356884590533878218538241597969740668951587490082057609202594829319429563375781777738231099832189001201910830090264768122338179139475961739582793035954509814862612519188942357369610365497006452126232959033654066330174805015557083549298024508694476579248134356318548738448036836427004188493246640155170529784737081567029654632103748528410810177055377454269892077744974304765166993098627072751135316178065628310725325160354356804642183485266010836756241264033599011570411903107970276511254841016174706315181469878406788945753278043739565145491305766531021086172716707622694349865316494299702806240640630435705114441450165505199537722336239849846924282098216621978702302905804060011160346060987695522795442824093946153726701092383750528738073416268923351306254808558591500456802071710683933569698964102966535662032995938986457642041665274919746952834391607105381209730728504848322802720072476041947161588886277036245382693227752104449643169621506230875777212007717074250105953676293162599425971452200843929184479557440808597585542915090148985518043496357486733912694893154710316513716650973221386480391330751417518683176134471133573051654257458492459605419512640674568389018164417167277725878751530401929004376784233941952873888430105050466893702170284099846540846554760876185304868097245784300031452912717794670752428587750863075934782182312420921662004111287029125906159824446464851127908462115443731681371466595095795446545305949417507352413976611115920275147162790097098019624604799712089275649021873573548404959221134202563438236374459894077644057286730880431785344749189440531121103362852253675149397400595359121549977840161549715943456437176530381365280347895382100809029822775417120542088062163145016972786391280360109430287897761834121320574932540603288120334075726336380063413801953400927958399814401784298643982083611159337888895854338853221040905287676090380145011269145652794554035208946192980861056694182306422664790740999358348003861764425145096572535395231926112856828903708393083577099026474346628145479502888018395180605027939546190878699369185560373216125656843805261378545483963080219837738036807241047901958414691320339821019627902993792245334578664263272575513512544747729109125602189433985557605456818117485785725678172588084650157551670550726327495076894419958298350049208572404410297950090632113508426218074871373603788148731603564391541147600277220239325504043461096413579676631183596688197250106893961275304587868799496378647833453442813894783759407559211680978599764828940290235984324539498919643792663428932761343875959084941393734803812588386791779888060292866644189105779957185978215745934980223276153055734060732031745852460011543300617257141976154542765148019865578336584434033380251042872324834548545034281245244853971487552431286482532691674347593719607128123244537024109466559184805768232979980516345904475129869996786579872743478801044511409620668131399066181691229603564630854836678612423744053951977122082293238729314278613067578257343896237910189194540323220816701789499246679578219682077222537859843924303629953583224274099396656847873986470323126449432464933229219564480643082508989431284474815318450593356990119758278618283593517906873996221351646826582945395038964458673810899757203072171908610182175153590316209916903870717188948136053419274794349568589652323064338567875906585606788688181298493742945994116577227293256552024649172677658706797087761273648220851669467626103936202597910112574728354960608376171292139083715576173661568873572149522670363954922387285036530405022614932175230370064125085736241998319039455703764797501965738792558916587906972251529665000309546219030698191048124065889239440330431242566963223627451569718171029859213553341792348917101028353872168438809450677131223682372072850058471869282090530621680426240472472192390313367998023636755327484242545365134341234367468700366393439422752479086975861862266112702838643350729993690578386777311560611060442791067839772379748030598520817561648347997507276329131400979071702105874543725720022510318950548055107447224280579916413728882348267572860922401019904035146332350328717463330635233288005178484112116573660284678784715048722043574489341054832571897372283018468347320147253224241083554730046166189465653145957744983774004215138855881885213937926550278701101528968142331927429346346704921742843851555358034990744473500685753732057599944153449874347464930673307370653077436356132358341004293224442486758010191538302653079650318711261193447958076352116377669494104398198576700271511055030946973701755108718435528208520899581334985833760476948522645466642796738777797988263992119364112298316957572586827078190415643981949117324065863703777126938315178076499447396834080427729593947113684145913576986644366638252386898231788227619686537540024516178276222686284201521742240803778792655758603162778855744383867102575246667041589511380579259211029024348067745130522385975133752774291792553125714072439313083411760220445088270266473119424906351143688607873885296520394417290522590201031628333526685383495903873650579247518145058460537436845904550503831613422117689844410439243150428854697735958704019769575633827660165461218287052602062149236971643575131216070216682131371507018706895961961494211945820015588897357026097296452757448430256239283207724512524676010397636544705794303880582480957655685106535036171600472420647607264480264895933878435406089000101812956448820108127893948252295153970802639420468052714109028441613488821114286294792263067405451954206918970597892868867927808181249263610625069719653782623740757157025207137877035732871607443823706062079911259272399891070267463818328104430256529609554897019029521722459170361528300213096737823963014129034229639945687609220166315126087956994829493104634763046933189100332454473607633907635074034281317130162689591831251470735519612199799901345936130909228874411535149668408617736294259826430704823604220975260591207423039651976614339159632695885342143725763022250211059290801718029277513577034721459358678984153002206463903265779910448655103164984540629942787080625029092321314120246335250884727782868783433037546531718108334178411966601393907925775631597391720417361091729188680452154417202673067559976190716065124811222029542387449289073766398384524996245516727811740253311148667490172506207934816398181220966901047959810044410407169675396412680448276862655978284252263073500047612423334257873100829437457673068669395237175288428459172941621756049652365956192129422773086203934573737722936542808311877161363738568021871697346573796300639121789462720837659824500378901264944643010277866621393295285469155500729827372134786941491485418248441345178081935028796700529345115859970915812448160370220644799042305135026923742071347286316848010953808885100566863026551100445506726898903667321348674259057555606883409814359415983497056403827297118552789812116394470665281318010805807424451464139859719533660686042480904096261563305364111905985118735345318837427629026085958199432263236996926941573305385500439632157613925335259257524658247122004799994186863930553713994538988989784426442376091275736373202181240944310266650061924230625471382206394027659075635462077137954187012680160407319911942212151369551363402356571824388898158798924589575807216429147767699041198547812973289229409879416890377979027683149818779680090232560716653736440246291349951338324694580524729952271225079685626068612831778695132836252945122881872029932460876560380148046221934795140290735590985457323591832066052994027402033107027596060014728304074877786438768637518165424989221487647482108346974130743102955121012745053433623540495899936605183340701639924072290067784815024822214707874024220274117904336879796466114809369515061551497450262126215987126443848905440669999219027250914965425344951211312145813201289642620055530991909150562795887967057217255752858700344490684434967544884799525543086193517491941025911082910221320781371841764422420011778794568881790378485326648680562349268917291904556199183309196553401684458477689720269885058902419740953130754250968198365920778518022132548293989599792900177426060690683272900996761755076955619932050826487228475181039242358503149660154300703799767957994153464374044574329703098975852521243866258909113503969770155562952261166699523867645912902358045650926231793699273502353238977971695361042471920357289096536353355743485281332167722598142719368141315704967383758863889169282504947910933957179885418182629155988349395000904374771506954893770010242327938824789671889020381237735350697051255271494883923384162906141866063365081681159832039345155267964728360003255511605509321401014574090529851603029685078832069682070256635629904757228261416252823991539381093646937441435582157472188089309747470099207389244374575825763221808061855361327826810702477758725800698311666893026439345814122780957128943875534398794836479694013680527346187626953305839160712215545001398089941252229061370722818448782225196745311433751846202388044066405526676275047605623666453169857305718419925419878876998676654250939419897370054715018682402254898570146616573147567766696270624034006881754914650701931189337515112229269430237513455394077519233070165680971660170710830152483379235457402532549291278034511774312310370387016534489308113527546496697875484995919393147062930764416486768279567490086696513368396299417816464403526936456854634508345928163756815735701911983943231362162083497435491231473471091354381666914349128382510649270306972073187513650899472547800746612618567007752830249374269663681291219608274655298685092412502637642329616402008386757718489556025887550305881685417328587757740506859827821227089433733388098834571509528061616704878975501992232094589587458220776361996503268574519943634665751437608138290089528266760244476644478662754140865305010692746952495180085876625276796721160054329231471579232051748722232810958785895610268458530639744192460485435953206748880706767543855202036295981225031513004055040460927879667724493746983920188338276314460589301015350729316695542060698472301841330165103267389735913134723761656206029065338923769783021843975222200277841087733184730839981215587701976340037618585319865625216233990937830068141762607653449973148077788683301216444878207653369126521885634895694610853113985478759034912194896139054802650984078177316216673331352871812175639244067918563293699662912042587037395565192573346249101457204980893328682137434192091116987795835386031236510164263803577547194585900500928301617434454248621000764334129181816423279194399568894388087660187038968767602398654233260719390560731929495491173637811085924898256872007671796330375089181785301745343735837404537373037124948320601030267564268272068156135177608652234652943817095360200904380001311147398797525380417495719991814375438436225530414292829479919575806009535047139375538138613434477390871305689562412491022027872879200293862016692857388978950090418769752000712522257201801877271920420404408446864127307029172858349195264199450962291101906083422135640998682651816989807506675768512620430433098171019492798804257688909957659879677681034928785106787046359814990672711321425763572072697943528493208423488470139327708124455792740510782121434539948288333278383982676274528104521154274032047665825819240885552723377525868763628318537556536077835774624054957949547553392426017501790586486016160377025733104245724160817499576388677512068474620343367468445377805231984623268431132413887220941620693920000646239895276807968972611361001879052187786694649390999082917911763654343498296348046018154420831651857137590042591028314281414625576751020255699144071343090464016700256343187295143884396140350656143337740786073490184980034881285002253997117451588892700579049886038996222542620172041057846740454349627882287960520148999016058264067397531270685924053021447827764144059469805021802053528465579456020969326263818459235601193117054965868368409902163084004816056770277773676760259701919316843613861101458817783230282301069068897239279874732215205510214550340237642596654297188896721498967040561699282359924439109293632524710825200190240419504041365808497016489308156471998016032152297788688530982805227122562224793719275493364073817471707128959960133660625766644935620467127495815671837382879049978832288742212357798065973394884079098982532744618973966660215834379871556973643851677486296748037790580181536980490979108470433478937558898309185589118303169106782227468875070075292956942451966203161363449699480369925416185920277883332129454306819492743057652921791233447706674090084113674636696357089993302471743318753615866931955815695443568786606093086492626236616823329956945055032594812528101457633432404185839472927945153561882903006118031687478131894791653340735748777021401996028422793040202584342343306354620785067982860136191784419952268455358908990919385398334597555408758655752523816641174536766426122071993676306032841826310590415114143723449319959674922552642045490111676094530364939804389255606525526038567188312751435752354649534643487706115829165840398401103040595005162171309151083475027359457273485720474458133633635774263772149386979936221648320858928187011869359699241178579315340204721961052720856308143215898649386001088207740805336684478690499793338018419810082595281632574137275868590524900257761035496019546032993798594232486688666811002042246655144676058848421697109427547462565428297608665262613417657395094551786380346164769899820615153676950927027630900264836552821421299499182383206720485632396257970417406033407532560889192816529606555951800777576555280421990505166351644433816707733581265114351711407897592686401917661364357380791811604490902014243429492157901713775813501475884572870096056416610111154820481199375373910095552522086925143054037700791826257120208301199028131529554371655406208622267777035603205253087323472173356737103366516502256256525503244818155522154486364584341273284247666643331733498899270855417018277356493627516135698707797594266562352563677421140264037412595293681288989534103852716555257299100172827533934475768445317409279983785800459834009961523904062780790099721699850621176818473879364293650451344433664807796140025540895199651119680091943059782523686809666729088869231671667894043956647126181649483206608928326171811761227655698089975404496063922720817872773611218282272473947026987132853254473610847974974238941541409792864942920382097288476885514666865478975839503321887868277951594971075065402971045402027783388431446087768810240990752317983165449939942897614971113451323906649482280210492241122424569564821228887167029585340393404889169717903795713750494547707311228348506671466854508680579675541935884014801401710399386808953069842262680212824451519384203139336804623271112505507528942020383118643952229980966666836864073911392166150756239396564316798594706549912687125696897871257831516910441456719949492084116346617032476356399022453197680882851213059043818680104755973750564080023332237723812398143634938194227267551551133543843458800301304725245324697135450964099150464532237603610294125907839314692184818585193458654033552470137911886002120294572582274987227456968058437932119324085523848925771177323476684473868079251910424229724918321056009618886616090386681310682451894745333743286885672034552497932672263322757474053801413276324740735051449957802831577698703948261125767326218964117666955693089690451637414840735302407206770140339134008802904122816117647991913666379661098477781724507624337614703956502677938510951414730048499910500731739438236581006455434211252359842686647837876079256671816378538434382335161457395685258582100375576237898088186457938177173643993130135551573004488409414488706637246369694769983336414652643159258430355137800655169137176829350479285835314953269650017153158788084352061681019129954529249969458982959986048113490058463978936573899979172294611919832291074288868951743757128444145013010480092408002432813473876266622761246048090198786690439677088343579693248103779134524711367519950096414244346739682586210058376552759766661883942801015984000440064247756164961977764101612915172032157777747469698213404076365804333299265652132050852108296076038320803327051617497070221553955857954636659119469805797231346212839852587367051068430016911886487684612242687423593632103671585814727858076810775453589124040277251029447557557297358121091806045428885718452932753902562197507880746869107828343875773657527020462709002477149673557738105264954699724532293264961151291876393371714221731895081601627507285513975625285113668192411454999561715324033649677002942880873281539254606171753942354104748248931510604364755022617771305941282668920451170608784075500864210584879324184837032563744752111965495902650077868241590862527691353573598297434973522826085810668377579428335862765340287280820276740152986828412164685326623179210426761472703047009294472517595477556984605900210981011929637329279652640668748585340996519273643111102176664634632001268488304103193767521219979671116431510691838636099267602342702316018715095069318856326630087028045821799150437475482101172114184015025136533643386981303473163201896406969645252640192355570739195999944801798498373370995158344568402242311238106481625306137709354243398379484984130054827125285975777274722555652105517160851795781993068388976933363697242622180816310846511598233050841901654103212462250662582863387126175355675684204842653254477838247595971077631550850534089745344981609190964950829052096357740880183888607095985673833754012335829944022767702773382275125242868748975068814089666509224234930027942710238315880907031476095483072762961207326550758575111866493673893858367989335868641001862518033824950858439270544740678554674601190819278400287767857686112727379341098816068195094617013775340851317373234987904294224562057107164637084027547003118154843056099522492938893900875307236573257653363888460040819561982692340862990639132048576250683502959818466900769446340563009975175330786626730619415514218912774878971088170013779978824981462127151678371259621642127754330850171819854729104092133894699486033975563565545974124360608954234959275275595048451519834587958070923472996751124617752798682772552780969568113767458971188220706327624674471318331209342566340283200591684673639279874289869576397554670892605124903469989298667750146645079450639586188005902514037570850486556942222425174120151494019735344693068272229987421930950224511378294021883744214137920878013082198384710977825552393350507324543669898492809844407963270249474511869642110907894648671627174746690273446572063932422169415675528123193823313799182553213623429464274423975394836241578258222975621726288558771734499722681799299137443636200612459150903371937491609485318147023761284358911376587807672145799691554201767948161628872398391614442717296914023800409694263097156915595847126767070076730462759234699893292832490103873052226645724650061833998388586187979256252644221712784573568347287611929382387522905070205422898804457143780718232239952072321696379352194469738286545935420959818846958475279944126511969629282565057022620126211446025778599439244486508466052343571720435792400680937171503788642814743298666293424204765290849126557424343051888681705882589392420809974115797972906493983764777536128060294837684033151960103404910163994367935508080543957619215949829453705705472130475229155039218061073718086623602481933227527731306757548121070222547357362881037225251536996782573695380784355200145843140404467312697313665526131879634353372072916694737773251876119076223761312990374393482168945585184903916417941926149020137335108372068588250888176047591786342800805041046749218007890876595315785769698133645519455493746400085536173748994025491166844082052793839277925963150206173282618452063964812118083585185072585914775091459933541514823703506074119195670684921099635448586238301894194798715623472328497196234579855592015986633680811735557737939020649105343680899156260544987034631682933161989943458723056915695030252026117437712340330486959018268270896638656496736530184665022142473536789914041429532056647169899577615432961608163681095011702920849256690422980839923514531585425974450492250387531258489882201168295583626672056813991234587313339956885805716269201460198494737370956871675164247351020981251907311713345150833039053501171200927264105944544358843185953309663654476493713737641501199375360099926559024224217650236081087503535042416930460796370711894827704832467209008819907299813827956085667843822387129521260063971227396385357380028229578888006678684765307380451103774623220692358432162251155701230493441571126214835269972197550861376512121740711269539282881427579514155190617994894228040429970017615547681040677178696274959198961773934782290839590258853370872722001255113848265794204836812380220809984191097143727007250355898073778512980844814015680462496198610402236829269221422866974963892173578534611442288483246965707481783734973149559342038054668401193538154417893169493757407189312517460016616568378549409093010550339651670228197613968184817910588415079453299505839582790753595056844224675761809239935861393600042472491114781560617041396186965743797532678249079500490854932450991464771939038783439165135491260570257337594872104155796452125531466753743755902792527978416628200936180174044199154268575653123996784582777533605542483704218799659278316782412722811133185867251062520138278962705595987215542750900563750264113249673865358540724501044691021096924077989467386094000580961408081715986942488878748227632792112084660896107043741664404860520967262421899599898987468908801964866832933192576097101451692867397248006740673359745034613054278454032249133294482128350440304601137593198346277615060326988530149880997595599296089025244841406144406363719472043400637494384747865245000198174981240269627446688584520118614324810317282862997119141531067961344656181509535514790542788772366795494121395441358201523823732258166489287022873707681966255336166039404363205594033679073977863415483054289315878922848975413465254713213837431203980895023969988745336227814235133986757701757934130706446866717342958227263646338161960905179021020813165557480415899099632387619059120534219939545695814558315291343472826727039142039385942536103880445493242685180235864194556485722301149507459216949770467558425174573320509360270028573847262862847651862990627467399064989643587008523844627753532139165053201184759533940170379829091769014638926125204453685807367373595651266908585089647515362841954236202282566583880488929704071797041710269777302898682108332173682975135935803364576214715543440245264295357911976065923410413028415769837228696455448981989841872586324503766905302556987858944418289488857711693266305710228143012922458451144434958750277101181634497232143501609433523753503986242238098832121773900071915827468993024758177085992568698853114131083768147580558796306232144870008608819858717241130802736305331975817987833298355584792753403491612412064889421851449127874267392732981183027494604993081692790484561341327135821235737144006151830147331715750069950088890818154056565867926035200093616291091486870708726720954992870983240968226916590833851134817164959719810564748394459872705745979048735771733594945081584652498793323924379944221877262137961531942892433012120572209952295406847104628330663779779131916945210942126325052417029558926887470036121145231138864956435926208145735023352212884090757793937100736217820343908975152195378467965902296356073561857663012581666072513945089316971198658921106534122210690924403227374268185957343556952996920380887216459599677542355747392945752791542250472069532319336989065494740637133393072072864903722823330502584622726169712241116186923759190353905614161439339858266849875810412448943908537019715088634058068431701052652191148266172727742340029115993125874877127488957944624357908628148865906779471682444991939044109140420233982085494264943389769337082107749650121283004404348663786514193625450528116509661181223728388767117050974714245177545961035040848373702088166040333273460358500855031128856032256564765611329929066261239313472258083773477363021371076843647904998009710615443385494978952376231556817138261217798936144120560145444693859474387854855572419087418344028939991173258949578019673590169885308915584787495378020233812833084618646254172126231493339674342654305322433614634117543366330899800066550792631775490465081896122710066334752163553462991415418141395166260582181307067709270240597176918181846525652044114413917046421019690298462953327982324234600078897803530696824977080902261609797733170317770228191331652891158472972499834201477041261983937035136493022978903476397553551656115068062072660871169317812017541736948451746888296282519035351804836855754786589353248482933093976045877878311510624384872069183759071500692098256133603537945941899437665049656383809748294270033424635785075674649871705896843421357761621319922719138396178622368843565798030313887502111410471494363836136651785542101083314228043146145931789003076899064595986301434961359097616166287390923794908843200093952442621001537949435463952654686280089744683851266066064754442382815968111876724612728154290359445034250253739408552705685828848472241601057823078202083943280764497357285454912361514431318351283324394775549178411708534228035068303054267542260108378416871310201336691668422711214588147511759047017939092706120188110621088484259508275970257077928308283512040173106378217570639633453625613566072407494662872756539779950487171587299322811716835411668611169358783895173231975583063841283731044722599534773563284744788637692944216227508840154931111956625754188296006396460852299765223120162297509045971788409330889628904061482133432130932868007045828821548073001389633485470524186945145818523116277579288245384969464709183757044826677976291985398426068048704861776933249730598344735698142777531635921742996324543328373187148251437989954936869474917805715526895769420986895959934096842005326220919760517731629163617961885818982567905102673672140516814629133606419770602281443701592922277121484636465768674894278596607887980298677871475511874795661464405743864755034238507322154141315621037589681120752988675813265313956647439277574422031460248212991859397916048599410644930320330182524395832130720754796912486144095139782469354792794253843419531240750182133976881618496951960051763995305474634224262538104369165642257578179789827056952947219776221211075286358894766144114049935775966765756619462189894050541260501871952859250376847324764011604126677716495200685717220295649513221024047721420203443168872285186162577888355572103009664247080067557403020157932636595544975423786698213638237373609835590212188575828307552327045534053373497944536158810417383009634347570059194244592426628831093545085952803804001806527820909682675862126281330230990420528135873020236077702775160069239916818745616476969159051172202510136065660486241755141248774624541218747872185553368783027385069402586681987569315320162938105704161855894278991050904768758116715555641243588129921805952265529533590680501123976548967613464312504956111538178852545415578390838288927515080341379451807402467850465340928206718252094256737495740578039960290038312217183621390452806539162070011960251039654591163053211661529509449494564745222424054465332754950935417007808910473281494546846161311140219306875249007315881405951071629649077298844216173758540505649204047672358103170143426209604753570639931675998335891939266514924987456184837129841330554548042410537129822861256716979230411026352179637624226510685055655481909384825515713943665484765735137294555365871774635242708674752675759071379688176875225645994578514613544136514677527439201498036705224585607955982320823317008040984194082440236525482667661912785246558805962920656412927851762410988725073234510196811119687559726997037114772765114312780443294216936702147883723004414630365814779835489102955472193633972512417118930894129994663661100039105036965348884522884363555579245007588752468972672095716792469116149939191764124587802356254439554012195234726972513187772776289007622842707149240609435928730929776893108714606118360377411096257853679364311659576807389152032539426299661265355044150314319433030157248012274100632928488738154996622199250100036223281757042750646989734645463947188883433738459640899233336777414228531307334511006923554797670516239427968629907646993078984602380363890450868375465240557153712292269418913783993792382949240934375738235272584624453481503646221447515135288273741096661918936703003945529444082765761195856260649743888650453846810007157032093115081870691830570626082573947813562942998790930083583819001436109008921724795883487889422477407073409163099722064373930887810965578466069444791021861240714834161119131703412362204987649005603873465222008252901852591563407779578193608429414226099403707704673545863650268507505597682784181246444812683612158367603053106743945820425188873598035678877417361288367900729897966719647811453887086429517431815158378548386580475982984026278726310064515601853268769646717401032328152140747360195987929853844331915779647259658190191429144479052975867807530730210672544364927223505685015857994934291802085120055885241646288385958725292824396542964083412549281453120308019863254096810219918078561130778717829425365677837970899621697333650957339612060932944370403170217056264554578103260917453998930936003784645448750182476477550401244089006012876597470945586953036694111008182985380198520078548933670584337098940502665339923938402426163484135629068038082946084602968264986794230042274418187964981653911420666282524952175257904466950288285610101728710145015563144042395894703104117089417431265168394797938940186861125827102511519775768270203177525276149499555709877455622370881378986039782212141039124181901794385848437267443540906869658153657786551853715475918893471872518269748944361909395457652932043229615639500593465466745924051264624043196929733762377812929251309544824367552982155798149549411108212252027072134671634065228899117755976503694053590840983380723686208350629563572476695065006490087594926341408154840247611183390822078514779121782087857974776339380473197155726166741627947930166660277060836431592335736284759717490978849847866758891710082779772955970216443002138171008285649130344833442795660703957917481994814458726695207334274438908087052275413397470457085432819364428827116703700264542674166192600080978757029717130373790598598345437516620976012519341736756884329114913268042818167898988185748496170145752899183143318368290006470654705704701717559414754100203141036219889046434016164029377913907262558120956072995907466071799396512635170069160782335195082913878778860185594287895847411626974264022530911006633404829899590460800568305159692696161631116213735665688639383450626005417901769845562172730772751693880519328248651819353188428748801767803920012499562848271441550031551963130265194607778778037791533514271498091938040740354716827234128338252364773271823100329281080591932465213351957549341269654123690598317237067986647449002795241843858030824358403203697949099887789875275337694982641438617432315338779807723244121805628028783631195654214345797896105237740985873711645522397625631860365713646438720158526848407789212866108098418183044798274253963674446645384134956919494244921860086501459869456530041137341741578540192477631136850905928564685934501729651232889250276953330160010754391671307320725881454740990159660280176363918893155601749615523348080001363964752119352842650629513011258401373338494186523407981259902664004068018130366093711872697062143497612973632466391383886445865747816699576171395824196794928966203518063774727876370994043444007921038429897502565828037916117507251887928253810240248961400286916411090013102405265141095379119818596056730271555285120343506175903024205162090112627795222955262913108921191994575452200157953021706397606791333389328710245430306507044175030444362190575221005111992915407718881691758338030529040248024499771969667041120260899133056811471564099396984731321463236435964133840394173309214830834409634831019572625338583343955425710611607921212348045001031354642191839490596230166486951343491926513397078674035023220012371601377150671733560289370959229110914292987964190359983861125760556187629194672316729557008411547904557185727425713778125338297029754782970614954172152155901684859156570486581068444188548475743416423137163541299533118333691071895219772881464120837723088064029556201878938871931600608598881497705032228554065719643105742922886521134316575031767932800356247084066369859716343609994453884766527415349037411039756923473708449868967787152026001035561047486026437290883270264790960160161925753102270556761621238236994241892167434335306029913285726939059441747425504471632284535898856701031434532676688885216767399331411299982480303178337774072175333331001144959978273179101615866668765364634576353952109093575691682809813112425846201249457795372586117772320441757579783161974158523552126634113807700047241698526261091582409510971714433156946105207930556776184496178572418644508236463289366339221008152091340302922930210026983627780435395456990225820458184698472368672770185067409253490742437959336351737075463437445444998020713813283318977430222505008380943897962829305907991153775207769919525178574782724372490582827033268239218433825642908154578288575623368484032246296973044239827223582769563079638856029897783769558768419838244043978324833459172492651354029316324989423039724316685689428053097252446232819498658312308058667765798862833406123913924826893479877399929873328306888737332919736305441240557029338322771516386430857533938468014512255452530103113029533867927496339056975249857757142951260750753580774139360726974892391999981010104743992780382495926000654102892401303427617848360338610832382250920181953112838240031037018543724963355858477501469604860885092302635627577692549650405339192393771932952728740048837835138486436405639522829018947267064075699905115533533251680980884950456569721566675037777099115700737466857780337342555214778631332887290945196434469297840679757418870760422611566423340673834470314854409927522077779084736679819523972827396661571692813683442132565676172241819826713057881591176596605311269302257824573464246416214372074304599032266044217926816088873155286350227393317736086904435909911269542955855468215092933337788230513938112309733355850821036824179964429686263630809500301335019911610214329602599672333655730537358515987794841981222337016949088898886094997012594170078270254828311599793399111904686131197753262853129492121614599806686012445322021531311575353578107476376771531963829056618677280686250209740092430229623230440927114072182305667802062545442674815091502916593480415184095442988307215778701508056207274369060408436374595068843028423828098399962882173086382869867312981887473864368222757762837954003921622038898481054254340058714910582418906707001855546684349359128020599849386761269645730334647013231335339641276764055520186112828285016732993922864666521715283755075568450651142378352783594109529162887297466323359078325237143587631668492377600390102264215167545951575162546946315558690834874335625449667479568790126722674113407938699178186057880542584521223808447364888178551371767790479539555025219064098990791625694083773855250610670385315204716173336007729857436227246891052773163019234999647183467456065268651343841747325335443739714560661051440342500515276456405856706814113581414007082915096877531999929654168902193650388361511863046434778144476110822695698201484416330862245835030101840809584529980749246899736327914373781044949284796347246037742276045414353746716463111744630220889430824365791906732803352166091233339190334596667512914902546504225301415723625237149758011236817701674110700132025223202617573761306226295916919101269083614644100640384994442006269895979144251791188550002613936384762524438080887929816055111763515036612539584616304017383411456004282056086498395689426857680199966640587576629776754805125795544842708643516821450124817424906796392359229209380101793082158744274503410700583428297764606437696183323551661692126004319014614070698203264372593734000091342357786858452600282854756456812668443973241735778676100220352707905931059285811593653880558022907711096294242867330797818424495163315132764198644223910913627461167447729731072635324933703559811096013183366582137159911529062669189830532580799251793053009394013873007185559687567540044530241012918329968995159610351695904273571138153521904986459014029204384283362589507720976993729269154884985603173338064793837316606450011382168323415267318906939520695317718805500118869383276007871783051224445634690559978283618168536017843609913317480572200590974243003699786131082216251425641921046101395631453574757194913720119608567136961664705879410959510434823397743915661323164890667265516411725856323154772465590310582594281942329158292416240152925409608867344969995644677722134239410326636656089184141152096814661266120520862816393113717459531669550311853791135432818917533150174841850854245164617739023873390339483942526076556390907970169212156321559915536584589126861794129261204342312989571258915460019503228858569569767026156680018175796196389745728581562623897796862128330789012761094878309873207482560820429471113279691260968303471533637335907807716584263407700297679166149486273913909497101956259200330498593350367485162263834153953004527533254023960603857281859904144967171545323282371447895042462400992794234252895873733126015413583996675953269845691636418966806498577882241459442680040946389473996299455356870568952542784571325562578952315868907638316731103513151161158877228461120440544569335317036622862238292916057464116792606356822094825675324401491462623897041202938755766905460065934795825617128705318462511655370111470756393382084912362444963914856175407006572213224446952185664121259863475338593528587649139763054826028802761778600608689130500168000337528158459615645846744254012531077227296305100123603537912793183818174240541404752005343962759219471004937543452015871711269532581133728929103472183459795733801414868156265152634335398702325556079572871812919230758798007521169535748263775148157274847485165900561415554892894310571645670088124300115418707453489286109171723575453847367529705828186449205971839807639204477481428027857721841375080253880569731305209576900775284990395245562765754993770966610979819165522608605820274472463197560283689162482211066574456804872431756740113895495550893025224379686862312659952303225755926096857684022261788438122458243229292092395835254898892368279057406199661205981502638589514624497407306984743522895723197884774573094338807373799980700994049618974128007642624177038842705681416982164955992955649736848536757486247932856343063867321250680775763959122790061970561749832000399720320576653079081791180145172372454363216595036738723950897167962265543263460591787308651665986078098231736622962527991974095027012878779714267237999933291207573656921055558322984087530675562188777979623871114431804415245234468388883177400712476195054999933280656692152789970332358765398148065633421721261868975843393860445644699556291316063645261013360516683779856710516189261188552928698889378438965387042005584123725612520634879850500954227753544784349856085848909575968467802584099496646495085661959790087656311736711769551653985775449431962952643228101561011668281697086133612103224770077425862447802511211181706677846800226126548651085291749642812321189693953681793727499434896992674949267210733082986252469704789245094434705789832302247961185140470775889241603935882414260645566269183728207357053624776222557544397907851268676072874362711108741719941072409457259652855852427706909708568028973546261528013873975022496420899148367144894279227908056653190516384677460547037352346352258962105804861134205155402439909659228783215106084955212048614816365834719975738076046943440380829937735869487072281107683089228303120948145424695503481725419656335073809697793162573604377252072948085199183873673507014874693273343758406229739670025264781757413644269578681169303691894196772334465324623907913253825164931873746087291718477576180923589281233006473053208549420629314151983376659330766815603208581395622068055880290380899336517118463918632808487475102977183261720867115062960545980166631777627802409007001413065940898232282803927128840800610600103057872970878833064945140969869795760153102110600748968978330423420036278555093530745472634806102237359379881049628347419290016074459014008923171189168062781538817812072408869234223000266568258077338217173406612023730378787142010999757483801320107593614082960348419185486710980857323226972353266362114574768978539370681372116349961502932554882253740900310126385935216070724155950663295644986384390378198475962456619327490218120050075999556887196740933776679227915934194554354038535853209561547588999814459923037165998908540239711392035805749186517731267946414067622662884272340590973861866180159072269962532543570205253227429988204873192128978125114085217774448563166718087341197574039636258335646144982311936532709820286281242736267255637265807681186530387612922559616512733320666154507440823502641125662249268169194055429535708138623374551847724415784899727530702689598229393547029035275440658499039076150495188081513474462358499595852434540048548316628906271460855152563021842997988928913608742849559328666367715845009636778125262349148886705154178827841490148824879694299414847722928813261720989617775921273886831281831770559542670421140344835077801909014539491352378990521793841847544811796749616347855000092960121225478478751345736364449261362043383583093176802860336675706303124804411053475444073191334361166340115847760389740481386980601629309664430488163508110892983284560214822820850471114942979827734681504468686017454581884012901971194741072561428829903399784609026772777615566460835545655174708681252741535667967682717197105977741725843027230466316491648355550179585064031437766179879021506135800742120923697560980015330180439796684637286933407783965532316922488589334640724059719012571273574980451147027729487300144717010818633812411693521160405167991370247849008031932948138825922081830049662175408412800644519910216843500665686955182324551425915729166321691982069733682282857240190165500412146432168932831651678665627495958796648831798832662240925862566271529717541319185445426043973268087452151259870278320548762897195994158445053194770156615988025890934743201382005080598799081282383949844231364306130177565884102542072804872436777576580852219660083457368186885521929763907515093161485318449076619180860078569478100944814689470438940774081144046195759901703937567033273647437681462325356011479162183309015854530221428576739856796336140851738235258891293900391189107139711972577571397433935145727123402265156371749153709943498740118386661433998951535117393493096620400692402051741314528971599670844074028664636497735299980051010506547386415523667549770763589656259823848391307987789029523347713851484222681541000632590758600219983124111694657854910536678484302281295921560051713447266565707271117461044866589084210861496314596074418112881531111256189080276677411855787850707868730396355363674274656769887867181953852772193626176459817494995697236197569654605369584260202502649963849476850974610658483555319438685064189591216790178144320899659866127302151293062957159192644620515676761530117185440059149015320787223677951837754125105615357188699503929771512315089424932837817931471622400538009747856548679780779564445715354360573914541697397050244522847757517298030401204063783026690405987504594826005747581827264052295386156993080343821983553982734637945104306961823552457294349765935113800191016502759297433261760463144834259092767908420490574911955327826582559064465699727880603613240750717583027920373955777788328280619424125139806590107341777648203615885570146604351715100235926359051439185631851060754819954041695174898765388788178398333637976941901408395703524272538134930379611046784468416382513347605691417963467029856140590432280747212838736711076456781961322289104848662347549566478405933813866336636873154510700355345179249258971859076718845757324210547996882883201985479962906965362792539319039144984855373171299277365236048420863114193105844754276316183042963561071621541973655279223642403327024716477807381526382936974232880037150554512373192281216180604877165109566118479741715432672697996272370533538821932981778069367081296011278085124031954282474539499802770509596937289187191313116297162871177163971307299125018415950709968092548044870644829514937034616551651173543292155185187971936996351930149361571105269860398092219061771382459907716626237000896297508358987487701198756035419505399420030066532891682287178845873077023818223617260319771129213865184270544937759812220690256653070998409710079290659543464256015599848683991728820227746166757128571003749112871998129662492329672963395117763602172469239540447210199283279577487691578420723805567490787816419432185362249942776942362495614146123249276129688268499899849939888041242410353647161836433695871095533341606296523801605983692236791152014744046549490154283936326585926695295544071585158755695431571050952351163328120018065017717156372323540343380413746870007101304870027240772837760751005013884099889496128407749956680558817204212641317377931933951021404701224498781083705448979754829627874631012829829333225490349520032236456254860973728219732717195597204000612796272372513133010045078566735598330879173338151052605067847662659999837855069942326631725704469493477093370162890665371941963825083174092724901570735981435742550285470351381439903649626811122531794480382643999441870513826486069140711350590811208322181201778561983322111229567502070334400863010665073174646297849014410676043698741725483974632058537333527237452038933058822256672547759429756181103300995009267713007985739889490161363414641681647079278035407643044369220157078000695181350893410178453699188451872851922548063797169569720441427731287915714558692516388552989207325211166090221879289219216534010594799950001418812201428868789175572201545967493204004959472320537296028884804006085317750660785781802447518631721705263640929410162136248565656784079941216365643715053901924930451422817862919766762410902948558176633815520950574698826109144086333480864708619138186009304969470357466239747785266560457500308224420478951142794549707651984704658317856393709464392649927237310521118378959778966776861940599855412904444998904763811193486139406046096865537442236672738213518637368681549838701883230432007715297384645529108241385636446558339952128168869511805904505363614292333238221704803504589366224689118280207173404041880478080621133382634555158596144486896610379839615618372320287641574576018511240023957585918635998793075225200696096930408428831912037910681699164025568047856405069150585855271536666516096670257645842463726376868944759371221676159143683723444729131870841047027928478150396537008495435649067080153459285897626328556359701909537546801543492626292321875579246262063825606252960551254251303483010689053125541362785738149886354882806584401884467566691142533843544752935316413992785046302293449324385603663409179555831183846016821345910913159372307127050161208610051134106508157509778947342507395440944992400495395637914570878373006702816625786690625526578846702594169016222324021058130479282295594479180833771304326099585809447639643341879714961294830213840857934973268053391440634605913369080563824444183242584760642473227672750526329391495881054337747395705209427333310041406032732984659192352268971447425970953049236284114640743693578051300439573641160365466951442736619898608609402745683756313550792743835377875045642058191235582602230722393163638440673419442697135997417411151209342980697324062813562699829138317392536400186438046584875621428940777180471778244460299271203394848248345387245970966316880754945502306575305908649719599150814527254032844255411759586843998340936852362739788446168738517741047918710901753891852910538314375815913883057241378960299147868046025417407701763616304964838724761182766717856930371935717823740260363767885717446584430556454598932041396539397411205054801365724184718911434934922195280964922295266006120995332439372838272809118332386122127821657154278881518141694406358423986587935349343027796003315625001448863395305502916211446051355799930009677133777291786254849065179427514695720335924336591561420103727391687691896380294842796660750140706323879522293342401282751839753060197953439655823172092036099669530858720942152126141607425087457144295256987964477471892087510179919279380519236210574085229545870587495261284262438677678937349812719973449445805857992891698714533664607948336559581218494366164703810264257481523297175456328280631667331952040899644504170207130534027056535765948583669195476698528634450343065985209404070413521046715228673637896309046861073561171272889008260235762592479145021408761168569384804880554492624726673665531693086789822235102705872803336823080523992837257377356359068585890399438693265240565565644489046923066581193374195123010950465198743500560436419117628353977809802035676702893840073652426655108810285363774166572129365126926387834024690498281650592311144291393044321185124234068535349274913495190238670787387716582976079058449950883933221315084010927910953885499688004576565537106516890544794118204544599817840800659198031574669645233019432647298463669475580989063336848923289933298351373707086523570150608514307627770799094930914519926703190002628985216224569510199764867969244479521384816248082084292407466920547227369801138856294063296974040609131672111038021836521607798785255925787597502118623980954070105382845458785984880693173101740212401211971525051316816791049961892870407554052261654417885150055097015863500480015743969151109185158586623581149888817927836361062391881507787967627761181915418230840300846857005697199228270324683345741105880110637460723408232099220745538771603732244329948330563662032885451952834991689649379837640467815128557697790635170368288145790733445664113037577739292187499570653557786673803360185349961118119275384621107750210585931872764791748145158858923078783979150049778793689257120854377420335199577726869660617807401593979105915019752366989491117614553384052366514508377993973796302680318123760655428489830383697440266459623140026319235697208602608119584039602798258624191832678907380769720194922751913144092327973860241493180327058986950379517383847465366556881409072859568400575723590207312898417330128650601422971215410511391137433775933621415759957704890756649856410164610631690320358785473887305874201582296431656641683011897219254900393405243877290710082530094207471890186673694111511982416033957617129965069559673438919565576977040888302002466535274410373842397387001852243583424214985745606650708695677478636359669372585268605667904149129276454870204849295484025857487355567396579221153432868571885708745240966184012869568779645611050169339719648376375309747465199575362738079104161903796397818396936131185543945128948447407576375542989281626391552171367924750400547682282745611367519582305886504858880822839596876531845836083172397866026443943681703032236642696014687629507231137100478675402735517804805628651802182102904342981376128791432090573749029020062843434268157957246346515465283089675367885454436430367105657508978994999142282800151390145620727488877591025601791923732881404235431505975461849631950290033981852530902136986075779548622159041120580670516793448626608923289226114333869153754780372625272825466119768480174021856849217334625776944655759741496537649773973799666414360652850844807344512514117521155145558453363892895405935631503380430312055805738683939272958886876045590177358990389440437280240304694367539923926784111088875054318117792032202768716499384598460059550961715547859484017117757361462951148331670973419016366435394066518973440737502375568817013750143457913755436219075007835775788772725522673638119581973948641507179194517574571611784388933677266943260852751436147290189918568558470074732762769626736043912985057551822660738806936416480237832905223161882253022989672104167438948704619357217402081680705865196839558927881613172600896538501449086530488677906168553222306918655703117841860745455452026161714865601276977408157892479374438847751888172314153809762903823053828089057223149886606674373847901387645319542866055123907940225677543656648054968945391391157502842508606056082201696277094991387927285721238850686879008305407624151150829874001709693420890288895775191787505221946027736514679240617135783403342414829805010609924883992242007426343620324379767308264562788170536569727530190746998418406151082809236382751355106267497030758434335416740438706990952656441792217059585017564019974741498062707844080605418546572919792818265258155860575106585568021072953861039192626414531977500870907212839716658528199783346714126080582118565580755116426290455018857361169585845268132619818494681553541178877691991297959923942569165915291382245157753245371211821082384423568324044239621684465206736195019384704694468892099026748177841005060044962629842611478478730340459225120838288169979992655526252077957068843306893747292143217403080343329571045583813308204670288874139376564150195955992639840104291238854208808625871552210771158888254425968965338095352258937643072943842795564798025321279711237434491058556309754330587537667602920399686091127454596221310946174568000488703430196015539717466292689871080739637993640248239556067232232530096642592188888126510200803582373458609201747683839441499838517901314520143821498767498636458178949170530668075601122085877634483678053969703665261997166569989480171315463169987126485405494045052383337105427287702856764134145463063587605457456853318990899290603447059593156133914032882282471468369719261643482007300332399090749294192152873249520617385746672080009789221288959043667062782339088184851542184864068110175002698471098811937644765768307674369860124755132803841461083970021147336448133231912878146001119751406496894894068320056765607022158396788979894771621690461575374812399234475051424497151548249485430986214590200355174693503333338920385758358970007072170981227095842837675936528113204474937810939288097324592883019713784632676531456915739344863585575456872532749992830816399154612072650134900024775294914806029973536063359325008928634489675282849167730740834126698150260287365483741629649026214223745068426399000353850066380863395519001346856720764745278773652857096704386615509258235728625044831264088210563118516431750383696268363817806396296567010898289235549249894463396183285071808878478984297452391948726553999796924758364564073404438293671283819479450517554885733030409202609388847780504788655098149109675692651872397898338456702538929666683703458029121206073599911194675029784110177328542233316123917593013486490053667552708453933634620654152111508102766068260396049240695410676617546270816919905846751738119947050334105075924804518014825715873437755976575912938089934875016454019095402695737859467954365809714351504688466025891720671001062197553092549497787817629918942419597922314580759232136091071362989889337271220523885621890488542387075355052261440733819484221059920556794942359218423516602199255923808724078608201363106517222315065063001823995202342306803886064597484239354928162508192741198568239128872621416078126625821110948880137173998700695350370172686735372760291817807472866024314641628296730472563412484757359166156510078358252391551598213468446902200057925347783539199820113596529926155143111909677536979935914090580454137446394394759772205608236933910060566931544249946360891234089148923615196411431485098955100417970819692244944583648157273999946446047519657560517777095566219442292301577643246803547336352415537905925021943396555407243394200315475833485321223453772536660168854862579667018536695526765128955569345070294035803133156314804366192583200701894246326667182157907826561938251496047488489222625960456517091132232449743645969731911146185343660437094521236930297951186200456953926105312950583601981313821522037866149294068791275677539678973373440635545528057821691697982989167877079970958161321804897615202853552811944757448167462051093581676172179780436299719364408477407500144313802034781504319126288394838305079807484391324285409216033421593760038711708340970726378339377746710794039061166960021680602335992712657791067484023321513006633689732529248741371659922560160416160570250147102826744064529319872845143693682857997917262717978666646928935181703135147575747932750338336368647150562035832779146396501826499616720294880765996249495964107416298313992677383515063703114772432515753063923811037578511105758240581315912797896208189423811326691110039544683286646450623895358583080687992474714910840585584360010961927923257919487718746659132221866552002643264912243081153909221375281229992244793125354768143996228178376287027752078500053434654728636262723483575896457463642023729775156561869985400797759396636447640427538572419133507063994553119062071696780350375732769008720695356676765876600330619279811186069903412520672081973183830299509118357806529972307021342102697705023645922858743737195311299020174336644930418726653144725307146771627822028467913474149030843308460009480273144782875577938667670140065969047534320410632935439792730166502650355118374020686605479927240768023772797019242255444830703958259929873541182901371938232361470664208915428363977226643859038253922325239869057960560945852373404341783879976635759041144490501396336370856665874411239379234487841080544922387593796304689077660473542289713750629581763151943734912397769344052580598769049116207577540190969082179463992275311233952926138502435766258101148816751314601653887875109136458938429985395068351310742429684864296871202545051259237564301709574708451678685320688515419555988116846468448541400227234823673356327851451566417548248043147784867230207370230203008948196821585926019668466587598199762111019974957159318070885074831598509365344562066552450493429896888835073083119086560563842622157440619840283261227627917674299360633146910850442846200924500007187931956138389417888953636277005817784445998254750821836265260166708605472915068744180923673571350004167343728025225735626743263529377041252110073012752522602411037361201813360194353204491787932001066466448741849906597496984454122075406612487084514586903163331062962314835844550541412206497475511124905402058487988680345721620547421291649847414465989937699330299834841713624087141550591489768343414444438765489645721268031579857530607971695281459916214345301190690089438992878736586906324060500014355857520052956254542935375209718319790867059802941503056146511457990046191313916814868422834261130642614114775671060129215240133737288998562927690991967239561552451111886943720807856206721810037417768529773649990831363842849740191498150011987528013863699298139396414949653208449926606637976597584445265389810445749995568924897982505283137167422937151214720568620438995335835940876187345452390859451386326241392504576340533865298960718485170941150151591070365116852567809525117992206260773873776442282593323231097735533372631151347939708802278784959115424267814315014800868499489616758940328844755862425538367808094548834418233976086281240354334243986791436207417890423114869693166673326447309573060873438266922493210009289803987326997880047822503503358261227443034517517531859315987238915111512276081777743987104781327363056924882705344989031450280586274381023737853593373352194896138870229267061183390038053795040912132234256694036747439398677815329035082832949089411864819893950532761436498514298296384701042234134291581040997004613381754469123149348001303139848727392868601740211499365986483852121514651140620709616897936331602697115536315786697756765013969713841720747234592976590950110304445795217638925565802964407898337473644061905486774375153272757456883040635758542273508014041632975742220634501490472918251967245909077639947441728886737323195851139898980134147919360724348488992035285748154552065943772580065484699381298130210903829123020705357347567214320397489076594999524326439637328423097089156297932325834468559292237356865342585997868009852073962376159417797104594092356982679306206250992432328979170644787651350695795992639595551806965850456150263666624592590890496261962746481029598288616752792155727897539679830671618737251317871377390827187174777431449979899831559613768530556735196298484593507143592000887350421452129245029295773020301781526540246696052850609896254459222922964110718312824309671582937341409956332426950994383578340366312714294345052525913284793776022477465139327850287531522376159891672704696976905885110174264262888676025832591259931499281805596725841217091121286995050292509384113104950824925361303809560221681865646928014944888942414421680542843696775920503247335636152134822504305693553448639302735681703484812828860480576786210977578536419189756805785233909069300934705684061428531652077309457131369609759271537633117554370015575107792495976617525115118081729073894562410479850838247537124369703657688222396371680034099827059855642540875845305997116415426526060663244781033305086537389224148947390390715285878289248551753205743585776559448363996012351319977093382950526565552003337900754156217513469898594826806787640137205192629395720986208414493325015299486983893349702261089030952591147558165378469126069564518453449577869416250352091421198083618053615079323940308280408313329173879336795456850155193502842232696884400718287573076665492050048688480304842166931639011612685309562178608118304807437552621859960385956119750841544535456559389910354310251933491144878522517366981880751035835336608962963436110856653118349576662651564140153577108338965596264859810644687962218453347787580357245658653756810648938900281742087828808112679275704448429893999818305726787847717976147026426493935461592709497245041278388170187903372847422373375501624207272302255917183390575182048056933984027969384448741907449462287764557047951856917862721291977516807917549633997309946107633942993006501783529811840173094714997838519759911592425110005009065534944750828087920388850467588157754817273557269483764424754700767023562449637597119877373918774272066935102880115745185122758186794517413424901537536060251495605475637750134927950713299287109544857138254487356692673956100013227018571168529511337468221240395133189925852285514613082524681228932478802883428386667849089366567282783238355786549820693286561389238432105714850842657330091675357098111067364729842866368191050250125544808012159795640081906607825215882534372560542173163432050967083587519657181107331437040315593492284220031244109257255698489198707275416885546978312109589152844838281745228592306322331438412333059402686768206255147540094028072192857013059594731684727537993332564570637505171221975519769359783047643797412074346722951212692210571471983505514292580001548141885118706763470952854663339643406525157536591361740716308935181474788274804790726045033534698711300690607657272291537653753414241720632450650615208779978075285038666760421405756069914699413763510461717334482283320487619478716701866034041495039757915868696520040347992352481092159785382117023903843099651874818685936206179327375713337468514061664460570169902393044225010625113840425572974615618732354528695726162594619572013955777685917657074642429384436872631531228165934419827399595639502906251500946675800275916076655712634298866401939556909957939520674509810654317845239022260262311138405722087970470826475797556029145168437474909211986057938203808460662684598676687453418302181059218061304125368339793836789244597205434817936501634600739356435753965375830412922140423478234421770435967699922928552937955522295266018863091077897569154614603385451159311890335639377514238613358198316063206533345865457450074966834532499201690643674743122982927769947337463576412189729297379586976132786906092243110631911966474744132000427548834818972577656851620478785298231921975023649694022365834423772459963781599650542007196117916688680123453412546079530433070698131500622757708531225420988841465211722554827117689861491846118850507059036232919116680714786602300683721874427946619896180266807102374473728096020757299245723372932577501879657285057272879918701182539406067496528567864443209502382581659688735808482614340158864940835027975779544740758695160159459795679227118414118804829060765390628987435676680988865561688714806505065550170464796328346655979884922939435303487364160831653683331113990671629546723038751316225683826220170879970230149822665813178563242695051608674259884387426044635527661835104942235326310357533634617602889991813262161262625836564631073183273677969240002206929287452751118211229791468411541195233804856861990812427608332826451381924263235185563157040521981653498193836727176763965412884635219145596106962371764801924317274202323236911542937156212638508442336356458996828275479121165361459768852626624911273261737473880871325516184458726442087668606302733594266054808088599304051469278967521939109354519900112755334379933307786843388141436299257108071567717221832577101529018398494931884588373098933370293302362160384701630250347915066341187069105428339704066080149319162324974787112887523518173939700091070114004948416969772331578047533873660598048521805044461703351282241534819904350225930420528389673651725547579822133718889926262328563530408390217934221442994986335458697058980844230717357547392616421975914513036372519818731255645442987751795864739001581805432670415697821609070991416670072703857744025100287637299889801287328370256701745901651149709811918009400973009276820825552186669508166539507590130057083229671264064415403375986311370286125830420874553380361961446000293789781719708106561690477656185974570987424357398700711350620097762270689841319303628252166482248972329347216151636115259783313876971714467497263557545550909311724223737052485165887971017103932478986816879904912214024801889135838992717967474132047346357328521132565872304699896774304876345712400354481332894481240087728151214744368653304150987456773483186460802873036521651032602930864512790717769142892054509307613114023015541122536881096200066511450973811540370860013377759045787229085564041843270359777541755974568855414654760973534696840296959777335318569471240698326404558756322398836101908464333098315461454669484884988649098710527472848730097835551093166681644905359180665108140139353265494456012488247027604399817794192902016865656815592571782025091624687594610793406305973793549533194315882028724856702927258120557124087757231319880595677879693524863782026556537369523780514153298507920113584124709129166302828542808383224092988823908743074638286045848353684836037259334865314700867020217054353035122447275232159617095705853279774534978214057811609925973218649601857668698257099001397937895200312172928038938794966375435629261415071872195955041619953715897775238205573061625967605226233255012760109735596985516726641716794182707532099978215022581644662635039122794294905511568585939000979136262774975238298356035778156055588304669983518845866707919002685473769396951482437298579974355861048922048426956398146301163022681606523217979277420571121503525091978545877163229659551746297083924710850129117969183032257185380412422833531268878220850048621046874352649738670269598192488241571670033955632092540089019991460090377106534032860840072985762947164558614792887689504835928814575799294713039130293198156563135305408413232622769061555563915130483736351218651124543863760143884766014066235688904129213639635938671880222664634775122319128396400782421542950276586134199624704032657966384540149739697847368044307476284094272576721834798741021308737586265948174025057858414454818926819520085352016280719744814118778612389414347458959533364034017685373248732225057837231566384224485280567675704066735381765541315998495762886143336802664321292629857149526431783563845025026235209228806659217184928719803951507807216806458166067679195041899939598802127193700564820269501179545197334787500875509869844755386411990085335890804023814190249561444314623402145596366952350687505650457675814680166710889592907915981207126970462360587910296073850856375599525840764783188279343277621051515505980872199918031407799329648765751324469751914875688696577255694708276341628665915926219984761095432487526593365509905240355856187990793833965363050465689063502994492754303061134991200090856229185728600416355104318189443993569666719508673439527325890614512631153190799528331760955290441559932186818010017898898172688308066630657197827787796904852774452767625243426622434383920427070533848134080607798727108522581353330298109120654234358571313870598569586252921482316141938334424201763078465115973345150284321283993479207937255162135799552775713692656433573008362830162689110958982600790163441935435897936203680115694085309561214652217545712743959512125956021348905827766545750325367889872059165690826915575784523711862631437103422609755671006795639744772714864277181890458736461807309302116680068211136063560890987683380966443838758108097182350473109606040814015761805461717604731168043527262493226986493263513253493717819864910115862213767173899013914112689917528301570973905782567315958916681970258246410479473861436729550288429740869364812630159354322876673480098039658116839258365488937521979614366099077416677988705573151860540576485658658252758923500602922025026504327312968167735278814918633655629557841038334462738968498686115703213515031906063903786296619392727025681687493226971922809452036400512703547198969176374090043336636437313750342929650287820838069802617621020547201250639012975979225509742480230067240311377520329621498178296391245667895554691989382187570085116537170220787912460478811611060954718354098235690366903414475010449304159009276126654479386607901096399540048393158936563027742690751265422673506691691041169928996812136918053360542439358650435996502902775234009503652533279149420017415576216560598086622014174332234436947228497436317261962539817595161897836761308015463167152798178080867032942321324845655798934715497155535981047930277809769541734860225586652538197403294949850497068095166032839812875820378456884642229340294260331670434008535172848893065424542638884936289431753938756558621167846757074865332738807891341390539434937601449334436070470811948350933781142297572462617183772727204842132132060729101140809566687223080901167724783656563839875687504716931271523667795350714903906942651538109426537593851918029864175966997649095577389338695917334777021128178287170283654832661342307463273017964903766345093237523958137715409937536651006872777900511957262920854150296419046318271982121709069421640741850362389758234083497762039763088207322088919855737237138024865357363072349212227378625528507144913319687221241039401986645794163766398281720147793614176205353554375276205830660158741819554379324193142152736747076200961845044145429602795482335307711061927821642618820207244885588385153657542173351457729720744837831294853596509775400137497168298701058811711406548450082615931230085496752837056285307963455184034738809479607543591531808922929688836975204970679490779908248225961000589257191871803534055399735098513991796087367586128480350295448158141217589666849287930827183158848799753133896141101699497215955269410080696306613040479779637323941715442136363675895351400824686723405544228711050829294342972436946834274645680642548696365627663715301272951078712373772741720198371938571969492598090319364229095569175314005855828418750040521397442512072737908660211027483801561727004823607067671402107247796535399725390819982364209486699374979237217316895806519761698408977672113251961136777949997092308882186972073524470370040570556726577434431662213620731656703397172048126217453397506291028470913820780161285622162636696053213973488947009744130243890732708112576223185582282179899723687580779557561657311009545628376335071824634291830104904914507726268498350255303900827369375900658046460074574396509466698123502435400216045946917477894651405434346682283495173282428876948688930812072712506485958005614858611863605790483123663081888089373365168023312716213081810783744535521728038619941859316607812361354624067746609866461214783813847069224338178321249472782032411496174367656729096076223608974177197549762017740296556818259562562766863208609754895474236065897247195415561051590011656231964669646122175828580049596556126978018607437554779019074349168436334081526824853807454621790408519336810814241121666401376944496511719172900878270965082791565389476418012536751055238808078822982327432355119947521842344392609150396306296069814019402494647434401545182609367715245963338562461435409039474511779763342055612872964421032883316959033688345492014823177880542571611819634027872485928653153806454901322676223859923594773493956594805403117364729809636826830637318795182152324236701036455333741184447389369210712291400209091448890381350711249498504952190719733476048130344048325930906724905845650649835324165715273738805709444957917453206987690707548002380000221802141648283725990924903334780322445974010348243498996902544600487641183816377144786027483469787938923934478375330712650674387427592166875782234630855259841842596352692473335440190572796466234393457969836504972947540806329902137001699605197066189107150310886328717089031035569749208044277531371331645372942358294232932651772345199249901532710606053289141109344303358061443809143273806838680685518448272295448883472698892901473019592880463055678931591267519707789906462060224950772363034317723009516717625119509676296826517331866522184849331481831475653851018071404187457073469918878352848225713720002518444105080831326153858640477668260187427186285459923085311340689615053920117829578138665985838953248668962834156169016283765389079334756771560264060748054612795469535286425500871244193104951552519477228654138357824838646054243098715994365766725903663866320638404326714705350846839402732829430874147968691967692016363250371834126075506163615204285448994129267721007364018879383768456771046596458248077532410180514355625863208458245584548508961752404602419009424465219964792938192355955123003342258728182966621613014111417010900391891868251440768829204730789286994970860709663382321004298886065176870414176664545421111909448749990524810769646116802716372075777109536257408308846128445049078240645979452967066515373114966038275646026587159137719382620707406636218454763032427980352305683953401493130471279439878141287782931579266164898684279090195263661905514116088439489144427031908599521151083808154250759237668438995941511152394321960466307083136236666813273046564211624646317772814237030545472299927631460670698747879243006154134657712174413723391630041015196230383054462100153471506512532486615455100194498988473066571814763977843312325886548169190185873989183357588839612825815209651689432079487519473294278500163793253167000912532992854922988571221291615785412169047340381546169602417764920044110462857776628380475135251982941114305363369945646154236737236981168971741569781245505213103833774389159866698526730280526080739944932947965781056883967883878461612807116241864934414438623991211727769935311225430313880498851549434711787334147574193401477982573183360850951391780139084340516169415271475790772759510121395457007459344958377893521549549984596782489087267973971578812305770916618433657782966612935568182688942910109091912657896780127392503040788903118987587372129996683274644507843367603960339550673425842518072761369577094033798844521154496719972762709469073221163624597575550215965935525129995280743189901079558147613358475937033731218456704567882000977042937120523110805230830164262933683496159199042153155077814238518255606993261988509352030677845370478601379974752652814326579766119796849909267742672542835131052356847818623824646881502574307291871711526351543251574570024546191816433257630261343358316853801067568600426518201017509582754699077552261860003961265710839121523136494961466572873020705827391050746269862351896214448969406490449220867185685981679108562618044710161525067225017171202570708762113482280726637084531162157216752295078388945493233061561695814482387122346093490711808647548662441550754761105897585249324227870551896372730791700703623317469902045859298264502998336553452309764865260756048949928254221792308180069068103087386023830780204390515831074657576126273785297488975076671904022495238622814306955091967895729501319107976347753833824977944853947179624350161834315069572361756773001014707876290646151196772722215642682592199051841809298291811643472537694609961557644777971226189910151596482453872477775059576186887999719842420889509419910128556717061469314551693244746675164026946309137305162887553402785353736900498813861155402985880040323145274230480919187518861073740455600589221555387339777332906183937158682636017804837848069583609306348972487533100783830043691926932355533925804506904520824632395171425707942909922664484320350338928110511451744763166327935883572675101257786607079838305469744962624190337547800389913008953202134721952736877846559216777005663177561549849556654463787998314446556031366555900093844769474649869772572582844231312954723891861685364947353290787633894447788484794579170176522573376434065823156988382526227892956668636862501803997866637743227633723076166582898560141902827068803699761078156046557422037994559965581192829605334755190451633252171776087421092437022792134890476299502198020220244006163648512000742159901605202289139012823646528069931437275506642241746613094294439262384195140841775454864744380496306375692734262870268575942273775181108470289100709688225995113044148033906274977772915516505009173656343774193975414478609525719973109356384319528741811397868523437751937865546908595358543588484329812297901400366188320914383806565622881516216771252594390402732561088751852746292778977702601589445161331796754303162495868472802223103997200172940880646397600886985829382833272952322466148328456298482964331601069235770508660916952491327707424636531530780157833274658057049794036510200221158575454158907473138806263632071904415967660087870694097007184968282655251207879065046616710813924894644324079676679332979547690787913788226997134785354334369342527654508882505210796185145477912294841761410930890937647760033700980764944048785354425066142709545218401988678636130832796089346342982175090741761810581995286658339790999038098958428716338838018190476806022660902751261324084298710528634608365048020946565605984989045848924016862250519739360741150672066019876894138623958276462632534582545062784476429099370728013235320093197940205444210641898264088117181615127328553187648538311233326424288324838467404227639149207401082080489783641773788926934891651009011471387353351432404337760394821365290606995870724958315191427793375892603362183926286919203066818909379220492192306119709585826690382213172376257659290688719442990328028589266564886988758939679238262335377678782309452745778190665215422434441364008349674872635120173721248230054110620490785236078403252610817836818602213468746508142639626648855792752600390004655467507339701302153970968430170368908153083038861526446595737349896155187111589254628861392482825343480648254501596217327973704929330264254289530463454244432986191179383065472057972336251694718922489125879413447144212280533762834776150919974488958080685158658350489969053459545612587156246157639822142233651304569900512246012123527165152254750124763686144597687774746865053742832505967840681707863879788175944654572272333101313499844621676951928149541754962502789647681731934448931074799372032009625656410671991754368328495025642553780575315024790529478294627692477309648001973026345332726777672050193692725898162007967992581939345208055539613757241727807041832628239773036065722691085688891945881551742442545345992204959024769600791281041341322555927564449859837207560030091188712130613599099929636784195085154474639599862885345976990630934910218412573572187770415252130592386389626135906089206138278626474412821848706098396904610619839082698260159532512688301043635099195089503652770014538709801155102822363278366440351008869020225715156403248839293153405929045994533185438808787107530167328500362590818549078198686593592052453867035181930677191607040482650006035142786676133303810095491759419649375917781763329546212007394295901311682361114263717022318473193847598469338789627109515294292004982617652828657723001031193147857989045038863163819370455237357117169000394540133543506700726631693648541618238767582169028050156619188287734326309726826025019781280405486566598453715428020760185071670880558675720886672594105682469399118886147963123589139459567465841142763478360087975701006623268123043803744733863721681684789805091600569448876595655443833610669552099791417734507913748468574875964214677084860029405261944397117089000565420957648010634935231040538825235872197072948210797388688611289518113531622526878630878503160694769314036224327630457300568764416466036933487971452622857180105769848798028867424681563688624654970105330397843549065960722090332669191697315643584731504784395474643761942664105639378345449341894311897602716008745579469043764231251857977389951767635545557042945926620145958523221080192685834665974019729011281650933143436046918746294571201419042081172428824777258347356687373003521844190435944010004930044303731379373865588584538324146543150415545828117787561968399961207796928337367811869488672667574644812550084179760512620025400514510243466127513001445900352074818283616234371223585330450513308869645981313168694451666486530858633122393873705647532443237322992922150080818412839171569598060288664420252636165483413307706119100347705999110471119792919274398203225263567023298535282798949179475807676603634686870680629198158453716707084968274744868796773801830203794955061232662880302114526117595828254761279052816255526853034363673270731670587123418566631789998432180734894815910469702909531665171905526245716462777116953412139295068351837796781575829763622355365535631225191186434308294980737852741789205551720563448783885317706267028043996949329028896152479431388152055745248862547754515392148308490479853884509488158498159216207524231154037024099708621205117306340864862884811117857851485578386849963113103484089211541746884931248008888970730229944746232946325975914227202367851139638499090067875122036209465105536227691963049895416386900396249385355773753259094322262431058504754054581448776724865022505387985345012519007894070245627523021163335497261285483096824426680265764489345956458715110329813958108768946352637559480806334163088170208977777491350757446176000374204982398149293095339655043963979020054673495589843382074822570796459684114847059816135688201538779507430943650286170476356926058876619026105165253937715344833261215470313880155968185292219148634237045194852461667939065113432737526060051048604081093817430107992799750255393042544982040162257996191778014429653749112032584916174994836704114901803927472852107425333753655611169060644622155099547925101331979815899276335673200765162470467391521739651299161885232030791937262108439683802286491781280827668565979369037803583110529327608265348816770338648649626474684306475390732406387624394170655562269673916503786623146408413855897449965145599672262364751870804274307948658128716789557923440295922652917139844416293534466702703823812307688934143723783663078079380624740725103513639658488456489659806123568713229684017344381761563369340964826983806797662563793053059468959017421380436967509044075470237597571210308870257107423107351901349298997086559826657942132233713374933997440824567967668945256773741535408111351010636164133795848833039006860044691862427488872911954513522774400307539063972945332951906134251359560977057915996163093072638862471421777537787846436831497147995279433707443550207908203045990842414694145258936713136513503566236166749018150764879374653269092729229539343424163648538523133477204309437388197323483688857689911395781015235252426927706974073994943404281194674037885583579958958072320260018611135747666468247580846274259264275575797952284293434116199866314582452361938494076089338777033541460346084315461634308849561362403611582913254257392719231064926492644568386166935091887163815498810913738825378259814082550746697183309495545713814185532478199899055610052664388762200830208312789136844183791174589454488406463550861661842821221254045348249743315044025017042009354892491284762416038119057842280544547372670004646163091478805878369216767510388477802835127073264303176446136305560127795326463073042716797622144698796063511688850874136812374239397919874502060378563054584845898420196305409986558845846748808203571011514517544520084882972162405278184401440137206222451410010667688778952520106781186371765820424972692041044581239528735819337369410887184293440414645907008763520504455683801435517092669526655555827996512073918857704740165557803137341759316542502580052075411108069909840648183475720367237350678149954398143489205111843682859310872432355103885857269497930046875447139840997890321492946414163157577508585320015858198662398136003791572771683066470894285058377033382561299130409846860072664436469727895882668040846549026480570835332675695456549711194394575362215633121132812992501395812984177339036806511782173932962877783750885267447201282690385825174391383412169167839621140183626658417671696572980912501044702946945136363629354770806384550606515404584785323275050583948767231415628887254391152168135752312445322569915206447545004374561158288599399778525463916388740398364389669510718438717137970769253738631850913466051908354115980444564649225542233073159634309370287261577260746724167018855058740133470880443940406675692554968061426841345252316953342502739739428629053293618273880711939878404981315620421605633902412528438494415411988558321273983558468851491533446170774571790241520588791199671826451922268449466968379078141430761909029866160156329640247048968570597182497917971090340076907918156837219022097544976923858505665887724478164430305784777744018628109294539732078330612928587800141141543499053798612805998261041565461016707708891670882473835648077534927671475078682535263994486357301085719511515033454662315084355372179289946793958380308272098822393088757109796614159133207974801946451058191257959860434268564439539508269376289941910051758086174558723978414068750090412623854004065985973776999165988971962162055529870817901356791508061356381516474930803316319263637060871157621501921462984645392875235732779694289013707015849334548122440418159085186248254624630061112735189349579908376922982129090666422226996263628025699062410863119024347188339500789467414705671639868611688815333179223794846910127782530432515557835588138705731741225350795245782691398697216355688832101756408498443833852562352586737959805546344897762394177624146818408859903386476110456981217022088198494837953893339648351721737756134489025390952900854947842997519401544179483856496801340470010175154172388155977502046542643853483591779312829052339666954782934443523965525256045164915680934690574007246368583749419532971508704146495807580782501158919121763314092449647147810558612006761835293994497411191748920664514231792831894317957848061513034447119643524390076969158357470911483324506981643929177378168621845651147745517729616477762218153022169895417101170272654541461202004873487795252704859323493484111143106951360323285345933751848939331255400676138675243200617289204788663385392751723396027466744601921735288737147372668596747064424736492088283371072709020342843193797687946676248971516977239308231280871909227200505940513002840164804487503300453134333142855400523560326766954970795410932998947826427015176427867995963370089527315517718561858483300278031081383046123125985593102188568727053861551589125438715295461820491020322717407141545838485456767372918167267949836512315022845068458181308006218138931500918068305617193251446203431812893262424958349585696065265233661596510333776694250417227373351275186519112857180780515518131357064106431303294103936530173692406343942638273740254454088695936439990802589555692009544901745072932942686601680440156694948381924115247084472148289517814721318370905718297072630158825928086388793740988689073620357644723760323882823949543741351397679977217566173106110908732851001740185859974713605048064763714935280164907934886700970341637234934932763385020884090844364908884537015850229012863761559421850439289712453554598582243309353290788733000983370089235111285239674671922581225195051750483131099301818632977180089441557762772609275675939913139370210836626030501256224209877082616112650546221984632487777950621179583462843524289385847510501329457084268173480943681978905482402809075144961740479557859512935543109659438952392808381753435217381410466178229798965923077978870705180080192369292099483665133112185155324566215694310431145778691137210496262783577603280906434500388733895647454813741444039115513176596404378002860885287742720140503072018450319270008620454717438428241901065902723371528452402947916427865622726106187548054276170219047752174048850089161540993664623131225669876710369393770541423782589666801141186318161233946756537800357111286710863683764838885934553655899662373286709854735613560512627783589363765306493763403575351042269829291550795615322685456563281228313374140020017164360978585356436254688671834634919488658335018962289849449515537568458526169393178817962672756815536475462927022560805139470131130500773752165544588975927821459009792902634600723920275401707409370882034767469956967984183672717622900173138396966375218869879421415043884400274599809301872103142240413752129424826707775212923018021015046205244407049453533561205194886890210715764916962988475439459346752718210910751241834230355181560319574399678623868545740862047831637446121801898957837284096368398467131967989797647742380383201471046589762613679056613261998799940223722368763769002989265307550847923967633507879444426773259107186351257707828041525545185984220876024630665032708076549018221090284712165639412354168745500616002987117164585277331830264275400519101327548643618411805912840467804274989651473034384367469976470739318271822362328543699256523210456862133720440717128921643580220090037091228932858515874865479590770404487808942712839137048860196050740979186932501959878110974336088892025522292152362630008854158315153750922902990705664869090692074247909656347984312741116974579963363727969075615227709358990712572441178591807999107880292848457633570586644899242257567969504508502559263390898690340496158157122357856531111279773852517063999369063223063492606479925261245742516187015384417832476485651803395240788305402975739952898071417338274864015126021378644550624635211728419735708966131293440575195384740977734733712020347803001171164863900410039124420593914758082850328317791970303529827566904316861575045473591805501430681218152789195478129996000909714879449735081799037307435084865696709993389318997370842705039942758884671496080486196281368470676745994472288615170030312957811931004307146261533284041370532574034221071977553060339476964479754035277257854689283938026804078798661002573356896282648868999160286764627663269094189099297915285119171306778288761390143668412955348838559269001384614435920709848230733611389652176183949415411156707829075815498791732077727494215318063718134704315566591464366830152617041183567670413869969711762536479353149288661582842317476452120846666406435290458870880770818690415061136802851684139798610531761967372098412641169291956954553076392028231243882521011247812938499196559531881205360496715150026997113266499130935088740250250464416151580184494632606660781850947777549037882966505546348261623876787217252124991886712966168645861704571270868945509576311107817060695300283279221702458536971160728936631332504220138006147465294885025549215428599551552177179432891628481119126325153668882001035757677047258219237284394797476763813709492609692178331397472015988945157624508842588170205924900006526534364558643999951042897396437977594941826943340772223089124118692279000200134833419848659666593484304078229757250185678613275059306520209283087183283529939762554652837709638459805955983466692161479676710119360317259748899839967629572761110601156348104954102147983953353043524347799006306549565967454764724711797338945087173254623241009750769882293047265880385679926670762115796846065650902972921689460464642984765435057647561302908364355778918758640388484815224059187360273742456788425160925896602080773150450068596294339943708073165552540588824654814980422271056371580908869116210061108407603679327134648129267599797409477338529433708640299412226539169675162039109152279057999408242129652845714482216548229646780827775527061012879590746237001631592435531686588676813835881118601819681676181552066711345744307940114286822673102596994962832422528217318169998668069277288170153385372560701708923387155303673218940708131451385460888783316967927119618251946350385335361670934981343802174757172079331913434169402484023419818950285717332394342104375238421234551120286614939906527114045317297533036597645806282593354216492248112709176106642508687139020478278874041730571242229942642039075979780112665889594645574889651463204040226614545947010257333728607075228243245357779525565317858917355172327410340666257420947858184436217318787212135925297053873143269696801256997889565187592506193862680896037129610409710111867491060790780759401118927555261089018747068596423479510940477750300345551252586803669192411894958100568191962580396586056492232659976465798418005569462077372829694738006103480944970015599871390880176744893567952701333133508558434337246367966381447239355341378481274095999983683009144747170152726522687612895797725665259243956999051067298484605434227850775511215207507878069551466115619332462691781510364466938976030175078848081627094442433108662905249521765921517741490745174541700966199823768290245402214987889139462622287781057038361573830954548926406106528890902758188591424976747441397101443576818670900170245699957277172904161279188374162642187004440333401011530500443020043019714421082362976742710042378056061247044105513652242238572161552000785421900327875390686727718129505742169642041321130755838318861413388773897635459624059234124822897416981626679795980079620832485505847061957049158737166113133732165634446464474846597280413942001264788372661739064523275568435828148530242426010593559912502192705990643150614345488461733056442786472287265250436383007200807517038748637371645697972228090127984559590936526818531015936946533139190444987493571855855986340471410375530114832926470591673857247090407527949336712183955752002845827382043771542181450288043408281375948668598794547520746762536813922365870368087355299223311605025008642541049082769872227729588741196282423311009293434963997198922901659806490648971942451818067826770098364394828239185079277929773366694647929252872757073650731818263957654957228527454655288832035848957943861952193953617083553816359763777535336235301318926109945181309221051144186947572563588701587617428927133256231546409505316829097610263429621147511769473288367534431641830611657053334303860753207230663579829278786834185469085331384013886201483531395374889362902184827023183288433034380276523947014802784429896246538607761737773869153263166534430518575574257350886703426134132059308187907854727980762418554114848841870974244758602694408942791764270811353408562135040773870929040374319928086641145676936561947729084369041452123132595367544991638844033407979376535876792108551042070790485893901289718322857905633672247643531530477412513394895988889820544247421527738014724434743532121882066231468931468120408545815679854543843823655772855128631797244292067081842345226927197746786186175001179207103874294820549243442543198833208713991315042736823942249775687626742481332356068684003066495073765141133872849972663648158146074546430687811810532930143934542101245048206391439922287302669273608963047295961880639277474468586381674927258505266311821531207888433206878039792549227579775442741277288130644838643540546674823844733982530123052435465111043774163796028671420067614567492013410539749716546601052180882344853464444569338697999302254939109664018020487390051550118014658231010871216638391250874909029820130625007933178451609457836399925521866700551512334952906319038885555225104092841075403417992099007611631355588895115927339485026313671706698503895592231847975211552770082817890603203501643591116757351623876601757081747231857452256920433972050926894251476508867604520932047465703216992326888913644485459374835854634365666206812719619837225861377314171697258289566576543006577007260700737589219128514677817431654860545480891431865227185271929994259097638551857970629485579729452884329775013955881498936916020951684474436036642667093073152664193484179229579235582215888649807278709132677351040926171380353307494230414807466553902251767214528151366144441827531243927336458540957777259330167707692345980537549328541771738384551420445712503622583752580246040795078132904000884334854742726121242301360249614894220436171936407750169211124133386002349357210793628091119804596021135192816670594876985641570459248974718322480977263501821101604855441650780480415447367736028633006399788470132177159144695780987190034061389596578106275482436179451916785362931977393730789937053020169142540576531929498552085025759547104871363394513562553794338202807863435271734287631634845836506720110915711801028241270023512312074381100456472924643412535700047272361602122036135203791404495596510060748415208225160012484019049475516751712207367126064223161060974646872658120985096598656418159703825946860610587137728240551161416806096042361605556506655880596830925714156147801263206108357927810150179774444317701935189390472216749735859675816490912783237174163612832210924120024805383287089111498395267739724542883885075857013739970403889683629787542157845758902894825640560199825288325430601281546801658896935063999111858012646850938734803365566075376395963230766435881489711945509608392819038293317213446227371128873244845661593398564522151224474492228510990166770960417887969961648831697538838253159590624146224408828676050587979589341557470574460555495374644878587939147562684488539656061609470099982915876559063352542563090232610396214186650048465475779860199273020396564004403768881699535488416877227300189491113266766527903119732266405120158482571060336618149303608445837873191121691864780436047778413053744578924756388174188019328133823727843127134717189916928533453657427821308471334654487158554228772663306261404170888531654607525547545520691913420395552408489671832449082256936135640125903456178506057506510450623451507237196419485166001367205042709102396541338424578742538470700990786085395472809192268602819031225951362927985038365837168018604628113279416797888573847022741188090684693726364617595958299110387951356305411652745428727625566146486216606879300691323376945167808294261969871649515997759993000632792338372708181647052048752062711058107796001628971347871154527470198060035269751921046471550909038750866639805806474798636819631529679281309264887095717332427216144901013256730363049700821994977951773438247295562965976246533672250844268907398592961227351774355586134573659383677936457353331651423282436181475294018947164428126351936553318714292164349531732284986254695551520058534706692335164675174807296360365381906894563199309488899858447551373131986035961916777304427201675437995575518563468459632356385925565350147975923062581169222348487160366047262013304509765903100588013706772205624464381364707795805825636221704829178037421172701473760546115581199349649697758999280070622908603837331854270517726901740646058925664117456877306688991395017662839033282202811592073808260731773234876118153241329899446842010271171928776776750197477586998892362025667053020639738743656445653349362246258686266100062864405238621922083928509755568226809931717330877974968757941190748959892580810599195503797453222069520244298910390129389566522978333636998834315363945400064111832653740821098970740754629574709759693405610867005109248492647178666048533007536250452331883247813583991151936979255573848464751549241958012374639060363205187945650924588849994597359573476561543702618685230597707992243313971554422281475652746696660348773416067570386079187490050539407388046951110127749707626675282991127057632233081402826946297099364646540154453553089357769734338203839585113415421483561140676533781564724127651941014213046704005766120894900008974076450089231619603618751711010618687154299337452390593953501242834928177063092245897678265872804120830472299099974949623976748815808731205314814758831044014553950738187279361551658194884236623110071984877606730210093583582299526464217833548883679111774133863478499121807660430551052412660452702090237320870073375796300173132790121850416516569073008319802230033252892107855232164318026624144511689565867791954309681769356317890773870325130923333575355109034618214429654280664695808776502120191544991960992141894894722825327346026919190359966849400190695013223920546573149598460348866467944479195910555348864875427257340626445022666272755950502713236753912803262956680497495269397197106281593861355328244522854046075746568314288630493611198014018684282269526816105175953307407012803596183047565332788131084111811930118754086772777068120901368427840925332039685396700093809190801416783669475081472057298511222285350189698843663451339698731230248469372841090169773867826818662151583991151367002059712423677507879267847747483910379212568427700572038841372842335872125364331399307565465972322244077385335597851131602348468461604781292477181648204319504580424497687076962271582077433646364232109841594917075652673749631660781953849590100979731008113117882644211183189121452493306687228830835742522014532772678135327726767520736119980366269221053931716947070299487949356405748763275816172379456231364334163114672959817056923599162973222490924693671126947878381635913510081065704743487030752253148129231793650729673563977542563236389396125689630316782091864148705865531267113363769204307580263202216708815778897436813046349873251813039020407247981960352442891846949883697033350253725134736044872785942659465185960154945030822891621130190729240522698100276568095035395101454210686765721612503146481178149643646062545540501218968764724586614556815865864812088679099061039707266231028150150901089399787806428350761644098390751782166967882599992390369863745853097684975042961335631867034657806270897024374344128728919927042188979462067726325597985222035713836231767317062525390897249596607853141283225848150326261405097480220894218108659184294442418858209581309454431996611347607251456150543571925565642300620749672551170455341097415564557358040208875713261800825744468613288491556161242502040563395279929393096305709980520095609794712320333628569223403711811714008903305501279204794861294146610584216805567379620516853307263069526240990971655358795768403418075800824924375314369795838783764009293073193653063888399323779553848069055195775415666119213649562101578253700667792948086254867401952468086638298997665685326022078503799339388019215040440944827690309977532116779090386120714444534570762752962438417157163216549795401633194773086734955011252550250143566546252458819470820595824559808609635894377100011517625816781438571399993345905033382814822688469509398430214870829069041392772590179387039254539659073925036787534349606879088635151327202988474225507134397636742706964945649256588847093077566903816904511740867778403267117926939207112653277323441789462329415096421092433998434106717043494635568498961615881359860484748169482330586964469036925023866565823708820956759440878840828221164764402700170269496244354466173072704989811807801412269452725873598674036306866428229007287623171029284637218799641014384788721916555660403793435857103867960466143247960223560767663907532516094499151274916221498785273151640457137227847259001208091275512939488301021098899475517069955967870416439319822621978447173037536231881759004736483599143509380778024035171156703909128139122368944938363403544804223720621608906342329520700282500548281765184468017103222622523409283632661063291078205587605193420811856534008772667122172256413246878452897906184061727175892547987244993278925484922731062793208703321251090567255142214183875474319148718075449963433800949035289189431262276120410146638651004573780474100307339023736213981596895502347439176716343204781757415266443052184677211354108676290878503747942292619467110052214240622142116856732722798138213571597704981992525257172389432129973796511086041374773328469606743284348456756287539730263512407150103652612766553114769991893019041707037863012828712069982939203138276193053083158553089210883614470503976349037516171663290657352760965930418008242021629126247959466158608953509031836321179001588600866796621639136219849977834672580336823349391069480469186237924217292346687258515397474623991625702236452116042437805915140808761084910560362959520177246623728361852262564475704875523953724332047424500170091684895731170382378292366025798765684709244010208366097056570855258349565860502711199920525774887129687402688176490444339373040165688819461305467974948597478931104725178254298131536844633552662580858651300258763081999890316381220102365844314074913278477998302008674310231233622684584655814099505417837759655718094403234505230942989401423713522586996250454261666264249253437783688672411822233704126264154810822244522369037582756821327041833494756717902178352420198618970947491941595556464397502521896611467153542534129263675585758170511937581816741959502678043696301414273124545159920246916464410397981969418816125734804810507580557416778682715200752827505307392521818730111738477563646617443942569271244886571006046673266859837948322527543381855111242408482855802534686359188363242432011843535969739968371049898717149944324963396098893174268828353166057304131414882431601826921302917338623864562985530340157252830010831336033205588412159674755291250155996015148334916481597787186632159359172556790406531598084366795288602393664855834856595219747330490837043328506429183981833564002059431559118210435398618275963036586931511453568638009161105311230913264566441816220422888026351312172393191341762842502623363446678950184831961598606985212060485092856338105759732094501976669170036158006550220163492448582393631398442124534797815356442857490960654816066521655877016220852125586003121069574881993474172396424822750895771077673261059504736499714558519010094046269305967503079038697851183894636550994658918915977939954753120187749714373644274327894388350251109934052231034691976402469783267372622932209161358176912438791969789325056693020818402407795573506950775815614939180257384453701809835767151841183307355003094149406799986131801680829063470279841461222665162016958546144976713267430044713543291903470401144397606293881529462840042679080263715431456815283289089967650808764722548893325792688026542239277788101634877578860560991781766083225415584908175785211906101036309066313433550747747496979900203720795186241846283908650924268405163417297333912319931796262095778600688815278765877624350631913762506875086596707521059450164908608761072006730503194217066519721286803388715395211038995238087582841560105521964873464636832785457876782998673137890977112527810228712917529695440317050074987150080332500609615843965891101640023563129641217235203708991523461153275929186069719501444136463179762533142379843152615032530010946981118734278955959228111295658114846957929647752592809697162870633582411226375120551492642939634820115701495984500835590672451643964238315873016147330344928357252944332519981888920071433067003826217393574266822604664871144336249534809192702473761135103913822064906595173395439658615276413511708164484435487670839402351118494073355362662684998510251120020073885767689552728935603719659960353302447412809972786975279231036007462788417121637738077633528777091699136580222388747386082893833177971560690679413737307019016483440120659150140977200974089806005110262312743238930209596354593134548137817073892951859568433119834945884833918713018343186916692650843313402747803915068357261949655769780711496742783323194651266559550369848737442597042885315478717246540913488412803877351343040705446823353860194963318116824163176962978362794510630278006883555072973453298637181531667416332498855029042530610519465177026006223562792731398762019615596408412536212496886531019916301945045220588467864454765070216334801705862657752027345430448608872380317125473350579583818705348677687666053165774855615303550192382525801126067846524227606652960545565839015089149342762006766418217312170879142241392136354948188694487513082798036988154981230689680045429511383615089825672692387614725149105311789213781210508762265121820160833631215234976039031710049309206099842993438446881502709932752139983962332153617042361991151176988393458632594159013932168878608976397371804188177592886984080806774770916491512638911450330998085459271094519854315491533943257021926702045499348957547758261866437374744636953417948370546928459285297320736618186809385445129501990277593144725440557304690300913711839939969146972417051076133617665357772879442674670018951590540647937465570549295643816818590577582580246010500374859828796509246399022817233774018205126393203462389182756496343853533711057282186648678334024343758024754797850764362726716593755083790522519997162645162589539494235965970133870410434724602614316954045714620446159236627500999575677563128443415007770171303715821274770866152255444938201264641825195418729012637898770732782465375303464672285448741421166856522198247475755750092393997961298135339561042950442793929175815475977815707827664975636312617570733633453250060218883871418897186564173926280147256922846902349675165677353528518298041772842095499483082451739257438727480655927443171422400936053930463965661825073680236587412157093086248173387267437917550938863470649220222958285076996613800863126372946754929468278345945599033426759421430805508001973131403007158673868671907888551121955837497112603790486354410368146527356065181018920719322492928636402065432846194891033998791140876417604958582450349766549303855185490604613143979471274404715772187206384795428989707096865035421569501588334622993575198576966321046387627039439537307855050536947226051554398077350932245334393064824943471997172569906081975424071993271364026015860745911396374408714151879879104349978050652592208101761241821471887161730759479151150920149340485990718734369600042214687374844224121761625390090242894398150671937596570918473460792019401861859866781266993461980155715195034442704575823979885229327645831282018010549009825527489291748805258978090363827169345168965275031663830630325808888978186674802422691646561672538707892866809601306910486279484571786814537749259875530947325286135365635861873534316810072325616539296625828522954485199014133043188892482811471281722769844761704065972758162318755990527122632070998528291150984379822280999569132959614339498303969046324033479828817228855440180927272167634450435291259563730712037626916435211576721974760805404388625187914244692249414736732755790443118681966590508252674596868269144154602089845370331997328257811212382277076962846291974945191343391267170335225167716955882037804778584847684922743355899629999597318665814745383973956499132077090049756271519515274622524803381521017162966830667953969559052279151959665242421204086916454252130464291752729775300153498007894015018085633354320112777925215513797323125113199665087508636614755965245228052441648934797774708742925048853548071456932868543083127819063826073779204487906532356591488644024286972416342930504152275221560015222382046760291586948770923125006379810540310451937891644816557337910313178809598338479586138008147758491470425449507317337349804388142552132050429442072014849345757938583647208965005135584752519434005942627947189826786262492296384985668673864038638378531379688256347667946604100362961651911444786192328612085844840441843817336959162005934393675345022792658252821893102536469387317475493165780062430347318468991923101582625256275982086107884242809618068261544497465230345007318583991875674489498262552886334876259429474519643921312437023321497038763434863070529730314386965204821290519760162344885015618578668621353770389980415382701527239581340840508623561510109124906793400697011737855396762437856738847948259331620327442749080446763291280565305309996985941903024391342404625585223354097061570766731809217527711276586770714490849938775362730431084443537810225787871448415063833520502666865819031682747972262355743237927485963758216204445301753719258761549365589471963957537979846427525038415169675081630536334431722217194480635625381101486519505943271883281957374425204687692398938097491731934686129415546329829378055492506302630635397660066174604402047352654001561442695143266760997573352225488283631733004036794760725898264166106936680443632006548047709228144460967763554477753206756435612327191734318589514774878040323897810156168093299223159593700656466187788770977309155356557405150503734175451968792494285957811190562514332389477745418243792464829818666917203830594152324265679517196479939632465373282690673036234664620363755463776843586497589195552185723344897575519714807225728765259514573387554389362521271586058796219077436591579209076722770978112230450355799973411176225406544184133865109398728651512890976242963768365582123260069105983375411803511447103650937261108022148160143940472121248854484073848704661939193612661844885736427143413698139017414845512731211796231974215395849829966519667244205701099943828981851195670453732320169763237604617218305704885067987424948623151948957642387453334789340255411069229167178016299478346198041045368950382435133120267396780373324917747302259160605770773910574629819947130332017044141783743682075659499730848542587422279246392734481501315388675360288094587166337550817127504913752487128491934671890798044383311306813377910212043286380016982765749938725631546490461697302044843897132531331529797448244115874122864396431146334473607508359574962325939469366874487806511704397586678487077372464411264522052907660270054374361668083451710725377351260544975055102417560324420606296689108063606836125973343928243521430241736323563053999073918646558419964464352814254575080780670566847685487007105133620247078790646840970423388653235161379602575161001397868249078161664956869945537107689164730327668797694588615223808439418994332684002204208221017765220209923636654307905918577746995326748430335619704520323994134746202952159583699475591422186402580789619306921578935549572278633653777493580783369378655494109796084545251301837897319588176476449362015054388201421503197218974347370414140350514169834898466840776119956732583773157511230369412334122751957656306885609181439124921893298649107393361913694961270596663294800035726010971279570684443866659953464320900718827054122955673921210245963680390403538292805745857471118539165584130855128889352106545873294465191176901467454267275339697284235839080831966780566864700899015200725076587663097345401741629206963555241464199207410211597613044602624015358004578037650832472116462969898791167532646554097498406341801197619069607525626610878368196835488391118109171441429422703249692495148763114430322916367446990465611054586769029367032892978934429703582981323698978680352085571905935872240211245937046189544655545768068377576141159509356255588879487244108197591743907092830816017297611861690989428186579005912570995085061026882629441236000123254644843395398036313696979545318859346944418467843859651704137654173327075626893600578099554526510637833196955643947938279987449006837027358209343574148478327563856541017107981823496277655829025723734999651017651539231910825382368574656719166006214685744644198517840292037960598998487410466079180091986000789456882264695048881267428881368905191661661527279180752902654717523478850077217788632997772950453599066480169704794779523421272670422063876962529870183771763664057497181334420458058861995109719223691483303888083170218121095486443232616851560564209223196395226489339928756637636165792248522135158537609060008324975472029782578628491362803129368525457836213966293715595704152860721728821948763813666547169144098993647393131766117677001759165892285496890005023550234313292532396291179889322868573472703511892151058801103256143305353207829506383095896538501425328370674684292357916998956199649271704543441402817468096203956424467147194343728957106649049701359360768733949785377579366709651417107951248132426268136544388189579730845116204360897428282193343054838563110036628123167368337348261667756982000654297093459799487686332860745913369686611943980781301462191194811728274057547251553788220461646392260901894015760066247299827340115492673743946761759464413324278685765273876052046314402207753439344070805613770976378279828284640096930993650716171072187591815801078890025795920518070511143473035080790617656530500918716101536546095081638774670735190663573679088780299882578700296586269012462327476139952508469354087446950201524886153097037361313652882183057408957871178687805787175929049430661586104364546596378517755500096299323821994370828607804230123547095088235384234474384105257552124226361038891050158585325641843698137343218429226942962505154030231818542580657258095120059920972256233508724628608574050962397469100364217390809772246354769614944039250652770509056270624505088447154178777812703649619704524191013356281990224287593952345007201452872318257398799235589916416792057141457972908293691746142681931898188495436045603331902551580599698399698963553990385760168485777934007438579967180095491276215381254603135238930009891553760731274753874200646497933463719657524969507021414611390405147241602323955709345883451000229978018569666648421893974715321314700661019699306586628802883456434447193626240309068570652517348971360562085007947645007273975386865097751179692897751084161489898391818120661795415619699564343443136636947913015279743326226334424529740103624887480084218511601858511718837084160218255317542058623896441539163731479945453492816291715127737071199754665965942695299688442492424449815137867165118502160901427525484732082532485162130770088763740490048959897192734990489806320018508591276993331249310066340488127565216108684249893993560651705671834931597767993330861777487693026661846345165205084753315090431088526892297025408942202699915086518996777459209472706540513807106737814537065163523398250085669677783972773774823111255176663939836232062468243569013729658908899032591500451306022593891844852920084132393344161774097926514557122476065549485315435295302569478250891880014003241448159383975357154544909423529834978012967638615435290344002841903424550678606211848977056008301826191875757337366482454027165825980547207140250610166684554835303961384800469737006388502471535702613363387301055063494133421599247836011740897894021442998976705371971596893747581107791456255325929285606514839441711326758039651146925743773088079153270625458079264688920347068516220799014341827241451330786973918874332492822233327147417144908662910600226034917170616363938867927805461049300213593642582619904434796046139338476254461620423575311696906396510234002917874743434296595482699083467732671180185317834324367254317562625353201892534332974052627432974348733409180610134176195379683863963768205945552053077569096660403769158436998064212427801229516302501269518766572514528341700178685198050476246472828755638655809430427369564194779163915868084634365661585822995028973941387576698500369811766290729062365480469099656778504321868654295517297804672261082717533968332617432057336795184403791572889625279003860401894728125217514017846549366903983573215605900660916457793506412385510178938062995524944994076625225726178619702858902999910956518577824325289230912357193479825055942684475057173299800554583458688659454349958793183745839022848647201369321237197211150472125691046144628101746910838007504927950566768856852014803583341254635389916140182401025252791776993254513880735130304818072134557261552038053245257744974071790442016919330587425187004409324510256379836939212657754777023993690576715767413929927704554899540173844710273015609395373052215705811641410573685326120385567151994379008942719681335737808792887068844984729011156232239578766427401933637188414172161239570895219826434310128029263642574464913025934847649530325154942046170254674030393477720230192368469028257450189154914634715731733983536164358198756946955530245078258544206418767982677217843593685971109645586073845251601939727898583657293491463123036631391619253897588815551515243441784542265861857427832094447718977025621004054739570826193483399749091934810279110093280605508178359614303305181338528252682729628638795505547046097134997461341469824317605513487555406822864556578692885601434166418991125544563248240998031823340165672319904445623122068013191382676089051707494354139196691885238436533331794666114092758856691644022813485857290980016892537033498225079482969176206292063393945043637771562812878412780386386740236236429881673711326077703252055526530875871291431291109932377033518305963456595012100537571474655076496704805061015034834565030580664766325952445128599940757677642915514261316579971048249782734032888450942726727044646024040771891266298144214507142839295344004633653317995001788505701085397477143844929426636110437967931461247540600015695466772222000873602757611015717557000562065421933210818335028884785777681870680321655690474304540514258094358815457167364862079255925745103231871586605320176082707068421834262013072780625600926526819093966880937831921841037799161293116760344427534023350562712778991465690573960472604592987987546124411472851090468136774701913618800079291952005495339558591565059179020146112774506569835988464891250250119277770840044178948198647379775705665749189641950393446118857612226616752503039459515609423093420518370534207871611864225502261193183259075205279372612726764634622687515931596912247613354221512228469666684302766841392466515449022957308804010042634887046778380296724030610280586775765133997874966434836852928540265836252912217539357974881414622011014785093286293999867155893321747299621686700996433673311601078275605871167399239528192900269493301728906582624736755404351929012348439646250775627619133565387187538443897548808037364606957756321995515686822397030651060050893108736179879354742580921672838918469652896681113757326521991182137611356312057469421797314938564513570990523462581217689188140923356180252678586320983832318143138407502532196126329170111170320848741243754319743739483010615609584427449839240247456038358671963348847449840687023089876783722574740331008419383387297482418225249970297611435092527257389931987804128209197754052221685466816171999481160108281063737660029842621241592425551646134383716174313468991183711161672106705887605584934087665522754803817212273623034425995692748797930767500000945093213013194467989787286250151303147626619577077855531080767639791829961594488083883649989359272563853355058281473646268120133734628882434550278239431918045133874483821330953962107303558711566125712673178091295127923733707597876663778635383945003608317615709175298100903874832121807368002206914560751207873955581935335032851713911614231246558863091542696588153156009450345444975348521285839831576272877438933064685379456190690477738455191932792614448993887969727421171293183359103005697940202865437546364188809279154415625922833544145562951025729305437813640951544672154245277980051698853802533660437999715249714684421703073847756096163084168704893202767961705860349637180579121987228279283588935734936019843872980629467743525262811974088622390821590839618163082027908469322752389585271083381401511979658474013328579312791283659071189742571045389136734688697031673159233920553277837933837245244924847726991414052169090891598049713189098537596175718036360862644766129871518157580846834114725536764876446289411854908603657983570832083095625934123397299089420917947782853151749085953413464576579123775228688398930993877991565040730448873627244906027507872331441935134124249465110492908295085961268741257415638913614702291508042324778573775667161501628037295192785616685110591696348924341096717796753946785241731117952981440087247024494054758746450553502442338155897622349343390503723265391160230076618516963327848336174081129315036876382480338203779404450946421140400438588084906235792518441633414463421196948495022881245194918995282134198616766303575624397373796513397848674239530411708291143085213828108285544190391541339758673887295034508541115876058497314653069323282438564061675521476114492835281514575605246929595852493345810594889949185102646385656567904335874491683803321103645375989838819202980767501196155769836200336810323492998260547840512810387967975992525368488555546680266950661754457991629798437124164446390654677183635741835484149178119993385592656571327271587087705221826835630986854965913661242357682878413494442210597428121598468367056445102883529402632972889163668460591984222452478028793561617520531350798077198921697757130693479129309781116628723407866082475583369491366790150892659253088994599874682333781003513931671000531351372603345680199739325203260794086383405908582305670959677711921798012836205557606571545481868876768976457405100918150284941101608493605914687249038645261391945566036403265699132811524100581569232865608202348069480888544830670162658550195354727141907089577801288634228184577624117474013910431566142488985097765034419760549729191055164472666516821386507577511039443506435638491367263521020052867939037135459478401919584660117470920280252644568089057527685271736856489939747473214585708443501400743268463118662133131306942874921331309965765457605977616637777210703805909602178087681663163228663520268303755568802176810315585473627515535554841699943541277522124818104734701938381656201718749225717154498415064739503089239886623442499847932140915955503252378984658778380948288603411037641817145401459439777480086814819557195972753215948780305138201368494131486056730846806403810800238214411628296690202175815093915203645589583514651860528239105716223849575938882689699064722347762903025171999031339047034653728590999472247599472610647516054722559518091811330275594801330130812472292775497825069597080650150405319096188090551662032520520956332350191557051845299163549442484784595323976011045495802730949954129685803359347401924750112259924785245726654596172845598952792347109579696461178213704355845068501940883883893922134625969537619825372993454786126123596807811670488290394002796278073668911858253397274222581003381611689458943493131781269813280645788978033270404825530750389434010810497871863834842582026193183895964686961738651069425523361898748776131433889889018421272653846449816307989396836828471585288609283187695109634231978138408932686275407071869620762672418813373866759877298773131411411554594605088887195964834811152846759705516826930608792617767246526149836473748576717598376805355820147328702638955717007562004175522817415777369153776807581655706449602454047709886290926750084471499590336063216124264674651433109106130859101122815539855906126331957862381494371937697062688766042087118031938042190802624700152911161924925290407142809432562012333756027480341196084309419228930598637837111872700101768122260536894875513537798330642978865310425748460097264328737339156235367367040259349701178003337488100448614420162965578608740974958973015356023221330959405596465412711426307518206258676420513336952863839443543235055680255668583879710804455198251308972810479799071943260601361596212773454412087380809397451948447903571524298564740402538676341217394606427594406750101701663297358564277202367988087292345114742287966403013363972871538591985079123991220340671796668063343660764966087413246240073321109566151176794261197508653282726911692802561983682125526959749804851884983274040598827582559427142409745954927501248355911020082194956444957748252002759121734281716969134371302775878688460937732286472737992576142077505295542114541949561050422569959511887825620537878023400080968242801926230971183360572429816853784514565127023887059412307851529715714312623049838689053059070326660636142174986689837186543595003594478187460659963512268248775526632233590758563967301454529390155637551506539300340993345768094335037718121969833226207888874767050541541579666005433251973227831916098493537753714323435187514166206327918673364715205887902434722004223478285418308840479814279156698870129141306477799169922854087628552964376433587093727558323352230708430456010590163231703232071716162562374170579635492126644994658564072916192196484095025590688892521024462732829034517787123339404727900264791451596802455754587438668144438996640031574100412534450809530680422733973286624614162346928250856568558446899810023916876099765896217765110909689036740428090240361561991579631836421105946164082087266817446255068459926494171577425232734064223472721926328348353447800591371107276521031733629512279257162110100931230955351201800710820655902129421369920465628311078022952239988739259692510713623048390913355451743461258308096542019831333412345471993134984190081074677454607360079752753244676662874799863601379411516704104674991050134533687393815164461509376837986395059749434564577503616129130218350979740171521773023643147205637594500976962104072502902015673105877888689995858838167258508920258020168131363465190981608891677544804602107750344955236693080059660747168018512255576389302960669515439705886057255157101929195587337594164518819061336886046412346678785023911217265995011149749873968925960736008575294362668354506119264305056743407237088979827656002411841945736914077451950285735211437003409751520148907396387756245059042973177086619603410012317513943580574602345075600935788380899504842317099084275058318660693510167848552542191077648309126724896716968120495242396964388455673600546917795885039699323239735929417718120542673500588072127447041218978749398074194975991983531585897522186346121463857268101942544458747690653217189310863799706760556423828335384963295851326001894913775961280912972031678644129470218348266563524187849500439644814565497361621392709871128402715376580092597887184966663731293343584860715087804493868011367210205050775032877563014227718413019271349294839445636605221677607103088622716193718395726337357656874820029883505957443544162275525950429408978869068739128570312030426110478120308161645782886366824748124448643536236001821115649621076559547910996942957079456489210595679789397643249448724768593863389692220633473606636400784510959575951168706064859322569541965935775083038757634439069439076581348333146529604795975744266729008469022141313248420503970595883966041010865114852465269580236717548674709650629097016793820513022036303179524581422904353393237451177905158591858251309334765402030769197618082601741720853996531171912566154395980627942836440795130660189319920759296604109665195197514713045308346629060380002139132654302883272751627958815125241057981739993547610582931694332130706981052188097261307448361484339593174023606239771655962535888320001727841799035112731967120982501282125932734274856059999622688453263365397017803634502458404504379936630160456643081514976351528112433527524605247109606509357303183651298894646735345708210488273107126329659820075497094806358997944343908338498287040729215710671732004276384546220573195415350366210723515240500465103129067752284037292230099860536405132370945938846729450892716131106001395121583596566711110423522422212402810641752811474944209905664378756145787101691585529167930978495227225290094776545504454057542292950923415837956683335481399651193167580477318935416116185731067195669753294462274195623729692569508996260830740744288823954102348366237717910627372731112072790457212571806015141313693232112400241268324588752890164177649596346905657723110178989105495444628582139787225885157215569615995029295447347337250809332168329541187947994462072918258848636823888521863665923362878162254807191749627848842295147856653563316516982977375491990613913428881627048287459543111490372634035449154193726431420686554707381702680596336581570717084739610225233566237224350657187365513387005559350804326591933619233886134999366102133397654681648492680523547296584281485007133481823076163717670449404308397590999424920515971246656206357835361781265077750792423967902904240904200883043313493201588517707674721692175655384971585242112392719996706585719245781603122369650804607212201965880578348342232831677417324223234348557633772303973151013839347467636437040246931668037005427310093469697948653609038406789405631095328854781786020781731129740328849244386154256772181405108472533298171423835918658658150891252397821235321108419881970431353207151115121465374131605720416483901220173541423218672866595792546206506634163969885179051637085919463541100880299201031960203886255940937469893943916822232098730242011068295275340191953784576773079144619134071141326035703721192342622229256473529146557524810429389820690621894666723840344660306818815423547459593954643999905974288326355804475424035526522626546459665505556687908348041741836709302761595325598026666630670802557475016861107550080739628828820651636425612333735675874739018799449397232652221012746908494497196851484375024686220141690337693007920197558556595351420344556415551354698849556528955507332139271569984681845790715461028653920806763422607666552228065936626962438614836746395309250501414153645651158823258505415819242874752217177493271598536148582619153294470256888133190130345874989563031984508805200146903351749656965303681894627169302325754575007333553256345942998898744472080522654551693761925763542433114600399398656729028719254996667509561196255774693728059336845312310856928463823464175008042197232839281538675024793172667103821042724990294939769190518270763729821301012017653777857656525179346648229130754045634428764774082359818243637127196828505325491773511009954139864133765154442227588051404980169551377861537424135300739807171863161584494028530899139715993721305114050631357547829194214273510870001529621047075637690681223856292104491572480216288370976514314298524447460907118901730186367585580648217842155573680397559719621469067641449056850902485562268435474491126106680224134340552977777050921428925061257971087100370047435214523186583459609629173437560341964133880669621259287126291892287925905771611371202798004715400799037167174766062522726253660494902095498169086155645392043843240906320958259265991525908254025304204818524326572622995576659922205715463457443588889245114032779269476637782357941260463231582129641878351375290850406099406412885549350455830730359091096732304848594754631430244657975224371807217019797715246096186223439489811390487168263426798367393369040725411319253854976039382656552395838801098328986879167077649642947311202650429466201270401642790213967127822869478141534320038790761750853390190992526369884389775259471983612972258646765668446992714525554387451158608299370792504177842326954417980991451451061012441382889257464598745103082222333054650457042148717940120505039056914761941748797062937245042792819415428031559101105009025582219737715208899768394211377518218495098721065647626985334597382787135374184290763051895453703905117789455438523375299571848812827747093725580556425623856447053675427521355179361924268290403760367756752407247030723831071558403720102709607436742031001171071302288967667862685465874722754904810706268020391010105822406945112725465730857789668981769896112643077539430909686485297556327812777235088255302576693489111345366020826297197335009730638890679488432982138187576213509933382220611167391888250921990482195605859538113911612220944705536870165885456670962255621111964844851186719667005241961456750680624172069346656741883596776509434778297011359391531335477918158067909643280461708605440215422795041407398219421029632673967658341183324652850752494722593421244297181377096553926225492468564053662451732067766303111113203173019611217782839594462913713523825367054900406550041248843627753120089990132289473790698614348922264355442486070494249184145037405594089554089958802310743941988004287615809335386264779716960027338864426780738778458181244799839038641646942930160929009671581513500211027566575248780455775021826820215181646169166484315092119732420070439469898037505895197670231833842552996866580725878442867691375338194733508026378989893129274751176616010130848914720458252424664220254702722962165062299610964274719535297049639956837090998626876210367545199726887868231827977432786940672486972300012942820779654019675618176388805267189996482186405993457077332534536747603819247509319113877005554564561480838640526464930983728907523093140300320834966969548054004528497897722129444364772721079757752608556534384881258681928654797062159709770756736964149477608676365701368636708813416138763717786540883286928508407693125908249777656101762352791560892202958458582606867341072497233792652599074781097341336901683952812990961412408472551780489866295925739863943854664049666202438085260956536753944063167283745380256027351657683056034335932794722907647236448540388715064344271340339905165117183468265166184299854617541732728188823415697908809045993738244082604595271221183831779381382924537259617385775648390191669216669929529892897055029259900152121850089594189578494740989373929360005190957036185191830812236399111451155705225804873171981005180481363025319918822274820090140169642786239320162974241024899976976613037325724133656412436977304252490229815554552441432943822379578702918862935439171701032869050152398295734015484603410329377780763233751807518236641851617173339948551863209233474706214235617394644184623449323568256817821530194440460851190213470294268402371327099351836032137572623226958813717234756583131758758432629246502844897915955493279527693816591526962993388356807810756064931206460804189388435747325938894135626212273810055396805860910227493107318553218812191922969447778253533665884056078182440367443096471120578715126709691651886611585330610196172176996025265355954528423921089538228804612396874771077887506980135011615370189953248026961608411656071866216769457180243978019393192796800691379923849810209486142360060821045023222464598826221394290000218855116733614228863598344381694733189777997976388793798260733309685739962597528919627081110817871717666068934834175826027693713260531177501416763048705198166341993758077870478161725270868427315603750341334550607347634384750185832661696719956793311252785653611650117023869569359913437239760768954890174406533667297904072767103618887651546029071079939322544349122240563219284426136228846261598222713322143618908721567935302319105171368401323680206854366710251897467168944659829365010011574848707523718901861251675267279221062867197774607202956786356562985895397281462994778926865556744214217749423120830034981335219617493745927769975911151516428166652847576447186453401080856841591415828814672858578240266270593365153589827928989144958571393595780704663470471929212055079569094760072894149897115597218149010321825868300042960970159220824187104919020858043037154145812441993407024929781032224688243044348112187931834423204339378111017152400418556488657527250425779252436299613299799464917764469112158159866256660762882696630054512331441954555515381254281726901016062330828832747090990079359989123929023961209071649682123393827999718098160786031407395648357297516100300768009015444191843614539703332997106343146892032261281040674702892878169547432268643186723875863433134659006117552332601157776898435745387729636501154256740274723790751875367160287030796944961612703624295286682823945075476411735552280333718759866589047099320106657306834011034761323878238169319861190859096583901877270235659030951479350365140669798604790726120923864781799069981491109396546751949999822721995747443663113153509292595496035711110424798094018787434757608802698328580974522246373795009738537084539997015097470676664748491663873620937890335016315403354351714560526089151129050636310735826687306054180827486458390785135335026674951432710123200211401918036586938153435050604776867185569021747392947997434037775987899373839216780294467927111830961027508754045270684578215415941699959658046061736216648807556875970814256485646133042216808789028377039480996316505835543251954158626618144125390667879248965072231623605972221948039882748086438834211581501641309027875913303111649974646642643138009889247002954922958888337112034684138018138433101490091011253040025232877871362706673968315305356547084647868370280817576010955067174363674181391614990036460703494218012640268963452723913954707534236377900139981098462987288126117204939955482860875771907855426455302133561397035571006313897591046695538479056374655558781204889625951846042249862213700314312801312345495720571932635044523127982305360836886272593395346156858208339119287768025914906756692670366706567145687667935419600136911431467882592824160591377783858619291662002349200021699585742227429252207747436070441458878639412489482513127012739881601109119437106104272922265029065255857422690582543934561471750717845427276272135166092711999212009927491778218142660970116552146658956293402785670519013536984469587032661380402280670997560337481645275361841073019448613969994871615637772815323902319273719955866675371643586032084963153994316704600551188576450439254106277145710134485344880724424718837136453292938769438483283865010108460171272523800026139372258570704818489487534019799020015656948632854413720521872513635633215710605983873634628755905696464400235939143011799231115210717488019467975388149739302038215768242817778254265101660281647941528826449740279363075679475144110514621213999570681028239492574869931832994350615959588992382080340822159679806348836083640832930589001833867976522870485296688857951830852659360577621454899049098500670582605951127068564978542936351895715869109657636798449877243159155705372479899161088451735782328376615637816529996397559938064898884964707219642371079126076810178077581081125820776351991975611659575892162109420273510184992226102524690334501205154250440965772686916369808663447619349791175674034202464103278283169308262298979103864034562901950290395356903036270688295438536671967454255480221811728100541368649762739221909913855776883590008661152152456731762990876977193387226881516681957249347862918138779383761095375177713489139990560255353781652160385120697841051912398818546582889371040503882768169017287784597555108182106665495290612815216174952149435006041443766518090338912265127854439465326606336227346213762401317019900741424829591093830260431415768525260001525268314676623163729801286286596081361968672507262718108447384402403162479800862578250191626722428140338912319020326996164413583573030728035607330392396421974727816748680461600323599601387015406902843807719511327259778132372865226369056987995805655249519054360859416892677775407931214324427981721926970523341902120687660610595559591310135793207397646685974543274830759618636232984253739234838640849144793215573959069715583885078504761024828691774054420212663282347019139617385718735811501331096489151609157650164885434507370681613017925741839915889231609839968937802645174765545826197608739930585106564071983070511890284336486919379928711330526376741029559183017092530428928345752746993388275659234105044927986172495754091502012568519309864367174270702028443569947710636923262208613583246783744994159014739472928575244892378807524209651831743085872090629725964098237606212413966463277653018325078552480340336321183130347734763168054540488907172488325973923524061174850472574173860264570469477550888656601183329509998832532241825543615573098769874333456107286144877447909115314637087695473235094448600783122329966655822831122089667616257743054319709866458076981564423005166310727287206405524063750212732391793236657904331710663123109888839647090814799052483934546103620585796922264810566207550002989397667746541283345856689030662575243585344243312166172252005881985412562427800130847447327410517124056054461742024255478208058319503604507546333832499454712731260702214665733184909153775213852903037200747508767988719934778158998256561630955234347633676476916192998437716352591238910149767523752320544166747023827297983224359630755995840095919422769118889657438867923878802606867768325842481703132868872461740009654546212641546752582006734171613353399440549442884037903795486186424248483741586787573209343244987147044091645693579558766246980455507731350819681836292283190384974156992535457962936399012995076506901693305830140800961602536214524820490797834563529240307720142275303465445960584195211443950049695390615830055354558047277745648898215172116776479007199270532158971824335759429163851720354816560653637186342499989682180781891363876043132702350875116621259002325143173993790127629853793802476935434991689235955604248753472302596996527680304666268887199343701935661250787830996377474957007038740574969902552028456293568042739952343122655303474187182129081042394688837196693194911498997068289843604025757277743704715269538960267452674515493897967414384240347397842897850137432014256167515055013517261918307880234410495371225229813215040202046256550714192111218697735011623481532472348282692166933066861814339763327493109997667011440459688621942543230701226383146842946750064570123056404432781165965277573739009725036709252976295575915375183757720802925906448061731059846317638307930177143698416599758841288879271201595640535980480934563404052402258176814834787759127051246958092093037780050508170654859485589292114514427902110680176740897422231788709290909679222637047597645955692808520365845490155879788055507402819906927300789619027815597331559673039032021188321872656611550152550130698419715126600198260921621786427497734420856355959798086918270289891460472838674543965671616396635578508012989593494905076805995805486870592445256899342328780943454627995666100892738376688708968139589287806167823341242560720074954294324907996155093387944214606751761426201855192745554865661086136809293572365121149706080422953059774040431812463539295065626773127648603398457860473276757956650612330152671539402732311025696990345494237208771887870409154784443064321613322395729365850011010542465480656766528225942859709842142251843500897671347324490644165250780657177448450256669926578699647711051664649799552315764196291551210369009123710966244339755253877744489140866933084520512193282219375450472688451113479905406706538446706067920181639498048696666084308740931250690022457328492375109158458918609154171401597858760059872485664856197140144970330444032787943592423521141218391600984491096408904560431237091049036148759294417551911975109277117867574445766495670759023263131978176465437380563952451700396265717971819550064469836974987281453970681236506268428260661883514109594813851941856505827877500408474661027860095358085296334856692278832563606184566688832133068024021474928852292484225516424107918734192546064309372038750544446329795399653700339401347473177364903475199397224464456660721990662508493963110133234445400130258228149447689021654461044291187124563750803894002416445245194706650528417108114901021154625003606414822690620273893591887203636717480493607724630440569734597990424956166700883243770349489061239429110523113696448304447966957391985018941063771896634820363607221700715105414159418602411997185464445714451588287658733574606354111765473218742387520523236066889701163014546098490956899148698655013541636559399862663668185185493966232375342662660178388676963123588218195634958057226202188163483592829908425774305675662299815848593264754531417480934035009575169983869212226005497669153963218351378925754354527201689230847117058936168837569289777140017528041559390284941140236735425720588797016188675373636235682583549240846401237080536365048218807975906157980062145731810287107554795474985110440310214760897896311782083749579305669359228227238811490171723841465817903820581409696614251524393713774087497484100574402932925340092860232239681696017235269372384421999928520443869801027527893951696136435174767665099007012359685079112311739678956620816994058159326739738488539539065633281496446727628352966919895459009797838319876613152725638754728676739657551239616817614091786322985658470492535449481174660740004397622945530503308487205439384290891780939477880595438355377758136179194387817040997454506439594018705205321969069358398542646890721383971068946399703315505276660847726619279501382870415553847772278720938156997841991503730269568973476723140935047493092667320765237254860875389533808717237337344296497400500884733094135866539765066172540875247056770632915637847111195511258185457170503816288152024313332159344722200662832197320010979670344694835820779088902291379844179227394117733919766602396284344241407039966348700125611659978434490057390536516477429153561673766302560701306965854668482038591639069985388569937273692938662906623969582423862297053873632421726986658862109059643544287775437319583391321302506944689079124605495780441326376694180705118796990047199061204599207720027503888444874053166989541887347166340901514747059912786171466189999188745172853113098144796863417435568167152608127802591139389626040768201350993766880389757515732645625232464543808419479461804427972170943867827007478501650729625833993489090404912117751378446427843751815678940472515069451201750769549155018172806338422098427010416618453322661867722117790076223527915566538978761651466710101806276293164392195451467816474794409620465497975336173340853009595767740585041194034348301615804612042704776641814291984201086379002040559557276820235884054644287219943290587736778196165385251535618802600382142078181058627626311434561188796899428781202560653700368399175663082704461755677167522192196426652864023339515959329848753512599218440037205432068959146153968592095704592847026069159688446580747460958742241093066390291843068857847943783439295092024661440694640706797994683924031998571537836179726663057699421844096724228366596079769998158871352928266468893483633525046742418986137864718303833893674727690397266344273182833109683755910407307273446541920300714387531025978363290393394944993564081084117925494154510627531467761055682738065260834021100497509802240116722382807715546627191274993360182368997249413644055331912215087866187847133247178687352038449863377165932073794429555543317982880465362205075276910410518631204514924973272897431861794650400260378469142309960588010484963259957266129763554035948236817203867163280127643553260559370857330243811611414499882830719135519785971484806433740812771934766086650616412524751394313505653051601517247239546078749481759243871056649612183037499654276791072815687415466106661794980129231302407327295969779949846460649768285653191305536150848672111594488101283800254362413135614457908001132931849628647668139396962678241732290251862436032082831068869235119342854907776375187361585849489843194215751665180138762884475816287296321898600675983689785092240947452333197643732355205536937222615247008345039697138280065282446276990278816907645165045141509396019935152572318333829150036602691866888781368328143432291742266257948657889266428068539527803671930345948334287897661590079819460825518202292630297128074762069694248227322041529022639581174981417809357369854777663242651007828957802717178557569429719863219362673602054482682690140955126467926189629011790682045027021507996387712948429108123591520347676114809164235787227074811977100042035153315883447762708206919437709958095262190423881091667702639615771572852606013557177416248291757552321609312153364262305827245463182235499272548625782258960724403434795943481997641379601707653661882893531042248077165318594158366283554977843129804356737237176758097027953967685594549001204510329376418210192907220940309412942133770277792309029710443621844986176102643887294187673624364060805288510589893150565439548210166011188397102931079856009602365831500688208740312746550634689392699139019958451771820754967440636927440464524196689475004504163152033199251608968927533709118489552101965548931873399171718133983938862782381020262216113698047250042966661433885754509814726170000332089018492630612777259341579825485653317391364518845629829254389032823113632572713005457280960441236662181658327032912535212602088688388221026866097544763159702824820668921419564360665213370359079258736920667708024497988996816004302376287785724563015961856338779357478511117246599676931288386144909540800905019493448106794243764572444852391161541858684358378914189028039091815713223713171491158265573410776510483944950375439318816803926147276308600526185385430227983408890777991912245348650519658565125615747002628317479710944072964297022436821644922011556370067044521040895578133610969667117969278579100471173009742052024732963796108952349890405854981044922826414388653125533363679735454893032532033808972326774693064533469164915620171299399244364295530858389106228223722826880127362911170074405993366026835804366569289693672914184169000076509102686432427267470777428929372424497244165725818492633092280389012296345078250565802267989119872039710308249205356788252370430256014209944177293401870432527074255523496762678224901406648131738187439086185511267193388237026441538113236132813019848820936043483851507079699233063259685365046253665138128049820963483699921367091762850829739741317290506069317391981372461521105717507627044264525507594321314676472287766190974121152840122183628465421725772819695482890062826713725341600593349150122113897480596279978755013990698130283798928387815413555712999621721618516045658471321146827410094756118008481775023294254624194853834117383878342977877485859266656045413978074219282382201974584836049002500383625185641619940303826502253469683700139626446890825202392509065493405421366953449815459197066871639856377299113907030168395124705086143392565581003548840334669081124403355735216031727329657656230395319422386451857551842689790325918469589030552896406473303364113769732593966503376773080169228299030565789008554136550947132444556897577424259021830399587654418185289100142522596888124220129282399268965294619166978993569367179744599254072332775269315615426713600704572164991834670663167795651546363930670939753367934640985187647380739693221077717964143849183385344296418752338129170472623193139522450225376219686515601818887260314903535485027262036031021186553246134540895487585240245879971037729292466115561899700109474892924237808458178135006337511291738041662797075989511231733686838580945242701383985354708265422605599959818155378083550885562176204149081750462842577418927958884060476117975403769502679204189052053458165432905793119556163300432923607720846183694286826682029434366106254428581449570693036817857260082267391750797870770834633331589194639786041245645767205718833701954289995053273396298170564625495833879893801251892819413837652432707252038907499973615183269804304741709215480086443326360914394829724666460563781420738462600635757873767487055667167972555897653820976589427858832947016988448768693577349835765898425018314271681062971111413596862305079470804489946509140003612918905309773850702721374935311014431202944327754413412298217374739192034652729877962695827419891895062833007522812504910335742999811810033342674459493686160247612670164025658770227796421757883794420894365540342725645108440238733875832821364275615167416049591689160593267333930120776589068667718156581258892249941169522896489609977414702982867806753893999903527275531829435657992357754678984779474339290062856290964343778159291604198723257369887242007641378103589886419778195056997506096158880731786463429226927996654903231861966579681539755158676901729277914944279792097841567962862003433345699935646925194012481061775269441767985649279951473930622074593710842891082399459306121402219087148915826659249683987303674674321932981289468241874688022381864780265704794454558529905808710785242052121516644800054632181303894204376073792980704672988073066087700338989678478802580002742307228409701702161259697572363272199107419687886506269657546527787451912910589545599776098886045546789179791997094255192023455715754814896277580933287940978310627551155253879143097556564392958734568327885902081990045036475955092962118326417207949051356155054683068342988191512001749574531676279045297540307519771001275615246893269235220526764714584657603894653899723057189288067992409937192551164825399472534853719985756566625702503969893445669558470746379702670294103729094230736763444587275421838873160898098857126702574821539943888313274160779272491634797618114340364396768861716559261525476378222806092389063629210379404196476004051362810917734784962838711865124302724217314402031500696074411076381179864327298638107105354156360328206819201595006035977645262252116626213400678113943347045320557713177168161099019503252891590208612202492275264840338562106488665674254406259138873666458686131149692955518280161533378412965785059138959598129451214378774263532253276958507134670034022854906868447213432790650939793089616154134666125767901582257896539969995283241775720381306983009317040660696277698898691320980710584018353796858563288742712497261413554573734055107166022620677345042865748154717720188009906551877636635191049921453528348437716992753469486596774945306303583933645657857940043952681166005180151917939685101848987705021187641908237308710946071580400286302212811523463407690952536811484773126592424607005827354815601244729338520636405748879498872574864670705022508521104575560875118734236154332865163386738405571891111006006223390156130836678950544281506849135911567063063639964974594561585273215573808311616786493769863032740355233111729365016662001631487866141319562024479138380006207605697970560467608649679737720692499115836619981118565298789854653778895962139401447718758712335473809976130462019070117919266409237740543887719370732155819886254334337195392973274645424545855117943514527972992300545777598327498560041247655192267719008525431017057777862701037620190405197477112313366499152944497324034944712721899128755779861193711659651747737829885651416875502620293529385738483713272373219695705814582876012246334667055485350072353885832612292218311957864427687354801160150252538721257118579210625390475393123996405275331495626415650795564467043704027529011283180233843888852340306585758487280681883076563856897849727624426842493499788927180618791023840027459153106668363506571357539889576742464616787440446641485205149191491605472864473938765020006075934699737476639216790944958301843540030761246275391373476965379392811536296455500605661705492863288714305457912039852135109249243845315710806840276121680684495205065259616606295119222059069914679143419522287564308817024101131527625950050198169259812183821865362392255650409167153606293849159803025846037011250499938101289739530939371805169599409589248761461555844776782418426255779139698231264027325998021180426893212026963927037727976394292616166142398049638537236470998333577830567192066040885620438466435434659001735388028987976176745901704943968501083626022042045190610067411727788826346414054740488352258070603329126885678399359503416550629192889714877339882045308902142034314133248262247097808093839604780109492875977697997713915869917488820543267429262288949343070072920782711654519202034888296562791238215367591595785981982670579519246933257282101248661042020596567988820520747247097569277397329160069588599859301167379859702663510172368092405625756837929198789003375784522568974801321950161909447887783108315076695023233757113409220503655424559625383254033606707282964183014295998798236417384572362494623075257800203915344279406455824853559477278623525564272742973469421487082963727896455059790569019548052796906482054025627120288618279254746830246722434879824698022977152272966610685237164493766515698108231163224578663841357435107747983790910165224309316999560749888339894446583737766473099918185090194301344633589335038078702340429512116217840347034670184574989891172391944581065770196730157940923170861004976450491383240117470620219328074607687101188097133548482216979113064574003655572281790165565058089514922161594483548235825432145506831587373391600657550416739362672459365644859083584489968519666227095080995222217027581073021756506839807922931644460263446075058413846396871049457173124709199302201835432646694098161989453271254020774473643558496129412183006374697281781003607539858610996141100032799341135871206013623902073065869793813062226595544883580216960019419440441185855080497448177118666971646118184037812079077457742617499251188590470591112915702459973138814569029150651949651756772834822164389520366693303994605913997983957440959200474762187182079186284267066985200028862386536368436018070320395608652789724431690786140342269114274575456789806441746678793829405743969823626774255081792552070017375777131519849440143067348004039832781009733818099988869754338419014669520237706843693730038819808376062398826370084042240160315415193530925239345988868485480799343055534745591310628532661983001391844617345981450613721059061226362577775210453560371212607647364896883374794793608367508686418043900566828886252016239968049519175848875314444093439399415844840370317603621268926587797209568121966590319143094951967406073251409554233568066185937668688902776515443533626899431447739643762020165782836615366593054687297619573612471210886673420764880159813065997029911786620331662407525047920615680145128232911278555066553299670682908945853691096017348815401375732322057949512748524281163231508614955276747748817564754814100482763802528785288394710974641938730221302703550764377884226883677350889073486884882035298426810845698179414394410839007962318688656148324028004868931401650892790993900308485642885118710490700493715854358546432411702424927410348132012067779143128274021943857259771237820875926953441620865324319069382373060296681282719174787958123722907734342444171410622279957646534962636410132407534667282308485485559753177299077330838520805696502285366898416719698913219912110023277911502381459764807283613510839482467520376520910197995031511538073418835536438158943807179741355941748350863642376400842824548477279529658079255338859377507707094661806576781600282677672541477962565224177162198344634315129761075334558043268121578607718396865726414456172754041213631564273740182446109970665531826282030905537567769146186586197802198670871486167923827980899906053511451618784664233990831122512897923294065366653688646702434523793888410535937576123942390794763145533842398933932848212457911010891718767308254055168678478146132184101078365233472252706204762568643696532146535855952215348990368108579161364843942539586759104442103975698779177569595045841737875012700943506944121068983698006590878534240174767497567644065347978227365415137320242583771563819071056527780837046459244756126912390199645128522044063510686427137912591615987197386932286114938236684505331222842361163694005859956906843880938868161102861987522521688196128518246024706846936270793061922732680502503401617853395791132261699512674808734850644732267042857229700400306060192443427125474644904357167667759189295646526611088530207052638353389523495000235456915136512584116197574266020163199397707927105368050461664111161922538668057154990466543302091655183191401709822615374791239858458690513473199341388449765026113565525921795039374823362658442743986124846996406347184978022627781268217122397358233091207167296456691540932371742487687815456909686777904883922715727510164864845943166482845869699819460332542312772692837238307040251041259232950745054932862957202686643550463453836893393103674871199745400956849122670413325975588336701356833160001763825538991674768822965818007241201561878661494487363160810925863592690007252434715901540735230742554066603982342905419529508121581303189297760572736047250327407854417614586631120977826618109860158570392509078501172950464680676060996508989173818621834428254445627667147607013504874255625320533638854051766248842994655052068490847366537712102928739045423583010453481033399982647186430598422662456831090699038098974111655914873042742956358265199645843319671159750468171893080656014422185556427184362128992529298150643610384013646682013680606433031902346531706532093630214411297274313622999103985706835038215431277143104595153325000083449309051159563932948838419019071305452057075369145774214085166499256560083227291854416912986541571048034543247085201025065622402522252464503851403981332196213651558804333953797327080050141678328463833754370904172861990309067443157152946330581299433896338223937173884470623964807422528587217360712533965586301168081067451219184726493821000060578110863666497180508696640056710912369841726554848553222280543942253011962509009727342620090451392845254075097887558634630504397860685005386040559711373257957478370989810685529028550207967531957803191417582016023319566828642529789276281597009187441025591079149353487611091983379595097406985235474904555944647364872506888271206825887393501686536780907592359804618293263469884884716009422293725887309819915681461969425546271669568213501184791062368758037187681965582514025662192449310388322315365548300375634479204175059557540698332437216519521703525776912445776226881502794518698499655520067499848678590024630182126245683248158664878541980451065541278518791348570953967132323222223044110255992208021046424643815699991012935523021220641258942973371083603289979764369374652941960638746491738000315648821760406893977739535266372540396914697159762207986885680154508670500994479001390489863081628474084673294017202403966079307910905627416090085962590316684623921589516167295081967119096920223188250768735476989926224357476884163981642169598387039194610840576911296947919925758314492278271580967351801562370901875609788113400440178662579199766010422454922039596683874112077707694890404908209099468379900647445135284483186676721670600705101894778450423703222756325324302606918890039281851913236791543531814569393557387409090102988558826706512196155858696498862933022821381809608432850723257284539603027347877588714348040673494947399761260638801854890707038911041616293109938338601734091163801602202445789500662597423481731021213089915502054883860747530341119072925605265612872508450053190690216934963210724655145342390217569652219528922590634727937299812475495055363562600373216389977021424614204327793934512415507146512105122597638971120094437256269513278536244089371457066595383020562480978752075877689507412984325559509755974466723107754125204533651616792308882765778899043580986631078782695807173163454549151243624866978748500981466845604195818537016691171454175899166180007723678880075332514487703757768589263260586569074661557390269945658815304720879573407683512699659432748046079371394834584130179601884242845018241003754545158810358478888203184563970805150678459358947901440652863969144216000968008245855121850763778542559031918857899596690002400087724038818539569520848643503842828910300843540557486985934957851273099461504273048447268170901454616425208893632903966344763991822598574251734238746101908231421850762184011439337125756623541709039159205477562934660225069640715499338584238855648083034544743378782131837759804601105281296083052921474683507337825341686729239259254148799655587665281420622022215863034986083072639276585701041146381669166882894731993826904539783772514591227324008940181406961490291295505216791100646443262808021666054522613151199868869245614611105715458351014556639684452486119454311060821329982274128066197082009886287960827950168508101339683424913293760972529193896922203772931339087693254535935276104626082968125908489393734134459819418496501089642457423192958321699009754882059577242341237846864156654894527938994764765409877970217848970118744765095689801383228315064194907447676659599899501824383332076200881247646540146517348994396828509157035943841471866429956468931876140115666824765819329463022995289112962713801090195573716409224663680284670795740615269032221081133051837071076957957842001090525284999081231863756925059563996473885952249187423454827104190940722139911049744040583976836065117554322871358210326533920972258270032217043332749722558881697958737781689416876028736498903618201192787070929876179385414398659057689306309091112938589540812512181990413119388716868033471122377032276835298890063384454019888908094458484287583156232619916297844791988144827134148713614924551530002120524901578303413915723684099199370973625990875758689891672289277471718505156275584266488714778499900829780054308829182361112834952210322266187278010942080680638305713977885825269232672350423656154426205836248370082588535797629645108806003225437247525191157313276114938865136518468267190126447695609198734840969360245756488210122303824285509808829882938202839622576547169458144209117646417652255837774421890738244997307077904660534534737936564607055333088695629577274435604009290920825295577079733696420836368938926002790343546579419234227384187440773814378486133816988062945051574331403311707358069980023065806167539763937047011752289465883187850349587874612889836931679872415099372271576569561415634638663918904647737738813713998144855113133839485896264897022957105040235197526012630459898630561352194509322697685318536029449525248966610999563044624453401735151807643774437032898479412812099532104562432299371843622028394815517179298257925870670549425578640126602248985487219201813223092454936256521321437757338814652318107287502304202580109046255710277096508760639714734492524323370388178897072912578135937475501365010294196830417464717042806175973190106001387722853540545773429525078669627684202445380884482662009321990378174137673152584572794912450739702682694645761930177945803818195346193099263399763439605340830050306078674611883951623567601667296427164297581952276256466165283596695912823860190092947286822965934976973986454779062688885025157651506611047313870754509035550913198644080787157531269036635803403506981950541912635469534862475820546016885820967660280887337108119332265634215871201748616869177962319046909380439433853457648164516689284600035903851286180066251926810512159325710132349931426194105882957282160503135257957596246944878810645954813339839691375116067593933463639324057741474895911677535113934411854290732781335140891176292385480473942528136624889079749521110444378322560783412596204191835638226426178167065656318287527305221824537210340317794406398065239903483778499846573618641446513578507685851697666670291982096496786969447453827370114267798953145796423164941844697925189790280171978365286428577683302392744229610815390622638552420581486141872967624169544990208680692232748725350853189609263747896100162802713477194527766109539979028016904176542272830602435847381991513426574237290129336542426790169821794174607311678259530941390210244393801774947095558118219807106327432176104462312518391758779093314479566159131571752745357834707424013618430498205179376385089370480625717224435647292750431835498458387690192997584856865246928029874155962252303169054899233985071291251377900600045248386289713996589050583913515162382602141040731954638877424055219587071974180850319951731773773644890470307794035052785062342557907833450436544140030052591377764882960406007689452398347476928304176627283799850079745654351180317235048082188684442224666675318375633244730224085854670843668403365846418469269622449579855589251138641449507898740664560079124381331463319957785941096495629348862705413034547067652762583483628135297252796744290676598439327194653992025170869762324963092214926480384523735424150742153662814634022653312599898741814891742546545497698878091107304920089648925804857411429230873194974847339908104243159594233355659594689191948612897306839330831024387079104599838630779342637793914925642362183603250117789444043160200839245940126496798599974300302984446832553699183321882110151999228608930815996786759659589335810296216574188622609750902448446023103043793733254904849870246430104181635060226550745051276023004729759761401366566000097161252916487279996125709106478606496057825444467440194950266658896141324026784402398619064267471301738783225452959000741012594306368059773196697561983553796666905652405063268521909971570358270621590290231364336059234574418229579382826741307464437457136451081848143220608665327083781997732236933948309164386582473783824277084134945191492251589693359039689728394191025804476482608927937415782458102145543818092793746901785861296254328838429679301710706171876133199565836125656222436296186689422887652004810884648780332915036942398187348064257398841487496608519406291769710526164253308043830743434595458491561999783095193433822777204931184476065586203446532076725345905049653507218548659708242690272645918104439855984990502053371802226740629476970342655367844052540745715765963627043643014019972588269304191372717035029648702334841581105418219301644689040709145175643221648420874566287853516474151435716994597054336486242671786548436322830881237854374382644959308584736404966892331571029401340758418211763140087431818998201934403305043788790074630537163231350252951859462586315015744727220294265147945248317220615642214062424893826510890402060799142673613948042482146439344686535061819163070590207322241251569813556759835499433872706985360223522282152115513111004204764533417591024821234799548824556597776636450107867963476074552479759725796707418776341002932505311141643038606811151325093081716860132749620326637581643772906271293991902709625465277968424983377553687590309609895123742478221981891763345614360393048398762391510725736500143185498337271957899663809216856010463028348540524131802054987780813315976206640743484677067208672461371417757062631238379764567877395746409075595239526233118345462028770233500759153593560795459570560907612356439890175537025036008240867393431694998513249997417554174236952843057579534707690164035752582214265189959981324036360865765098935281565147307257916003451571725597967493612129619699241977774212728935058776063473128181453455519417471054015862588458895131713384214065617560279908294653322776133294884111440137421391865334512960962249749066145441544161439373003082867298746530749547595158411346670707971317614861672011522269582953794222726285250745457367827190112207626014083486721261215214044876050264271709405064493212565469270457431060551462468299927890769927654986379746678942033135199223674219809893862183334527105652005168453735646303835892664790332039270328686134807851503554447837478193474005442666406631800102959539938704223884140864803107887876951896913442900570688178595351845480964783895353405593894555176525905103250471524686132960400165577373951812816994551011870241208635254165730794975269082042413538886474129959323352932832501577158498726272148615228903160927441420316403069680381247455940443876146010699256064342710907437916586915099067337993654321835215776351535488413111229290861360219418305699437257700620395709924757839167191901404592768309721000630945314549189448649049042741705936822999381595748716052300831596743854331642810807863475287883691331060986642476191920714599653771298933913660479197763447094236593523218517570098228046088596985998079656419796479069606303603917552824890686057149554522693491381852424465084884563690297284799541934356668967554852551502772402351376660796184849321738972201506123769403751982412119582973472231538973932906522513146711175670874267746555851706560024717110368815331914146986694218945687223878542153831137537705487286538778570596228249469715373807857280432400050363109972427965209053571287973637556472410853904987643420525554706919732605223978210097687591721241176944163522258145637224664203687728681132471357007625804650377067652465278769557960509710539061514116572881247307508630063743225862211848125779989870876659142387265312272655452657674311696792256453264751261345797017613660088036504560190299380555286126400034011832794634024909864756802145949311691713702301116394882185025950130642317742399305961261505851088093230988605265331928247848794716703296153442708252196423444963422834876341569491396791168231271478713628055709087209999357576055856323308122570683126855055283711286293482210008113898268776371983181094696119295114161696996556123200626193782400795040246905862895030280207591803534459266167622150697709420493222107373047304184901159631837161476776906964875245164225306807571566028564123701536047195896139587625188811287063131339376620259981284482244618886808433700387831340297902640090852901201108682434268393056264271765139064945678101276834473781835360343928630276281043288397710459562717054455094194409237127142937561625208628920570563551270022133779846485137390833913357713509975525126558317774869741290705522254698875831608352673929243448849564422889901826796411302566345635537427294886642319020401808927461438219392079136825718250752117151675374581544783108688448361264085439849569276012151922511543150096572145733605379911734902959084355021156114843979841990453802844045969606068878547801909965890321675647533379535700705847710463411782678549338115085100413459609969323975358223297984445786644409536708312626882226348482053136549254200128094828857821055493545125651551175341718365316398241763165264802055465757900591341613091142882738994454576770881491000347513113477730869729269556798106019897678414073178569103746126252106679531673876807871475993814099907102122513286741324085055266467011365105408741644594782918702289733812472046993568312555869770394541576342903758088105420350566783958852291600655696103719152752793015201624948270613098593809686656590434223637084198198670329668551400815604641938700429379808349589041265350283694348704542366644059409816171236563826738132448938947487442030541409892309066047724994550297627209040879817398508284240026363977167980613792581260553896949285121686002228920260728123668132564243932604814991320060716069491377142085544169221555768345880622015274303428507116062641956099293119940707918329960886233959321816824636494685480381415585696149108486516610449910151602680257850584302386832441932348981086926429039747077118851531182193557794301016102147993200880155493278826188025347784024083613750370143818263326043610143334424732262121284598762104455722509892030434800462021859034502541911187291598536937608305123320413202982460104021650678780445973740582629596102142059119454086021569157951885221465891053443050904139023711442411064286103024135925810771501334662672528414127325859823840670144088875576987406773962816790711211736318997160930699048546550880989569323674358088622725206115639669011250628877590248758878425227632762388754587989421253954488519291359728937022940078423983093754141973170457754718661014999431243709315250003688474832190944903874686835861142235233638164374762686465744659650035751045781558713437102682075691476556060804243262697155955845140312479622379784487354123201421528432600388159574629658459593101191564925293314751704616672145972009819199662793630999068066586647491447683527411417343977219936611565264033361437945430596226549370269668834836488883008880543606115435490311466756836770633668554390485466534159071581112260665408489786938069147970604043858026558690736486244619430545873240626275139911662769204857231565318464339476427308493925402434236869277272919123008383430774206959358572934859535513579027700045667877213892093591382415714372327797382978369471198751356501991608199205843999669899444091676981396277337863237258022133650415680255366205222919300576061401344271157717494542477492999609661625263052912876246724494078007181850020019348536324602485034612798673511336504908023104952861222427057464191303348350130241718253216558097574657035563644676955868123766667838124464476674843324341093568476392496542279901931563312498314372479510241818974847805431929033125422860679728355638129876740366152421144195384844789695767984879758811075218755373665149670704892303480932884051975208183624537434021359865043195295830983779511522484996360697672047077051311546917351516577066056485380293758767652544508271611706895841646727768222963890515783489015327374325176593617995680641786698327285021099471211588004773416007489955601895379699634474552263410310439983585190475947156363356631227002120754322852655184779277265617278271466551623016444740724162933873931845811007624599927174561562191834176475392446915689705223578360308252723041406692604356498657166671689567071618450835234627896141180623058422287872705464447272901096571522583325110910419141715940992370960953713837370860302400401726319237044326397633327622671025485020779465051167206662618180833095635254626199854159021091954445853035438560028159096612456457535061334608601074889715261815229387366978306911092611304720925510159853969749047911902667426632047465860218431511273567254364950996717751696898833205997152597713272930334524103652369611658738363527783945633216900479967286472860785170689700444171531889463389094435862200284084698640777705209092368010684845341625924580680073585411586858571852168089638895559399865279028300006702617153745464788892909754249096677305235953076499768366790065929722294308813615804924708755861325428762043082969159180408289828133898964581435342865629144213016785377472022459993503976253881635102445175836234893873585603811377275309026461292913873203766381924633943578509944589487344437250623096986849729534485527490449892344495728948970786271472592589372903060337131211175662669652638491915472859396986931589804760580220228022915200045291829358847445694214621957561260661421021592592432000073940974879416381876339399869259692609026426598010515947844206738709001888757344565293112987902897079971227314637552359005105179143234492456773875846674267234057888463643822723154707436354729764235783449686257157754762950168441019474093755699332776649477385541846310184129319147338213292698519233384508794476818183747172955661632975375038134701676897718752088701731402470003103043534069722833121128713951387508789628914493296524435604301905916917037107082103655599836671311726875806049232787539264294077996559337530607576894559970605175408590798525630908515616056016984287892291818245819670073898838339386236599400626335433777594967199472584248198058791122395978844785095444534438003597109585771354758608175496220965892841968920311097551664108204046922185480758971323682956258513671244757158512591519363286846970583132227038632750848829581560775581475123367635034485343819335381771518406354941904934430173593395709891338809895811190118169534194347494113272069978297129214841095951089576311439287622300286633750378610646559346112868576030535047904975384295236092429478859647330864309281452934744017566570131461309179358668122038788954863840127445526692421404621303985361969069019565075778814523514447279757780683359820417328017896936956095125232704151994324248520764762576763728516746020899145418957475359726472565019163288204442075956092160621599804061313931198833938344846022031380793730427380721474255997139611121684090743096199732951940184812819888979472449699862515278615385832239950439003461447769048170499404633681169347398390980507808506619303017392937760245038402535163031291209400585583891041384946533577913626020007147571150203212757152079963419856560562597089503871136089270830698732299881661016191046403891923488050417949823642570137514464058517258733059578840924594836347607555229874153014558000906281654821343983180255295919109278901167961499181601684538036181724305461300825306997247535471514256752528351717804573378609627705624251453446928555075750420204339467641480892537267909317052659001036276002987794098797383361338460858417485415515644596738519286443310541684608051288306714683494418486047355599678029880419372932014103659104663325085706463361271089530463882393346649086305004705945944518559062997607182918664647743176939350888883933969777816282585872942892503162579802828207121976809212891026743241512393829883589112247778223038878748854463516666643718417396711525984420574839902090892655158104592339098518275155689245327059554929145512424710691168487414464193868658531859300698966259432629370923955116172483450431101075573277954868246465617075990652386500618132724621446117640406159288630572116691287967084862783336808297577540740610413654070508593298745398033900471892819851578688766724573085123763036435529449570676003558361725730525271830404866931546940979870656571952329140624851941617697422612212538479994890203969371829744029709146262789308837310130119584931098352205555551566843115787142265691531496618246964377510291496228671161578730258599997517509023789875323740770474122118977098751191003459020163430928850420355800231078907019913178811560460220099140559079086287383970883093666074252445011189057770727770076298981126655782265530718196090145604653532031982708335338039173821852759641258916630085883446148789181895615884975824839992231840819995624436796681187988879521555700959494424200896088114978757865212607537756941459078662550359117288807048732012905113759107702182507711509654821621192370843899209585001334834225752395298306712872647284285872081887349061904012541633951728042555429887682919592538349208360523373786894925387257235692745183088925143245462494985403044751540391004582739627676630351519839373887060949626651230166474958196849585245337322869540094929847963238486113355212751321395646997346819398555620729643991375560207886165213369198078091418883681369811539597178505411059336282800570131476883671951431645712892947653400374079587717679112194117058829929344116643309318425020293937817576445910441140495479831750671134762076674651389798891022218916966932164999767871327004903060686294531062002171545170216255833067960965056208473282560622856244861658084425523929756523561394550130357730412642909544423083989231572880839860587839227656455279004274189045715338548217751386791043052187472434021710574091069012799156532553301722539933015717210519343274826122476048564974284110654827523786987670058228011239541748672375703176197982149731322186419332557369570974288653477233424093478041023889598307460903142812120840545183891540375780109021256561028694011992052953628385398590552126408500359062025179453830845682655374304666148289949617922914818449975424280457990998341982457203618623264226427546045425835100782539527463508019723469121859884849513500364456622507741478134649933058466968973240387781160041040847271949995853914208452300768210841381539935927787579992656889268123528311165623878211482958579728003918288053481145011928878541297333238540474734880477078403886252850187518529652678508204423652407261177356465050699981615504292829098099047686839967970257930227140733535714501711509686747771432607325185428081074009914253375123088741780783657372980420721225924753956008458349175855559123428860489333885903230800948391977296452494079097543856552563939762747906748981266125316806622634439348183410349278563893018015158093379468355621522787609534784086896729034510261745180417545919122412943940120674425290875054889539240001641832277594847296684788452965418409499405495314070619300048137324154992922281119166893321883192004357201153115193585660541204803870013310308380342101572524974660443972515826459281816598202628569430609937531723949019370644151000337916959360884671925880878726385105617427884352673449884793608884430762464113761007391113032876684827786959240251478941370633141810571732733912173734285403242351941319285772561509879892892538023053731288916360452322529967830820040035955068794831524785970366663440456146840838723811999169968116659751881385908645321944012236340800771457961232218077968544331461661799463380384340316727540384497343811107704464995683865369470955128650014463315881696862704260881604628338942401895184263871922600092769953659937343167379748901257042536250649610986126983361249208878441063417860886441429317333254606628488542986855765283848614834231373088071981230603111460846775647991068408422955141083430541225477519319668086363241167122450104819056549940876888386868601742854400342169156972360925100734487745823924161289096293460448079716444166542493046589708716475408501949611182735138492529857143360228851520668955963627715165282800223968657226343552466683946991343460660736197576121843048642364856778209480574538765545026429840272053465642683531384033949738250851071911237030946121640627560051924079369880730633916223368708269813428925549468868792054861012300237787004865775014799020055076741458628240698049181386818911284381792774297067022949452891581156537435404910867057660631278280847206576923780745594669234634780882032619916109811000920989785199040696857116902025756943357817626003480610728234674808605922992715149977631556486409230226306741089395926694477845574793606342417130003645782105196803156673105891284033663541346808580474164410404063857903602720417428337263550245370111607198201620058257297254754002068458636160408033042449206507307269393884274806862548716888658866250535675185485124960818825716874683950804096948577552720982971735748785015945836618671364704664898780413230737430377809805048982471308067877912533598546523599078139568808761470280041079314347171730778638592085322521472967014520386513792784445817899617747094538129420097840604974123959536759374982417413233457962240394888969580482468727473036902373276924623748660783480567372489686155617322035725836949750102952568428796243131415426887048390578997104600805716141451400649424289945224548514749211825445137909405857842999087735620289374650255586838055534049414110444246755904625186747149799871528259686005221362847280398479381498951563985589359143167071878297648190528450120907162724546706022207699445760627648507696087468031267046971039537655389280649771583843576014676328781814580942606655539338631187885227630141571848664261687320284446989777489171880200689125425685335357951950600940249553810410362119559071190203829433381096491626374503748759492551123992377795512409346371673317792941814732057318574284686565437875346350056864417188422144983908493081287457151930506146197915449186029861101759631241104474150223568302455809550379834672605573296076032799553427364394513004852429960864243862355781332427458085367564571813749886095202754067671264149684172248293943255259674869608130941704984342084016244361069363234323950672283939378973648017301677317577729457267233589609557731634722619939853411191639537917545108198410162653148157196345060020015292101027930565730325894880115312731646760866924562098721695402823500391876906513204248060659225503227329507643118310547984002305976079882696273674421706377389796983425194169994934937611296493208994318947324077706508103235168310577169555297264333635737330582992025421504070893036224032109185370597604444124486774506571593684698201290663116920558927657742877518666579587841831491989172843309001708970286020592585139355272224331532062769537724149646904207671261885804109904077837244970521114636662857565593219567810133910468277461730259586575551529555813397429204325182947466393205156747211782309780740560117428112642873065625694087750813293389057059054630503412283934452777395268992646535495665901649125651559257055546994603879791855680401181610951371724055240986432808707367196754477474835192726731863430458055108954851764462615884463854541650699664600796901553730785568110304269813816025743413984373018685114104158788697206328449710476309391775013717789371278810560923735206465795110061220866758527447123366056578681947249105564500152048949721522075902083128242410224438230891447688646509820141476553711267522630549451981219028623970139282798253259744083291113521145669585898708037282972122906249308419560841861333077506808603889856168813109969028118288981140969898142119170708543062157562411067034846366147968566557736841223339806163019999498295446895088453799941614259060385104821481766953831767524187856582460546751587729850582371701809857939842829492770314910381956969034678857688911823033931085698752139265357812957271661864017631734021884253523158790807003403490142049277848307394972620050360631933492072883610721748881904564415974642461081556097409340070837080251862933772878128194035794890349083824780773420130067312184117865892974078779850084153007227501332932925281965208955837176443856849212227590222318768787819046108322872270071635334511961565717872468672483457697120357374721318009918987895003812958033938049778654851010223532750002225408498832153941930213303199281969028996789699818721482335259933429590046968990911458335557513500961278267445813165043691182559137158497939715984653289793121759224915695394484374978913281629759231998835114710242928708196720260560712099999198585247855885121535449390523897900097764165262224120340033881027149519064103290489655871846890854842078044641398077487528832801261789298625045668005692223587512053215042514574124569089317228947423344608270547669051261005569054268781654529163949024994787662589934075527446382116123234267550289233826080244877299412018795667915329662431291593542989955512760659166613227652655275833990968415246704101775028729407963586433507441887682041326095476662551995349538111876256288687403202025336533623217519895332959103749976845245682188804724022882220243778655765113429246150289614282890056040178476924859990772988769041993816182392859001342459223505204268971969172065301474793378979544847065732530875121471600865502979592336055304002222539738355600007323310487183593871306651089963614354525773015178740548223846859055272076655164221290884905361999933723046041557499698579173810373329722892905899088108959133720413718697274865188430908821742737734677250985521463033844568739144964353034999356276191722777317597471829712670771767737814040788605456330271362599811730092763387036072074793853240222897093017346844790550610312019711020828298973913466206650487137898299361547042749851783603455992810473164133221429863894000672592330419633671347336946739538842244282497096452931391179633925118641164050716050856009969013940494882605530265656026361710205589962262646245396760603647671763215477708016956679269661563715442478221032459132394364655559313156152377865955346727618356390314717871909325608231703738209356206905384892807750572394094023420415502482360880914099594491264831270666133378867732036217391888742162548823637855715886948900744108702874382631878761015232350899375548356574538136327149196714292735679668198061256515617591197686951028960068438219795608326149556029751108599482159620657259229691858144563895983019134582739774777760299509000741156882523370133995567705406065102270837472090073374202267600345199922450106691116690765351871068808282818750759649979348483462976978434379476764950054958158668113404273813697398898397860002725520967053109021641015343930277471971957933967521602270940633806290227629836290073731893039396867744360135158628854452318714396412510551515917508965371421416358143747545238093755757558781299841845690787882662608397715474309015274731257882378312816056462950279926162042134969006313455462837104911582615360273840292533784464202633607748529385019646130753949935436003449907408613439788125520274839506760466315904630035020436989267599378802765717191040613896350244569321874777795626141925905147007297157936915876846742808449982396449850918148165700467076237874765814175630667567398100420031378574203837548136485995516232227504803241346992856855332659831454034086898658049501689482292980673886796375795639960190757631568120955904201896890265882594765266248590581554513711819677290482425835024288714495523286887698019999938180493684321578103029429790753500745646335192235800779058550709825773189430683039068114913592125323077406958581976516315580995138778378850162259147655525447702627220357257469055529740294553210780754301871705981669845487646659319699994193231607879647589910145483414474556756643829327092038878464157771004761046431226748351077905003953162135472152283418462631410413735870569807090480605815119714180119996829663348624247525414174012443093910037906221335781423181455605631788734497379339685344174554877401979807661512253861489786148983340013430541823266269271993458579697254217335308202983028683835964299044715600598071673296261764662193396057346803837056263663341490391426612749543326383215632525101279538407529093852912818473366549492034884635762111940267496387309791762218216665270823821081569368852108406354013622883846937677779814686710084816821485163740890024605872290438943633935161565038028180146638001909911568459724994776277974678110672891421360755110558261244388633740618039021450903070329793468871794093335457183861529678451096941827616125159357534178027951496368436030056332984353411087612110301554797140740571914796797516819262407548071538557824802293867311708826738806204379151870836713994007989839799149255913874583388198205638364894849867367129740741342812246403349217184457651181819985433412433024213372149210685145150694144489067025471530334710159350732094816764165365405634416295360529265617529102175901895872665503717766141965988526721679800994672731061627979767643358367723068139566885852584813528186284911288775736296008679085699939025652676360024072432039794671235541190532635421030715933403928538935379709516439580597152862357594795916521946877939500959307212072457750274372897049798860001455698978192465574509412694779958418621023625767733810051954142422813097840386399222193922516944914705865968958784761068348711807812848365838238404463470444171843066709503851800538171622191316242502350896710359310569789934535294216345129783364846657237434125558525602199577238555017569778549687029484855927759818728818430796000534602929688762384221306532066923908643518718452603940569968918109396345418646402275958276138048546781676552237025927419381173689386207849245471173573001617606898724827978589814367293797847242447071190652713788139917619110834526363896366377046965325200860237386489029598893921490919110040386352310308495650914525552125082421875325747873049704867484194273676813034031278812516051492955091982279499302213800458011653518898774734812190434613130447265275373439463284289512576905875855192513840384615606387096968164045521768850539902601683175539806314498383508660492469516898165068537262510026431678036233518100708889247582823172207396396294860988856911543775822311145253037876981931043220045768797980853364504428150812324175291449236110825095358661118324267762612140883777214846717876763870553940567450609426521268676023181331773638195711632869613496239278460964016942717339339033263819757564286980826507877782217026350428197403693850793775002218090326234192199527462268825475521983290486498604093960804500695481496748974207668612092330212207196643469710640809962102053277193010799832113037496948242427085125081839296078852961533581989309291570481688521086335373523447275050938941516842214392649088862632259246406410566872823567804472271707543998423335087190756755643413367394682270978668909042931080951250519706976413157884446878066189609551416896783079494425452298865890047924386856831493594468016817362787380273934807516698695858332520929889977242531894655782594713301898742378060366207968535818642692616598867140361786267474185697013593462040112539640953409642948623572888585252979308710041516998032687085091682122801732795785087460907008814542605976894100880355184029122850405055832729195021342953411459649510981372161539237727782309653827405158622426043935008794755118884319347463356601430258058600744792011776816586243709494003511141003297498955524525584359812955929098695729017851705549777554721068006569665963304345559043955422315982746518997702227884760063492942450309879696276744018978264224690863790269877428361246349793102157192167742954128410960791481588954456116624179977877311417460279732077546762797973060286747167449601592684061337714443515057942756327091430427485960888370528786699339230345425164122661415964410169093133686442841702944744346553624423866469686286161646523719446574339265934710000044764676487488266509955513391370166738164030282747242139374368809954390508914318572796484333121562121034117446505542320112169001723872968272978315749989740778126999906956933569808136790884777560889647945381144956756094046953262281496394710076282596163450478097104022258368476121912091946939295120239352266253281609914295464607582870165974986965056732306821240661813875187502194084007046470044408225470693858249755264555543430595573952498369379695385871185895073852664580536098003373337255900460438523895963763651516565710913553486884348651668351074399057077712965060308870000224563513614740336778902049049166138783903065875450879773531516189747492342847258781811946354747685664047663811123595819667902917695559008362267201494669936789046150882198547983853785373039372211657754609816964452913162471752756608052767669712295992918571282213580228864617619501548307927429276408966877284996138263517304841868000072954539440490873988911176813796815497411006477139889573031735327371027200520879387777161699597097874671854612328889005371796974633981060118824994625041373150654135035096403131565923140214980674948802992994327207402093760008088373892764943680172175859975773411599084549172146488766072405392973863625097630997702078488124783573061845653147746349815197512754360678227748209907633151230667537388043661093521823113289090916777739782313671302132766175495935045192105438524980571667637130852030265398179282704726426120732398355598238164206405012293258412233816742218471226755107078667144592031641474735471715714489505164130816109969285062519592461314948840836232008047727529746152891168277694457283599283235707150008058154960829150839452555506121758890287490416608041089541146133860732747018972082976634054967281311958505579845837085402843269999532732657866788553570632858025089691695333660735521178796462615022409723468712759820970709615130293576487660941398049766505454513000152217389380915777924479699754345610297228776615745266749480917620931384874072369132072714431002428995011712669658130264464084768225285931963708907731054166178728585404940008182894149564859962167671729765144276604783210001782816613313969073200553401140256548592293755440874031310571828391263910091009186946002021800556459616927892236171685481294435685531220836641601814405777529298070679843125583636754888349827351071012441312672885725014692164533699041105081169673892691691675039977464328982537682309569456173505273664028377209742641217906761350070087457495577528369098419716496465906037040928186134060268087692792542880686150075446649215431749053760488276999096435124622611168401516887291147491182396135549732708579252629633430114749967755412873737849627107966030163618653060956763367447133466355120589799274750966141163614016408485374125528852849926937671917102854726672573336290221281303555275541801813914225865944482321995997725973455370302517714490374881762802130275773874959542199528304259199961876708303871178351426416616906818493367228898391053435154453091350328710981830909558037437917727811747040930978783030496704539323403007203276846943143451362351028061621792602944131754883215066202959310663465182356987578228942459387769839146050040731893203632157033857629790655062073927066106670480994528035689651744169800068407310154163717518367032078659989299486694289137596678624730148331703022930676653145163152429820724588086520384034104774646788841240001819132946205228843470855199382646441366514253998002662428737534969110836711347100656022243996096141240026717013444333795175707581985031061894340914907741226779082899771845718379877920622450297106180026886567616990168658466776395043000669509502345737532379840584416471105429392996366812355040154226980878927756484687913874702212535502936982935903839083931259073927059160011192110972472079237700239132302665963050928764020077646098559377516669468861298022875964542578587625044237090425096973297411770141368116623525480955473723473442234638426243385393414186506357615758967303276290998258686586876080435098486082293937602804105170502073834751636095485939752937720279011582108640611541366687959380755686311788921480159163760260417754280123950785651045853470407523221222487419122998803250778370640811313069931027799273425115799418578483253898986425734344214058872781239697987892922469527863881245055604766670088573209239771215761929139959314282514603270474064513957024596358332601482685177999187525216249624072038751346747617622780424567150466205036903947200883341453969808628195385792407249680367573343241882090460125571852731327797131915179190997042459539205140106834874781155159211666523285345272755853408952739786180612505219536092954699899044964943239567428556713421817322210594581049900506658455370682332971715514126731171331124347310919164372072572898271559651296257629347315670634861329215673132279300869702291592932959232238595889044133089783070859650182447801285504627447422329810224402890172901987412982408864929686811308201380372144569851077320773356308957894978388464080048769258457838498776878761507690626254970300474342765876396994418655292786255248474729472604143646374473100352730205702938099783866093681231036684090861268407273407895134950955952208872367796796531256343618790173461148482079037277766041169149499321885663052932011933166828892758450795817974091458438094424030119925431760206649771301258885991412117444575286947579106619509065499871099313508183419050700407745532582870596506047928209776997323985710785213884581573878482000114272238091843531884273465440610323051972031304635687509179716670854230797920809234395889589080698344946456290612744904591581088453608647193397816392813062690888979717353508306115559572171929368283974408578593090345691123833090736283996799821738141667997804983916330014624250768069776567934026940166979904763048125552085127431788118007678925351738954516986376114347236431654969737526598486852725505258237317340926134449102746301816387630475784907516038270128096169768211479838193878029400683065896753557010748150758544816405382315581051111476413826404568030543104898676287078740494561596474308159064164191392832032902219894291949097838073709192550053561438290895777807611425993527831957065720974071269584518306191962575982629620617267148412026537091878409885958101103115494937411512322101910433298828309844685229641599119680489096841740378370870903171602839031634118823183057194269832967833163304044326193525540188291831815249540348145614563825545931246479527316665000620416842963123555103520568340671335509674681369849575471422074906000333195155036937516037441184874377766119237655454772816048042530950071950282332198719336260256525639685316318520172338170683798499128691983821110090511756237876274647925313737905964044822688735295146615471887097417998421796235174457459466309951749068547128955949101080787826618885556966189146719067425282352849415709209728990594139056209960656297567316213701886812495746360490183709675034634531300854184953596220728313720752705282864109306965295590853663973586197488162645885530469762728761552353604295970938931222905304708615150434722438930391368961499848592143231232232380471777069701876198130873718863804135578167888297728642854488213835675066857208487787333444498885411741599011973107978521829833569627192335157700938849123329413989614612615839530449960685983102756836651474740141639658894773732153839208587278913963153733383605697557828578988318354226807687200316034308074099954551549098405120524006492950184785667954529334848522309072035802712768019867484649207401069640128267270815520449722599038333665315056305787157103255649992268859054560725817239167098504149390318160040408188194789383762984899201710976052200472752114452497339478585382135079935108828521256846892907676384097148674318693782225112209594258548031741581680152113255372692052879707869778851712924305848462971200370680449148356872518460250676801143858490958443892366487023161806071058206148109086582341177682148011785112631417541884354335980820962993696417919061978789291147681199589918210941590963616943438580367409913568169168188593769506488632626356338160560728347083333122115292841996586414837006506653671120314348270319493701782179568493495493098163919751879845739929402568505261960512825207109728272495384790844009783249167307930023584965305094857514537152745586432188057844929002185936884676107795706498393515521468262443425678531193613321044229974294481218978715232945218431939750764082190591356071227398137211279674916794943804540569132462437323209438981940684789968018636279651182726126350178628404214905017870558509873335276590023971429038393580497327358842671526483474983509356645957184387883408018841997748810781525100491504371294447190204304038594114577814006664583789372436887070599115924137974727027176209680075817235836188013882596081081379798492332255352729248137626344032737515401849287300534659612348916762995068636322356150746068238923880115767817312282913333780922506586004295479745801650807523917822273193575144980915980751619875633638496514466815501831589917839191755220458823425666460168210180243102742305975992443750607285625661028213718103368049670557368367370747509670344321776284895466675254411404266305973295185813864928514046048765800228221402093781855567431617379481253153167059831848452096452279335604278127547769754430150160504768641427244838602189509625924419874453147766659284177178118584561431066022319809234029084810975048975286169759973145044693655423984652900997900747009882643354262434688905771233840873435537228512896624638316242338713380343658013208003572045779418729848721457291130768983337314183982069052884437813269368821711167321771313077208871486299003767008102255519950005164450201104290478920733028764265719177711524074403621262150665891006228970102865428697057127328318182999308512037185316254426258828325679525423470361843124555940360169675256488547044353831781032433696438045025674124001349660066746665600167141036986719563491014477253917732765044358381294826833211443152241560722923451633657683542973013283184846945813110982770317304786660641123160628978764553129665704124785667972623761195506529021718591880379112061209082386088279256172286747656764432500381278838263074124246049914229618911191707267624573071938515435032447702193896001342758694514199658202235253903624929782803980331760282023545028980475860539903096575580652116113423099255610404464956912407883653546300827387196283523535325557511941380660173470324301546688990466786644418961016241564376652895187224868439138047158715682162343638097704514962992716493366878215714650818389503501316365857419230107428699379242651995319118101353806665046181190065846147777593995314954448679630058757598564687049182040458202565544479608088398892537118980928537244862693081306639702701315213407990032119252111900589683731116292616398446902935261737397155141864878485290309431965252915308473700053502762065250603242427516840764819305547507672436738476990254476148203973459746914413857908614919435003256607152914914164901162252828198449831718161820272702409800519919590474453747189217375386431605163709124436689810790406304236939874024274463577245446884043435884869693475167167323958591910401161227019385205708494003271939780159926882023823072317235491448682037888811486328344236249050036085295223195622292786942367444715482651612335314711661679502280114244024758664273601369276487849194364865731226442814796769570331241858215091242142709837773637791573546767296514039332676064752980135903813819508881880099909443984094025756383610726416546572138630372366558826877237705450786708771175120609631760847241491148940431966362759221061724425998892006894450496639267880847899060955826267371352315986777204748724649234292142173356861244422305125798662815156192747009931719659642726725798556460507557660515692407299888618535697308113796351880350283298167667806924391785837290394526010822427740725856047746137572129752817509566758147208699949285599570128921189060493984662003169436567965462973312049894425760297292987725550255991318892944201437503246302696279188403543579751870345470089138940899807448381817422599973643545997468666632832533056301278903422614702078801428014325951320977151064028445061178166943991701295076410144768573938896498506738007297884019431817263747223831392545498766354726634941359095349501662914179905930818580519006237611798544119112444243224090170809095622563248603836992089513557486444872149817174626004886732287056449157758623747063768226925281235084555446111922465329392900343765852855319572451543903687961282184934887437018759219738146925769006979977291494190839676556126628643006313383099117148797371681459060104577431955787436327920456635954061687731888731553210650563527837005191204939512744806806495977361125068982961985045157663173949970729142225066214449871497140539581293672022543373025963060778446687810404771424403849019261750876768839684555540514541909159638140413667987186996045018549344336980727273417206017560585745345923351538076875803967466964438482575793283841957737670919554500179590504395451625871707741757987717780216964967288297745496514332456829480322198084461083069475196133693804513915244211943008061763748291836414376657481361417298021680510835203902294283466508437977009961582167000078765988396834630848128130620760191631062915671598964462916860127054655579319607714384186196184085170938351895919356218788070934919327474151701975623939186444088668880277742529115731785730789347243003203786356476720433773437521266146207815157845557849135759040351338581393456083016359631219462625194237872972434450222587739316438390517139120540584367210958428129096739707410287378781792327856031379407915961564726257974917429159963319294950506665951065021727478848929722664287228836375760213484730981407150623020422489628827046540645071755169502778859140429823812058486191806809119648822570150668897008639368260155546576251427853611538219657324773853117310913201035219154918964242455061788042222707630959314597225388533544723413771011572520885169723830879636144172120337911385193508063804339628839093891147844499653764301680727056077815911449560930838117864906211472723181640621196320543428185234632186237120376249396679757377188878273757292163662553022245452206890618585663925785408249409368677968835347551117286295816275011360754547911847044101336465874846433021126196398289741053258465684423732140818395628921467079206499955321008944709764108439861136580032989718158578959682283517848496947879890259491855454037713637286279377509108026601430982638810486640039017972145657305721578776582219013353552274326476869845629223002139019435907946775335121096959280743435736023323879161288264317941432613535024189181530171182772052840790548459745418065297996948017175904239151805942272427932629728226790975105624332721636525702071156612408123087013445638106602162195380751692189603264395322098752443840752103663117613613481519845051466547708318196309116120901602178751917531758920507689270237393550003713833594050193432806789446198902863583940938010292751807976254090422755570965995215778264626779120548344422225474257850338780212833428695070681862593387308501714466234111610678169031861417103635781955973891252389401168759232708838932863073102899461777194608911106614734031000442242121145756227322626942622174235974877985412901007210627699892066722879877971893815799076862227593712772545595181651645939848564265530079760082843616406636064194586619481622727152336692484769001547851437387969138138407854238726959771955832433546412947014063182586451944795323338105535235116423762902491318422434656949443871744092074890635359002009676668033600811423747477742705528839819685738680806662876789881079288961490835564351553526028657025880416801446249589848833036700549130251384230755100512541232263627952643466311042399082795740361925194577877501331439675308499798323959404013876444551778217160924176708100620759169357271385058347792271501530730324690965773833777783676861707056499059395504175510016396169526262019981069082336950391796361470742056749452700322443851228661568463526821673505424819221398393416230846168001810104345973306339353263843995616831475646673120555106043940565034657353598330341013801899957059726314490668107406978134887740308246181007536111994337851080186551146289812265501423781491152923179695889015519876718691819494563796644979989224216088154389412889998271342477493481863852190604098019192417056311307154019914732080923464344106519675836376019336916633877571346757846274954322479359335841960271218495940592431307485200639893600448765916833332247579792202523251532988207074282507321328641542679679584923779791616367239973534668808413490710621198794430617638953231087241248367026530513836351412875948174370273184090822298241173632364116376311366176536026608192687579157278075084316462803979556368489147608491514574368552044494429677359797483079668231291938520119344773298659179069334353425276833723371640257846965968322703829102173355811517207722152487771248990049013441311074622087262632283471730059172821651191405762177843122347193982173633672466730934685989915427872404282739999620946304963223464319967081591642979350091956426791878779113241691792229947175554581646577573370176406774403548249479960803500388479250928031725018853343322453612208265415738610399931293451971644310063499129623446731631861820637036285343280336869211007817048500260000629519474590540687676506630564525709586662374479476384281989609196339808928287242765783586787302635052031925978491784204428948745647141885827914732800450374853173875958760619346201213845770490523748020846217134672558147004429866467076168108748755787197466846751588215507197035473491242840116855288119605816220443976817045677938099329770561557859586011576097663250430213257573632750632234711852151801050607543136414598709032222014677499733106349401918710404808520167265308167170726735465215616752769814928097863642807782366880887291979513215252881198411816253513971412988989206523945763809348366806047191940633776870968563471662787694033388841411671513569977940510936102561805990763802242263526328770397720814151107199718995141031619208091293656399231213629007277542722126492741253565517309929983485790894403462736700811440460119988194534401583436669600786071033783909078612932444248783972208220331174823319405863740861646245709997101871051648787922616650672719023054912334381294405664281078716751941890861652458256786436053414236769267464174120635630393402981768956838041567785166973037309646513418483368922081030025057361728641769194051361046824996235114317161001673250797424775153630623983633908573327042971031910492270043212509003214124047606807878677494685018759853596521753972205425621080773750892438332664901098582568873209485044859233031629786159040607504818266817075560452155665868146755367323995890728843214909090687994189075481857018110079874622351428836011044593515817883196473754596387646765198018228267212166820827677466430820221882851291523191447763114614824113700055195082425577223858698220839950970626447214919759409355448702960495021940709073950851103549032387716687298674270941848015584761189941359208129926782362303966499328307335998926817523058115247032939684223654151076898134935986323920587046681967713384424199672469693895644694880042682484547849143759381195607617479035922948579590793544522546505664492534123474528890499143556282750315520905094215886327425328472345263501136022374373660615123349190486502804569555531532159361901127713656307935316009977401389275924282493478969799929939565179985512854652807045738973383321039942940002789394943397912786309961391221995079216315669950681388406131031948195359137089216262259552575290169880214055015542220247240128748233974013520489839644405667503070718998691556484636269383221113604948488894574698686596634281502873174050506445013531260189331511935188268872230202924157798742402971318661605007855068117511160964780660700052053033614441471215330864167804970442331317561165296088344129123065029398365601326561551232059246484305749244268043119743020227754445984599633750388211823498556899039611783469362331261050257927840166978073578342767975315029628749834063788742935590899110550941576255505204843516846181584432408353432561745206575582003618157229968267598935858907785045614273708277166892228354247306989597510835355549514323454505160370830972313377978057902411196535573917029813747548753174642588347657608189831707469675305812570584145270241106591507218535121858196974986908589584675412099993106447354004316029495409683635074610929067698677745747225130947938030041361091059259809072005012716016495458304866537218912866070716530136430210953792116495728603559838969145206383257273015406237569885854528668540206242572487217580412640973115282099882100175256903092912337153174227988477576122137214050535887871691426067051127735953226281127916406631437107621915137168688013024067576139342923046994454012506496255505620649106034018022567986121552765403827529680797281471085720753597397694528240734706659147225631816082125735302206477886561141096368485945514555521403113260538654124851446508620308164719939005630114716918523624720115406669691620355639808514108593176190880859793171687798759881005631429480716118629506140781122357336357267435454902656108873317550371032378068663805950548954349430189932344800160510064053200344388325763342488841316870526466410165382433989075043376014000000640601973331007619263638697338081005585010459392689651494183588520463971782090076109586161192151728309163312477462372523372645533882020765537740861709111529183197527488663620493948627963629084719333090622378113205961676054086041912527258107560056644594013934518040797748896504254108158590404852632428657426253930567446371003780514410089179211863432574622583501999934073597460770664664939590245194819484716128012327324194631036870651866524769376472880477744406463508079501898270293737828587110049719435904157191523642080579535552341627505536105259651697528223884757439973703612507162213326665684416261436320061117812547318666519363097845665032408069879700032618725360756276975828927766168883142210367860129346933783330184360836979290885909728505994845798210540962814548304544675592485307303244136890267551097326411123940093163161304540339323493990532683367879995806596897238254127476578092532640230960611325068065955989586626390386669408835347896790312156841857420161035705471957097214617797317447775384462022011080150963343776175722388768638959268489881685920126017200068193256529027203297498212541537347459179245743555385367290194207611574687339879936586220671008103302518895962985825643113267088555346654348795120592719652744675223443528354871727123127561769774373616029486731229137845953975261691827920627591998797636051298684692700089638383441792805771027038300559782278898328100555150916011421155457486917990136183845397276215233002711782582035403925473684678838963042484424246276064780280664272552172652502989580213208471713857321469347229094006403887300618084092463335472219315083888498817234988231304749415262290648700151373231424274401892474811651234643864311813937828177146470706746406139708661040045063262772685288617048697036111941111607690487057784893629684097943528836600637983941456141807658123091406679244632204545495927406091075139698096690169804930356724207586673475453938696896484132358828122754324754317353224230254069131412458063308757157298307959410266382913167903420575207412918962961594686592400497831550190022110774434504489052797492430700134650482770187492481897589544724701498572113758951380267689918074860771968514331783884126896818127201846512840139600586824472079098850590313296170747494641526980678669534454227215848112145407185371337528677507945249674067529556942500718734991145450365472917584430109786501166007807162497037738782549682407946806630168846253200479797917355771054507083627864199387583550078393449361494959734097960572728058191556520390245765849508063328747317532864868019217810155950061434541865680793117714979323657802552047429231771497849774662253917250152249134957807400062122766855468971432263954700924951071160949203991308612579402069490220433897908328321505737980184159577781589385184574832566484843018763035572543093855563914618819133899704549736184394908430064292193264058073438900390376762926431735638967431627201856662682568784965313502282951714954819301653534556116875293728739886951822395954229490605664596255301419206745301777230724554054274890874925885808782978994608201653527079260320143924430548728584490325438649249257281618802202473997976759842418994126111811166801081361179212540311838945461816539361323523151182529236546648716311042048659084521330801350191767285223256042404508906391029838844946969122942904983772158990590653159579785775397333230893551175531367374375696584884082839927296509461933566865936306415298310077007799283918339366479046328197487759863810161917922359054797112233443028973833401216829561183623273499048561516674433701883027180013752994456669987942905692769374178446908403578726419941568042606218238916205057125345052612243889595336533940843861100963715603642474085362628208461077863441896723562847210031787344789282582385973733567611912980077695201210277974967834025074603410314410061943502040797699309902617789589645138384211749159023234324552855325350106165828727881978817869597684165948416010308074460915712136857660666069220299797569360430443908362371366419818751298469893403775091669982303669315497623708146637843419463200761744682542333566792331526980897154396503255117106845054385266483499163831477182079492243608197601729303253058616186510378652510489238744343100468212139201146914618212789419913547729074458987976596688543935305298359640268212720278981872613232512221900040087863817298265496986772214793668714995084733418357683462644388092103287903449902029280422838460609630977293330387492251130292189285732392426479863669196498676665769340316028963668677545788074813889887690838289337684070713763966320109108487944011748807120069797999669295160557167673611411847444040767772738586571875406447467719634036092050536931667174389109620664213825571208735874945630861607380011604550090518687388675776496449654975819959640617916750991642520338762563616494689802073297129211026806779228998231148329580680872690293241638469198056119859026346893154732291376117384832336508826992963338648852831543864682735429693413054333258022637160399675319207290474828149804758220213397011070127218970471812213651384064620024900464852420367232722066072467977038009770638684256767320751864022047986391809831220591233466875634692187597416583343146030651475627895800626350937160998349051993575762276724124697823397995617036434747159802626988610222812614424048782969876793000746514400822835982294879357129731111629700713914667146830644805331869802639520717969262860674978119416089683503604899566238149316551129958947415357805675504659265555320575291985235577933166065727539221287926971240133855834488928120176122931154759474105742759842803620146841022199345147308938657529072151079279559937320352278813234413983428307944243773272303781188453834535721903219161063580490972568598501403977333438177079076350543125571255327954446096357577242975344680653725922384127753001510530031015380690113430037384467368212650548733798451664903639379233701799375489785973244724565594189069532529288656650512895616613006485599118603409578733133957334360400809796352001409769987956024858872384295324820754699925387776757092266457330911633300948684133224160942502165379624604674777865089653475641122876881935152945701881003242332755843736702235478575462386517321444777552629697901367485621320570415307103491265429444032066490915700961142003383294851768584655226435668855134616030176149815577712905943116814940267101270754486621175884928647164399188673509757961673784224279228225629747415576636112979860561985219291615959933069599096543574629464682759559835506185173198076147563580161307014495731944076599868893007787452622682827999006333053850484174621214947623570882687020943211617993639064673850336463672714916950274677050941456826836449187261203476390530668555336585858444814324070956861569501872437033311968135280584476890451359389931727544101340589514263769203675665147568543960090729174086662424856387967115164281423340243898357450529046039615985211419061687811703757954830171243649703673849893289824326076276787893967625762934456577475232995509112502118489250501743004750339507156798440311444531971280207518355639805436446438473826530689629097644624221227166421395458252752325045392824018208383952906133794911163769979300068968361471253656805960107523986374622516607173613194208180981283113353734327520494826038643274074873258062746717648934654999815632783309609841816985759271300946652550490550997718284273685443385201338785789927940317799527289830233977676250039914404525354281090681927473103981439845929973930507221631398395801559606015869851235098672627741488193178722203111975643019548414357708018326819331112830576225786814321180267702656705078610701655718073174042362128016155889819812376186636482923291218465664387124175646425639915944796595623664548245284782835337487560934011189732313958695830740622370492894305144414175304553874988208014129570465984323337582064545743396914938840791293224190616750840266735536392402326976426535628875538907074800561566944516568648100010209591759574912159866031780026502852108118560565284060301367843539562647713623888603735082303352463567265679757278964720310692741821354110421422822539352578936254844143237725956519251591173085756829019025353092407481210206353058224617663049491164764072289333508045692361168238454696886637016610682769786768949759088240374093982428970925733379529958711646454580473570609072724831682841568925179438931592858195763457952502230285505960813956855323209494814986161877956902362591374314695799857938606040244598466698020759326391249984961815184904837558993504526806379829009639548240754644376808562876781340099504029905289466012154671772172780165080428391934128467694284676112413065612100099014110304939144446422694157707759930607370663840307836867323928427864704819047012015405836712531210752304116869718608709545892482489457502358320752432628850662526476663678245341688481572307142419249205592949952374432355076349122219394391590545012406522761841722181514885286128223619500783892071478764484447850567346848922858388074469024596735758301116394765466888291572990571505992915821563670486536439446163319875471751623153004906381805961216044627905592112026020569643458138143265603691070645450538246994588664525995395064062455542305177591209021557757279732635594454186445862227638170112014661580040626230882868239819145193804378243757073591086946549917514685629093023598887112907503137615255842355503560148624947609546024773854959785121772198652774779746078433462945529368876041236111781296439754895994225030684023854601901544226842098927192069145524296097777872497135304116252425895790349581307598320238911005995214416872317788268920647486796646441868832713391387714814310757330948692634758196568634877199637063926466733768754936230142346498384739069381349996847319785383489323560027367557664837052713901918743060010655569410042787456736801666901774552715147222503370018740697450951292649688510070391446323646304474368589552632452166220059501570947965847727787698181969072364783038402224908804700125672252761330773240149603776094132091573826829788529146726946375179780958267993538630201916637878959225934186932393533166072016102037999508379930435952047229765655757583160870242386659946000215700088242486202937498065828559755355377157916498989757447771169712815418913017798488949173671100241986763083058741151948039638166278870357200716525939798976802055898174052223236056676602187886353275406107377198382792874838588434949694082672641575429915582269778682820812442402230396422715757445956750737961899956323483184434078656471549569089717418374314538508077236620461810242018689985095100563065336733808848343118227857158774311883303884455333282406688232689832288476051683612564541967289558040237504759901495740986495553498107037633798754942429955405909711908305932527988236888057818686666334313741376207608979939858602426636306287373127368688289889522011308460737067438316252976878368894010939450862470681116144464077525535889901337615515762668306679550728407003886269475674515305412281010837504640729172185850504939848104493017091824092075341855858864963644519176302612946378650904375520444748613801016467877793234470461965753728774449404823829368358985889278265452814282868648537105959960001029384816450328176154355785405506967477365055382017361045349860973969081825745600374441673734614001733471346414523706466057022984669271983892910884886743640155411278065753515677656867347526062386123186111422470782594675909922400923098903288088123167232563165025654048038088094058942741434161193792059543753907705217622517954435769782792728060749318519945341074106637199472858518119962744329701539509595498746341439433008732519507640597047187529581447913235267750905257777549617108171396991628804971179325435927161829886766877084480659646161363256889692875762229061915398006475075978171626781508231317306670384419185670253804516580321856032179364930661071824925294034291368533431456845142599044702237607011177002390286380585669122896496731251421609908119595930315675859059876945039169440331217568091557017884752543762205220392441688146856575853386290948558362812275441001900961887406918651391611289048374152433652349888605638847725619744270575997168501423580531745766043037495536719594769879484273954648883583214692387765067902854267943156888830917945070715248996314604531450554394401272003632553209336288215588328985415061564400386811917723435489164887002052544224449855344391097083257443696864951958373148149076696973126108752880325111920392719721863014125631926107702742014876824734073636481099291410709334265099438391493829075131009933273678250728275202149322714130326008312390945041325697711194272443000652726719403671569629747859805143164875903334560945632665606873524059354943629802443286796765015098198098601367901771752152751162415352808337791535190564698727366599238428249294738075288766534455157960936030642492404510829088512601787337812052602341137651534320076808128734022487195884364631292021420636254941966442066414301810948860797726667064922402247219434703848839312500664454321840258642932179162483129117655402840906660675423893915318431633057068742465476734510433552391046884053960186405003430115826149078676950973287225496604710698648744864677401947219527627928860779044349867809079494100869522078648673998584219759425942738397130190226085570217631914468905555898042611309178323395288333318102156834817857826689239797131107682847025224690261197091864551800345566937641838856178901982224606567573298157519276509145763972124106937038950038081383731713980685486276997023453670284457926219786738201103352392467046272080356146891694611375398585188033918373338044202263072426412484735024371578324329333820543436103475217082070282198077352579722578381473804588197101227894391470735518780711055797521986868818931818789377496158756432648992833865471208592575366283349772497805810604258211633185821227890233338616948607870349326001210508842648445209820112680835950923393622439434893058982559383611571056210769928156071436290019174175825679241583328057726872362193044630205485550345967005395923522432066259662257523489699323020222034196345097395717014162520863499343262433266529376520688638134491286820537372587222509247750562694577950163304239337631167898629675483926595245356628187201198809302177223832737989520039020859449409731352914973544409285115412244612942377750417597370779603230024917772502755808119194904587026138920322943909809201154183663188333620521979027510538202548185269131916024367058214503258258439533084299465874867036860475069306556581907592414137472026021499576527550176150852251736280301712334245860856615256957563347269886658477993952187654580583313213429910413698547367275789300582966361281345805506670651037687284344295435199103596120361315785590898086182713057835712817565190735762998238449092095496117732227362106599542508158160226803045826256900067155959859298772703699796344122929689188385249094654355330056433738792940862453636557203216847931500599859070283909453343109004187171791728217809832236504927208205507657869876099431766017619408665745701613536335797547334447537074366267234602772149033867241834232082856246416271042177969873088622211492689911236708864658472022331948866966942299957699057526236304726946447972919155353812826708189861144559179947843979034207789640326679767570434378606263197524821116822280687279742215839496545552806957968143310232980479067567318415558146979447442948268307900780029520749679111876499689078179311765326623296432955495561514515599325776653687197138891580931306660239198453376870403946754847911616380978033119446687101041945339785382390291422414952993213951396707534953866187973664008722187196356250069067670371898428183380158463549139100422674104737487102078095464009353567674903299293883610137250633266184343403291960106209430285689692343304004835413276338212301855015962191788289073300741865413988813594981324294938277311360571687541495480562742739599804751016249167432050856505317218821216257062090685129906502283994651818023166423664919894065121854207489680317491342131797415326114978219314511998908647029092710794342113354190252144633883192183057787912383874773320190051200368565015107056171792380229027092271852100256789831948268881295257913123716549279836317929627323767873600480639955643813114215119763925852490631968598811244629826210719708033066516978705583064560889079101632769750650179228530334668434701547118758856805525136429465219023235459470984152069434672764985994055232689670434193134027908294685950035300046119601319021174153292994995413269050640959262828763085235294026732723466660568390254429603098387865233677707528027536043569250974829408877164437531782256497143811217855474997286614648936233931697015435258907985683115542242494456004358887521056385506312066990459208839188166448478169385227005182741048307044730093059654920391092363733705367656812195162939488753083170902193287123685535302727789545844437911746482538997715965619773529980511887106539784409617563931613619210002000083664522022113285190778913433253368809392348679538484203482270661763639302686842275927628074846639891592709632306478444939505686128828481823082645702710632723921248660384028953301521411693145965508089878306285488636259454627641438421141125036777855647442366895413770100420093903627936252557611322783004072595535820070869235869563940113960172885857949379261432896343881341865471124397331248595280764237273687906958943900038694757800915515703404127816921603539525462107875404746093688989753567633648238869558732877945438230435142493530928119460663766900817373345154936158236257023805576923762039452407150579142426238480347518735051487388804871666690913872553571445655752954906938850184503360193026487050742238598844454989573698706888196495173297925270347876972109999119978861244801946940987767769385650994186702210009851285897105854276448974668714937308370284322001009658073495277414269003998589792886502067711788529840058984981812605217964312649050561702528811696453961638208997332180851508186716798026011249354301338822947304833689654555947268727736179947338341298276077299591802857349540803214608711961498089768848270171148738721766020033602763898814273491691485396508674585834551466450008998195272207786114649133086782501388236772828286158579036725404314825081295387433856638747589233406595842857696690346054963286157702387498088833218920263813181518701016253169309592031599304534734053224004258131182426660543916723845016025955293801585327646856775371176421098449528054898757053559082442725548511035131936967719093504121610053466630932100700622682698793102376479755962276521270225301850922596065107897890259594455081208802271745847314743407380434122773919789636762399339031015696528739646047956619889162780617749250336624744004338834079058046290878222958724579979905210466490461816130779748391655547798435932835625592844246638684734592031566367203608607233763250086441075919683989801691298712870150998162239396208702951209836027719079602164659691049424487058579899597847806198088162736398113545926928817402741156041670847206367736976329887687673420896366514779538170743874762001199567516877769142034746488279471056120527204341888244046397702400229553712055717959603960717800577398088412907200522663671308296470853097563081798107358348983880177989972294086631978592696922449745144419483743686483905517182074829945368821387325986748991673656847592626840669636415446005373417622476056850467954738749750233422063152684191664944160853772277902967343160500756151470509302454256489108811286046563080797532993399786590697975080422763569307771282447841838887718428755410251799558662286628150944014203918520252767774765077804130694150475491511923243979715713132828015040053666398648120077877130775944303828398433999233904420231887815505830670737634789574854318130960125614163151718656140051901254506593657753684808789677807427522759868368547400827719881577919231007794472552416213035150290874751619703915182452583603570657636722605660510669296322438652994345788228844278615658769268636172610527266107553781858313762614481255540624597063633746210938246555623326607113684592456502626290624562807479371253713257004100982320035130653692032581033458119194073049862730423791034420330158213625142176409541326740227054773484972225739020014240560151129048525331693508077814577962065866268991594597537487869993782326777659876457061286652942274274689956288494744332028933000473473780691464363275289988312794181497890799970007789742132122977172289028913991025106860224302642948276954843322801573931274113255508942692436660323357338461703452484207409197089314412813263785281783639650347142077071823834467619036166835166237934152217734230884690618298757874337190285120183958348554192794007764023012912385079832879954231438132879353605396297180420316362011324642245249459276005391044934787247134126222034681527736749145709196682312119321405102824591605098580456140237919233501963003182277345346783764148518338650526301298202012530244896919405963526520205276574374855655645167433256964158486129077288641557668814638720195613910996385816585378414203718660088207101217198640516533101142030211179561801473794855016419556741410067009540399873363434898413712958301877746390045700966064564410832207191382498748666563664665150149599320669983820376629913724606507509169564729585152173605019037350289393923191941742309878351505170834928015399672801625765334860242958236689450155368652292037721148564259778161424133744641765608601021479584503532738126937747729477557849701605825507920324947964722545307686747074396175292445479354242002987069173688456592258776661579112788509648128763622428808447616268855899272879719086941228448988724350580226670808189580560981040178834228384380730194359106948881717068358199312916631048255577919248047893858650303286726945532307939912483960633450768636655395647030169320306288685770004635002222915286144435843878623659871258114602889397513748667389476578747396684444723338932084812907857993721241815344308480671967585151484917309249970615317283036981381613152171813794756133606636525139380723526566557159519950708059151917908501106233493012275882938331588358100735342861648716970027923582590482583821304809018736328699923929173370131632303291298890249143431742457224862369179658803565078277733703407537758987878131465748781720986902225944066852578103771392628794385954856293444477807750664782812102558878657777482695116441873476217442929140336997570934095008035122764281171792914416009901358238645853055029390844540912587552877074584471009796746491336550480125037178885457599073482012518306488477099560510185262438152924244049213909500254994353994344086711526809209978800752445863734013805468866977150714699933901485198386638054744201063074216974912754363051057952146773116185742021069923843024486418503591416855138785753280072701097572282801039618847321549812988331134884324619329912321053939701179714541787213131559454527807408157514256934649176777680577476700518005927373781825067538717785040719232655958396387356809162521176503661290875720740756801774501518120375733707864530156320231871600722794823958242236455904606146658848856667688112665470128440891863066300041283004079907053568403057312279540080714475018342759402519523411459696514218873044389949042661583258080610607938209554770872125525289823560555888351139383321800298189184688624830343016180851104840408361415951087390466540426800599953812108928695424435409250729398034357482936340545509801088509024343244378192448983008022412513976899575741359663993229056531448477551191540619149149042917753544088589537133455914087084128065100853043478419928610941007146076541921255521345433359171257457059800089516774522910688153403841390058626395464935814049265203472973887781483059587562718824233525598333357423783002923799639263099197481283164703219898881077738483495679117839557710982939059157680449058553790000380960316450607406086054846719202587796667267790869334413042365456247477640950081872838438536861010553859666258720053861718920713675681517616413417206291459135305296610543665422561178836975939211914901755590800527995676521387085740785875666977431098820180478941448611754411837479777553272380842551056761953572842518999123533190340012475475835403953546334083361897854810908774679143988460373641363161733645284268211840814318875345278378768737470859132122124934499599700294340105830707797772310112362531873900829166114879869925939589045284546920926809896376884728001015766554710117302166406983180173712984856013177762486129861693299610596319240051789416700830998504000987139159922527900529658844583625825410139647937017841364784317498128302700899816403123099689191191677611484421748872296106434148162326537312645855097369077113028185163860286862196827759833993689650199992458572220263661776438197416585313701372639354585893883782996412474044723386447879272118709083785264732503046397497396016881549530711471732900653033007854450831984427899902328110622115027679692190098841563914141248423450654428481453585989254557577069540802417266008498449687028991831961575654991663808463416002078747534735739614712359958941989907408992916345207796881684563711076166801392116077714390304633950401100654486012488719652322276820406429204542077620343781460084446563329255683486850185968626985139708047696212801554402977343214674357321130089557985256972775316620988587201903672509352106497826914663654688551812993624091654306443487736244057705375992543933656131704093785980224781501980949523790538714937651958004405172248677890719236593072417189536959711576276706590733215545485084667339607018332550704019399800540358041239787578685982470504011073677137389880055474971036987544890831380258827566051407241430970014330993493490934267649135337155796580471311598406143695329657405628468416195608913705644975838261401750061249527796104251845943026135200136671304792443226980440776437970981223947797092190824543301823671787660567443587568033617898479331608247958762570039082960467420367547104001302253088139959260500701662669507826519049847417175295964459860117925317900242352852858425473602333871894052956979800945708561366536661473855358948103660644578572433442045928266314157163203846757364250185094720680265838327035956072144508492207274201176998129779441375976703338898277496314380055079943087507176282916370403586057896622164746945302998692071163164795861249703027849066809723360580750200570856902166925801896606693935035813865845185476732016057786889223009352213923094587719925512922733992977367476434277595517690300091384433334370959762052919999716338073559049048884657547744735513879206275373800268808881593092035588778772167753689883021247981432631170127590869695961190356418482144197464780969863796538526994397120708612110005982231054397208833332222845914441400094863138023589637303145638187356350818569690331635520001917543921410914877745070041272614078640206896187341710095082373165989240017168140547123649647430381028660053769780478894344012234811977914754466355147868493966659410094490073497563335064265296574106703414340959463650287610720994494756556235414644803625169759178409028232218927526546624204138665537654041862421821007060871900778249834383584003236665896953733986485676040706792369551931595210179928043171572146608854555701409312125728916993543605192473264576605795939206822200299628894290145636974237602651488441501633271339275486844798941217380995687873435813261684856014591761219948132095749664043012386126547796633487157364665047863298267378352789088608933712693585845629523992947949685967572227020041855398274455118900055784004693296457237319014367154610465214208727279231617418659283485316206452369582511308279635696717897963810961697051322251129417623699807100186349272377952227717666043295127133154294459464414899974298488198954982061904989161173824011239089224848198989131588858224144843688136796744896976284441430558491671355486313418085714880535552588041702106338115588547183214206253645128524872376754972644166823339555945016659244022419285583833133444034587064677080542896643523398216353877764830983496366362963254704537867918129811625696496888570831889647810592652119819721622663923812767865621282950124628552763864781764710139837215853342097279209818152563858028717373274316811409487844485725439800895228953545998759401193706869405215884202676918838837429384566378758143317281033385097454590718801919343668594212349859401088645018155854655194318561297630285377513555360113944968005327053505275520217264103192192537884449244882600846033499881674873620150730593336563825869558711254783238888508634787953101280128877552323927582284667740500421678816303016103410735448218895261172843156689586222691150758697778858737563271504413341558768703782327863136470443568755907389729947518382713770663074116788442412823624912955686155981876737817606916601248425803658011108661739651492082841805010031034488800973017215803332404498027902561774374399357318820252182387761575961636293631229681484480902014437825089725554504880553295628706622177092834324262969386347071377194883554903841520564820463367988188079087252253495278086001407163451451975445418954644459076615600757429051247289185796321648697950139806816880710571446840791847206526873556176776591647443064237094356696802508144042618617111716651958407346798189430618179211287261368273626671530003717003959857069522437821509767615264405308632258878417257846855806811054583619142400091355159199640793106997593916054398893187381465279405479986034705194015804105414073400889062516859810767300024041184737191456693084127204196380431094264254962295977593613250636506452368146346148685870374526674135138921548990671991432885720401756050084797956994044344143069376236573210517041281205216780950087588727552684199393907713900949349115227928556995481923925353683351082744902967492210921346107650765637841485366979533507364666850202821319849527129747649223088340073460474582287203938149949502758137100158391389024222619060961663907151536864911384949917269705631720035968784492503724330891501621514462224474139685010457543339741418594145999510215224338918284719348393906508120376695517079760618258132729082589033906294023116990265945993629426520670410022729242433032390930066128463460041849627600055234564027438135385423133355874750098963501930099009850039789631124557694359919152700187846805105675040844715422085245601129445732430725706605616882713890234587544009856745245874165200186363661266104061671038614594470631407675092485221426725609353581199262011531470639413047179403537264763184987754201989984913673238298416070979412620852075888855043820983705165688376648141458476246689020885344807559087133362924267750326147971267552358256262460224496396760051828159401978209634427885250181970675382100416798479698308489639686361773677132751449167854460215143804962523226811482006758148306701231517113318171326150769117938284954896273756463389373046687770112874343709328135333430264464520882208211234308738132856975410005823658405414658651975372234047384390722222135785180354481108138889021520567604268902188299060416607587153489320866452572578900786030081956427944061807844454650148562050940479321723436944608356553456205140076682578432983605868124478648535113772615188348974030209037015873780725217387139348535328649401948527324692034735011345089677945382997904316198534295280204107460648901044169201243731127344859989011528819921837095006438018204256337988504910172860175877186149444203573837064792155069183797409558959340314137476741589726821191356681679241249876879373087747924530133851254605999053013960170011517731561869787652957898532004364307577872018294867715204290605800013660886203805477950366443126737761344301801319979125929694550529243782225441026859494527341807237213023471603639285408073844841886459809383599807660235826315117034163155984701028794535247577779588573600254907093346605904298473433070601062715156613425237988605696980292953093750916977214796144460013614958385038009618028703522746692632550667401531078858478569262783969881876390795085553858325357515325597109274924528091848579169089312888441877663954450296788115584511819063091143645244068858609076758159480119828946601829248051036771837622752168200238956448997618843039631209020161826703510319264783970155870736957871869821607915898303957170941110917652117268796903332753589782058870833852740124136130370362755356551027588078110910123375246764502885409700634267853460890639838071250731546913961402393894064007146851512200524025096755255526159618440758014016700579454683891416103503235306856365767027134718094771028714289403496501042362817220653501337470593800348721920705518384406930140448421366915515114703998632856192682751826205767746006087289960158538565726220867628224330996394542813746521300262368579882183215971254546914822649506946974991109422047525250751390422012805064563470196433331701258966880541687839853345355032534031420266945349676121552348459804509183471340059338503363033653198236692051932533291357908297424387602581637555671560487638695450097223665513722152653790282969932055617189910199653345008682601179695325404538191357265970946499031549775059451096641777500891233926075355059829924080328700680808034685061536578361237086492622238245414358154785412017352555687321696350639039168507965955721168008320614278756105740239872261720230121190226105639512182672677755379148078879771729094952775719071873269893357585292328259274677913842576303670102131107104627594624373511378736506254651232186732603246550605462220559891338547999476065701079479164855240061499113871758879564292421820353943544033581680420755046349065389489742446837721039459709535944238087420946688735443927108110525308336515862147716173847290178406326713957073756619863837496103065732638038877596172528017199996033250281252001817539328130925574950969524676552612458459387451616516811198743858169407454006474312589396071802700406667954421645730147674563125238179598579406486716294596131357108968515326729908130299982458707090991428033310811010606996701478425924374032640317418813202732431965347037716477985314475111512201351005148999744124822987903812249572481925302956801603413863785853761267922455353196846227688413332155998017163685095875112217199227084462519303632874906085147731859627777069089095436420510707200500868914355022110315603358828831509366135099349685663608896065794001048740628768603066342412141846293782743287396870345897141948093225545502616016535660734469795186131708273852108497121393610294875519074337090675300554143221172596682108521169196995832934945242111327316540455205151789332229513600209934164752446930086342837070917275597045931628464803365878909109727380494618295349145116416682945006666860088786326328615867440162579358476374058821799696339800064032500311286997160338427138606662092803552493107987917802326060295968378269722531493555738186643055005864425610018357660937697865037452979788520790437954630029218528689749630301209459034394503903266089117039226440568404431774934653144473053375596122062403836687373859777159936687816865633477896581643465603320334556495143433041266695279013012132896889937618566975477052165367104423555840269029298631125393953339899635537568265164950725372719740106788436694489327347219224279311319043017019899519716471196714979082868701227264363043358800197611235736177988626002473670237998701237328239165303758158915266446772737618127207158534160718035242296427072864216767781007643654722314246758871556249765526830451898086855271228824185851152915426509694313521621084801009380253875885120876038055204778925748383926951763698536412367149823021175000865465212796746223734384751086813439060462049125079907259676745844183941643909629514068288216355956837639160759246454620898446629393659623960726353736310069290277395355768923564123985779558978575578785611022552726299537645935644111930783506617144408821549433443040552795390554500319879594280667033054653315060599028275195050604831302441162387820967060301468862723269612807599668135755889318847948824328884799170907500689434135216705661208005772119464295003136915447406555576980150863766243505421603835919236989253327348481616841147267364554781128743269188634109292901554811976969677393780496806090241486137310378372239494569335837968979327606143109425866623305986029404898843234399524554704007188360333929292413843719308743776424783187053069849656169011412069005764966819730616440412216098305435956762739864955859717643989972643933648831702155292725435600632207652737442265910977229844158229405448838233524992294510342777025532832734788067000282220084188031202979102886240088326407740394589317292627974950155822471406396661585792619586481740060999644474469285231851097378631145388488677584221201554708499767446573523858177566873193887402899063977159665660338393897896830641098837460219234489815319386571354535225074072264867366949992072760794818777189037784905695058387090530832443144293417310839349339160112124779055652037377542102784304155259937216013413363305669119212212682383217678504095182002331257539108949830780325681883224127012396915676818160760335380568138928966667507562604764059478775225091513337888922026936281521613662826772910928322126316089580125781239750467960228462210757112617842254723904702154831907978351365581777792738307309296076241040107470120822497242027165918203495343269334187130219191757846533193408579068324685930972949829423623730659160376763301910064720437583816942900735874243640384067867784101270038966335750157568637511550854877184864694123868094945297986840421922807796145960200185318531404785046344441979391687142771137387893272300642827856013100651996911505761195776140664433586526603041342270932078348546419609164050288077024040331545183903048255676558070031216188181156631928693897511188564530800601566648091257891357569730043262320497539707589553983554318131564355746799361063349274481521697839241466850818979572462327867131172416596037294289882868290996309901282912200747924243941289304376794490591801143920748458311434767430037087584261689606836484247030110326295561381594143966658767288030587821570861931440555334697740991018692935488445561291788649303132513720255900570144119589946955535648113950689366626124064315057070430403339803366525725012443242825040051989593240270987733459852107978571917291759837489039279514717563324873934747659539044812831974748578001125635690798525709578310249591445108785434619136950933667228859024185607856113620591143466860594507823092465844684923012250636455024430846882021100390280157997182016519064828952320160773861367098005451442340779439892931738973903793993690471541034705810963292767126429420359104030786539126587873441856296198880595085899078033523555957994685026936042891077563570256089039764335327731969577384861448341474429723985803745896570254413187495476061616776672692070516497476609411358821169303322653500754099488669012726304887534451698089571907563038397315171804372982214549924784701011452755473606535054509095371775970989471322018871391428799750782019836047029716678051481834168593750976605593878119034952080660747817429620275074674790164084270109636952997607648735213854623043784924842160122220585667559393385992598348623383510714390964893131915677119996230329277645913272127383827052037236281997878949928381208414562096359295315727751681171750975591056210021178312659528208748282275979803634258000883032346448300474726615468361891734945925678826075091604113168767174503763343226463838314992727100249795497401105794144791615496414266543271455447846310191542593316398067845120713668274980633377276905578316341724781682457242512857721067384990937246002235661481870571041983687162532010129922401532059071476944359477663260807311150354598066407457901320389780696477860238487682610568359201337878786867131899835345307218334371178274466246654520517642838788554097069356131304958507351247650440506524347988502903536726359205560698972325205528184332446395519158692181516131727422703798601833905659638662236078219887586079448565577699026533111857648615017336775299805285217888603947002749857782959950331707229327335606468659949736489050440815348233845409869812016924294905836688241522516033790769515443747806387436124705717197499834592990443958982593924586625936180040062950085684007585361837068398815151083744372109184930555078567630847477828227994923360342091185823507472367033320157810154250269638631534846453052182704442299683292809836394583630567608216165753677741705112018861783147470145194208104663807500780716043674825113269869329636673052909522823568914811676328775508387011681633941232249612838137493887039627180097179675027491046804923072362080386029098886108933316241957843398327244108748882955293981129583089005309729616155371061112090347786804696761392584483109580858032930908506907953663616766255993358937721771045806216535224068115980222288613644691626989433186046863052798847661159397102875616582489874445589735129023999445539776404344223760794835217336831246139677542916828572810143683911469904776710118989951247298058420230391656043677705070824789420069087618254132239729764019218448879055917624362369181421697870533457722587783139782615546641442995342449008578179646263676353121176216484803376035267822134380760720352943387319749753540691225500356481162275443921386953961130473439882783670205814683165656063334555040410538123742833253151349965979517171059778658417728227018129573854708013334067727598284909419723788424750202446122787507118548932101247596728787116661332104551535828281509559114895443894762357888082353262624120533674738493253527293175702049318517825218975166660532365595327387972288668128006969253240261611680350780987537549503969424709764313089315906187865763858163196008521226740765621176973819369407238993967782549961289861706824304780464980834227364928502867144401642091854049521918378290439567611905826655557711832679724675113056633558402750933028672283324324792189471122333942606708490891988488814109383592001796789466569971985881672529855830580826484716561249922761596871650413297434143894051193640031688254150152000640378221415915025678223501339635888204146171724117050730750756187018058116488721719457998931972795280274137532044811417998534234877702861012480079960312507787018297844862541613812190686303046325515019140631026404222787133228988559127468762135168443944973690210945018939124038754027552579640588866556915082700081806554486044033112810891706401249404351358025629351236890791080623670636001885401640540472332949713569963948312166541720907013869699282227765233567904277981234186495016408891426851850108886416713943280600682793425116471793526990997548083816304374222149822249936244349835597083693943599064652378534876431660395962132188213946682324632679191940911587893755084250466655188365020033286051241708470560622601691187715255681699472376346907159104012637609109789796342921517078343971396940513990215324828147306451629605698719688645871991059531628835643029121829598073574480996004902376262221504293491836758959586231496022357716656567824116097393990425493109343990912745934057244325335063768448869602611720586387100861446529651661594028125286942670312693729600585168164137618688783785208965671236255146992605533486954882976036986897749837645963549002343580746304325320162299605183653726598911024352894260870813972920526638517821697378752844268881019945495045206102325446886479933907410291861249334238661287086975307008574743361579006902121872968372374865093430089499800564226271595582703881240818216391191746379066439952475866295418801628304100038639313848170078660980618620160967127638473319808962912448071259554928535732309415496256899836422415348289621971556296513781595915715721383960183175512574540216903563109818263324393739703759481848533758754951112357477861565399848387328590471494707642070273723365388665576976526615514901450002522661470608366763672420134711371191705873389807261598714086803129247638549156207631087320543881048879320344331715209594014725898088101087454289591867118442270087013142871753913439467343041561098658165408467052059625408519780171457471184765197891233129263786596873101511101701182252528650577038359868996275872329742287914632305671893156561542490273440069165154164227747557198562934920491127685405866983659155218472131765965302330196230273444113806770475511618997686340912041155590981230987155597225296775393534848456156788511169556274587913653298614699086849246774502700308064800357575842510848635012384244204847128942467249661884755063066342918174933240136412489787365685133215266922034002861657971710600788046254954047040002136559011530713147139599755326564153569749251750304719838888801119058730205974432003510842970973327152429970054022252897803239082584400194883975920112214662375495411765081017050030325889167545135227441763153931480803175312335816663002840463788188813932689834784757890452044511978483181859435479633019919210590183213627204372815955094063465274888265849152399371478513757439200210589556944356382034300604015671097666155188871997670316437488082350152051574164526075595633540687707316735434306570565236506509867717103085526124111485591158924909991547784239378590330424979178233363344270498503298924428929425674189121706946932321254897725292982889674440716679717412512501770106347178571472952242599739197258784051199808551189303430651981259998170489434995042819667584310623107324450831847081018107702933259075088493149474480488697565275563606173057456618569115018508261122537185781343733753831858657722479897206948166693219216547271420700660877598748869738776302822882962880171405889920876347183603056523156148072089062869206855519569303308072829229239696912366478278947525779176906486563420603180320580392309884011890205611771007245958025410025804557354126882375946344846363755253192404242844313896907057242886927392731119811829479957256920062690392232388718408408870471965493996165235796627247195949771689773364889026245379617195391102781158926553162333719469315794128994694104229706300472192625568193428856935914149516773166581931610284925914582319684053693138569240508752024696042195101638286626391896615733504590676614131306720613013310130958462363054749796198581062522632342129712546680202800734389614253983878440952376501952513119722274898733717472935652805276707804273987265860165543630992594518648603515055729743580799623487149419338199448095709761385707410810146920178380797111030952015372238405855100877796783112112857374470255951406074759252270906284931304586671219453379324628259699714290677170290594749323357951927537823437967224797623093042508734853355254750714327380185303485459394732288824843056545219785909348178952698147942580030243091524894939194252334165442173451293240389906049025098278863802369378005793847274071300391870984311071922300570113693490406172808196287529239730112571312126233537631930022022326874594664190447048345259484519043705923276366559640011158585470528578311837601589862083750143673769781960123395539044049427996790510908318971726910525564713599332274784276062293928441494844778013635439828575344218865002679968545349548619769415857607418013456914264213010003234895259932007302400035612341751427994565656535198788031155210467418193885283186447349237254985754193442799711767531645318221199004579634509243619614491086723385095949894957186841844577387455321556165649764380222817371625883179539187009674183960464521591959893974352360700510580585273307812492364924764394556566789221779610547485534731708791181924794049580519916783650393011878759900031485105364213155052172360422075242175172479789451913355258789888466322346072748932009882994987237628737172994558656897464389059080220670589926487958423850533566531513738851760017600259963070763696921893352694928283718275633191516753185318529818531251063524051825298597775051644061763610048289594533324228967208009743083176563820375952699671842459478618662100257202841182777740298350022218316371322904387648200059486464639924223182531809547941427921971029390140473791841468776299139870161402640170703922844053821814804153890965961085678026276222456091161248310927974812618160778270744831078179114802550743171556434833415913592931086419945536683403867704540844628627604565001354748772627786258833784385970994097125979326542039616951409845990470237126052200629506230549309805395281885827484725028620948541906481200639942511302462888015505851988755586339490396085690985766945871039794605063264252377472045759700880596666220182714394093549947488902422626482946669050463184601089057763615996654157062203330714775321358185988189543616279269540242371130438569409872588141743273303292397867549724987857706113960911705528371843305049645462024177408354838659272458568923537718916878281011665685438798688079304107983105839855831571473643702360590618224476740992792544220674935959362313611038271794383973751229102801467214023419913775312154149836341195646984236046549268077290980554065823014624509505629734067310755391372007574379998045533799173318232414676995754627734571146205914661790828970566762224120662256116225201670166871360832617857920407796091064296981432675642134303086799139997500682803703127433598418445350096251855026008956525838456359451185558140045796588508764031165401255278658206781674431401118276199564660768440704779351974152952152405761736020801876304533262268343443847141119637583112544532703724281035086779501615965873470806419506183484604180920124634855930005183458824174681843062885151098419600715122675694424964095696509133155438876605145025267240453790279131047171923223739464185644369910716291174124573803237616573518021222201691591987135022940004775352228224844848872280701969654620581685962528876685065448621042316512572796875144189737250084662950582053915432910922340190220239538536328097898690397312859444229304779261040747909729840197086335684227552731324455923021148325409725493544931374758764177241705909431369015795964683457880488425983391602645049424250491378826756523803996912045528142062849322941150512410686125671033680440325066036738694915167755610374849086634862804824310561408877242249345324032826756888511325167580222416660232930916652872478855953817104831893790947545260714094807209620458919772884314113711298276786853375156178689222022498132100910607023377472173174450900133604724565820278884871723682236560821748214836059373866703004060408501709179284735312008447238819093924769008662737250429773702126140753125126569274338786110155058117947560523300366027469687230698670441291195386146092374329657554942382454725622159995650207072042170982259750959010792078455444377732452693349354873286893305578146910701834865215449566996065505886390731727675275011070932246164713473134577389689545313852820227718571194950542191700302245474421540108187451128140736683247929184825448062017705374681049438700254418789758826538258889170364484842628650622324783307311281052102797822080950779890333110967471251663571307652301396716139916213640128565294274492875417860584084790325061149372897037348046650185961353334737716334473425120808151804736019743018499335114226875389403714621039722873307192137453765140118193951376605122498843633738039081978970908091729462933135152234591332226932072742905560638473565545964059870353997763472562957437870718984189146899222523124475368950801472912675533377869055187472525329559172850980830118195205088493517556795418681484193385599472884402926034869821068255621066447421487842759801907862425322009079379909899430143429530794537782439367450848180264372660950950818314324477855226540570171178366115627438753034815425754880939925269663770036791109120882236964248999689674612755977866347401190410094547319538646301834283074706256689650321184840615477197263121599416439819569374125886974840708342522501673348938341531247074910169932803877419093583346182725471373059530916858493698802972209433033017909714253108091471989368042352237771934835215194177901551376014927587895135261525719971511735631136750314869397617770844288217198964588357661877693680832827517940795076743467502231140481660305116098090304729806055326673942780888692186967159417782596915114439909301256880905333628717933487938452060828776369906883155086525350277554285471968331180006145475636649149862222606308159872830024324617363476319544886633724488609309222359553261298562018017993216300020661265528432034911738952472846837728659440809598881574161758099467524529238703132870808766564782193816379483429990431803769757838991128295441375568001718985022174969290853621546811112927560781803108579820769843354453310425934297613490106521678845979311459103198374870862759009640508086717572479401062544568759087804056972430277237644117204418033137421130977344033540438929092126889478923913648821305764545038831005535008760014530669631756597210131108285411524260329272532135980194667032469536132077482633029021897662938978429636352412235908031818340380964347566165198670936434040084171343752595195543284914960031941066665215776594349993903397488929649871964025737432430154061119945563379925593446460568534378615647617117070955155586425045017626436718716249964376953387374868710459536871669334726764246039711809522082257005052796891688051054840841538165521928797050958240628053542142551419587443434856873632173162711832895124767002570943720406499346639234828735841201188798458779607017015685322912036766896699365812851428085214899744172825963980618039811098097508552536415613277150725875060592905277350980550765863008565930659346867217978709383147938397605705617137013791495557889813385100489160539853887462216032193746430442391406526311079666139032372886948265874027092865313354568316538257378157139705192149345486132644077913795926961866320337789003977022915255327732805950561486822352477224930447754632209906173876208094272609921631044522156506805626133134245023492864633708802917937300413242955786797229579373103424211416801519838075000294648289486659617247464073554894647375638863294882876331994445106915215246942433535664798567514971697312395682518224817030063726622178579241109269724608987727679675286057060480938155580893348101267363395052174722599297038003702271945402571907663049989696587898662824187939085846982464295114546109497038440469897638232457846773559814548001088837216142607026246412428638076371511830754108454250473847310730391483587998209407389040916371529943723130638980946023567226671841967524689699243052196404575641584325340511121805170032667561916226717952544012703182710766980942352493791064163389787026908447675204849484064992448885800484838841559163076226248331923865061994439817240975386507312704275528789778243505890088450258893217445219475704256003765554770866810946324554120596848152724506228506341480150534412768283821658286067884324628568408863595028415600234791781206108964834914386258949993553015450582971180196560154987915446541495716391957705014615948031872917730066291524451551677472642199600638376977461434582158421220784958254596309126125863536556424301900047247078484743138572952761119717750321237412843291568043335234053768390340878050326172891424350576548888900839661592027742271616623806635964820897273039774718396412360579228165633628097981633660842419427317802197130660384251055322090574169678576992572128218807219686956583662478854257639499744575009301142660128423525146959773244753039445003241304677489693039243879177911064363058041126496607767000943896797261727315849410637735760685805891489458423340570581501578540519269312407787190481786504517953787564188323209658079445150421234404171189885599363656834752268829326672876109163708587104057450059661721809319949062571811268101144187992503852336936987981427873253094819320240149112880301231380471690666089955802037805633394684318540877570827739500853494643993600965040424761126710058808882054705928751693619169839089014348133028671985642452331499822876786197310831348599653988015003714104614628656653129562391290843903394790336723439349662780562573824088353290836298458322028114956167574327112419142979119580555189096793735056211984057664818041193360903074292398618782782630119699939085844985911822096918121084656726192983679022583051248370169850642542755152730119475210441183339649253551733660927977063942584087821661840608193120843714206655707198867120664460604989545997244483221810372441890538907952673373048889823292419685977574261130884306110865244391932377326521108846868501034020550249489555698997813919607577025306373982900749990351516520394931769930306053186843048740632696787258708420116092330422239039447070643192056130095833934289014573786180729756322754038781832625452560764866860720870531060327811163147258485795573029816738814273507874569310457679997015143314854229429591148417730546846256829074652205575679698866583455291063503023905197357379139212415784737340392439106125416629063390985677148262853996131386177815278965856196585812426847204798876971772477473917122548435165665277238429608501314016919341744310389369642185023752535426213139961914224435024138376050435549875721082675312845568146774531735161753354023591084768790376619490819935032946618549540060038894816127817240107364243314570061987333249936203406820217577720237483062331209750417540118267337175034551203349599678476994373613892968687603907844279489569716322566953664908319338122707187265635265747017541196484707090742278096426881933208193550711215593632661154571677601273785883764679394252431660190719151222816691660547511514620396476941502057313612192112065480881901614356282734451556721829138362349827099502667909631447413887336120243239053076891941820294407686560722887821736411546662362814394876758188685103128268025294221869112006919824484271388924317435193631703363143076969983080546313025376472708713091941455547413417023288345221666468033793892178737074586969369219962613750833117574824161735287628968581437572654062606051141074466283608223556688479095027223703098051405602098101495025402865086795073815885169763396783128033935397845177189855567741861192279101760172690839473218780058520507418133262041252182579244739937992561150511735372591186148231123032809274603644103926019443859333534730913315843842079524268788030891840148311424674283070871820518099752825865629642123855761861910101516890204532816225542788920482965719180382430924141004545516264776046690431785385795453559330138267802338584861775790002301291725580409782022914640070816762556290058210180565157379775280720859423583302075906031330838028365255287257757984266521133504956155383949174960589914634896418419234305273386486038425005828953347960944713029117339303635076996595546709087547753472614608104460368792177195652469005515723854962153892207848194821545969165648235280245524536318863686815251968592586851370452115234799923911211321879120056406151773534505993944189892148648491577446617629299613054774458014853672802511076628556879355221594510619079027509476450711149277329235853764747329331066549400788974734988122936164414147751871414381063628036482405463770215323039647217397701220430229617669696693082671673103630489869832083758674515897779482545888679003676888751087947273239484085442348978184550898138802718414949529793199874638880755539771087510692023575831466635106337797997136068519309099497559281599366687569102165687106013828817143812610791393230098822994019310737678284533393172163324434926602650503334397014734033925602263000763529116975048791385656685931609090047387601292852431523223575641648427580622207475200958463527240554132012284225621193492595301915349942517707217002863673584056699868437542396527840629271049333226456404664380517751086466088140816891790956109665657272033644655008295659381644969129457431183997955036948454939791993639885339736945254442055757277634013904933758530546380208256180997887780638868208485441910586137686592538046156778672545739014604436722511693710454221310245347596376651334184934430260774567230419834106216816271965424215382950574968441340678588370797343301689422016679940253647282578784253927059660348864435867511281730041507352042171485998004072448477572519204622279555828147412042285782077244019585914441609193395329172844376795875620992684195415042222241309803842300342717773987945346093002035356742254066581331317871281455171598573565665665798674558011516717629157699335307622201482197305247950071334907822506289157330238652597441233016869661802481517310985708269133118706897322157839762759421024939712779854321054454464414803501239096629602248787239025439610072952168889580324846676215016742763426001827636000251132969183477395510844910484406036953738576100822176446425005019395709505108894667796771986797760862813259624856551603110081327617233974495809189266640389789385717845669887420521799313618645241007426255101624632765560151660873220094311418660848525244146888391776536650186006705080057768278400847419758878959388784742632436094467842169344859826852482246787950169339127314863750322637995467542368986024043958118591666881754132865647495679222946133698622703693021176412307294420621031298660525181301955116067727391887464785502829684439188841581734996292495732877305896102193577054367507614545679484481020134518851112578101301073077838495810849172447559577822236877473479416498099888891972837153368111528848058268867575647237039588885665666381126829309387147650300092437085244882869064594600241533029224067082341253056531994476775051495360308893379666307536187001834751199341157007804496525446518775596617932040636645426291932283521487455411942134223885758168472368360270385897972695806657661113404031450171125834952695282173234622347211671589974361191387619255351888308265006630112428692559771256083587362427689061599693574953022221400757396424814143208189149444856696609876834703382986895827504495712700056491406840417136519675292383245413663142478940235969181227981590310755581948772101753509105739784513085801982009797849108468227704523674666267753741296676790438277432657945426867430511977491209145068245608714932936546147497201350004906635800378081055178579910079415352602562654511925192992004536554535668364441330019289592370513908889311872885104184820300748700984347277912421463360109706218117816476964481594380147792782715263915315971463022945125505293390683281156276160149046488995797922998130915977536226775986522395450571667935670774267981534622790522745166484934466042889093705613538873385662197946147413803494074220212366816501607961760643109287320134528024019863070386336241923394535106078600402468616215464221395612097276763087486362126555569218233199421831334288475310185340128713523435255659915171667816175858833495404370605821054334917554349104129823514034070298500498541827425128802277436821174621207577000544024052869587965572266992301119587576708711251113051947071823800468470484799942432010074654036413617263844710812762798477722576145541791410491469251826129944556288908888773110192575271853172968628275430278321708077170905723556093362201428535362241200091352829271081865549696021983868998645056201748623109668870907784573549845660837604758227277302753571546132844748616198285832187026081656144741593847445540921350646761964693302339053893149874130578209500054860539236670843872374453467853310112682920686726552145019003215051912129313814497242956429715368687875980653216461716070984762871057050429677012528870515723307368335101001741424550251815722385870604955508926507668376932273159749797246337027447702295590695247492810598488880262314598539715717848101679504993836077534217480099955572725673358761197002295245503729367041364089817340404530165584295099210606655307685222592750890090975625157669773126856929471156018254207015214613925027843146890325404305755887445516539825350087392736409551365625093408453868152278886568385666911583623440656501056031142128524766802585508705380340106269498039781282927616697522273386129152539232405447521492222649253139775606164936677022152826500130565911908937047968985054846721870156082835986616748723294813741849232778577309770718562080736631482882448797406641603714847440517174695365507677364083249178659707660248488638790256929136603897479737485085152060377090347713056161676158295552244145245001641226884775242491571374175541782030883762449464581053557361814073297929135858724149910228495860404207270459955935260612251220190825056549264717913201387968459576672002125846700159473061829690904466751917267599643473215092378522437644204715709504927237581668668398158683217756053907904564686874261276512511673621984959809686920972445983308725397494319251290534456467769316041560434059765964781183418909130199734238872927864480883065327305246558487602763151103719580978307879677148996647298826951436246545153096538412772090560963892219832227625258868675666054788287928265363012986681384164051903535637788517881283781175987256489010657298556983876248527418285759200385156550873092294425519759271150224904765022635278238279661480811868031840618433301762856869549519377210601439933869146857890702482170348102623426645385405362184776899433916157435770749101174294127121062610714746523007849788899252382627714503103006831165617815555971495589404136868683500794772683245635738190364090479868952092518934387324363562738967687669297501906852429920344221352300245715842907188263976463959160185050802625859487181299478831154697397423725294391343489432475656308025405903869109373659128598704657122182756568764632430798626976499982060005299407022479689064473928931540612737970038255933060028820263679452172614652017373536783043556325682132257422775051136484106119326207744366531007156079064525550772290387471076307905516839317124586111218901417509866569697237939832437499732566450724710263820373382389164420981623080328223881411778524584006965358429341463585114447092732414320456405354956156165524674645666371705147234188465561225311598555174694575530209748283331778646246982998124652423199447696716248940123676744232855393421190270996166102693613522835448354430587658737285188362723031406096484074493836178689272013954903186329591846205352434348429595250988153615015092913013572382219232836341369837680159926394970789241351398923020171231140701368210489028922348666931986852976707331347377985934509482184012695131520185229694446957175895047878073654941108333432101754584193138317979327401982883171455644239015628289140000464755033537529685179653429596505037987544341704644311687142431485570562025587840094205815895708245782212436577579194563989313140996030851139568541890284652161490292286502155729782661625082128755457741409341138210375002101415325629001179909334478220590297199768859002438595394994618050804890826823836806668539031565659143841833235605766264172409845566029327938225157110755097053053212415036310293359135877660898380634014125411740563153531047056652451850482499558912347223756012602807063232891957800208950650656107384062452228104443865811737501550797437501680340370595123362425491821241064921540682210249327654039291001479175587892512400622927879887978164339511836828108709691541952927191665040849732605089942393758357338218135712560340126206216805902873049664520859807724103306423168432616396286977735102427996686143628439567588181697128054218054663317739773959785959583866554284347607308080475133039493607648921336531386613019935422124448862599301109349872646597582054290259677281250133796663754382263364673740723475221823105792269838278138624751600024915378063373488371985712432459876145314793050640606474957338858115528184366771689678303374243515601526154661803848373340764775603609364878545006311550704182383555653870974094614603847418802948728747337605824551382389926615650269142248518179380589416702092007308407276824860605525307811582511139467509407830407688601802654753511469575667538569731122861581236917961371977530184926728522547996457793669325977398759754473977985661506937078433839397988967180716372150864279072465697738436095264289353929271346214780912405248075287466585956084965817252418854846533238003000622244137211887800027969108369491899051641251251689107571457580297254940456008748643193830129515988015524266550027643411333251862309658281993731614428157181178549145131952138168037255991382855799011829825768611960436009365468512645074018981531347184129741931514901106281211400590836882282840740725118064363104677564851625314813234586827051491847394266735316163521952688312500098926458454114615677408744159836445561098643263966176298317420037721154449969739867326226157933016564669804171301827993511538344201597815628706538240548576190349271212998061012091440231718068905554168021808754833431695929211665807815955999143843519484724926482345712786567053108845164368620478380157841223943548311766084505405015795503220031589743165500223118735584613261149198421478515202531727254796358495526746198884074887841498833939230228388699976831736337437682188246652544730048030737983111424818529317994988303853865861015810887492110876522903289610813239516865590143161272147646824609689137305354282649353096163289541048375846119859768432782507785390959953988996970617893619210410752396732032466877778267464329212960745265456422502565082737132953905757627417436719117039608352699277880199010444612056630350869816598956440802794752852221566499995458069019117567179443955551170731174578697574063331232226946442604409689602556288809269622423391019389258004514156548272416597220719270348221357532844608181287803805874124215022487563423914199014503735874813083936668191547899884576636515350720017848778476493538303787999399020523165450419120754333366911168696192510990866484579244204317444563218697958180103410678826971940495997491141400310324630390402188332306608273553294153012798413541169842597419888239173360828291667940797328682961971567682203393279838872041117388647907771757293560189161918550587885912490868558665831209556393265518268837121965189560074503947292055299088021864088896632446809448522705602755410058700901244676406597964853203022797376852020919661259786794924209076925661920288797870746368761418842830184992932481158978639513158220977571366928895921472520665711806574730907984056041428586073567116420119090919728917297556005880263001975688027860254575440384620881263851682809860170014376194969068573139060245928185151067394589438829637532358465012796028228853014907846325651917741275868884828816964899651128099854453753722191507643677686616707922132736075344629796213114889009331873548530856582790485501922654875422956038333898817029038636562541462899723678189537354755192890831687733266124824709455449874144856654090995925167599634162724529573931935472718454183056262264000195302163751553065062577713760625930617838291689000186805815556333499288171914931840978866781267919975281098205952888513398266991447958058104842690376778985438676275365577940476677039142355631690335725782607282573151853314655954163440175773059031029122422863142021581601660303718884141263387466686358815701604444764685051047193030045153301095916965335911888050568296139666247636285298506649539792408403653185601597074461723087413966937118492765799112048370541041538986724498904271113196398363946133078576702462607673917280119661533315145715340188894118835174955392304520471515439368561007765693597980838003052887712203022056436754503455276610886895833757581011802266525849311587419139150227073142452092770226089475215504886799956600088335357122920136093748777875611978801726451347843713070925417092175238668623318992904720614772421342938486654513603583098139814143599568699231908398920497032963702846177117870788016106121814377473997102034974851754752221690844603435783590854524268064123126096576409366922760488855253698359380894936935541584176996640748521773914912169237561427962652439611996152097859862021219305008075198668000112581371700226968401847526123087690013054984104403690735260303291279164645287135361574506177085774831462360830398091339662606303048911930950154335255355761570196197052612594573172840240420076087807932986212250129404029280633978377682386729611124682106037812772137425316382847063112494189004377205366241446029180104477656199870862105662883712749284753719987704750541710517012622722615886006435881820482920721556518814720765700672246170314675334681344614773246482506188732025597881320251359801900674475970622284627836256346574555553162745040141425038068963872712450037663701376311796153488094400451955253186907815539039744068089869242271974207219594758176023028780054332229697794869441988802669376920459659549327585612254524060748975188195657235163755715041295786629552930779964697906610747898867264638380390613484796486663439473881686962350501150156534283007372096415747775900153448865106210277746506872341177873168396795514344400658945451293880943093322041872673769636247698614429197448703392001574128287103913565788009630121634516116797892894904731251020835386717107402991536175230908507571470108368922756175581721732315362132845211663551090348896923879850671815154946715401764745007006671825278554748484312984396228303545652243225912800756569513928737771842898301125350151786072862491180507793202109556247849853167582208541353827188456043634949048510885674103223346649956919596713864440518752797738858006100908277162670900576689243596969804835703080136196745684231661373892504849098673538957572660722697739269160767070681658828566957823873381448348448578231211878391455413105196488039331167352260660664173373072566670150646679930252741446105123185786784406301456531176052430312335509214409571731827354311699856916980632332947865243509787510767555148746045035925034026369754096220162264257223208799307083791711634862804007349916413025382902254388723619472455981575770469364976275965313713393343579137077412976061450642417991480393367642068530922716629062459724998337144395133710222051293928595953477268847803520136959485260776764063569127726204983001213914335380304441450708543774410747715616128233404286632255815035358348023947390045592149676709312329566312578831219105454577435694565510168370394517797748365874479321819182376900564163700149940684066789872342196555667789306747890769927520644785114633039159991979906524523967493313270208163611634857652923288990068304744879986221236655361987436428193805808869595393741871917151419508174475088778245412087466785286976628411181806249522589791292311428183694467315150588396436184105684893142607967561220113205967610434798734324727581444358339192586178387480925888139584443834192671927334396490092729516389515282399466704396231788712119155060554554977464357541854629562938482010679012505046806855926725432480719369226436289276126803987057312541783176185958601067302962255096764103023012065091899560553636559722033305778933850416576946591089825229158030548977331362626358872204146232860907645535994311685818115256406941550171044181976969274712968890715496586363142591576577041505803168753498181234293569692566992716830350280301624214399878757770908853783138928136104508317256521772025549966079299827911220289809960396701858722163568192627935457387861166532300247395471133227348587464516530865857504464018638654115474308350045397761797244071261984105993479392942447638422525588423053386740425733216775540145903160328382810465943157659699656372854210364383127696329239184259201863093068288488128156175401944271863796512387902182868333017189548346803812156927248327596121470604584718383834817163404505365787676735334416765142781008098935656329720919842032350812699395439268324336253220269276947538903798729869608699516247233700598350872379160216735755447323044429767055554423052294207671978237730223662759912016357215808740497827119924940640154975618627164042571700874026068229900568683775044625319998549892989783890083088803823852358102391853571382496192051799395073628656667221918840509844799234105248799508385273593336235215623537853273280253800481756652187258855803094254001771043767887932940112098525340790972421238820722056338785109740139874539507701683626310897147587018461826522734460710158964016751982550279381045990786514913970213152317885767684741244054286110073625399637205587796101091493616673260741508600216848663940321453897597788368139968448546888785334824920590655478636499176434010501324339839347754807970920114629030204595342563210431435499139532596529933714405056201131349531856521608888606036153023102718139649235620689722319904134716550520275784087740581238830661651701008149273968722194290691631359321251245559577627389603788365014962466952159219058728398215175152424971428353896843662548878045705610352222637197881269964092556749262597041478326016620061463779323045070281796424915323458969935805472459348576851386955395934557927624133167810460519021028046994991878527702591663368797982098926275922458195067946461041015493401071238912320684743888136765459740834544430839176835667246048296703225587911842987902351437243061031509789155884856817443234838656153819595423594583563420782001801755495331427031455402189820484894806673136884139592486919310245575953975727557453815879890575484718940905956623499023764838801060959156293784834436011751441941025425606965302429082678408227111375957136315472378744220740443297238939340418324905090777738171037522210253723073575752115397739041158445420661994062200865893797527924712577195533037715681842973832371511535800999885129602807742889868471228819007570808208599979032556234931076932591331421852056151149734908327558998060533597938682395480370823689010329209502785751184718672276303291912239925238061171006177982114571435058421021871709552668534594653399530230688087387329884019212447419860330584439914395492158990885429524670180863663927532325596366736954869745800885444487108819715043508227775902127330397300966496588719053793537421323650763040118054661693625203361362204087468297390050235652255395789740285553605928253186751547386853491981352503090697912580047752484617374351913518427268088125190174743230568087020204031424475005342296980283696438485664894810441782015194665886120202128293230614863390889208432737529702180356424756531548998328423144940699670597919073402007270861055072094177361231158578261661918539793851487113552205152720766642172330556636196631803452457972322111624743483058765326839392926031779450062066848475400534994864424326702495145105543775739297599746868957295020869309811305670243631537894056182352007549276974188217236766294140257298219925748943857786321199588927494964962017398833251352293250575307810431580246942951036951937308890830909650192582080272580117461626143921633318831248613180707109183044207271435414780851107128133301594667855119168642171260510552877277446318082212085998302967346949131258694946726192308574012087444410182547225647107029912273368227608829566516057905696141852398890134160240353415568196274719542155524175499975609511441144996060707998590053138702358649093093446424540745071700978455356907358165964770693286515530354358062846229876345793152900641580045134225612660756048057576948957883593599403749900650863871925232528114712474145915524638435647129928245062489534413079769137719565964146664778166171267999245682780048194405002773375923520139902487968196864038529267367895520869552540765103403731283269075718826447349833248578685532676827516952790660932775018465541077743705607564000845622759225548077037804183815074933149863404416614640304602140483824870842444294675688506216206331437398422379120380359199368628686687633696860781871312371652366624320948742665853801039901677076890629383838381853757592120467094995797126910627196975434601678563574077621913396478380707781896530910146111753678876925249210248046095350649930528907251794721338528534784015715106706131610303246712363638487750247417703648743979390648422308061855635159845458595976249013488849816339201684641227921204074776185867021614775678007685873526136459248103440700638345475655529731047558421916974320600313863507925493934009059891253392854576185917148650785582094234723676469015588894775720959953852381835330976869211241705318022798299484576530781689804107853267181535091230118565110708785644371277747918487460765835586327366589950002687893803419757508051997872336845151827337186648158703010759899732966201698890209299154625846879458712931420324107641606576085445060979493991406008323362913158985078429091924353746678231598858902902403754604074638734443507692541811181155106308729724518766039205641079252068772992255416345459021420834656226685433039845322306675230854304380536903148035274509276356092498382099740931325672235207163179950939474147338620008774284096728274435416118581916639483900015505129673179015824542241982326083220003223028178768303627989182794731808616444440280354869783462235875991661132601268283382410596047377521664440797627735781094644069735450427370035848952677328231328842077927055915659982990607221798927043372022562822132006301754205069215544053942047341263785875946518307376785180545639138308709105284907186189287495831530259640425535969978168852315111717609670458975681883275033320894828456975108532743200610326224805310987360196424996551798606004995435632636626931177039960675988557081151678802119429992396516493424869810860460157004298717076513432366108964170613105502417209249748343858024119323368768940427040816653231287993273643497321358100896975376664084486095546495068641891438476781545515043281467277157084776919019145918453051083337328878303709802917781073221031623936346698028146258782160910225364851295500859417660339516237353832784289735277388645585042705083003993878079003620343614768391703163070101394525885654043809285258450150794254094437964832685941514764320185204863543970159644769923275261206624888523970751130594236539591436862395982305227649300583041452389232590884598216975808613577751991153733163361900406016092010127612210124111477931804222131911599645803140760805351870856195961347845426147916673409976916115898662403156788667037689328950209455594926973461266627231800462595170255152763991457983031661612723578221265426678932878368970901183641307497430898297139956085210969332526603531197809249812580663615720017996032989764561969148667200018669466130513160420074442911902683104807936927717975075126206557570164553419316031183216146147119348357872438394224945915316966817693387362549101058637480962724848377399935019856383360700981309502461376572738699301662471751648543206622418913457473828539628000548432318403589399629072487094001263879414315898758918584154855710434579159018755131301138914437878053308209850875304217299649485456817420043845242240804550277748371482440319207162316313411124316981599551701620043964952692005634575707483597402433650315343286572211725098696827999830726272215432034080883239088237225239738790844885211974521357245150091046379843324197143187422453874580304997937970709633919972995092167352602503647931663060881608684718378137102637350349669784604781069085245699231647972357284513753687412165952618839497067079554769052840195225039510431041014679909774976765096104550204923988284318672304578549915731254275796789896477418433882717763886157671701144416654791854312099246416868023913366574082705925454633191516687711589536189189344905315542008503373824970359580879714887017677814248319637802267628927564876106333176860584663144716908921957679671416519407755819301760281088144476375485318537092182332232945392236210672439461311984491056142750200950935837791378390453197850725999628922309097871773250144332036995060048481260095426075832870073767532624162682235714372189353085756123011156163124629470337125863867592804196380473792655971096645320291560459335287580825029012390318826503794699946264676550963417322730153967272004718300292441873666096964916478374902381157164184902381661193956500086111583246868986411537687926076525050223015181557282919568229480581301439888163937704218680911686888188087689109052517425654202884823372219134984268162526296684947273750021102074194144560314641628902658102431925739225404001246242472691354216321825879607155132722933225378530921418828716224288933108309483055521017262197247502153777058158090861089676077074486137133847734501081180614638726226821909564705634154034857628201877226370449097289016179373879872563463538276335582049903284032859979191350010305046928462499936985472258985143908079591890025152269175623991898761358721606750148886685020721837273633676280075738703802645800359131121839429944261670920994163124653079932935080521191273744708786212679868300675682524015286224232599940454901742672339494019274310872056950289815305442163720860331026790271290233466200907850291913387449413593365843851420181114146042239824845464656966064637896933511546371858357333090346328680776170736438575299162298050104750426855543630531462731631291491273802925485950109165203197676601695644024109873201592160103008551524593170135162758520308604047631463115964460235723965565927079186503849214788751048887959910731354674309808470070552525878667575769308362704718840503998473308407252704465057771254615268379146215555620311377886382223210415914211533445894240120027417388254195080610327916229288147857181328842012785842095764244464975736988999804960328326352975127654611257394570184061031025410173520024766965076939170341740681672809213307881382279813777318817475053109992841788118560981708699947254187606564456437482476407561693567244418486780493965019111181092437209190528015023315156256147368730302691605875794862178636560484550226913392755139640602581389878030972975736488637596340373832480881233806937728126847097946276417594543375609452333808260846023421170232527193036457116433438855239905307116777917373508426484341544097774998302353688458107946671187128008805848999641632281950080481291043207187404676601896943394248474783608335672136717565046196483948083998161454893594848959359530816075413172002947553320165837803286183415481713037579256152680499530588707002550685499187738263988102136304105464835740341822166245419736619351541220044108215776713447976948141727709318446312882447022926096816396548960257283864573755979845545612530645570827966323338198512634179483466575509970886126727370487897004271403246494476132174973704852973169558894552203136476415210289320981141459430466247971240733295379998356960115122167856671302888701282212909556824142425446279975627994603695790027772655528410443012745234034616962357425144172300022079512380022229677918246535955598072571329085723261159156309579549853946824697932107190522504183935838024551819773384253689803316787427869185139678071405147600335083509754404446977610407482913404863485519799471878070271368313571355236584057055673753118450966883229520930051506425117961747002972646894904268963186681015610284350262046414962466229748348984118072988391202024001525417444751895868961641749947397216846873274408628246691504323965573154269131075394030026397004956845210760284824783884986519129906908053769809994110925062020128280277014173967470233565697941390246156467367457664323588990327106415832533045485050706874448897354784882391298307040257851410642667535034419531059796169264226706430246038754440742404970700301379960389749750509908984957827717820692451217984993121731833816331197004890513388596314896689248662072069836994458972729000112222753422486264422114840134487416688392508672489581689440641823962612067307640974564862014476973133233808412812833334373720783276662332804255688767495183751015390597684772602655476073756258284863362911511739229351094555416563523974887703506937805647385802039157845895120383112341743643471783056579321641184477605822706980919994192218265993693155864321465674240830043302299127936810057665981992475355937273698526299516310325926934128833255440059114018010546936120724170060492661752292067219665202124061904767795329114343741061358403467151974645754048261620621646032353074351944300253127671670427446277023379567205929957608015699847112862472493161915577158971079428729401178006110483818296064401653926546791197110391434647822652332497404965499188961627040907563393737504101368979305582930207306426868496228844258623603852685787492285693469024867587215486340304337075089214032570322050734496636957430517727538666860894903822210198790994586807313712265428492547753817685032182515967738809322376096589514918906006872372034659754658886229021761952028269233881151334933311873709086505017145631779230597300224983195362092337729353166760988370578695104102555536767521932733050545270876295405811165479241896891628051313642358186104258592427332471786783446607522330353223887874715743464918169053820170590532411881990931729316972412321545552663468908092802195854670825230004177350159565087233094610046178791460598807619423724113650485784397432872806891174306141388813804987806798617498187249262730419798878297198387521483357862444298667606961713376551046070571421501080394503521547352343260272167127798921188783007233277068641565003935411169544788828349276764989149793852833933339710644789006762543037868302705850101536063055981645943778817300890852247845191846662156780495123061014841812232910897336079016337789230299584138103186085488338031053649240304706886062974364399322382308108742542847911558416851793553917078301505097009343959786828264555108067476596148736996984452409292799219971613502878379601099511325668433097046945225677281089725242918782696151913631200103713935684824826411543832612932340605458539927016960525913163179230999705149417238132872187613951611278669946698709500159516283925940204950916653329525354521393683962104917278158726327649985020121311800222993687099402443077299361108858735883100736663983247453291143163218283903764423197948715914980439206532231260534263398292526711343642930344548338047712915727807890031233448586377013301292190402883832424389622196799672755825213282609824504086123301824247835966987869999923979227020758226073017567334412148457820322374266451702396176663109223473905925288084578656947071963031254242896039741065052848879548353823768101399107153995728610659219647387777415746711554542245923842172074972449103880833599298196888319022208304675659765476947147857534854529546799847907730331018720884683586065968873423844694713370564399301522539611571046257472200855836593265479233445569199667257823973296687223346453008039134441976291881708435542838839435247181274596086134610752615369390249061102963702181382575311031062783336352527886492200125177904761025327587615420639848297549068713327704081400364626348549596617403235472974256771893303112932236770174830723045466435660043992009249858086365038521145033997124056873017471670338460998815040063758876242492866055261500387383828136312567523579212166055906611949962805602306598570218070265946372201653135075451422053191453309563496342876162152866704558168937596747680221980428301092479469966929670034160448592383934412589958148740480156613042572123919792366055436766933356592980253246552525803090660889991921672075746432069311786407961597538851434804530946418390038083139474797504532689262914168657914877453614376223687106141530929386380684438308603726798356747881565401802364978432766134774389162186639356922882453799305997420663844225538098877596868341633563057529909988251953788290501028954254940632285733774045563720465884310352995443561915764636350154633019464523020489981149992602832072185958610154284920236395795502940734183784361473055637234575815343395638616946920672468579869775486388078722329919072993347113379628543508033571093778117221266675517443311477014015846728740608244466461786967869502814350274743201640820123680570520583478538781470453910371161433888647897808769378019323863293073385194770488126545583441747289031108847268600307552218145061344902843438527423770952730162009926784168868211973922155442901572779739532036306669597161904297105152355639535932208798896074309387352354038607091324943892923020756591816379297453065959059821629847961619492107616929597032983179331389415669583792009169416679722385682268272169919723371672870562475961616306481409316475284346328697132664934506444798799913398833737207406954244541126894608196200075886427475966192641355422706983576068484612963798495202113303084823906648790915319872313980004529819443918025894533476582522485542170413438788377423720499652814374970003558276560143222911749483984815615275707872352210298088667156455547019744792623444420068436117084092247064081536273168396252920081517490335251222072125596179501515974896915178638687488445327040738429308584635311826960976299979907491686049305557331644589037924721390451780711006612468979441083750706099147506474969670371354801084025196592268222772100215348627462184936164501461991606949400002741824824476652019144527057897913051746157307760165255892280509506026368624593213694252538451065794288090699686978271930215607908782280725448502813433336781646069857262495772842284798520403516565268393739515738425188537435261847096479827153857561730207536005596173329534507453774593325492445621942462743765699360523870720384644732466914368744017329735962889395343896402045111196927985408224518085035637096340371511093585307466382610894679642788231301087367641965728839605525441950759645561820802862298515577012272880421235524558041559369216637126854881380859884201576297769347203280969876402350068864981922572986130473532387845936651133104020943813542057523866335106350765826245136104576002568578254601041171298480833005634907630699847259651562729344160070384590011243171149055863816680925514380130660667869853469790983824064814157895894119578240997882257825731726594296706626606100672031108304359576686320167209772998407110694929047587132224194991166006379695121435465214240680740963210620249252126879863530075120660464395548144760790054338380539420623816925093307564488720809737650332180349155625685730335766970423367979558345431381689686619027591855550364529867469307794394424782372188962435691933402319191380484137674218120227645837808342967248386010335251272183004780775862196138920632267767326669276910710277851778554621748523548755525449580603587176921734229201305181133708934613242999707339658499659575679712756767045204019449705872056611197789447812788855818425953365615057299777114069120753249124570510258474601127464375825953999856265764651110590741264966617887167971154296028430126894083084351842784863090015217414490502338800897808312434338590205714200545635383250614204478965875823574019003155044270024226915023335904515376318739685920450408303008776337020509169878026875008859543500888930909432834264939053928215341535495793509735824744655980182088476382325154455152977546560501255593543981050663902742481064621492161222257073720482078380736869574166831251230461427901951445400257229502732266527487357028783941137401603204896234381683001130041642917337855560984337891624790216371903654998565247551961642957104517053744561836925220291106025848523247740337081393498765820103087152334118753339726102697484955730064205609326007092660422513766749081167035610044574805435250239180095954129277270635439459061691813206488999054079492050985759378209937966531212520144771844455668009607519015706037848668761725372633579550513451388715031048356400058538167854978275301244940454135212529706566818246375985808474703968794529266685678292333053819578435004251282377092175196506670773693847521569328842842397784445033179727713211830424879912360421562487894088678707260932933310131822736961272653657675491978762351023220580767635811147436233178300735586106430545986914750318165976664701310000841244012248799801008161437890984438514942046592914827159203290940050807999048185687919043532235597387799708834874594886384339640960022435972396280369335367338535728068792033919913249525313478820099976918768466626215839708210104564800048657541747299416774920352326635957728121714856776927231501964114941939777297358515231393777634035881585707282616278753799324446599518092196560131398450230874155903409948088188397617623281668017574683036468339885785255504315633517429754313854051620558729819007377185252603422512765188408587870093654583323239603816186095583846319116594534958332691228176898802570025128676455023867698203589926821391373648889112149454036579747350227630190984759007707582911064017352455300046498835754347630070227021524559579519207115148154828006539056568749767616067601686475719040945397049124685781742021244638433432025577265758363494477576963703116244769925353342586440926664625878143930469881466721456524899895500252963282781484607599013659160741518565443188636747343645419144876602452793704406920708274060754909575902159645891802896358759440942685268345240312295710715345994159042755099977455103146930753146839275938665169522344720673059030415121312282002250307001492607373536425144129874415087491874243388110681982646775306739756439224622489837805570346622956937556991881971784718798878906175494791409893449821181968469287756651895222760138553583904555196184552305060176450422840013794037215133406076347608541700013193555070493938559298476110794545915982068087168675002781001445131903763278454669999458596277877257487696167508662286590796392321878049231473182401385446401810793185883923878130784289814831050925440491141743823389522838553311197056501299732684031830676732614274389593517889774067407358497659263156282460065488527646741855673758030275014458020076942112328768980580248761477269507551667523822585342238998770863684550480850382187140718871658147140465629273458058849833153252572571069160733765783618670850388246785324176821166598022825137994633681451368351230373021870662401709477278675567594278579085209412102136662060165054943521015894057579271393502466312696816415848097581746717818589243048979419321263281768082144483356330625493454164120948337182981959481355528389906289809948606806873242117980703625088069703639178971492422635688092923111017964904765563583988360097426872379118641154633371782618442499087152990179164956084652454229077681817509165022647688458660293716590566532569928484481836659259960832431124524254281328256517833928101007673810459086723409069329997824254787032813433722837319865334711765445970640456788299248642672534669111546346497645245794270006872607526758090317163618847376043032730290193116715806692722948444392948922809497788537133214648322051964673055935443463527351303986884432526815963012585420287339765096005768328464422205294929799235671483976827824351437023095480272945364597765506095385456587555134995529052812362997387374117931025906585517609065438362859424715302619625856155249286834436814080602606768971324237761718429764392040009302983273610841707382991892327204190280972740211848655818592597750165067367694560536045301840759297212009023089392849557384749996517312367107622949961831823542635732992149210606352318485257184640501941998212639792338595166456185434054975816417135625524798730905361745871177363043617424804101316173071970263896043457738990040864642018600969890563893476576841559643819180630401727584952955931001062163786188271184492627027162894521994709444364448806538789424204833088982657802984572355179577788730579386961314805986525169507177298007555252060808320817155111201455274221079890668053075735449830437101588486766834550857226987989018854280980000084637540681031003976664200693437106639551959691123236815875866442237175208945443078660170184967501535521050238890352544206193089440602505820600475898344886634365382170845382024349071681095194580871596998356697987428481546033614385676336121418360223301940997703287031940507432254754643583763952797512304728578077633361136494764980925123333950485340471109683534861614528087578994435098049003789880740799347362093880286357153576463174836886548632639377467750151425317295595045204537105236664083451027964788834474362064085834749066334156251546276232212063252324962984048236726167227676213770196911216727864936345711402319112257466038784972184876670466762430447582024386627657416731269489399770924831291434791091881180958882354734758778248524894474963450958500511047258136630794814952967466074357546716211482462670123399849890842794566745748627346113165073475212870644399559810638797767849045898251949221169627735302261443143049416786382210830315894810502195298286713223128163406433229765358376698574717556397953678495824479937568558397715267427454849751580310815936633681129844080696668278645518591545210753363499072049382113821092857948867153598069915699754775542885570321255572753530505328720251813507012518998116213205474216333427519625827602222411883048797508009031060503776759771566714392427839252616763237251876560109552885866071791736635898581373022555830028344411281662402088774489645653367698093124027968874563824683166014352121704463099976590933338505681327618837184473054140173205929260122945677137002352284082288311462454390418515583156383354157846715241545893166252975808050431868660105344555459777231476714939100040718255939386136334764204568206907925660424726226347978774318859554790580977128944067584497199868320226272432730079403213668151988498190432218983486165966338881778685956013068976502192481722175566311480205244917197324508456473577165164187355859269454393794769269034772511044666197415686834649295185699783261525139597638936222716946351974313188697517452229324728992585409442825098689782248409752364923330406409005847424970059026804818470972485699123353833117550273816942698108969808422236333295286660215305474209900639835097356901332324317365651894651632142195392061637055158247636144064713594267153424402021986769778841170778485433737919624380235778037128839550310240961483639957141978680690757578021583088816046097023329104748666861546178194126440425719275974074979227907211408299100657891220443100592498968749333455192945887230238345891535038901257769130916641957137438364134037716849776834753877866877877635180238331512887576393914293281988573955658955828123055850310453877230981874886197686701247440501558962412660983238494785254378652651351670684281211030350127361028607140893481880080005636793661752467864223347137038836515251876632219028046174064994497853135798883864572429045622662219831902665984599639317026994763287233923079973088004730677232821137072289993367172300966032866857511336482011605570590817565543609391777531760465757243534015964036977843138763750317007799016287952852756109790762421538532670269838481331705606636620965402959021247930902927758624736551955527552820795806071746317074448113560714176505629818981485913307361143547135838685817950455522104214774061239910322936654664222414618426679315276084433452742153847644567480280043692527515518638222956308845824711559136558094329979120662238892301843944620650809139861251478831235130475261592373018884017247669379637517968100596631120024183248923366487924427710893945257993320506432878867577916989230969497682317917281262319882903205893157114001859216492184740868125296369203861466400233594071713983096911744833616088826656727552436652963413435001178328275702841917501594742369948784633689092265120145255480274470344639872122517578759367620097271852813403550430887234214511334163857360547305864092240173878383900179734426330159446570551849912609132668089559193411449889880817552613440328044785918335124049678491268912701754403099961952387571673377011961656232625819027417832686371034927297947604151128282273396311073140771528726413194210784827822791983091805478531945860211584081262033661526963668281233603841318081308326975601672043471472488020239815668761046549037039086341818231036166376916043852058844371640538803493818383467653418609961820655720692187955484246417916165570441210676620131616145577639268896315966559416041448359824937912107756205670936613566335477514108254505058847654404607222111630728039755012565626322144874731994413013688532095343736451318840453297425403287943696338094197480293467021988819642792397628382606640510269302106097913442251327743135435715896634063100006863456566462001777936926986989644703829654417350515552376470101689391485131735572026958566189776057206360496688683484234018039012622667011083346459238354776201297070398534392851905295163107969299495850079418322425195723268325484883628641179401639822730032168819316442354586998579448365620697593635579354894121086672866113241345540037930303326016241685746123457612729631754784169473133348796126458638403206533576516423153578929081468598778377756333974810449387431317661678414950926950258204593255257183567264163830541608141125499287608342667029550175048990187570953540833355536220134867806852682986167106498752248394124096196033126779202138959162051366951859980922344441793595982176254967347493063083495857757686937955439452942086250349199943741733899816004914833476173186478757397074329433233810717401086165421900511800690618035906060419069933955416169496309412388833033244414618537870483438540900350302952201465329114642742878247503718844381688758931155682468772475865253650287884579233203412818339379694490264315431049999185184374494069847845399645177283273390154363085283792936270911013422461491859555779487344092812610898762779620503709982283548585363671273384022841493609915387069172249719332432378607961989483187819222234900502431359363109622231891583216929208265715994527816217785940882324531567179286964888056567569845831650981575472696496759768041845516569663598716214708609046914583347190006357498004014832692628085837953065157863013169285392213290078635288571576709234268508144390440787388042105219093880016744297252013074302383841354736651209836838165748701915210345201828955732924495620973167055567879222352108076235050959767332364865502010877587489203439717160217729406102517274884448719380457024838022072266430429180078507583657580129464300856520052122481088418983584592926386060862762778846189160874438558147042838772396105983656029525351862266458232963838841316257117666716012764735364044822287187209942183643133050280329971763757923224565639438403092399290415973813102594045621836869635420993240990759328273309396500612836952874127486959851785884668180261017647030440274238925022819536684633905064097089050192585603645445403534677889052854540014998244178762269678323673507497254973150039700377636314575029704538589216194975080168295177981560068713462995117353909286669094982609316839746749784991145685479330453784396346620658081207217829655733970128555690786666119181835639347289191969164564772793789674503907817564600123840900377859510883004006144594555791439916467662030091189918690684007045956247943288162087115274702937702020243003817843207468633635884881809123392334571701513004035500554855438748217473304789355463811282314896478329066040498345354960289670110401207722046822186956460029559637187558701803532149131999795357127582357683077390901079799893518114707083175560665232551222242186700081575494142242546481770188962337532679335512453697359906832410487439216701565228805360438272312963621150317749099457546615557577974642984645186177079869305146302810181869727152866378643796894740829166707690192713180069552013059002259108267459080664928249259966050489904451126836786592279779056375347624281313935925935729040966584730137503288853265513051202444105629115854332695992177901217089040379202724893405077243598212916107029229968923433633898351976883257797671933887199131022963537061647683218692672076526457617483385645641099537101552831326768686329438939465843839730694528652765180989384940851331763743279825465661398922230514675377380570603977414871022524168187424121624862861901607922615114997622745694950613438626379728385627803064556430058336952590216356727466754604178502485602160137398799961795571047434382112682367073572232419937238573349178302256334672616080998697365382518723552295154081612122871583878183176542685182004369154147956847412908901115057760572103187956343662493189332682067577529798405762772112246195649976604966080580127006863176723208276744531856384055248930033328076436709963345877336281989555280754207668858875755465969093225608703842725005445531816713475705107556445603569831487094047523580388858026324828238967465410159765548926496224742082346278577535040931169538869362100504962154288616757784666065901019160397981502047439196260981147385926674843400804267996559099229008904051855136081285902558274257917010667270060921740528482868049155715037566296103512336702712947602543252988247114210839486463059266818657222456230060413248146916407806300332399252497674439190012172644890645926958495557145998109994329968200151941275320671422821316368239127873481191981529200851611158166366838032311836035356618563084325069055899595228657667922972601762247354466341343615553227246014009472643010482211754865928300024098232656979231167834353191432800146108895452673942417578665703647677841617683139449764864302785344820988262279572131051279000170388181703914369952600181621540688954121882454006869011636472360429591510555593312141920296938406260415235289512929488860145958664952209859187987049326008701069815381776318050782433164493738252899759842541688634662125095596467306206516703637283228534425313431635613553194858399648447495329531560462697024103653965139948182825600869138467361060731339559278597563442772441881647939035813121084951791367228907503565036094335620021279351184454367190130835205215614338793700176406935430864669092734715623711146001523199372961136310467521983418138990608700772804900285874685181726157048700155167085210867241423554059936681154349432004356609080233294164631532354487983946952521454267345662662260280778840266189922258578656772670036428728715368538270883438519812183027265285006998318443112960210683681230153447867702151517921655814518074180149105356431881650354470046304729343147247118464063801589150738192057620680402351600660793467318609129378411341964139374152579715352386826830735978276711786576290779119903186222557208603456728667877210358929521328662232580056609709919798782068663829351426686056692874686978520845997618255970811618793268065767263341439047695801223352740851795814273744734900939812923599435041502605329069205180369560782536983636314086911278268286078190405983041058425306401015425909134668742753133794979105902933021006157181009554900355491200084942011537391562335087619659293458211595494072095086729272910276734492329651358655589958207588442999259949011607199965413190885489975742275889142227896642814672705738420798804094745566912580651916750716179529507236674648698366802235159269453545721191622281743519364152345785399479229877359650303033677001477503488693940609753415967533848828205677978431778880790429486284227768789242608513732123797122501060144474006050122446967710562498248480152783335347975073941577056682627889826800962660923654889660485364828586850832768307597168792610170222598693187951382562617061466601372315398545694354452198967315662603092907743896138969863153542259012289407739700161863786486964865873732205807363759955325895850431732144790427995383086274810717030035486615448951414720456901946194894021846633034159411174948652303222563097309272383045843453676970533060112611347993578984538546927437233608721373859246405493541292946141442704130055516739721168620739712585526521668246370545215325422609131461745841042247366723237748329848140077738505231267118858681596699259253564678394876971180056754711011391602608848032594735326042331717510355531381262218238767342075091365866783458430352570936978501258579161373975036544432841408850490987146296366927609238554018917876940440662813405780234557107037868980418609280810176777462198986474893342458231583745396272886078540170849105652683842254360881318498260083399371916390924942789658210062880608639798484759610266681582455649550958252626285610347309759804463902502307190565011744550303193519346334285188095889489713371834861625200159463145974827652690725775116827738707480429835449188506850031767268075643526727694115560394917856401804024228168692882650486705860747947552455688274072498939268968885042062846184514506752232467235498631194297743870172810725413916848104109371538586377001123934631421706456536279214144551785346031010571924957252301376180333458096759444391989445420947095161180971402263447695198740510594693616644225469992467890976048675560363014968302257422442453318706445970317343805458385778833635272718235404232120926015393503035404173573993439918763211777803102985737349688948137284138537449381391123033282994742788022551678876612870666396452801048301391260442087339609532170766129730041654966083191881412918809166015074094983587521638411922881307273578739828737653691449985748126598019122474187657781744526067020952204648854328704844880608098900907835363113826453367867230044889561964763308998838150135380880481626115562057906243615056176910903926090741693929724100379898031212460206092282355416711560564157235816833145980540988048421223127801690786885178972489118816262148972890685726126303756162947618915824976280421604569143036481412809902535304988640451601513308761369516829048872162550423315211006767653102136002060461617691594928628726232978464283750771323492890961954624664135322586947431625490717591302336468384491156248127449749737778203793541210868797909438600947504156668964528359613403502655429308966644340264465273436515964364401317376535745577074768831524704354775164710903339054926589118887009986811767151863902047503761767309477807472095679671728455313473128223586494687809920774688789246389937182857704605705839280640996521619637055615088683796658195988648010290080987464546817574789022831348515178746940239637393601122158827311780008658370505862655524899824132671616635227074666185550114915442125995539849254346454659527601827479292566709168275072979353809524438624370408747458853174059464285586765725073167672747455988753642203840420215876777821254603532867672245573882302553584466799106915164122849316770075935324940393060909286176060551958072443684542290628505814746537490923933895834236458298949066452234848835734010581263217521355798692352597636610797872212145116846855663622728277687734575282490154648731864984947215824495911826152828834017658681644593000023794054351624579509664284918218745784898647050470061625424293120670359520182266843795926233506115707825103130983758041020235215244230704954184010508281389136419710937137551461452915910831357414386487326947065158876167201773249227611857646112291478773066973527665726682501951106292718183187774057635736140620427001124509574121309121420229852884653652363489802677731092285547028284343951934747538996589500322092289462109903822426854309659426042706586528749599241076055877824483871054403154408856053397028170320187645525594966098438679555531749001216541370000604186335041164815798228438609020279383127494496706926807138896812785555213189672140419813448952810585763671871117916374870492882065724686839108101547730390015543493801135681704371122453159484494527449416476429639653349165180170165006223003406642838659008408584580007910584985342654635901653447635722401662997837919412851451281426571650056589054943366381833763913430583992684470051255991465684088316657081375397988262436312414867082765239592047835669624668272609374119482611313862155647762346804210702324415159122429672880752612356191660095514183984273649332425600763189171859193246428903688129494164390616175602599022589843739887187443285573679047774245804613740843755373496578913948034871522655886901531908317977167483442441429660180272573676947902918711316222425902060299278974180432744785053310146708873058563383998043994885300560261050601678349451267039275510213547888018908916791940715714450679159419963700875817120252878413622744415148501929579975764764166301441527648693617269931974383497536913463676821522784705740447842262428145888694720552817203840118878574286455242787593188216278522297022931200746482560625250337216401446342373497618644771362059635454078815963498502652101229653001930019265699233554005425706342475239062417992753137854815178573903989593060041092194595173871140628791192587706765025742195055509679423474322795480117280353486366285584432609728917621973925849271347542409186585616045524077495785526242293033644391975702456782153344756158316405089112051492025775262400801472578654624362513639779105025337877883865595018422754374031010497840557481598305859540058367339330044134171122105977604898012767807167817552459200467302260024415113961889674921732529336939960481093357749790198495927554574185910033121232866330857975182642071610282150187727688704440873239836528927070410315738058088847607774049568154888531442865093514906617602668066302661895756740863499441174929839741241100376835946716886127649547674086591222783336287892986715788502973002655517522615024243108802323899233936765475236736318059725081695156412717028149083100474878378222955055139616072966979599518635149665515684140765921741934566413266830363031311493337604881036998423350597553281425156180421819751552877807229224536771745530634656071851934119214204064152286932152103205351262349479550980234153484138658825550259118670951147010392279793835364515325222257874729057714693031311267931424774927558972503427500094557772485753563179388799269704126838660125864644196660835493617027159031288219773977662724275059438683510013546179037245751490702477961813071590297420988363892913224667673264405442534188941101658431969536173435802560898464300230130647099010224130348895774464269222013950708550293440129021186384561985318328871390912504626669660905408325081882948234113555500452016153761969176470472467956202080976331613465845521149148902980982934717838808639154848916767953592671803676150568993942931006435314786709839641441750979874565107162991595342512831741874277341325916475310560729834843306514840960893184278573074547950806076732865192670656113462641066081618319575295167143428320137094099454168877335140874772410778779157279396525360670512555991155152165826745786665594173783827219238665105358512888560818543705821393056919122831282559294021705439530177305863053699399118706650952632528913522612359543114287866090097172572562623277910239399010855323624744006982912972806314933704186296856227222735523881078210330662540744405528279199223527185276340416925045436894403833625694706602356211588930564548760350565341832747010784049783225941456080721247763798647429880719025794306817638410730165779514173760854437695047513491854025962698977897222271395414589104088479082635635083129107427106361184649314460632006461565837594371019879978543852178603960040799314392120918177444259694499760715197175208465305514275103732146636591353923561593150995247446782642771839548069264688857413859134854345554187499866949927979475954098897212218893900857841149386626179358035688665196260337610262379367433892232937674310781596037699914202017434745893606968826345041066936438056881179424023903849173950060066891844751715532610272293882849276932333694891145134807115913951860224813173453306147689101167244357428153294382824231622611479806541517436027712179003861355651591152870828223950417947147776046868889615262332892783299526206252435700828276949496119094911800330888367134256298814112292004809169891965437560396342153218897314908246938173334252814627150600758239636778337699345145871892500643229817529890166567653944031245973794910689791545049016829853602039067295502559624498692871473145891755856769765425691266245937320442116449219814353814192037204361490532594023751814501017956690041516009377418727090227776679156198764015571867345114698612716205437373433337705136141117626282818669826994125176719058880067134355019002200971987378843368590687745293448680415890450524311783991741983949839008911884183961940360699739739118730141930782046593875882353509210797293352973748591828575715127712800272275072461222256435786132566653907957447845140498222996538371806674567507705246253363835152085347631099736432296954543318423375998285496616205406547278452278231451779701331936806590029941389247489376810330352680263813572815562337149099562644186126103302520280762837020319921020536511641511827199838893629063861803858840429153953837298734764177304768790215483659847102783311548306451918894714649746063921665796030430642832598418525138673115146975883534254334703178547115123606441038969052585241770565470475542691620340403143700500945804675016132393029997241608232501981080513824663116746399075958139226967829600915642871026424470898565083887753069397941258650614898108414499137265855792533171632363415129929403551330365009557629978555095208106598623376351819048439076302914454193355860516266896106480412448896832991780282467009073131030749949709370891829241326159300216893826718042272553228350217588092692563043357860348816936207773132763871810087952987092296380796846787082173055598890989081740764284655294235306669925600111840893031009588174028951109243633642729672008144112129097202962898944549666356292400555739591061331014473836549950153016206270891209307877447457985573919451606504191665448476276834455600663781762589654246896059465342576052960609210650525021987033302691593670738490680754538916139628343167288608877009376570665883542212185346194715760353823552306639486062912280702647203343942409077448850614825318005488746737625746319523030960181738693627819139706531959414033339026056316478476349256910868307896377637640212528488033624146908107901911381245880203944345723391365999905777033765760193199304088483918524691114905127993276741026747577550284585081948234998674177541468939974546223348367117688790803444690084542675190301412386695392221114571153989209635243115127021658058389043716944079742604678724247853574356387784800358506028929572377953235308765104157832069251878214536244854727395208945637173402943389843845029715310080865377752001538430607452605696364717611929423122595003037271478574897851552993520826854717661812454505242877071288312974938561800577636993219946328349294448477518400729157471200796905056205849860769610934736259955747996883794597388870807282225130715734458975024201046641361914275406496836821449879845132369608585007693819952245103696810042420634041728487836713763471329402845224048039016039663560383045678771568629211313371440570806094058684298152119762415656304292955142914067393048780081463686258775343849359973458047734113682103273108791362271192577532410696467200305093316128396728221616191749980307445098752325993454983974902142649774744593672706308456918996459028428723730972537142186604514328387554644470867130717330562686193855125456967908536817798617675076012735561269223437660100305345758656403168955828943038316972286528328844647371813077335540083570880375174367199386220468486487908075924462220056177354754829471045649359235723286848065514499430767652562361363591438148008228808673954242441449578241230563185742357855158546945613305867449633667915109783652119559295284214946503573344607205645786972784636151131049284644751924829992792665602872340892963658953352526809149932923683944483729951510101304197177265793280491123461885964203792140575259617142906185467318387254575568949822886496031834876497967746065186716367868464962158219211533096439093729666299638633581149526956743524195754918971991226235676388894035473823726367966672052762372427930845105953843088421232997977262259592457729998343861870171085046184533574624560326772641799760950526560542796078849462577234639657372766753932729466729246834477564779955259477174968702047131013050752174921988645493509868186401724676586935009955592993677830220643268828525278273231764858435545605240483110332463859453178340193757382145919758192070963181673305343930553648887778409836982439818101416973485221631499489807106735718429982337533432880916690336683205180849344475790010334919055567931293869578765970563625358363251775321650578513034803101722319670666405700427157824877036083191925349872289450873666076949148960336312456833040881083624158660472015520550082462262930504809981265283584900037085799014898360390545871375679821430067561477075291462944379485602707819926809603379136848925943298872722219992165831142126981363278001703676030467954291735830151814191365404366680213499453720290055182645125271594560210581701879666123478282050100292214774301120608434463665446596540947802648394332189105735538955630992032999567138564295081660218845785414930902328580048852781635643689718158233425618539494183080083968706976004037906416744171359512987021410394658875108915402161681723674774694403425258716588803370550458206719210325623833448024722772899648975733344245971356398976904672650700779216613871079063316024973471187519444966679208753977605929227878208629079210592416000627577704844187826509374866045745725657753926067917533549318456108723681813307686496191432897754702234021731459432068364564377574149640173635104932478937402740235319652480741536652472463334300318224839004726309802113857683965207519737734075544283485613553547944006547149116613236718111553263710051120531735369281116898067079049068591283223576310155929459660641979824192728092573836735109093232985113918511595355220836213422071210319982906950516499720440671696889076618206440056070941838105794361471064896444184105139192085314945554522439434778590088141818731708471783163274143566652452225678489394903310580338476085397039016210227397174734497542159739304852385324174568525846874330762372210875962812852570689278036228817830326832878603932886776647380103453593292439406469551066945796175458013610787190808342941378253500922995949253900311663395950203978994136928140793374561896231720993110979196720675822002015478112812830285896318475517689253469037198988321732483445753757755103864646371168602024734816684073581499450804417879540109246334272366507314520396916794447259447685829272865283748224110852669872368369653806754536752274608985845230544253486679569032563264892328367178285850504924674988215631231170003914776881579251760864594464437775663638987649914027896709919651828264572942016605412860603610645025647444912370153411753049223669361171714203340036965198621435924869162746380615016922147526359359973933639604037875498593765775243377473522992257825212275043244213457332978469222831733654022390156566009870706660886546695418035097294065004422353069649537196629242667579957288222787850850291649581980447361444455830972279381749509248363458850902132564138758869220277841398334360951636609364401322193533645146376164196302844780831002107222448989863562158882646451850781661940071932675417657265565700860377919675471259296257374113760753854653750799565929647430612654736466781317517138449531741262365791027904763516581715428061462998494212620764623846165322029048265019409986207526603946418281235473176027166186256878078253757019681581550528074528206780614929375886126680342421958338224039535034780338512524981768792374752049173865704936398453673104402683914718610981603306925593665103004347803710004176398251090272371645490252258213689102525407967764991477199133262965672315930618087361425314538361094348040035926412129362247079434444640452206414798925442574376087488592768028899818523075468527418483966624356150776180767117580330148580143793892724309901712002932320490931605277359795663241600838709623705182760379904101861058194812981099553097369578914309265495528196634960123101411183682045976640127384723879521484608440570302863827608565175070505072337082370936291377747231558978834154820442382598149620275358062867850121647894908407194034199789090663215425872999325775153834260774861004467654825377071036470702964355564445135531232612957041982213150339811091926725023865468510316439275262788029296761844288839033665016712610888367959737211868652728146092137226361474840803581086896539478035885746507742838532818785200117652839649917744678628604228961510278299248473682000699918459054829803659030564425431024567507522931100900650616019932637606966717370010508924902189199119351422154337521393506815503641600560520538718662054147572874664502181307646628284641045161356674690479697151105433383813312333589846980972764398257269364460516443901793141474082476827739334312351048475852588207999340511788225798551096922351388199837367110964592416501974976778660616299620291250918460422690875712494424663340348637247936188040277852543309624166020939635873815489789650080150792284488030146954970289400617176935412328651646387990483076546531664076870276869805493718618297618066228322214082170307967150495332019063853375273299818858191090070426321119426468337839994858228902116609441009109522250834222399873128434096435328702246625424804010013855335123674952763350458399568785859605259168844515528311152047837375747740132110954246637870837336908909647936951028988702972284923144635421562981613259641140671004479675511039972116747678062281730318244978239592121878670990986793890238329827695371013930057074619546841727446609992028860678920638571247036875884325801977341503561810982945000390508007515186577619709638210454149906696317366091123348334581927140859912461982538693103634644068385709595402090573691494641757011968707831857826617972483328578725010319076781686499138347558027801620813561649808775438585319866617253368605471361041419632379955812783781386908050182941297485181252739484490458215925942550634377065026231564669899203375671996087218579076736676787686673722354041336539105516520967613812147903573922316492787502479581059068638996949716325238446608046200028045518274048642655852407798964194287853973884987195474503255820812156436464357205023895688970637998959685939461890547750639161825943218254031130772711929752863322673919572804001256510528666241651697917370883719181755131546333646593933120348755334958080563191671138517032236766671886269026668113274315553955454834043114825978385110647169437951533736074011169163285127705781480472507535865047163188669075352678157302816941469400865038840040813246337720577891802598059019353233040797794299524384099877427311102008110049737812487718640316575844577058874680528942899488706729786680642542023916434273981725264512846379650970289535720921310156867081451938902252767540302731686297500594030997573144540642355800709890105506266002745616200730348581187035373698917675853212736991739097987295373510970738558533469734135122621246744676329360287584210148854718260422183914667508644685438384877611698112516898231388485475453072005858144414001684198199923307462544407702728471763279924624522864376581136878354126366372038136156423166577677942697319193040822162867450215259580048983002762482925156317163605567011968428316989510425696945578614218277595577338330045377246220887769737778921152798234159431895769528604415469381558286722416430521698506713895671521111235498188034119436706310161319825364401232830458565001510265135511796108315973723632190838551897328466134601740390344375933525527210568382641325927511309325753360377499822834715199027154279850476316833777530045831813493910338014269505956021764543584726628933052128991113390841062701959735821780947387426657008457643866144193554663570881823252691601469772829443357116406394266944414158844454948509081807080407482428712369349351120695497863304899252196045977503500294341976079479626092089559383417614210956991053072932660655017177227446803163274609404525802310426317276978303984977783960021042870546219611147358036696806867711183875656356845723758029670187862476749975541480814762319374653964414119911730399413853205957920452769127868117435421542823613727513417605999681566480664156185168802953022983340670468732607979930813649712069227850250903876419962998907304823061495017130814856905557173587911717121579146344857748015618325866240159031886125831300570711374818093921056304686730009899938545494581968480052497958919138060406649133080702236199548790692637283323506767693437689463987150714053145765818440287729709690139165121980009302953181227593464161069932011773933230799255347522229876541193234172249329006614296778036284486205027540843349303088472924737508851880564608173922576393794606803220688788633591279900905905621461415109522809204028746513185178844719033229810288536081576307306516812996966140519843355882823785889919436247295852410416947919424976226062603292883856718860783541686773172422035611786380732566998877305639297408495322664106969285358250656294253270430901645870643785471644032026419911665360404095170263582779326951357880808709866088507165959783275323270815353360435741787231850344026783412139280310032265350256327984619147323009146354151418292645699168497809040297972430220593244605559828608426741267907776652896362410561373049058727122987466026091688264502167974019406490404654964361809257293024594908088194971974423344458882435953452565178141244528842258123678258443565396685737529611647005817330439330529335146027368641204906696097219821436073138571002355002033076016666526577539842235478110305723564356876601446216712312498272358998358052995039277701466340870533083024186500152826229569962328114719187714553520688452420409316787914838838574685105951452449038454158706421592003411965798136419894136372681592690611522183710873287152613732140146003409499493636959096698506567688895588510275021057147875901190216174650562276728835501607656477980228935023288360574651791691741883035634918141438526542112148180770243202970343181644864514081250348266372394648000461696975750253954027141924044007566097059225805432293052804584570622613530702854512369086797965053746312862900670215503434697263876914809706122560282782890854972098740804267475022270211342080898147021955572487283838349680838855112630454312729215683522903690418306384259483614504792341920089177276698633617108448378195225512493061893050569681302559073421376566463172027890869499480769004092240818548518394776818662066973088456454172307967643479536805716106916042055620047736103915710079437097063743880580115043208162026912244753016381844554214314358200314406644749454455063389032035231061927739519967574549473024613308097421237678314566256993328452071945719534328695453323404237903828240743027161201081733293461400275856802315744259574535364772964538951580688882604857017244558875406761142276959146651612560071886936354381261453020985761144737575214593442386374512139000601118980250853522624967760811213616643853891490942037276548140807441586647433375166087435010714589898768945372214265139926981307815571446176000546325683692837727363151549033204685808672624786839058829365158971829822026312595437903616120722492751531478168140508187817149937565448166418726987187134699217388069911487299689448143240392584572433261610564709728327122968909201196668302885789286496308598141390312082856606328535394169902167400529605899085884214164824234297937656806787643094040499672627103197334956336704085216771124999611648228836836567939167017383768681294303195066042296914243282050804729729500353095384072075944464190206960838040688406111347738182259117740021130513430591543961495523016008586385306680689177772377176744082703960085586795800763520037711022260350503913299143024690505790548715955647997119020378346638542039158065532270750993229031063497861756190586319834666890294972332038974446239556609063479100288553098739428226640867909059696117109918774150177384330359497922809449790789083240191521820206255000366367564672084380623341599443784747970666914464266807089643029254095687805163016489517591236570024295492678072466297855191966137510941539481074759368121119001304708067511695320565524096475885984306195583068391654072684972573797384237882890632449771006495498120294799295536594009160914155288047015486234423363237712173718771062469959739652106993939905874189942346280921602014262153114302316028862994094946292093840291775842344425308231698961477692767622404429482177230616675638823822302416157160390003520608517413724239447837494641166291473373531203157347323285786515629878161603315810231897940417688024849654933410285814839751755570625723869296806323596997372998674366048686678085023348530610751445087932755806015781968125541012412462992149570554334611845520732240476920148422971651803209199506068657501615987560517357173275415097507260912906429639176438634524272771270585675485735266765591370097483492870863711826026716968835601206598720789281713423585888427651440784978780503992804753002103284777418201278297602020753567559452992071718533194098789043547566919707954011070889985357105730725762328119650331096773869443147918740229239703948086609734279571431399074630395690245774269255235763539795470779770040269514507414213443932747816463465031494474978882295919750162563737715962700179919418538181664700233712180592773226029502431679768001669574793065644461517991322443276513277998690849336036631802979326946319261422144255421892576666870912204446747009316337479994875877086429847006649775147530559646500722243433841444875499419457952522854897087661429010623688019169119452442464971758545384004146733876760649158682886081452660730943939415960298710846693538519526006178274067614541555905931042127666518564470664205261355504364544728310940744794286911102773807291233023060726338110470735955590576627152548799860146289179960424572961044366170458240498880454490792050466594863994657538204355348431194088713387570735446048405316169327081275693970395053954393323744528439745207734486371243037151291618492476582442015883223810877801794380353634044296418174460774996812779715978134920860141298390429801336460400543895730562919638310941887634327734740725949997374286529635356947095285528505654460588791200831488142906521565725030426401219509316854893662960776535637737465814585516843698207413740657944298673565148169818771401113519396176204503839407248016284114383699687239421347706637030272214297358602749526678442103392988463786249245115231364595773778652901198129842494024219409722196214839716508855711127930371081068412388955730881425723191749465212421327870246952948430350208779749662738411258681483674138822900266973774903563783025921030407318055907315254988080992093242351189471609073689746327181501297947131201509037163612996436842076938382999231508263125131632602382595197412682223877469982606970021027268204036133593346651906140214973342574215506814261918988462009852719335205300542175623047476011547585526742659095195798230882725170248534090321652512382497161332784539289366705753304398525505811658019204903489600296470927525170277064973507321542284307948544791132081008141966140958030008766177965400683355336924168546606619083917581978268522055959714009861641263609724121020510911524402818039604114172408725773058332495526083619524296638219101860257784719713458436457881754505265723579400557192819205124609582013078363926066796639357427221114126358973225071795858035294374518484975164951115697900402753626493766719104441814620773700967388067284223516673376020976471424771111521398067020727192976344732778341771723617799963384366742259216562369788626062761201690080754974366573981767272560189568003125550581164744917575989525667165085047848824180942474633994351056293420858145041786924033997469600416072748364509406031009096459973135244560854444875792707489147551849530799825304725355626059486789750583370669574619215809136798685516578601945819815133911980825290114902893077678864199008944120894916914468944890760948051626916180398446420403705601941187865867717792392120372972770416960074655046257305312178641905751631803056672705183606220197775893509977195550790505403259324515815356503221956925893707425191487044828979566431764005746578584358082544521576759587004741296385973629471567303617386422642568651667982305654517485610558792288878920090221493524888723942977836720477249570479564665632415979505349125975509234916454728160791081688207446162289907071041247444291475834009851190928562682111253417313234214182974871987769882656652471294072727604576761023072479736452067416199479608228952012950588246532999565446847513449498427414343970770617263733877220887312828150295701796413051169049515986448489469921316612867210166922100199627467846826184643501759020471359833951965376439035830098998757993532809606163069116778446748958531327530532894188715970603692272562589511878097794485368381192739112015019469103608202793010038848968485552198449930580021907980617803000056920239586480349480502385942914874215660508726128684807472564298929706508566513074679947145603307336676494096840512588556680764202554840850592980286031937958914732378729877991762086386731104639739789734058368953974560004965106961185849722796549389675058707024275233577764330061235884669105364957609954368570990719038117528886034314323213109926587062347940376004886958198727670116259658914546067174201180010545546345423541768384445319428588367643551153457950905930869199419423812809288777914939665729977781720011114760680943839844776377562747207049407316537876393887963162818347240371074615623005760613789978075035221898399014650204540912956528359878317579432508818394356401571909788702091263786173401213679480283156301602615614144777248857199307870266620964846596631519701113754716440680204823638873755530819435997080738835620353038494397641737948539010398971472446665389614556439256652328410886520682377835752256153673908554472409928244649754346354776233789624618184081142841245394408859003555884170404137008784390931235783673262231202378091651834880055289956120702257004298229609056552962686059963730850457432287785136626714169617921711720701288828881919476527768477444984473075589087159807470750884754348955751886250117120934002286287167227181257201301731227433700134047533496675966532709071024463821997224583053708160718916528089254628131730552812887215271343431271840948298104738049097900316919527722224516661902675158733998528887678133475838945786952731403396670187289968233720121975611295610061461748203888440933021123088599083259544114770624987657814034865919812480964124060900540367238375708858319366316815275912309262899172577071514796289632979940401159173768801229925496770897708651825304766483944034473326577922176750548951121739049289563684167509982685053907615095801556502956040032052653202820375141213986671954838609720280014504421408801620409227599024746699916588716889704417777945642086542311935625676280288091417876855463648664304079623103914118429190354377900747334282391694509107007793404815317116977688735772794976497765311032956986435748066748457096255542179466437651081000127820403401082660206348925595198335206372524519963610096498921614875346102824544416029176842050065568952415825224389753938948080034517083353797934429510594716614917568903483360250908743030149661022409977775502703239637889524803355221573931812331318609123691047285364103298661146204869097196075360248330973721672318496974420576969356417957280574799755975669069522786783386882090622711583603727962245488326127407520646115201501486756626886106840092038713668219507228976144100566676046444985920936875450597703000424193108786897067695991399995795118677854177558616378553224122069393003916469344992919899538858982306156016370272926650393153214619314242260104909801347656609583538225501475245389413828984731375928240309629121523904661843037481403425522895793562056352373980593085329150069609467561464302867013459592284298136346898174024623394652983480087045936264980633712470672508956532299544167968213992535759697104866063245162400815634945157016757320794859409255701430135038427848067168386160749633403190875938783495057432643741666417881802130669264928830450986510390900249500334071357153129154976640446347919530399938324188616492527470969752221525096957318196347346482958019837012574114513284726505844349869908831534654045204665334190111235007584719855730467295497832317567974924898601765101596664762098189598323450109273526182025909451462319229356297753948984435576163439791733424274225918910731547205285958499647683724969824485246926360429351977109598020793816770465504136639232985715759953693397676967541571144381647602412244201293714110743012093375198497070311616942811199139311017039632740875408980799311459101926401602764341418022178012644449086855541569840105068137118849368552201091097905202797415697599471879165241755703150810394879451711904153495233786969478085630838685818722158214818234256866147489184095294712183902175388632895625220258197471714253815227668558666327950774783502451360146871788872246501627825148047594829660788358506653598403008186237207051775187036879748611115909529089091388835394670421020346223252694841933842998286664756010830962701650077020673327828662954883361838579402650411968997933549288622349449489651458589949323463856965583852587317909722165007113885233887103417941068036328402759779244910591739167932128706337505879908248815516344817024054308014685655296047940661055854738084706039957773964004068322382659560558401759596528747175539965522679257141843192524211739137593638916539065235208835240382327096213988569312658951277658875693498421045598690897304720497626857321440406941096657396427577306569706823225970062220544286188982088122977538195997927378489930646061853950063457495223711695698534226916847157432755397059120548424970569878739189967797605061610172496407898453231020425057703422451546898212412581755990950255141181449425325405583328858134861668176794632554607705940191786526248820791019152467929778974179465872535627827612313597498462890482152351021789729874931094447692452636171580410315819624746274381930767775839549511057306210511177700373064311952933494792189457168475605247140414547094737623198986787490492841857978773958338794781560650760644097173096860877815819069864768270566360817319504987728032597171687291499139653523503341388216541764214778273866224435326072654421767031062592049514716278245224689786519115840593863227763714916477285334933908690297178562323219907922041877423561320069096223266252579361009538802639112849691359441013812034192265506033263209761085656654019207864238578990980645899987416465986725692538924147987795123552660988080728283639579306020404365251460806886079207515335742007948990581348310220216974272465929920626004155211006005021763969015853278757139756549961246315459870927067836018581803244971240024723795982563048938296366851006548463917137417652884221484426431560639987892219512294886639935975714004617781018866943738703491219127358814516772725212534335143625477381612335022254917816247869930085246289557785768613690405095441682080925235052034658231127570750615058774246676273910713474913983640734546315997571029347105297823534824666911982072403855850793637284666298586759886825326869464122290478342776960072535020372391057586862316277112581602398375663628968457560296693893386634531795040452346498886586538937587371456778242655106522974917176048624792709416733458565260051599383073422855902262995095415960291730419716802184146150374119329984269615076599105502065271793453156561156369037583334877770348964780205999962468659566450454887962059893146433660638183017323226101938071319198114174190806602312014939956997336199636246919338651837401416566143641181320514017082735669366044552566293309028417378053084061097394342358720803860457379837634789920285946805951745603114188997580476138964846601510681790761714646072706955972216596470240068100777438041131720977533685714336761145489070794509640609436744129371004493532046456813106343093563019308269298901026147688639154668162064388754527130658471942791412653195126888443405851291826177115686858781296604595489994716493822908608249088033452641524253245756822707867197995767828606692155648504699894544132515496781808913274391303605901724686674296971884514678403417186015604812791992771656490256423369752950724169443791205344117575443753370108582872688918168077326577397727350981235204550711234883662786665626075594065531090786899879975625527787862656769935210026958449778666686227526797635062339377440278813526596253780946767150688414241969104823356631810778766954809624152120454422849132922861926024356382160882176241015468548006852800816903944126144286176103186957664923705112691339941462239679942160007304354285745736414473941072225736611000492816805366965845673459542914649855713663235587212888950445425340713421300139884468893603635852067387807983671662210585504977468982625329249318184581934871847488796002841493118282281282154551203984329885045342379903540006017212487601155170544959125878544508021782693130868034756413863994741185111402176988388440768128240697220474816595481874292404257229922064378988025382119989799598475392665044603043341562254073990991950004357508142376777315682876658413571421112134169934450732763469186998970325913614532771345812026466598042730143407828819079640974784719736810460223930158857249021066367025511812881332163008855616655734836623407044515529083635574860494152569480995318624172001282532299383139997425858616127833080950705487315745818886384311656399616708341467136688622741197415098024075244038266772836963896940577173244585892423057543929518472807179432919181965852952613008219688945276717034901216608851716472462393965190430759444656256869813508684211419951293764994591615187314770747331280305228567382555049474051535812644009684358389254770151357414449500117903776287892476136470593021738639975755998692168980215324855851014568959605916759835552137664422858761735660551573916895250022343080723290019273245377287349838944564947449191746811753929212482325589268495929633536071428698450424554385667335697749094243035036184738416777213315959898557325248150991977977037715320495470683855586188170687350291887521337070280494457032949689116102829754575255248968230998236587711413269315118505704524121991388041799765878173222449952164565123454721174597215812826313171464467308656261253479263617208481080566064278775189689561242253813118533541592779422308173563316215839077136897314660125840249141136886799611268465422706288554264604616542740253178001601635468825368949400267422665309942505623226172411473336519037536969571301416758972639376692595967391555083404232776131351707692510017516874259127594527363514062246966898424928390988935442657540489896069696008008323237083904998268333269671037395876049335189387082665682067116781874594174556033799222818606096547019981142320507211926099886310384973028517238009433056385810616608653127364270691740099610847367069323062178335375563886215957130291459957405520252295826503331514507608842958115729266508487778123264456855246580551165324204215963680754449063970548830823282410480271064737520378416541027063461352828284380843443300632405838034078086120825657000378753476419803506759177018201726822524391234122744455799805511415191567735277475766963777769118814464799792974922997543554958784808888309181947513745600355183444781985975427372495995239760246190732613204132175284473443463303299117196174007559862300801469823658182306918477124257809157014853236401061597709365573461647694187828092910332007060481844128663636611695212626741448795811350313676279053109415611472616450306625182574087315763970479263433546881886526234907432755475743775850940734418976268949192117709389957004787072016739434428022900728391665595516407076626718488979482025518376819228704018647946482095966441298994684229049839802730491210130882337080031490690562328386045029979123322770212153251490679575200880941166384407530073057028500703100533067817344325688565203475735170112625423598499577528591218893972873227506049619320677962295827939730361844874780989027315989385359089425304247550310635815214940638210007446657004159376821610979301154713085534639795717964996444771734306288309139336692921700376922961030384307556437080713296031158126288496424748828140134344760529151252320098606120852685846092561498603680428691715767358430182035407183301550191763096896077291675334750333933045644039919438276980588361497179097687203382514072164515147208573517325224231519819357995054194684379923148291720119923388830678051855146475937573127427486351235958932652001830673604059230756812915880965154898334327207544184011847614296488251489931504619440818118034927789451351562720925824239129950680228289105186923773380685220363291731234875767851419524940366420989210856741886697762449753594379130923973908036441265899606379822612315841732286690074375058651944510992384827186858894250522629873500014633777759481638445142886668238332843543329694910877236820206113715823473724788893868394667498254224546412510610959155960279596577143738327074875084254812423009255472596470095086440756663831466097198896045487871254664866311056272613264665398903192078760350811114033016267750479393427783589841540867458442850783727786011551814333961899623617227135042538269342583542525963781631463746791205246365247361986209364085172288773157639319193007567309411678491139604613333568552050598467423304964549125396178030696861091430765749418118933813156767113316858119421426141929928442174259747179172923109739585298144109910971176548922343343024612503418369772780042446770220674455912390777194308559455662191316725715867677823001779044048424213390618714951389447887314662024140349790325414138286945986924861247894001483846481361758115744847459717906772557063880079397939403085507320858363476002578206580225891681076244826170309499428755877166107278490970043399887032186462323032989171152005916747675927982516317331657253914876663336642691039433902420749387034162618025388344639945767097864617507390726573581229754594068284702357814698246539191985446932052495307361253891942458271143968590472758075045227305813520665826376837320131697130969273644740717725173799744277830499647347339090307413578145769788872514402491491951718464107361554035233250258342959980789837033330450727995323374615658117496017339944432131783640792071246875373217719138713535813059480024656106702589757080363343164742348543453592248242899192225764102720443520389152046825857533752361317491125758226078713467682488750355130199668383242827796792591633761153321978609482494422123960608675211369058223037020012534824450833973912072546683566443371654309275788871595939744913903996462182363224197092328178651083449993604796976650391653063737659086116130700800949381398999180628291944086503089498635754665707136445707756987356931401230410896616866736529051191527736698405565833568756592338321964324420895922223208587504474297230794163409941104408376174317411142703618234276921671387073665423920558633449576193589401919626785388324803000459092163130240134425025957994412854832588340323023232296842608520076140827462074359544345640040433552529767563016487783369999915582124781228689045774002611628269217301223032633757119765443829596641021135250647435934649331601742842351737232811078040932242298992966684324793074090647880935628208758535943975164549179348067553036152475434226280377063361295178582187660077740167051122988961052906889959748459225865952488609362987653283556234868175758315651403107161356723930079227170714709163405433005601970384934581656936696908257294549683528108711644522599519425050123841872333703247221743156798534106954286465149428580918268672847028283297201024135742437745378383648123173523785777353835702432097147424901613122701272522399575136459900492692186946858303479375435796246965163679088992400279782885808976406920348991312237213071979466058800756173635773115254704881601623715677370694496004645361670550107360395739927910094232074691063956393374452127018442397030111089657691391059682356022221530006097065735092973334082057536545264208699704473673044659420022486847974617617568572486050503119033943905878421623338009125486103018787662137650560454957154150141804387841735130360510467142684328506286912019431764957303602615594813757022610371579045997407308362665906998402899573835061486124938275984239185015862968583081072712617300369102562969392036865264067710323517538429994327693768171856268626068432927309962266220306403570294390317591077297567426971940116629568597814926859239194653089131071772864178848939757223258091235829949669011892094179099066981253816967691129659250137221604654834952582792693387448930406680948843508053798114783061647708830685128209963206957429988203005533128799782620393804623762277720807859663496099341259070185927729643067106985068691607398903672135124595061223050459794450473445174786749003492070870532258371787600233491571310868447248288643334573467241238462834871390466315905873052434731134314610445172998402345472056048320484464372007027357946124796447615789811806591374769675396640785891087485886580484178140493144801776889202083614280957621431787598676843778978552853570778211458001084140578437482090976395914790793293510502433837310815988630646677723063141240245552039421486207390126503028957001161081458833395205718374829430843068838063710222912040869547067080667629119317774588373852361945636940647254337927874140875866967947939233338897523042503147086839793639600958402956509685675460809671086847006004212025890286509264442294358623843606675517553783311003277029272663697455298654554042905341318516378057758459403009059192931805536050991353301798503604688019698186863107719068196708036426669213185107218695093518825541373021339906431805105720446997050988890802052858943890433701697159515937505119729685740465342562110865086222695212867603406835071187316212962165842187521136366920477833165831442626605807139789098280924553958626912721164505022186481851749772477101276044600381775845721861004789103728204579271661965189942987976508717501204513128170287557665685409161286539688312746069020717758493163942509715819614831859987836098137628274704774273420521341628950479264509116185659334395960301938239997283354043705899397186567042902503446877842179193730062095906537277918399478736633645549715346084907690293309110718386585478257583297990914067455509416693826551275014634470698156216060041765744389381286518821593470036228384546197409027580823920561371549230393124332103432385932126238504804016966712928379660916668027570602920975991567481596796388169585307691727552464058196785169347315673054431416166721429818751164893609502257627532523581285074086929250682176540306470606120442842143871273332942163189482910286640419192443599279685522886143044189105499508843179051037291204217894614905736172758701433104744555392514903408390682436999392357371451631498145100335011954876543753458823212526081288197558819384989363317337170846192561869541725370953428617973491854542917974172854613710036366465802965778450450065350022622172877898996240239583589697700464506662672148119307538415185868309036374616007784167789150534957487472717045877728061646872180813047399364069063540130955052229391385809558696727924341886642644406209078757676797047481143027448307349684851182701557041101277643712306873228682263451198984582580877452856401951284551787782447880469610725699932486425697190955893204728540252524501295506682247099234090232797858168232740760211178204570395653759103512172012296808476863478654978003957794998457333517628609394243646022832039332936361440354157068824093689838587624810113505955381029611092210825802696580161856678572736006804856013213951549704084199518587464008441912466011970244673006842297703938285052254028273154604337771640776873173429973742083901776987965296452020377086845123131303168924984182509933449929716471127125361379010857217609401258556723350040141562495790821243257005739213026661056981543759438168848659856575180445761452164029562574174058602248423811630338426756867408279573432242332595523154430093538126043554117929937224104070795168935019165361672779082366917245619816939457478908077036009773815783198527154464339105486761003343975216644789889251900340967022394204487409419213360596283216928189228983607255347847959296470692829534405548506677141062774080973073853974040069649969803161736885967439719789714994831445600383593637050058711216828892013047313807011033263037504511569145631592692976301660613281826282325690294433297502950089198315262747399818139311567834282434906157700461548665653016462101096159285386998532136154366083271058995545125341524814791821575888816386588086830989080017383384423327858038451595005882693863428598817863340208133540953302702814016301775342891829334607678103856709262712649021912245064622183203498213946364295686470187466672544880879060954393136712373527211976706133678863935184248085198794520424233613788012759725620437102393186558104348421438860965939178010377994060042898900062662647008472345744624068309360544451496459544522587708697109075425960299847244920551207228809418008800798708765166440239029732151315512873428030232322323087029941664831284042142760699704007702788508992892981635740760691228803731713677583046026056835397415770199621405853059410644529884399845939942772153634232567044195746708452217159892089175392695948841738507279219366087344364099809119796772489662737361770795271993631253373142379699955981794452713705278102906816238115094746089372617800630232552726944099887496686360390501052483318294107188130888112308448464505742733178493968656244167800826296626376072625499557724222471812598167106826373868670299838497510756081019010821542424994497998837565411559670978111645162295570721391032242750266896630526344829031871137292340618550149408174471757802555295003219835844513200366887451236130899925212874348979325732489168280996047483494630541015246752358678259716467973594319482289461334735502005806657906433099084426048552384033286133009506203660321110501223930820372165446964540889938008695439994658953339562048703675098008055989049900098765664454626239991181088145121937465803482328967585586948402106611840042852904734945416948502037571687867958022915474598829574210830212568610426328845612608216320481882835307716330952075881746365420155430892775511987239145588678164721072992098733709353737831176755307336535647488545373034265164556122517910645615136241696492066770933094683712213370131964589082892098414873544574225736499103845189966589523163696513802743202416507655060916600179761751270283921314361245820534016088124289800970971062011849188334388037692171002770113368315121574913844335956243025714623465759159172663127085151969428601240505125820115361465414010751613643769548329379668453985433085596359772036590632652156544173289057367698715157251823991889909837285148876716918983387844781790265263606453448016717033000921769467482107996848937125454525621551831464347793680078360319462670896722302559809160775762019231656696134288601986015998981594457909439085511360011125984363796399376134135359148768021060082091491522402618551943395072996361728904570453748957773359731384250122067634423167953319170114875680791740113098079176560719410037560795447053983923377545930718939066565619568479522301540045171833188655503302919404128686942723357728502759474792451035395432390075029879276325853820190213004996524457188159570062100423872707325945754543608303795344136181726434661154973185450089845243954001004450792384281223682099244707412519716784112288994164176395370568880143996341777094102413771066504150698169048969405974120088697325193586792192940633656241910054400813015910295320334849017650182213929466336952099649153487900212530066483535950289625206347261588682242923449176408049097236536027950360470276605128483175214608980766241357597864258057975556110352277557699853088271596419588326606696973188507433800197472408787306174275932014307427721591160660584411709829525886628486723641245650110463723706253355796278488433836430288824683215088935637360679191523281711395321708973372287008980640363635946965684875148486420459739542803567482747415515219416900096087456472832564066534950351168894090994159663564655774000306119802909083302910994238416080702459276339776920591786943040438685850873944124418950607768953594244284392734861153906214023203848208618213772554767945102061602475203440620802197583458276630008947786758055678924123903876957769204339464804244744471958169511414190380770006782190245796440640447124862145057592613080333609821616661429921823680235789672449474564952269835689583571968897130250704163424445083220127223414003197051596641680636024166535744551689396604173919415359158936286131369226176238973690350552813832392712252383376240109676937148810536320588596386411677729440912773280290904926132995793740177358097971276820020521082285302504034465313932370968164983377932386913783240112299471508451361117142552353963954586994546802024574235426183157839069392205823951843746425975226735062422003558062682922726098383691379746340429446975203952108583665011184648862438298027005126479331143604080526291895990902311279962705125746826593906350753467893387543725716681793870777678580414342710105460727829753056775048151347824600965885119184787397082216203053039434919233735114157328515056852608788646694957067029922049713389054566027480806414010789424180448823773718614528378457807305786615093489039025831637402948781472403037586876892033258930256320997322455656666786466618356758870864048561946139171513427886329760905562068773828993632582247818909399284600647363529541309301594443867853025138537477569465868057406163246024625727399084192643093805222005885118820647506029326895099388491137405198558482930499194928121847653099144898398191083050799180818553716613164578803249674879038160960521678874426364343819805924304683194315396309606299384528969107583990858392905035917831982276857455015204356345783922488971917780092553592853140760874658026804226177140464632507299680259310510395770207775562722425587124662367248798101514788723460136278786502411963327004341135577440758719792384877368032624906049197547936245143649725386664236956083712573966212300969307111982924199585892590327255517818606990098392672393307088515406669150886409442132236884248623440474127194225398951807926295725281081425410025615213457277826887658063542567750240251490099170313056525960377890303710705237980462297870851343519566231464401212289644434678781627788247942842612018933751598529341948090309601512311608804978981242630249266374878787426239442188195908822870755705965946268247097288629357795100198699501313524022262954936001684535155691453750484000706143626622115282125687897313768687772377083046434621822861847036554837952909179177202752495585445882214830603781709889551856467548819529415181953723531994300967732689783952495472107093664322676385535782960355521248659856492984915311812734037768890811405067117830959279170171010531472135941540783207650546313578587128808332396943227725251630856441048603080808249850587734167947557513144430095055768151404527857259572862622184518869326164773201285926494517116115131830658963079581557362247873459194807887649837259360492332219749707024761806219552173128883457468565791492487839608094059554438499053649322694922406634324734050410250222265397494582162721169669371505330980052817682946772596228583174570196670461829804176457406473314424156361609810589037507709211877958374642908999931491875476487651773771830763026302051248166085112722369443644294854962779114174391084091331796885422483041143655398509927122976637456863501969901384979120423817006710573104747124492083605761337502161456319434989668836877060967591585845041065107672590849041992611542460335293547111597042900255010553500413777195643159574589982144732155592590124741648002032966416117709269662824508455122137359848675778588664788726013044428565060392210635474849783102851556824776322809603776518030689075240391381806384680257332756059217736712629421572034270491936222402051154175561345843477093602586280312029126714562265401877564355391928978951949526304180740835233342117528102904584209083242101432730605710396430381649125479574162038111689091716996941630013668366504891803486469983263888146411074921222345910833419211617394406780881303121094805224243145327798619834055802400470568503206014612609558014372036312428702599171472458048823833638963245196551793915724755127168725086348231029080474975294743898493333987608439487192111594992776749735091745116607413293753386628757516261272488398896663171723456184568184632353167776164780791520511498504246044485529129235061849291557658974752095457571263236431073131890911998942050580427573314648106077530710671979256837417021834696915856009353419616111361330884493290819716280038869269384907150404505068058913336422715732591572100069640602883379061983167090499532735024666330040144389934203355999563471061254460296182912206848050989042558318755282759337069929207206222683176010584691466676858373971646632977255102110087720270445980888968420441889906851072827518269458950512596326925176281086645001913465944595899617504473132257254164918606075654765174922808824490234826800088699505724102523923493311714558570190772871511646006526651778011077553402746252094785504256110337265989188594206469475616408361955492255878920766295913120628405264442933577202925197301489540478606427566617739235948138083448568332662807328177979205680629554728655789016200273087536890581921804426955016974176180896629840364114966052989142063103765407232824239867185779025808285668235280880299551836366704748798189034496890652204107453421319041200089712708497197792295930105409988276406242712794522849757403712255108326896098103226406933315789825142668316555603303278712806792378090017408281470711036820305916039432991018898422960932163051867975819042401580730532618988432891875483373190815587249303500554217268335311111910850309182349718069259862198002329023068246327944395433763729500003179652709878959117293933389451079796308735263294184061049564323688520218676338885799894053341429435944695599358667122591686166114129821036420604377401136657530655965850007520568098785205211466288769432519002449219399425001102561957080249267915671075048617779371058415085385837618137006339376302693673002675612558753133670313595172349596048075159760042379512508438696656699041492154412241223424944351663164785130637693579921763717133773032765030475919316812088652219831378944493471423753590298740273202169072237077677123289348519822666069121066153449021962685128782593637359548649471748526765195535355199644224532745846573797428802611220959203295982000597895215104075014093478666834347862057008437292375535379576498512300343564479573860044845847494042035714159879666359821121199336095467213927614878303166746704337918120316238256045921817755181177516644204902767424495337065867598391380746225411362868485752287835610831159853841361697737418967570219185303776726471250663594932939952805769957303921023003438844025028493432631852380866075940208739678951690405129486513441508319830621701666595958662739239476970866966613245671881402614761638715860448202622892051266196654250160459924011474173772993345945357945267859702993313923153511782478688645235911141872012368989447918204350029667314422954360658344854525583236387185538295289745904314004489155292158410341598030820576168198946223977732795316716615651817818573638146439715816001243857821744699745217606681440991503125219053562472969452257549371269266965194243446765736119269427926479489492279918655651676443003609870819276738734966372491032338587708609650854696396693636982005582425845975378599610309401290690727684192695115242154612672460536758123752021498487208732736024527140918625450518156956359253993209348723703145350442469500753102975045428669089619210106293646515470359283415889398509339008934437868372958553133835857233823717397350948173489719553469844500928785345291120958927326287421582403224100721898700439908860895186031597603389639256444343639266655132346725247617279169303557002422495027669570266215302669642784417284329655602297864008557458638986869431896990048419613464089562887465826011916185098180510367975043226123041136838930218790615783013280810820560904545783330955717258245737901308520729815845577516059915208248713330099983993057089856255079533155747239925361216543230852542113826786257183424932981128694026013851488094925879221334082956179800226157659360260690723220930497345013138838706882804218820258650342577693772387006525455172261022046975074848269249887026218702097791371898271977545819278904484025562674483694391220914092699256339862972900604178465716613208848304964926570475391768761741044560959392665962898829745325436388638722559077954311515281540619017469093711369301459932144273238626777427171448921549638279740113461985727739296489323237648665531579056141468663097742684805448107774195280381515773365855984078310549652112430630142447665497300279448739768218667898485661432710964822157321197076398575565929591459340879378964927113062204306797930953632794534875892639982410081475533400127167283352079011580411213709598445707035300572546783879991253743402165510260815467647120660888189860808114445067747600907616615393609868470677138787795304011555654913535071929877176425657789855982046938549927331299152960359482953907640159741085900587500387392253776262027910861383829895903617637779414146251617818723373482395939998452894395276098788000664269192535420589423015481817411231681152692431475245150677842953794252751740753220807039579281664206494003399414802919499002854246030851335422150311830810419360768716355720680803353053823750956244867449946619280185348329404816412465082925717444058738500112086399865557351906332887583426651837260669323326529917383750110226524103113031726449560021612371818949440650980593045442140293728063712218662123692179304989622481757819499603339429118904232446878282372994048814771776420383228665999619995699019284339291702458599559921389446752657991579031742963494813743234352162053336744731920687539306395808293869560936620438693364218804043192571658052963727725314238689151291416804610871525013749075627000925752388190157218860550652317165670385182071591494116481260657162954367913160129755770150030427038430270276532496018592668626507363582969138160922863865774538468307258327263302066279869749696152472732056130246020022401792549928612208554240406331749173157975435431212141612231932924617207197220245814607242757706466241574202868618360292134998627476800059624510589327373913420167786493059408291246471186487276895670959585868505692867848360345311607400065389468098646659388306549001190645797369853569901034072485358473840237839107481986149248587172274668621257050603675203658066539320975362150458357656462131429465734446366527897956468802165417998497941729570704068866899026242561817485928395356551443511908851274746381138073894245633232004501965749478778786521115201239962821026983467941032242246045977405730827172607607212508239196668378975514548959605331578785120136678232068951074350924805185001913362524290815429099444077844600655438129753304394684939956902860738953308873747537799059585931790262970003084956818718671009079797933383117745562046432168102803217140719425609678881388940669007461839680576034048954563697646497256263557287968686032056027406953983176494391966279342630325951794787521821095638591072916437396176481475751548335905868276097405340040156152360414730525622168347586847337533726472523225539753737555759149615693781793515109887216225953987853977502819698916329598781852434350113781926011166386779917626872157086225633128693697892618677798579201858905863725331665683682991440294229160575655433719095659447281013510233016196041310053349616945412036950473658024019729771760392737981093919529721376279030782916614178702360820216392102718498044423747097233409979025537019205635663245404488864428060855738313430633184705820185926900307175856189415701985330067681493637349924061579669438320795279424668937220831876128508402811454326372796890018433407562241476207106563440612195376722154227962875729966629920182528801039116852597990809962855982181253504333014230387690057793739119648020210457756845835573489114594289041291689977132822656459358243117834775963070382661613717267641995970161410754727272721999874086133272085509400462308253617514720649427261273766174389458012240291123587282395378470943645845143743582589768691985684098966747427772241521198077990415068318052900519107696208712007809437687410149278497283174303294162049812542118320861084196314136928905603442209577319682805251689189437121196966852492503317710597927504426195531861642252306421784490096569508316930337619289906387373120512020461742884377824255692913995215348877673514456837084206006409501927310401255733908293955146861017929660805843634205048294855309641694882788324570859008772657120058289671718872544746924215779777015533357553070280828357925019532329028081968819341781705024361669813690391720069912158883524142174146687952460450687011917904516455092558444060395070912481382735603661915626651131330378983585204713588650292724716331335994269168368449163901659213155117625265287955562409810694008042710165424996792421633496251977281746809828945127118983169236136420990229934973943829243331856623979133828778964622897490246763594990539145210116660839671587154246366177729943687337522968126259603950107753254600520199393788630566240362532554791258145409910762440477483444645036478967384688473904325636705223866012409536560599806823699467204276363735246041537557165881518476385951964823559456642364464025603877928946553864592829757602193233888971548293571126484835032397551954958957788918669880131340892312970808905139864325417308428364232731254341167326801105657083625826462768564473763827267673034452868978795122058042212441231320820357605843995353634848774654051090428198334146097542869949900811466473642774419032603692773442665740834013805737681489438676819750000305172682712398275070638612697711725527439504836193172963876161375753410439677115274377929809431066186291132686159397323729543881140405777452827052717834700131931163056082460613934967247862455844710747744441466051092618544637116422521439712778997077638391395391653447724489889640555336319998400448296354273769589676390698662382413225098414178429614492218987857469011462877191122334597202406029601056377789108430821014688307689760035192533917025875483362736901694426076866752499309778485164324262843394732302436581786667803250256678194464292672529596170897575973260573929822962973144727779576147237838516421799496463173958125570749415644637092966552806384071484200657136496112657182876003376913962936400256554507449994859458768250212283941189095690272514833256093912903273742069537956849108325730590810411810604669149917036955476291509424153932915659017710257759870121102223939640391588447698042176567515469834707771137079799456499015668982984148445111135438083717323195634823986854692514870456822244068290201840125600678722874838227864936111170535408622805880195900007317568743059225967480703154979116941631769649564187148154390761651520656147374391162795835471347844611319451882838355120522353001900647323528205737318806535444380707643573523728068781773376171057850782225382407288434989541559160583589666071147383298879004870133380757478876540082568692875336500839775651959751666955502931813829972331342159294413305075292769561618602210602230783545938416534486834438028961519262419662799114949641595704150377645556587595753316575504241735901352110933465213916852081987313716828095912840667430977848522463910502819253977522019030947280717717154250239183952370979696629711248365580803062514939250604089315914451408177167834720073807810572640513800205320690058953648985669243895191496662879641757516375703500350598815930729100055289509381591828703733307853625325521761563442241760232015629719899568388936479246567949864778049314425763266755290737366032099301629169324419333740091738277012585395609424056084809643682208890679184423011566333725300082933658452102616030416531109766432409704437514865263738479013338025573996650504750638822046472658435268346079053951056221828878413724269979536048491166081389779431120562709578605698267859316338124791944120957528252382889168572492799400772227565998747713357096542211967957723650323027800200484959183288066276766440333898483462186559035592985067359677221969551670126292746464054277608828571607243811944756497698066519682097217388473590458115004925077600803673687721664756204110253981933267571725560214832952773252707008978844650884121407904598790411909209632361139325793039850156950699377472731955001430886853641278536551848768151966384394279909703936869480874771852460174759673093775784653725133130409781052248559856949368270720898430114668225404553831579402926082806017646151360592117175923325199041427671541287203488018053289722699219844480756411009722659053089910767816420941134229970869408976229193376481573626838944806256322363100122610920888556390496600124327547454794489390793625753337651773666379689984532507892298243607076106607027465925230782054969677983630140552958353813301567292854664048311786576988200609734601982264588510030357286151473049239002192833664702593353292248223848381153137000749247310775908079576452706897977869115934712535541557049715796221229812450585573137676676306607833258265503315077284513992048224109383258180958423297815965305594694665979146932181579017551186707032868441780758779458922285760017657720347199052867716912732407342777578981298754631599301773298192638772490989212713631726797567697899773300897852954737256507330573762564782593214475768174200484802331279084931908186610763238906489758904833680163400223857585462058612202212427390918903874260672759416728317020338991532492148974030812167902031494444436877251534980602879703980327794133657215252348331975943774068533603009081160696354872975950612053442729988500217833078841565242752568651959172778546379155037693723104414910147765508760985079193510067728141226866082023874066606215280082158725796838394857343285277626072661763034104303232461137968222116845182518517618522782009810340449371601618714819040044098183373041720870990847139347619882569705022867273435029947706276397556922374025504834495603184265765466347401994083959236074510828896092630779689712439601087754145275641293115504229032301488303649288888839988579076293195182015997914474463117731459053358034964236488974220460049828536282048017703069368804376752962573486261438878807669676256769503100560498009121860097532141468267782660033937050301967950577244700984776818451539490709855871070153043406229870175188884184915390940258608305177341755290402128727936082272137151861124495551797184443153922682914787226457669953041573316304569802691093847247517943741393042652723498762214613153953927953476379146711045939905520518501137860170345539867975207139030857756176946658323510835299361905924508948058186295295790383896086213474910034982666847631941493278824224357958002659665544548553605758774301607905020610544659114867809693811647772843171265210998708367229903261174051681787814492346130190146264312525766305325347093673401217296214179691232817780085498832106965044128251713869563317926158178338066115504944705056097480188159495779477025757757218180659199644953166070064391599218636418771221596512978383644345207988760690024027029566743549831907899800900714081801110772001645968322667750130863874671238527757600615577753181935595411646189314925890090771561256904281208494719991522311830576499322952036234877113360296351946820146216466835926246755484303880139850975375443062945483185032480923862395689784999284712167095339043431308405180636954093850435639912256596141748456382121532596154947927976867048768275938427513140043041980238468924439835353334266931676694294292086425761912626716862339035481766288676612697035980246546456104661692757489413890615923207639404624566136422416601175779435004862527563436942820644915561349648160565458467457120315834243083402656784920561995265696093292508325521657633540651303048219217009613100743684187061635732592654605878816029891559299108544794849785900405249179959378329627951747660957465835030217754086274743118849171870791506881075965640202486373747059492195115570205803167250758467796728541973557710727773383524344301979862114056964923702207459584545802612380046528898538885167572732173842966104948764387021005306095886510053052346222700344380758613218577400361245801803284316271211275022810339980693153133866388923204767520417585677507329965415320355215171789860038827244625177323703547935809199885200816273727387889413469216588609842573501378670265542204882965294932382429571631266095697743684077830890163347023348570909603519533478420880475743001376220527702170959569749404030395455611832598792899038970489958872952618923104853662587605319254131149880822405601952631542587265753462155039213138670569354049188705896065823822555203438603476137529376643247690210616156636475153175286399976012352253062555805090859658023835031326700223948630634588716364456250597356232111798075524615257063379470698366985547411160314705265314018561380881390745158472186934502999898644199144109160582572896632555498557105375085331203318979400162359145412771548579637439985293437042472050478131372579160188244055446871461325053083425798333370995452701150441612023781239651748192985127975335292525403258153506069696147377627368562913322552505025097401588513993145867808215817137463899635505289538553116422048822961450628181240697754315309046013480278713714292502148837457708855648901585243004811137861898444246800269053884097231733754552214447624061634017132610560214459718533083565506907810951307043313736708557120204890870392918068416115389927841616620910846164783625844102617344431960425873197810033155810307929195145906566824815680020374608572125351169952666728128832814630179543709580187028519699091415411028004350575515964761675095065390984761965886013698380430324703522376440608480518225486458222462032463454772581071270055178607219348172041803692038942392548068882739034570351438212559646233676165967126758128885509402934263557562264176597534603774832490890112818478026934288611521236636318673010287960471726509004638890981604489180060209661753618823612865832650200462862746633134475326952602229581574497916690595926831726614137837879533390297812476041995453150403377592408641886478014469756601586995708958953027367371114433692007375564634698734150472720796701272259049931935409751309724690525653717400336756646390585531581064146752922423929819675485646083631125536143629613085409779431049718074921058228380857685911657985911022252155651799386258593557566641051527561264979372222956364362524306381455991944297478303316808509866935619827459209259483370557812638179441700052313700957910374327233118664479123908328430720603843587479407168693564418800663605647284137039334947248226291543892646619069700778941506845511049069244338045789546983127875177340408434988148993027227172022589072390099308449552525000680673267325515342718834534455456424226775750405469482572527845837382128688156562031541735492569619790592572416499874197160880067258210665535788940202948331399371665951654274772264268323619750826637856453540820953936912430796282748430384912637069636255321967268905819883194087832250727502937743965896775578415443086171962134598982489446503245622443573728960540913165039421509136244904792592401707286300106826904666540676447068507505126020027418656104980314999270211654129715676551271435385722739449198703720523423126687038950579576123562636599551867980156031592322220754620832216919778531122206080710503712054116691948356461936524315969887658291103022369469031648658980509875296054348065091784819976240571618459287665400563976588756418425107860875068125701138547679918559350172915419827986208189575542772915747893885999250102296142275357535797288074362012796771931166244976104115644470468883268888333429161887393156515372268966018733679463393873651601665431247714287110109581998648514040455703190756494605289507426893849265292212325095331434975525622594194963972265888054002900084813275556994735411491306013822934265004263688700885992713009532582551449549697132624875647230213434637455345606675475126048714662827858917004829857474337076464707957254105477586444662991734554744772584728876434119382429569968133317531987187733944217742198596466436025255644961078616556314261316618647739157643481946302666154161980300987733819038892837307027924982425605133211532757352702448839802218394973665609854489567787710045753742902727755206326755830353024603829082521041948693187180185272327873881312697158341854075802918670675714776978151627202610323693548644901821025863472606049304938790676503782139775863707905064112347640359834122350357332756194306066958811604715887069836539432612940668169237167854344652639251927479916842240133057820129928222769462602676414756273695520644574433588943281109356688712018719866308651935368641903313581359881206692891247625898558666691566217369248265915743049051844340107551876497539141221975552917258054752513566429261631499839630322888590195211151400031074937855735854837488105625501588111376947825344665049177700872838951612827406812294266003765107717677827128898906438107504799195144119845045786351978177596872541955681310421075901241692442004664398162722165278785531289701080993061588542333288510096145100202606839569371891159742274973700782181316200456480546094477557229463914023732743774156462429925625198153520619328309786520844761527863902597516471868623694218016200918912363973721931755974902516994378416973475132179327542579036377206822577952062207597560349477421418022749630265546934164888970609258241340942055214790411152519836768341490531721770432503379072859089555692948109442380307834997299774157921749813716162163140001103289475707050710666784644448565539230322488112553847735223682971128202357664712928091440957394237857348708427973213602377394445976525761897737645059222622754783691633633572800644206556195227103902244722739259348129782021576979456706437469087916647534804830330101759417031815876001707525528394697673629306241969336782691281802969826997554109426596123982971635463856203142715502201445560741883488999996019206567008310024706216644667627201117517286894746896776109944746298548363190513944192775293333132210246716165279816451278758327734378251075619918793897253225689315914644263944166259163195504784346642406725086049294157751411373309132161459563233714623217670124085098316381711215256695689935560275221557939203659016442011349649515191073607309499044777478428294083112954843096516166334258350248762853173710908268213061434640820653223122758260558556775062712799141840180332099588469837585975415102472743227378531853318051433220045712004075405576729000590947985308133813446997453621447101497631420088086507178788317839899234922263730455564185475821817742781916551133345582077101676187314958449351327417794666687685667344733506176696242620160574184779711448697923848604430200965389608861037060060616075607050805579077790380554773948017920810842294996175259555323437138509252904824531383534512029436182766391914960714891546631247114315273254645921794291251238424609017659709161164231168889087835460947503936734267378950916162524557823909143097965778783819808950293981814952960955347302660094464628755615299698103240016755177460444337571148616053124082299976133165592948483981246896451209799707048245798296640353050011005499419568270839598721082126680568044839605943528546683377610703824673236887387877522208236220599550960131499941935185882329517717752682195816000638585325229290931182075207456949363111025383916729905620034047541490089058026626248236365425605341549029899593901564400804315810066599809031803877634089646394516387682950859857807250789319542561956683033630244002186661009888625697281772686518419942392510745266928629421780911119156894020490534898018932793356347049284991618363182011932250155489723686983482037959407343031317012125529279742439289855890641253751382066681889901358541348645058195949720715033096912951743424373390634582495534955165413506620150724580328733676078111597401928670932028615182003290713295988383709009099965120169703577586042260109605979508317206051290269812680166411332503277053512364976609890575026850316462654256742225629608342735565165565525514783216949117981234087364487941343780618178146508553746687184273973384279932384263857754959341491086076703693118415450913128599438348885648201765261469901834833063522152880049463951825716441599238824263606608304119078473163843272503506239710173914042452659853445908783980637629222687030398234273571041553674767117210978194925839167626580016357548111187320155703766446440249450313199056124036800730603115920357002245939343069205977804503773426551871851344864075875980172850117562329515405348298880572822044432485347604736628160702638463428285936527319158744269897215366366398805167712867968979495046043395739710026463323407053512348388108401790053686747640445677750519404723705905573094769015818725026546371639942238464582468363480030271144534480692157584885954595488596737522818521487389533518973825300604537163002577531161571673154441729359304666734469997450075447235846788321521322249767841797718789427213744162191317215198432949054040275945085964079029016640171061812560753043681661672443554114680889171977907912245580181644097442732181006092343730212270251158806204428602686030440530392710527689671310005669393422108969334673613531488342276780148429124218523626679852218758688744548040973927903476730144776304433475288504716774183374458449986789507672255301234874208706141650192396564949433661989044795573151605070429658050080531534305070351698004016015524804342203593708706651445415672041710895606228646576168632439664261133848601127095077255955077228355358726473422662144008170571811681395827544755856636153868442038324623505845346595857825692071578698693365867154707467766192220004566666276928004186399779383115462987359985856970873983033700895094623571151595405851883033356393933750850589294238309214266834523691448102733636551635131181349659628754834576030323356600095293220888440697862834989745566021476111796208816066318128802558132082589793977983994669193876281354815866472061285130216175143262649238532621649645984668747194109972263732513869587763622158914075670936383981791170062458032474342701689269050102265699544532819586367890273034361034791664131703385981716288941251180772201330392797218805590768511775689235565315441679254360832262101180501537244881855110727635426420870446961113731709604886881533407770666591977211874971147541033755182427320690583908613800615521597679665950684241740235714442260465366105776187704430052025328445490937874815836614259180732469802663271432653804261785252902604833707619079246661465937063639389418189066832112544498501869311167565238681040081578951706214427203653909135276525191619764329248210438550673188238449075473681957015498456199447616217634513843456385768352048303054596122090609180150250666379752568419725911894212018529330013565865533069749997572900743159128580271330765891711090267416884191645002975167257918519429042503949970413520849497272704079290407221424055964415541751331658210564677366872385968098304113830928323000903168601652676539236227247277100421257595352538730224276441496650648095564036649396998671804346826717162476560092682512252746429700127609872688654309856938993871605506504151616262421945971627362282631853781008373945853780013191602787777405114688669227855034604270656224438510350280749944146254391865920948431889366493121906471096556519209486536344382039871523284116482146900268713289843119062420596944458270526252992548674819053545229483237427808497958221289619137858403674807619273635348975200130954469338897624497436922321520726788753274929233066748817282697188178516190277034636086924479347402316572235116874894110655627895744442451902255643321451764753804837961811599987710088897389209014475428296729070676800444886502573125406486484165830123158561555163655422890764470433162641778036753164233482464180022537535961809537073168570787057087192630633530835263819646541745386603555993983104513588415566036400196444367683341677717245703806865403440367776325716489117319718728014456858286336033888780548520296230471326527457265219818934641985440870135786246386596363239150938679674411520074634343854328143640495011933151177720226497840494174217773779399180514334564949469199361015939810468519993604139902763549886229213855938411479249856040150636243015436408620633410361886864749062207881833172947230990392221757519836953824890920714347252849455159956826130977127083352423892119165165410031822820152549852578504944276965856110783813614565503288344071731322743062124735917696112932035155423134733235093248773722824243494615588248247508161439611967357556332906234506184659588064146803864078638528153525607558171097414255543800384243661566002164274275234380998053961789353367491056338764245122684932202093041403072257438671195385597505728876587849951921884307542097988032822173473765266005459323086436815841033893915473621073828102873043852745775830526092131949707953533467459347059502053518955662963735717356631683828460168918897278811408760248227990610920065100784892288139114290953932759343024376345687526045656450486211037291575207332191957212687594475839793702251905280572082955101942517735269133359267990691470963390904664541792916302348133833593977157498918409609428006047307836559739308119605950063612939492811996023989760287118781656144495168141857050224201071095459262011573972530969576539032529146160988098155683726686500480038791938895817772752276505379444760949631863438770344043509573495698902720644058401506696043636027585335402879325104730512605722093060949644999491181753624304376355945894813697625895172401864058658774320008312883875373143279352769507067121974914531065684181310546593269472077184652663502141423148325926581997474863398698885905908512045137466054826741493998208478580830869359892845410704962678442901113433118060030660263026528308846014716516246567740562559529659251643706079176062718159733637361450805350055103363607819600622673409836257431888589945104243407410013335609749380117895778081290246812142117639575699384801119403927636121558325019342076545597902348458460978309459439042549197729003479083200023298796584600921352966005247145914285014179190665541089644169330286042481168281532847992865887677524209112727389154356696284505121863503569008821785839673405463734923054427140199509913401763256221771072272246168351910151110231715356048385122202638525222160804025529368428236472166321353032000762345566532284000535156785652521475410223865370852688324268722977381982856521464607775212281385188707295291940184734216720043140958105072044463424854316446763453404999446841672823115680319397063695685155990981974467190766958760073047231462571579803183234439640933456030720745471996098849743046473046917385274145577221254269012234720509909819773028098604694599720145655548576945681942845574189419033433087759455351231826838804947076639723813224991054464970268433824838557719802737449878428620685486592343316342241263299639167700863472824547078732674160535573839620739129853417106522866427756825050612168283811291305485204635385452683304761657902303586470364447464777947126600950914481329510882458557146230677015290146219800375982070269159865685249473780401937847999514543741023895459618261807841335146870300116726607889975816784449000408291432310473897659004302922066818591596723499147101289124591582749383899982580246991327586357186816226499227109960830682144135400905991266720140430649066460370641224498873930809353368243211881675888413808410128152008469279199332264683289339635593551936024122549608325993419157226273452724839066130153997168966114469867898509338089922320464716620270770693306720386731737609649371062431193384309493071793479981840640592480362619111782752987988639844061506460238053994747305989907326765364643714966315163228747872930372370135567035437365753196728533949016697313335401807167695364532681547738491311365445724868820009148034986099038252170797361341985384813874264090080297380522040761593295943269592192833918577842350844855983406699315659375081297777159793909770158938154554415452763498591783071063980712414062994816811654551241929959275919093287838268025032318889350011650235502070282314013549005886319751837221484748922684015439321570913326486287817060192017890951708102295899836879979438640272591867362501382671816065907163366275382587909884184753352132545355369872187344917353658865188066441679618627086439840520217640771740046345612537461579237508667958491984365916805821917581275389587246766594923280429216064615476019586624152582577794581894431842063640515976119774804472581085909434066154047107237660401633612684171508937311159702862163728739487357218914258331703199487673502509876197259979359719287587293033818128501598285450171420491519186630515939511313483089617265248378431836437221705238939311879683224581317181291053579198230225766928818747960834846582942989067772101754368957407626510712328793862974843234486918463079602752145019172080603191233682113980354697244621185179623121105476107577738619313330531570352476782742594930502182634852301487828767785590526374301864704415715681490775980613900751864399628689216322720846560562447884046028782916036286479555445752859723246382925601113267749244491961461157518734200582509992231150611446792871683271763504094699763716476005063701212798258241575210791613800585256958892982438995723108096768833227309897064655283976348660569834295556105652019007806709836045541412202696903726162523253035971788438384671616502394694648704318038008589656795435720791950532101807911845950926705916638381613436801074846320211022420398212153034433857656761529138373432039086375330586999611379570231221339009237749364295159773456012879196145279095878734296927600823842751365263480223420683736055192854066687148215324215279430910934304488927054237561700441411106695865037615701354051926518445014627117843878620973301099186947614505093824158183522985307322268745828046046890667272667021592446343638005618978002516140617585752049939586817905500480916459888843417027774787799874110616967553080243338952257116263764984447058438848008128393852326242522519521034031397608621701015015423760221987800211273552492157607343515279239988461945497999926584449004394701658310345259992224609893726323849726150193119835334773293372213482979996656007471227789583358723393704393189718356862148113790841045946996565107084441379750604175903451942333824603785009309156414010473382526800679354185561460937087561322842758679961414614446351290869729726558560660269410070021221054333971807717444754163952935197431736759257593488507177628863283068204439962711084261750144756889641460844075060021939630457661265763765831265839338962837687288750603502379651036006418053229215103067008404355459107476267980214004326750155965031453758473776166630757560563735896996233357658916528327188491404352434932719358980032982576303545545995405115098114400580217427024386769966089951164192828136844110761854726977636890433019014822188772687280316522272728185807733346057601983156073792538924741737093572276878762032635340625525912213367022837095718267724963846829800919601750687372038295798583214814137778769708861727939328452291142311905340538810258377230259696660368778887345631479564258622733991826196693090501477704854238568820735941641982538156166099931205472338074434322619815032762190685855614680421208035980206219084905657331125644109545045596278185901529631221574440727126808759699404853430574718281342795642086737343234664017093813939254852179328314770355175277130083757497773560128958911778838591577896260569354732716185087639487021530380867144433618329639127860869645406986709223279264393267643845336222045818675267425636339363430283255909064783166867465760987223907047570518282218510954706804701774601322812859923315432116100620062781927768989445743409878069826797579817538939206870639222239699697247786035014256298831522977617599772371728087545053453727398097821845445972150376629796365823774826625448816935559816619176768548577009524573157336008919367552836594347429084615654788921068186555717622658396365343111578940927400147028536030615518865891089401683662238638061648758697053068876162197180499337187717149495436530202879424722504616686258054300409190546315906032529639301205154699109282342521566388598374538219038605289643594847792983583881443420839413256776308388409587012291982279998671793811832366473440497258654116507375619342841504709012386158042904316637091233033004820097207145362242651421293531057234327394835247327147693546839837430377628405597942179068839569618408445662734792694388823040611815229053738005331901135490861194609001183721719770291578250029632864009299336826508791875777995222668931796416193189116442438556268306769700463328698264622036941298107653472426053185801102338716081630323883862811385280385251623967044677045752876059229765163890785580663760612690048774042266799587580443873577278694501409216762837226492962551606729991963590493270856159961528199461669170075535219857217210130671584336089158001707191340807691884963679696449653188111484851061273035188205420093946619703438963247994176052066620664208673328759200629733240771600403431649805796752871247430041588404297149449457281616855401668535349853370897364989466967584720776846197340775145219108469459681950980582510951784413655972943885600354462746122267160759164886645554974096148207870451720587055379255785767716161413321263104785452372412810035026321741448537248313954534514871787899546795421483045452800741383649965244675152453916925799921957296188579357239643756903276113694835652108660285251605821361237214442309914980193756287238934433117728648502520357662284380275038813678714790562818809261398540291052107373121255705788136021160436813808392201696395671950278532637054713060738872617574192957801347346945012679900030991103682829895275481536849395179489736419517290076132570441967749115436232764149039262495994405887743195178473315345082734536162972023068339277463371732254976311671543547057620184958344275575700864405541430779041918576157140111121471418857575076166642750916099393204969719848473812691431505810739929940676206004083199603561858448888433623842266841186390691452062507692091845520206644312691115169525747516957526565857760967600782818399580830998423648148807971975436699190499305275083330633516214371457397964535777032731569466275713927458670466779724129811758708227869146371850763811046264491249080528333154921184991409784598779366491403874354543971069891987816467755910614961408729738766270141320408204013941256186822553231009454623469621764546588960759253047399547869496076099465130323972075524501787676449081472116289913485242843366805705076884014391138365523484482021753384259183797666422908365878488952562888375234193916320987424416527137078912087846467767912697371718217460808720965498149548802652309967106756096313889661781420172246964791415639492272570730666236947010509156951301604706222063201926519603733955405009605722725000927652679809520450534953880432892897374479974484855021131824690243030064472709848696691900934337948009400706105070520612993768837670224237734904283553918895209037664520427085137480044936891376363856559517245642563010849454388721960769685332628199264024847044835441932863667567300874065741166458163110255190612765705963555967316631910015818057877032994428347580131681332532657987504330920406193498474604782328657222149288188938779903667847263150452694332627245343884021329667983665580279861052045944570808449955106543031981318762727175881571318083527556611520851570942652820183185781370953790981139262660028488810535902773522993783482810410816994494239902214363901620472536726696398504015540096043085135038610875715025710338864270160294118870184295403417182711636920715537475336547649146423134916444745087812913652105020281873495606786847696092350612758246318972435189337763617827967798437801016152074014349762430642847609618418777949577732711252191540797156732748552481857994082887487411609518958267890588450912374282913908303700674123467933337046505248918268565677852853926832335323539147097659893254190796998258345961571129712847524150367627749570179130105743909582605561662276051129301993612958428582883995695614781065786053413332291572965084340602505622685140803236756798480624529676664211416707326326486016208570645071455542452820736222245854714479901476496897306654148472338323095830979671881370615483603931160362802163640281326880093937519521593988686488056848799437493591293417283567930560552711698555515869999713334495449569548356963365356066387390703318139259489859175036757350735878601249027514455937434164505234508826345176722101495500234303649908251038054553156121901706918541455374766670550524171319855132777729755663454121779016820920639593927018008641056439231909653058146477896654832277660636248709230769855861497185975035177483235262739821247879604908561092033009080578298010936379829261449318278270496904568405484287286380750540135582769563418243535419228443399430650791175524480931514423917502460419936132846958463760730770457978197250009553822597045324927360888493773547271774021295134339250782758848594366910838421551788872622544356222261325229843236742530501443505682447084498851488156383588969152134732582295465900751426055505170118642613986473869117332864468230242812919286469904804579518759150298422340870381572602099607896094627352295291826049192461696411820292224146331258432823101968678702173041903951536859979796609045481661023729206159261400541550739549762568972625311227032088046225875066597629854492384624939906100865703191496530026704294276395163508591130239818159934122143405320709378119021948864077422090397829216458094231923242405275280650959703128903625237364152002216573106306907086104046983531184076182714997892811438660672497784599111244948728167143443223822858864788640523941187295331611549842913692857989146413698829147117111727095071737457734616876381832398471138114841613489892537664396302992258321850658151953380784764383591228955862392264256530787973937545437759933373950086219198857122309079031563346999575557689710200038108403578842886587352586466282628203174656057335633239740294131194137956259872942742089059859640363833413696481645229050271416923227329374137518255501308384457589813509115220823886418762009162607612914908008316760050548213503358707208209952146756150723260854025399263087518957086091305307331486831633417699340212438995650514331087576907779360853776929028061074657719567942032956844901292434770775644659111573925341087324956078266772910367248144996813288467025281914479392149510249431401802801404251851026397964385966240414774181659168892993346468977643131529721322834877815628314194533614502732978771294130000121184828312893609182436531957465613980201177573866930854887870411786802067959895217070881495704608845802492257320619472934497135194888617932611641590645954988541716985383514839663837156655361958310906616890253677678987480931987745096058475187956673553721386018060683349996128550547956326311280285796539424836270112726113380326960339363520291178681271883847301244793596053948148765595102606381173690728862695153900998814453371124491622352481111585230294753952900647906469455019506939747642813373736406318400287664412085146409833442952814346286544876713684564607141623230858341997608135275499944772442463923024703363290683821041234742972889148913866290933859510246417877487283255686336375621042443554916577699084537855221828669718857858129107802011158567533218015192933596715504897177397124152543850530575444292474961953597637925919711997937423641629430482023435799941674611369774261026821871934998939026083525933532379358188916440527651212445174498872369825999350588245519755281943575368481473687785978167678242503627390479095032454092949007618239827682114576959356177142564948652983748117408377056588261687638400428070949675946752897424498010459530075803203608744428862539587092208884484330348476988643611592463969008755660464908396955441134811082890714163117835608530676676098628762633701794854804848776331449205464967866179140659326914928855363996529728453102871178673765822193520837966644783166547621676014001305733577431049509451915761937499441915512149030940551439232928247811095090535478661015335743909810967303482449920472509826229375579133561516222173655596065833157129222434265102689773243724995136824892326206213009896356560880117229081552185360939427429242954684228873663546377173247614995145156038504355600712765482917127270739459025666953083098040142742015815607075958373466999342503421871593610768799509096997453677744402549051848757248609282681392340511214461820023396365729344458267961667416705035991627020314050594660357823603635648656165797814855151869441379638318724490679351720955948346141045692831313212512413858554265378555502953703146845200051622726756170638056758560024896619440467524931677870513890836620834672648849640296424413841176312370319477999074496473789404088101856593380427802311311185889988954531808226440013412917604852670619956779697033197952408370151090615785873548078186344012250459505491359014153953889965513150675175984151764241546921147046743432664070554162928303428549760570508235785217229499079061694045600423523731166768933505207983970124023652399274231816582565313041900136133570963775599072397587281245509194726577890146987391537192452749128384991397622617920689997279354960431358330951324282022208599223210421272782851693754832145586512124289242860950305111078396815203654732281318009765688174155759930032708174993424429646342133884719902300563457083667170584642002445805509499409505532824502079787838460054221822525885320432047421955335358991250264406908386827768625625176468048235974789450100046529190834280457449099646716751948883260879790403404230221319469476381657749698541969990078753303573985246154832674214300839558637265864322830122620284248235737955788550288854893463519804999682894886235001797045082857324407655957843554065819090015461062763306197191378554103789220945553131638124505448615733571862528967279202126434634465646064753962912919903482869020907744701529061727131580229000237948435557523905219990794600068301617149836797055547691715091206927578793909241917530375510652249104142777694719249945693631966144237873541674278631341369461639255205989697955507022308631808044900460704546663155858603438517950986365843372497773353124561787003764787281820154737326700714672536816535352541709286778961031092573627135426198328810232672647942988206689027841984065518195854509642010195837805624140351527029587004879896427195775023993924785705587546233258492867934729171341295239552661489277590043120026630576567199794047506347541237683138066343470458097621969874641877857211918269045050844569184594869523215357328017226357339174448991666995009429046478695413914946935066012792611111173183392013075711026513186639539893007457785017016315202862806072104765776595219669053348649335712778080939314816593749846110271160059015933888637509439513960530352787586529383711565206010885056388214245720447593918039050538421706973912879582230576431533336217397542627660125289215984021165819972883309473572670440456125963766689747966548389940702473990929520457256119090304572487880807129791531110034630729246771669562062327859367517005337827448624416826144300270347125181988493312621743411542849512870943386708903659440250666122006516389961566224781140663876483041911436317750308743673057077934671864826435461964501149288573172425830419565658515225344146814197615152596955543434186846396026586191472463084235451414749596236079225374407267242614459254766832276475041096253864131450779958445672898517512231293972669810148333718073795701422258380850256138946213449722730103483112185232743900618000722784976650266286119471817884076112354778378891422028993566936028856164856755448372894792491077472316536089373524972912907288455360170547700482306821427283319448063622919327392351721376366235833417390208484859625909504526894672449365875848914322667920814075476070184071520955390669739895495232125004881397993204063177380149314596034086359451971700413290528654263554685552140358876866360286783098060423496746986205007259474366174975379961259297186370463548080245270781430080923068261810425322722472624184802922626657058189875183373537821178015113439814089442143868127131393659407290314586552645203908175590766803677461642963018540772857877358568276297933865414758334689344562177580152286343496426259439204633200464293006752052906979950418332800519011829487028061231878937426875040000280077881833756513076469884015575630452283267423896070337692456898437408067083601626940106234643251008776697641292755000758524961195430443549804534474836482580557157083918672839843675888867919676858187849091234615358341487736456071333260649899154673259342568267869026545263538013045084617186817324600140941780637603283107672248227254693164893602433093857488220852805467969717106527448164499303159664057417832811579850766142570915486323806489854477525798338742196264747182422362671235347986431504326719171574760171474079314185306673432299726108151005827404796330146360234906406574601135641955520985752282725892411171863850533902571059749763413706306882585817678775447422492491896028445542277304235279322188983748145311312091272152952941652906717982663525579677745624967646061761695550407491042566511909971055648299892932392653023138390742783959686043390062433520287584998662360159720535204592480210020311303721058330813353049560784604271342295941102825802844725637553538576782532371908306427266268026032069010550158543586767434677810059671530304950519681766792053894672816816995281553536225490526502752585123301803208399448723434462942146659459702563757573198999504549576776018564789943950772967376302212768548619578735403476338692958540030863300189401614180527674454655596952069752932379927783643321535743193860989120918509492186954191661746627519798265432109460497759987556233218734362334966168785216395508307842515922404488894799211878496402765155280263771746749264462056887362799614270954120915345209498536796878308669510813221292542066653097387608945825741028306886468995814724477897958031982326206187621876449750747537997588408723974000414821562806883473747224237934275200749210469369498312266918734124481295135543959337042974574289461890737971940747940355316266382541029396867937861837150896774912488175415685384257731997676579971363841642859098957331962074922547413649143211434653220865517547042491263305970034042869517126354779818053236959871288220533618557411086915346589152937365475397494656916860620708609561157471884995758669169656375415738351362599888059944726500651226235504963718924627848648194891943480662070734614135696593754340582368759235676639840025188575102902181204687560550867179401601188665362066066751855576105921693136120185474528229264954281341443964733695973457039767927996717737961805830719733803819472727407871443756824562612473900719542930224513299112255923252405687161242243936726430666597885740723564672311587875006372977499668102156835305363461439057184346361381510199272185662504162962363507314066900701896577711478831226875352808027391951541649927045305833572201977773557311995233016306009274683263962725157371754054163362758382030813951318335095604832243709174325819376439380403962022219962785214266108773985874370133586531488842156787896037095332987172910301312809964617776158987987506523611236364447116468550603902691700124976115435831434574329260033810677619682020840278102718879279566327953620857949957768126731135653066443463713130999033497167976916268289226730860152441050827141716961379626670057629303646340724338599564426650105517268927386306051277939965810864938243221260546481217400196612078144096476990011242113136582694833741523444541470576084509340791257323301277530774966296314358513619027251896181970019242136818333278213018403474514653588750665989111541007924525413875365509176269024855082208440263823734208477643945429830922375072428734674936657488514450152683370039254318195371719781098289745189461868013843855170598995317354525536943817210092931203650752437850636933142931344857565870553319400438524880625458869908028154692536560714775320279601476183244721576526468908255764614228744745653279122911432240320025118131116470229357537792828319931934059728223923548522178202159697860182195992334460071596455039861601929730075925494369951753566810930031828916142593311820669496397399599685643122169685639126396468747633972648251797573444494883422498357770386837071759952397361802317910809376602784910302270029337889613560123915025248304729641995683062134131196949755655135867552500033781397095081515638483052228180768603785179819558088913442346987881727173407807346037109579442607368406847691610310836949952203891154163168506905028483176519893038177874058936737741035071789518515592161377639069525076609134221746206746243097039993322208190865417883761060867944020337631234471712205491018121409924830966753343362776949456883189089043173604787321229081911308401149005754058768914938506312619137767318250755511592965335554324671135054065589349090770548302150087530206437920923769527668490319614793922805887680706281408270899497811118900923862301736522141464946606106256623183258260167635139373557578506748035596235962288662692030940387593540177334036556130515688923486994660191536216402800747021609152182815099732501693129672412356490608840690375718411407824316760282254510832995546734900937343882465253006595390898135805050603985333724747547708504955126320695019828244793636921798707542364775688636630830734972852483854122759608127521416803790365189044791925477678067202207522408083604196049994960698937428071409008763897461262015709858031299516739130356790177448761816587099921809422667604240530721200156631860027543926661307027600032692855056216812960376394410548374189600158270772051297245564010547867965786434702293261084269087826349674654062158326265355966861692734304648337900365467075191526036676110759025027816043214090643245692815744781772577249530925918356569855501554295989281517409244259761475832898332435309820418445178447807181366881820555244625166449605977112856046882957329582394782712938424188048345812386057958547605978141243222548167408594148832202249408298429781329159127715498612807807148722037069715579332277833859941679559887593879781033983928745794810136329755610777561551633534462923959419111380952253802315404675393062360994385608046974400933591691862695947914727397933966228650223173947101652575210908238023431939511775636901914242442154026234758149177182197948814943934919316543549624955695781638958022486563355603419663240872267780246664585861426321898284706246811231611816747059598542147407586556105349868143342220430891301059613218628789572289519791608024631948753748269564259234748475304205484425998508377083537866115169956046518413575796807599279748713663081595311154399690014081126124308880276154324570867857602278432307999296733377321461381542799053299088527114580299067875442334834461921569096935793436104624624372807014995081727731346718418889556750691582791772514368992574122747093522229149018911460776948265524059427103023958296274528343834136976978134254511909358757316756643370949745990115362621688695568563949715011500594429424099386177832878322536471657782614426332014422464609503659637381720314680270838147499965925572401413248847294725837567077953618540893299126127608485670074853522421791134008405550718019113151936733845417050150751301685492022081555288015826834193272758110963020887365776436863621122215926192273368340116321781945331617854453148764532673818611433955481567471855243508394615767736277984180083878847118316243328742188080216603477812561211046579446328927804710291407235631311824068450313960906267867730584418934665770596830731085662515688705723006122277491552527817742072092270610430039519714942499028895626639150612342388909287759925298012077865004548103826495888359867595967773867923634085793433208966940719534845882727880899203248002012709965991084587501355676306603014269156023998374786333199082213994358927433991351973079739414123044244212066546325798971591874245128874602727550764029298880444816132978909025575939669341267132489218069161524993633293503278549314231226493347353249807959097574433586183103896693225372617228577759893293757354497225788639632501886087804708692696863356119584246518057657110126728707237514768827197567135402621942450287946952570916505308597784220284286042347500497046004063766618529377228068825071571406493266145697016411928547321699265324771642609278295737282224111515434029027038344840293367593470917497260998104201545719527276961631297454666859260239573453567356115563703407247313454654538541647159584189465818297203462311264561195368260239705809136014908252852819746393292356803765029020386648071408269179278794999474374515955866121007728637854980944199302850248796342585408291219953275962052506765667099223435842720893706871240923135319608889912970319931966036888110690910561017235808538648698859088814214543037787211301825328254347168291464192056568889750430078087732679897374010630478560050951186948557864839022638307032991758490307050639379023803477937186702488263450014496807344848463396115692900038609587455513279570846814000847427424711304390421195355164139781767093494892971704904083113141922238678189457857048963533757148433026170773362502408456883613249554928741613274570477566540658230697063345276516495874830665861049644379903183257726823951190265754259864578341708961163971845524551019040776768500507976042098558308198936323549302489527329559923285823280064371552700436085917602471542039763876748191461621900673932209294289536238603807450055812963665704788355397980153546668603755250378673173401394640113847490085108174996319922014751468288306698600319446263908036911250395063538624747876751327593576670089930904196930487294829567243628402862874420140377210889761648798355028257389701734938747045952268162818498645750539574115408217320981810499832216437324633649019818183955406929684223672740882112146238955333680371626015932609661896297315669290396027256322346397477586080532897172441761561061027549987778500197439250473647271725549400952885204613913429298603040993979954733188198974803114637612894713754308604979587281226640723316285517196870727789663511022064285002175501683229252119281247856200163321858239602165396236019273347752990616370636019371964986058905483420467268081339431804346113072532024132291601628943600500261757986805672404766832000988358900392341158451689319135579042975977307646055413780417242208066487488588511998432788658978819836702523123199717345001584844511399622761795906159090401976542783714631003059577954497247674061584115292674901126157831319567210327480858454517087434619120713415958730507476745571645087797948773427564037238735539597130871894508723677881183477996404729861452410089790348553722461622869026687640178265156215478569467397345219745163142584995128004456060610766484308246052391717508286093423531746799550387141393278205115061460248256290541992931353149221968845645057441543234835316632859360299915128653942107790885602211714099716760662382682982064638288533299397789415208223554551925013051810885855129474849895159017347828020903105885427359067073725914051465692639060040227728916317222431638976697879952187845015070273512890363319011041304153602910727047520693466307541229115398493588249397068264420770698476723421591616689278658057668511629372208189685155943259242540138890659108955567452001654850773540989182055456941079830483009536895557384645479084068716531145893516469219595836895490094637542600206514789221507518663142959670319848536733268087423814418900330721163120619441307370119256810452833850162872505530503450583685138454474853015211780369861894527721750337654614195512879300947295783760071810466091310265363684180098806007754625608684085772721276328577403335701809110904394792219476833923795045338834084414829808755020477985161794913298679291086096843723931291869732949111514472110173973077571541652736049030371829711074157512188465009981666819877167268934179445199109186034721453834720888834537928222380350833507114009585230613119589993722542760960421239287121024410391765888553629768041765637737395055593310331829546964507894276474201881547651240730870172154927791868882249261048103444666598631993081298424176373331515274702779992869832038913327118091923165039192985972782610342223859762691154638866659292090195964747871251661621872087946628740368627248011276223278569729048974354716827192881326386077997857420361885527689410495530942486427813898534707835443290143897325638834643760157110353996091006530522876263588723028308232897309135782547840318014010559048624562592530641785364650668733978329035874992031532677248388237157481873845799725731843702137690358842630754464519269170116092079523414828141589774624469896276275590446223327719785939095562544962598715071373208029936507792927143750975729333766533006521108656744106067052452134578501137727854264334406023547649237035403966551468160969389159608832078098592386036614558613888175423158633169477880532290901853242497591232386561095586330995778787534565310800438666663171298179488845667235227120797915839975751479021600701792804628460362903495967484413513741218222176901486451778853097923299598682447826659900848211420228511668929077533810596852080274607518552683336185816599298238584395719986423548965892902665499393599715201411133037730312472010477840988791191354540206388583126034927000448944118189110441931672837204535137149788720391902084076951902173865312089499862774043131857589066762441258320379464069763863648948509578541679875768151111313417608318505034357178503525095117386343503957320723222440436641632752945386274402285001604023510269171384559617566905058518476504139481426260019193833278629154288024060745561225873360490151692923735624751987134364792753476894663946802905654938855963552824283161485536097517357540347074819590940793092378319269729179550798501414611456013378826193189911637410073401859786063599075745037936277120350985966412550114259607633894406495042436402397518695401544175586853359433969006743863913423144662017273926720818400254163626810987449176395868443450343617179563432901956644285292391635153431488304332426178486011688939212703997441967889478349136687541852162300179637315636327639087611059005304365905192265807750148682810683597975431210447128054558373109566417771907933658752150267251108878918422409587096990599846404612475307549018782077591886969375804294486415339828172533789545051147468502795356700754052742814199093191925892543985658408489247839210553490768920399844656618171272946637371863319578045766727660846811101301199432886781515586965991035482864369858645321948210013097197573947218838118430256934968165205591528665176812894491006963526449813270059002849250002146520984664847152970806288683848511559500585858186616466594540624498052147148130252822902616877917519341573288382287196267109459726076653091490312622155300919370810235925106460876519491028924049092556516042896133297922780984693233856719878436094339264770662711203605056176159225611020895239941697017696553673650581744740489795228788427245981493280964189928460919642035053227438501745589235728642352898432881646925032703987028639164881376993571916471360395525685878177930167155847148659209248223991460993860645578492200447150042040832916248460294166607714001262868879454474828990423695674210233966875610309818125171638650454111882468947876176097569434788899514159332337612580516277682902246643530182353600991651068820490178464058267785729206346206890214264731437991209052543375888823596394696299414789292819157526357897009552892607138303194148313028536648135184418910021970487227580139006360843415540781530495359347347270681727685692562987656216386115351383307369008663385466076698232177267205478849183112091279575451089295230695396959600037693797953678021762272241526286155853519884503100746794591143534020972197604580541153566116214367549257417585269419047240294633918138899608351110168855810384621777948379272046815261629832047474007826754146559905661167099279829940420886086973434422823905901681518758620123313833024182541967164537692811443378964358679927954651954071039048176397833138992569417798084939553430499620464030937983527630131852563599817423684623296932210623518533056262362785986706611968274901598595292689712241989468414950693704709415290987293085482853966258829966733889233116808711785154687947532393403705308958816763360607607991594334189653915313649633498233731886374728193515611093836260549621067039001991180498837740431445758647305857806131499972906640719531761311494129840435501915613215877540852063355457175221180899087149663671843371471535190511298045952122002247712632194451329180140952910947471741922830466179784723412864849363953306277592497665025260567095363142279663933909683073967042796044402552242765000417009247321072750405419304805516750656590797765135396170762065594912166177940219675343934950257184034536524226007925091862554449775027783708690546636901122729449837007390903579352190067491376223036051182902518492018400273911490994616923464317039140694222197112558080526449768305221753024432695571379174252557773214456647320462512361210205613563477593748938892800205994477447737774113050059859014980399908093574570777409108039044064283558852141746705671734264313371476438888888016452124618380953891468919128261997215501593302661387688356349418769590060369864423674868565774466151851747156008307792050282978438336876043633993081263321291114079976015756463567603540473219040521285074453560909199561301410925491280918051754877752321310618546607586470405186901245665957688063616510710205400459364990774275979157287814314615327625481407152460541015300408748158620951689637013271232247513024893698611212608766218903540575594794960540032691335999877042780651714857695504759575950914265026307245090966812985669703070409675382216294758273278374017038924810391124636629118851355330714209590758214257760655452556282614021934917309040040569819547070382046536484196934278182719445305783486024347346395933624469985945132479042769745392721028024940836077602149901791581958050847456651767835006059699263830278344039683396109768584442521278755790659278643052082738875298159238891795401098688381345859635454934082501671862677323023305047431628856856211124855104199908050966125374164254068970626784827627499087329368699556452239962279142863558413436531802428719733224207091198713361944236270017571631911180763298500093035756750000936014968587881650115203406768421534623972084539990287504293734710740474200029756927779787325671582524717899559966663977058116863907880797189263188116919293753408493831136407922898976099368691576410606397991525939349668081575358418497853422178572434004543431894848120644792016083551817727268487511124517772513795194453092925369336290023304704660030950436609890706412382899913647690462782698131437554545863954874958450918773901867795649912795736602382504606388421033140127399448396892635347591652696006410211266337715834681856321489709445702810150638798033942794604803383697670888037850629769405586086684748832318631357138366163870003867207828653302394558615589051653008049344125478577973814298880886214138546231063591519148868254045044275016413761790387507423399293319799434182626629166564392871785938322088670316306521153998538721221437067975737140137358825631171036336782995962062446733876878216166656719270425031054826735493676998211032986958288776312290180976979713576148904773675684180318993709426788658124228022631288420572703735808200662229945529851432996025596305548990718998193245790730456890500597832091884067723868302265066604790451664620188435917378543679222383968854103130773928198095406528047245186965801653432036801281281820919209441938223398197003460783884739081721159288218251317767898500056788255650157628973394094009779798394846666519929479441389289878540739940575552750582402986529533071195716961450766566183248974793086999221769856689016906871329230570115216843217788381687094988447302166327971023485236465394932357971068738229803789872978161194558627094047982687846693589593277755879729490321837626835849013151473335444410968179548300868060341970851798351197495269390303313458787627350770384946231908998687342822798749754071830900279346604786305700247856782086828000216232674898402686565681374758340727660332923510695741226282950147175619954188665567947814638330984932224531095794407048669948353960158977151716126489002423504880929259598713156840119926166090780983792101142400107211835199878313407802256690766488676848935212123747335113019203659046664816021057607695302778580508657072257303939433139452262811215912370837678646809812283883823791582045736645685145398558601141735532615043945449656421872774258321553223246722327490230964297200057523744102757703917002325500075571829952611670635817624940676887162537547833427283386251661105604997253046086791721733398760744344252633428976967651536372630147583069400174991810723654255813327535447024150146181441676911256508978053071663631326386619480102603488054446882249741074463026247520280382363839580184363320634502683816596182436286244277616401582572372134307347166961340923558937095090998012130385407022898389018251956112296749598318582680000678012359221237134106009987607618665346777885033516772282450209167030003440102434754307657259737724080786387120334191801897020386370346162048943222798817194452949928705646245208700718198005846565532976178367995162469230815965296652037991650852385331895725384386387206834994853698917415884428494496294734087005284777786199994769124309796068135570742707538651119018375192997808429469387306658246030349464672218777032008153597624117470074771025256235233495813853413227522898870406023524932662327772185668778950400907409742042015220841923729677224349066439045659259458430699192469467187662060350344905168026265804661691789692132866636671097172013204289389423194044702540019308000989576576992196337123006170090932219083261622911619919873100090193320650478997590690404224556602853124811237058789741412802808401910817063876197943693352836388838458509437084317101058598099021227038690441752256933840064191013471943208232377224933662921083717889964514574181203896867036630902340407090498120886231077192385449035441276303728419961477900412576227077102492689958882929296096956888635524954420825661466486260079809475552569675896395681068416423541696962238351206798743433711971551803914110366729200916429570500181110711260553263710249053123342420954240990208221006310574829405235670263158616066027746590080799666101326164202132122291570789924279729134214265941479436608462921328275643570384757309681348229062336575278959560843250321470365600307785754850435697705866009652185198864872885195595181587391365242210432711648097848617293263579224943333361021356813291087018694117038865651533176431828254950425360753509849879371141043996889626930740453126145210371810314177203885511552385665605507185952150401508455165194861518562294788975489117200538405943734319635171276848628513493980377451667651523161202632500401059011427689341651843781367983849797012785068685222298730246704277132507603727201629116920292836248786110937492707658833334324151894264767377509887886193172986029786330152861595728735077713591674312796843464133040996568105641227177789955295263466425998824018576366827326596413501875240172493308843845884037916335600617747845594808478996307118162631204172133621005716980635445796204153773538195886201777201753580968626810338618685663242419019709422586704559537048278239557378816568271201079601471056200219700408078173821054046529470132745659123341466780552290226558080327105005375570263890311585261966259355816432567770218744201469107886935912599970117951037426585720079816195047808653265900017785004431532071328002637544020194978692697374886494607731362084494503987001111916575703327294021238158761165273520443644179342523559499299287298126520497263796034631719320926156242730790309246340226304118488081762838065623489400004727509452712618641770744011375062848965785366444374394288035287867187111015068812627885761895219476563035005520639647201883766598935955918196514154561824261715161226516998177771469563137290801106816154239201353242044314763178505298959368031125522324958522404498678843645627259424411000817330004178187914815472039820164178537346203189846818573209511958848854274206170071219824277792611368775884592910310115588876823108220249830062520918757303338712405623422504695070937701196884443543951516750557711225608499204001239328952765153010634829098231201979608170090885632732909686588389469468664855116582334821188881308736185417221155483708278215169913763656731142106258470509115361069102942002488689060909409202085504172514416234741355952591317634915187478686378010793038112361165814670130902588260957617234225588497278591629755824404447862359220672812022039189932803272890863935578717866243449187433346912785893376346727618295808655247282241663183056082691197977738503160587612203658515985959575971193380838947252135835521231748345519748548203220487029198816347274864710500111152465084238220893122517437091716820560512247886483013069542582565410176979868217005878102369339724883914219200073013181299140757322240076771462510874545348639478051841470923125045851881192040961857329196769429228742934966195627309011098866604233963981365627157061221267378870887934748327561461855959304259418450842610981873222211364478890546245182706486245980346122116133592103814308461116292202592022679782612176121112767816740460830096399435388892256439453083514385532813656909301910407105807429164393793864396588853962833148208060433821977084775696415774916715132765941706981047348004421855549161644687317688356280775212987895898424201869806819847425652946762020360076126339702333216553145958175196658905510449601033574418799109886064291726559851337656956476781015832558490159748652040006176124189724285603706830989235589851673725170818674321883295355871802608496104237591555391785501106916240287468190575217899210967207140365205760711363293636093831395552428724046372918561489961990709821521571646847940457306866309127111798874812700480220076971786180062731883582678174589789285643810946943376414937542285759807390542438034905177765744869818338627189763444503630773750132084399200650044279696042893412665517034961782163010557905953715207500462621198193373430044570595000286195083334373944110677050005823643220885258283747781166396373155979639203501443808935615277279327135496984358971259858149762406334296819856730367092957622306841018333490348027790063319592067130009859309377026032676694745505552065842762376779090304038684617327894645913015749206679937087691466306810855148315251770335087760381627037267998592672876752976210016564919307938231923329736252397985742136041445285044421148199225356390028063613320268824209243016928573259285673530522927224716787446998570860749699165130412094277431243781018290840166427972055140980219461354838523737440541768801862737404238475114871938669271496348040024240187376346455270241302369185745474900243469590633036851521287390940183520639730706134002573441279858021428198074451582337710809866239229974977911240590255759909129913609861305099247864204630810426850740400343929349104802353335303057434480191002692063569514486976614919645598371754866579484977561130669777242465146188102426085342551609537462294538269470897669342734428377728347953214232593748967977398876971103749279170627554994216791204759136733047600283247629129660288488530536543708173075641757472014907185160663489873269646361622301958323851273742112171485807211502565601034248300352686857753627740136464053646638022013833503766979766867705643300627183881454986158630693343483241708694604265354855955180091956342145966943360934419101023504048453477819565037514938672992882219222776852509572077393495727084274460281110346025155135755275523670151619875571513555290387823781663420128077363190655767531762927468508465262896954381959540188869045684808777844440355520064248646792102008137096766955631102918602802408781747261450358875309483973969613285509188540656145959203566173687667100183367220155649643071842552151514146395766380161205118631801955214663371100758511226331217130485240634477720521505859431326321802375025463888766612152193063536984462286167628484375717922002551660853488348226545065680231398383495022551993126254673289014492658426192078359255722318715865722996826083739440639274776543140390520660355181518183738026333367373332542712555500006752860841668865564900190882667090767622351656771954493286892987587753389824648216036452624465205106071898414014420700910199326513713759725074883327273064084260043831932578423857685818792775350362863470066551011059961150310511633858743969610434176546550004138289867412354644926211029519937560399348132534630834697748632609243302080812506088517338749597577693304417243726250957583231629631899456591768283466448175250342406507972446844580534553680838125480124199648672472437419424807662897545409971530162709429996328275007179351141526228589728610182082351572036141787095558154747789369831685582199840011146064934301194108366729250928372538103651234403974594219084160221385667555741006294522657231187522772049454469736140634390502803253631596873885542998192039417434364504142971435629244231461189179002120295631782810364263425421822502623053396436730544476630409439828086967824788241532930230287671000303656906719259659141215034706731079733517303294128020747012860633728679811992921919559380126305906040467252623075795031432406934987162467117637190322036706485784727258234437829739624838218576236421478762402139766628316801399810585917675790388368295608350525722630264331331597553254005936464460498998851329230535579171650300721325795555692565911194115424539731902887892729377851266547258479173332037018835095375501700130812664070519342728933245221563368126756920693332313045067234624823949638725881496441428110230921511834042720828436074930703211689302836431641563221378935483535894119295078429719967974323242174301649859848900344705301723166902901208374576179352512264281980496459342094848129553347835834486288250728308956581420143828996806420931379375258274289380429111883110754809395564194985422917724496608873536311453375134461899184640788124926629572842919841819554858859651989273893839357670854525301844112359202732304226060704664231082344490393268342562354473797711368837700877788741840443320225868973289297522032172554646028745484220240730788676430541065919998571484615953846227229275349572711401490706844388037681206411253064028935423332877004354722384726997417919700976562612044550274634939518724606399076527245282929322470266840069143479094814320249487388706307673400012579842622910407196642297345977903679282134410792002492841033033458258283657340939402239636653774969052049565638289928554682064414227423068342029045080131701298050929710989655545630022905850861157929243192951185046468335241248175824622509457708152551860860401582116688705130126820458625974532329643208768266220345714680173584926592514652704952033116823738103148984458754200378017382456601061124298433150630065694372324569609336147951489524838145011149128070255973981764268637821692327575025628215056400402821560798716115242911816468133073136538648539104090244271743041173758079737753975181329407830916867511390564670114483219594743520161134038029417863407255145008559427798560768852014869669002684183451037105494353635600539856760019098955429132397598970657907393677976129538406522950581108877030406088553298468099569167584123172824201831824953032192673132222583047926904062269753864270392657643727918005085697728210009725531417362477638391719379825758900751401732445616714694054506040591474773540981767274522111341379733493200646827766157161468001649207400942600703050262510574734900682697897032157432369144626926643602262978223323632049066907845233008805321118215085522844082673593959052519435206617673453983538087964811129187672675891577707736874118495532977771162085349263937667830516216889224180976603791748840142428657317746796234060296623233085121400579169810750472579198997794824208047308757452371872136827738025791757236581481853515970286655389476538004522543724907708930691607968331891935997420488890776246501498298550919902316221123313521506927073899011984607975567825853815286205461083810735105860364176444583952572049733985903329229553700349778553034586905568268238183992686929395802241285885172288078971670889577392066212895783089943563423359069416524442634644691828612128666943238561325856811880926142546254181935471302684116349868328286742426756482903752361480637384073094051414686715710706009755874462395411769597902459979765316574262754125887094880091233807006339241907016850703372438881908878194885972106061561707088340612097049313974667464120708933998744348857688701841506937195872166789710509521365369435416300891673545312316536506103382744193175242315989864338850567441749118738712054428448634547163720576799351206553700358121734023366459622167007294008848543719585277232112954641331424623949331707100372775168268876997913857272468890038245187719076905972615862309442415590559566659778957387731146519895739690549939374319099974824531890984962577682858567716811780083687105842118160237582369645459549338510738264841911060860319482979797377244715535948074429347047406741067448899721485715589324770452404711491929148506367865549493446401289550141165427097310903761965451786606944212902959161964131659332058745732309024715570416100498077043600821520386090429530184548292437000390088512836727368222071783727780201348995910968980666314017280985098876173370929867106828105461398621057791216752807410771237650199945225666382618474338602176776596774580077708995093066336709702335249751732125432948805803604130266990197647779513740191939520535573954962452176146535249691317910239480643967845148242020097687439078500389563141622533996796302956268837093591290754376949788341754904239041043798209686951775080952193375797709085257543411607600972691284705295453387797441390059231569440501208222696054355094719864558046509083823791208799243514839851055665064984481109882393704037393852771716636799006833131289039246844819622620956430181285951652124738967624789573124960664993631630626517948467898423789218029495044571832396187656925126993018130744132545837662604676487438874684983419760624150032199774581396560392037733191019326816118328564343087797117119823269607506691007368132871989252958817776173450023976918284719676142844937637678357261806688827478786960117188158219571627438914105320528699725962467110367233567688007016837851364911073050107942262409833531257311788589879112169110585980073441631116112132665559101033735769784223380604071201861926991804919523308423430836207695873573781674861656351921731968134352008496263302096492522524407222620096483491837482981127992993016156068551592988234585455528114720134200326290768602082557822144559218383435596060109083673262061384562060755563711538184287061185997958428556292481293877185545246333231606664801798084731926383008927500533332574906323623058290391083335327973422290700222418035033825130053161949158079530295006191177749702102978365509830808382524088451426906266826678384386745524043213484472370047040825456447031943923094215941419788315214706788678316324166985204071060965183139486471723776966905252535797708668414578443590977806551644092791702603143593366460644957364638682472201719570670935996894124515098047227025380527822114062881973326142497044902001996765755885067595286425000643452707482086062338775145290213772944424226969831607444495113385158492659142103400569124092187359342345705822394158299718750953519725735481720984155620284507971635172976878556927761697204879058760568529263815246181975114160533288013005796823301722626863751709096173184841600718837042122350845480900900659503149964334662520902742610440860995542323894269991191890270455393260852229275187009065132022686561830827260195966856862688965243395009277277137402719171780921492390448330190003851338008347975751366713181049898589371332902762017421938529159448689227757379037481445203411415758804422888812847925211046683011592542393495301166772258477668495717628286247150176667473395945870752959751272177340874896608780603616954937799985486943080098611873670274710833391987293207327409178572245473202542191133571759824433913753497579878768466226879790360724875090326237638898998897359125743915007407673117128881472283502572311261295208060093140108967993167368145444064779787227135315087638153118338876485357316602653708727017211899542471556413264434200507725557499613475561889575551137521744761583048197253686473940707955073630038452916145954235153443060901051301871930687551412863173760123716081394192299316847431753371772296958510395003781123108584242520103858944169153221952852349185799214702009294527840789239558526649199860658100237708319741554790063930730419988560172900280629022809864237037734451957775130525268294030954177964918321018526497806366982633055247367014830167102951915669542258382658655757339053677556441451158315970980131055136532707012037507095835547934155192640556793618412545974672846318439229037374596259960803136347204923136622543465995736287276921905714476426394890474122188557414943164559531818785000741331772627480500911919554818719830931897023063147264101596429946994758759176320495098893779530131745776481645758779209951495118736600741545627203032295783466130801672250485317170778068928155241715623472234694299832495277510157324444109561540013206428905946627678091982989942400216804333817758427957384348620894459719628932184629957576187474419306756213177876709276324273268343474660747810302299583946172202684543491896895408675978837608554146257867412618333985915676246842235917516446877621588083358682446884855675872926502220675720407436728027535657795102936935626101520470392370196615430851661698202268408272343762944842002936189328624033630485184062882422600109533427511533682514018950729521060460427220218294635341755244628370119311719501880227012714509239185431168800104184810595771899542938349714082364947530269545095104635951348746771407633885609624592856140963239782322909658309978861547331471212186161585915614758987541793930752557799198346226525352958884094245998659595395543672668782094360085916116981690464298484335996498023049860627302337756684901190471988795651970416455772702582558158415028421345104221149788844713155026754087756341055101206723809036685169709495441339010548997780170924247844710747228036115109144989973383011811889833322717969795873851272688906305227574028397997927534519651277465373394626841291277119871728017747207437288220770579108939949949488069647601853257754605545242532180671620102482403466296372534310609137314394238640575276377990239929374513544538856716990087903966657263223817134056959998947380988056427593959204138944106156255397825073293282898673323276133564860991102800018412889522884650201629411241299408253818277603506985451082635924934708077448554330123564071372648699866711172203208362874257801197891071413748662479122445037039036847440461557525602709339758648992346958474919115267717609650716232187924415659628564675059693085362267657478913034849110566871846384734910711587001820212448042333078984315850043302466172843553144522931950705303768582513530978410716148244391113733453541217141864533647460939149537478546321974451856951084383816467153442998613918130426521429357855453224770446457013422197841273792237586666264786378129830169462349098888786139520476835855043815212237963009181918678879994875472000659800782304256454620788333399835488638838068721867090571500674019518779879050285404343794562918571733142220869695252563371356813734934871106359796114510531132439792286324028139735893809678494437543782245384758293521671755384894945550730882681939950858777239596418929081723088671981833765038311273820071864449769672478471378970128195619617307091480704959926320302057836538388571336477432766958132960200802239029045410018717713052919148989894780443598039662947877336008711584521434326969815045422897513098738414854075765033140599125647475649107443395136161858100820092068037710754157048197737036104526639187932792814385828647529387728127481645245930781859563244180450243941072535223019770839057548225175805584286439398876852760749176462360828356014899094836505091894313701935464393104853665712322332532473175273372308691626286174106257479911010438637617184487974467138265912215097018369779678203299409034491810920690210057152480550962691831891018292257658438815624671377641579288110460776308864437512792464995653435110800209608236538172430527691146125156731079638627068759142757521829925436972336572739856790861983029127651769676165409456467980760025757779513659536709679642877454293153927465006978318197895104047728666295599096192242339257005802265321454892980101826524670307448337142913488342400216975060687627392644571857029373909809085658549803650552479608083665533692910091669006567735866038122530763042259755147538141206764988188717792981989668651003072214614425092413992048338147806986804364473118799826794533828876675143306668086120537749829255489457086392452361754200308541455438857104643661328417426153647690840645037704974332485163349985183251029116316856927620772003206803845385421750152419490827656346689665677330152556024917209448046179156803158657308902722269470581696434594494832840924452542101580183897790867333730201612269231528739701873052179398017434716530719837468759120780788061589622990218706044989252803944864929904322558539842315181197148160361612337683607934811861230727529491695326085473420939896283679271210715030487642668218689463625526105971733002578687609487386290767936327335762570134074486951735165799034942606131254615974202143452987135405978750125903783304955932425336851177008033354370598494271747351898014982029533380108033686599720161627898951476328180879731160713792058421651301180277917380421697198987563896466147349979801236219401197461065405555899946823808736162255902024980562870935336057103151535378647526808083757581924206524589255625524635499748919371038598309290108394306783003605254532653073196222710926668258272093472993666730964675094011057464144295153370274018544502813798678361297111683823128975018729001427264963129568954261311040351873438979065541837886476841667730157211492738717457355099464098534646417944025523505869406209525477854710086707081950618195221156370256540564602378199114801171042653932160418502786996421040168418220886607247737678320168683817970851743888815698516545285886398831147960232206142585806297714210537259782677753726970355072364046742508697536054703470814749169519129862222859313872275656148103489091224298411848923602216802556675108882262022062429856744000126635433876290435177057008444812612182060820751168642108777674550771296561577990239107732046629569218220857153488651290162603923646051317301723221619899489585742477165408705899902827553770870504598411918005655487654779629643973194296709198265746830659412615056570548408813894378720935328717268861151131056607749005808502730385916422053017301481287005307193114770677342992481135239475599306432376225972011739124978135233619758524959918073352726377102473758349671178913681141981456914512383438430601248861145885019898957797430564888059052345603030674093156492719815448229149615894232646381888358786293340456434828357309956961870295015310576335969433560539018869917236517054450101203028476862495081386946197822938065564694628774839957198217583937929222457623919600169245728610860359210067293947321922784726827400232295497448199777631070095114500869554647669498004399719987172610779025238338854305737254821866725806983637456623576122567821373011344656283088142134947267413695893889747133661884344658570011836327668283190518033637982756727702273145805753465799226613452625864924985497091127678425745672378433636204747339244287701350992122683387179843989632082190028581009891326820508322968171596212052246724262912228509302132715306328408992035966850878252579491157259389938022083287716593714143129861323663401582452820068390887758302597290898821474669264021838373793579914474807361789222186860432995501693071681122082378010579464463707764457048446400889251399422951856773973431886481713094735479463039288219501614749896347385317463283650093343026303131220055601414952378146351785994666323054870917267353225150931752420553963663833144699860020971068633740765160139861529477299268794652862250692402816372840556987199858771757397739863688783282744053000101861971875669148739608211988837069210529131149396142807058436421879263180782584910232609049377105849392740343841100336231642723500287012499082563105203573649847280729705073641774928262455631767777074845916473494771559256707774835968107767052041456971940497051107140365490609892314239598623101370057855991867599127298339176758354236608294321618159964961396742425912588280044453774256599170531373283727562766803556486548528421543563224820592157619712056897394253400097634629809180871541928161921441697170837770198264632828302059823664163646885840333856484451961955959241346827876885556403008359320053862536537552402740270761872107167971290132409414037219798144784083827395223942927680588713752809835276398538760151956715014768667476834374840539113291084655536909372614499519439245002336964879264662616853779644904662849330688878231490250228600055059623069507245808292368093224036808981623465638306358710275476111658966257333772621373032806065567506287062963790989214826885455535068555674922584830207321945180269725207475374813869757759478925759355031841494195883887392445768082694192711630574703727544465044461668230869958287339630445379457168021008852311436810329257992068680409380275718443747873214223706243576020286289745959135901503515117503690324029457688604602720685945223594507168280531151699291067696360446139771541507842229512209126743287680095261102960429414533769321335626339624709784413363563735779963118931288066420718222799370619357138920182903879908275771135593334561948947052408343903408782494851043770136906218168732790880162853714430116006790925649100408073688305664259520244848000687674657818937015287548054023923993565435589626068908959065259245613290109215519904360663639119788534217780574359927697893680165377575395419839589563384189661875428436384664109304676236922541423088090580384802459008775118783049179339014754153747828942107622293045622471004466224569496824422903307642599275626620290463440214577386168823361759883085927574439061329420540612251223565548727487248675219472750441858492018569570064733966295522867176783418247631351693268284531762241454386042507270177843139712626688527570809289477549995120927960574965743475641536403019113845688280316466496592911846543440229187879118276174973874228070789931926713442494417569481333369450700480756562184317717844654092185649155333078038656160313599084108819314895684856011525897600224542026773186875443774687967168231239836350420553263470864214993648175796769060102100440795910626058679650013997211148025858740975113034232356961625869317049515673221857591396788792386600535567204830249253351534041874165611183550083493658147244770935119553921164278731193835870215417319393573045479749902543230115448184880979329286855314128706702339673725548309223897063132985738655231814418552705453589769919912481785036940644480111041841992001542006517432090350728904461673036173880751797720840499138169173351526040987624134167095035829286379888275809288332262479751113066762090411118223634756273699740591799490132048386646284663550619161780111653834059293137049834350384719613104364731005355426350828732767164316865804911772448937431391332252720835765489241450636412909744533342453265444434733084906043214180552923624476309783732827056726042572830166091581903902472410285484831078402670043891361862388269918703642315775968488496312325219592920849332067518448199375668948698378768355805746318372232131298842584078068942082313675322887224998467872702091735186233328714063239489142021486740156892944635663706693858960953461292977297163261530984004087134417963958762620933512311510950352002264529064415663166909133643140376767824669316676895839023014011804180671429295694541710444126851454362158955911829278098880564434859324133129463187721428037999419930172964489919121022740944191341768846986917346323271735172582344923475701975565828421127060829388409846278081620597042397117698340714565962859846151836494008823896695761702484697754212832599330251402626298864263573917320967312325848673718940472750883826908876917928726829879175679955819548490017819537288343768817377681564808086839683863931869433814048785916669761672419287728693213638899230188480227644281055736488409451046476239131798599098601984173182903458317101361292957296646132177864742674997813262916006967802647413122071581804182713144765522666359612244764428029876404117420766310418467400253693305569706472030912198807300402103482918846512201501511425008930576415290972127405020362652543337671113589956002428270394999711903735446820482442202531760621265572159288656193519639874713806299540303974620034048657672145693735502126298851139568997906891318846941862502847856666600374721060985551493193678667455693823065868740248879175492199317473966993347560036430209565794063884599679095489411659725520718177105752454676951630527174895736141067568726997500711863376114181086405240284720032378074783449362087724250258322945364129130336505079354335060725424959650560223960958491966605029367291108179564283684751316142029947573400520975522103203074916135647002556691864086850469092387689259856041976096418436113892505032384207841466611278044574943794095877390866315703978005526817968221920788604734115021973997889220820821885861065074049600077577302224526180930948146534632188012318016410832228943800929738306372643491478257504528921096960860993611985697715999895072208693805487878192942555639543440223096388286230509043959664437847760462039431374045796032499167068633411414842635612854006390787907412857480491315763690406888647348249631777865064269615330239988960935874413927352480130610496276696708873904793122733373040823198343748539492313812147158282180637249360519734200358827439633904494156207275883729500806518236344422496343927807072301231888339985627604332316732000106151563191261644788042264874108601101728918003193996221750541224974405316238645506108389208074150312329138639184076868129486102329190091920145255906161142118500114707924753407045858663057170908417073124107968137089769022853461471125891371669730391934853814707956187661322451362321753469210179246055343663020799889772323429735521636853168862578940437639519137772724542090096102053488959168380564632152323911386344105726145041796155868821037766479218429310984625819045835018696083798626470399903146381222066713885628714915678909041201726765008359576054480568145059259586436815196624780917027937187481003709540393250100587158616501909699603490655829462423005284930803466117763697074985531435711048273720483142689827762800719997400535254268630792996828399480560321980617424308157567189583577259238861891642314723900398598320276534494063382631701880746684568322187005397610643834536636745767546584028830012354252220725553013236813258959938128645056831564696622169445862774316751791402831400370571865684433417544659387876401367815462738235199950763129254623415525611293940198742840113615379678394776127292932426930457652764807141287967916917369241749905154191129900132272166829688322259806386169630020766525496431879460806733900838962589825307904007268795289861329976373662409881821862235868324661684453113540164389975479842767241328362460672042602872673506317405637564257704627171481341024350193557141673467527811235204791466177404999738018013662050269169709963116765787106772046262877306723992711538129657319416438497531562945567658668713684868662038286784901157208220577785912537560012663499637947364341699840740203719794604306784592113337281423224607668932696164154286703997394962295447130756197621516902354204280343498734981710612458864951921244440576432211665057644951747021264210059737854955536494495162759921001480203636465938738045096415868580387711761415767454832297891588196396235182260218721938348970338064596307613681111866026481080262640063643113115195361214426745950354964627817211670204495166713944768187133609328058728447671197264431436739588563852953200536372749267184934393458785374359653354066148361449302165244662945352548475091416432366673698851494391290851918154011038857843443567425760098604143860387221184301257064655621894720377408704496648908100964965539870263053814141441349334609578613433920577112909616268981059094875451493179845084760765316264373883336123515521355008147463425653460492372573586508791530559384681994664224656839270167690782847165839239501131234895616841176981757658189876850078422786860892775336987414875251863880378668680589909759927400498826933195324067542874050070094340907964453694056329851153392945370190241667346164792214895586434592196589112511838844951879074124771574262486414580574748787419542085230467288933348302564322093246567468586200670935167232706285934914687582428254769123451312174038266605875255495589882206511969782561493827067947878193295094280393452932178345534317264203848676345252088273708248530510318370744690534582676160802414516674597082987453918068017352958868347647613739970594735474071191113019477257966384621710084530019449960576058073200259739006056932565046073846206364744439220152380887464249462278664836861848915480425401900513444795752925532887561016334752009892884226208767446731530471577741357629556352007376916505664180111243442320550480662517947046399304175001327417660164532352389921081431473830003522247105897172188564348821982298678078178858473805444938622520922417611309707687576894860601455457204902563913506996455290047077734016729853758013268126708868744200638477177434809442952175000644071847044816605231038630128914288508325570632342512677171258401845642449202459596930398064916347080237905765263622563371249265357057156729282563279755866523709554007821267976830219479558094776888550782145227144273507151627334362891920611957088946983647640675623008660529528237508443574436306785909295901474338393701565369642545251634289735274836299467957533271848312661687465987106334228884767674643461459562597771198424604351898509151256481935805450230278942379970510690191926441356944241361171333062133441743324326565855408350360181556522088824699966536147451349483236654136469802824658603187503797246205075990178806649432472196807287774533209184153406118781336292470574443878119267262343300176281281562663956033974009375096571303688695082127136062651902078194315976617390971198250555562367727121266524618972271809540734963006117922357852545322971008887588856757744766545187326666177148470032410066380939424300943674432249036954440785274156379443707572867235408888070501143299329018622147419370490658894306734243463686799880045635746952057657016496476150581427202904082762298165670458150152814637552794944058770517821330248346512293942721205329342448981916012559973250512346330616097553315378321497280433407694105741994579038820434481135265935883782547287048757655968529997406446906320202145031421014719885878441032869771109150044337587893851124330607299223041253863264022490711548843032418503603231372587365462353810652606748738741700359814115182562921782436910957273550879692104871822464266229296692871872345793404730193839765047059084592585988534119233159507421479333673116840506060638240475494458229031141339883178397742580583497449120826998513205992301150316817976592442042651271656282127888592683513499572762997372544600235229461886995436996377152428089433616285025966082676512836716565321048730182931097088000284252308518913523069793897322247836007436346902018660080506272926518053783364033242407228159543317196104584530961507292934630410862712046835574987762842020244928945303883621796540782269608300402737991575678485997894546203970578485453083286312727875505487644559006817489555180026789869043091365619699892805388240530440688349918170422860080753617006410668613530898653351022117994825917633610601005930738820294095687766661994478286106747319564243418682884017241624152732984120648195845394997889005075988019074651520285982210783568212913869957252673369844931676798685234305162670352958672082261032885349884339210288393414340816825348217103753240303762538583019733634057754301240082983509608174491046329518064800435033394598840153002605829271780765712982749228820351689392816813454481191766266908197865925237218821520547234921261929249224349668054114815853395686749012761470600063825292601199532222779082523566472654538753154685504950232351229181880605324422615800371220210634725586225668270602484436789178237408121438158882495916398618629688999122545976249625965871251248459272869726645200194343213123397008547653490179738855160976183478622294592051173727217860426293317968629803910248053208787051904405714855934030056176353530414829574398019393755550970850940294013384907825000453188134613755014223100003113563890086644119462017720046859115450570194604554447166160906381519742614251158377683626688812208895674460295589886601275447180253421592124569181105083062830213014540653272361356942809879598392202974563441960049051732567955973041996439930821787601402187211386448394768525882637905388694484232386904972559067484758594581321266622809006493035973791390666145281037204161413765650457939862587697755709104224619107581444970018418924620930048141806597466498318692524762001213631041199642554205228212660704116830415371935911485633436146345573744569788703048692850401891515087052484441558466267200531966916019199415887028513922493946630948671097235008478232881916217149794000381943453734469851700299109083572965177854405570890694192715676941015341851751337973737250597996981040963447443538936281296513099615452626684567054372835810298678658652959387952722938981308480607634671836445378964888997571312192674418181760845824071108900153975674672016704979954160606740473467856965949720360492646382914371996489673508939200479107632995082003400807602909965230241570041401388895305966623608863882262370745326510820341406218148857380997206864928159188034165400217620734865575130097100719578362187486827788651635140997940905879389364939388396310960041835284214641497616319927320526194932349525325864199293892578749528118854560002373620811502044434256828690564936281780172606563039035606953661185570664193081429149908760389429613239810160346675743749903626972547991322538911563974634773806745643150640297823870173717158554060473981245037904292645108982277334748560868732789451854263751929272428867099711718397040336896896711540581343769598120045435493845495500106675216215437162948442150980666152117122939901703423899745792977830190468616835578457377092912121046320499468004083164987331503190124304373662557734752944642400991736425504230058375120937490083149485802492619676246733880980562946127248942242492482021679532812575465319456510494561763806404023722921702354828223149165685959144431703291733116047021093714087596865721786856337724895888399516931121077604506776822862724085112838029212978752301687264048817973649446349270756176800080886954491609368999661442660113697031662870378970324506000493603030905092070895582226703468348722017102703095484040032134784354323755100840351147665704185127632491713594945499740732939890626299786342430224448955871231109188180030754295727873039138406932225056192113873634866000772502089925711878434075366540360029711448696965105950554846848786286780254312644355212456885773359976081025861365959180446822504429895522735005334835447271253827881247535616996426701598101363951774763679498647369047056610981549905848248536508617121872273023964422883114904518207648982514526822206093123953277975780606434031669331793784714812321477206548931963585063116132211219997938656947436347696686619781877428023239276309024579354767861351432394414012287559477197376738377251814591019950581773359734615419400893726020251152636832462239057343894079850711221502784358166849024008479792034231608044418632749328820861190947314862042307738701956162122316903372105453491309683143753972966154387139002183427958853980956492860181371761824105066064793617660383612115329128274778373660049791432996098366679969648593327127328768070247878129002682704121503745030606600193545461522481772690471787941726746873999217681499689843587543385636739047852863428294210720717082188915730636137409902225902237150337036528924533023006064592573158283129906096457164812910907744421550923973093367948854941509338256716700634393106007286389167929571852858378101468309809630603556868998729006802337504567287135321810888228397699564963812900434683662920110665790501830607824656894763526903603329000859575480784996159263522833910298514553252573491287022269243227613036766839612930947175888345589016470209119347061173083975336119092754211658512610145232710197501725941611759016751322577341466769945026512153877535117998300811197805332630033952808998672832890325299139288057309442538559842497118314958294378043121943105257605056132301768327801901668441659976725885122521291951185057492277867533686351979035402282816110620595779102691136137458568236498363982827851134376232488410928441499065966043043759212837552129952158686157363939963678746090333301144228469812794477749324109117467108733052894662633057916438366804056480761470060825654746564484260923730760876895289874640440660804006407630909612663452474531999645377699856251501934030054012198334778596695449706175559601715676208665637504272318691233408460389702545196935076484063083534414218323116537897519318776172203336407699238126003611213248841873656965598508718453010467108292659336725936191155940455727326475887819752820220660287600500350001887115590955050128826700691051346268410329117801100858682210991014667684204334608115187098367589622950869953843541680041457895571738123019396530022061711034878269212426024973029352075111168883137438834488654718518312953033614686073700467095511330891035311703670408101001481802965590854371224416195509761200553646037978573539735091278148749353282173492779536754195411406617141976252728798072773185956334335960186759526172054950167036274047271256723284856578453690407901265825990840890204483344794490836137969509794032920119542112200924917162272291268380103943957544562021604792959151044849501520224382271929446630399546832075801356229026922388617946843095027936041948205376807009589686595902055483737108399186696734396081621624342604460354266785797661974091385378482169493768188018241993972523547372034209579765304444742055625233279108537167334994222065605864647273165632959360880792557949064278782668667163374222910816053377309519984117595918443884340450734709435820274805742666012336089470769558760118687217379087667297894659164073543927905490481551615744269967084920843634861695111275461402948876254618021998628905125043677065230220346606827407867977283831378053873018042629645443647423511645051715179069213569845347098673429743930468349360357901186366571805766238331555468722707634124528180170811989826971110280089473157769457144255232338174242115607186896493228168426184760373696739346633313741218346143724038347570985342683679640014915506884155532680288794054789693380427104537257463564049618342306283601060003444073153656328230041798290863027329129890583500646226991053625268778327589626256299619669245082517538012039143964834269113853833090721044738757398224256275092284376410247214050110612013473393293412690933107765327907446050905985433090743208017244257345332502766940431834130455345102213209750758369019249119493373994159673855956032262940154722979137277849054961395637825113308098868967466891291159013005793517656609002709369458720475035692092470024208972308983116591282795681142221807228956202349216403465614503042852484396840410198744485585918906596859142508856856368989295110553203900509849764490878484930627349584422582192481853142859924153280171824157415467454235626202535739134094751152766629932680732039257956932001255786181758603171612394226198656033443850137225923417595779122421198900122116293847200987108840592169383408319540383480248285009296773816623268037604349824429617412363965199697681555064481558851620254425831402926337899564660365897429541895854370558273598394126689532494035013406327269990602519400646424362390779056943131824870793203091519252913925066958333798065061654587416743521635781122570781497678868180826052000634933481880745186706325133358679296887617336772977407854853970099754858325230073866807860420039151161110728058238822299949102681615170306728653143762229659031569219670612324132160810264645487526585799945962165305163527996503485554703752220372368480222286178445752173971280517094293566344423488028685379477113102739842530395646421300600300765575788008699497212187253446171120902400027398882387388698024962636780221869638747865877384646572439944919855307589375543890068910549860703751924225841391246743897165016143296637042495489846401370920031598993279132930496052352636729708319957834046877437117299546694077932666883668421350961714714757223975278891355868025334978568386182587972946800056833661785860883031955310446591529998589239786870155389766496323460160293240788318692439112311487465348450228742969232915469468164402231838641512813488172616453406414534804447282105387388405815356872092396199103595310302290232577801093667358303317381162746742416841118488757517857676365129656320116328554952647042520260351044653676186966523722191888584010179291585261187124117352901988666948097150437016647835567463968816654619055744613566930791936848013546408791291757296570227278238935262674237098998183271185034727464842833341386819517024400145601654718557598498760182622254725859683298536158985082859702282693917894529535842119273182655671302520969927849432201742815768401654564162951051705240776945267527245495565736654297273726268791198693242533228619487967715157498509783133004515713993673110316756699505846469801201004004935857455371867820731050718620935707480375700702852778254638659770548943509766225102585415002292356677889771188296017003917590115450775469279091901134528787016842851229252867287041919385321632990729703234089395165878354122284182665254269206954545279753457011947918445226456718671228686395996290572045447557397383901993356847822502910836688698132098041519595042275883670807655691992190369836472116953295599154365098441973346527996600426901413870849969629344137862134562884146331108992579819393335517711812108442118388651831992428162095711992861235334278031647766459152568564161371349402562335638254635322665298588666876856464145954399848272331908420742167393440956385842616904565440720299608651991981000114647905699024296822316742197419342781975602258691198869031001041276995981506946882406145060417230753406139170206243796743073878496986470676722188974896177423854680280927865042414869516290602128063045883041781254856266959332527304059953875691214290340494095817176554784438545442578604985546980639347828263642859580356687570149126156834326598805539462377319290101169832942149492502338549798997709985235723785116366562886194581626816953711647986292546242527012095706762779483996348967949971208722946761533787655449107313415009872154461979727703819971982001075863314574310346645194358762841275510371184444512336288678004348198026800104184353350809930867816339443403661019349942600012384833702670310859154719395817254967582434995949925044638653900294220876902525825026257164875473289287845335367957163669841099223766862443286032724613360025144678600897824349528136168144894108864259186080213505832073675976365019863116072208372728875668866763724002158123890492847046179568935058046543701827707137600984441266332630572550605700561555579158427266145700319075329768280860744839277072329297476549163047698577404016356341850781432827216560963813505385539719082339580309731517928613440867561343431887305851321245610241644454693577567310919545685254048085962240809961154844449318794104301398651707902392974191452469124537952001415276319829569771979232581580710721876815075674637230877643478423707266891072186307777367883254814079639604308090616303531464966893072345091893462632506645224788777606946840781361039981162833601383410709197885898695510434506886343271929518231571900737306104204740142794696337858575930093911995705475281517291130068081548891558653895320924841304343277704232753894396163287050294033732675459681151469625669138244234875441795395525379105819637038028283919349653789338128288861085190354802006796629692586015104078168992671291216575408015631107906922244719249118587988218292105615922936503710587365493176034544995823773766730193612816378200612165950693658125886614127153019125699632404551249213821844015944138943268920863779362976690530265376804021625332909907374702681161165406070327661703070542851785722601234003221531390826279133074437694264533862403965661421862712712649583062811524793763327359002983901906628011438004359439582598366125540619210315535058243046043260209160524832331268141152121506865258821435999641992381713111239032444081729198616771993923283064763292981927031011063743213209521477677678332256654598303526230127600805214573775190334605288920420571102127839199383997214196570878941817935238752348323012417770479105262361222172596810894809711858847473881427812496354344955817808260846653724978037593168914129557440671817569006109784368239016136236179549614097622609921292856107147485178622275808507350985916568777916750276739363839272877436051709702085475135391720106763935486117605372523329739968268097363297454029019292642216780013438661308549875483082596375007106698030359153547906326752678796119633684564811023587514913501415980028344064979469412210714567648079676297017226851317911896821382927492707584704450481229720806453195633735962129399101612553261414751179792645188406874440292497123711034233891221269238295918128797306301067703866887147290040503918688143347546928238766736936520724277499880481416270524005867357026255565829209628322863015202390674954003166592203088643492636351971777674162714137854292120278318962699643531080275368424889381485201629969585448323617729595603756016388527771713188084555560633585551316427641321955973254677437389295076859668940761394527304576746168277026577702595541914244046793191435158257866131074177307772146152263485978083421015758884843385527926224373745985731798385837116317554430166321610915814280565303565598329031578527349529469915640024125914247686694076442807300130437025394292930434519604218402506129723877863973681825039662362412313104303614693714671952099988138345055718312555355716941274858381687022281916705839576814292011428097567748287032440296680015978960588633817630885740823201637227438756903578850387172053381476916971457804531692034360161510801163150076668635067815506618145237066433521585907151141935861934122586987659440738656863783063881147966744095340708734010408820406132405790892813056186354407650759909101267795146102114402385505084796528955651318248449998684817259488483215318595215443877912054884100779057523545015131664955426849573291454370428734177561633325479342226261402059762835228209928654097510612613323254730047080156998640829714305751636935711590071945798028414932170491119588033012473938820487670722864109434806762444181446015077284002079832905403301604491282223566560696884234282468894076399015903836576525593571698402379723050846427960712284114664747467764678069601264156754113127886311604026713222318696575046804507626820498419470927863779619419585771147960482794743754003270090808966800904519656722233150079090399172523796513376317369260872293352775562028355239915624252640901268385105146358440579737486358441513416497125537288665812575834160178547593684393699883323570943566137076617792858536260379617706249966806949004437653992680013490594635092538790348790158963329554690327588471147638356240478417395772651678235511052615412215757189594185825082011259935721515507869244047108071657154284887088256964954117757435108005188973273350205801895765620360266522115961090519880695163515602614028120053719730759288464965692590156033919862945708390731546556464382250210696803624330926373458049060618986272071612206744142990353525944076166459121339955056421750708289159513792447978347547493171834601685760576956631619931747491296213523493775206906123255949066574161804614002414497617815943074787122335762520467986903159050625712428309949541426464116340941861456442349617118678339160209145628878899553195229105579268494947128809817310567061639181425324045148951421610559287757259403007065049727002104534458859082077744416429425347194082566110039579242801552042497730538068179416497512088365147683253281880654996404105982859583012929394386004995022835365036741795585060193530898092882671261709727366796393137084114106025023289890864530410229682917356142555080983227859053419855448258643067396964008928117956991560176469120884738526221289608604438927945915045376525054329178421307126932272829025662749566726385573454237879907565484231942499546369324049879628889071195043315792289261399025918887990692871979892179866776553993317898099764442993781412613384074559022078394146866589844182284105336005625454680304963189641526248889295506129894651535936973995211488765073204608047755731131563843467983233782029146294210852831613498592448656517594174465016515325895833415828174260918674202898569534829276545498661460940885423974042942763492522011542585656215679230612694671558959466118218751991757347722978591603047739642756493409507964042549582560520502367522156722695547013623204637898802692516901645980684703415327217850559010837676384735606819440893530988488748719818546704651914837988727119618635447701425699666725568848722444679769743389108628767120811020472570070853706018319420467324305998987003838845028276228126846042405186417445333392904159466696294193099709290163978522628799747307082890368332939520464980445253880844384697714579888528743826492414167887485651105076198856582001325046893993938747668701646440343620145962060470096659347874203691829542905710321824826466913537339938136099258143228838728340485600792891109856714149735213929510243191630649175879179872972611572884187763861658473119341333953055373197211699734487578152106370366589647921837573307578910488959378102692445758697051913962428343487059128941766411722465500834231402803443751014236830278358233724621223672379641836040267911030306017080279681454965954128458024707507407046084590011622607636238112362573130377304857218397015451061461558813006194545551098778255689964088254589841139279873938334029359207729732045860505668379558381228271905949676712243853810570511856076132359054937107307249939914135225686269399803512925253877262886177614810933146940032185113450663093040496642081614076980950254190356459109809624446268719650636974879308128377700183054464759590239442789980618095114356434776276298564254974568136020861779323314516073936671162727167821544347944005597711267843813828054222971970995357460056163629057389763257015069945972586871335243306274006308366711666705280460766406696782868896032695566519846662468994019267704047277960603446626632821369108970512463483879589431840603250025198087197608299361579367259167985508238574511536135223025896313270734845781019144497301080202052278405900241467149252142907744127180721957385473123638996990288398703739781633150149422624933042359926742646490464001032443451104242171662435347702919241242160300235186946721615839363957089882918848212288810968750503177699137285908653760117547754816319370506369199949734391839370198925879411658258875584331970044034054052732869116720634563573187923702906381162936330744763430089876490041826516253371719807436260573560478502333223246445825722845760557485815044816128712998088397634433623567959728852922824108535477665951913115617023961351774497211136282408325342246330009540446173909447669284203912844316987035799370648737422139375594828668738847267895637862861574397446479809414155053640807169758600119486052433205753398808489923342164780495766696059114613246144482334201353716320613726654785296219835190259302393907742343996861912554073386083170065739375548542212798614893770905634311825945702257849088314999763756656189154114300852186358662339393319540271346124051238357753177666182192175826382843208379809785057542071645809364397634551381829412066589677321294813987166181998497286321848791773704777095727647319345196046826488703284137968319784074209627152569860254012187826297558670374418343083228195844679275018959664414300257055698414944019210503670394062861543932343778456751868600942236020033757379727248941297653008813025250999598685564717199028335780340693407514113194307350973112233654079043566514478492507016631268668818244747660795337643365547430137740171928153643206955677586145757801675487995089339500191342036656095206650217239110180369190047358823820649845223889373227764538117943430565845289550104114054009767901976958188476043248388612786340240205245563285709299883171635901926690245037321236499609525323052186304150510869586666151752377522324603442696151014428478665391242741025295582876697678510490696198825963483017461865639830043315636988769700293304506992552264087049722281939948310617588480903292376246291407103455359858466946597132990996690473590329038699226604470606330746100915349716810127234194467616208148019521427885797195862700355734360623621224602678636900533668579436780574997401842705844580217544343773247014867624768754958710886276294102936128877189635738450245361985302898126907139995729119702221253663922048820647890042223222317701744787905825384210806887389790550062737078084521590150807278603880835749327545784954516238286518075374042214358440583478168022830442252562550148894986565084986936354399984105867810650603571900737334080083487561565833103752651047026272516787736668045866907069729807354785554260369023963315377330446863838151062315940774404093262606036812656039070147391505268358667278604785404203009299007926811542332136036063457053839790214849751847419476986355278574322823414622625628157933694355314960619717047280691504096104910507958675074555113599595418602860638527960709990074491126905211152909402444925272284242882038865387648076434284981879321822123938883903840306916913576974149481691263048593674344874495902163492160072594426426547255131244423476880534438913989611148173181949982123479488876058892050926800068419208203602819279348869195161362812459309349579348522168397283905218793834195632560132653952139940243390925821940151140977186846667273136945552978970682023860797291752849216079811798774487091928844978399341012794033464511172598394222945482699478959278763360234835039341648000140619642250827374552184002127372952251242304921395262247356984650087622914759473672208731369137701638577272958925298054141004914905344255890849052233679543964862748787397920274741155571489521444824495189825214052588762584613243530303824773170786426439544717400087672908986205549774856756572688835017640582783761238598890666748816667326168674152273119779029543051003998861891297354168262322646708078571251173610488738106117643115553101563294508772624237047244490608672569390558421455906001032295446025410660982761100695692727365010608301371253949374172095072452968542029595413979671581951964564714000495040239176138326591703006448861937945446962753167619302630164101079864968686042842738627665021569722949512213670298059179634835563590654357109066964936796141449670392959103948460355131033439544906348348844587916195727358523166463214636020392521336354286160534330734931651702647710786120209164303020112601644783722080395923388423585029794561061727940877633480290041847435697229906643266247353506981072711339107200497174599422459479009326103845703426253945752048824565749519306747025942585993863164377757198298600844126084911444757868534067878631337783450489601707995882974187990037002618839834135469795416161184873772743100803463230684326780052234659914024311905353435006450097559966548081429875515618098599351779738369603969773695610807081478604170064199510886099233567032711430710183981883559180433847533121104098386643150025967984904956007057718040447317785459515039992128508204340257802755627052465810567517843166395793572225374463568669108049252364811504553700030984977376921752116316286056452358983892423213705126618025810472254732294879824091024927213262878614299114353544989071263699371537358754004398431535596568597680603049228805855063706386154324911671459784464045802958936104605203303130955124527360933764340789996527141887045549730669761380353038236574445730590670704346320006458215893120396976114621538113708793637410900023526154804404326369769043955043332076348877973416129626260238591685056427591471612633536376981441788117728825965197814476196943301157108036159974246843111656032039052559785165868538695199176630436081399399091609078999977329864749133447482721275927120881214694767882784828093320485128787327384221420189485209322120990620670761277871232895714141895513091525327307935671822334434144111367898949430854915293813694818247077737423315319539962739277828416182346646455792518485346758327128726429038729036433192168284816013532117480645341940564569510505717515360531870649768310376104527567172246445816833770307878248399598893990397894967320837985751932092748247071644856316326258154449641226404290623491967373460986933457020791232038566438617036133094433584500241842280282819616355490879217395498066282821456207456715122684146082999541739666034849911759093970463615434669966829893181256310904433892112441705316076894809778469998779583767078299140350024551163484417775273944949415409884087840261476832841015046351721217653670250153476348580654832162524988519990726688475867387266757198094933809974574832579244676875322726347734027594770225727151539742582482353280859257044052201452706377832779016844693788499217507821420058450108319129964989293335084347906486071369282409294077038451314317290583028923317969128624474835704766089929422270557139606594054163202878900103537920161866334337274152959134453369870054955143541084710128989218749772798981041064996462682415449434886230622375854478100747707178907026953646135417663922754363328693596993731722485733057076779944314656451633202189741836707388100299598022161052027428175525539818913651487352321000056765816639332885502826270979241169813072719172373633211525801579118511308500798699771163898913878392902034807739788871018618145361310386973466601534043885937595061121604961048021271487856719735201878061824908133204168452542197934734035908859957672287821550393167866831172570751931022336225968685845392733243706893647654241169693556408906369758928968386574854613028737449267325893593741567821513552480460953522656272015395353971800130192775732559990844652719938091811212432562199288373193602940397244678862035353281371373916295772963206203212076933462234111923778253540696379054704558082358806615715546293785526276072251309429645145127085335336845921820925201250809375493746304027234179407211218812479851524180527534916859819208576934904921179785453929329420765004914428916245706867326306754931737437020910439766462817060731193616080525243972711013996060464506756780117199717436754573203055179027902706153829106634870596783399506457868208278668622483422570164590545318253176322822414371274037258817568513534618000032882834871930682004323954975315612675458510137121376425088115606997106822264853884286065861444026859805502601138839110512209780006697656261068050862780887997404635936901216032515523486797939089852002286420484719994569080268909453231448538556972629591350720514009699516960573231272271615617077510703148931594104907218350274721789653421597252091083706565240048766248357337602481987823069419286661206789599612172364317141038295614832932223163009405164484329135935968264008267609342266872081887987543921338140268119666263789830056013611253720360116774906063199357473048103004997018752400703967217692446226904557547427790419431516446222291086710919362447014701932861807903931291248464539736288293958772609012664999370222523314164893564253159266540783176778104543726655950051726169965515046979132583377593229523663655922409635605794346202056881847866835556580488988735315828140877724986731517915322027618813674488301625846824435429839058571566613304562031369378769834575473026559734236346411451834202713242522755168861425761961740013602096798067116849111742243518441834001434215011929603261570636598736243649195375753111290260955140379194668266093145732789226184587850984415590787516425752433706834605177884343887344902586197162231481198257064133507619700332429790924657449246106794770378896557225369984864737691188367823225276810893527389247424322444679207213294265442848973932419660149500044349816489933639023855024570701094275215823390960117319650259177663322587310450350809034304181483846987419042834305390498036445619833273737249844402044423610311345667612303949108172880681846392705757474871985677448008398500284949280341131881354213349353250172520108984512009620524131867867798056683560624885594845399667429285157229591821974807653482546603436592873915949776731274670401404311303099173196231210102396040215085027878801500528656999993851333941922834142804178417064923904365173744193700573686035636178370249246794551260952373495019119070325555087200494987962921377222239690013191541779132138116390862624371252678850961741855523279556820575770754928565839678045655225683845747163558912984773757775952863306172953947408456079380776354847654097836398219816638311122340984481610953956653331096299761665044101147519487921890475691129976150472766872645796971300563303553371533117970347750292981370285372537910229811361932948490724352808368535871826250072657968884590237165770780001597102520092577418401989434369737586127501760410915743418112749439642166478836204446504460891771350368794035662939581675580009041687529042687486199373117216708344769416268266914972822067521977362871657464679530801648614736368810740694989381663549838529738582610796632642332375539740671059135499045568302132829109745063382086841356351210787566666801053758114183290650574959210952065748662411599073627278680607277567508404673584122643723456112100001581917797083164935718122092047738031824847005951123816656163296089395837929468554435891322029198733995571798439483042424288516216046837027931626984857022942817010086369821617050889384486481844437547082395661535352233382700054001425753310062455013707600161626241455387714181447746009437299727964279606881184109504175015367695300418665599934882826204567488837272279954475563075594750279800814763212309813608883687981353825622467917214768471335398259979567100193816106981453928795418879168036599560700018789716002850987977434772829303328632853472226482163379587460664878903227465241724297049595657374886322087434784622433538009126585566845419931537726534375548410302958351178353069154175299564327091127154610956925926645936365023128616871954258717538679214256021708159255402478091720233821166845040296438698947692565252683413609521290145982251937866005666239769049999038196755982313222645455743093380980350984961156007512960311856127174237651194596296956858658141374917149086048477095651866650083324336724290936930900782550288805841760773219797205858777353668384168391914315885802406288677489617163194915083788239730873696530699672032568125983390057612376353069123430600728705753367870502034586182747039574701830038477050400500605730002123248713563318091542955049316037042791321701520013487670544535571857202533909714488120776761518000948379219517393032021335396562110996156971045318911411792544827844353444075832699287100767312629361049901677635486982380581856800006461547385024765485715736028649865553911404765681879544905867512536986635086550816886251714467365453865978383526136046869200578227630101283747331166946104555786924763304002875507125239019294025618365465260777631517704061654294401451716669867225271392967224971205911472174597976379413060948607334396708151511126322322139366020029821121573379608760940697450521665922660521963517076016383237389346345802263902320720560244396314959555011139416054102176977876675870182794508805187900658588871822975215069798988190631293615810268017898290918610667373778969186161456350000554678242179860011997219971155032849263592231919013337807912057935225074710206486794326819461282746344167652817000178200965994970333859123459277387655488230425896131802975393840558767705357887280663837102828136219703557165513749058828397078894406562591545678840001065905215440815437974807043654235895842054120404049024002020020132154178230085943421222631282180379778512325464587557876265025648804205270981912031437617756911758189506706797507684747107720913700449412632852641845617513525503266061299814680933021899803168414722470805303876932227691485233032939049445625188084015380779497580273768268956624781744219362147295688372616375377905053493240826202920513423449360395941992849294107109410457401519466495913267112098313990219495766368743814911473087360648330803186474276824909440117167865378614174945011389704964467585349239988814522446037879537651702630684863720648158062858417664566498927635541550749470145495414688096428510051867566398739886748657082878001838932496474391890403156238097503460374730707062891271229462665338736812687049730383547629854016386304089131420665457435705206293716714514684045904920687616374838911033778810385195298088715043135433784319454538304892690450528558095610361075157034686182163437432409983875510614380301370479041661984080265016538125466568434902911221948538088071233121171956911424707776651021315781476152866263368128889503982066368373474155201033426179027275075440276712719984908031513006560017787458034290588302103173425537959187027091704207575274917774000142291891427617472901462497750774227381008833215213316866536177980689463819403058502032968637371279651509352678885853068097043141651103054225470633230851803651257579056573465732897642816988775710543248138319781869217176424156407196526316401801588903850683942330377719934541589553666741499882769206079052590214370505604905171099864398053820661618983476565868285949606940682119783652476064300236996174406949408364668587141219388934816327799545024540728226351129121802613487183047804401570940969584055523525229279189855184860996559839704562686700921320371768878128958635511598206556508255935103513536906735320466290566459387921096063398835112665451407598758324928125319907198677492651650581270831596580141220544698493273502025235573420879480235516829631878078643117400309539980712183303371821518267008754717563000950142687849014943507459751109272958238427108141203990117206048918989598498775153528312378699103536212802352599755767059445650746003041093984356095012720302174796600655566592427212995549627664836706861811350785878493415701545881094577485794972823226035829342821115313313454964612450914357212638083781989669689581391705938585637254727910618161968332928951463330804338671970692605587153804948294476059392783421789095434464669258773684828883426001279733259270039756014751776326521981615435154731190341919500604136927739115306376153178816661023377806300581583890285602571740928453745136344308906293124025253322498359524279644211384187687483686261648463763339524793795170393683349271596298450511861655122225233601624680680647291901077934116480221101155665125378428026424086689339273794076289103266583401238968123630283387476031273796524557082450565585229277162994518152427784063847809470528340077490802495107251899660964457679913741040058929476695138322096998537623504447378907739310167513075654293272303345933086538248091007690813953908034107302091390863001031627394182155104765682530687400635357385221303640332232759147275242733834233670042351700998697359486158693213207142731772020881251952439960639559926529819683651739321163024577459730754908374371378892715806024425203533683025591097969654783972867682367764644209620891409042412658516492279689595635788319064855135209819584150504125602552417495670828564622258097696651505009805273109803486098027466472214699795184157552308741871178009613215858507230230176694630508104014193565486432068808159684391846584556544978383589312637552304381754555086409824913602779032500614959372552345874543134459296606801352810452434697391829670932384877641544175043834281909270366689629558941737118336670409896641868599310247088822447770330772813569402460625690854659737678085708228108103917394498139480409116485740464288681147859479415003637496607819426564145655160691976297253610014860216649465475703186246687263906430361278552307077404826836805413597775530990130777252623826477271323179570680800779649601169084105186012623004335980461523436194458733110292552623510167005358870252480666863418370377539183502507443649152710933336288802572798081098755120968823109684973920249192974074224035581355899145092771261203585122854409872777455275568008897513610519223809090313035668502942282142957243334438120876733026892547859928586419874926227492996185341463855982445943446313756841535797512911069497783946996224910114487023354975830320304557519204609896086148104961837956125063065014995162276201686061589798444723175854335663388253343189772222301556578622560724017886130376661746143631178757037105623275309528105364785255091263888616086773584658592671197167564693203604926486850309668541114165560669154930775796246297339856705880359867922543808213115979621712315810273530701058046379565132698473345644365798905070320442773743199366221079435153567806849927486189190503243772062059331862046735539872774281223176881578170226674069904578043438888264415250326882910488879840170065382673957005218828059904251103124602908598153793081419288391238258346961250884255976654533566241634680970664668103009645626013551320893842408731974226026914049969652504706302384359527362757250350885999148680936377211817882559586784418873753215014966881579768413658210090082672445779025257055040791699162542564138977088680714055282159158333119738816784537397166860489715132327101791463467201726505770999979831190156663206229154003404828716238597919166772230925694148272652809945552925599046801714085330302583968159136288853663409316911532153436856714829663100017878164937006555386859121924644270487137312968796311354561990270643183534911043679684492669387936222959391493619334758742480959654014999321639428469972799218974751168770992155730945882897804668792118347555834353112528090161619922889257404278462609296056906602879370325396459821708478269692653810550895124691833159270720595008149293722575038269279129092979983306249949189143966341011601159758352711717797811299095714813098095733773875018455196887527799959834509243121075953217195572819833602054858429209033124095719711315509175789618491496542450810066572248776201892671210461573799364000417832171595712512758577377564901416381843517001023744846256551289079584263696472138484824059608138342141012962141070569356474452976570120191347122187778758842809338724276860944239419844726635251541691146016500438681193535176462065344385929835604131453679237545169510034609515238989275761063440442712409060733813989641439531358048002583992419350912192200653004795639324997286445697316253436368686581861897520378831822478149401383220938212928691944749039697584783905585845324004706932257165178230452666625580893844952931290344943475868764147074238476898042945774432299660910062653172342287854737912214549558944460304147369620448415039859484810404471116901451778071140442604084147870687409323885491612972452914967746731598661647962292246068132842192547409227998665959020832774066161359538713178837258161847108082057791607625183526117624409794954118553158155059452541030283878682066405481175363513987612564179495926472136805096549875216574084390528212812029070704273708152986074355635246079894675094794709318244655739854468196482262312610725464408185552054112045784648357336674984847627893965999449457913174244483114924432623223960920903069495999327527628126712684606900240105418459608201906278501329213404201757226982535024434567205945349979466696347379488514127229188680220977141335404332963336138968544531787648744461523281282906850107038290165709759269710946016833901460132792981064659271829460716407228621339736952263534277003364848146722861039951446785816140520182332969381429534280489240955666385337479945371885065929003022230035178980355400072367456271385900812771671283557703686847744083599549873384443124209012458680038724310417354997768908913160077338134212353186804471620858920470175581433543823618304966843432884658625397732123915342817367083146843127816754384109178613652890868871840985368370089703796047306284714755019252549553683680260603328445816400082335023100474987926280096021634348455151640757997970534766347439634436605003074155729507145428948192298374302281896672826153731702215952758170458998443254407907218271104132318576460327455728338109548834996593773602833480440359934655291030216040590316695056330938910863438712118562584101445321573391833859583473650875936615223240937955719597733111244679731300298006902392797544183120281244300659257633306776714601796928383583984413712192692035739692710149193694394152923458568837108648221225938946133433545744350130013364395631786925679572237327312002364056184149178766811325080522830938693521788914252232477737265233135716530709362799765159309241503768584955366513116177651303582731840680456040974994218261872359693782261142026764392270472834018914991539004559960923491182995662757496583348906069200487757713749171863507553134883895752938998792776834434629803424509457587147843667793297369855352918649480603277093015330752484614392318955946951709237108513377317670584264580270557592033305005247851249489950417882976018162876937387267789926807398111552936336009128799863741830166100642300280988971804940903021765486345683158845378775295627586848543368945418588996738665572199687104471203515582731294446499193348306931344758254919425089547753234364138829604642083182039232971558300114578203492323922991267784601008171888412454875141600020643358315445017802813442670717587583608441826109819318912404570870394961865858170630840521937005982968214853130569081264984874207499672212162630451863460252991577455357281105061129886133141346649181777706714576630531349219807261142453331518648285724964570790277397300838254884040009966953627588200059988892345231025069498564648402230225468728223919427939598827334199085810360990687510050532850418871852526264631071026417367447509269536061349478500490127714728024251992130212298239204230937006816065927596598183821817395707776374936285173480746499786369029731296025585156745831146684258433202745352041707399786394762019604131600557945769994188045931904851377536574888076008764622722603981235115394598712145376978876019492765677315775612757122208197144218731132528721877967911612858534452084430442515013508739671546442346955534988699863439327043438865802676472964481435850094274233828688468377934429816750248055796379678800962998412583047672067715932158510104884269937820423190393673054663336764211693187336301089388401779706839790331325339776705159469235095007730951525320574345682101201879379124219230875082982370532810487941635530569522529878286120435545285575356617367439016686504574021834448538478468297446769669294102273861863097584580655896253746067947602264993642849972003852384622416534025943287932600471895256725443163912226437584690419760368900872327875560010707761114978436015164836361789064819830936532682863071523833352626365699894826378532051905058538821900110465597443536219807983813485420627498981806642084340663268403843256547410640318935711263545122325065208461385639364358493116774601735649480051469951856643396273801599828805155494713605300565778098700221502127968742002661984075593878511718705693226864946157351350260171565003894921797831350941839284946779537478211813449646331695747581386359823305074504827516513700937240911767790340082182790620911563717967652846730253401845646953524343233201965626681014781300942115062990870718962966941571767052321803069878321164873850182671270531634265444231494204902543014397192507673926486496449246240109452517796053175936705754978337901999132139206575352694068620344847623826002752249630629185662786433482100617194605477526811022175116100511713393638181254236220691838459854359942876319743201457380679075870563180740828127488543266773595492210625691633781225986765614287926750328438185178649983332232765791481923995706628756787954194357583283660044542625219685572459969037204117441340957122082094557222289907742358656581336596059577583743981814228439691729544092341076454793506858434332644921048832817410126627416979951779206189779507314735702513226934199369512087849744164548888408553192674383717521774478890498975100123925186013853666557052150522948654731097675350539526073254223524811285659602654021363231209961386159473658149845968883964943775115040335723301232281641537601967488780626197011112307633304989184762530928452738392257691590713699599221894567762828282228948271530653844422251581598240874198346182854709386957079028573194550314646783397189375329465767184862722987130989913872811467383555386414354947444796884787902721493361414224968571276354584466311709904384198432570896310586472086521018231758679347730528730634566837819204136110958230385038277472278326390795865113382003978441827373018320862060383266664875426424442255592045679726744802689673167945785380132557877126997037149779526615501642164409274197479368947050209739775288512117768544042121168071332706910374091531836854208718296302227172926177290156880991041319328250610272336148020272095215046154099089573278302263208394093367682374762730356302849956083050272047689813208056594617504320923231080751019846038735856855873426368025610249134218007541211137126239383223893902281455657626078947351411026070351898335972888794113586729275647113082468185720646898084518086293373764642692943414453541661654080593333521804301443364244567140384085277443094292142882827651506736971402154740390899392887415412593321502541434202889473753619475377806395940597087617737064964845133990998961738716652397305119643436573436938208631979920688914790158621938275701356223509353749788120892252410851790680601705737805827024186063223657982285266392120626605226643616747713729436217012944825441591694234700665798143480930410578302165807904880300163325804997516254909539005320811918914644819853259197046310732958966074949626841563316094605015217005320998489785505628668937152603395489065011298881472015541329831516082508014271531854554314748248426713813141348610560486135610904791707856246237858664885434339734844373403755637616798860972960726811434750527929921557466978832382926155164404750283132066888148016292379300766457128827949374946683297999560732221204010893133037072754436794022072858916277124969346037621627533564050416360263642047802095956691213423096432500268437578219716901939794589133845286725150176320576217969933201670685818554983256013526087218162400568333741006189109871869225076585664262998461556849657189553298660526263884917236897202876548831350045586669282415022225710710834435414564752329785552788639312159878517135283231291922904545273100171140953205170910648424494464352372086349852339627704999781528871158097765275465410597470132662450092659148192839403893778693106154744067065903267383241994309672171387647077407031829910416712487693701461849214323026830792122872374801734622706554891518808197012591034810015998474186734432162528951211560723617872719751115963208246385138355156256678275952330046657307077456845193439036979312920465815019725204082086420156518072384617872181213244921451842840704056097037767210796734598824238837635022026235509462184476854495099549867840427642936596705174839560816527941358784083209879937274135439296571078631835646361791390231424761271449038699839951953182359909424017410005526119487605844671066583609152392814990499393372427670490851630654963414467445776975504626788392536619104499018564327275810813293125579010406441320727125184232285275511969823818076597965902965707135686655382375725245122229477759604648018457373045394103923128828076284912333134307054476078706997831529099815015435540891496006175461524034179088950559294975629414540173479979104677151570663540960864193088454652312345190891090123575903198391837520325404980457579883149319014941700275442510459182769960619305916580110085021088814829717732120893673164240635251012467976716692756236757900375926557860441335818568436778522066448051594282974344236180199116319405772803403637977715017570395186479794241112558925581414451119857787865365260513404304139116776955889310840152036712483111312945332160660872173266674595741869814336556653010515011451650215256521672261959266054599073191833459470789105161205137290871680570995018784328505648490429047828912797882630319439226589873010207323342290379282704654554637763233584518316834490013925622363476615712103137978808664797471799687916621480024903831221228422109075107317162760817385575413000125440511240663946982936350091045661744716167866809736345703202735767573042230955729882107909863843649339137198269217011387263586914930467858682886748762596757471046901439339410799627650854706417061674161990367997131131509089337479449833243062316503334621766260806540499887478249318608045075184233460242424320716185041571308893626845633922146256110150457534462031269433171660825547538722771314775452549114997482997462799940840402406694301313850505711530793678557569020674302609811701360828467809590980955482693169220043166997164979355981656571900160835269640941499718792575125241439252723360134728148439823553689670067802040254484532068488041021969493375424657973984130007455765955181420064907719817318521521323975284667490672363023787596688812336534217311155945794053272733668708909540600914240587333531047339968277704999716521287939790658576200974605124329556608965812730163894889351482840217873671473262716987079007384800769637868980970938832784864498972527280394921606413875840066475776607461163720133418777682832806335871492082759284734012800989954397878388045711554552831184302248169163616798141283559000305347137845715784725793409304956416079027462737995510267203117105176490523405007360454707431729664052691392471128953756407436187709399008580172508153903250067996741044499073712698557604364338247840184706939710434589271031544781976340781026756137751432350983521418380740544746190734423093534445201847407661186641059883761631607167431106015087724829767823747050233013947338641053551588322120396905449056980568119446594756532760316191688990745156833751181954486540176485969002071927761642018754571513852816168342136399540820437662486441459201053507821184136964434518456406024847238638990482149102839933809697213752884515124380075811700963456010257507980807460405639023809196491758934323262983518061867263119636986136083742688689743705886102633465710462908891958494082718077681357978313975135459524427338289963883285336246319873188500868949153839975367545324046473156319483150037189675643254372548335164332806601052834243293377045941052967565615827603738304923460304387006980870283137284039967916955510576288978531130606711902790386169646618249412569342029535675443958485917695397608941488566748486502304662483250893274993451615034083422980493804563782159568755929380914008864890022195504893624910604310670818125020719828925356232406369451951644071550477091315730145880764326600675151255318299722815683123017185417632218125062011241785241829703317562505721287241952602412537165465342109807465620476936210751032452422799821482299550400570708411767572185936855995572096941181848475868526876678846397527255282674179106057675044683721746148583122540779296931067289326108848017509802195029997692005627650677397756963550201978520413236668932891718557633200560697469011372550055624581289994317544556131001300446330710346343112201174862015786765533763215475614647385409109090069517342257446590702612651876346101439108474588740541361832419052211903507705742306602071043596575020774362341674369922980015406122298376315883913622068474873335413122011172478969034867137043444982715212303537013028692414158506695805821226354934512014278108717185237284134827716291550083133138339105101033426953532636434860984737129043491084224927261952116877806279846199769586192134822509356322732584231973535207675292193941123720000313263638476248180038622307578530657433665263870689896858354006289427130570676856570942691733542412175461250323772675878890576158718123279141895092297407584780670440004151434780658442335544078029785309248000065989783855294164400352064017153775869623153693259810784529356186948017517619492030007941441863457854208463227599366368618554331298488930297467815865836262595985038979302939793564875207630905466121225625455564161988456117983596559560220268669929954809804923717053846737465352781942606119420904675032066549686067646750758138259004169026528157869293960364352202106682484404652374252095693614793357107591796516996313492233051979369034870506202086452430892635501886183523101423762979224358854236907653778425554064844782495038344574211412651172687548227972127203898430104503657839228294678359106241372136176002601113223916172489553905437742557396177433447931724027701286971032985020126238176383210365049990597376267624002943858851714839284916726857109614195559036007436809869161337591484538085288059175467927703304968868377669532494903690091862117650676001488151479722610302246447939979933963811260030260491018332730221579926737243684212054552583871998768176893992057382806326397930254272749124967581053280501862715475921123954152166968392804930224231313583777684129353311674248440149085500214216761984829280488345819650723397744186782690590737460833797490928787747854729188040775808617031089638338068626640439669207212962848639656264444013167943141350828579424232439166786127715424165954008900957331710217836435849551246985400612168775677574936518459633560740304491648992487628459845860636636992019975092675515873120521241092990684036980881982679253449211971114595250950226344571359085482479885461384170806146085963173213948446329392164746861350910176571792549985276910761779031304333718413616224800941968301846034337862428302954993977150855206596536954652311620313560682977971385953842342619794557189457834268425354344480512170847047111325262159153797600347567893830132423797722557225723029754075997162848826975609207135849639820140956739549382497298833176617265360682650412900370919499235192658212412290806928995736008261456655442660973951377126543028073568521463356013102874098968167371828585363054116008234190391757043185061064038713674520872023413412707461924165418161639463516110569762496443562097009530969643417044246924759413315551960996490799715416616559895396726137378623122157176233059555947107313775583903496116595094098159551009144124821259853482048886181787970921030021085750372903317393986561185139220276379245317692837583855294705819082812028418355352860640007027065868904164685406433209320768402443446381155477403306162460341493866939643332976258356303992823440795600727095450805805634955694757826361277301391618526621985900853399315226016885330978971287114356800251946221170229633274267256094698583189346711022315136916535809792121821137377034784541158158001054738180971744885763119086195631177184528022685811341204882306264880698994789216422001624610602176282820512977406089856401074774032459630776533343871218173508878913081603434474879943900817507460171489196083895151568672771288128094537531574974962572057910884550609704461812315086591122854903191201289131351810310538809700687039599824420773498119387591236861794720889606669851766230368538989199302591151343274381024273681788264315046416905213746303924239329730878933524404029863662609597470584926349210346001904786877003850916850662426819143934975754765511844936943197316780380384548265160936953088414381475091395343863457348444058700951807978968441230203206343711527074864620980081565558471400546063728755751160745919491958309170351890775319325114953995321309061223804652310374891903639470611653897928945778361914536673087134875672638724095287102338955656616190380846521846538238947558238147083317874413885036406988495354260484640633308459163835318104981324860213288304771265099287480441244499367683077966364249832108071708265581658778733914875730869075023487684053987897972646679993769353159247375052550288182521114620445044566731446407112120930782440536912901729738000345749868825277733985421893766683591871243164253163475631499286488387204269954848659759356439992208512355199801605257488766587320887609001566601679694581363607743791796373428233770443258540074733081112272903780432764034134251024090694152682468817808573071746037209216655981202141847613916784367775128878125397397996397819628110466387585525812377833005268670156718095041241811313768909767472313162081307489064599354023099304745292700865303859208702163593900880449617386655802147341962912200649634929966427481433381802937389607338963236523953379239697223661393298814448269318562776112644414460742893078956361135488936089472464522726206101046423034872562033353090397660006910868083629171954680801190744832048333402911141653095839138984439522230633431723638225946730789310309409280170543954603425507352060130381300223898846050569223632542576739781917858651112842126442781276450648098145677458457883644103628614353166756251240600992257023932308168493187548251054432558449411886339349922030652788074734323313528034155104013498052220070610873077074388912605646088828023655222526718777259405285239214412538233980865617920869625312821250029233988648120854745679206059707679606446453431785037548557662055124224319667658591172764417674414537274119037501026432324971508708098735064643977913483882504204847888379743827118857548592660381148527028361415731618572155163200971955863479094166138358892807953549510220852369332450834592410179351390252562323024217857666589788549454545196501957000131752816748664104468040167883168625306114777525259067359212554347628898371866232217499007593738744017644975799302771694854819032743944331511749752884649541718050951349056214467635311256859554768179578450507166135145483388739152496594738052000203979629632948893295118423175108998037380852337645379750675540657687915257643042526264833827833716515588717035660679370681982411405814444376014992951861143620897180840295735247966290661754124603209575795227381091889068319576373551423563288178626170726526637979376081815919248110281739801871779138842452250365700554389024849896016599712366775914101711641443410554749484536511363128917202309588751601405438529922643149986836733751165590048809745174721602913620030122334110718202094170675701569276609316416700371419838075850800651779464163656880508298988865299622737412239427113601243790322961549815107860275513930932753164301278265119449021449993595828831245702973484232703178981235015594933796687263378175832817365746351214861986624671085432040376958655182151223337374443254775356128216145729812401799363943433624702288879563668356675563443053304848689419021654038836579997586778630841649304653300193473595470625107054249373263981383448338005846667181382498555505460114865879191572068267604209677630498908656011811141363326625327748103581178025207254364778044368948986733599280178995365641785741232644945118609237453266988457228735884520276068074124513743433173891428348845518944799283268735339225334665318271904535402568065545736195398351355779624978363329821174675603390812453633788237191355710112153141614228610326398383757260786728388846486521332654300554955013686326007274344074147089796832509804087526583023969930130298510346331604591945307853711568150116465743174835666435621281753483113844508154631674151280514265363232590284629617146055360032888328736412973122341746396916183309058521533203357465964002355737187376965657894394888933441684732092087561147043208540692954283396491447120952589160525254620488764585869120692486536324940058740604525364455348353470732371134654515206467161099885776011725935182601837260010976137063396023679812846366619422296935464871488048034478523614614393437216435869832194711550582689366401418665211694484996007682827541965509462294302383985946144682615001546495978258283107614369593287805519987468673470302115107616971093477646687484916634382662906830709787691523203009346589076254596415257215728659178740191024239899234095839683586097294731389767588809909985310952648122166452076523968856272977357708759699200218791236755086785020039158443430022216729934154711371118310630055714883609496326677131546781934200958987017854997274397982995802639804072243115128671971209496841550223414595828973562963206349246122708348477080960478026794120080808162695713947104091278680295187660127122638295873810937799411995912471919039298512622626083367010180520725716343287615570624832576354146631886912132409222055368609267321784566326338140183036285472770109007462228729199491719389458138074810822199893890200404283804439660988856666495863660133504901658919001451459317705482907784804887142254233348024363232586011583111060273755557320178266518816626651517684688630454290148346880679909624954982309278535561000981661344317297689600838047758273560254986681355199149100958655047642584150294497238527405974643985120483209362196596737498401259185274267897933360257942923867858008572801991764045983432441252693718282728826037649120519252426224821943258308469450295827842614536628413348958661029819153631046093214241249442127915200717361111760790053980800936054823534444502468131146742488538422487301306443631973701194324547867876652819280436972168270070218713968855381130162246740263631096345510570166859377685785543507667918462268387385244208889296230954410339263617883794886422371223436523631700452401600143464410686305269291821929267273474436340949351219183296173952580403668435186472574555616046530902740828279080954339723640923018283334435718668653462754198343947372311201266207650438771928559639786696239303034708769641836798947729526362970696304301792108821545967980981481174166953605039233484050781790499477297689650740478322985932711876291361765386087111211469895552248034980920660328317431115763367606127839442101332247834507399096180038528621917591469883300386185489762698353153449958276900662307137665951984795582063803907771337393925903794801967820054027211155944807129675636464846925615140726373272643586705393974849392718797295822997901465099454505947285586109680375449793841169310383208633066797794872288450633115006328481095361419408201029241293761023908568203309715464750839859104886063833925245910066865228203956244877330670269308730571143579293302568757847149751714991179347351692145826503620807369800290881688791115998128190213228390264699457969920063934796035987595098956819623559791570519030533687586626477706365534344063983563437974003382239724298040548724137166019794886402975254200114677708328331455916732145789428007023605704661835931877217903338801377477361607569892393458056811107950638055085178890965444861180462740891068711337155995726444854569493640015411444556771714678949506028221732173872385058234102534323860563390775355751466110922251927190887731083739025945471513589411312143780963422239172248031782998786097574336820480428426604565779851362459878051521240094597294750157834634442801613001038983795405757320028521649280468244537922614550509211572655704300273450201107572308912350975581832713825744426632392063306655698651952430128410545519223736303825351821056842264523409350335895589038982245795380731059885046828277637286178090333206493723333306007103707340735871290522879255230873971852410865490532722721261181810907315805464874686598491334986605659192955851883763159013104131884377320382153047356368312498034245971453934009392128102589127391019737276810180811115605005647373995366027583025006496038395888265273273966995128308722284404964014243332133549854592607054344992659047232068824002183695398639062364135281460094256465845784599834454274516327536742101466972936034839917036357494737764893111958110616847277192982064115647786734888189017731446902556292699056442161107724261132730433698773574774063886874761575787127077831051386624639421079790053642723492270435797925056353633155589184079067785385689654032483099138512400722479614584621878705120556526228168614590565163782901358991474481464423941105636558634001596972461548436575987301600822927378307692619247105477553320389973922348785076709301100545187869754326039162740588437434947016708701384155773671819433169681744308901828502918933372053431543975510309430154833873911586211656086533291348957936467181277257665388482259769026048405885601838613482636530477579812809040702708049647721038934871978766934918468586848246733747551837189343077649848986729286290625023584139208483565922089142079666500970962722542174498753558985188205862916659585717653597527819242344440906745858074334240214556071485208817338745699984480538057047107800530622262741132926455897998430884164038866850274683809378816545092844646520077230069400297603533261820034617463817216867608344602276253588799129458031395162475691047045181488907694674922847057549131718319821467003872297620404978930663001737051072559657364638244193289767596510872573133331651990129773447998746771308157584592086757820638910824382607092303563210801388594945804378040661142276763107240084803536945924137676072263337475258441782491155096475451536599794590296857973306678492552080464437628254719788104034494825176170793671658051984689605803188953503741261129016369370092626411861556632507405596284628519067832529393864950847859778037090731084260034289420479391475831592148282264907664770589889300496553698728848760286627051874386777690155405653685689759870890342831303084358751560251298726164561859063735835545785492273241781842490890326153530855157807493083718735148019234801625312363401162064368724224414811896863908146710110803818727078290746817183654501869785480178586343151471165850302598089041873337873320798430244934802853474060434338190308074620884168839484227062434149614450484009373343674836448924944453182568359874709706934535454440384593109444170583789793486707359751982094889218436595630677264111684185965769459184589732036514804669949715212358426878898171804486569896873997799762833489719361102625979868661520038234197504513234626741644832688557104688408913106586286517592271756359555394435285107498521985036133854155463794579444787435085047060822190094909051707534856086167279584670286524248608278091279522548003034438511353280944687331276531752308641220721805724745539824776478724566784354277421445948667939516601251134887461799415060783680764529311603754098602116433794817791655187635728483860982087657770459621901509841505338870040025910216045648128993711951222553978832833371231902060569884413715309621675628248194318666173378973060270828311056998070477247551174400385264085784021092371773321292520789586410074465353217921928390186743774228710375848507325699247796997664609814879608787713115769632210015455108934680880543432930525288063327943442370893320370877197666336838883909703025640380216017151241540762699402744204669015330688711531332823680869840216892575290428239031809153856375187107516010937661580301999330831940802889685781146944766917063362618391523980107104766324610149942526995756786638015503325041873081423581853622666717725096107294348423984480217053807420224542431577886370688834520945193678421097260859939563344654242229931227278713208844673729608639639522831791486339739156431909951506916696999155027089398027824017054657129028766320419214138729331954308945520055127061045284201743071327744708816162046055999152196264079772322696120739496665086008954599178458287762252252027341032541538866342535090674580198459355600465121831858641354485035244387500776161179062676564915237647180148848440995428282089240247303455509698920751566478272397682077985602678416131430683703249184032070590290826074125745298938765439074008198227463729539046019953750375059261141511934184344151359083824703077659169817510858255997875219535660466215595493069142903173481907869719439433015426143834024222898626704738937974619618026563652031677083832062839155863169525404185658123594934734403299830830664872413865462411647846274805453487591131940655371279316177136989932531499874419838244930305379434933989334428683016584061602771266901119159662690502759756344771870656337628482623789113577058491511379684481985044776821021640397060465465642770132407113777114450021937849183950255358551552014454117916428112606788951264904724766549117982170503073804624470075173385099691493993242224372321096668833261426883466560957794164948601880732875200291856780370321387321398462750425580285877373991017758309790622640459440284113829150700124288833607590423415181818373131949761149532720578214209849126416065351492047902566574013105932131948831916199876912181096816329799395129220631000689807904811560214514868957149778108081174327082231022534358446030123004930457771894606085076626739060025137108963850358492995928247156163629421260939767460348898927606533786902584359597308749340867066455766882899264151164538500940987197060911596193376753599092078961659402217111375786473791126327785642152906485261600461411966247647402589872824774526171222468817693739859233805393165882051119480413110597558400318580369794453910427679152561538718605506968444662986736615147492885361613999374106028599921983772349162542236904597648382122432210323255848922654968711436380659330942766378742939985261550153393596910251592716098788979376773294716768345563117260468743003936537649982016516415569267346186223316696108427716894430644798706711400710617810418286838278768171252972032667992892965655629503387355029520322762059664785116663483046041360598535726184395110999663808900483426235400011808828111794220248603507571071573858623484987915086316743951680565088781562124219218619447887922011367933904732080283122911034598446854903790186353491613401762968847762925028600405165779502715092755314199601752751981858549850666851641675509484584307382569361245693996950076455347515199253791184538146155861969035806844585971070511273192587059162973345473437665111754286890113010203400875091883121115433018890172667801971031774204978423893114705725586054136218774858546283494023552293059156876055269143257696474635595949793785843977972326266622345145438420142967167442543707895338173774278906911000621729054913963328440975170723973953863440444037803417718247049913667146451180074523274009119966607257817600835621138273380730944268759506522717405497989821139676771930218548406090563489120296571665285787482284862913770028770060507878113253697884840202014331730073093038361100146386899589493481309198571526022298459153103494808862812612535959473837546220775325668205626583207682842319957133557804985016973910415265175416686245522818789654137841908825478875349568064672811400782191291712099850812054414402532055495807966839912435971747159076946995159853360881607604138463650816279948911967432452109972381870605029876358788573729055977934102860703428255680752823286335910581017354624765091527015198776264254848065092388396889931422109476785905042233567305249798352432107394279983717397093484024823594829712791530671930441787896341563060348208389197765654965765644312795752262158706407814687778250243131491757216063089797264882820320674734622562496727982758307981659762039897157579520683155924669833431858853524605276584981889558283391901947897773015221074534890714438116164556770788410254684676085045677819247714957094429807861457901441243067727421738057118056199676958771046056142266275105756471258621740068186036627672359493731884692327781454279802460195526553884935598139228249995651560414010002670761160692334374002634918286028584578733568763171075317544505419494506851383049241105802765810364654483370595192776571869724652354854876900057806943170963557278630084778539923471917170753100378544118770233931956579683345856263011154425356134198568276320300097859543404206296427840086324104577585571268081575620264549059884098027268525499184002093458182786386900661667681763874067174818763941908957330155872102386826327987872435637028104203299171301117051951999965890288735578226258650742324474335079237022746456054516752497647641785893587645892001139292637699802788961380335353133909946384620606249665553402361704146107369875829897105024261244928190858334629729424033072736540995320766314139470358314862591277323962684941261487706913621726012067916374499999908666556788407482968616401584698545137114542648925465234345530073585865736601412001416844567522376883686326321405073371516900605774997153544647510721189023676229943610463081160365654783568289968794230069595134492852743627318301266752803371041927353934605075196293374919164267024776566873550718789629203262531800733447379870561337115486410030883186997009882442220646263447439222811001948926894690323293973062537760368386123715709558549335790578389645826181731437112606874765717796267187256051359601530283165001569180598544471213753974444323093717825093613943851675019283828103511558995332900592071548062327620113365606960100330746903334092089186785113495336716091299476985605245976379800047171898501255481150110165171326642324871024461815141549965788386434470797384105565328997945327804909808322315452424606729295983283324024037853944862462682442234073512431681061419087730409590445933368104478932909846921431999838788944637695989242920971858285838004212808411205919488105648946878741361772508674652169055634541398656335389992181277316127802756426221753918778411690791630023247767332873462445406686271859163195757024287430061537972066158292832867875479510567454816082969091129493203297443542720824378753269265672000193229958348477577359483527991428331961136215769078697515221199377525112832107005368979040289709068044144199129574683256274565570493186510602819634220469669262484822187913389916348323509985758059642561629559082219480691371415767582180086689271998280155350073190369246845497760259827374321241320807649126587732720409957319245456355706041071430865800035131958685672201792701167871665528522557559338154219427495359609161519796182372087844999852714444238618134500016334939235173709605012211527879288655616760107087384884890853253819762972360145868061136390367560405340968287632821215852471755199288114842793764320786065091443595170873822867463265107357135122917573691834804148478263001503850202969106694373382433796917967866879069055770506228329402222443543300998839910933884827196911729638987942646876881460345398205390788521304575046854419394607334509327854557211266444970054351201005406915764519675854040351570368831938776176410925715857782031048399027053440708536996203267754903825648852799809656360175697929799381056499154554606594459848833658111108705016042758583987556324312912814376552654705590434730284020370613441985695751385664756101771655147763111939003288248903429396452714488251917944495379408616114540237527640065031403025599006620032688211957974789567512346847107191840925634032372162358637198272840690292355979594891885138815971535833915122150518787210727033163561704803474566211547361481430650098000100203514369648907531344855580460386429181434356064933877939684461951816938591470157355011788206309907909246494235068674373277151667429600314932368262481624704727979036299543025677259903243408856453403369841908661477236338910671202834544301921432272274578465844318966001304733116604306083511320565534661539405890587046778993593999414428397192314275848101109435104826224984898047590997870069282495779933631688220784745838341435249030892323661468801282983611125573030209512631730470852150682803301363224856657002475795546425172471511297704440681007833573046273475405489687571412489418052803389370319709226485899627487169469661056939259896901140107517146767256520050243827145901907813677059438373797361769230141982306070454160231124434832393854827339597152349633312891847667882501110520604881923945252216678523090882162386254133830860769072046423793162556762645688645666329779529972477348192817965714796148114158275373100755176003928736373183707825739111453407728216072278034492075411438592118527977527372392029677599930100000054579632478920357934346532965546811904343821890016892590707531452368026028987504211856731643605363725754214526345237743032007978528162237603265728247535043637648392226140393422545885225986816773008883042523290426890048457139416812402302239129044740767613933527457440755012298745585134470759356394835578623854656360690687581328249585178550150413240126148786322757159506860741912032890187016273820360396664705852235148302439494557145363546448172487933203498959719499740433874362840731791413183291490765986392725368008427880173469469118511975039833865075312493341707314303973271589633690193728555265549450009847777598777974282693061509402001587678650860157703438796104951531857734401219817623639305305160057070903210903042695449933928080181200793476013760398749400260210350976394236208744829253487209305829420708822499122190891229569755895770085138250538064468226478357024487916697215215930742963587475023577782461702747544809300207603522687546747897216008913199064662067721638897115285638590545955654526260765189973584323509627323108326845520073318733948574555352011131498471431259811342745088423826464114744999850217498953910204445242587130245963178324712307988537112384089887449692158337536797658667323529965223358850150371939003734304639222422617725270179218997389698965282035381119841195266054493136578764236675091504812516100242844336759129229406586363656350844067342992838665560382851613258282337303893761014123474538638640998951812613480450713321762042304369482666533692152657494059135233477471738634140742678062044276743700396944419638785207304978355432583858238388744731735441510751297393294303439436346499427838658997570199224753980214457997784549874007914140578607258435169093522770277437400198593990958120834144692111766116455263999003859091671541748105985874887502382739639906203318090235558707472845909172920176580517230464095824032733560413841853804026253372147455932175702911514536388949349389529887473855950631313416413112739727137401563480952524884423821272015860690492213686615331133811800333380092296307309283018530930807412165174246812220329705614678740593431440462956504088705217327951762759519076362959089797148338861491370820642856135763010954289880353186022009502695461499474488531813720543947408327551391897205462242800889627483196132300406102549697173570704124065210914629413900822234458548597408591283679827296344764331024214649552404308419702900328505212962850425211885253555338823350084726497897792335590881880997598393592211084833895476705957491106525327622017112597724729932229111368757655517450448582415938636992014031260949774896124876843707882333616778880611832345302522378369938944048046197456396357182704460192443677104745234558037387067107325222499787473881290861990849488926587576238772228007313315467056153194332537472677811079784588823745148033456896912255271232795156744145603289432705602988796817933105035340397782134241445572110044470310986298859369189138579300973980829580677248604266226630082675106856788120470888912715862696876975753787819696746837183364545328745903850436905499197820338191874137009921272697765137483353951683924846684348152294480420561397601724711100663018550153777207825000471123023092295363873645992640751521710743571897785352929633356931983331530701247067604418143180489542325318258598912096652562357220213857697690945441351639862195715645603900764270121565912489200295134203771043903697880835631151670854892134093222230248081011328191196014313665842967443112678784103509303595015888594099668026914565040057438912471226211335313862497441736290777672703152342192468404127523894658671552913625646314940256175238422386312045481609992824137672010026755626749801575616801635509905090025243428842347006469930649732788195559754677282670141306656752835837422532981616029453943781098955234957596579792811187468930210398632302152863430291473319707828261096890049631852989406026407938324696264031706402717500091908680504861924990729785037463055552332306206351643020000950816241528142645526985422987293029598774366423504041283089607792497488297014392559373771480498924416065483780580821581041680041781040230169121449684176597045490347827394157374142110385373087438313768669427808184649215201884335012649411489088554230073382057892167796541013466855020583099885643347818431242087735179360164108510188014086662902770435889888454947283781552338997895166961398256621900281798388363680374576351762202513435712732861602029663403642974814716699933150405759227937001431742593840781543395874276406367680159741526378762794488784320333272909375562425317535653442387736811181382289317802899021739039129228056760604198514918406830803501967330591514461566192406714671628919814300230448263033515647475735267445298946030177314273346419578514297368470028179673436241063591816582653702152917858049785548990360248415609468008098196922434633652212594599201701172421071374324409242493399641086906822780480273975133744573270575043696881533902340449465173589966827717933837513490291391635373205033265994068160902081362590672438084613840135786445364704034722209622125083897592257058079235031544141620572940989091798175989210682297523399818237918376543398412740285365115253876641779390163263554328739603236868993813146870811114261055560222529453180692786965313571655873640434491333862337110017173815106736389766242623645713838790582804123052679144210831435780386528976418176484852880063675136473066347106615557465761603978875663442424005239583039036348827707993630328895439182337515596819002618133223824873378766882795650659619411172162756823654047628570013315462066866696732120096739743800921747151999820948567762520898915912618118383402301712470260469617670265899679691941427548363357038605835766343099959545337389282460310951586684552719558500716107952720130087463343393219179530511561208114768223222913189684643611704927955772244211049978323243805594856995726709345168941180884331574626282511046453666829591053108221460495250336978409229971719381768866538762048623703783788347212912147320588934077059551208637652120607223731878884318623329230862244857562387259404029537997231903287012493820805950683379572692199241426562951637509115849363788422973133349933918527736658858965419834642717365511036262210524668594335704196654723588601093413693710879858372249070060991102941248323508684276052573817653464372691987175418245377913439023867547888274243123259945029568730042396898431498524588007931734044034250120854817765424847998444170442416660699156872910016601748137779135868346986505493920984915623526451718262675705609150551670660540183694270498870226077668990377615301132473976856057148519170196782009694144000355936935553725057956208694372114047027522433508013686066485050647839952131216278195571396170244189425334696233572134454593103106008738593642344316755008531390420471196331121774227451317083218266297460828144133012013524416051730871455825470396126300832075371781218838909888133006734364968279127450035451131408293386582270150101353827200451754573605131844837449263616771101366643996012389419755955800749867492088376787799245018413966698523871941716910736146537854375249919486036777551685253171873956440904765883574631895235699972720850835005478821867287196377779418828405762387461009139309557492068677306653264160375352233787049321596137705221717452731238020348531517074105083770702877492771585181278271886215782313510648314486038738308485732798170056674406402940638869118234207849164431168431331082017772680161094598243397854379283155305469295354393195456322823949915343880765763120400215965931398014149494623419630439067689359433059629528427504499397058240801360109833440454321622657983936795992241614525863749458296596541037435318911654465609397783086040985934841770606434908790127773464724083930907808013170154291664703214332975281691321432581789832069154280960072735141027572804784307487378996090203044155805659240456113773456010697194056492672301102468196226068094801724510908072713960513486169490520881633340265887403479740181233253737314013975578966827531375584501886914683787381468016200706239543215697333861286208889728757290646007295469459023398467643232382489074784605189480094644656589222287264003788139500274427071475086502243915243990046579942187090246234244949468411782590638136090427109144709469170188595092324144675970021903241838672364245844227920579564244143887507173809768492195519757445134749135684500530908600454794758329214696345506594740932225756249660916672573982610665129417483446924291230160768918797938684141272882153657321585690404192401357538486179687057091044730773055234209072443971777055627554176517592020254563744983399610121905011942673747880977508006314645378205554644933485241180724073333950303807831466184863987138425045492653100304544193067734707365932525753330573742727756347849323543529644356087810719048791055822432484519425697197014008898085353893369883590455744806728260826120523501279102143017267184437296053057649401030580172485184933418068001425096529582898509804416234943044837716041390079695615699902670596762976944111476622262756730746853937959986050862653265203844958957530653204714647493447191020471145232062605882084126738392526994945995345555499909114104361803921154496543927363584137364692211534539053382680694836114163957039552782246370869829809446611040205841049010842627219601578437511628768450689209451864806642373973879312366033170163445912124852714050339466146572792814975563047678324081509309436640417432564359571066469711757523452903357883265342423811612296803191719961524018978675627529290484151764660988290083253460653991805582251520632395807232343959089434542549357127157452275037923632534413070178037105172392976932283791758366065735661783184067029183781890548254237462368117732798976173630859359666399999282451060144316959123543466466241043205736230443618433509233232069614977896353854555625580741660078773906357605443774920089701391413180212023202370638546871767713845610602117443805155364128420938721717359380508579099062665780398452350501153400958236669272449119411362202731333876846535797561568132286170952887838622987454241452806308148696371286560850477925369383524242832537998022306788667151346791012921975177038915009414183027289928710422768713269806626006326891145551587285101937064868404866401508575117613611238533711543392635237416092447944044975475748878289880019765880146028048003839327101987411285411132589032693114751075404096983274702766015672256944960815176850325447369544264748281269769780248543637629878429590109661977654431183315556859841417676001471788283964868676828315280528451630933394767449953908310254768705292456425046292479361360322405428351551851983415186475325404424822717819803553660222470000808601881347126570392040017589367186191451309690994580545487942025114633521134911770354484124388971256971964135371541611232913357741624275573257900919638033085781814227272132895986735059228130841790694913258490968030145059862488819407385743003847116940024874344255495933574105846625470005007511704940608724477259172844847030641605603396599235578895523210189694800879887299216619395975756882676305492993615412884517305484012074366611481880135237480848250272606188388030334630203783479824224770082513301300317838003875580247035823724969593354691153679920949081928852271298461315546549248442582954568197234558811691768617090670476813059541864955545008873807015489033383788396346265058883635260230555979873851674671857236894837083152470056370296151055307382566379239832904256405938218716634383884591212209979204156036535616348181272703695390624148172034068535483216078542032143102748549662044640778277620206182017426850463243028598823571759251709657309160646652040368279099823946482273297840676647852807883643645242481516430910820475360299541331131439069686131337057315729421779380815450718570389465519239711140222632454289557303090316078416246075288370220551053916630189493749553409485497695790300437780836524309856814567465902330010661543786586507079870572268492481191083038719722746050955967528322707760408710136266287018881622616478554579959718921047186278922377675414338513577656038124474337423857306353354818339375745047878871359678653185989415887182034522534874546488009870522784289070770236087974974354359766705430122829627085597306855017308614818234377381042683028712263279331119720389892740193213596409854683637188746801383911363773454593977757832170943764806085481097955393419100595179197404000574931823061904761175721048354372690088397686218410290462289433379307904423233147159046968354811621246366105602573659483803901547470858810902844361422203108683677485094262645276240186499155459697343254677666490018764395138921750469804300764395920294727852227364478081059872059064624419515859538336561100080074795700307533633352096856307154240513009051381972277690288011907718715578791878636976240926038951901310504924225428983933942731998806279832049682520923700668565274895590171526993722490896787760426546223273592286831285182721298195857425844971752687035463900593547804061910427193023093626000930266480798511138104745029787998717010539617602350156301480382474748925248834505317779169615276236817335261329514235345795099297377016837185588149388529136077642397526286038279725940140374095519937960254022265914016387602331527246590247495989264334981857606314528737881880930788829984205802909097442779186135343934072393319725182451761441751271013400003204056204011889082687280427307273899655422019406618302765395386615826568766481561202344832869282737554407778018219017628609492898166770628261169603591696855612974125454864014244356795500758696974408025955494807005389471965978937992279972038099621115295693710578743715913673031315249354532034055554703718930201327451398266728767008422730239706706953610444889860827186093161709582122403630660606630685905695259292608599526135776618598264507768046320220204638918233907662818771790673423747386332741878180529040408638047526487603176516507404841668098393369814163294291921540138232912716633633117663533555292287439276891146149739377676462308013722332147998040136847176273353096094830228073237762880080757983251843404015182559607844616806181312066643519305922726617115128278232758343366593345985992134393912596003635091380314977473775760315053487888190820697820506067546068476828560117666665232244762724021943871581443541927515925803359447635566821443609147522602199188661274093860822547470605019844334094210130481155665364413619407544793678863136398918133522950756532380902264221708506360161702244179440788596318766866142571803857443117689358823422917065090012371704902277079853176222069205667083434560071158806424816649837596565831159813135995254303907302252866113218322572042003678325816639378887657098198847180365412614466284214670392353651653960645247126962230418975468463309547356094340700104253262938336396350195227135463983419961369453044316055436220351864172352043930776571553974168089262721536239547417344122800251497046216942309026862503684467251666812993816949840521327178503815250040652149994682007961532431221669095857944733823055288640504408662325823204812715068929715037789035577621513348065251068825574747655245551081709617239049585558957824076960441175491116194874743071142028088227763773246356035423145424868820240277313952266342318313857774055474149822333378531231402346794361749309496674521787936676301841172414022880977231766626699478021008074642117415108585018747786223991396428627557649508068121991839180888043768104244214754652800319031671645736478771730672385004426991290881029144925872323651896828212519269848010373422767608080584439170511437758086202489537629421786689831410077951374149630935719852893102988150116731267530824842956858798137325716159445331500710429529722285043526916129826852746318084938535605840772323774116244016778590894619559639091721303317086124418146211895444877261597191148798278695897748218074830296136538213145456287152334102000351997488973252080876220819368179426361987153362599254799851102859367648829319177206893388139326946526098523546433567241743728011155474868081543739734726334301313098633945306044165059948471849566285765799267853559722421042644256639724916203897663537577513981775134642888501263948670813105579656465601476450532266105327294950460217824249404208665209017006832265242786047058929067705157316268824880582517209746007524215701218517447412584122377924990419184369012332408645853469868340634608594981871163993658918263709327614075713376629194163316322514810099418809800398121392027125466774630605804333214142527685358642248998823384583510757292120003435025972282917314233756720193206498710575193807014902071596038317036821918410585764356004888827964938770469406763606648280382888098540532412977741945719245207314542841178540967320932914401049577108943075635829589590009886568090911987396892329676103844722512655856857995155540860052750239967518985674985060538998644162570207943581075833898137416307507373304133855891404118482363773349602032246505138947154355948726087255784978795112164962409566613461741002860058740693578666536928197779866606865291815219436187035033187850290833509980426605373768668962589867363778844615783238668328636439809999433086625792869127825150704960933192095323090472950853073899669960539512499209174749007128074360881676943174624828277347765880008510868208148678897112171067893024528473529249653769775424435562529314427187851578627904866705596728712947002118815693704106163635175652309792337323870106744760072880712715838703741476711451803482841406989933143658766087588503713106389946568001116247856651634553539220257436433991347509193705905378668852203984619298684024182675933197095437943331258181028780937785787290503862073885441869537828584508480251310341356151691901548618609109471196239368816467405950809126588260197173443776821779195833000430824536035406006888353598393972795426614653711231106515808348552893319045219208275743983837617793233153466842515037400767897461784184026466687537527556085767559118779069724590148114137845823553542175805088660152668377734665639162700818026404194457084969112731771267371905515426207821658393734514948608796650045015939013130069921394961487193333850293635360471792014737050342608593606064456608068849697350314788337721242341103956319972005984488267904861798644926455016371303922190235536727833697734438706486019930960903887086765336129534753183132865798260113394655065215014392638834563322161798216859019538752222027628377887795786038418997652497954423887023213106168884641525690618729537355739600205666630742118126275736894910493641433527336191105542774800264824131106900005307494431996932263086860242727896645968783437388527885158303004734034172203741210414146773373885712854461224186964602594876989539070214999687952013880004932429124747597058527620767593336584415329624598344044193034988470556704994729132843052135284723830051456203279967222527726850133089776562454080649902214610493188911150588842439221667863503112029411281065981020569885195202667435595114688167860400205795436647481885539866951865716008717827279964092323891690457534107396288765828101545571307927139037423310229364198184666725684173333515396408612357457762116711898987864186361608032044455911849131364287006444603362606468636859517698459479863671383580976390456875689565636338718584014385597698729439670635923365170884847582031771110796575623360511752763704872403224052757583899356228057377497314461447795569392856935530060252743293756689797714634555889272103038945298090814891018177775825430614785892237298081973170698876652445821794502810409666324407134909978161478653117062380629203185675849949498023971954974606092684139459317444240236617257259392785123384211831307134367859414152113958489290820865271454326955684234298153042155240356112144725562279197803724372986540158060520204538900023260658008874763815847961578421358019053987153778442620928690799639393059499858284604637613282056703745656601551135553659959268001227726226666508352262104513547932422784484728393588853655444303759550014397753941189590461155619434646592087408304441644076456800512231744184840454089886971212341364600903851333244403605430414413010008313759846140398119043520475326680269688106683714954232381143514415310341053565987989331399669970723677237957874480329940943231110153584037430805593419099704557756526716742761741679655943758933960181395921254155589804013470029575364580829345925797473169613208325637569683079409499885815493467427593433961330589350243880294898830865485579479635753124222201202861223247400253666166521866977460373675401132059725902477997085845888652825774765633981687932764933520668007365391135720109675199022978437828876525278980108790407060301111674580858199033745964661180252500429122708042873907653199880879715309237284437625505983565218614399327702753444722372954331060156287487978224696887533136367616710646580792455542207022728502947744013020831491882847639034524114865215479428474282115512363060698591579470430821362982762747123307378854530845160867522496871008031982832439769371113791678344469740688696257694224893280698337078425244046935336073545968426384987399627992423708107678030709519384718728245038967185062006545275913781326702568642967219617480967801003402376925180025159177879033418263281575651614557802851263527028598334713833640883289670608149398741816776796735774447138815065333003233349863672308915684313053483270640256283654088653263459386263805607192284090498273210742710885599805077700692410202898880904256096744734728707968369209012662960835037669606104374138897847927223232338387332074065267883729031090789325756690244543680111777890442862378313273898277862087521551289688379780153134786977909983796499993205467762847635866221045787605982745629761344381546472423465839335307250112066709628253751268253292053548570277161829705054205261401880075644192691675887946813504015800079087123834210709842602660360845031158744416578382297676165720933577172717030477472428217376905024285596701812012052890959409032575259370752971702661600397058736637844458341242573250627650582706963962377975737602455521274071896740482576286661087293273146942038687358552698578301955180774629146105385996133991035176617671194868109719357385626427575339308456411329569851044274472745339315935154462462541733014967619936384877595749987023750391214687881085937647479165066170167815348352905840281663316537350983665301885563167097245867971861971628675783139819891113182338024442946612086968344470478256231813442305808732958400613049563079742655415098942109175699753044130150017981037690152223992655417168676252872390997406995120905290922300279648920019825012608225027129092854027643712387407790647885386897558766205283475371330956270776687780415154635243942813905588662363046938277795937536958044822958735309941280865556912375848484756396299905058538097367631194229216232398401395350562349645912039557361318208666615245690090849993189072157554005485327018613180384606000667363791553133475278958711081896576169485245268440289025145175139020873009177873441871900720565443407615189426399458077275447880073733945759554117895468853568341898008302869185831481786736375735298333253875553775350431807886166010863460663053051514701985493661322961063992901585797341482886070477349932767692708137613074859702955967731796586372020268844417134837651514556025191139533228735698183455041699166143197149645332592953438040169858796729719563246337250914778817831466845939353541047575326617456116137647203823641664974592050358197953966672540458817952475287366463917511476474905227720518640202729775815118740767759024820567954591077799990969274765712398728426584158281945703623906748339850509612301408610949861098014575452784879160171151584473474087231452304619266285636737009461887530336770518917311123860227232597051402143742143245885338220377403873303669236220529147142571322103617759406543390087442897539609380056102856059517363818480198261724323795320617399765795284881112993592233087242114074655434398593620301403561108821845011918750911290121303948928163422055228698786812898056974706900777654020477203630586981423485287320604948631972329092470796568149123181755014893987200478079624129186068255763726298347526157186779104272184619128272271096449320116505016482555643686835740822541613337778303872753585909254617666050540607241097454302509419685314526230932433766867501255832683617235790484873228890184091624451041688209669584393816071335843718734324949564597714502737649337873733971324400641828453080577637314826306448225041614081477552053345952851223040832473615411553289681250034482273069676591952792731072884413881591232210506051307153512575193672898554233713219320353587277172819683346205934384985027102245367240123517531823008874451540823678847109456565374161933141055805390619248788106339898424647834311777496180486391213846192401668717794770944264079619256582104154786639079214963171070417182911080935112484456313996405128108049518853648650553347006238189321088461749212769424873669828277661348299538436347475867294124524970771822733803042503475310221547297429066469732439291250776017212158545198260555156188288470286475303472418836880087988008992871096638870331233019574615036942468424306103566984612393948021773399854196291310893426212046015284491366577362731180529958809818182610114405934479993674682847367946886563885136993923681167713688916648034556397485248710203891518434318434253249697469956708085465019901382292147969460782986507176577774070034025902162112159436351908174502657149620097604459655177253453642888580094999197019085552822919985381139172475155677683606464900763606593484435902769253175960076236563009695133013452753297293556756360924357708182613854872140413688627827442440765549972249232067066083076404265124377777706139343120281374584433426426107955067563223281857184406230816401656531376269263698436610615215810557674610424557354269637989748539922463245592609920088052710191027079875781865598333656492033301873388734437636710231739402863459232231993907634322266232403947811994899734201907254567428198263435221900117390037359170493793703116496985217885571066426953899797904806989703700969859822291235172454673449037683581878245681728580080599707836806044208065158612966016142506189695608018087237518163577489605046893483803083013966675171423541781438754576409242095487970248910111940109505049266413558612475715140936517699931418918805683646730398309323010406329279455278962682578570017660906417417910803144141233429505985623994271163782496088169936421512886901849109616285317642373034358184747825724812123234372472477139984837412448269099588640094966667380098336092817973519370724504470432699787656618419255769323709767095121018381557464551134181824392051919463047295248864398317414533601850117629042803001299198656569144561648477093064465710666825841209287804118365707087733973942260258443288964799769242396738532937067736977951720774370083161566243361102181470916500058560844267436222470847105326133786146730088333288123561035005355162288869458818909092290222299768645529197774742559331406194013670017487356582364131733213626904636752452150442725321850810325622708581521396027144695022959728579314324576875530363907891933179713507122142336748722857007732763028106761400253823624229842801635372289684760495235090757163493224132637432815639398657475730422680383317760218386573298479052656534820408799926126018924470184906063535072281401777469636630136268448019713252837366087571359961648604940360155196663301763590371332044755556486127126969286096692485514317747961291222090789408467387215753115506733589363243587763958417526061739654493808147537997124334163672728355663739709359817855496489492387810234289256615724940722471310400392994375525205992314316135927399719639996903720087471433646165733438537301999276867079287125626582889676626416448541796723648869876008777438766796531712671489752329896232775511960930129507306396811959850112470648414151716787007188515867789677830547345777125561219334033926131439853952427149054940853188015035452241481288911209209008341059610221835656655781384421398682637627028437365546735419546604208033685024830409359013034660813653271924657814871950794291024373633313250202121971205313920010412794042410400645071583674216602513560616647455338336327435663931832250350829524595914781264902106293571537928681559311293567245404510311025431971482721048385183528784258527380762006656864490729080156724136996797525661046963041989679685736421391185545054847584005410023361476342413135656110185632448147271425621949778107085118515762503171112701873554969841514574458439158721336429213362831026838938049905282664638692104482842127348956894429809318678210426867772435069326524474119164616081629855566924629342741479297087409886339877744254543968123207516186561080793666028077738287982587602470017906223880805540755557537346209140312794592582385432926089244377310452434125587882774994882385825611717343409102097835012467695074773965333891584429751811333531122061352873349166940900881986696677544261192454779631921557342288520773586923554028973387525723811261149850696123456467990971413046567169784624864088930083423196003709810672056513504843400300591184112555735255411742248344039752625552415522926053620626557467823754020709831555715433101081399655869218996430742452659206012864574876483399248924755576999012423279636609039862348253181315422906231786853448676911568296248318740544867158258759498965714858947151421417544524721645885987714974036159235392133536044395041356595765826411355691346642757204660594831808312181290901637437823322319112660484006596704084991656906081923465488223849634355437551777347407110195197030036554376083903162913840052505574000895732831497923110301985884509425816304768963716083750988361537689123684370644027658056882057284720963898253637392538140952064854706805379428156400950525757753415189775877227023293210675696267620101933530360021149275359894605869284453721577029479722240047457093567991310440839784053831213524045836647091901185622141608469228752284763274757137442778960710292291886042449037881983171632512045842834801469649839490542998884144471649521188950561172351107140560885263165905567233632538831971955731902236179263878816391720030955687044971832075058366699258808476580965674007902448736839300183750446351570117775563903594876047041641138779745023459743694459740369977407554026165827793843966205305086554900233148856699801962641258606474580001516149818124848653832425650848531317072749082748663526169767157317134047790407663416434439975735666771968169726916991878656125163368526032952139069264787883176652624788713347062166944217326580642845801202215830431177907191053457119397294377570539918801549066344740007265002034709834316488574430972182401689097264593561965668832103076643418498374716923809212855590683593037017628932202302456186187364011651094228157842778578759414093583574634678641748727569769051968794125186895240376424621869164281514086670563979081067467455920745414273784107136385583377835325944580024179889527263486195664116151489765931871823490376343675925293607315324315838889823623334773575515738219942172414752140429404285610268779705626488774532641334137437015367655519096497216328978380380554297415155231221551280956941515084774235618039190764889243956608326143198696843189688550146629234291544883852035781255098194596143181883247658098490809726781162489466872582848795801618134535870409527474755737114471874652178873243299997578308431668771970782354191697095502818683725964150764472291962305737893705968512279272093732401641645900924174931324469024799102200759460071312127897526283208094760498167070724558028255947773238933198779481294100714735779755966352719927118362531113344399330139840148311204287365744074845379474753804162119879801643703411990030277841922324643542668137403036699113791516357014245724879132436505831002053869941838622333885904971134532784661687889128064870098142796481527952362084144637904967065519284549944900109476669349714421178217728843858918931673660166191688399066585793123773172911529101265857583850352292461252671583548946947117679746677078511161343045466678645671411304417093171021075209392967964507821984638684521171858280446854009715475296808934876418747053200322816353799678119697225797562626227975951636554496286700709286406631308184609891878581693685433527428834984213147971462217373127516056900552723596907135171200046203363992781280971201334424638177029933948946136213437380532003650979798113551523699097493149959667766901979352062470484059435648871690047618383591271781627049429027417836472118390413788628833876365570346717379499164241063351357703971794469608618385786220297670488256049842417010021642834781640875235850749009525641906121290475432100614537843084256417935376026617617866152637490246649792628047621539504181283629120817939881743271008374379937017890983776206065711538457666368374923465500782236553641493831564286247907323255387027082413500534409367499131645115903292923613668504497482034969473148557362287656975108852166309581437807241831329901229984635672193979022044483144606332615682716061613010980986393217524265090564161277101012726621611799001642124908822197946330938887620218218928385493470549105605724955560687252760954674494033209327696298032682920532388643318047519487010575843483144812310376194428520200352120342382230671169339324964344002034404528190663147239134076707604383437615582170928789387915291201676670001345141518316213079400412634737232283542261451412957111804977248605745293242269260707023490377798961329462130668828350117939941078754339188772937134298332530039668693006879900347692263657407435827045573326683006578851888788984122329803946488286952133004053046452810839996436177093246814386897004218570736710328494345371575235325902445031049951473306910697701295246504646721551303924519404629525139458259993282866315533090897872690692211551090467575190110935676508572377958086190636496586083496132773576537143746134518776777892595558724732224051096203719534216282723682632794168379266152572948657748051631993397354646552525119537045047770018180966364146496161758115271811394683955744837491855467022238455960340827912127347833080196412742638870917030315808316608638147543590949730043438395514898785904757122869478730490210239060780207299954563843471339251836673485313435369501486083909288964524872925676052926901075795815576523084568591606297567997639357212997090449143911201150928986124947446704401366450212665202071838437816193946946013276126335371708739276739886873454821594659735163750953095491524874429167158190873268552649898745534727704985923338284086051326713062568859952395878339545100426475531896423047314097637964627858628047601627708844827567941727842379571476136099827884972033775921736286846989055545970353079295704430404958236320738734544425366947888156361040013998625566179733159806062531504422396180019892176728666566062058627965584863189513081398122677142375292798769326484039362077126100865162818051968045384999912312904409550324482274720906544683786681378735625121547144512843737603453213111473263553872193016204920123596730534333698351295924329774084963324539727305453692381908398627072979299225285993614280402993301695161924455379013820497607344742778103124217028664725177214468864340372219859255916837370520306749539580384377916124126352952725000207729235311662371285309927432520306334353177894035577472153919748813858189408086889503223763205983245643611262361061190837555984532167940279354467663753191330563174132100763024786129948959801014447155666647053990786892063713417031476173618525810226476910022080228892512707228737642141417581831433849482979977690988478636401450127176573215923665517806336815935230113544817215215642749577002236511544276075619710234911123226452048557145794280479365711261176303828524708853819284388256072059693405674107416353075195918530638072210051854677755865880183230731993824962058697817683219546327914874398493774391891294968315227686192241229903862946528306126626948309238502847486478370302785419237341407545922482789377762267975286790697664807181405776485786613958109797652425722189160716572625525175506982725466010768623885657108642052986332741500278217356749571744714871368853035429662637333855672865113173784520149422884231470024113429482077239985448929803732798299481923906071965700148710296337767281858456454021815676404869755185806479390727596255972685807367272678586418674672419731129916695647459646552771555994946911534021979263229364999848924108767614360113353759905182766683811510019384818424911682850700198780646967202593910817828242931500261980199119244310164719129714608124265169372563381427474420762537809221589867637617887602177853980344478091351657860952836402153502233271093548341366324641024269022669278755229299371119087084384460571627174005566187778645496769387336931783574443988557984513588294297533480927000687313283528774710313049323870730859934569755788955959632620770131986249558443481721707433891209080602189003044240645483042118916684920221909805421748445541007087021673731179427091927880442737872501330925116103072271913336866048416371361308125896350225878587688973319221893979457197636335440021996787479808824213234269553781171130385529149703888982792845879779181286555248830968547096029461658957109385131216630227330044051326686131546663780871439788031305003986630455159172972683240640599864211290906124064687592181363341782126281734344052980261043837127738944023097502615696989168414533298940067565256013187201627161806464804506573988760806479507148937976348800853744141234268335394536658686215794551599556502663831633554872604387919309140596926246320577914739467387076925198346417014556579969773840224344579726777923078226563652293868480853961987950369275156733661997459982006568195685891340184616925791119818241969505521238642795270706349551274784245935427024098788985672830651154345768157275008798030291490110266819951220199656282819134034572012864697461937299506702749880122819263344539104783034807224914046765234044330671109546208646364902789965313004056266699983960020496799503711604514678746502445428627803037408101139747093489667117209947035762565591192666611803931575678853523481829420017831459866527665606970319095658012318757736576022308925557525448576212103554336592986911207847226650962318265073091912853990760721174095452958311410965518021698293135489415758470336454379776973365719452691374574041512452888594138340887262974911790288881893209688841743974058455577143269382294805017252082499532809840554161138926098003394314526383006441331769643110048864314533065869856343084524270909834660180117541798106071013984799821402414839632031023354322133500888269442959643930077202861569553233198822678077861257005649727979271245836587698936321878340465566015137187704378157444532315023263799699549649322484611001613266695473244774183852288108169450898894949630668698900303565967993855686561145350139809168931101838586061358874545116761681861394600044599703098146764114684524982532600189538230877243139823447217671369957478958189432049396640397375251557554640872928473762589155141064261957160601635067767741900694716723524357477866673590160949571800759374273357230029773261444439216163263803458487391086131189732010365364522014464846470942761019975751152755971718825022934276850999757873419414230118954035361624591945303176164485597270472678917548623703363405565748243700191144143440929709799737129114279990528846130458432052393398084666582732232213247587082884214433799327181440898801262474750489923227363327267149276952221113124388121851943260914541431508403585481116688706010591449064257217613495654786001574298703556347224363357800777292478976153837692883033150911877262709072752395013741596625951225427356445370387739323350612404422821001029313431225532096154340068350844207152181074895893584716289966724116768854740350646086546199041510196311749816781462271684303467599369573313923480440577773801826264759780959450175376682884973147239212764286579752398532888514622930316738702946716078667929514890633036251777402066727526987514685632266858420374880580123639048889033979463309215969894866908446389399084778289567252716713845250810230996492932837362346864386268136729976558757816539691910172279957378194250541817570584746412362767778632383838588870932601427899392343615532670212537786769914419148851777580754059633507673331016060706905961552151325417653811642564668469028703084518704295726372091000801468579516497856853018388210156931555302143856584939243756599091016460051664270292549814016097454104632791037282192032807953041386611950397998656731975305495440662586329328115629938988437415432508045260455072582977668337419762324880662257948096309630259107203870091456318703683503013806203788837314901863611291889035774782419799449660346081225240367011525967956789639336653959215191938718962586299111506084795247926251968622183562813224473597730014038932112891655729697835998128669687264573960759883859691099820044069491613279441138690324844882137073729865500715982206429768852478429804926253529814846429626720555302170740333255729337827923526488071171568082812350547613825568374337833298018436026829961116345394357567513421437643325513558940060050059644912753224322956233543464958991664336602992622224329285740800730150707214180634070470941516843023798167044708253539570043733343780987424295989100135408745626653954698353221963453404883958700278588065593160833768300253402097845624644478691881503173049955461629026828949792007551633476422650882889743037606231411784348649181661727016298569058402590220518129462069339883134556546788517474090852250571474654521853736713837244484989771855608567342197040580285948879426533653606813071469688503103159021097802772001026017808160042739403516264381105116501677833690359209559612741021564420503731472758158415325487499437802846533667626290762049632059123730117565531125668215156875048750781548661924967129417512343113337324512795659317526104067686967254629105697179839681847982725018870597545537101325283985433551024495425632850575145613076329065572602314591854527367560402345499294305526339234697634263859298478615291162351778127859577777891858466434503338625185928977603314503455600810073871197356558354656678798971508308751831664940368556902845117479532401818750897199694618890085250021936054258436180729096529227928349356479147727906998987908036188004579709242203557380494540771960671825370230390301467139950271778574176946718111590197349544040408446451395676207432080734607576274498167893937870781209937243041937547020354787028432287643070919133471506833933150924735498132942102326408984751099441200273894287763629641320486919057984333524501658885451830742573281940385382836412319983881923248884262820512877216234369215882316534665782214390322021651042630188409838370213403892490589690411668605088338836152214586535970446519863320782522088127186578800970638161253516869064644686763607959910677668358867957006613873972813956781401890048838055687140713501593575940947543181875078979506017132938386909436861978805478065265078195703544066425284863389209721931630629309603018664959390863365227547691224778054383395058867186721428625109664892015221927897991384872388893083639445933502739430882139124758681868120597464033963957660205570091831028933702838641378913433931752528882321304443418111201520795795721772970245976739187118500922870666651037696900440004668850400172707603406199928833570662077524176070380710521329016113496235503443809240143707367123759730874124238672443700876823041100112791535749999778608568550948949978820415051420049876634440412783539750908143089684604673758842294225904713907341555297641269883245681772360150690522487284561915618766921644203026398577848781927418122439608009520698984347013048939177534392261583936232603386028343306933189227540768693431392784249915660595275346107628510804288441632776623644245687916749210186364374815659115517954874711869262925738073095135232657158859883407673349225732073306663334597625041555881651415081255675207375231577467797073711212729618778812153336691748641921825090867082334362754322824819673996517470711699343617439470585446830547278516280422425235810030203057887973106746699998208619145251144021470522515136100614261937198536979108531731980205799936575853855328874647907957143390274802067475419930584824901771579456742388930823799175732806384925708047018365094072504322824768073881359118393332680261751791318698284080455795959928927603927844229592796898885404591810237763454888878079347646776704564602080370158670651649525789222661399515044116456126835492565643132254331176963836802167082103657788717983621830791243641263108643473187814211680607060614225020975241441214860702195959766384879067544383960013154301751590856637045046033750343440935643792426897815807082159592903597898523791411023603123642703258474378466715146195506750569749045276208795703631242525135140709589926595117160023531056703093907185427591207354506645790276074639362146286193680649434935129506354816275891403590955346215153402286851223587479803957433474317051388358381701682903654861693877613041976500319301885351655627566334336424711620181771415627338304665109981783932252132018477535774678127840649753719120128764146500098416940736183291259248883947866051447509556193548719720464404794711328089091832478699595687484114764744287924700372413593414800881041392560806044938499194807897368315574981171920573363660198796540897221575216837983900087859566953137170684919943436446005872989884951942397041920595067348393949518459372575798442486865728545941746305995768416084251055797515363263530428352576497661994208333960386478614420059461991484018454616892401185231998115879808895231301971456794545634998335881799624589915327460659162960592124289191207626467154395318067006221383204986822131706291183831649024170955436031961225308416943419496216404760588983648779983637934573126598163492761022504889761713371202075434545451566332981187437831747275062519517269671801646560757999076267770658424308669094716986845659950196191794868927710790491099027834207145431243648973986730077473834935186214571301794274962855076286453584121994378284022000465007774137764048572985234233228896004324293843976430262396813156101173104014655920393589104721659448246128490353281088874470498007721962555655758856118819172340616706864212820539306276473226868727850558665588304365487758878598757652075327421007560893595947859414487959527020333483606332924473989528728818938295764191088613725126019853221708554638694553441747317819531949014407689442520930472619439111332208760000967791270472654783245047602470962742502833688182932886068970227899456191933357476429372467306349942340393817516964624398400707545640234243845670011756450114609580851420941170263715517524850570385378233973063340048656650792910117018593557539737468606817769698390385233333005033676386498487117052163218762763443183586272423917628994776324579113971641842297655702848035024570142251634757231205181271897470595847958251746763226064780762850971822502653107038722664623076190579941891039302030036522301844967515953109297036794633350035876273886007769287863304572716625212598212249083713169944993757998865106177487410379960503504046901860062123781428603856603626201643320155072967564317863400931243160351654333454885986311611492708553100453572859658031034737929292182399764896334585808347759040091553006994972082188134980975317768694579640938340785334295639142166565127816169573473472454343837761703759272655580448401688359440485415096019441461115091676131553020606200765108213097466192739145098107755343896042751528840229631500461035166105706343467923152822623636848164233049385408316153069518009776897421879707475308469857428757914740014320992210728519843999941231926984514092656623628413469024402696881534045668366385316006368266155735681154604244172582370158013138712806439639963157680485887300036801995964543816847676149602100981888271652059529223927225507365079483057424447498182026576032246540857414712107684728485622584380422819656843269874114535478889405605336339843388948196046187675211300403971529496075047294327640689488516049939798475825446826865273937079231039542536798579828812729823056951925495895375111833202951627595416709080824848276858634717432254140361010652182826045252168886044716066820626688295486973984137387060457824837493002342763635820444387022145122120304454477655678451364819203926835163633911804827732231740603486457157366226221633883952570597931939749150574367907223179444149475465048789965964552076416013036959934539561278870246784751430381981257454278762399469059489869552433511744970431296359868486347036957732110552193617130783270860463261065450169538540018485057087681390085575558667718881677191347601915311843452453124467797086587967587201264181016041248473079332538806545606042016281528063347032773162942869922844535653357320749330463876768635066548128406735319849444641831113389899278402167828912579819332149343625678206102595824217122462461912001069778102191082462986339684380828991064376576980206603768093802412247173747801117069311097334109693722385836708524899323463514891679959954237262957515606251660452776103608334560245455981831676368030354304567842575031398821162972420281089433864195824668999634157771609044740932499883277551534147631895521488020526115995966896671801860586088666658556364905268442067350351938657301995784343597809529927503671895893984507222043363743265445501746066290785835754063977384141053095151384953882584485978003919924493869887418407037505623972582840373893600586915702247198452207490978972083647257586781784873789102865926711198491793764358236093964638417373789396853196286860277307250345613475924338959899900351476549244477171396243478129603191129930872231322113050659798189613221112618473907974522783353856474202709380376808872831066112265483381739848377481585919798490392582802438598839510489845666171273030205666788133955549332915044186475135702134013837391764813225070315013432820299836747261937113372996467856001124414946146625669960001475639423145571184791628454716697482892788148686759579336569297167843405057061540922404554714965245271687466803485566365046687532717431179304529852741419136381070627436533459194091738096017099243773923483694861898753634836977372240395314453366395029306411757882926285650536528254461921858470166866330693380630613251272759287893695103471383415804631809226828340990452908968770486235158483601794475124491912682693203567313559700105738926675475024747671286119946292642156267677009738113655408215897163069104596103776079664770775263670799548323935140058689703222058805721700029814023345480947055796134741037685578263422171263029407739204195824082667131942944637821778623936963069218758348129168792922327865792753424553648193715861138837799127042990150736172937817486601792121339394145748917669737455049640087342027241415020443503613354700786313289671629720293023358945625669530906798573589752481639074418001895545972666594123124940882627086943071501792971814835268067830208631276852029815070750872345081819233180090847474805737651099579128555594404343883781520121901624268431708154278357222237853060942882107230241308664408032455914985775260773516942087206793657547761690794585410495344071986187149863415998151556763277039715506566589494746572789613743970739555124805494390698970020185885161430415544008647004361094258680309256840942649729199403877023433339799468542838642526473337860037992045391576775560149668716294067505517647057555101226243939720934266664873907425768841100389261332046097954572157744647564430550252570783047434766598425071869492418671210487716568937891513072256763001901042894818251474049729761422085019853448454465875916845075896157632785986240632328224115743741258166348125977690047801505065900596694180970716479257824369550443027776170116665872849105280427997272101820386073194496094069761763008145764913786349410300659182368857041265271166567053880940084944483302665041129400263833451883573208925226819093233328291357836214008806789876434191053791694331587858196068378011097772096926110483015580400923387016596961297414989427023220725335936543482936932024200143318560724812647056269023222901531093071852649839667285419821744605560812162534076862401832783717889293940927900899004162412033070386783986297962007728391044776050974899768087662912840560093987477804369255590300665192980219391798261979558036543531634787435614808201357642685445149679099659598357963534221518551663423696392177653101739848263100559561430749810804821945011692820055353715852012167234076904270080949346329913323020277507894662489421612399935610455494416273208745220386424407226690718686705046406366058901376639574514716522447207016862229997442282553179237163500054610575257590385531788476727246349773459845552857424102884122224921071308043063980752615062022523537452901641293147331812318936508415256873909935184879987545181684237311682779656351589270100672786929328905883088481640796890989562401985681090446058848107805818994275261056138096334243651273526663968952770976382412852769829715181648775266188881347247050310991421029960138562028026811952562280117483197018698613520129650652460419293684769999905023914835288099854335545437382433040339399156954557375446140793053392162670329649178365888087837642680945038015543513242582571415909911175179006143057590720903829254492885557261127573076035625888855296938314439715760947303040601011530214054234354327915654293309666939622274054725756869671494700006693501949847669118144385287521081151743887712069585524388848128054001381808902920042465149151112602399807506890033933415757603447689215571545422200788183138986646555965988293534361985115610310145406811936474771383517683623751159057917196773737881029878560366195562699113086309109507054418352742517446463357872363714020394908292324566582480763775950954432113008089112296338587118896818957840049311796584203977417491287022261267498640194544869587418249224223715958779563587289340981638946873809867948905396951435039712957080580382367861789427571875987557585649504584161792871079575117994735900221127387613987749378100713120034233877072216201334002483002975858364883198800926003017732418121786158952137794008058853412574398889314905868909941396490526909248788745262317387375667478431576003969237315830847861082338144375115349781173284551957463168992018862241729471657084169287795169288820582422379945428036584786239165334940273314736954865586993742223072812602262489261610371870162321323917715727013765983368509987100735349810809428925177177885854466140382638315223642954107940938847084239696772278618781316810658204347567144536394139432783884922208748685255280529566140235675514080795814157853848341637847215934183043718277039091632569236443428937744181306120282547586294191013506754066402046476211461309172096854191699425650549395807398626067904852511187419820917217883062500074492255675985264635748242146540089299275559969601320521009377659398637916581123547478346165779966384515233188393360053082121538533915242734856116804851473575926928222701010365520600768862869021381188361503158116278991147029771786885554270734738690199853239388339424602208828673131339002758858863128402156924777436763462795936428600122538186490903204593176241810251834395617592489487391086148549170583714245718522710719567049578439890459510880258655147667440639100141884679401780823109566186113558499576999086360236364328596613930332490872001817269186048386068911461317978162807843087952856621636179167206695385744351498669208574433032850502552300042169342630123378636393132255538264160851185309717200358320580174703305607483510846804683876924445351785849074837160873928293063618053105838935238430304195525382800029383304789084633254023782236437260085524021603204320806804769310357188306857193269915674661677481356966418811135059057205966703638932937873689123244940634414014758420612974028719053622236002409703828123153349586829350703706975733460941493680117839477906684634567480390544159178406368558590590616675533704934569187102662374047916359706802087744771900249952588884158107690351734377750399764900868967675696994018408166030860203282405850688154088174144126069760937899751770454705314360778987862328181394296996161709730320856928423684629733057294588841056283782664575762063169070006548902106148659870441070595295795569402783985731198243439289745653291051328784307504034125263605522586945647465166177408193973052527269879253862758764656364485491802775842929006616347548056420061421888297839953279315991372019320486131289924673134596036764633018285844077708739187237034066761940252394216331643768344262135916502875091448154028957866963565267030007620370080965001022117145441708555885879808568059563514434217897317122519832063295560524580372446296198386166560760714144071143535643893523795890516775462768972769757937826809345736730711340668038518841770002327932628589782899226809691591181704708205354604460695647888421628192238649853539326193356465692105198391351058273272211950185330072544641456401414206664493875960371011010488188483252042429274533177853588720992689100214811379728342604591518381735887752815735336997710486376111871368418249594771106266144907481133067102559596490795578375126770200079279023702289883435331049509508679006178483956393796584239075563674749388518417187223821132977970144542831382393247110524548275970413311606433920345708159833449030457918843728303628695247208693704119127550089447579178860350119123441003109513753411952266029136236074867551922657630962508974856858327927288837018830548437421930967518894084315463929221890504242137399561278329987134702476263588250572086969767904228010160767369770367820116768935262018179814355479322008057739761482068158097440385886123050473072710707181688180236282563556582897309286320536185353108044224112321448646355652379980736178152353291938148365312302393770403592592977841864914157145817452393094528723834614372946899210536731397307998082011189300496661260184838961074641459195598666460577077612778813219146074964237916106395080162726241373567922195107121204965022745509394965486463685283331988000506713770075212247951196576464543330804732585258084328399735750338157486303788776212459301070598970770848853269995897239014352222244002855081733922520237707666752689024520894155799084247842373918375621947639092591344362166293586477107862311558288533565862156394841823868201933284336748861695354855433839707663839791133571750825061938553641409624325544100028657465450689685949357881024685648641968745266210873259936981068233528989042608552617750634091225184164286535814886632880880982863101147940921385886740358363909138227986244472850408310234089364740509417994108890464676234274644027747445272648338783334062077129687990804421831645088241173163139695083538425882842324956220230477324517386358439353347029273969325324059509129760165035970425053721888506204498469582765427600374182656047627821374230602177240691104778714068827690999952259435268067663666570299537029718663699382923882118850317142668389238244140467829536685977451027506164786497817779601631342682919667405543295829493600426195222435586865535150975848397417794580894334471503885768155606755793410206575576223233597737002352477319829883536222681479592066862273469953216411607567385275852662479963236460757420278935137815121384849016625224764608227995282582132285780996329490576404605494481632786275291926588650887625617429350843093574966397165995085128110831710752659182856635169928387487599607469996221705993213899634226440889752183593458356076250007524917371269849578274763691809888922835670416570540370584616095198725732261537562141032463395080988284206077681662552077296992227917397816102439627112284534010548724883834963312445143993484461378830026880328932833100698921359430103012341676076249879244422415483693844894405095431797144603639129319686212202697407869407297938161474957446104600958885716605944523247187665081987486193255344927117803783939860091017923626975399772663365263600212923093306187406781588035940792399263543482330994947440144208551729553606142110055582907380185143603700103627065447633817136413460197483176501510200590658546880583078751240766191002073791683451082977641187054695540118379642428805984035537350859219328363726561670955173404211261235978441983195302420735953360796669104789098382272671808768340185207684094342112864897987836205092178482076800839932463408598007646331483215371599090297053341035406161100066204961430769890582030379134028002324007612867358483432480092573278812700602028045490557728605177768400090135943842087732760882893674770455402701975074080216530736271287366128983470034179761911219135694326681705668772033542781838608049307342927103630856915314263986272855859024034940804488429296762509518947923509117570087262899561599889185172039922631964371578883109306858389535589333238734408330216197658769244710136157881082949375554256415024043689076191961146913071945703105329297995399745613225499956679058088195439733605413382838887909765750153524674160643389381363239477185829613344012762437892694084597093103362039468015182415889567116873843339659244274923226470150159724525478257677364775921149346138504824430021072906838448771615288576001156615719910993475973534647690413756135243980217319239255366899236428743087201137875558906078740341352304469663261937531548943576592486161886146775576197400032668967130662097447795353260801964139565419898639422665268952061631428343382591937443294459770344080558475389577704641938682272279069424658070404695380305110157952573918683698435761876341020058256944591970637323972979462937169814369597311102386664247016013838816515361207765634888329904170179253296277905982366515375599842598253735763077557821201493257312637082369175586101138583060003131618666166692155317148792778716865253143149565113864449490283664634660216818045527957019569402827534069643478143971360343011513675455396320524562541051103436257505541084154881538331071894526814417988626670129294276466231636023768980543529397618926736284943301694442126939562231609461595598588949872293635283010532690337145938184600511956608363817856262658029846506789437788722055866901191989875145839349428489925170773454637487650743049343070104859967274978831725345285595786304907037387513386136856581664403488708394433849123855955410135384618836001875835226418574565426502194955730935887775103815396263075345905933118775949459056032979982959002172369660200190837063819629183462122324391414511552687647167635929271388103867374483764887934375640575328973886079962451900688423141251672480584745051282547488182563449865017399665004281201878181365449304535312827754490949626466456233210136057234341886453684928665262629023365470037119772964818870729883190972214222366151127112210555946549488044691231996747452339040467469832664732826711468185471018228590277938718666577471957110549211607193977537082497391562277480323115009961040647172101402765441829020189363062378854908055148881716157383703399751285130483720400968225401820157640683387250315770727028224161176894779235873239676176823998217272770659421538774293378724047079765641970365050664576844885198298676479022045752713025018843806673250206340119824773956508483282345006343425663105716940332840434447355187346592978643800071534987960235415794730820307902780236743066893924934861443173421325503129757388257609176217708937519211687885600293670463237913366531573217957739949911908430001621004548449548326128522757918255360791113268820998577315406165708678051395283323118829156377353759889115227588284550553120642363778252160149077250614366233324835458899546827409603754496685123644500893498687675524280822800675877958953386297958132010720439958405228905505689796655920946021749047718562912143949370305941052393944269326257087812508741606250366068839758359659891028216420334958346969656451424929606414157164711261056047927458219010759337735752943870704325052009927971080521618587780183970636747726839623048207068005633775267745717581016719069868789762640274112489975423796745898466223093492762290200031523472686861312818194224355643208402500139798644297570250072869517739992744747535608762917756684466319987237795465680995257131230010489618596116700895748434285345987806391977538732942081083693404812050530453046537181634435503207288387064969691147786609558016572540610663741553289322333508342481284241086284266299350250547221609190858326348025739788944986458278291466769234270768872770244545078971202930064758601643855968299843580097788197096910995540628225710640408880574232498905203112162635893708347117091690272685217107865109443709836202876824821272038788945298827767645881395682612157464269183826506223891987123887428466374781073092351726052148595883393386388473414953330356874612951913111017114933144635175717373537195027859781591856545477137225537612292765298636874247750409894677773387653290067751825609564800700898101623355722775980796880168637987283723278664784939350924923532521849731464563132275411916740500538956045014721570953882861214198299610194088732324963763011821616647819528900963400500183449327265565830831360865201547537602538070816203178144609968719750561290479833869510316537153641810908977607828997741233330481549361013451947212559814008828531561704175180398134639376802258627125206775808226852341478623091677586696632028080789253168245531944979613210279169700512101171875600736561173351772930788196948493630640956462819847534843632708800392190177105226550628875536375363080247268469978869845435783562794937207912774898192423457696607400417581212502559746729877060451058006271918440611686261856140344255165578256991049737435389676925500034899725716964895721951821420885932293711794671744895533653662681410252960341725102702910832567133488139125090925268026801240006202357065714319442857945895142014623275060443330980472744281040051916876493567174417200534190219833291983916654829412315484169383064188108547558652258078362239628441397569509329756511248402465117096104412698018907046453507417567604033251141814568545535789325473850861135667311581356231918848889899524130176736773513926646273514071731528229470643286184811163467829914304321287259377661603679825952479547550404183744238010902090496416147431246206146052339505974309465628669413077834729741271509378044407370208773734495814024473700251153288665688608806876832286127204461035714848848989607163935559278191856299857876174695128142371888616160298208706445693378756257709199759000343206776768100813755263011229006305634124777455095387688124283555515755731235658479509691789879842659705647254694124790773296535667461789667991523850081263244231099506678839393069271448090571378179457372954466836990950284896440810463948899058187546690725833866955317517688175804327290445267925230891463375329216672905061801664671474975193495637501030013359880178586078607250948847742314590190644918145266613535540415500677272803975795403865609774206664974003534139142720155799434010018381962053161349560930310380147839579605837644602556189102391197956181372853141086777550816741853037004869391194371968055075132251972938992821121570988293300464675022697690962654282276922150927087152001734831280843871083118016085073308246377254815742883860584979910446331902901135377108067630727305105701657673961474854844647848040456761197246974153273122540568035060626273048456883086162144487431493345344561717065469333543254963462360145682039473242246320584493029206369442151434426785898697406568359107987108079177511150059859600052962981218071715546234824192774794333188603784826264260396181136965791179489698509370617513756656606010634654188229274128827720936007698854194800080393524646338058196108837020474509883938434418083077075593461061945323550704053773877119129523719912381295285959678452035725698550349007796570672653702250685241412927889311868717204648216611405008540045914635409485848750425802806480879546259362751511199149296590917232087404653471376049489717509438517791530535923617253059182089349771303337738380697472961498544595647763760740029183216626109039936414579740618331666376977764375063660166874098760318903299927528313365393929864783132573637431099166777821735133192413561479668932296801081473387074969936156296997808758161496482564320418451469961750586545967921499340007542326940938336569310846915396051249801769567215356850373707381151739042654177884907952998973391093112300816280685272118634066149525589679797611675316638304496962014578403102808977540968860431787202651495997222809485585950526507645087612539972326877405673007506728103722899799297176171901756184032721318192671468560812957655523837918606747630585920914833787442873161468465412472969364690489053115448651987076270149135081455015576426246086630910239459205482032202929828057260475317702724961445392308857129983196326947579672873326183072129067448037563873776458587028427591859734140067118950143305487089114292415182623439812129321346268566329862977357565874084138304482747295326895229035743346703349896351620876689040405053592570087337973956511792916126678749385615091198778137757725024885061352463036503012913361205285095839659924232174212779470267025963160676816299207296565029709634995943212690143581531547597586734079146447809201967945622375911822340376543818035223676023610591254283587523252844461964328879682512299420440638886345374363871272537939198793117351664882747793109862646151518422302057131651816124817819086347814507735307983672685705410715265677890161394734284862929293325534673462384462151410981760970638650460642849517233078156672792793077256267988728730250653255107901166600040728671384614511349249891928991858382757156478044904160069646099962222009182904805817820231043197312497618051354627957366268541574916573884612235975939108094526959969796433559391800247998212458246075815460240837772916168211793476415901571705520976652908496748372236291028709395033405845065902279359333289036668605081116289604421805425592644978276673429332281210400920638507227098043136703625443506464103571624479070505865490270655104055127243192282705376920902763097592516172463127388189141807446515491869468524745688878211062758799035322664831059462014410848095633185426890192855923760026000800648459424821071844390517948207991544454766601770886078253197851073559716242647089933054484742915049489606088943302352186484618309856322319014472040580467340255962354265135910416043800338990019701821473825980891752525188004369353028175774248710357322363646152282979021830953343994715422203691000761870886685412460084983878523273593605303678806583759807402910030995324503002062105315115090203567434336415194649107919123458727137238269125568524026437668887337612010334684537166683868449367849096259701578038610899861337016816069319570899077197486113062472389448107149457204838862323368759270983426587900455765210434840254227144994076786348226506365594007854518933415026592471639809994552165741609742913180573981345546249803542775497791928254015742444189161367516319631663975521314682274866626966754246989053173760737969314292017793649960902128946361309322807666744252659083419018888061136518524130662080343327573119407593053413624129909759678747154276980189240901219615682297163474868004579743593194160224782372634704413303435708882241685619323119781276228630434709738435423686028551900599406898246625171040188509799881942919875522297115811885070999075367515334056443507717655327668113292643643546482929560435256486790034258583697688431944408399785995477508965270898089124441006729705353195244476168602257359819073142237538642132021094350237579578580224527778910865546301350366938637225433159701740066260557346015946365965086039124922290305623889349590500341932323276497922054991652170420010370923381330328311337128228738388491895207492607352686003360153150085476743694120381835043615882785230370664223031569083549124622304384715248182204240808311255264409915691908682835535072674633992663407230529976120535701678635142932842020283528303531788476579828493633559604583098342660660240142642390475282238470240593163756225583617642585298371632582673229577808733552188467295781371718160332996184003154236546294982854944903830621093206999012479915954059918034591914156176666198660496708537056024421734901931135393450335202533080443821859009036753023895175521518694812813460711531282112618484126110467017570383828977024499473490041522900634001247111542766202291560298814977133562104973152131490071472900550178092035263517241813606110945903225418514813581286288556920385241180202084982768716719755166920500767106469585813997630307123037025480794216186216472079696837344645789059700368654210657531717455435432251550582652118651888050724387346050291548095517294149170737521891404391076434862595932446006575590542019884274468449432155067563113334297563949746764746096557297617203741183463354207354263045272972566836570996179363645984151836693825894137933457457033939124246150552706661894209636729827429179658160843816548865428336841283739988065898831035271239878637498204779787762218622604677877837187888759920886955802395467429452799174265006500185115913183946681330410668288430600317049561755802560865427544952250682293287292726594663103880857144653874383681624894391048950928486911490090759089737295695154913992308280484553419058092627769586428132731928556160220849178823980602407368455469887515509461356983208973326906754836473162988779379088168117041799587102318409627091984137054161970232388638605408328634361650790096478662934077019870769210932673772023264762957872367021794755944234056584716008977720031534795258810428564398248030161563885523262212720160763758722466028002718431413285082969326597974176278553269937239968407998692371553611023291330756607742212050467120810775095283325031589500667666941723603757428167124640075628574871507159637251931479841219546479192322051826841381520851480014796163139493089687570587617103631729627672864673198077200813335626971788337876440521059697125692513796338303605754961672528921018629940073494584785004424324140788349936195880483739342347287803223006448342043249987568677636436245113612605615223134674641310117707374987137544109174599732568549498712023436376233612765974614772688594613152296039271325666043002126568574968628510307699525121438368765019869251671246052721906377278778141395017607705493989595102184370622097762241254631252304281311966615995491425123013888084165316370914806890319013352195169600896393034587053611485607606688899995768823081070398138623869567160363366020811159391151420349801439523891425065375840772173427561371470844745432481713494337675709048040130535055551953409122847345070661648867077533668834799429378691711400699293847095114027841105080196363110335202735179996198527499359257422626070644882675384532429468088595430135906414696744244441170227075932584662289466619292771050850563437288566234024510550048807961890010119126949653359054565620057475096490357810975496158994616838459313013014383200907349958471420639411053696485353407244330343098356537512055369757562459015579217682552534326982520100603677800616082416172358623483394456368294586468329508090739945046889159228841277874108548697151875374169219610938550304752670286864250154474362162430910683294319793715106082140925354660764861560582313708011193335114171067607644764512639419902937406710068579071077487029587282664311518058323952172514121802039299941754098988703958684522097220233414693407623398964587785402960873041176262517003229255769598405050567282073784197020905579298282802489230371753243839263033255562173129303246983040919268097047651310408348214462978465770726924095285014200759119609346122471085924591249552172396272299438506925931999393698577668349474010035587131766243840985669660088813691029519253913444954547278161829501083965561971134304187961062229995014087925901169928969379661399776425766846301739174763118454084702319018202052977236815753751331876389788912254640076508532774130494903790544803943790284057117020796405224184633454919722903918922982769334305361684548646076786863709376798819692593965165496807656175865711686706724247099250491087559030444010284477750707891436264872007923585535447780731445581886911045856004071249883963026105051013815803582387146846477748390480620266597810315558193386426894060592860175969500865421317230385196191672019991690589913341021560342441187805290224119234373867107513245045895272402973635320099892055880661780317966752653236118339790906434361100067940330511148703279008233577111933278035924599986887708906847758780815534971788593735221563061445558279557101177634899056881723210546580738183688536542164264920706618334995469149392388366383988686804812541415476265496629474352800198401784853678589136248822427782180389260630434208380142698694982728397055472520135786283284170669546859691085896275882050735073327239274094551711587982603190421407307423585981279815703919699390535821759086860818758380608264948478247659371425231810854795373966060771521274478581283641452823175716253926515726049072402312105218337008297508047505755604688638119937542173360004762289450673081067450754740659511341473819660498448171182345332140076769740971144074932607160379241327916783798976778035456717717410521287552919838344256853345598549459844303748047847884086868956245871133312224617743426119107354651494697872098949194690188999536242086604474949712558415927612825648607289268809003787599791297625353097093509535049000942053898153886372284693431277406905878937943955108295712589762607361710637933693401918259477422984434661779259028473224031858307234308962417977722535589708821453526466083936672146648923694975849725572971959928157182517182592706319243275182099880069664411373054705287743344147857900233346565154742922543242790015509637601124897402314322694736395599679115320044254003924314523204091513851077154258925054874566579192687395725141555866066431791898405911928139913954325286529037488788927678372997473928409290845935908623418131159023226541388077663312038336985738610213102919245936510348817684429629494447575922321014243856947173247854144771932008120163447233820319593042805935658960014272843798088484668834959484816052652855719589951790774822645119489284756089673314904158615924943942992750911901740761679106685327473243166636720202491660082609698896806142498878037298713022718012064577740082002221242670435612296258954305352341657236228173775235006209052682694753713552683013709261882173230902500068142393454478838570208914763512424939398000526268150194547166797164195593365946998180291209026331012004596795730981307321760297267445166904195921120707704858929045415007835701620201268579227957995555548496308913839814568584763884176254799329624809172390317391013696851601146153244085347780954321514355906721291969465074185278128610640814864558045911504603578251864085175423967267700256500473331539605650284261889863952080327151946063419684480639072424596906921850029933514275781273988942603854613583381646225465227895772625564496517610283994442866997094734887610788671156812170035381681934880320961605768698964810757841545771890133242879394596812128822570282791699646658658197419062635811218183067478448601972474679124341531931013228497153282940153949362339242603381311366552084734590920759539444501744605156956214589238604036542966552492476349557785765251381739444507687090753890510582818551242820875719002468513972627291731167720714073303171836558573145789178637402575893405325617919354670041537500914732750880783032018479404301402789413247084432237795474482693733299987650640584389676884884136892755057214278597431982484894133007246768469297212085940126322996981995100737065278399500084588340778291311000296052545161338830097316344123312848305048812810593498907428385696166320966601191360709095230829106763934279436376258745044720060730264561153542906920683848735582186351547324463889995566320093129571080788884518487282526823129297518908798770992690884867231614567816720882614552235805523569312297230264832886789807493752501698004908793696350076162126339846169824085872534325612749935131091927898000345009451199717644753135478367079316253358258563259102420159270635707286744346179922904119556985814802369300268844452502403185471434095000328520497403255001680366530336703913848427574989284443229260818679959312398830183874246076627060346723533113343695474000716674607390840280793507899935917963876324746832215078114531215669027744672606604177912833326726020300082279423946476478328720200942832831924944128318389600064285264108126405025883605818054892187108701624844044129097365660531705621594027343323021776563167247590928131642366738618358773283961235559917759893906027347326271327913046228066026974282521954875489574482380330808038821829948668276653185513892440334424197092179707610356312150363563604196097076334550297279231606380728247291411311395887106417043252720023087132560055915356565685794289454147976407664459977595404895136954846487669849763685793176523291793381613816523636288158140923470765428960594784437173472113157260373984655875551604454264745883508849589828561899056748917425933638165662845515080151150477085972945609414879140038539475438573673784062328506245157576041734313815688803062026425002895457481943905104152288272466519727554726884244336934253101884691343550960476037522684762406129759617069414436222044903210470364371923367067215996514311030132608831139569664819138849071829293283564407644825409994017053677422740454375584912261961267348381164276512632834102311809475975954612773055339536286942990265807456454985490960728040647242838502613080712168758890606971109315405040281917035211317453463006575189317291689053005592258794633027302431403061584328666593375886738853352819147240966921829843560677966713781803972985880175517752621366104503737193402525946463526974325161047425542792583659467131432046689378851640695945253347038580950080385832167379147737977534888205952666641914739952991540894084297648541730012112380105619611253352980481422124747637160392838677043096756706548687587039070845201605831076604788652161908966393244503809090999885100830572710785486429650962213059836176974738757432955555995086664289835519497361071235592652691274597903015422332399524283380574838156909305979897107304019317924755929015840903274273420434715570633749259965050183088828417546467942539874089730934762184012294151098135119434517441142525896629886969544197957028737765316975404780142804263342073968009404510577017097555801973223478450598538942911448311035138461890956901762045093510252224647026276125083890303028348848732360996841117783021294623501279457003906987024065271544417141599538978810817003978497963914015800709706406971117136720390290511084434867609206064576836367537165783483959865346648177603392233638499007517167101852712882972795687060602577784449928536255447634560184158304961572984057076949744008142322795226939808881174818621064272757913715103484180743630577421519767273340003513784630698654723210421698519113656381265366354891825815975033912841020772001577956755512588534280213681002894850741259109769354693262805035918375066509879015441783199803543192232040689639103229193716252541355648389238411255226776505135122661185059462542462482650913949252978520102934317044757778500206407835252942505833533480654277761948299728723050165488881963259780288225427909813076273014906432830688163321087153232953767070769190007026645165906690031798386650334257598133320323410196866034148641235240418595309352116858510108513187800664454057170649891348131629264791760655626772662267586105630389325451221277789653608662651680236099844983831173329491205698729843137316535620960975927538302483251838316609976479574716473747666278304322772310892436003154075839000882896594587866847948565903158042024826651752188241926023038527352095529971799130310085809075198023459281027177305434075415052998996216167732424891986892402711152230632135084287380378484845120508218441276896800368947121821682692733900875046393657743982292627244535603061194316276984603217961342683133287841918806686930149299062988152800131512184477408984218713104526777537821553316483825464878845542121657717357187854759712021919107017162079453240449064674143806549328635990872922641898629819345797561453288339625408675768058887991935333024947976906594042393647264143749930602563782643129125454066329891298826560675779794852266766522590537334657038087648811168865794445539274487190074028404957734098900988607875362042773243799778061329567219626723229323745679587439993664911202705418437284954530406528596215562321764204308504744231474275794439960898416763899579548655887764821301808669933249578175957610531520338122346320496937695559548288220640495495689431544283576537398345998208416619906752976359992515846993268611613971624032657830021518038088866418718190780926068924578766565849820647539052839281501114922837201678510728516015375059790607327753302624791565333080208905095926017880456148153595136760187470040900462237786183667772972087724482582270613903716937920727075285707944820236304833139866912106334839887262583925439667037378741414593744508808338924944124525807141875373834833217958259709695697891143377453368670865982767724002692417061253141465897026048662869577741243394745188600683743953146818011916816470384960392661258892998679502492856821677939038301773842094987656522936160097035969971460515094583552657125977655065829319105573949330237368950775159915471764681216328224917714217836024276100085121018997951643588421776723955815504737716746845474297019099183451960422348743898670782604146701075821725103032082276609509785946622863134427880979509819327150857761637704695671928145155201493073117350554448542551555055678502830276340471614252887415176305000016445914183800287817976806782741773755526017822348480792272682537958926968535844289493314566803375748454988171233459255779014204360941528047100456014667360212948574357237369778104138861822489852000842754059457409791727582403290204173195474726309182901099819297546667333553893970067246175623931225225038034619644001508004961875578221287664859941064802996402956106489153891554780800177714241344704648452141703732490000623236754867952459079987507195629960794865512676086642568287788463161542045869808083752125864666302006250876194933840594501293328432059376648890390688289207298736522002393196737389350830492985754182896101724664920697369120898341498040118836634719495413013240405823567503116983555469698495959919198737021730790296715208680523636748891638397044486907304967061267228464405767009011795725829378992603034500804913888343328399675231556283414952688684776642639473380431342238227798960473032152862069708452372060263505041626763871504619468281714895181087954797751987341153723355812320579171208410932358234455269725928510738397344439479184173747549672855449046436581008334747027726023605008154688025933320745080790889082354895932431309566187221820670412996590832230683037899024143619463262049506177164510616109851200594132166048713668994426934785496318699814410759422670709641186277954737575090885759835961735046807843450369774026949912483962364657435355045247226102492281531638966905019836296647095075707190253540480837600242127289380081881164726804515494940204209316919326349871845444653971553083009708900983193610739131357429774612144553171382654528823724610151904732191248896309488148355437540606236649473052934255759081202434031567181670795466550785048357063826077154783694736765912088862157336587052139772828066437833913850579567498483072907779461519173119293789942846328057683246260188098304779412681161941224223021853356334141973374766069370942808357873623414154333287504112821628410208764496803423444458514124487571789336347801693480155670274289291749503149967934925984472524674703433806463069089375951203639095339068136391041358140699808168152169476261432102050820869880710025132632991721857051509530038352280944119133710547581552943335205274959518251106852707492190043495500645235724103558843019962734773192378145720469584412244239156998912233461023037315668872080078251251606268427781230027514001549161659758963101299194699619764692764025173236470124368863233430872677731273300160717405111979826026027977763204973965434938933294450240372011511816796528011621529323542374455469835469951255590499265266632466749640223750921569614639499503848975360737010840395260357810582144362781315738986229689764882681427595457334847136072339218400044325946390332098123596831875340230603953204841773684566819324946872815931396518239803891412480122428204328122339864793720681121538934407677895830353795718830997469248471405265869165296445416808032887058202793550757060118249309669874658073831060223594700653338310416297633219161417072212101912095190306336934304514500670819224754798888988578612719036546609049927870565018427322287204159354760671030203779690800373561039505642787194473227541450051242528457687984489024331663387263807888490281666581780187663057156103284504946237166403163878590253796794099947355466501349321754507255636002610887246440415079859130147355903111600952162738079160134082393035081994792559175291026359662333516962541822956421235312467092027017030568266651322480430582000709022137989697692723359548597958311166773824242099631865732636408314910764126867664230267827079771655685777282231927042677536879890712038223344838554189692640347257863390232766375672862724899570918004802304988924509986793605441918222838611754763803735918490097930120078189653835480150475214690118419046801082351473313053530172624053575097602335770176854276417691932416449596786727447827345663846830915816060324787280955782997752238001450453835462069103821079442767660282774305301156802661502732603163426205395762855006665169773297395860747561176512188383262640959572409370984557631256007241129881936409958637633167185408897303210554063792773991652739166004974172412587390635581493587975782211780804663379488531499478800880742630524911886065636715126176042942150983701035017114608222565001231875072636588444243557138371135258275338759635262764470714314853284472145730223799029877368950802308736068533471910720737403734831482037269530189651048428346991258437441253988484367017782221318051077878847264450144561709486937420285312993502807526951838716284079350656991114586612496707646924607974257986137934484046681664835335481341128196331256242686552094176460259409795597778364289827241541008494425872589005283834018473137921385066926598270140727422459083388391876108147410344105187582416741658288372059659820696327248407897169550147139761325500468085547325650945028100036847211051295666176648925618860139526530272455353252853435475201119815602067135955596708095519375949001312930117948453653895490017497713989761825361142082006569094806464421904592480006486472420696621025819465880452801443742801770729510440017678335175810708790657870649290516609814356950493727065328457075518122602386599909420982881073803963166593489241199947744985340117186828268758782538896042280108694376944383555849741696468952108019003167810267756933325485144489289829014310915837497690731707598679958276379954856038118565845236498933279073302238416279194741239237638520652296430271237497566291807155458793776745502367839044094381195348478037723709779565779063441479050378734648169918728420925427646647026347120358115004198607557958047720601012034050034003425922936327841039553241546285141086183896618069098648298569297353102642228793455185463854511549224628612259835075133081983940696819925510257328214287878502432167379771367090765383693263516563112068046534170054623443919434068346367731085152287155155469862177210874097392038829577394373720488773509495541893947063233574630784271015385976339221654247001045188428977001275175643929729087506602422729739285821745313976581060220684409780792044407015745843301182797797377951987083730515856430130620145633964318965912436869767311649408152300993924033987112754424313619529722139850539666857159135047874240459265565518877093094478775791461534111551781485802220207503633896273560983548551287167900445866905724642098261344618494636045895584556912226729731275383382670967088425441786012531129248593609251502949020382205760038995950312118352536420537909375853773191622255608606940632959618293350948238456645135633468964595628545018940396192414730364988092659123020713013466747486701779744004243541577893248450604805492437163739670324840821048992488677686937230304431809153035056249408451147615425109910163845628769720486368706743586623061159348941193140978740605834184783641115468167760155989839164459550467364751132057729087164499777820994815647723291434704039500773373367471066198921902312072008803547345334767240759578742616972207825101564530852071088835832791768346759594388107186507004534316532936019514409157957186545286740832856473507119706777270688906901562814458156455971801620415281720174401842103092773220830914918983381691311954038325620911777585594328689788305830314373554285306227810059469140370075116681830563805799877458368944845264958126609281354992284759723075475655549966787127192439610745535569120038487570978475495226517855096890227515515333388265178645252556340147644093722035054301799747030356001179469344723155846250545684937402517029321138289749616262266929560326893532538358924730863977619746821820839584699895850650250667346647976930900186954733878189207546710470999429981407383415514157663062972097517752076646955867722838947308906781871823279964709025748654795447660479669735863023583270282072261917798960910421329564151355391965625009402331838120905231153442605987823812354368199548670660651156070176440053854912118355995532875549163015588113282734338789691252064494685097824118724447625008472541139599297136423344309621253818137853100187546209821109443814405562146054591048121477338408762645026441524517590088678292391048845306016665872777349325419539561332730721505525278420651711887657993302953414327149296049858174974062840009351605310335228667637883495116562399342766179948605977482410206611115865545338378512174090285228777260865050357317391947495748237503938598427578120976146460538192790130140120611065119674217047952015592742662512225134792631396776071100735052204015176327820673003672441327553680874081050176318276906527958236928846521752247019712916535349828120581969713143629791064430196079003194386982945699353001425557669636083760527627676287842581580842304161573275719938107893045411035277883127507042167217010621454782545056298781763003995800091553944225391766251083412454841774087802486964595355668666550041923956828346827017905489721669758704056197236746219363211453019648156053149971451616866765380541600955454983729570138046339444247245356922011870325627693779463807879879287840692184844305207917755971056864730102964843219562622920032160383051271104289867629016901969641679021380081722139385074415619864125061969680699165750352251897288083629580947611376089526744374974055800914517455361889506859477202590112404765130950783132996585932002494788591476915032234793735198292409257411711572822495528415169635652765466849728620468177053826748249338770538614233120531109028433398948174872973192469361289771620889103597442423218752589772088604640427638247492005302357853750925624536558181932514928731672797240671997671959981916014800751276854524051882496467895943094844402360744790990819651310631009444180164384431358940217491562141044380660149612065420439096977106408956319867942086785823683079730474437062597740071989188173386051771840854440402643508624585367205975846424452305434385760765090006755316522459660445897675774633119880577855973607671360290794976989031691402553553289696119892242096564295422808282808217988259036963469039593020460060621844922878978749284093245383032631808592336078866787392704830725603490698384314489099947533829309922553790113084517996010091074040527121587918682525483159303552012292065670357536494953125116231507162080257168074426741684971385672768131406593868291805716012694466293076120470158041428048489023357335951965927094461423617207547614685136014885443742884176638796804442073989319205573900013940911651863202391554221230334519241741441080572646076899779072128304908283140585081840041619702891669657108100199523445697340757037580400141940101499220328718174097770920921747995500369951267992004120335276868260633951909399325967884729501740414711896555606029226280602538192933566254930421472238129896165924578953601616432367722780098487843859734918531991790198052315479592748596203395448866168758905409969158755131813121187141619042171423919103608216487952870437749356335533182475404492320392542150522172028534368364734207521013475369110075412677877743587664580739854376671088590420876161338632870761393263778266433018389061715549921479287202502491023297600077737148214106555340689111249587278708864073422221852221204574427722993342198790609994673441726123031715654895146435718907032824381840488860892028268879853550901115023089323373038927835450860403731200246387543973721151483751500258082403473997675386472198451844436104119242520727064504268604032028711329982612819812095308804792229223844433538378782065475418955693927099739035144737850294072691052856639458257691530847764326264223187013047606106389557002668030276985221673589564065810605040597662747062818713177571521770736787105762523526508611667141986288689687823841122037767678653320317621982737349329322862265305935333959462409408496472573344089362214560371203148558487196551672498615419191655874750025875442457004708475201073698130806374957449476918718518827742707974473799262537656284345261450906550922143619168081446797392398686724324581212549127803190370505705146337637296007217867853144960227075243104112282503014355399333685200584768395378996975811135059404990797372941796034451289649819954455375734981689788179064102033344665451252003036798482143118621330028229930495222858068022630150952605584310892001322586585234899228899658712348110488085292079542711933087942910014951837168734089644874093079322461864009225712429209866697095093423210313754392636271954659056055713751968635940742058592407085998191879942573879112958759917194204930631620679479730160837728016432751883542859719341725977736599261783881177643202411329843140763014840004950912009065265646247368939899186392404046873616416320929654996281993718853474711948496896177567915922774421578763655752484171378426457094636151241082172676274200133179208627552507795280211081065507057939511593804425570598848515650919237574140093749629854225098724343146374815077155513353285673969701323724362877757350888096760717097737177954538476303496304324974973724038233877160997317048460421210218691798608207303271040430144058516574916691490718806202148824217106410539919223927200687868036538759858593108426291333858698151363921349518241624331390625723704512125561803550851666203562525878801456893437550328061710834886790796503069201472694999871605116838533729881831882101530195266676828136936878536931700611510141666028939654057965187908485831388877771353941579209005527442296201081956954187373833563144004063134298502520395512050989323278777648750066020845102010918648278548063474948756849926917372461565909261552499177068700327252069043396120511071778180154318803380152031441700606788997001237985360480067610043139323668853755062034520788636932793058466688631569954654250473827360127035546784060981004804533651880761708929266281176072542614125513170976565553899741200495367194560407043758745433909710147664067061779026430136326436240864831652615980750079499028294164066217790961739274408463266409325616526443014810449022415286672633123477902494928328444072396111732879275369153293032992386978301529593922442987109525109847547731268147364034503031941340124678694226059576982558689599745166618405476770562838715028672240801227184037222056085206894988065744587201692250974909171148550013107174713603079848820315132117510193790874575208349579334645741805160816030381158739986165718075049973236454682147901367566445845950502145222037582135206989487749309113788852645410705957187094454292950254964334876599993297569231134320241023032475478549705566445574488636812571228807662488934530202846969606770869985020782817610756958825508909528778678108671070110470816535829096250512108942524174221965768212811859431933071510131648868582264119846608175058395062663156729376712175345289403856967295676552506845385341228681943824786295186501706472898903944925079628369981905524974530855926121819740802926341154299680772513610040044306147255620256296993535379112027222055966459928007277913391354154068304914836791700515414843257080112947641591882868620651542213737368039912138897550597105519777966558620849471741031390201966375708620432726295939300933903929075146862045952741696732789530670642716664692949703682320367598563731076876138935809962028625772651916595063206355359207224022637329882647054902482149080822980969793877189753067050372668281509693204566302527659036481467105290219291779130521325067704014406744225754077479825155500669443683508348154558898445410591201915007187377348066614741835374085423823789535710942140054336733150649881596347951701781529369252404184053769217947597172023693107211683639388949533500046530034185005276098354454425442629183798638674476010578081650149175667589943616692731154294560202210634136809737906658448522957980332433053985589975753276217744074245433054095863274159068544213479630098814609000188295675381574563385566308900247301403059722548670382247841722432820079604404018040748329652670729851830462624648966179588467988359831718610752977650863721370117468571231171973622232680134609580364698497821557900792698921555991481389692785094631957738635287063319855069433030876017615356653033925946177116752236203718237859338759682159904202947627478471234607746302909110571244066735798892510149396999270001447556948269617426149244331322931824680430008041450516559509656355334842019341988943929567966123527425280661197023844669834806208460574596738216063719964803837585190287164935422766123505370110292672429773841034576983246316811459775504653630838565080429001167191272086813791669512490445445305165844580633779947628925195425395430653230346690792157833216844812536787623075896850198288774708249708775039809106947746159503456631109332154091774879204531887246281598500016068124131207066289934353012534125552186480317224546969767957534798992133402031769825387227103770759750736019934444925961816927701887282495764925533807164847282916713180775633410780694908296254000398997558618225819655958971299130736329371259055739168272126706544657458568249292300962974167008354907315420838925819408738982759365478783787536127390549914398082143821768300709571955733240039508749065523812851884270021825740739589587146108462953259880685272402901662451698608304105114980502006608580893046072190138687481925944501628287005787818949267091610877644088037052373872281035872559699772825930996029360506809245253389354809441537640514238313204459856851726534220689794933499963771834453793829448938703539581989584816762713062090856209231245185104871947261650802452127219762507650118964340888870877688124575915678946125734520125030892131234402592495640039796172993044567433599213378819219417871755517594956312498718785872772160665325903153800063841105309339855178003300302234360454234254178141336886841939096203513899447374829400144987951239175128899876017497036374809181787998136295017548791708932252534903254517606018754760668825633813463924023292832203290230792368660173538282618882964332175206515985566440317882024337882195089137453383621378910156239492918337422008080269171981846235837248030568679069422775374490686439240618915792729438490208556040387121897995955349762632763377539677831710257528546749237461889164116276142032960907866075505876104366089604176422415573974509004880802641905206989720664789580900724640748976481539436041255184934694887163957088871627324760872207074703750974456212450923835786418737637333154144399531115282796863806084465559474789677648406447808204046711394901527364731658937242426583438165662078742281571969350454695797550621189816151949078992590787814163778602208815459037439892547590916780973573495980449756070918570762315236387218768735333271135547755863550512448368265565568497843662953858617557826463257825686899929658067282799892941940454246244461881924268453349275495676961307531231774956412714530522692742050382240777381169079394790733085747822973073045386841646226730471199189896429458163088173461065097943055673251803952755312915251040917440093665225115969382707468051706640092071023323827649905520672025007512189245105680546059522232888398610565638876151850388129531710953106437510246336813462280823194283338911996076621910986247744871640803767894962939588078781786415174114644818858977568856498070869738840056075196106191993270485259030332138789922206665312801764203404562296521238414138199077343911204273652067970738448027467299403506018703889785029994982346198888746213474900543051530741385940533890008315593406712641549257824250200169324641757714102081877721450156815818518685573668569419928439679303886739099122148552600957131735242531995200703022205284976796426235840362267645081679583011343381750886476669096922751475286686705567441152515778746220041769686085688806212918529168299517451876687034574377353146663763444288460377651864475132923034909791437260132463426923835484186926485605208045947447344080662171935467691790371684844237008229560377625581342104954761397005279857423883712433696553348023157501786144330332754991549525250566517600890108930029104825541169378707246753690788831070329870679102171097716375240035441196955950247435657648957763373564128094511770830929107317360187785192630690724574052701010428802165731851608802171043293966861934002183272555712353978658232561445026407568433309055066770434774305818583026913969270468585285112858511957372756210703238542085717429174559779249248094334108318975663258980195210018387939914700542672361912361970205809419178430763553215600995828451461783243750041668361127066417865727067450399753043591561167551634869472157173051233429933127263105592906152881777056161994445617566819352042676833088056266903417245898736968614523421445801786181603867566086401687329604946835335778927108173600617421713258780994046535324139379216974879089970953730915872466790836019411969871624206029482770258892008122887601711213916558782195553992507959478390552727000439664806678591622717842876184559514042429969729897429773863667976997192107716134446718345781984063732312367441329038008588032940421262385961748979180086609801841170485997603166586841929701509174284321474961464882550131391438503193386300263603195053528134482702781651349894823252869960170582531669824908601016779363269789208466368277190386747646394375600728918677268518233438165024143832913036261505753617759193771403405756675349055686701539218028975926569841574182264176328619338438395767947433858068616032191604153591581381816310255453780495431101161254266415238694924540349513036492568444632578865778815773129572649288361397963196909969122674789823184550914782091923432429678961868754808604936536663917818791716371202971695085537892771787763885859259638357577550169772660144557628924731436295180928397018619182252536518950373144743425072000453401373008813568966364675517435518450341894751185606168443477296032081665622838273976452887041539757136604324416409516820041899609969584930592400284237294382328860998181208104591327492182283146706278513294198420848037924643149200047930434367406444821029957143998641177600441941700991241520715004169223007169081950429024259718558734105733052053568088525637738051629562195129333207977354264695216410486943935290969167057341532876492128763580802573292282035810953456202107869090690387610386565287661894599019919018266663040800506260096115730221912455212016757453032298823621761335798881626890926737762793408853945291240477555322608266061673351517595121715874604146948929858939176735772855075613058977592890761782945698945417897331268629326097150730790195540043997597935669942920177788925551459733126997985374158227335616486617519815829638890356674725508835019537640656405588193930527876838845508808505829861514175740732511190355083338818898510090513359712159434201519518969427835800757505641471514910548777912116565775164928648928949524407060727983622789651521714096686947911706787506966461055125718439328697307514625357778954474631362896468255253747938302715652870627377914755379893148931285090080766168045587363770416229423666604266713838193842630882551773868324126628899713757805634957337087712479966559407558311471616369358154549837421878760464796868977580121191514959232489201416363932718977634160161981944487652197025730883189493914266435410322796325271508039924776535091673411487304903426493800031877473806581562698451616123753930666937881338288421565899213419427886030588566126398262922896006810510856524716638136695858228194594506556118144076808037414062115826057051655277289416830732603295645073100996345068226387758621297482780337908911763988024620151242276064192210874796858212626935052531743301892448080474923906758754861554698252876906086119212404280489406994701130821596453283741146262185343047013760201329304792018111786760412175384185312265205162663962515534736437583104726475571644647648208705608535230752869997903579552791086079436865697476112829089944182645114655352122094384343342935778399272514462617780844019453108902823990719891833577182941963832282746744859508708213031410011835193123140971365213502865206403968656149397296306145124965274467026944916799218099032923214329866352144033990112653058101687373386490298694542564369190617762943164279356353755885618467332903016624109409069103665988848848695075485839047824387964700473042530979254365227693425532729870367590322529425197927872759238519213873378485407213362703825184860055424175190998308295431464426572818051957767289323053503330852858953097485699987159021145551890056733672818459448231744477534742983069727689400905206629341880473146579154380973986438327960521607357558150060405383511780832958546683338910385684789790004676623622418985407929266078226532582952308588690958183220799396989230032656019409233730300040427156840034042592865452648380325845162053930048573805491992385368461509544090808909989330777120967152397303361494306167797466962149510256774271560985984341802889462451251932404787006632509501383994620962822717298878541534067053734912497818465246980682688763962986162036780078100132097168794386685852346025326829840820078777987403745704441458845209403416043608010949387576765239020483913586826054500836327042778044102635282237901941732342958497336299712749630443364925581040502500315748212279016550102772005985442192162009162406780671232505650232450710109628829657643968360886561072091042157131067340340703751541276958178801250691257994396663237379118995627257226395777912862828643845981898325251161620824272972333827958662381566448482791890895861146067318614816695876139928886585299739098668906225869975301495152298297611755352877067018985244059288903848128570136901467173898801237535530852882117868425475410298884207196591429038981365640220714407583234828593447701303240226230294214738482575546697237767462879856503108405164324673116015609142974942861725715850245628011591512376513710424699228966761001102163986193662623803940695652775040563804156803413808545076758911550353865867465490696504308446731353717243145143410886212758253955305223059606270852988881977698506971269653386992792680922913296874749776330074438015065983615233724582901166172052427672467671546360675278370350103081797526367919446276161904975074923958786200177556554561544432625421478506121712688880503471654672290083669304719872888657229646572519398758822305405164281943595824731536944741291464985154609507059617355430812749388554126982532801721472178836924451001028692156714499001206407986705046765710617399532556689230070549066038321397136161643942979004564243002790893254205925997879202959330752486430961609889768230492715329486705926460438762666194223635186786015154092743457909986337792367590664935575185416154258598740521901126925937705923437561138580030544146351900402182222533491940911582353829033415671766127704259098064871692396365970958395285147263558641541182828171015886151368785270876615686050207455856326303376640604942440683584039785258716342001105457072210828326021951011370262847186008476102023053296796233431875761586779536621251009582552746326289376476533209497675600596798929433415802839055126425977625858377818760251434615621552915610966425783623661489247656155546542595910362275738814108838720952502820954113396658035621110717628152936224682538593580725349109244329365318551826314426889137207467760936575853429182400021359782447549719258799703214507768203387318973989087992998756242391536986287867277099413131174385906221182477021768843563321295197630504402755861162698905839108068455304072055389143846922850008035417714313488749145418236784943646041632381802450362463845886958393039130491819611590787797618962808107471875501864864615822598240147257362940231241439682947086557047985659245110013743112094044854617633720816110141662121255543958675444486554729023625767256237313249611609198074683738668222187701365630469061533785115156427294246793162354345361298538351616041969336776646027000235179372293221520966388517179520749826118464440273414164857522457837991423446696398603965161979240428193332277106377648600718539043066365271888210298232494613017508870904812259573794815790646007973097635809718502843304962981538100347823988193360076247988565537174946624867706078047032059823512799349616921559976649858212784799009693382552954348474823173341605469005048956293695875431692388358096109393105956976508167666809374346879219901235001390002277050259297897788176846327236609558553162513467208558627537267001038389609395761219093069163776866038221010285728279413955129841126408286763883380925696456665317449038735512989366683194083377802863605577520356051699368714139524820296949375021259410423591181560692617948735852990923335921134680596907269545275208097265769675292408452002379223110079461720588825014029839472152718529743949761810421396500939135655791654236343348396810938714787390964208923912293681284644004478152751800478083800923430412009094350334319410762823203308236407037814602948725685825855819575866461267556323871802355213309332434426969960139025043368919204662345621663285995002953515492846125481737283872835317939245534502657429771346347340324771745772699570929881283951612786785166979371047692913072401743759448309850923040533559244380563961652759066091950239810723740181231357481507098957475749189928588458901949336644635177376097731730923014443082816599189626849980617415890364338296179539939079900680118686403538629325895560177143541520592823758742930244207705674942243767458044293013085899472677399604223614147821416933244997575350001058964479679301058307740569300689817575150652308496105018735583341593941048348217291012659662291209385989360727575411723639496787393513103784198746563600745577652272336368092965941183814227746102468888710316874561763141068370302449373744593592726672340314811411030779435552202047593543030775143251397824990229682418683740277910968165124473905869936092391909944455484225929465786128713082951836704360237235421100251256362027179536944998797373217705310394720900491014984125561988114818890292127720187441018598028044358387468114765908800609527564555050317391910249879286977129132900319539734956568328418013524274673232468548477339318207395596915295715134781387196003219915701943803059560381347819660806729982462088593989400539991476466788694448322419891975234724789581848669028727445363333145808052375939861459492625861959773298220773309446089146978636844424914934837334180344548696970408012568101509857515029574601329088762125708878845295322081757688213810931536427143679076480509050855577811126291469506086107024251669898575141983128158730461042891068292597258199686064869974327814100870569253059540298472256374650665542630761622125915752935122735613698871793942281677967492337237386704630701203546508568250332640644619339355407131323098355737236199720593646438376126739904176166885163223418202021792173015341023457342881030454576970199876806437960666382004638075181503719638838660078242958536241017039018194024230167613359963258128492147295728159287543950293631519440522368173765439166341674956001963404148140850161669799398958791515016144788153634496372695607494365661369170192365510822451985902493650505115462945486051161940986821674663823671202088076293955303525641634612336175073149761210579343662209253443274853812094873019661615914117090230061082813970269087267388513163440188094040386305821383385668440732017140453841361560313037670376472507404170465707242106826259857887600255249865261826727003699595831359212718229746363488886092674753929848302329247133484719695790872892016893356209524869373227437090835825305889830205315933825717115102639007021792541388345265066002142917300477552996523645676139841397145743627360306944038896497269636846753218253220188119120088928938359306339463892019611162282388909367599395009537977463950795578662481425139878671307411350064077409519844473206876923838058405449789010074903642297373065311509479685977362196090982099802932035184332657864466660350899899144664857971009090544546281717782969220643588435599105181585973904306560409903968827474677326095336284556258771013632883995810941560926848257993044294420505443278714386904101002844747111715725496660434425801931375523591937769987887100072608866928058311211322982229317727975995777834340226954946294181265725557987134823758837849976517766083002665180010748361388568535604184159908375373779063664836444318665906302858336535292216822978935001845499035212308102306539341270106870514338408885977957557954373563783048020364201727546647547985687028951982906484681616492437760585729204176909404072283512629664765693282775434692814343903656271515473021669070630757547736850675885214386807878576651329117821333676050593827454666928968811941302450857967778837085758044364394021985436446590129624941251325926685557939698411549018615962153355526555844409095689203218469721406789634005499614241763540600529695847769595450828218243145067265401627630213652659245955260600739176102788959600021755909111044882158619338833073241451873986627808975699504323893081872334749326058541554203051230908212072099557837766446169184233075335605888741350810708720604107612972001734468593808565257881655527290696055631599175987359668774811785353503297024115919016232661076982737670419156176039435913899641907579854605536298230296874468982765612027826109363149232217878447944571525038780529805756950526170330501606034599187961578207438035920629062680309718992777896990937254831634776063990822010239709227071113608938786354888959927056810855238757785871704218260726413888322917453257279572397126836267540264495886033460483814197249499972808472393211805161049895866337281565024187398648586805303195530741201842989695643935166318402528254892794748867831216823222201338129996050836759471649393188970857679454157970395786931445320684773592568996728401875021148778674456580656207422477754066514176192849179888139007871898849060191297484537576169240589162730543763358916744838736467256826134816877271151781652534126051996992553678861592969523888186700977237770987698602004371529394343815019617299882811201648119078733029924348077045044223282758193506690149373544849295393030654527197677797948790626497084567193597957357682970417940788442948883396607756767564744974374966350041952887618222875655597408279040898465532952241850927846231589353239092255729403551319116380763619131196085034878507087001307556426687394536317490242081214352206037161160611386830198118247871204822959866107537209054841358192830037722784737004125824916337774600215585824060806718879413992300190487288746778652648469953209010257734651909571494522491062666539916257513707587262672730543532093736509447003305278195816032364638857559923024837365438509098838333639677099284374466817902405084815245448016684670246264476750005870585129437512898028305500457559400378166168935835359495543413841251293239090212046013120801181703067040312875308607502345196509778950451355974706447584861735607309122889149337950886146250222137501580666870692296482565330306612725647442913739747274658821224058091253460005405337668031162968087429244125405207545966159518023207926528232137390959569555041095619013267511945969848572015741781334774760363073421359966212388039665935388277779210018884751923561701684016540767884125626361768059848691609260542739217298938008047924119071861293917497901520750357621514648559722588828762638036270952534385652780876977532881763553515902680107234499791229972015195018574468851190007608581120610688818189299665749409346622515028715517738114914093008375626857743670922514681077851251167884938837664992385524619789577302588101930912379941574101950344269480817468777235279052310474449596287756096204565749214043904840794908154497656623786080067782009138872610347298902766908235270979618234820250217935722955280672342675753267865196017534997242509679607474996377526776405300969002325766558929883665880484849990508410675346824524516046534725117065141097524329440468318111542821045020542942943721848518910823091568018612096331175674913823068117434678246240146272343362612261576649306426924848625503954775307882333618297585385746901373001297415505153413633764537442924598747863084269871304309934169085679860435762382359406585775649366000601616260476972091823597167346179145372245181337328011025900511955349049268210441476931784818430672702367923704652310988403640494129469515336393095339035432227617625268375323343953918537487905761214959632217860553111246250090649672729929262254942394135885223150888672306471442608004548921702489537516730284802431514972255832382664477344426415259923821842806782212135896420200315450659254972757798441106046377032541385183104964814616329561506056741654004147344557800065894067742941526439853494980891418271471103220110608650733752622677474225209864742766809589150579648540319412133989312600893162451512172559606531767991559531036681499207262478878122215038258457990046527007107919692438832907647052391871767857016112324311924382802475630337594012796219187539823981294636246332594201487000340235731209060483306040592370342496419692813114534215551108843332085186659639281030069312926759808674587272154568754420423933051331716772958254436977274179408485883909922065322267105305847743698817889841633054623331735784554560031827769788359611741361556614396616724869882729689930469623260090445358220415844149455448486520055682574694158878013693423121825758746648177910150974999827799372436638815088077166218237876823021084517704839840934556955499569978107715295958725422632856390689371338321071974847888331227172772034157194214027111089587204527164648002522197986763405106103543555405284412911671638133376162409997916899150589689430491690495645261204781157640141261733985391638806111710232358923767704424051034936376590046102769147788888801251178742345460581043282762273521567513286665639265391883500951237887714262084150821657187775259691290919208963625427448562563449697194616158489548704686626423238766149782118164450575922995369456723648913469158951586963747740543290539162263588854956625554501724369392248588835689652897759612139930765916903470428571942896065338959797849888967415773563180330275778563946828534092846607690181796785365580924701608321042948086386138779362353474946543267350942384536029274961216150818506520772730856652570145893100431416558324444074677055848454142985034410443156227253293299438487780513413823107767238455422190001664071202522132681942197979054614729737489188347959726398528250711745404826206479628851917275980170404276613143599059385293737528672979039703543757532863114171268284135385722835268784184363824694098088140671860935628023325325280653512703156049576842013202623400301825034786892689490677383951093571415359758005433408001452367892506908658779269423075988781645718521107384989026221957899975022353289636939058423512285247936987858041736383687428351937231739305442802267778936529801533969842627392866331985284979730006014537020116549647249169618500818640690366990376849487004373683278534193692584994032967854036640999280127958445441224680809446629430289499714223751667866128023664316840559047729813512739599201037899018704599340498459890054957228456693862979405610086553502336564811092581744204234372261431194078043632743955674042942580003698023253283313622169206429785446071578022165352495153885202843687108609647168903252170796744905163373552909855293226854619191276801212140017642422912741270108080357119329573524777653921978390967474343899570035512044992168401967854343268011939588188226399830017396625801596652570390861154484143340904298625384931178555201606592066053446564977440024894058388378880585431707160779820699515948354427989651152729925740215024485735561554828796827562801168599232827544130038509580683977680890134747638453241666325398839129901837786739075470880609214264942777182146097781945665171985176257083566867682193071572204038377580660256286522706301030101069450762512934116007685934263211503891351650094929480312257145053361757820130175907504590304408753495176993963357267778485292734816474407947636364508151053407367775389059282192432553343750370489627426828531718509339783214882697662688689094151565168262583412273498517438647150840144183945786139332463708755242077940051384836109505083768882371922027651537506853206117123900406498235738818006864823448384376350704695505051425059973775761447124706686489093821441616633414178812776231506597092415688840382997502332351985604670369811244765603386641633412437487090286309765106558521104579854938684942159756387049449051745030192106532843084613812712575718004821240612063220639471246367182772132221991741792829581171480749921581766979118184738986005038901730467008103200384564900728876027268371580770563915113630452984872090948228883577812828114055179428215385024655041761620144862580223607724895999956380283747120124657210359829255801493008870423719266989465754109027039118198991802025289219826759232382886188034318775780052460295598267870129614408767060800213803145992069511516224921489248804003287931221714122938046701381014384696446101526436118393350611233370641146334952954608153291521571110096160930943678143500195227674881321121855855811318809288177872162386903255067598388006153579064868434045233454957269670918101454160907691062037766336375574281916366144370546014514432813983138803831683500235269161999153437766305844820240007735093990089508619590862928443314322459600629504212705089408414454429204187870884838513098141498950816053438072576121683382573007430735879537312134375043069092038721998810929271152612604520166721859177418946272671348170875843194211980585638136483061651415407644384388005252496285119058745003120243062368615564977060667458903699564302338732672215087765602003221039836911535516685234496487328045500169999709438331525356671961513290811285888529149717116489106808125823124571023738471878618672535379750787307627533086719251312339193517687803140666500665159105992164894750696867785264735994810133748726831550357869989181074944645766576217054844592431736960156446734899984894903752234934325554532125018645934851596968610266167845903795598663361659988825482515269149705597118361100594544300536918087532359755958156076486783283664177060804435539825265316799756865018421824979782529501057171159516021833192040564116629425984581481339222600493267729763138461989412023871402124360557295897546580729485389484288057623250381772901133317430880435242999711937387158270282456765418340323723227485892731380944568942573159737440516713422329834930002505108993399498956368373693323304638958820643681040896684861096796533406351765085181444419040655811301959924780461158649657928993504139580592476977696169885735621793610541881683525473200191968050362834044161348326382288904966036470773649390601194863589477065390595394448192918207476326866828318030717298540238958204751983169046889752164137868894492048559919030028308045522946774510663470886238785869102480578656970935554447031816134732715186100990148973150472937771350378458915062346581134802323449292035265058686848286506119707946657189244119898630569875376940929194921516015355514732322423489439624849466105496350240983579124115240858422838816080822472481026291269720598139106024215989699605840175331848961091931091732294496194388719776957611640925577504180972279639911207652909724392924703547814780256486674845305132619692100146464959262649143494278287680915542267393667937190384216196806324370035985426575111111057774725685126130816886156565409765770078427932179785629005947144586210697032052668603903023637019414379452275201663410004046450952366373786682827065645962090494408139322368654149682869125828462955121274794011784834046749816305223398356650182520586345138297907051081105066556919204094555089455991387507772280446940678354512858984463575685320199283523721250426510646314095743910358442883782660968811875480243774490950519207695722421326611444112741735820871593204652085880804042647456007288417278088465227064297820235613664223734170559078442112369231909300471339004115156007035671903969601699856510275776383580459274416383376491076802484561718372261155460229670615726221016437726703447376955866765268462421769226599198849191368984161205077681448723964049116043552445852312822940546836940649151888053537937655423360032470062979752315446644966376469686241759073284843004318341267269942660356072480934994611429282553680903506894448031105081574584161190357095112548103710690711141109302958705625303440498271845461735224456811180304968646391578546657506778550989422398478356390059201656733972939287472182087293204057015895484626940498818203351232211302780969621560019093067686083771721011793162356789882164650857084148941866909869909234176209105434094710841897248007117484768195129505041176244576346228760769359471187456434675525475826564158454576988740228404045177507831222971415908946184085859144445807698188074648558151834814291206393671835504553808240235197960325025340743118309801098282910820487228575084358208722881556060894859589059301686893906598311511730178581517408609494971296338396676148620607477779992035284822308070355385322445482776527503070325392823371579400615421333955028448198756009540195093625900574164001152265894810240320549142717328037415938142260768175829536306132670372065825241306599768290576326409809390745152779216386157732549258425798539004401725935172865518168093279691742773135053798126433459319158695922923881828741864763022607112603025384926826833852653071800127616998305193393286537409749139078949616150301875230044750063817469447294105517371993364381225595510639922538114917365322054065388745174134611319928677220551174546347585465269869727396210032792617874557737995535640549123394443262015313132153462307459991996812364892950305351435264799756907170576288998921410559362810325575339581856180480016310650542184141727111674633586880735149016256800168132394838692897793149344345405541829446916584499701073857610589151222042127275592713714212235743086826361561707404302597884458925956677268509181240589388036012419989138730523244280188670275578414007592390223200541767402078423638493542438539877230869792975823956143794762473826373485524754328165126746689492551817374872444672961380848956279725370693746085080304876632546430507020051338322823065930858056787383008421612551832722236487072263681017127017860210173270769864931179293306463559480415465274570126346214754379556206419768107865831845222844844322367487132159642175832355340854048042776161275550096571368967450563670172973414331171788430461572973857327974299560852421017465475740986034153281721441275518666323699516488819127581680842510610727938655559438726434359372119946973565387816760501258741218583112344817651388812079790568163526679507214797999407103218062916606242804669997563885176376760092389266989337135757493192571792014724715814802189293903247790420057859622978947013924722765914646324966121226682442117338830625351196209216066113099632996918734257337746579611434136503060207898041012342407946722364496089735985681893527899839822746059573425104006303764205697775914736742768947750263484769781024604470164924648813360080211572899090866692150942537872368004238984287331785596659784009578116061912876690027503566776753060130057317987318699905300366708518224717580026523216572229422810113016557231738144097547318864302919791207764589069921598242478190547621938922001352726349973755615576897566022269454437439317656226993897805782913804863738610807938900635347640254148281915771713282503209635989653752148589252287573695226173017034179555933387833389784989346973764212147934340442277159018879767546986064191489093858183651425513193623568553959357879761935191977990030237105300267339344065055585811448732410447824950920608509684171854828051267848712166700193038080266576406900805359972834156818401163342628307559976698978503856002233378077415083879360037714756088449039320464180587595427935389461126253822826295135770265750853882023968916878949682911034133362709991726098778015815705140393424725712292397487769249859826076121059785270565730985954174555686637366623499292367219513556432246059180004922979678113688941990534335045198767032268618921599350263919946909880594442381316939106060810428001892329151570709614380980258058692119537487849568502874114262460035250210223695225219237935714275545339604041735900247462261387609448997578970462248098022539404261562618481936867517020943734148124431801920349370211367056056712642139657051091407067402805314896152883907435172335174098293385489766934440635538916534471473538705232331713820276937260126109048936905754471213281931837607668301771738694032321377078890043229818715463082744472082122520166766452005769955552214012181560022203425956716985692948778292568941473362468694492367149642398737766279545721522386897313941024186686745380257704495548274247201636509526143793695824052037047103130835017465720162405197085792585656061189468629241723004151339230561595045241127097290799366961316375549226178023641181994643903977359439505115664366867185163123597248649457354620905132649625462887901167578151957226554461139226522428601136564976936160045148939705445383545435426989941966674347946087373674077472784373092775412926678195912510101923206220441447287177198176352378817473323560405273008858394250753219906388808813545963050741355346721304677996672615511419232401314388245417835853240107163000350433564546810925394603282258755640958455897513789246442440270647168353209006319261765250311791953511191671946482729296297169565600760615170916029568911924726872824600328459685062106508731664751790216969361968460732099801816371534325812594132585285778857324840073462046526355966244877627976866806875035534209869053420859194430851844054229185819189656744221652264255056665175728445603126084619471044246890163865172074188760695353993716496354417515381964679854092212465378101277043189468232901744524410547594747853957708128104778662543571687924511993064889882813430196141330453571095497016388192077971917036346015393275423446865691297372961469925191881685041541400830816367397077805358808398916589916813243338494910523134803697548725451193837957177099736910960891413911022346422037344438006022935759654713902540117186324096927321026143106755173736199335765838599947736346572978001305504297551487684366651764775384168269964672061973090691469305308017953228778338456645759154418430659009020322862250345267312404440038076806363817119583500390123152579933232454087638288789327579393887748681538051664849822340003440801268689402230315697890439812967257741285885020675722729838754741145871021846562665989472764303410153487990529201354662321385139453874950565755183413252497147886246849457120271809521788541732529653151807396849217967988865717458281418530884201119976379326739820397102876540275778668824186427292342634522362684484944973302829519448725136180035397289458638007255301115725646117290189571576452512864304779726727644459002572935770039924600238299616137125504368612265341758457640725810205821870211943337840420466747705748251294471056191771606059035293972514836074896110824023107218417386697631745898060965564987310887681932581072514155448984423609159497445024449602348253812561944036626306406193020087598642104677381030826871068962110457073686482828949819025061435694191744417306846316549228590283944718302092338874104916084839700026399784680617673902871741051615026651661320120675703963175336800981873763378719413659268693304758897970401703122079276645785625168897944577237007691666317604919238060401536537586887268125802236348231393435367899539788151244421245122860284702936287031115009568799920864602542209998184789363345849195801623697897834307803302034138034046298153750390824098632940784011747299557091375959272159031102546973820200147974078481996267373468814872750949666906395791648528678618862379660320732807238525619590783426497547659035944118921326666750357571150943244191735226602162072564947669385792693836566688989115111606293411468820437648918909702135612029936370855205854630877441538937993595292352113574019766547246329885477716400924135597681397397150553185136431250611667415451066092087056505808033037296787793899274099358082124165768075762368338843397454489947621439946748412857089969456324629534505695630666634000201779434768261706203417393764693280961298248089042890782261841506961708039685408035488135105293595861573531634378003048359698860846098522143942970223191195813633639423345270480718041581465179982721351399535552412015362142569797290178621123464165419414972833864714358609091155194845496748420664536960584790648824057435386208539329529770874296249918173376061889583395281185584592321824167335426987567140392567674669145264784003018854619483858245420844176326027787107031270554928558525975024872252887859486403557472382433725619045746303668762646966757260811499009384587342657318306153008981898861532872876413799938970662038976483259653615057501436652649913896426343238002947887917681715663738573646508870611214002965193447685925663933576542659715279936672880654390541450796434173224692459565820494996825136436317144991879872901555829858127218865116147121234327804553523591363813078913934887613054034399010191064326044751812874864100467823463044521152883507504031265813385439642826719245162078250304864577680542661541537436942341350786868609001053414699503042570403710807365602968231596086950614875444347053761539089215120832043529989937200543947951488031060562144525739857534590476881679505312547993967833957407277191949660957915180161244819691977021020007688037141152093328801305381460657751959959458254009818694290456005351318206105756713212951748858268542350071556608231851060863959815105153893107484117924345810714805584691178533972243537784580073749739320487151439514829322670516902406344539367448990742448829342576286373869719852787608628696278527031241076551428263992713246374813859607586603746961224522211688693243581761137268636565993959323543704372684643286690918049039907514496560616551481373578179172513207891750832590511195118219670924060271824532134791427729348879601385179346143402169079989717772331575572385743458818597556935271296816391436268830642728174718454405617399138664345984639440960191891370581951110690382791863933889074148120719234069901097480486204704298763184838720308784784692244748007039746856078769691292214398715678785721785450679277633982537036531007785933791030312420390482223380837302427464606119085601985206940656999507854993088864482445813504581044848962404663406821382800121233428877355483485825734652638542038379955034227951377523921647331957637010211983548279930727751650546547703987022290392759206251501498018533229337063265552156135247635592417059248672738468205612572407793773159331238838125904094814905301580465449066033410854323557547595050066180255094815233966786020441210657021655644672324715879890579647209800469485070557016581865328752445963431281211839331886456277223143440625380213933858834543742486842341151683571323498805984796678996565082624156473537385279472220369828906967063090672048101715596259539342720562877947106328373573016898823602434167748127670848189302325223351260140035387992845285862776919880426398991122007490263499343197982755624774589100967348401484267000675079087317988276231294305351227136291268107363899765343582650761595006683498309570824009180954378023483910627046103834840907648550388080871151467002210979323327531075236068452927210241251908536380926907178162504453428140725447485418407212782598917326999879176629550853605426958177844512308765311272059968941567629269088095864735068978478428194359583948055861327945241565596442718499309972675147928808909534717733677145489196779921768227278409295058977883072693109395027291217398367871486901001515714088894441442713330679293181674552282239441921564273468190386795562765606185895490254398052681213494033670777482638860434625292709333652123976020307818102431885534854551534234788464616793189928286245300512732369363098928473900731904284354855851620858561679317114725758369362063281190300859745749116558522513505746256203580536267214115722513696185412046852614135249650368433997619188337752211601128501214962766876757502850176816754178993940310542860630232289245426470020741477526680327528015768605449731827368030085977719700980177135890089528201742296431158992381176976369402037906443262715610527239109059758758622750981208711531740073893395246580175010416718150102814657235177602156809957087513602910372006633058975183430850924168102970889201493836386840446520848144179505458196925926648070353252213807510453980201742213191257540548530709408160905281693476789840143720371560990285564478630218547709316052236062382869095916105922556989955375341113986720419804316237644619917411548933300224322675974264785123744468771855209707842841113575551241363664545815608711772347094286807768024124079831089268367824830213090364026782710808793871045130400153609683685281245869079109387581874158110177651981507677995458751060769884794444574600191742829330375270750653368825926703899974882851078582666261756745990970359607710092833357926331300911593539904359298677584551678757861759883404788452832778364738889890435897885696019749265263671800816861779324045515345727716019315246867934030376798340755751562296434225200582007728020714949490793396466831015732809440619833117405795496958742606690722008198990520697460174925869951899413433270972335712253900315686595411900505243147397607665135444627383702345596062908663008622208112249978248380407449340115404720922249811292355554109814051451890517324343053957093176609264758697238027032003532693099030626547844983674030553391875474940272719521863499117324953678973171182133318882162545841287912667808822482911062458752938443050177893451233187773753050356459938588406058150123059289513352022829560525049571631045590464336468308106425414568700861254728101104056162703055994933975794666515080421517788759908728407250156695777369296614564914396804238536158966001857290043635814570522360159591326092484931843508210339401561542768264566366938710506795181526300919017410733571064430808224641368150681645160812941284144932759958915021586149406256548639667506779527068809170049244226399664488734839872765869560975712629636189266985975641145559975835473639841594304540816691377508064195655977648924566615218959725671621985301993746404088519759039091031864011245340619247232819602783441803852135414965976899430870878473022067646409496209975781976715169523127216304128608684436858362746952846897956142908019752803690475997696012758095606525955587325994985393369904184609621634299767180597166811451715573677283983723390826074552564184816979052929984822669091459811558795758123315354278198769074764167751660323886207656975652608929224247000647842150797425601829445760869354008374611175257673007705367420619951024874157516094539911320200645510656160664207854644798031850397822744287249248395691201904578386574261377353505899403960646645658902454983027704053274035878603259346972078442851361993497279189598884810145275667574532372575002700738861124509186228631407567122026350874484413508902724282752715032120696013918035693753591617257564006996949326325145673945880434328881713134974139823808778006102747166173827395130985959788616967627311342958116643199776688531992290478393036941951915552921994860001866310932142932204784334401562000132662669685789853805016152775095600636272922420032997831025005676407102871067691695278330343482653681205595547406712904315178412450895659981075816305950974476149671288510845146163722461984258764617329932767607812313423941001736920297287153895894028732728490668921375363649413751879614648682580288956684440487438380526446139759498012486810907769034372778820821660431011855500046850601299696798571849781466821573234788205237655033769179921387255025607610962832086645685327203770385624216673261657871834876911044859200857247961841961109907273937330617202668792551581198933728822689257908679212720964451993640620888438158438383778308898390752830528226127932432151483226427066375248799899869456795839040461292196136711520427368683885257678585899692516671717972421265207556133604420909782548271170062876687413245789571569158575302578686515859043394722141348924002768803449328324122783844436273523729494741306958884850400781961106441601985987048480999857130216499156174636693367550491485026277149806916719417533355450032291334068893854549496780372426197798623651494387986420841407329504560143765218742992443728868989936367376886346993128993025812792671180746404837575589240190485495516623703870806875338575042110647030521708615500567024008548485968901491772523237041465514040435407907983029229651135563251054477530696281493957453463111411206549737397896875323023020702999718457724471818584767224025781991236170601167894075250982100314846134446581989699089864027322124480871614361077845629943650601061644366501910748334788720914686406052129767105121650892806398405207807625517486354170654145798288727141036121013209834676048864917014816229007866472296881251428266652802070630970566272612640782418028162554387341872864945693775189048132560716441715792110405457088200031175573081831388891598778034594364178680164550208024819408992850766956133691296266124868582999067813660430052852934621437760630575285136047568642392988606977224298381433800883677713247606498107115280567864769044553424837182089203666240837106808731950071799940164516947695825232511382519943312494439507625473425754535482611642845225526918256203102746485558681778141384167827794788007389006723154287423871709300454602970066186662485758555779660627037657447392660703989036817089089638699547942200659976201395581330157784642104760121279053938898143623840665384644372871557534636893242748388823063851898639225992426486131047131341345260800299316165389682884760674359329310566503768718202271998356407073785885823399192215001482711678065002685110063328093511517642033884480146296913392872061836837093978006430990813905248197250581002300295584596902355359730356545575137050496557510989843668441851248037960028246099625505540959947181006411698716041686882641468635497087456382153982518623678599059023012616654708354183010505808220070090010574291875782327231005850717662193556858307470439143863119356647296047072627949879799995292541322220258778191331748202826314297074848048442757595842595876363032141459154447051077634020657415981283435382152258781445616278827921315273690750332600848994911001053186382956876830498502456455406188385297348278563869262343751553627244134603547513052705097659799988351075077624027451024770265128313258613224626641775930300393198257715681730856403713875619221838519946904577173061324270357481189109156051411649098991276260571542899567659534314439264622558310350848905760293781765658687175546523813173054248008663301606770824742694199519132128852219592341885849524942545301342823938998942874195519198389137550779994660354928409192450234908005450910418856698478642212885132215865627327834919625106982247268002412237755448261718818807166009008272050399359745682555455608390057942744308088086219244497197068151449538288556861598243267174008919436973552635176635749090892297024290121999146489341400063660355564235120227623777631420495969247960893662031266025689852963071398846389769062009728936179565587350421438831168632907082810411685696038362166776352580113181923472897811098982380117637850948932952508646223721256561971991490142355942976453878294906227313047872000265745545062505807228495563820094834346428096001512933533434600811943880120976180775861312741296828375573115164717659657279357798757208780601933143355244902843412523187748769747927524338922653633472747782232102603763496220629647296370197700779195616876543325401273720334684203191260037631476282222019827991038073492922097720125803730976961951431758807394672290404548861163144844560840147609298729637951066934039257011130209223174294992620635217274192066134734077467561966141033911784285441431333464128667518940598153404759391131122065177347090157548043902851998714509562140368039925852460999540423644508713476337212829346248658319370412311591807364817266444339322123769013350196403133007922328575076378387062204718952378475264195060843652220807971464099653703969976955225264812851717055808903041764644769355573390604246715976773256252732905079136431652322643578446763530715612354858715280523278876503900164897166917633319516479964511308568793857581498509083886314882525423513433565045490095581451973372392609084475003108495384264871060164334564265752774960400355828491533783667417024995734598116759993106665874130556622466682360781676920549189796825637952445853203331608427066960488375222745572662250865071943120723860365392885562448121973438773915266690235156202257420411749134403904812412260398085860556507318188354388625583634911674216058734238104959213937304230377005077111578467897561842983289387530314757509241258654493823361539083074487832179941900432807803395503857568859019680627463796250675883728409562158694226532044427705381169982833661571264068966922199583359797916176350164813142404674992182289069165842515730290429038213972312696961319595076051633852211683209197169699811247483536128347401611175541734929519090423552800212294035616753111633608404166404675221736606215282872249049339347436457941688409500781340488399247166519534290031069392236385673737316473446552685818037779164633528279128701323182774571023507488137087033760802317819170225590927572766243919872872179087728503887124046326504884927500023543521606703748792038305333146755356848290509642616603898003041297027531962372600181688904947650305821501122873800187938061159119596532335949022340263674326165586689440902588756954183889105256014158930496217079280850503980432797411815762096900895105997308024204327394538277455425272925245110506699913595237575741612806055921313454359659751707360485433528730066689711772803818863462235911197977352014453921553762398624476712803405638332281050418955242871237269388743762106954542693550885675412864005073857415415804132917743755256885210193538092994276736687992369946807943368263201017050621544579030201941687214152624508545254985372310111097586654811842278574056029426312587050000533190566012864608488314345233353977216776155545302517540777971758419539037723878519805661655269677223765967637692108389522480449390891471012389597592245788906403472317544399238406468189150576007010911721163386183016092581223902875788058529656718967165403993705012516918133433551590011764962592253787347471998253933465076395932157756751245178297333545045536251700369353738218110640336390529871365754102144974284894863904646094680815154438604963159146476465580564066223656744722843882870287120425328397551757330052404440767003446147757221383667643989025667977392429786019196268187005966264753118761145230493782154945194502766581654458969534959198195187501874406258839407637943876538858286241906068690093657320738051872426799375390612899967669245774582375082596990435458022691063389337775944972859855871512897313356818480035573880728730851477087796437365507722702604933402036696139920459206285495787681181849709195587804782316967010123598079655567960413849957885759038740454499272484293911630341836741450824104209867022862942414402001816975719200522885458067723495901592711814121422082007252127419296778549639290190259820916604733669890007191717548238946920246620720263875313113440305434540784498959723462296037520396441444739917483722862735445661765754222246335704365745259925389486415547919681327160719777552568675204140288554440339774323762658612872569558008915216010599505222145087048758126074533459706826039011728197800797892106634759280976012427983492120424642802614560520569851080247958734692450368397456247159525508684363170833861117245521674814270183387826093139575831846430732431235195395552757449129712233409294877140707083500330188167534987366264712586484866801531476170679425559881728811730987232834026701770103396488662868851001607789777203788929177975067958676238371048925672638276890828041791147057430691999925970354861092223252991497571664029919372719414952035873477827052853637453932187412104072375325234196987466902440349057571722285393932978703993761477902363431509508256834904717172944757041063225930521936598219630770820225916012684773900994708565320487605360359307163550044888303542519284189947374124251298632785524953267368225510109815606912484755204356008363742243614781155618902757346559307243340730443164535729565317296070762679229375802256918884799167189739370664353834795235555050378325242128606616636551111649900077483367445279414166587953345030713396859050726395835641534693160012120451615969611896438710446258527148602730376118407277444124076333325190434761171079372773670127428357526088700851479426511220628098231911822823397278481614683613093501887558931675661210193559903538207258755818071029837067032950279967654537678032707449169528102022085492477966455530701470720169734085453071150449967716308493116759944543537085324504083523782893752732593505350908617081335162313611939776586340872550157789942495741885862006318203676527299836566187845373120578997581597122603187962081880147291077369514955872082013175653789283580950254000429092901038550853783575412322600587862970352398717276105209504757295870646588470748547365900914528713843953176005120662749303886036613473134216594789843608397250728284483636546961814971270028450285307856767610576938877304636988136607207279531115875527772400620918417265833045171829159744209487994608655520948535600552179003497957649684328909335768629884270898235636133880151210093912087592620840218198653524682166393646743641246567634057713391219620224131053479245499313635134314444711487103004950859908601873628881902126667545855601833400358183530816594687252563357366337533219848412679710370497332671963384545795552642047543691346937234754627651830922084957689667833370381011313866095045022310270135633915959534125703319219658598907205024100538354179838092479636919415864901907040877676542828459325348097235233909551277375731682592349342879059316580624709734010840619680924320926126251609484876609594091534413994557491164777336975115154444332031172260705718147993547892221470755877849017327257161316339104561571761761182303146226869036206322229312139494146662182552672672356099109763608782654580272428283453708987030783024182356541145487202637586720160275909961326482109058384498028293180780079851826040970236709518085990444728412164522005563114811206320227998922257243914786225089129327343433485176585638145720450094264139616184809438352656825336841868629736777433866192305205666079352806124271586288882834453099590283701187959795188314915281005419597879322775280413156788786849922053044613472198693724865973744845021305800951956558451890484078831988496332019759599375827922835823413601112569561860994163272772005666710573819903746086701746922567045767335675782044908886665778167306537386858823510187596323815036075602642635462059660797445927161464445955906448444240607209552880522735437653900451692785332461448223502407491890778920758850506061879696015781067179501840427253865086447213498314203498507237951555402969138617062821723643288129427558205195115016174807276328854991370686120976882228418988368877217808200995553751292292063339540038368755695133824812060372745665051913619044282451918077681509408778779936090702128890791071120050493162911392893689956522590757233520179301319268592639137318471651863514725352918725821114120469311297215081152895588652006704099330001781362608222857824995876870483576089727531226283640329725095917102427337936655414320638061748650715898103423626706670657794079423376509408650475718268814595723990727292004401763644708585050110832731933274739325343328940926246287696291484685625567210977945229740233091692904071423805801142312625210908721339489449217322980276630962308396419994331792546374714016206156879761736217550233196705310588392363602796538145337834156195994684613125797310386417869992191643516628529200523148925817031329872864834084427581314908873152967489935129143392529239834390852514642359331121036193729003227030572919253432548060391402389975073183663739953628269907538700760621608207161503670256125829506547727991455588134269670613242893107894103587099793962298575006455896317238321329143801059848139772455284322703496289053421423170056613528022424873187134612198683545630902721410647117930008568563989097953640192476815094113703394925989897187563896308408374634726804594724032254817199812308691241189606896770391005900546875327862623996739118898042276619087663929827672331324240468519721066180069229146621770423764217304437332926224277886057861115641192551343500660005143589497080218931333920513209238401203227776547118632447949027408234632086571851021405196760365753020602730449125290365656747433994186464349678055206574919369825277949309898552697092831108661420390222271204030333352654595056838214073030807432798408312548317359163764444410812498099808285440823779093329586206732640062636858479963412443761443727867471423131467210422158464770753608509697479663727813179963525643380384723933828627887843807206139971048334541496603828713982577804210522533632989295826857511934088915851109519996565391979944256053298019758258989473179580802921715199901464041616541859086513373149913687510304161509319214889658939064907403951333664570544460058185877955292260567867854508497433633958569246204146840485147743835890274872596254296398876614816492018434675265515511561888328029465097639196952471046484733168340750395275076828540602040611880519522338156082308498784575311945425412078136652952849418597856625487234210159940365801338152721292105163037519004268383387096300771013445285615147444056472610841950119045602370765387432489657846616460816128684458363356123474530166090905193209638119313990408938282473351142581470548797799077087462219925821613260989339252036086557949094705980321201147898179432052696083773349100627436932261939611881256846271353830145115426761023024254682579735631290916939815598291890545032300820223990742078910281802731415021866439738752798336390209279686910459727484728342418207493693139319463406370287773533207129520872487442313100735921683542019972197282641522335315944703484327043673920811690112703217037093518471427643317714869698527634870232863521044446623465405862446061445399907049898468225106747618100625237832938567249399651789273345032862911503548794925395972355149914008926555298065095777994391009591748626005698066969304771472559962181990406290832027793335354072926198355769592358671248097523343749632591701573944362785307670547428357282227522421895889495544054201141107225884772498388700283426757177201087525704802181173439167865759154950037037860683013894511557483667503291279025286918509944960119036508003203778834746865792106683556597830191656914526360622877234840723425876169898941053686706900455800746852510224916698554243823676296257646516365401482018992051211587546587137246862338104812528328275716564152872651903668827677169342246305276925098968214045360739832105162389491341984717694819009436280192242937343092419156576741395460052359644471496304125477730119459523834514830885902550581767517195607268906475514834265020697039789695853842128188954041245977277480260930785621702899686377230653997259207996388769809314953169972777984495745072965341902206140542629853114353319807363824957091662658923032518446313079830852717640687533613427602666509096180341740722476355063452107168528077556578520899614438731880877921014565863760698784290703842663299179183118560377164789193674624271678567659900740607073745019892749605101682961558132633245534991314189323260783280605666456903750581042303679857407507901301610613475447372171860293099374710716913105422808553380932640251442225996960384040047228845832503838536874419079016958164640649018086167743452687008415870003134959594785239529586895260085759025995729366391275898256554934034819174505971105805771852017993549896724410070370336316808649799839980978147301214096115761650167157085256904636630255080281078694901510290486460417809656980791084198755478872732546841414369765971293193725045840105243303861451942478697604304235815497437394015015983733058442153859853366394881662157494263584075660418789056718294556129835314891955132102100619952645871946529647498922995254900465606072757463039099054379831293926725058251339180492921402354792357012509968285361589084775162331279513189389472317357262213860479443427760595214864835760950160255785373196923959237596214554412827173102965098296279729153874670485409801954927966918560723905901012627287686794924057685842262245434918842191463898493842704550614232940604461610272468157461227201926031554621783636394820154059165122587167800015370955569529445664205290037540223910333131256599140826236551957335346599534655214264151369650747451073600576594111379649999705801164497893610822906064577582448051735833789964170399408005995017269999178141608419669473642494940832120518393354102872834135310879967258892069490296933534022083833002039288044008709346537744346819582814646931748795853451614053517037719145872089519647511063443045913739855281788805121227868595812016792378176634639986424629235082467999392791076261180303177494865852194170511547510161917085036971318012046749100705955262325668840641145504755841235506989376825037567810904904268616102771274175183811860116177869129506610729984544923740181549017370094958266496044445400658056619221591065290223091106429742426902804393375678145561262109015722714666282965646135812128162191096751619211189839784042441247405669535254494447542644776530705188610550374799498496614109568323554489319866378540790928064978795107265100557509562020656582073297104341675108156080931795620092958094388210784191824176634406687037794869202210129277939668597943083196544361133503958002503452657005492588832951103349865830019489139316104699550429004613170480766202270388127715506252518409430350575142721054397430248891830666814126897020000837892476633539962165979534440052796660750401442035872181480243346054190445776476479585049531586301843849323580647536391718069697185320264317977036253571353528912039786298597210933740051733674066901863310374073934778387529317264400660044998251706913190371847318703198675935944784783378951167427149990809944285960024739247390641882918007998696016854027837175725747378932618382952167612252800150929043585951302359844485919505582798711718639626312500079505392326353417435263439175820617361156778535617913841399279617971483724021656509208301645801117580465586297787148186965187585877150915778561031062518246765766781931426008851584234588770630421477521834807721243780507216732938367854746011431532837863763099834164178722481994533182454331840834774982471486581661491667708292388173036867273468658847751591946497233680382142341893841551594946185223121511094848274706576608905930172181797679022087429681757990450559199736609429180884062398882899605461352326244212278732885557323863374043646093145497648941420248845226790785619570766430404733770176505816225990091073654261845048636469117211174001333250077484681234564102437565274598800372542522439094785160450637406777629426748320307741974468415155550571858422922158631731991824575875236416807170256749879308032108861447049017988209746324464931321465239371679136475833612529513958459300995557228424839510327784975521143437490778951035102804803374935307430952093176434745744132795392679034419361591963351168987600727712556205568885885184324622282464575778574949674091255603400988060426693470245571380250003021191079985827209202872906718570180376270870490900568879135900480893905365075628862986333421071029925394586981605286677532903052980984957347654267291723113402757945572450468512235360727193757449448162621636964707533658168914423897076978757050870054864780878207768719561045952073066404992325236332779365472368387757341195626242615857501600736148526760256083025647198221226991097814974950146809003249888593009291449399127686953894661161739671740825014889322593715688391635643530634877710253329449655890903496226386257406567684020382185657613928220807284242839573285429687400023618947946948781024496363172465438455106900884142750709105716445033459499449631873447642474931560356594561520656022307841696749349946974318955349012253893817362613127323476563294295646979520600225083474383159385870007811167234973787047862551796779496205247066354942751933946372872905166055515879181866908380063490479317768911429927644086887059180677861967940890983334681841426647552598571242391010977048829482351237050945095644292153270463849263073297086628026451246995433010449224628849215551553751411745662662242260462179153886158357464552674253846207332170501293442859970017482518814948999363847097272783016271534338975546812889384769846760392617453376771892329622665828161242498829085952049505112407494983947766385639720780743501889250614627662592726872215354349710814301851259875052647773877771954878748262799077070262346124603942375644662086979243038053603899292341373954741224458686541284461157712668998283489822759583457775889728423447215131072210049495228276336205227786761366238269688707080708754040926276065741072857307675940821554781949557202257403071907419226102174051313545579387339601736262513837738218326318797033709574808153344497990293302527190855244328974704737139387105300670282716211877185659497839934832602239137963649147949274706908976410203147042244220637053600536634497107043068222876400822473945266475235759701133780059772966308870608252802438578584553124942047585512046277177328095932511759756890040273342174968291358670981326960400695607597248501213180735018108408696518772843421216325727354760474349453891466222836247333604131664662056812874922139751489856058242171062536390811589485637339326701237777380234906521224912681498797748565349679486537889412228996704863818118306288842289946424254651758371574556181211661321699427145252016060906995680064991818480771414214558841641465687733339771239254187014124434277355614600642702021355542665434436042011045866302025257597283977688936968560145294715367499762011048373152494075466901289480519149512290978634819593761992142130151576069464535733615631345295296400632909371092640847177376848809023276308843234354589343460453735350701286882770442329566719247887936088222676002197118060243250870440383929067042876253256012623493422378681670060743138971090245311619607166532015395646788550294368476375825709985523450769664748686111546310582211565842816390971846676756456882955577588569564152880269862470603658886660855398306394575253628587481922669231589145557268136369132334290693439779047278812602344783422376862213410709773372779466722271998560216956533578036196163960430455652116305097790369013291450988415669858056471002003157477674901470116367325145024981086088074654161989304140763737618903925774703785850415953102173063755601009711486665328056671401217411470238318838021024680248602618254682347856709273727149081922952471816392861714391924965503330652197035160746182646926311743291467661294497296427065495868948010892458227796338620230103708018633922602511184798230927717207041118625417391946403900777107649512191145561676396499159686322667692471460086096108610465991123566780070190528036679482082517978308899322524347855202422049377948257741078886003190887012104536144850169304929384415070336749237629055706222636094588540292121788865537894593744580106058048762855792901059935087391579715803275786623123984397771938632266892822486935865911955559723682254819679916552478945883180521717699762699311644852622295434442594484148091528934559817876492487109024935706514258816297398977479362351530115000487300555768868102974622678761192156146096011003267666615227753473289555776009494746734840200483740764824366941751204133860536849471803300963981882174143616825771050059590222823081279463028495501083873425826539199911916646095942946790428650529662054565043516932754969342954280032767325123100434142973990316989225449448106410369836720784625631898143852493406853203441217166993115276876115027827835382042638823224757962437911961325930993302036923447156376821556857268931253487812669037506405827149968499447533953248483487046294152665138798061221618834448846405456946298639822267211970406308604877106818900988267663990132798142991106744120185212855163510334183498286951311238860436196951530143845408584683486262239644298495489842207113627521173128636739331431434405025187165605380317697461876655066792369646186996738493264750694116798250291853919756147115502206960029738468304724932885040709445212342257310691475847499480971922860328291064272248152184921345998646796736528363371783616099447178527638189768972976613016727724202457083368633515298402408362511872807061770016381737898382476438264619666396384599925733761249705701668813192811269271540148764070510532031926789195001810758043516934698757735186065631962496849457327772733945702532675761306256372738600858603752660676847631564809974832228328615824448772211178062008119328313705471814141860730534372989588866646770565589667771706514291838230145190937302384690136871124948359232426440100133030649313392738190991482527579967686445838550615255045949807463107209726334113579247764245340347882678342595893394056088505305766354395102619050364152263477324182067042097663157936849084189596955085082913574891442777198655573195178747306937733086499749153047213430011736038625487123968507345313569189613303536690678128735193966866605461292965220037794060850202569797686602225835984792149550603564238783820532700911757345385096641944282772218708460530131850671699391334424939308596773698447627232612916142227704545078218125289087961055294127785094872503611280364833663485684901451326052945683872215693568949514700883395067627442560827326100381316780912137020644770702694733055848140771434707299675420396773346133796293484914630913508181938755744711885421913671616974931388616326414702760911435038382347644670909782178305063646809090286335684706206612409289663100278371849558078844341016033469026325501409098792528810695445131032828062783740187076596379791346191905452838445700408261800553665325137777013376461973488396784164219067418978112815692415750484279928577212790172067544963069346253262836915159867922343089058650817266329645973312832695040755943555255316880734904422686453070840366181223376721383723512496830944372958805619093306481275144678960531540196048278875178865895421284091343555182241086192931620242502363205871889456512745911868509610127542305745777164471915082961957175861085719811697461804775539650705494579302081937278756083934379627110156030806771489678949270075366591776858094349994407271315814562778793420428564309377870525579840471206188034190725837242235962782888449852065977103390363972487759281689689404661105367532732060688252376081691146257809716425743478627684116488952678323449628963448784728678544694297043803491541250018801597591195514173491473384691817493614871394333661345092401968855728693175665975858857835547233316682648599848017398547760521197363939947336439099724065302844017449852110858989378665313532533498276761057006758620122831490000340555042063422859761008931206218134739289420750528294289791409050958046070935572443890893288802701786600369422737745891165513681037705397602799347070639042162139528663286646090150122313089666398089584191113792112809598647214888917071326568363767407049088785095171074947594664877484629905130902663333686481685250748157686736657266683512418353917173391594927475221087231194056101273858697125230784181492965614749330873576567347866637666224203852429870034444894806655316675035921698358284910981833432138166445073207981778460502984549807984459612974956710298771055903768419895156615037051378768737176973231319296914349351303394594326454488794398243460203828641202495900476541809219101305110621791629456787144490225187072280830619580379583638816071943921612753820484805594842778342659157079163799367737364020590099678606800684619526451878018302527173420128468548936446476205130874187246719698111418546268844507365319230342216415587758746753267019829422510032957996532948018834464564003369675537956334349486168200610597927637022081214434107174926819027911138604064101216629355419115113856875610339361070597121710577339387999224901866393559994908883343818925069650713978487564776730208953757027555775575827350458546831534656459919742176524009758829295416363887601286961394703418761930561819787905710759456235911534914375228577067896342191180408626596599570566811796883518656911076871860516072155353247401448426108068930512347331068266617862524889344268105826539127252928129212375556334108230235397573327873063408879149113298828314825184945092348451921435429811817224231495211932987718546799441116695014453154181352386351910539212930542966544304031329144497515434588451729860924613155296809187380585658373726010560390328532490124225108819277872880982615110339066975458166917497357735110581283744828621411368807789051613777188475195265053624897099546165593730518444389696477689647606005919438155705206416853123695576547487856023368892735039497315744532561994119178650752173093554986222982786384592290371175270734969687364130292661268302672979557570043753123088925942126024079515377809558622791036259308175368621338635692668158468582794711222640636385353313166918427394274522798352472317638902792792331734343419738512450022304692870424926469155765999636370058061397851595852348657403858750238933398175118460728967591144806490406873323382828890629744048882679723411715286024062142942475471414875233576979479706315559727401022623906897957189429356339386571688533422509178211567188596410194702980948415798386801737676084986095116766542953204319091179753171964169760363481502905339012187834595857519061226894022342251733537396037017433375245197469935841759824125637715197070215318532761004654094470160499155465163099042509807330831404264999656729115100104404807204137816360173746188501750980664611557502161811315101912835065605978104570116628884477004497111496356800544891252751421073852897945563479371825064241448113261805341274243491026367146917440585426526739673109778557305410879632025963671625032641545024452583108503718165768140165409708123361531904492960727297599923492920294199257181483964960388444029694997577141910297344628759992246678708242448011054653778074081167680842333978799114950866486265850080806937543625941931937906209367093558133522775572591080457923706905331107534681120033761719609581871599857809764106575628814744524293486956431613626064545631935116940475999857055162387543641866576262665554387451364072204281120523806464040672456617832841775825356061046006301308306718715024524580395016961121542532772424640819260673970543226253126007784965211760464225843656654498933558018944658034257262380398569698134355716194182670777167485927565151135788936830814072075060797920627125074221971377814576674759055072284626618432351445185096177860932207951173199298087826960697006392120006751595370596116225040977757629166272226517621340852736608367799769693832919922341060690828974049198667201515162077959334661485680513442197421497668127928589012673046053037577970528388879313555527033881887720587233296868833299658485581301570693189461283320448577909481537828859152818982509198430585908608708502790176984294228565488051552694194146304947048506553965623537360343714237307588156966031555402471742260456462722260569385045277551302110814510169240138710028946046577597580399622212715935193907074737970576789842078696570825149649932083920823823445070421315918320068652553948123700056899857104662776888427445696180166405654189881559034653824776416474071558266675929595956535770833546994835782581678894883834208333674021979701247923142407812711829298985744502560843086648180008838860853058078132687185810717164998653045135324947165643182167325321793157741099414083166602427992686803595757138825052374949873853611828973205477581758876312283447154554861007146113508246800139700617766108515230405061304182993929549601053826700594928697853011930367342611814207308799793421445127836903401710211739217825457700737058161541213419965809199689515192691850592929444265519822246740760846087394462676838792462615599344670145100898597033683905627663767723432064496401838421334428150809453502814284108875671454550118212788230865748025919965436737762552793046966389747593310174644021730022277882484276796922473426876873702659713183058181052554566822008252221897209882993807919973439108831887193291298382100775357137152926809466754658156158225472681113393437377373161417548270112579942962956409099155822880056227272059178237225953864372589812475145461777055190925125154018455228288672870235829241809709742511813219934898658120502316817294466777200048344954607403327762329838883118169865691540403173994980920288711496198572778120721158942805955383234131441847881353425327916133887498077859234676784756919142071861891621173908136007020887995310724116572921309107962440319315348994374972666795074903044460135649407189531604266876784614950707922048801571106173647117830892639184197111745947217543676445767141539245964007207354504629769763923456417607610948336583652528242259462547676325889696433102174821325173757628823878178239621873361447959883456377160651141967324807641303119411058357671903003169609729992878087675342880298787827455843248998961754368714070984659295714556496696292296410250009769310511375683775191261597310002150286139032061224394377578733203408538457645758387159351977347830278933182717437749193858383563836735303056078778440826492149117115495790927920787716432328899698429475495583863168906509557389289708706697940147959859238157547305717643457634918474172724981102059739100136298685378843817100960927174931946010527450826425947587529562443122157902710048075500475402641952963139969016630480476960818959648769499633975418306547608280639964626880808115151806436658106893153750067113228774526874514129569145025719848802745941503964090210622843065514138248447592589191045304775139287455625365402561112271602175671897161153988236902173330824252106449442898357480681287703839771421996238722958113450785135181659079638241744051134831250668981315688644686105949405204509678134820463933655703848555543600863387111309004846400846958289708478570039414199425769177073205662272979513687484682289950666272065230374912797144871384435549081647630248327348439669488086187593036013617852823918621992376366824046929894473615111828121719174473819175170419939066357649897152343646016533553297850475982822578121461845964113851630319472512591111747751420033521144907437427299346617724325092346285082326657264602154997120558969579037796222456213839449346426671584837145665105487979554446075203178334744569914443726737433963477628459370777354666846639985128124666536270039905038355127135282322034771438158340982524963729537435191328815015743708421899752642151235888382933574582666001534509501697505178299140718325678900661121885942136510417096884304993029323590860082812654788136928678494867000946900944344474218546093113104595534141538762483188083222215790514909686303152916873246438136232498866752886981847097285003174613487157082998402837816915857161905576959736429339492664677067635157914948690469397002533596043732595530868024748240843112400729725293824104495701120319574234537745647969611847584993841913608038683527091069927814069563610338460203954104707386056004815031682728836177587645471481660520772528660066986034053866013408875142025604432548646401779018776772149787431507156151466056016267649423980041206741363188981573746885357897906777599815633593668797314786356435281957745681302556568579905963035640487971591570339181887778773136466521770692961405756751117412306220758755521950925450450529739674876100281682505135271832536499675712601377866611773830287559810684574802092635407309453597214186282222701714351881858466266591631320495516254468384988418178026198260384275944721486926533106470286785806607046851595382692375445541519243192301054453747382925530881949175975172274214875652912437464290350259881718675288216078045112904995431892742303424818501457936044511156420543416326342049785671277741794418713322378206395536958346195859607844831397741094009616271356115825325818886237576492989679156767561196698198112074980582853406903933135215012006048084061764947747860427491488114966669589138080700003687704194420074394602228511690086296179414748909358267390390208586961449178076954130747990359616706403481511934691526241075457382790814079346727935244601403597621141323298904532483133040590216896300431870910777303504284323932943671706143143162076875494980644727803857652798062610217162072338328717431089033774295791342757229062823598351210717095414149728995205902355013137505806354810318074034633533121162097719914693537515049073565713719915266676737006634665495043357738271925299677932777518592245954061501827286377320286311189477395670999675776882721415086677808024976749768505991345681934340582668651673259182151334807474428867430892247031381194981634231064676827277027534478270022444271111628873791521579729329316583332490649113122296764921455045366332054051703756205584753236358908771131110980392432666524836736536470493956318161949615901714804573235164225703325404834346641079608547372919026166977205342273607090046603241884928275342920037763255515073259550584051499373419864325853236437690388311960519621778148257327308006065737080867256892639227203997792648719943899551779183606689231509075715352612537594978319819985253490453957386383596651835296686229186276388075457818650883732222384297393348068339248812625346760783524826909421643404648461535238885134581907448555858702784859804508095137385611480851335066183506059992573117692647477685919900971543641007888566813932031871054550587663508852619711687373160499994036507687272144040613828414933734591896080402204598417359014435513985976538693832724117398027702136734785305793280374000825681670921056642929095973745988382126826522019006940694248447444912803678694485479753999791475755479666806468819307915802539530487533881516193834649830126528746721933817815244754079880945895297249646627997265212401380995568660548566589030209715743698751401370305647364917394253238326987274730223687861115050395432911728231035082154953647181552591447892959286795741160850699253620854770847649087030768423600865844942915452515410629923536386583832236811568037605842691429866120846921728136205340188047999840886508251418943639463100669018292960089548544555028793993654884349290857050199315962966545036818320082385178121163234058808852208182617158207168413019830512099948056612231667529889522626114587127021005058334040724643345384958341919135370217242068895745715681889251732174294173371453149152971708985044568208984262485857182342511264070623047877147687976258525377571154615671769629786577119275206218495956626784393833076114786298646047778937659177083072476095431238879163760784319895135076225177164957106647617195182159325584094155236045977088251780997184288315745675955497716022176424366757185943281709348173474731445209444227541580239047674993503438101519410643827184484747910516109807454933429075504669863572214969499036095413126090142745362256583654561788614601381121711830733735182446774679200661237012414259614949197275454182476879178785021781841444808580891461107929749187574003902962566174044916283223387212232359269911179077001109605116876863235134124731406110574668971161895487087781446635477471915255204522772311991970031166910253898587525072888974542604363489129895065763492361768961655189288530961048389663029580378496875558529085621375218558416554186627914554463490072838941785498436397363382833041124792718112411948519950320714388740527963707322982943807089296478657696582664304437734679309068057555944759326597398729139962646572470977991864861038479462724470025182848026186218548778639351323375895140796609760062722399237068339216672284285716479399389298643232667045210194316732300199045879998380404474015828150480351089108968013028945963278688157995384525957807266683096208554038105265478423286841276729595297723884648190980204097813089041163857080750150656232232415976182228671828678306860174294172242200040195604737370095930745692167396982828527861173413357139127064083614631375098030964071905733550976319319567399193540962893951216274233145377275455950199053987442758647982842620629818734355004558573587388061118905622411271558947062459513055431632928960521330519973685827999028629323338465806650579169417724796926150716452361090141633993931887148095563945251042083741318955977529490989162693206237113374785359678672082417691183953035844308233075500368096627864920138617451760598893763993840429306848058544243184465269050881421626607645875114239972986926035994439381916865485058143926425970581065093883358316575120535814644456666743565260559388710173512142552594677020946776161534723365750008500065758816784607511679076491535204544876459870349806768043957145993322566750287635619794794482013316767885060156282297929128887593425623791344460859644541386560833382124042632591443980590849521219221403228820051093319246120972953564192039258043219995819918625278113332457773266290473047768829417302083971255379231203406867470137356227605155919268037664985906109375007564009852813562685597899087065317401871675111894998802565899597544493947247563142677254171196545656484791544587783716532499314742979986712541821690436308860532855469638176802484700703570582493127914126307688457546231336611293147002073408010451318541617867298329995293658921056566844192507708020902930023133543752502171144399532482300414268792224049719279881001895212156844185879783452892936490740555932021650498020575650988856840443824396794379887308768904652075738069871781892079084540694863476412890465327084924459720325644742693298841633714070691578843353398570296053143442610890751960460275080646974778598123709616473170440529540154674142798105908743733790909039722632695644024504345854172602859140176027101534167342403936809686409725105768925449891589284162682254993588521214433576174202014974347702565908692865343375876919179755329214063562042823135501217499700734741287801683668638385408228371804104892564462094027758924102090414089414737394513622279168205526976506370495703067449606545747310625993347173831763619551708298901065679523096340356336709443291489936277846809993921517103945566495676382900485161820638247175495523276054510606145216067430763690193147546924498963612835859457348056070266567951146167646427381567983366532108016537673815482948936447598845747778266863443971417790960663598347929737918481996639077055504587593233699399038404986572207997251866672478421828096829504137928088829250536339100193540789424494542430727813160229536657922997520698578484270177033261799929601871040500368299927236621147903307982732663952505253352813233693192108782236828092292251767710634691933788331084124324580318512461819736060577165691027326519398271149217149649967195878716336482067970737020216300812171106737317981728404373303888187069269217300563117156033959514988859515554491917559479311587929264115946441774852986155743961674826029288196982893551220039569119546062376124806571480847954248091942304207801243404129251159922210823208974119963369185111674377811140340080656768718034297029100723916879795416764447365616982537724120096435233611335312430139556435846308703186927883498234934567104971118460213551858738993323771570619540726936676286392441176743044350411626634134740379516371706123074744389658716626903744449650883796199670032576370236561033456319580496304176620217084826698740848545781531748978866221938706030228620086300262312986957916473543114696341176098686102358626327419458911047450122589443483417283054719901427644226508439140289762830548501852588452314317263077022365013790800057027471024102246776583374967753251254541125098987326392028809427518483815389426305404945060064449601018559206748889637913786484264197793838792304081585213594979132596945164933795285269084199592014587359405831246349895070558196626314974893675380036836750913513416125036232467783383665024836384133711036616329526141957647613587415932253914382668573701302153982413127340254377115396378079341976240447574957696141729960746829860242939843617791252257846367933804914665968237645862135709908539688360964107098912081950509524725974414133215804847588150044401315715278455456239229969176866766749862594605480011037980024161946387045920627911392531325545487765360958127418220736914408156868634497114859213186620139840637034125726442327185985648647160291375741013703214358952270928259107640124334373168012987830445424561875652691457964248124811388691100389916987702429945162731930985843598681410706323151993098654706803242354607322200974518129927684115512008718068762909480462198949540292934321806581414421338579373015883408295792709428107676635626091332144882953480311234371269863342099097501004829092935393290159816708618150588050309688699972024351664432697784888979533470061526977161310822321114335980438701705182964656965443523480905713650472979139156464743676319846223914537638021576841866072475048746773354420311991772147963258284772364108437723916833206941101579420234912509683269478288578183043304933533640823374567232796559514724404255538393738660499855583510677889735120783293023960597526911238035081451137445909786790486142123898691415076912762990859183340880442054523311302655528498750286390790420022228528093529178381785457085355518077805968910112195026408376538349893518680859870990604943297017960493491154243742398897647405186001695808004462710539641428892579209306535821535290278363025426599791172853951775950668286575140513236677262940451211460969787960664679082758882925141713486049974385437740655193770774749261682569987244424140774298957759750709322701581226940229362370245800753414680462696815398794708960890410005434093369772094607030531153494003159023879954146991415087639790156584788950117103341186359311608220643593080169954131763965551815167599818770975030702095414983723937693199074807853359791078796689184988615607487404140038057209696074893490400335073348847367568000998464856222181143254357273407449009406975065357527029843826366742892657305455148755937166915949401526026563593856224334409249634796250670276302898928081091583786028519692685092800607175229740199341243836654794143100922515177858866761814227188630579466365417428247349969888060976987310732003959778968077264400730343235554776798983339945680926138434376928039127313101213626052250603609831111047235779907115935616269631042534020702616180896988157245348100133624723251474058376860131553328751580648571854828938392955330315712557487030530500642494427838185350575499739227191062977020288732112349627054651746241584379013685702899787024071890100512343815842367799615477229448247087897971544557249998406737591258262201676726588276912769925803246020084773676084054358453513404130832376993740779575030814693248721515809115904750231493123290008604140964948964230551741838684081427200697311394176222757631531991247108356588404508863424695767012454484235959237128168719029517040752545791730001933363233891485594533571513227040662643425140385723867913870500162556820692573880694928392923063383294480847929446849824360004083349500823464345672174040926357755389784509444712678066467609737921176094006673997662220947359874009965973192204923047030741030952909067975158129975409440325418298425303139550329239114071177624116693950700857891083756434558967827750064841132237177838286759033734599136812221290017819738664723963682708065079680204003515711574502925202610159121808127918899993280837271016672794434514495853019038388767232760675498311482668528193042363346419435349492089127910878403152141409607381259548908625048789521361288859523140932138770127740459096072612863673638913537893630301914993960579829632506602340715667815330066819081158756672180970853403798604370654514511225767564190448409532161950146754138694567444694066256445052113002260494820791129593817059967923754262553759295806515529997450739660820345705897508330549223364155669848255771919476112758472055536553219765314659418980187669236699738254624106607143721953436583838216155183823896313034169632235502214046152523126351085017233839570300241088673118506307100805072727662291627036026881505945946411425325383102486621163956468674770114287508660257815759236221648165131656957778623111179730450121005151807422586993704105115999349137458417126364063757414576917887370008181126140465247048071794889483890291052064184390103728882108835553576063186399714645235500998158707165500840280519354644716848224401704425612293288637974600410974673861568186417059892288350142117831781926840635680442126373614847331534751114837214994841645049435068454703714792652940073957192290078354725946849826464757856087293814187070235003307342488933533442436585815492364770383544759900785255919033480266490737988696583419741288209770794529982340992626373010603791530667332771704448627560470003866182511969486948058267149232905232303573131273336564726053052538477105276126592780413466425973223037187776500941587824314161604413767533514529625082816993936794630542118673072547593962063943670199214771340594756708326345012879390010558516254035289649573907337084376080337901607851601180492355159272304925299257304293590157451616835067596270068528307316263151552295223344640972464053757545026957479241255497943724549488232480680904466288107147794871763059380430511720363717796408362836367334957930018815627698843351092319308043820670022646220252776636347586208535448838361379054608706952826975755673246737873497380226799634628960112886402593959285222669205808832765314263711179101710309594093305575857015430146866096978096304750578961592988290685921180817578080075420286453139934301292132033741361732817972281080090140866580671850813110277878067187856673537733644891824380548921747595921767268187965853161434204259922029057325939245778099724789572304913670694865785649999163190215853614157137478561793181255685648114274181562341406804111727470427989364944534828446668853862645884225028307893034050953075825351617724371521148607798115330129867595884271062703647297428867008544342679059640630709428484057177368019501606833228894446292084738725467350167572623153231299546786253999709292516253833455643207719823537424566678966575514702547540589352932506866218532995541280213486634156860648479804510534338162064705912655090057865384729328641166436007764161501126767478695657023674276419000265040876015113775566006130914416299950287610272100850799224047392122853553287901280522109681262990054700596393803087090075945370909141072258062758081960021107054782826600419627895771086356995989231708228383956598332525086896691991912569078818146137292468851618844743310370713884623156347309904074815414650757867683572823549912175981084993972340996150586213654728510903455614158532241049819694491534085253658627500440960669333598705014861353696703793119796754810544970797428351703047654642617476232957134493431956634387604813543982074847363416223289898211428424674884025726611047659728903637872245780365479766674384889201449297400531906079904121886800837216857924187588906050880888648030414879106898601111830300194727603823806235758957338736862110139288564362070469792450091294926239012649558227012724898680095390067047385970074050980560541874741744149026540766263691651442408083958482984435504881526550292583489660608981890860917804320565519471815311211511427173418792197151627702574142684589552966041501362422073084308168529550192062577653629006230804296207010555776276850495338803619594312897991309459491712897760413167026126884549709500268049393995010061496979566266888457809454296431135302377574920662343243911256571937944292668553411499676556667721135348847371569261100330560982191779110171200994349413972207349197232473594620331003785720393421541588672747568770707123891365097592754700389013273124217140879813809566657587154819635276436276275580037823468474269143491191025505252919306865584640990974696766500474704187410437654268873667280062078143153870704007487512801862338792033966416722845521007230209742099080399036168568151133270968668326235629962940528760227786019012881377814553355828303600390749592881669500345436680653565916557838592995355109511243415169163215194446026583782248514002165297056494284051092255618236074067798230853258378994729486884827231007955706022885555292760836001426352080503009838836505832639606731513004185896489272821932255975048268762655955630106117654228139193802086470667826041294933515601778869736027746898541726594624776668437738994304241952857883158333356099060541494271956742020222222564171675815969603540099873897340886811757421471800720771558705389247799763653370700056646298607409738127176647359257054963654362624935906903774875012142291733353907940324876170615864032944414970842134477714271744545497507289056783140677109409932462438630164266668721220177759087572906607358368346793252394750605169497183538916574616811983326081124064718422604737602155468123645431818420530337486706600885939832886295055271270691695050261463689127926771832882821526171410931168421932529341958203736514147118372353652514586870784543111483535207345019818264722388259183180507466435983912287923644451292450334149407255154336112206160833602504943680487090694246080715759319130239092369610717974524304429191889770274721586095841494540208515454226393801370655391367809032927508712264492241794203404935693938343536147910590410549585925226465760663923292988287970993850146878120708709298006359513463613946079884760288180555341905882151855460399651706818075355592037980859027770895762685417974447156895869601779082095755610774495345651150037557888753083997795185949293265965677700986280785719625481663476260257219018276398580687308705762418783810772973258301520367815736897726217231393547311422657335324307618773233865401533292875843266620548788323627949316422993360059404617551299429102875025569264416769540031300892465501273438998890867050174128565101414036770219851300967060076945557672928546708653289762080154225224688588383464168126415593140471542922436205697530037103490450203720020971624022451356245031032678270510397750907350534310417677361633349968647475783729554125093837383941487434786577217278210059501827379148484441546631436964646249911214744216158999278651255054487081565201424298996198766397098011553226262202337555081457772377609114048454949827550414388575741736957643440839898209140414750447923780442877683838329825010007822912311560770818646031990627351778031273335732299237580189295068518740418608958281757549254466224246481643428194308332278125638557557303502687381151917630630137032754542602054871609609605938627424051615995536065907112096204009445166495137661984573293025893697689637122112083823635053384333482311619960729110131268243687810161545524109977138444662729466507777534639377489804900877974131313374690686646692929114890377613086860652467392813198669063284777025150923273128595395991760201504908877383572655629913824306550157215814059207152450904699685888656331068568608760741559017628647116080365006916179760730528976682688558800857529845564915341285473259581719925515762942041641391386190216240277907124221356318683668235896451989454498469247429096096034357300772102426138166588611540732272681117767880826511646016270313373153136519176095348471315089541975677073028088338568842797354106495801098803460069884843743750106544693961329848305064391687789192685094269193100335956800292784365328056708405585756986499714023084445492970567837242214335118228705778900806876219795345115272240310239314909327730768883452269227801641631573350984250420903173713782175033371260476442589963476590941391997508767829996412801887887118048844011917229499537382825288354548925118367956333878084878649918078811518091439345076591746266101462278105293962507246047258098780368065979393860994633916592546574724799331186942596534230717023848103463999937789796266067294146302447776165746813445285625976499324449016196242308009842469356678812444082159720061623245690580701503321359450021821263482743861754015998730536452779575606960265720772145857133857811672204045870161286762554732707368831044747593552335425511336015360807754852631034180451807298610140395959742947874823271439682999428992017337089571230366186179965585973815066956633878738214847266916280942015234139780722335285311072630156240526529993776842586923884679948968453700589064231418198887613420596061895770994100559662804439437129616591593322132346914438736900969367209955099575878656503489932195706116562393043169165874397139237863583354248204542951339373976233494887376154851278305180318494865956028797361879429797107922679080424627516180558193382877702475340646375775652108642429873646880192471404032548437486417525040246790260458964558657578153922901517301273457909682515402283981592221990926126133605261099854227323170009897875794103931489030995964342350695152861706090784889426355624159738412850811068002801155283573635561980334919113447182891605103374265228077694185007461142899753787614108241351325907266063395660136241234707635632169591255765649713210517289160948224131412183810666637587890615272651921292097838820440311627373219225431240671112736094097297445888792325129956611155767289833250037883156919164747780188685861316504701763829645014453183466197183808889792935844068919131043661821090247103511126023506207050606606354937692029631728450273548159576572033133581699268228680327894682429268453318924488231206278094789353165591478986172947155977308916503277019051535217904324806221584716299619046658376673355313960846622420172393891008309303547583986159905588440833170090997372070793607067632844684964877233321773033780161682709317863599651355879949432509728639113800520620826590410884560207415618072789576064505535899494553784971264997170937727403587487788314220893414119065318135946775275143046884462327924884801441388073688579483831217913308588931868353817946369288499244007170200028763360122086855408511807405162380249489278389640663748381124893074265223115888183336422647647807546595002399885246927662278006502179908515363320154427248569246635605524618679371000427412342012576693831574920897926975498988351448419358138473882245374381223655270449693798089204285420817239365851769110261007506774886322071287498775946830407839095272772360050595384201419461513429468951301003069571861540156853271211686679609190405191971394422570523987330665041212028021068628745896117533785814040948149554211605351661278201496459277368663674552556777515514646705950935827892744318087582270765154099773850604678069227437507008165679137564836404195082353676917221478812953982630045068282347756753510474008389733768965876304463268862743877411539702041093814144881473374138174920617443984691214324328804722900772175668827949031979626467807237183436233489127047507460424040658610324104596249020498287334227252092448878972587174277765913704527214463320693187228906797024323322797263782402488284401695444882837830105716138959644491381479472160206482388164119670026869578676274873465665245749536779470727124172712353916595594492133909309386272238440388975315973993485736203527324719513187110124344805723843376413060781493592602474808125411360799962268786591633166091660258986667047565396810948677239667937399338273393144785234254911646077196763746146354555362537088558620713447071149191637028740445059162686720423170739490853183534153711844295916735874380774657954728167347342409616651336641235278641659330155466357078812587345167052599053960813753222994247952755021647813090339556772389754832613100361589941869201845432086421716317024325512501543172978165332358558573521664479826308440172731722677581963640180919942298782976179900334694338988675370751849313701352645771200957919251817931931124646691861015698152884437106938366596184374950803934133579319372548965457971212133461788543558747219894491504057730488239294050161071276691579216666964627641237604240948929739232905682102377355101559346476630237699948326125515273151881411991218604762125398558776993997777990157507921913740811392692525183827348018402987092617772007054728341131339640429185645365152500783126252684490829627545884070346261860935437302690136919839215820850096559270499105503595874591099159188721108913532797275837284829270984989960882758015273145214445962061859346797483602004604398829180536839653029970755990934602354063974397493843415214705366751666779154466825987283569116788766766745831831863649980902493982833643822912805255791836964083465061006795999175327695825030476523182692154024153690879467692019417737250408490298092609730008561127977636108636149175648244423855663532403738604460203653270758879350519992413808108464166496023008117735164287426760179037119187513497500022697370445418683551215596402851324565787272586645624646971659748662705802986392875671362815001780558099542468802226396708036521409328497317844198329052965493919352329110477198276392377033485961401452628229014726811942332762722526412524246232747131915162020253637883620193945568294157003214568751794708798254576843262049184002214108590407850505318122343754252067962455965697032358111013677311323186188561936010577225568355740704978598658648463143965391628332129478711501118789108716788673080086307694442675296356885406011597006345121076860369360906442977364089251652878257834483960696208161942215962033090915971124774942430337592447029624516272166744586141735086916254420654707675860531828957012887778688013866892688257576764378126827019996357634945503231368702149807376064385053169550666786356498678903909127495981417826045855393742574083607503939508251962100452893377127990424939156550374227215585447803598807607721447845393551953900767066826529930375640503920440342524901261094526087325510606261223032752377551782929956949216722932948027319188949432419283630073164012643198889238324235819844926122077490231721176306187792267389963096322469132320445582708380194729065699407773946178489758290486004582663022159408586385294282467998533900198400413998638542743046342245386807942055566885523713254601747075198703090199286103696613187654170911142548992105154998695710327412904084663501602730352588744676729131707574406452547867986203635838250275736156751818007006917188372722327772023900885617771791382830049108553335203273581844080741582523467618852778103586725798241586389035579674738586257977721847588061226609176853779623208807574136997598543514598259660148200507919767744557448374049364791244217330248321081451594513359679784343442598703352416152601356576471239267038776337751818410107762484846150316633744897733628600818206409841643713044400038897778083644769082290868130992113383659843495006510335808261659055889540100632699531692091111976746194695149963793598829918043270961854191087997149158096509996249978504954042486890643312702672000672998679421136722416397487855949962691043538222370073328783116485423167503845912816710960114638929713258522447552757672344430618797706116865696763182388269439391552986613918547337834078278537099489822330350069869530477017780673075812248766022017429760629405726602923502949407400306105028134844767373776322027189355443539905752604296877785257399809663498912433024886402056274383955578430024065596450969368389145069974924599340745073778829940200399146773116628261714645584062718409821525272914531529832650310467462591572022627043140663244107936869475407453651494335966187302182383817954282190228125684347568337494875126058179393377932995201315167050692039236960983525010125833238493952804463050850760439729855298944119411607273607894803264275610788466571969817556158249763858921021625397640357285526380496126817011322429803618454098855007767868081260074496868915478506901219336518475846350017483979975650141893183734289536269055085641290189273175876563249928699690774441769116115225714757230104469673729117531678849485148439437760456486535623361342525482945147327418919779596404094774359283198040371017807893777310751996002939474031974627659917661816439995059454251311663096459886359361999291557311652318512841832865628492965415248933060045540044854180786107638175846483003227977801013397083255974715994841919339118094608048496478357049898469317301009128025296606643711390591620313220785480619065879090347853457302137186497007040885778888095746044904973967435542387709535171830350019805665525537335141530993704049377168491585416703005880631702782009785045738449123067836213379317610876246891730020986771223202719724098513129305040639100550996205546090479506203668923232414795055307770638254649035421067201066316457305929251813642073811501385269789485369168568554019180338659399415330182777679166197137658481764403615088834245490155663318143527534601975319636164303008373390753461953053121192457612819305284400768682801984834704187568518212189648503039325176015184984231583945679803754181325108114324329738226556096024200968969460382201803765766284597805251677995516456822752368720233890539659356723972004054145841582167941602023351955787022667749647229264095357564149439674020670365923319347281672213989903706436236648775966028816009788408856459038141908915881827922778359104367263760170707634155325179580734745469661600504222925648248590132869318114067409111121903400084585343478218247478694376363995939022659389717775435458734501511002854817681256603770334468462803171657399020056734341986150083396719124863284243239802603128821011925062910070559942294182489296605652309441545546572560115801133972973086638430781086231034317947263546345870302422533014279539638038439131899056168234207163872538981487975268103840405957310752386158398723964392291611404703120696932412512258187102420823877768741804707494528804090129020957094861394036983060167319484430965851679060552421339584005781797630080803039723103836611636356473139462541207075050901322116452323879226535714569640120723740004338051031543092189340047127840349504404107269804371188846479107908533169800715517801598669871889110658162935472576230525336937995908920675185087747338858666445528202309553677914906558478190745719725399752925799155947520738806461931337170209019571161863359947609355997469015758252483088794356084299740554626062568370217241575960103231024904134789002723406713267056877073069180006897226748658455191439528852095862058485193559292154759042805029196853762908268203097280884814890315080045831677913283513325145735592832721314878715310141183834011372713969172392763473836081628622378718025687292822871781017676456537298461603435015856962567102494900771417937623823319428700865264794334918294271311775346546906813978904031819851888711749212655580693108320142220485790235768137634572340513385488246018111602371858113522577586207517853473423406804937530243206745666172975066073773370203024918737152086983119851311245435674857794817491004157574530848165389175655695303617509860683962688796374462725696832079578518420453261530225165260155101194913201648527153669544360022756067143155366116247221282531012474342773177464061743990066157307557889809502992494611169909952782255272955452220405256758385176993949979714329187500027115142605907421194285727982307450081832562398075947425137034245540185287303430360364649022525333393362477040367437602153954555722200432505394921663785399674597837193516357129227860638069581020040400000164180810670063521910520390013997899288319736185238247717650568905802261809039315714145847852614941134182006065659435371650069948322537462980750103876021233571949278678029205220729009109040959340295163887141751620165108977307483947011199438950281786120421432246733348069996113201210684334820500496213647061534193636452280196749921379455368112613484617668364422593252531266204645523998812145469323980781244590956672074863603535120861573075418938465442546279509726757114515655788997997498860583647954432834964838805624615187214873682905439039176276886161679747994141420196315654100749372990868826229696722165364905108381273364229121776010010767077833035166713538036508289718092935421364271168850221262657245812174526261760112887424407418323158768071185635529875973478166622454223884230165185512251856372018744428522099432571944810053932994705278856644272191659446427493951545124601874914202740147993270548896591177519612287112487400043525296448465555850430252582926830359995740606910516677222792376770204652360611319854752926680209552751018235385130840005246371155841520512220428535979513330424370405968009105868928937543054406661670086026096188451035065147006146006576992778773434026784095054253464227763661866373040160795645747777443172197217307710771532931325648800366339886070319626704965945566616182010523095858437397370746700419529774141058953976068384280610845908404574689768237786591950267335559757898107635656010683734877081347695924617728424344243929710008918021998236068096667163931715249289842875328466091850445551727172739952929714680190256710589718183231534467958276472656319198745458352855261512241269891769653598802949454790743586648652574934082135108953647688274274694466757112757653717820437595611609607066029208103804382170278628281383417537062389119683899573791206196706570143343387105549626744978960495152917448765100854390863187842523919651089517389881009654799441458892771831065966572461039723818626703127024553943560393170305583976623108488218419608097037499203224662429887734096230279749592604763205580843987934122385766886734753182001906194194589670450230284515438250593735619270488621217774187583300250074391224537910493449097524152220331396541436042774299093621913368738156966855852225749235413268345644566213840837764361001468064237147371366004226263160687595187459066395450511450739349436760384829164802596551082804806800263889611764181761777895574960182867208669966757586329788634429745662461156225970032172109692575889575540890555003564299599045328478304580218841304873328123270622317160648226040966002087467007091793071141276348264782432920965118904599441948877140292426178976317828432608670856509496162108570797434688369546962359374514351152188738059461749303686813228919143802105302151798818084291769378574228942859087948720713440985804279544319439121770494237925781559993516645125474811790713091053047616463073920977591257550239780613643901142580535565488606505053554587528629099107333459505205335842932628259016823221795133769448120316522426717444981914969817742423989062118730327310664963120152518660654069690645377640374464616975643621401154778116025385924473855475914621509105201286933811096928683959354592664146155089209294212308282539437357342692265706820281808723881235980505099864359731266820949235647075175717032396665506686444592690937832879321434119573033321286245651999552010853074514539972721210807472979458669228446202446493542319986295458048710676328590169823986104337369467879105374431210445724943673277615671381438123997371033024318662895707834607159051110405946206286974977001796364381963650087693954381263263468280804641280545623303270232297164694587482797429518009498019237264291892558575721055916033466028074786862956664506327092135664039686094908546729844064584132703180680427894313963827019555253865879707235030699487489826799815669874950198658009126135110117848331644859758741244958659392028330114846956844420381328554524209107453592179535242235369745326339481968313900906607100003252913146233832379392852950820649028736960059063513729948067597265117602638000429958941400440629961619146110563188847750429208606135456717111247370350150235977022124775486694637916822236239617741461481552290129661985339728941115927883666889618714214345826290506355210967141173066264044942410835575767149879405921629823244415671061373771706308557036765282205496332736057814507160918148320818710762152411287268422729481505896166862477396618696759461191593967052315245534709199550272242675103843553572569597450444360471303931706638108239385925415268339471592091398358119334844740025462257542616906312106483703396106976858370369139045046600745585928605592240114150785807834074070060847419803163441812167145217312353338286588366032966071502816679084310355559847132073825006245600062888435669992058602305057914505548905870259837335325394657945522656309838384219080199563058635213952013945208176148515531953853955965168887143821408115874706215309971466783951003088591178232556657233699196382564146804117278682254730709561903460533692250236485391763839529023761202523453431105057847404634702852216982649303205041205622108602233002967899321900473545853785218883299655889514397968647811492752491549584854608510155828454444944109214673434297591774258165653940909128243690015874488359119711332041220229834422592792755866793398833394134736534809775724851897168551101941007495874430038440116230003327474450813331539795366056324906722870384367603351418712510202393877951172234335090203774951263488692888956124403162331449116098605799455488455908126710424419269753337532782946111114130044077410132488451288463090709166225284680014923281546770278989647024889442523460639112528520748445803643965255143778083457021359189717824082083331109649309444252552697024654877918572921947928834709211103537717105751721191840061471736209887205628050162492029089451240632986406043266866404567016975483987548258267275147117486570696844246498658139908934333614308093571826712881068246350108516950314693414577356069148701698175708441793222996418807302635338835300689975221319206470114528585023176785716666997465026174160398605431803783222705861604283786149152954038494729766004537935633228663708539912736181534513358986782694587946730759454457536816907320207373790393791022316781215131398676587884951326839317954942964532883604097759444917298251262076877895496139150367139456280945822711941771524403231763413072037747183867330529394034321200183377382180137032631095989597399818732061511738965715174172214810021381527262387039088696164780394344664108886478393575494000451133614292275089951701201971833082183088734487231719158888848276509071498389562330421426521428752034894729603371292776816252465684993786250349484105317694250695356273697557911618103167871086572509452807382582525554293731912419368731509129929438409339228248504969545175717018110408511008458778944738799019197269176886673582981525141336881981319463680621090703305565583185561405872834557052095273161451475795623277857659287648670943376721466702112413506625242848157924611345474363338432771371986400925317599531601998887232488230744649590831933266849819274332278838435194285318486160331816663050300041303331040796841000293495735286039346540378325794903845743065963817887521215371281032386854168631868583074080067760214906272300098664772457225962223351078006523771986861412001548009450329731737569397920409908399649509439717523209718941396766501132212424076004477199383335183936262202270097267205527264736140406962477094016368060242655029552725469151883668275027744330473355324458413827633378398550867324878415268053878264126234042393907530311188198564118027990796782114512835525793836293504637364170935666951402865173016191435933972056048949879377196966258321772803148844038778813280808605964069959928836739414212437002097165552223100366628016186830443276847636624187499119447897656455094819715332328479124528107704985453726016375221791636759945174587200925808375497284063059962417627860605396953449750907316735196560186925331578680349556694722025598586574617561560912262422161138506500618966597633991735581660088480585337810769300452926205083433355643871112639949500721167814521109917884446711295656445532684463101352236155249810653516396695271210739183736486346673901523733871559985098406922485257052214623891139636619095755443803050751726924610805334728705212003690684189526588482059985435831358312965695314299192382791122189804083542726827518342233415186671543466762071396698479412903036657628858776787459477028670956127978473168796314199130984451368386860187982428952311976891167472162582780904897076130596989735581989316159923016156504518224359651145318491668149478065220537296290701605410226620988016188946413735646885354422824790146519904678326346474970812179028426804563955206171530711039548705198382803907783694976894418884098926450261427933186900263830229918967261384391020139735186025428888197071402161433835695108024044628323512276142609395499525067569997420563659818447495345052516315419980100818618856513404565311133170301706106196827045758553944753528493692901061739266235771236847938890967763063738993489154352960567882133879554718397376784803912282858698160563548368321243795724373372023505111704048259780918813010401468559156656960961944936231141102969231360209472061229062941516759453487411998637060414211993656138665477407525015570522630494103970414106830161470819729375359222320912257643926569921300824843628233232485098623544328113703812199803880854392779436870444183276638627847062004605032341069216315219428058453336376457843743116881018323108193324680386330817110727831436453741669100026010541524068519435029063004260401198583287716175817816418417988787743406662847003754250921082352650776234374672331639344624193618591329772567906601186827963352250921611274818193160371711289942817953323798866240824116522428331871767432888290063385495552718497859562878248450600507070415356157403144614888152892286508576698527029710897161936281932173607228962370417727224741555205354364129036688313546329378154409591002930636139175159554546010973767342033389708840429190572459744170466951027454977491616095930823888896168066889414930059919382772841488632224192219884979738385649449148581115002580043568084055500841745351496176740751796465354686131284403649819527776135370140748421939122954476039610869982172641434463274712085970035558041266420796541590934208404312098673825349487502631969942328093138248427533475740030507588111899163594839842613323745424242163187230097273474769025545957949269599553018751371456330019044883515022477130346048309019242212623106698599737397879793795416907526444427356765016906819612376455012154910156970728892844460911999088182540952222583373897938071281539039693961829773080369922507491375243041354492595285257973129724007499795118057378591209214200687963028857220847913794088527592433190817735979427126802624785906633407066412114564574093504091099621815210497010630741339854988837937231575499906316781500584387450904300059186616543528119356435514029450988537665187478595902978065472845395393991798327434064429255164659735018930431754146219474384728718299720724537306834616246126152270783300315455784523565620932001914463523851176944563409195314774425598542451814386208882660770327125277622529906001422924724851439853191522763096604818775984290982942096943349036504902793766167393688942200833885083717628907981487668608669650256198951539631487185113060742486734961709917078682230055762033538326102906044184189008649225274339886507609526418495021374401088093195283589151112134065336014736675149657224239468629812804469227823211573703533976637797766287010146757858357612542944381475675563605337972999899008719692940794907034971474067721438079958173065070082981789361121054261815740712381501117012735000452490152300067842663087016175861270284697143545510264815638544996752317843381158267152115909981083992112251577108434589201642472185694159994979190551579754875795375749732058265649891182354046537917086534061550719924253374806240554078523733609507450001396000186558438909485017269754507829135796326861318847236286028954024175929598920086560013338278876204047510569821908193384140228748281880968990563820905719204010427674633291495617819203392353917577580594814492925875998008100185018103658931498237294810476924243467534183648821410612579774172045152467113356245825107396633717795174610108640544157971447618630064279329858160501115810885516158534442106408601294704454158507978046623773787662684841129753568225037054794321427066390338638019029995661347431494365531148383482964364152781352770243695721014461720596077904366091445636446575200710566129638725257344633594040027213209465564184784818463478177287467106369294198014116290705034684247631897087595563635653598366351839176033597706330185752589260201000372232051655620115910530936973685635506346806231354389684369373316158031955416140756427090048198914330480673049297802481536617212694589670463008213810173115792589590380397722665570513670321785950631077515171326615714304584951374293921276906280941825157556294227126273069750888313287636613025601178195334675858226170085501761148204135695898959530455641561224017594837680199937121608954845404538250789278043806775708657887995623428025626694421237502496148117215169690341763484514737496863357209977051264913268747291918859345526666334012852676661046777969726240987347354620193409712841661018629494975845208091205889898676767395359585005440767820183401062591694229344880902376651609377231043865786290640831032347930501691461412143289949906408973450836665553645516627787431092340871064435425834386279194477067703298519418368017153805518259852686972684891187143670066764723252386627655309740468777237847801744488979189944269666756882555596781728779443063214923239231967844663022659634460757601611821915643473031609863835530184410895815036346518134162076382767320094796068763377892293640259294276601562938609873927160076803384095344282756083740059328169496583120408803579703282112665116403867900705761355605588809238728486317126546123439930032957230257868534699809086921137976345091427498039835224121243718678091682205571442607636628599015136293986732011782693449667629396829650281861149863340723447744037351745489465531795176520202415902297645046032291458374223130271169624647030561369954307757225344193857281642588482633428998850824926305051720677551422456706007602552887494155549353099216093644131064156024365345643798998509013880782431561751631820589902471204285199296732010513238997978463782295661633773714496584898876556131905063555451048037465583434649482383836019753032734585261802777023191418826631990817001945434658724889986721307481322003952730587217898700749762276060806316235607490603458197426298971533461632666726246982619134032442807400401587616384530790896056167446348118675212454607968647041312734513035634933879681947029724856745196202747169694422779216412991666142770999203288150295824017109700003225380560492429105320444688875488928536621136390938916214413549061004147794623977678574233629806375988583167282861901752289056234497384447343110082093454684906155678725513746732408984587582783297890739172026454187026230366093004212990798498127751886500371114782524814838337226815813764695211966633149442419252284551905632579710959974838636847057448720976554151339600637530361035391098303512545870758211949454865370522853282946179993415809405387079938725177236334354264459994859568616704860141452941726967704902511287386998394424865147598499462815436366043032254731413063270341588155824919114882179809485012810756590793622074899444027141356480162535404348801788724176024813008149359663436043558424424730244727252452609249437213692426875562314418889138695122119226117208530807064207339960321860880161859997623827630748831779872991366383649977944431280987087343666321962146275819845075144512845183481498586509116835972176019327739064714840404015684375456869830112954069939128115649183707827151051747819748201067056738481080076459741954670821415696782940223264322023572730675411287356213922659224923825974192214542923371594114123766108025872944778194476257814905129555804023866089403800475253131880492325814595983164895839433843521504864131533748739614589954011854336551608354692430213551680130731647142967912609811366061425338841334227175130920959157763426926220384797896966772078421185856420342026846610127887407112036747046167545432590544218397746891828913999242146462523388231181753196284338976881098345809184739771295663581321068088705408823360134667643098117770320502348563438916530821794994724071063784298615874730363134203899750597255573834678954622054608124897839279746438733821024772706373761470721175527159997629499913497483429867225138447916685407667341534551466268087156297160771637634583335316720109141556435755160910595933289976273671056932597783080140159035910075275032951399801942707944513739638915056404854666910049564259473130535703978089155976341034899389145184155929274777561818876872526128419013513078207052814822051276959631407644727991288703046029636590746395549172775455928302189152897410681805140996450662836065621906241494270606298919463695612291195217174917733397016905038897411599535851080689556589216993360999979744789237473170246254906845921957369379349281055053783982862359843697194550543917944780815255094295014556659132261637909238470439890678265573632313143406924559728107737604379639910899006728712234177360931678813052231918826068286096281176725564215694732908066218750602104894342059327653952818529038780934870393210214646653887740128455129245028154916285836722289404100318224125991913426947662771821092036447535304536065932808432331860398100603013732082368216572580075300019467123136402017958993128227521793518658696778446826824952828861743306547224041205438564225324776358478183366625393138967098109427793933804927659687008468426018659010622946066929529224105076287105352971489256370823611168207009644510571521174523170137969357926096265737787703506602798278054360301460757729646013335542083352980983452522587740279445329532569223182828013087598430924959121916906515375314798279932700562976167104934561447594337973380195037781298438855458229056178017241945196265392694899484585098517526854758858032637498798290143921152844205541866598834541308773416909099737427149998004095547285652824024848594574004549508515396076689565275922746963079590245116738008982635478752264893872817121259849977822535683091006525351735984638965446769505901869077375725039033076696405347511399928388160367672354395617531800507817281643345676448209135989629918553394187832203832466201752168995327507161250386539991933513755073800622176516734071642959036773905926504312276671729948858764911331501900083303664528001973388406730452699850234824777260942575405292414439152943091140090166301954679471059082837799567164282351952315590035401305312845535030158364942326327014625646037924573350102997990963836533974628632935152533003632556490468813199785674347613589815862738342954672155254981390283052814950268347835744547868287518009932480924161544759312053808467508579896250049595113357775534533441678432723822570437697671290988085758491275190143667683834974778323391724128081615782004808068400653869283960277152168703907796869074366905584047039832824409864595768169759912651819598699481982253791565549512761901807797067848344087190363292591592041486286815022057179616647749861968760517785775675448322030334174733249131047076251501477623384272390562905228443167188983184213550554280325980291278552543575490711690633547608194274219253550116950460264313611459194145283326406735117432258373576499058611630816173482944977563948189762043031092649807654578155257681330388690222197104212256055436668286700834455199566852606352621389047773554022861328373287438148222216681027552283111090424029290832688748512646777866597680647773626436081851307667249993793937958903526602411272182123982601503224930316012557622327750480312079047965593598955700742347171827311626275872382166919242045249419941735128307974719503769047810156896004362249700545976405254580857066288921237808878057330084437404634201051713324489912341075649283174594787066187471567240322784256500705323961437414799552461281268100177361285969420113238873933126998140255857269785598600424303173813339476523300456983121009693462346853451544414378475288250090420433794628196775638564333090287878054900743941611181438280973857590452410600028006076010203453753993805447807404410839944023728937592395721699413999979660108201691824663558658441814233605122308219684437865809972991195788147856167056956341560935873655616112249135860189198800007001167625668435431768205665542965130866759149908954069206578109671131435410310780553028661859853149815626118570372631765685024768126185906702749022113393383161299860213927541771105971898961860879867127535137040886832057374689792591530369921996999317958262811100209781332002473745020160273504219986827279871537662782398436157499333019002089446977798588010627101472129267997183730464243757878218915286490663756160326175637034952950233995489758111586668503403639383880391805380644236085532099648647932645844193436931385521333618937086849387876594210048195832931689758302823626553919919595155241704275488731057058828357761346090090810826418140562721575044688746935389013718028161216476147481846610542446095894971210829552168869403438951623260040132837244639060230028611763755506492091095188874690466263359372992444742123794759852415467483797487580240514106044100483575163327183221871583220286608172465906804849467992865176949639635849264237500506755587322996092713080845628712863297536539090308506321326480326174151991946644880219519106302629661630842417269801545253174081890589864709070881249207570456533934038936516728037133408563747041191925881706911887431777474580759504930437518323122125699536234006709059621782936034502072021825720163356474773809456858754128467897465405524377693231535550253876415583186727108134587318909147050824030962937895170646128243278526444001602653071414445883066367355193696340661039840307594954275428402724735177938832281956847476102732517801850842540502576813495786786572336828124270001436580708129912864340597775114588523553275829256871867730024874088839499569617553440756577271426657003248142664971826846623862178748404017785463333858719550905673277051281514717706783220601887944659562069169562739993037558515627746320233426407771412509984474970969418969964546474822926528485268711162876381172686182061640693584204137092396798803283873091666471040043025733197063613836794014732205486198250599042639558834933177408812516844574962854000370415118679553795662722492509891598777532520426467844218457111330822923683972282202133008957475253965401565984693107128770361842952946811127848401498108996852940563077782795159026463758517647360111486872647905275368573283360392536676872412257281188583951463013906956588708713702360342762235005608141748624171295764520490849932712224482351273006005367884688799768050470193646069070206270403893642038948933204183481328189223799113492069867631496938156549241440443433139777982715967210133235776982931515545885038347004184067387979625709693597683547726015625481805170107361012535415593178491765250676754063704212308430308943596096788405483268466095945404467216358264025252784668078568593410145608643054223829492858609752928846646067738195700567107805869675771585652456597053585048890907168713991954631916534839208883114145995188724395184529655563078598594656365916567320880699144760048665250224411706319247632267285910302825895471708025177860198273199870759406877229808045614428678798792554219444430532904785945683353404705219414970051093036527729769541041395875613372362871167684350735535086832893764748345783284705225826934024079180323285953380480861324307300176858674704863069604915593939904001135411319803126947629426493559333514700453058914912614869125287573091788339326467234454662610868641574720756658143024939770073564485362973811741565120441064103835373430735607443680592746680508852536799242134913830044111982272969547607665373934670438529239666949856679977266686106826330395749114208667426673947404527529804642538757452234518171292559595900236081846934735600192152703843625975905857575092706157789273254319379915926059366546739551521341246063526621675413294665807593467877326288149859644212682300374668467298001091147152480063741901550504793772301603579514395337364148975464438115149962236806045417983521783843066427374599117958145434866730439578365183808467996178802299291853981341477453320549838572890053160526764944739564169622759600557841349355049033097366598405887768486923504088209558825530272570660500402880702663128587781888461527005293565527997406956763438738726908934992866356061771491036050778757213018872329213035503683961994609017179385082300763981777168486074238166100014779154434333441388348259724028749905895804671707638886193867033091911572552546690034768755791906092449834277652903742742297081746553325875603502269109556808823158008827379417032257660834070695478403254711103148208332265942494871961746083331353415824830840400493303280029745351846979330788930598637369641425084233429991339338445081583773774948407000999646691354433467124197144310457991622456755357524530583530791590244593776585615070138251444746072324565905469837843635129753177132290571499193069994898389008919088532244778914539254619985341401715245336021035098503190593031491441834234799200165535204971657464147399193379999738471841431264412152952499784331574088551523628281687145002169009479475742537958310505345406535356347017160240829608758933314200756437913838821535171320252324913078174282024486122516769106681992005821110633197905724151608082316745007310903115773547174219384564683387102753106199249438420214223692978944814555098310296750901143277320509089600582833981681039416785059111293085163031439421501844322430807158168599346714865578746207887133296707807268323812569037440651157723253920051069493795156441327407867369653574842007460980120291000411947458570132508496346692186788327037592541297662006923899406319984666906068574634650352980713496355874180010329173539014728104420202719978644694934180408490525627182692891244636779040638967593034515015911258496300043628585506071408935786924927566984488043619157942266097518527113615230017889505913574308194344423889581316479662308006492178996953160428218293041455085388807271090667574158978464625763818244338798050662664061664674633552723709529736486135328051075923035062104376482274334176617247493931565492567403776289389320546035464444275954532462720241305203982346930700999483853513366037031737881979135592929672856031240800877437271286252578174310039561267770500239490525677738917504267385718468071351368377497987254000606531418546796844491723561630833294414897681736813806156031842411020951764719448888873220181327691779700916251365151421646728819334492705166077307172990938576264405190447440072745948915601681858101641133541525613010282422876960139306515227210700406093834821693459631744553634236311863116947343342629660136287512536672037766442568304867528148443145386489501754281092103199483347672372603613224067734434148642192324068516514569572850123884873799827008198764997955422489303737700933909705468336993923570007490286565008167808722965132051004535906527733966511694355629171817500214189308132707401350326799546845175905163704968738538390147609400409975170378350366806373942165551988948814575513663522382529464056461505339922578159977810370495217260208625192979702044180947727917778029210969912161423833680461219610044617230115225513172690620778635828628734809737405035711683096653689247521056999202780253182911374359244471549911389565378537396835321855706720114935882681430425353567683811510371806165041331823195658826106404482332332581642858412495834959005008096164810825614819437233132101467410483621523002460164928666041975997532066170844545422644884820820862705566166093074266390173026519029368586862119917344196938019125405748100251264870474211923536241644300321405898303149132629298455872464235702122052887233521602856973566277355856111440009196381673222933536147186986911067658866215393932357552384843808976678733574853027572747175538298863356617797412311629978626913738845834985847493378887856683508695895221741228281433430330381449439852169974599559104804445244448360482991028880820055327108961201026562088902550911520379749552708959910494846961404245275618554629238384571303268782635845257861472000162832576369791888843979261904080419710717862168274672129410568033113024557946224091498867160660593864452186406569112142461749498989723688915546132931187775183420735341789267566333680310232525434947120319790069344615799829550094179272786138560509058388300229363465146291146406856411524658144944492526327609612954203630501314243719221810511272563585787739258920216204360083258300189640448641287041063125052503648277910914618650400218050607290447009127462893873570577225664269667520428612272036023566477383956764091761968965079770693189048839951211648609884951032989997060544294468840539419609447085183842868102501580669296304347955081395474912944658902382161441986910548301932963482843546806396110111054642876545357093800779799703861429211102939918584358639387514484844329354431737796131042025152200659211069881661316389461495646480490968133264806072416396189618793535915620719151481749100703641665416278086643492752467465273825250028604773310098538796169008261399858137240659956915736177089158805672990304663231090929454220258750061487723178253221663367924745726010511345564935576288441238413479313090982736395201880653886209372023303717914649829404335800704680037595760660541900930876380456263625896693488076763939740192649607657085955002459151454408379433729125632465460162870848851430613604870445512017499772680493495955967121293867352067060347694260564211609662771631895411160299550255197959809467101968433665424457838069192022297867947414464798081188331024397941128940496894057786107932654597170557928317140556024752367092345771336770955141492529792621562420455956805641684041147581941000749472575802904384503667076647987889171085668687366250068949988383534587561410656980975648397688474675073124257692097466974909462989705585922724610032118090870941341246274290461046479157240496468763286501172586371937130102242259070834544345738812548299285226734880943653988376095536351271655393438921727570465921696145794317117209410798267985749335338839812720541177629895204311617756171478922720331496163929761877462539776409874721333994926436709379420627232496657945312407027389344775648604886534936461870234369026555819582469142334770428032939573886606409783446755128894347114284858686114677029640499151763093352060940744418944203644859266948237662641217833585303637715053223128654301687085368614027250241193915323100959103641965674151245319036926075479197318060849885606817512280474198577813964587919793694922928451881970732918530141460918200457020109126596995300930635084193981906788191169698075099506692415106176864696407612832391864647190287469902736307260360974573237731710731561700591729584126268419489688719574622459481479252687016603608436629163006643811357104032323646554963398480344484392768615430787237369133572698460139468616338975015089681169445144300318653837311434185946692530441297422562177787482129827452508522629279923483310462991679716185545205264211369218218312039894650077787100764593755883752387248521740659660471924146685703926143393015192281343254202146027350023989925263720306424147955740393002883413644280146403128176516776865878144327362231874982040676422008985497645776819465753211174330854547666728111654669962721280707775164883180274925559491357896097640440416312657231843479500528394928376927469663245446241255428752355058071167653186579615727696831314262541150088021934944691017798863989087844656069440286695159831841206021203338705136770024459595516301827019404571438149714804713115294957386939364903092306288814837647938921125705429268847042106090227806714965211489910712913854419501057281213767321969721289922038346870119487928598803474248457205856418808035171203589208292001819561700974464848095988110925964648115750266808567919220323337893268678049610808184671992254997806731653884400211814349475535992943236848650032424872195564727722227710217178779612897482484469895514131178257917622129508888049555205913876699551346163985756007822103840122368680214361285601920564946361367753227340011889458984550941343145979090789541369717181580009469620260370568687231768485294150256620284129402936196582503745109104190455730362088286186483298956336226513701800546183881938998644447963724185062835874105795752746648250837886391780336188964399949063147947586909480542814656192950508803148958264351280638079216515065877330763392346737849126919955528425787787200765291055766494207099689413352232811046215704015840946349471056631205137398286708645920787154223977841332445956976652712776336497498958095508137224199437812048272800387427394990668399002485943664735945108538015464818212268661885032947159239484139904534051792583615049631445691143281086053554741578223575327406203311573750661124252784833011937562437337551350511352921973487075705179006668280072364279673910817596370605555022590561945434600620419209464156827678471549334303669790186532259599293207249358874196378266673269789180936565399378247225099646877008452253472141244713043273728357541476790138723771640155397989707093560693626844138081362160079643220179587634001913705863274317714693300077528655350996600833045609778903382565192631718927741699022374178276269814651189434729178673575187838471905547980043848902090720457238117473471362426776835955054580995435496923851131553196776093402196490339929100967695397140487125491510795953727034072776815592769400147918151651768506631519063191287731763877510164923873034837871981564600884149354053243373256468119943063446917328514473091258984690786096654308456337320625869617742129302596403966939054395552874529323285146986823450602236633990500220341744532007667754224175631373817148578566190100649096954727512729181790542634049446513691841585807583597741331223278049357956611612216157678787487117223247895296739757510576988920309253763394504645853546693739864137489342626076738089398811442009264034608776803381405725908560866100429122353748948767986202121852509615056278203741461798837872959649560169200662543641657815256721934844879236265891519058065963354664486456121843775020653355142539933976166550102896021967949665827447809276114418789227999999379550819654696308968135287745314084966773525362739746087121003303516002483543238521982158863759494320439988185359735618807119427614794082036486479160799477004558723766755631388513392169522313551006330116191955774798837277196132315614673289000803309988129766588467554489818321842286627327577616290410630169585839282442765002167330120240295318240170820349681818688979757151756816222108630778184308329759387638195135814780330178957400104655901818592560899735758928607820848847360874135405664276678168586869519617346404946825740788297062968985374319183096163628572367547721156686625168333948397597637254930425415189670119714129529510363629443484971725620399965380914701417178447372739200261305097981488865550848855180958769729771941878042464782511974686703384723048023756753155930754501288588565536070109424247186200580972276694120120463743666509759511223107171167715156084993169121686157302424726061939383187734331786876256974648049575170761200893896152984349064605272899278961946263935569934840399890347652886876255752794146596326655291626954030909044992026777506908658442444399659887043705668648162124596024919956721170810303751316079589776392380153586124556996781316865939764586798812992815778557377763101401752384524344084973188207199744108650690409263827057481723740326629858111532522631170791217572197285810955550302201998832938176321152286736462584342676452522380402557479049012165286844346914401010551061589672643699840282167613994421274393829211023411022142384491330643332884125780093135117918150189123227564069612334524873265118805726918688035146677330570957691232071921938605433656658024621868656150406654812212051191827929010769471619530399546630405082219407838951708944919212284891150489560504104901067445812800321672788381232801925393769472864629760890445468614844293507079840031632219185869551328679583065634177853492590570381143041038366004237890764013278507556070297327332188991784336523081540764971306254699449886931367616270651816358843650535039006209470533917220621358856709406539031004124371206346247617661145344848853399820662263505189590326918058303713282309057671098344402084968335327608753319472778528997591886464086826970717713697541070200756407730460683883242327271470511410000332875457838894409851841799460943956056501656445394352234579709042282843406062465723767985230107870211417905664985152732196551570898153299876922130585609515908637088405044719902167332532526573986171430466657871055460963093669306676597732752241202045803249633664473796152198350174864804778588432609495287759413777048762289671562318634365567870560133363084002869305602301558590834882484749651468439666710530286875701506543346333462613488818390646715043087648067008234642681110762837192459607461829022074449441993960300350699845027517708149037820616433185757616434429735997518977383332531969377498373971206877050020824564249065615963977268263495609353846377579312179500244240644749836382469723437637691465799105192525241097070881514025271936988832615425212990769493119856146052437294288659984697945350604964155325350079112850694573127706917634471607063721386107307754357413457390035351636246257777006956440681452829704961015862273379523075716510223692119990656745579778131496161620105556309998370828606960549906484427639253470730980957484321171811697660059508875732713850482699772426504469867291778476744265528323412988936672310580674786548579968209601062574392446435665044440280186460570301593854888840467721113183172238565353422942771898838556157793794793816863947013097023586451200344508241154187693058729981408682964675151992452809732324185953832680098641609466263079022498133192404409809798245550753139343588187611268366401462045261895411116086197288743047578674569154176451615162261099975553386433219312482109769662030744411518691391731500780443447076504119009310216810332077719612194311837220231046910732643984683976651694064412498150914365132550898593375404270000768146635243582165599677057350705610676436144999158114423387875832566617067258233622526294248568297787592819874496349621874816282232982792229277445928903535367798923338152017368925540787787848543862512495639058355606526797796266135020782557340419880696954161961941684755209437574345505078644879740006345046864425910346320562693861763550889460857164892066960064609143549158853841788716340107203372834729422218422414640476151868268296763970789555306617428395483985927535348045591902373417534941241728573134639096145658380282671885346833108234456612063687642670164736318052779017576270156802630405417900885765293479879563532924722829862630526837041472243220210244855259313936825277907705748476657527475802056932801438647265167367978526318434198903697830280375176795396994613014126233965049442447396352908409531771822255743920070629996974000287629990182223695707971748368716198216894161625915433902175528015707765432735295458466630951659367914675054761667968006509635974663499628450748397609849893677304495775036694643898907526745504294939145446922585233347850605567186585425475943391265982912582971176265481431994827332516927713123870427592527911599285626831858230516062036607812289529850392938501478371413581651093631722830663380644404402022459118690733531871780561579484160782502924141469660664206584138742995829225969649402422358532013297396565405142579416646948146446778087937235759693907694920065739500753280244741133762862123186326123947815457439621346883805085941911926982346173547783698898112047276683146479640883747831715906687098710415288183529493477099820234581987470385992312023040043368402511895311137871648601536286152752727898702954327441378252469628440428633404740725913392369297937536084801554537923151949453548262958682043809777278067624702835880868496833293826983547606938314723430150683787822359492484487472755954081404865158790234998570313747639502492093573406766780046362034956169275376088277304157552458067365173227019572180719452978640295725222920288210149707277721673764737539715166207197251727172811356254030544827567350798783461623377440014144948600157721571787115319399547365460450482683123418670675476759573296150859010533521291163137523462856438625430136758718075723573215282828147944850006291231107558543209445755737198714670858072104945665777091588142267496063701576519395108787831353302122358362801380531700731563709860311059777694617994248641490450694288604065239164969334081576357968969941626916302026738685217800909771154140974079723445966800159674549959052664120410832284089537164394206128086316551251836052296266682168588899867012598043447618959132349750511091941270029342167875892480811694094072081138004147970257980956633693014246584245140958523732215121351450492490858082553683756771018645115039072576077285097360109717533894428321590526462663009574223507794363942208881596423155987439578004758213955039777037199171162444794322663141930432021534227713103020149676577173372591350612312443154772866045877386787330358676934061456856206539108554843199091253843628038158280497633599696950250907795124612836636028321729064489295125506678142573717566649153449226457025535570301412462009657264682408142512872466298011138971722463629721585853302048952075555002328129353354299684363143248453554578908673889205422249087769617150750772525668751248317109621345774683480025074951913339027877822278170247772783415891287522915769258604333798123830540250539677426608178292982507599223666469480441227807007807803178613043413444738903335673004647887440498807971220514747798293451656264463743507216460278958664831319625537289857434238118373503327907186383450023939966849942029942751698744557981910185883473901788102899598903056077153127590960325697889979348709260911121868231225682735738097497305316727649717291342537491515792423076576469613547858322506162244479174193984029847668635217653079452694589861525195451661768159808571971747028472169279919080292679282284146454793980744142232786392969779572849606749461124768914511057346307725213064188732663313914875879203624112008911118442633953940984676572307903354682953286767101349130869633179511303842310148400043394443064560548477582070942512910471109280592796566343159995667411846199066532489070583733395153134834575507272423316130380106136121687843167823358255630521698870878173294049021409965568961990351106686091677459537782353517558664521979703136794189747624193161162284219801702302598987012969086832330329814430050989870748850975128182326563190135272498305594593262063545018143338921142291795935213298355097873169819313495741521050544170457549553830554822106742674013673757203802222864666486052432211904691471775179924002809405612828322456612527531216484566539373066873193556446213828106040615737690699435484035309744810586595119867585572990470769831387564127072226111945697606064386243789076749665226752684616546089701101559456681581721871729586459767822070224745964791679956976278125211157839712711621308918458417778045693313973312993852854552176623113603769063974418168699612871799951718758096254141294123192815492360033427918760715507800878954845066704413121457524465361915623992841171011410882712994605107699920217324334784838111072455182573685756243953465961060847836639184004635427451181883609709272587786798330161573066570389826504647577972738078033914100083684664050975282579779598322993263857680837727589118994757901112154231488229524052584297493062269415963454783766997710016381024694822098527288808045176214492183192804348680872582644722852470690830530221433330489671986172430200047299803962895160071522888358730355271174144692373780390790880081154000139099763757693298854304455200835765978319248691488258096042475088503902783081180038022168024478865268454240382332449527382501154130840635844754293034944479454565612090766897737710068877626919905995518995506090886058737165258438433918449632910754993272944759863469321400949800069776171398285623783379116528549956571726754336048593045473196485489350334005633157869660765193935413152298031434045458411719276298260489104999487708748798128830415111170677341292098178991007970492413137253048223124285456013375346353653823041777872134767259034681682862576784752699224712703914036627671090116277686203474659665613567517589666918189982505545014243123214327153862570832817434225498235396886823997481965272398225145765757334670650153636837829598991405785852193557170121134849896228290972411622460693110797998822682843310678609784800812720586705701003093508957297908078470741111700755723736701945202302902359370035827089202302485038004240031838264087297116073872720145024466626911058885045200939964868621698984026892312507321962108182400604837900410840763096259157236448492347211280543138405584746041965804135415170092815650241028600014092829597897294388783855072852212289878198252165825717605114250209291155509245158070804163944751560637560428642422105751826135691331379048109380823507326936250131423474533797578777560121553791763615242753332952191771303401549278287337974484592238378494390183245783951665611770683880633559798710932922591697199755551718702065674467092510084277752511895244348259875019264959224303326681831274791123492174908582897956354447749593748997765221406838192639919567575085120426916954307316533821658828547893255015986720116380710633990801133383633998445658722772285943799937451000117438690580317814500612832226196962124684218500180899215034400592506695287386170084840137779883645844121014249284200666702661671751631202498837608990710079660034131334954841019632195170467507918638357209451099787156114091874709368459390874500174200521068380675574558452964391486409701950498671660337359983888172739474195212304914358078600119214536835696110953369278184692142322087942173279148176573806570310122816644583453878831037750838028392614860316433770828474134430070245137025928250134202784398098420927296267663724802449117523851215194144145627840779947954376871093756553637654231721504171918529276471380777965669059538978201200758238694324390521938608855585382383488943387694054833313410962470003810746633124820491394322998776845172113336710075251507596945025164623830982371650254227820826859440642242591917144550779422673150370629521070903439473822948871999051165458497060578884419010654802315642630915645100926148711085194412007971228792285277191341045980698130927820886597388738890540302926849824493183286036002013678680675437607250647061956096344655376277823810276740370259478296495257508097255867036166067782556612807732484656853686687018839726625327720596061675676929674057656835552017438748626935102366376987284045383671556036935556612909845245692358212849929483302449974472183365570992985717893557666124130050861340231006823174967592610812467662755460637947788531479043044379990808741471230428182427520291257021140648412814831222701613165193052347385733686013083050032638551710883744521533765875122220394821340359555135555966600162364831995270798670921140518502539046012943354684546633864667219816860384001352548016082095747095720197991162906880203231206675690682077641674930531805147355488866276317138456775482029975719787588442356228796721821148604885886057866553313060217225664752884244479940130704594966733499991943952793342952596508066164289152787829065983359263473664803891086431035412158339051164740718891180448093082657155395620190226648759782345498894915489314522189494499670627442593334058724828628284163408773108136282010978028854163050658582818323111796478345676094339546008662353432167553450032066987075225253871557776525487203445739992020265138453493020250411115099342302274276256172418728193195221744797372921030526606696276499504334818312287191054873055273772938805638437415126259857256399414542685924582907835363198621591820252379909035577275056782394281439052029539378843242087305583068962965867386103959825756318408034231755902258620971414250275555688529790632100989288027159308774208485884867544083027308783459048838754892692423014769017586456242640389999571697027802135529946380703165823946907706912239173550779104586094019495374027309589730477523790616701652726114026216617231946709899725462440345625461604057600832796281676321501521825030555338418695784887892151235964117000454553502301930595787687861339656867116914266562902729747423588825112943062591979326400167428394537376301753423204474259130448868702836352496841126095370243580809646579383019198138471820763731774005909347370965884889418779871748369537038376865855791893647651366296648117287723671717150649186140275093344562734668201616303013224305481241054824228319924083884360488584974875268150690879629838457521480144510620259165835643536952085687255826198838430230716055217527418439516828495780047087765374096356299038928953847047267814004137916925435074714228435973877570966931874627323177244558801774912589800480507273544725728979006150408159291011323041339206175660127485906869508718835755105300506070192768742297814065225934143371370230415551272447317838057668940585351963129813343615913403584669705113846163697569482125963749140932650571309849804483720071958171229192634497993505391233371486396271607228795136097724788143141448140119992556619805780829576582128469728278165730924707314425448998199494867597140049372130218503248794600854512540706483757102994937624794862086907753588327682080045990375756864206319667643088989537343635367741937961582582064499828045906802577192061802985636249403881481052152197169572621223121466254273654287874972881089359668111730173961100823645105538905934179778343931312723221897930392874278960694660094837604790484336624260105084675574621933638323160168826652325258970762526714577197106807859239067161575293994679493504867934295826590320759553898807665631646486521350072301075497981314095329305214933895633212479650387433229017386753577890121300114457412198306650093781962234470628402796055220822345153350630023405460785613730016535645313376149793460424225045726721598230012436811528075411134506373432657131019300775835825580309359683430057285788462040639628125211419551746922912973957691739304112925189134325866915789268704603785104828678486543808383573862369564975641593225496112898653145165549735658880269464252269060050027079445893221838644542574018512740579194087913603936075780385843952321532861403962074915496928846840894117901982721333273147858231244092190324779470840962628865171992661073027266496126380830704752142387707249924008481993317549066019541087654527143058580094140867808097612736320995267548071995026701764557678930988610548895400802991617787976137445914421131302765381980813879096644750820293431181956514135969424791017487183319222812622746084063938190749097788173627527127901040004917616288204521396566937927824142758565885860858022486447074201262767979923610984582962545595793550867099495620432876406708981958141586924004926688028812102776292989232343097343002477726753294742712717281235948551613474826179040319918150968750920052641791130141161389384055782868057317684929196937618459256045914563138984937836973261059510134535459516377388891611710220680206046356073883897282573476522334787463230901021882014698016948962498550138033085060348179250793603994507964355224581421844894276626831253285794156890987926396626563949447601021257501103443309558187417563422057457248406041998241781483453276940116400811526464810097703901614488767853515690738847139823075036737573872069867861187408899906493471286442164955066388078610678858148393526082755571841836295236410853804526205048786730387119935425247352257504957935646678083581766348332089264280497651955891401784026836458000746931710684069804682656130759298238391705976042105898351075691117103420699582750198482026159615522333146575556191098990224302933583456591782039787566184776374445094117672063842403596550368320848407933138656952439614219520395170954266586620828663915020274080774716097677587873902135608781380365773892430666372708892898664933548988852869611181010978850373111762616997758494957114992723074302132829868989129214637282237455272015683314763238879155315678440010959477173940974947643865272532606333248495808714866687598208635556670562466721785881374123228203032639743935957949541445646607795493141901487166611555550399832090749834248421698809289451050795653981866812578079092927635589978637443370243559698617797759239010320668712919027912004508344494097603056487654018315424291367176701435889384682163453313819388696977209676361646439703507728951046764800856083597350267925131725346051560646251359264850336907220632506800803548716487251859132097408371583582990822522059693352310856182410487361971513458598351791460254774612921641959923970371750399308440689217654500231269023701139383051300984312221992749010699036449658123016873494902848037884344903336829920511599048622915383243839413065862813737798888972087114235611209326097918751028343551194315030772461531168566311723550003546977038121868318098247273662160515853381885911163858202926768231149957554964176753001898334703241594742802717853577032291970121082692979654371744292262495657492956633902711280426099391567271193463071250795916609430744131033565257803181151837939147934652360056499823923880268379642836907790793978976105185048205192143436052696000609459304862009520826699362009242487650010401744946414109165484117756286353971830953063920511922200659197064270752351706888702029369875064246941767077171702439077307389793702954373514038080461394419406020183862430333451423655898440302246011305590399831443161962823466991792679935088191106651113579022631572672788709480491245808464148554552061651857514682920347452478032846552167820881151525956001801097165037385302367654292715283599909352837378185825403672060010370006587489078407280806268478476006207477144989379976204327289239575716396256199223780036847314924482736906281475061759188737215586690898905795817781183845698292530777588978936803383468840000043055699880316872521749394248883398558742387511526132511478315096424614064914107252247960945325047727609596190172088604012107819695823839473255968690754035166072207491115638243485360937879380200904291249332539085116079083487353854136956546733657959245180078051999844701977061777666060575402485959925023362549837325661640862597190300680445066611777929576350670737233730521007117592433399582501763741528440792452124211193833885683669015155669610095370088612487171758763296836776855263265824214276598745693685403366485480046393154925419500769617100594289114053772601539728491788523667389122507741068025956226203625051932455644839197799814318544031637276601853276092486197624994897389775821771812528992507665257152026036019639053355397830977666042463079073378975754313537628356698126017445631987085404685768283182112672238891403684371827923413503069645305714605417859746753710230302544595979882319269652904584382273077620809064714630258796292761637765493126100380397067868362777445577803198947751408415865485175765971980596840882230448323907472804195407808992733908862724948236428176291184864077032681752043671145360511302247569196708540785980723955946482568283119988302500590079189599389700500915286124118742651204570804360359404198440090092962313583959200921792135230155300417283986239671545535056988583001061277356804898667856645424204669079059164733380725152273938565382425175705272794299835017551502118045153712912058881272299037304831937695477210181936852135107776530113867522051567025724315142484377704602284535159203331437886415334226637778953995483948950124932830538303413444315785770243122811684656059875052102427476888303587173913433896242394023899024033454928565319153103977958650885320726868882719458636854467472255352881233365258698399633302831606005777487101010967935983377861239240844284687232784927469419225354567030140380119811256916788111062324903551684524678433629698135570842599826069963950459257487040021450293471032433332902982242535787469109693933983330149449205464178788386303781402401363560727506053749732501233455864298142439981562062333049792839572482601470398033168690349787848960110880494182503005610595168888878980135887981232409554682413520411664529402995209230439899209240550130893574852346687842531004708634258776717434766345622170789590726592090080862528282220386619238814883080672881171084051847503592042576686335650708039155098333452624275324400624886459528918667953663022272942055275754513117511377938572959497643470680692651456537055714059387760491644682622720852196832800705148708566498688597108733174763068671146267901924922514898078808715604379068476112893519770282677988130806032261425582542498426786697399320965531985161386343710363026763386138001889091931403117137182329918838968894027240831226860163928874547511728064908161980731332602827385566073260332990696110788971159954198056501230609126688764427047362840491580374191843528245136534587343244951854699978026523759394534876775092582804406119685646741399358893020397150028629668064466630995247877850228323711719727446638403124955060198551473729297115280552110328193473968343696269196363648915855596287859215886753040526714356531950948010062612424795696400893427227731629729571937949433118313269501189173744095409774978339239287732781004750844275233920360300410881648710595520538792650749881456862984326231358694792441126071732141448443567161264435293365233768993908923564316869475212271278688754903502876536809639219579527286472155905404619470856547521233775299843019555779754062010884296986368724124919340262661828702623369865303397005291411442255347142294022816149975407721846569527303674197511493586547308186602533479995429963277193743491182311037298935268506117544674048766974045753366539582271011920597702796746520088661275117273700928089149388638716809333225285797903003930020438688463317919273203635718858781711074980517894127489470213356779942869780116446779082361502939872278377944090432846526083512287299806463415011306659078406017095352124395241669161048170761081133628836641444028515665748465999872695433991159496904173716711258711585452450687631857550220514418052124704723532794989337587607315168234630805544807136408972171011201891551738538491988629846213906354842671167572632529326438155681990092542282147073867932637543943039248924680210010281931778083740298275004739598703533109561341926474894295342420611576187266822585397423089300472043450270302316225159522412752945645207784473166014866063095856296774044760067309187933051740517688353527095244028306690758766797677464564474674044731101954607253936336510583400664554433129383549439091109757597177531893052274762778237214981127548860343918375090794525157463694215713608567444148050680930246257708246513992482546615733548790580905001218643336858217484510481613856136805697078420445567891535448569329112633645270614614123854136050227352100210825268789056381668652566073611701674022157326670392284239010360795839491841795222742519407113844963581353269292165481549327499594082230243370195759969007088210767451371003035777310246917619993744309249107505608736778662993895612736055645541447130343844971063706578783190642426692758217821882743233261955946408293730544408349116670494986268344126504780287658366128801450037920377711598661661211463684591869199001890509836160453780517921502415015755872529807007302188453983409097344061152065248810945741761498755279066450719053825931339556132372771420445050820556457583245977413918381478743412343787422513718034866759714145332960616672027211359776771216040937658108327484555690709185045596241556395961008457252083768709519946609193711624948395634592865449121099140698874937450873859623961062864662190695686745116896583545365256229760186132347728550450813074999547843984691446743045642496095068903240914856480928416909908765802860930449165523120767009710350507957905183208592129700899494123268068883517433939963836283637821418753363831939441463605302366420811759461688123924911039391116315116084927676210281152004715051156475572469331231369036546031151511349351553710453818215140019821172555261388660708974040641542724337911572893619591921699813530467585064939604777412586445366364585127670247025486922377330927899870081736671730227609720761026116420568171387160135455647216640206459953567121365177916855512028741507064910733909285942327338873908732824297823860092419406870947264313549220089726424624104317273704919207943284814622589981933852477434021667593378851332441154839226853106984873879576350777110826876104209104133079030545135282750257339685937897618652648565090688100937060047751236706440345085457085207438093080775183983396630488682839766636402021539995210562465505686265539060930247756641401124743642605200383500035855632999159771401597190270437245143900038219494923223711740581730591899470120136864629600618783245448233292798810478365163252056660162273076809515455776135478812905574142241369691245924364648016988280083501111055750130965070721081039492601236244779204750594172981029573449219297635207524647796940778388580601783780693136518789294749102938100329919857323520351325085261018018099361731585190690423354241544594288407285086335947766591551252631050087834718579984882106094109327504339673742484183790042493353138579487679378759121880483045782558436891143664087384604793435608227953288150324106720736599397655984849478832850563829130257201319411770072535831883521141876731202122191690614585105453424072374005613009692883561323135636433098036884890996910193581917265843582418340227118108848755609906253717166890396995839337383698299533273149751808215462438753957942981869645728566055645799612405769648641045037133697875592228658590848770778178996117560661777152364246371896507762523991085333200554575586484600061595869468297800390902154813641610099938713157095284896425684128688702997563962866383651590703123830485204691871918368593497659295196730758481519056980960074019361855511694072790075634164859224364026050857062580172066503372843687144706346303085765690888942703733668007527136366938717941678805971090859716789780879914095035473452112835738134639804281992994490486565176645748041503571970613410542214898340368406912260709561652847673465225461917737976148578868684234587724908995497346192971292674740871361704074955236431505735379337833758700178119152505062158289389462139561914139936851922478462787131094363485284930985908217373189696858317483976098562107548584017729083686100440310962733834833826172761456411095613880191887952742836744482614920734013383589713101055902085195091600755771158409839595653817556437965419090219544924949341976198381064526926069844968055359493206176598019322755691308105144886778499679438599964182844027786558705342800460676887208461124405932001986262135160801748335624900828481057239373193938984220450360305321757047005820018519485514495040230348552000596436159355275719750442155909164419786708372384801328947715022769782898446811518086360634497536586129767346905422287081907167401145647237269198273260903326583221056234025654938755693823962225740040115945375232993117504119918056592149182024764571068611232981942874460611353937094486540384491364797161287662979447517608932436470274695085746355572531592919218126737660345835537690174153536541681969900384021210980878484376797474948676773962431190680237117615871351394703514998726581676172798856066758355392342714136232802271377282904781406906676722155097647818496007620086295347276767966376846981067526474599657675343684210531793349691331077125027767096170479881237373557917336589881843066807687170802608013237034395678850218777166737655884991334626113025740272217299071838143394712421357757086988408533454643132633857490039646560905921365501814273719895552666906080501825907948690144358002920399290560318780401803542723302908683073888609293892998199937504948106404491754988593203762163038856893339146285133803546573686672923540287932989476583091927299142885875869259933759561291301088914728518120913371018374039909356057126547627890497494843640647929331009069653000629035367581540283913825110632463285203132443884792051656594120789516647405722654812476252207072116493207739713407791869999539627464640564306314904147665248793122639884172519461191886161668040111627275898299912234265176721694445750030239162523136820843809813062469050904527167096252087409458395938306911542885820530498623099221132309285821183646271318078020208546940253851904545384589232868623945054168213221773989640681059970851783039172352575263844675526080335511072300342872120775961255994733224905991560435345805427058380070175692951622060241657498445987001715888491060101247895999694265023405581710961504003604153745103708119768392431186495342722607491694850215867825060214164736619749150755870061440135967245560980255001707126712533971600603334090681486510284827921966949159807460821625413880632591743975289511370806521194046651204045918382357198146803659884642393594310876033669469250297484842789726887905955334225274574984407999556625996778823363791990080747005294418149531499320590014538670718809312966953368451472812835009849883937916153148142468530752586333184862065029321487249067955188198632798418590149802903132241129369071911154829810427440126566178394702521867708248149314094235528260812263106578276471374794174610698176637552037707103440087851790951014396793826205307119304207041796062481381885603430948571043275896768337922598922709102216568833175095040363162666290638819371033131932004689905710275317459598768217260513916315100749638618769954412291901733915427665158801975593905621713691746290098107211176625894617548822281821823043641383944589930201846254012053058773409503650708043788804413608768594381588660950272677199335222297547473996155086226231193764602693324951617839390459923008736659905809829816841710014152770664100878094405037601722682819883578137987026571446111474319639782783423188212669120690265948621542964405686297946676505163400808128791256170126098669614527732130292110351103581214423675970453026115740476159858475189644112568512615718820929788761141430593850020392872504811881698701457910470417721223326378776867875571579045520572978145166659721532273722254433530234450821718218252879909925538864621325766628250143652212227411862912284651492896473355406872968993414522374635376727095833879448238715506035858221406805931159392788781185816743553164502972195842248394444782655118209825675222791319294284789309534580562460393388099507288567064108033900119380591347196009166619140176362832625201946206760709773796848628928837221867473994930328889265413386441501727910551510506412540669826508053458461644670035028754713876622752262567136375714427575328165529895855803725534485042654723773789868318215239165464143294979665224272849587208552628488573338357986543920743788986812197963484508294828550917517922583565235584038792010765503375582462421558782628964311641370310442561350504828263918358402253226632292104763715481207757644508386523174538519043912196296117112081483283339910495084882299998154236047179605669770427510889296286221644218875336320547036869415538639782659194184771978200440333108041514596025242405502835547038251781286665047796115970356360867854886935027938532682291884252924711599331393598967099365530535845013529394848786563218709858431058696218454264255821794196258394111575245012911438782176955990990497151207954716105849841304019813151878643424567598053130079073075981228620691304185932354446856615605042214276161171081733439203526713582858107652148070211577029553265212550404558680329829784369819183426610587908878124219257764288916995028990722851393127305772194411197899272982995892101666587944358730404285174395918125023785384312981730603243602823037967687122991733204037098186635962384473194049793508635135031148729493876334470629718805665024567449246378940361002127945226973960355731845841263678778991291975128898655948860891309062160239639228873112537653103602761825232475085467763663443038572556073750813571716171061408075729727560640331698989548085776843596563670886703862779072752823511786992774148326544912248953962213740326119631558724024442786542460552935979603730320689465458808396389805565518635143537067910844028852132024138235423764567351098346729456312779980107813332557441609375755107377596593943971909824511760868009948099681844499774767288643765705002089406810048668709278731386962561478406233408085718237119902781113238876345699391149126640291615391966817812957897165135730031897756380439024436992706074599934657679036080652616642256033678604952430655895522849754443226796894412691899045456520520505666753894103576610839965086255450758125494843339185525039755567942691621632547426389290388325766266079093006610419542575307483111027269860850919008272957154303808324830767247676648716789472714989309350628664945278246333440759565010977790224319970023707295452964807671819058034371233832445400652022165834705552442136616942387947080920171109253144282029744548380203754249392647531035964387343991870714705044299659559669730454750420974290018618394634741111692311184079555685655683742174536380610473612143564247267790222360219907365513072879677680787973142340462329531066944968110444467686338380008467345057069989257967688611114543823354397067780856887617139367575659958822136790057401726930370959815348910523562440035810709285103226766456014054679754122063989334440096430329616687722888755966119039446024591534561785014663072005239829714483631642119998291524298019833842829778527465269695950440742652195473385678822739352537525054259431684054166518444169118888404589706557071920973070446434902800878050760445734684986284090107120475316813346513143849479515370340273175690690807985552492838129775986893515837596516219736297817155766066139179299283682836407979879851161135551394955873320281163427210086086002694202792189449466899772229996121022705728446273834554773793195535371540686374455907802205615193540647145603914030004297792257634816995918142144464712761322083701715767040921473877291271025354864080684990881840824923287480821045038272686160294286829600333047181764414734155493312592272966956569609447746015185781543403086534125166935204852599346633578669369746858996876718060159637963597230116758443948895961979647025748411372122552357109507518532395944296285438986430151738967896230522989893865455525171417059764689869855255761581133250545125312491765593997721470902702021099604988630979997470766104683038870778999703838043130406417675653885661522240491934161369982457891209134964639124969875626716149182315808694366010279914773482238733722373452886785519647322938749082237447018691503923186306066641645312653983955928434431511987495039084013596672087568107831184821528873068792946984690013514048213312707251758037624185940191427590846609484074387911095825694690548667911203819299476757786188511257601798375649911420170862668803923881087685773691309951389311621287538638295733714997699023737298138896146387791002605443136763993716540088815021550749140532854855952177420419084646241959105717047753604844349053100258052284896136924610354615402819393950414667860219044458777405353409722338914018488886489666063069261785674068186791800809597457002084143823208446303130808933163822675833429433241811894245275715634592271237285649650630261397539753430098065725139948013588237851212735159853959921147242080263079486003127100482705691496885469382316842360934181105014151211656354850619103444097652390834826862591123096690072823967023717119812870274918415473141989493180721940087523159190568856580446747316121454309086036644583605459884798017140987625773844747859587810203242044341182348897677298144907204844110610571502974567088301355342204591432196434657949976259901856002033447020585063094580188382021989610292397967117698381463509422015586249787460079782014463638929994555544072953997642386633852628638118212671129457830154419609680698058534634018684873640691205749022852025942026063381192255553886838230083282602003928282546497467623695773633743884030518096604800929866635516553937482267911270789851411848139542723543481572497445178882817122173931759524801080244654807621869592543886550738152320455626882189240272807036629114362169825590595560127048856691694774442249748868683973479467701472032521406866151512264614739734400864075683194273625324106024041825189149179286893866224341226133871123456208861433677329693668768951250875490999309959966487635823953729956310939053354874359308592878545111330903745461495538153396723316046672190780379800737028183384968502634926409528881006549726949687240067579263128747013322880756729800859686939718859799619045511867450679987786351759387838721869343230535816460251928260933434126089832174750453243963097542999808864484349140566978415872779709928582033559864086066035760771154870355496540378767379186388923430180528681597239873562780948628552426899901858514859606585732301945026607065386579480342759153432212689204483825360993518072529939721646653387933562272384537727467027206714933210765084027875016166815596283219382111489290102221118039396548723286586612497000637974265526742726548899859254276100336345387896359501974906888951569465183654383547029613807289313173709265641860851510485463113493243119542341058860062046601307372053665318988157211386270336442002917544071941111638620902024608797766159307193984659282231968050238559237935789249205649050614803870229947514883233443457175400980004519514704953913438904458648108053624209292865074911178519026883824716486660361552052577333853977602779767675139334527743489886974981078447200574271892307257237971043569683168341901819818990930393549306591119921561174817735660358451285593240084444934450755243983823680280737745099071198428890589656652276473449007673182436977266815936992581201150274202517002943533838785365460283954082073255968091121363689574232535191735474581507571369372210244463303931832130411361313787462184619803696280062398882023160402050799963777035443774414270950510882753954335075304390204169996636820848822038442174933147653600798997803430317690620823148596284614545243549836558927099742714228034303368101356562168398532302394527131722772972869818681058010270098964003947826886615019803063976765377099213926515723617774878316102793696783215642486864977050854252339527524137162028997049236677296089611688801364242335768233498849922222148175505538964379734526516641251217477754427885690892002854383340410714844275457404528592700666202968116866594208975245311216884679047611084601469596075230285019806921585146638398188653414033955042410266912294177339102139139709326355582264276213857872838366666408398776502058624664812978006054579123435744039714474136172911616462572859204475056734654358600286393943149974187312407874347073685590264097021436339968922259888088464298553737043076153883070509973083006675025444008122574817327606847549069117640721366904759963827254412935828098456717107701822026393532525273986644038376713422810778773492555537172740092895799802993291984344922875074075129482127161410662653883025698857958856565682681090786634736266884753759680303996880081578580920921771658921871993920551073416853307688920113950650837735226457564172082432918471612983978865801744344190057606691115713365296704139157072130681987251870316288098860628833149249144767533888818140662684802597745425590598376514268744724733085539015309002514438391765339342322405154231190800419366387479577497094540343641180577520261957125458800393547134410678812770233438221449822691224999515638711797409710582707715909368428988255475167551016221156166520651489489088613261544678445252606385281415331551524334533986173636270534705125435088696506335717827275805209566696620821139882074026343570156542661547421241186926311019448028518790355688557246354860119538693938070737253424389301079427292218517109043064358427496879422506166560081553962024151133713560020343531940917780672192292959032070364235028951097340146781309791859831914236666860538828991459826685556543795122751143018627483283729416587523255515962584720717739037803402350881648743762025477481155697593150419482011337945134284260607426881489691596064865421897762163392554569991578221578616303658834824884738554147487632699036854293981953179167794001449780275006974325112051660669868920492411541133482333612998804107725596818421584112146519429923370165027750489423880463352063757881611864955530811931787332819433221617114248200250063045154045963439722496236246968340596527589850188872650713703766856327401335066069186874155855692279112759111039014907114216018452633140495307069079852313776035064664407248960669594103656164035391648677248976997599398625165090454717164700527205064286464838888339230165717549435514951714776067034559331764548579118356071042828456884517376865628570384517100059647687302977033702835226948636109703658897089289931783849913589606293857001121646104097017232348930846031509848612721636531499605260489600482450501883580609199199181447193831866519508243830253595030918025075249339470886502971528694366560662410536503639429015042287317924920811347929487023238875020315282117874558543777570203287696345305454978299816793316367389361457309746414757976938399452833459163937724697791721081186773954461355013335893386891284614974942938471370031398107840801999080668229906829296259527573634679179177024567906436283965188331607908308792003917410763530581746827183234741803118782745092222963617191978484861443878014766080785671259475363595889720936105500653389779658205810352948377307992800424561765592577566702955914141966444456858401385392543876406028661045321195017025557387550297001761446591141813699147195596969782732341607224611809041323178034610810979004326688311753770093236650747699651731629690235197849946148658911530909516602037457226059265678869942603863413538664370910097630692001031486744989471670230703351821272019387564350332107495320333297599660660187936478603526839013804937399361583986950800716924071091830417134206493147107147315515074842247942406904000161033493336404503886838377636641499687005798225626573121850412471642118746004153607725230848831950294711139562530229737204123908478235019228396500251491079025283091564211516753260149510636475924036119823075487348715502360437526546247920822545775306038521822153481346467386967153586298803973103158060400862499485600533865206379131594680870639688467075451291147411306732359705204141236573248326672214693861912982464809908434094638671124149884312380260173400556269603801748859164207902422191695093549273952670965579051585832044804800059597345014154911412960023418618212837931156003560009262912542334705141710428028815407514058755967909285010760623448377317437979470028388393209329835293847147227001731128777347279211653499636063865476147584774906435869393250628160897290383304438012999059565234862745924115644888354094884208063287607545768104673575787647144722548447170527955324888999403876746506585662183876798698688521553412885334437430764002203588014900645246105868508790444402517558373992310902020194878034255727155947205517666145324678517387436271236262164030164429218752072700536769595534733391192507549279465915108167253833024960218714542871312522520958990589367203867160409543501471286494003255032553001126657882366144393744106940062614975267402690210249508945973445426270172552402949526346076163974680789544830657087996949993051404056662736295361814212438089287512028164885155599314853644903764765638027186422657769917084059440609183320296568678249454878037679244390470507271535318290864260954985395589494061184149194908520125169881181878528277309983520622199785362143043143497573482667968801156831591305098035871927769586616601804629705721694257274537423409859576781110439132961437079172776651077830021390774088239427405084519068281742100188906999209501287670858291257887456796011005262726005150276130945936280110198535010696547518526765163311825718045143835766317372532365809845325754056423799855852085150644976053616995712992059523678405260010931828853773959552156096058532143698735801510433744801727070579006972155073404396371337032260996548785764926986221344380446556645460344217846313741271414137614229768331911704503506214473315169953417025658822467508677880670435263598926227804155694325683594040742447396842239171427737157960098496168906485981205340053730030305355012975242778863653978696084269916285666375124873566467061437961794778910087616494819484627763018015620253262426972717075646680138327453695733582942057851661800875224143069230293529972462250167723655681349089314889146546830984085240728091170766114704914038606336066951278582988916097089705012183514257924841529654654020167304248514208045872844300706639120898809200359743514651414081728916092290902708065558601496394925784945933891784421995136467311850822273816256154936665323487554651094393664069904419945647315810429470364800607088254628249704013319878088140879820580025641594422737375798291559915551265309864670825890433136288658700219158886238666921365907009300000554338843266058538720138260470308775926579251444334590412953084176629793282564117172151953476401129492481730706308440175174631152720511142123017129729141569489874238706187909987025851037777627612059341726695123127738862642262153935635334925073769549343211604257420186100417302116182853923510602444673068168785753649571397583245966071020128627697227396317446494512906434862418547371192851554537884147217069157142088116912151168198632462598654842496050266650725128581563373242001327484720856246388202808258153804339410650752943484102262144856236220527355305611207280787978559994122724467583934629439187593879595715067626995977337899792508529292125463140640867169215612563854276515147136126250633665484082817940176285198559027691421687569789208602455497440671293116447075867883910367197267180642098468380818634379504961692155147569653965377779142622906694104974345000698324585880439471988904856507106479134700026389444286982845625750903561457362531983128236216433073689742950665871732398251086995884045736565085400555749985664866773499403632629750852567338947166671219497962244826862123901730185604739184773290971741305244701469429710165238952684209194057865361803144113675936948651752781154693657877507083753771438357201442058510605319050952214298377778657906756656969641731401971951905096786491334694184741362895426500247362095131313107895596087908498218171790410642261742266984232711736419293165122532074305184675234017117879831662692489524302644148363874536583011355468690252016370212186929798656832235640791360049315490402128517159540367931066386517366437749366360291947020991925166960273565036912819542752170576162901363336687043509509497160347668083605385987308788533651229536887676025834228095903117437880428477937211018000622816087102011279572910595095739021486505966753369191851421069498656909716045746349481157895354908405862388797100580632719719096260692020467091000662804825547306204526692142550822409227766026897428009860452778863458121776802327650684318382933073756983736446319056500946538237543845927081388922553927428776263192026520167109067614439476435513507133556729575508811554680929916889451718635865795258089753999632654760704375850233174034034191488548209406177199506138748597943326980528618493307901126581061404979453122073314918629632413023349443781316207051889485941796751784708409214766697900488791384036549659564314592893550358727169972784265070629834526442400884990662491547760608365790732181379962204372489213848510423729264287580746304662933806309952282357453915915136042547746410893104619221055532863872591882497939370282120331661117102344777540180737089616263360550956646241913265045804630960841304328778123025371955364620551021125224201364463087022625821648375433961128122200004647107624481136565706630169610801673620491095906673678937688908687634124806533134056278689022630865766028534737247800828331726699011224821136631460659876677619721562018834516083906785552317356633082289319104795423460060404459396965552747831245768916192439602423226898429948835859343990847207333538857123179041367066761073686053561009900589017847791106843619577730856627959859447151398635137988774363627335815395542756605658701996135956299252793758452310419610395716928551256688976406364417248934799156374494568727455042787297126747983012680403061200465937770381222669121074434755602044535318880804859648242813891877231103873332993424311712560204457225309498515870231063231905868245307752565458009713654125577608051951534275365155486079875542623261246913115400694553649748630130928416194831755866871621685395929274478466372604773097325107507353288700931246484323405652615454484250021912064289297215945890177946679955900157844667434064182601572381371471845027628889493906268088790255999850295101164424642312411986166564380600750448825605047261553312904348231789023067474174762734288477343576928211712678251159757773249651824849985944885958500111190024795842510040692559806067968742526048899323093326584949144027616428460789072990834449213435760306948046184993239474634608775052805814006597189216000248855307129357432390296681704632176354781157663509613540269027545863575127711929665605690944461554193156309216521307339393230605258848548821100349500298898711034218037299040755997024294747311286119104620597481661800623286137718266857283655293794385189349477374149942815145191404096919347859065737967878740663524529975282423010649214271239492325791265545837604485825290312018244046334300322678511144650946679464707572314261888717361236030415763548601943657516929564974884635479329370208880402870911472200895878032083809966885437723552563814737615729169389215988392305712790317223258848547523698945456428939152740176425641997926892191312377416905024686740505922066783651193418002979711385057309279240742579789871470119130123035846282303545404459601922786782892751623768906260988101428684411860365737470641039151662728887805653468621215053286099651833192126617772092625858927256445317117757676929765574862568543441843767626850449945483328352936836918171874503156802464888359971866202758853858164634092172304584712778490375560830256689728430909180756210515557274439464615692441772990232730181167568441601159517488312239644956250268832957133004719674283608587269843564206619130720047263967843889925769955186116697107756639339225065046192984802308490975861775933701851760159573285369636479590776773763341209998681665815354845504765137441388268793863013024422913121501196223877582785964382225076406161833146033680727675434049920059415371386980474088710576134558511002879095832487472133414124766301083929237126853112017984216935802001392649894536960709862232214193802667674700700918195517638616181168312950034595360799218497960223292921847552772375877693437355047115093557124157977461876647471635984999059762587346666620430780065923251732225221641342375151044893644914794340654320905506994134369851312562270079258960362540191622009462062090113568631826075362908434473921887285572029900497665667606602761814843655595132384955667728319421276040945798818602282760649790977325988237229031252089997839689752233893267468485424502584945971925042853227787388922704676910287125019836770203406357608085254643499443084254390983819916118265554650360400019697821188086864899237180491014825031243110590179772900312132233181880369028239608821964913831875055808671192424866434872850272788144208928879845744380503135172050626337385862153279441872088338443170326321207587909979533967996565312181652555129998463727809132901920931485253056951241589788646140313430238134236683588443214831585221968553447946738014716618441065390538093551186182499650856232678813821702487433472295586069910798587384738557880556226434934579142661094421607052903874690830199894773923802711239159189335189521758930925487159179097878882844147360803972413195761045126534750134288556407579443348018458253585279770689271825825378175759654696364707268532868341018781715134618328990805447302088974754182025815692913972507283560154488461567546825652667322243330381572795416630404411703266865381080154419230857976318661495099044555909588431755300101123491375748751917982993240703420753936639432045742565220772213420370831145402001852711347384158263836632905735340219118457894393414568085089997050757847721965197927139552459327092576048395373461511261909803409965453048220547601921242077176785877373867283304092231013005762506255037940031802153340890615145990867174713670178743257916700457473391751387489347487954860829803808837105000841859148602064313713325133980880561071576195123259877888018647739841353604769966536593061617014836227420013981267887412225608107387855601560783713833802369912097770629562211303752554040852203180882043323644004475731971449665981830318367030001066285976543446656743450719855930083414393154881643495733780620003603127495508570199836002393308870624215278766251104386454127473868178770767758246912449164092897746560741913452591285029107106230883085789738644040117571287191212387466319969634528974632697935747858149546214692393495808234996241137050396414364987970502953859314933809822211282266137330988555168928488812053499360861550439747591841681655705892861806902229045345316884976563929193687242852219943033444122439453559351928340393993767038525171504809085005631878874616810224011468683050877816439705534749252611545363205048646519999218333036603242496044098591225088517781339476180625365556686269765242733650418526802011724464661183779689893736317894505117222626675651999997749634802448645015835400549308485807814747605972631288797335024019144751823436499843538517456636872442343582108288878644105872005721874149728961299366362931576804303754729243929195186287932747789697892159044271324252004954456974030642831159316684100938358922674810342346976916178937084779810509221604620588283840433869830799668913562103221050246082841265444714495347745039260973658427796030012065276432383857632758031520284051700270663792950347205849472141065262408546984178188958726816807799459033504239345522509708252713527752183339485039355834787615930202283053934164015152903903233046520713927483691101330755492245457265931477417145241523523704553972789837197218769165288724362781627916012863520528828493933130215442747849653048046722229076138075080281303769057829697632212613014872195631146072720876113138588871836662714165933420660449584936760152829445194329659932917507263824018742253067112455898790511729684953253324895599559983910664421168279258660978139859011192877939256992455543263730458206977279583872640169355013416724808693824779148208085659238883220417753632630067608060051930215593205386321067458538274891367287704275358650655397387020098356441614374021639756494964248713787941503378296600168755474040965882141021557191528767367818878967442246792554888373068522436809639323928182913382063788501306404229716911059988364916437448181720353279824907946318791614878961915125874335605112312263761136493501820325094465143373904165587080849182944633999533517438146462959457367546221187943470518532217319597669303642331070974433679993865693997949865613285560988395758334785192663276878994180462389368145781566159243118595769659969769527155859912867137598728862444803022578830956851572130060496074858435278774684814753309936152184221695224379019032155355429654298395481114098314744891747985408438395420461077724516271807364530756218910213719795952130707263041178893387529511653114509510932009066100047979353299712459252020565540865712373393976860303801392909294653452935368388347386444446013747829555241456195602105205068438968324653622188251262334515558900355933787073365008987231557252406508518897142877333443646434081504157162082358816942363150779364065738574452426603667115333137971090429267573945560584145984924783221216662007806864796991379550498920748085666954348350010076555175905666942654463694359491912764180349977531549348484773909954346531998419897300753096615776749109095124054187220866417024420637711465440743398053497230976547186136426001202032164157032118525053727582364772025843539866827826745666943750587581915612696570939549717361426766418958580461489551209888010239757401192024253843830715900572616410930041280913097112313746457902372448681571554386898900671857509800925544816522783761013334618551848362466895440982448118981040496508899456949339364169048353569253444859652070964306289860046113506649203133018918544095991894527701804454111709999508597582494372600675800797391469211687992704076260433837105861807321234821407545918766322339512005357646143854929539377569211234933157785484998730167426548548724695326922572847007553689004655962739451791254487749706981659662404964899428560284456387515619943476556387652642273341746059637730608797333645734998451163002591091043523554895703578053256759873485826953711088990813122980166434668780003267060067907767697473128204145952815562288418103646420327952002018926099429133025366541664134437134002966712132994714865848945328104467778398429092567624066840429021414081753053237437885281105168256335483111545824671570266355500064979540921230863250938362747831293147225221974601877410456009978118235635948273670360571478895338083576970073215664079617195911386257942305715810510344665812001336969528034624143847643906705007922493832379399458521528343529757951742922333509843361957442253135512939112491137229405638776996256107922261646291373153968822877780342617218587616806968026270362536108668083861886445720064688590433825790163908590166354858287438126940928874963560793257428240416994071448249712351774020593877513822943131504737989784661790164488588270878238296659179042626922063550041265058030745090609526541590784606561609685668843168490187115404137859027427092945241835205470858846164546679106035767567481798030923853960094951728686366882287936307483287321608177767392340107050027441042677158142116700071863205087231634186821916589647111691065593659307246796092478194388597715799700153662869673862017729888499955775933354338305591588322570403597750916393119930678981062211614381131372653953712331139623111312053650491545692817080024110723580855033154782978518950150778805371477749304439960290909767071851518753121101642753810642018478941436114972251367728171214891335633144819728057899710275543714333195229474795572093501306754243367904947258909164212456252620292946512946821091584801870259590319140841264793488608711211145798270440442728764628261053754087486750522804315302117962041103278314836950307878549074703301909684042066666341313231258729101638698643758099117781361463380519869993207201905373288533825168101106595037719778606616990143065088706179195099784257524133272234352271946027227640391531827888451357784298329293697170998899638047171620045466532875003492420073517389350695011971523354317196368269259365368733752946769482772772843083577301911301847336108262223799741468697215055436372197833180832639026500477041692209280103058079313283689691101114157334810984459817743421015977114156242032106860033809151450703487226692457753275134907538598078402098616043890003040613211725260980688102989983531988643417638472557358175713824959246214301656328827393686515207942518195522078822330825981965880366011117292394219774553187100763377636480038592201677927732928563914849165298222094120363036753030350742285345862972259654319072674172725733353797627003574659258234432539572905961650721433578725364166587240014609595841305919229089614596135772964198697182933944961478706677656435059593927840690896684114955236477816178906999961564306878412818847662581683468735344343852580619190457920324301423186596089963736451781744839471828698736490393905467564499828037623219841083416388534311395141144942730298354873185039402620145447279351821284530929677866050507712726596780113298841907877017158963074085445833433936532149129467733537624374807373028771554724954343830201209638646260211436480969510572913745468517997019238295239066020441256262583769455690281173476104276367797622065848356117093077251916709337238678038458867308453443442175439280587515287720792289407451443945645108817432793608190614538812559078720899264738360788969912659188221145533553154899396617406561656306580114546457126425251280962187355958153411121165193231488263727363424760932501188009795214446574390309087349245949745457910927232649126228524446470717184973749537995820567279696792119346469745588262855151791510940070592689834037401775072100121236671672167363817360135383835943001599857760991151264584932532579755553903982807417444034118212060299385879669600189899951899233290769601609491468890324778108821970674891284984796160499356332983840948264251534267663638613675200611941894300640806315943712559810770197935595031627374307449164566243609726048228724485908518993690243490113011943181089049981042588379912592593084509953935238860027134491907370592377155654445978297194418210689945942321590794859027727999036641904335469709905953915552208992232589950917087848721727096585203314275599239392352146370799079281363876510481497331335482274477080482595129519444622744235760470878471773153820789235649242403143914592608043269829387348685054441666605033202533942610304491950949800011960850091485855826086411404709916716067196237914629216162505947722796835757736414962607787385293600368530969473100202332013798408379192076384183489094316816272181059021585575746319816907260825079039169135224899481356332816884014060921413384993929517469132664460582906453405109393106046709170157946396519702407349105810192663284517690524423849471423922369816130261571559294504012842663519800446396634193282202712432810902618890879871719730982452426729769029999256315456690044018084763657349382068505186724541076144731746780420787849086436936369022698782116855370958013787103981077203840196623419708130702711596985291792143182125824947643001771869439035607297736937498609556922048050615706300846913864779091288649823536375502235807676766670998427867185828960355085351897307992176761562887358113071152322135272468322206943391557015803674221326371818299678475305217400812006742374751564562450729854458672484933371452068975910576564707727116179979396823246816868411262558390122439015403235506772768334027014577937510961779751129773034322834828178852945542347211362067222140977563357259768816964428314966786940997099747419966356013474499834714670401590946934346098570239794998735727388045594668265864002234309137122100077420466950436362705788058999859528321142447252080564674873628109102544382956398278767676800199067413493249457765289992191280463909535865927994210482867339617043932695037904919467027357902138032361521685355779531345836718556418551974285949690952861328690711528238448078337036859545087676984921697528336504461255823223401343454727056108968910446071958283815499038773199354389726512323257210346515854981376044388946534508932387359419817772026081919431570050540340008393970786263091365486663138984619539643651378072078090015903488892921000045517775435696021807124700785940771819179809217431735942647270717193315137644346970586525286045341155622444244546117323896554447310307472776124606831347164282355259274401728753815486220852250835586764163632542544878231878072534739719374446627173161480576401216650245721994054165249313416805672613490874948440182620868924665905003925492167942573730910458305705748058394785067843008449213213826462247037943451084026760822291050640175147749160497253450110832328334610794647766222281560600734540964844048374881605474143077624962821925071198401011787999336265880153251101083282833327760354622655701323247947276599975703454729717094417288008192367488210678114928889183279378654089103179071556534122239229276791476657655312147736965786504342788108824291107127893838487230540901624377558200683632033800255448828927316428269318487871409042385775283838807312826306574829184431970145908770956887801947624701238184173513863072537760921045948474474986780333245692545239813947233575861610898348872414079866791241529088642851320125949802414803475822104521579635352237209846719946348402889881611678345563970390012718836434549411111404878033961733385334562435677784541812404273800705406881998086317168224535070253614411329635335059285820696962832313252320962123172385696132408795434423709140535877397298599517627640598099539263377568050086387683640483246830311033108759799705677552480716256784888028450893266104145234054854823087426874779125646640885074644186555350072305945256889003592180358148687723968341737190973514544985313136500085247809651365340235253865421176450073467812598151497421918385735672318971838639271737609717619904161451693023309557238825398899476533461735016204174601015176344784129818270421705201917627596086892834056792520397614819046642432862904012945817536448668936213148700369296098497402889590258895980626400879358821079518191873723435063609127071504857833934678215496409023978119422558579566171849331156284503782552775119937129271575700379265201955776219132265031663852839302564747730806671274198492867920916915622301172304917272169072331968962029456078781749296352807646976860242380090073526147133516581198680516636317165086676479706553388283068746986059476484393808798508044739298853369047865929820987023401206863863445542593265933368788481804641728754371670233369942842882364907751513577207107932381062919437012487269470765908600004863862068755289344217505394177571447920028688059266896217859628557119091144790897253340939186301825940244507068952240360645410684819828985832652086194557716760706559890615624601769270044150086224050086014343841841629624353642444516270677791207127583929309657230290391310740808434015300769438481907959305956709669248097910574205885354640369071825509279902021838993770844906908163283632717938293177539114187473425774533151909971678703744443164498233197347166444018132536231080545330949818238240242970474569894467817265644978330574236291243136014806851590606135155359312023637556571888665540035498771224423207294883945269213326298271409004668381528993487663613019754898226495848500693322632380529001745012187755399713055075122657266128929727534735433007259098661597890732876648307409232172344052225818021864553590660839228026397342799586064374796596003930155445459424964712936798202037927432804441936805105626915690882301549823520136179080863455633042170972716301358849909355967009016989912872666866315456458052428369637783366734620135153571911293918684131197251815379843898709061837298609802191645133600489697366078557945161666338466903258577446039126918608868420406358410417935787159829236123234185199366360247663183773986997408386033932951260741335890209647402860382056845523088821517140589406427095592268808914125895736060089266281182699170166187864837577874976515005424768116796534323366507617217958784077748527849445509055959805310016234733475902625553333056444153162265800449490995704183022271336129601956477673705211433401770568302055021262308418611741471084772881638685197352422084328658809230567101942472933890289383567758286490555482199892220301083254953034724869646867546608223822002251816534279231296183786302979237776332545144806862060671030482122257282285431954900189950459640350320939336804569185185661289218847995140949600710637321102539115537906700453818854881725924642742385880749094106226897434114868694075296861864463413277213579564418448572360688389821009058903904330787214322947362207635633858823467511970001489940796290032171948886367687473953872749110391718943387823686219089333562112095568419548855749835560164777694380006421394283950779519078528395820856151292078601276158011024682663793278761563179232987665513733644259431053112843143983145743645633861455338108564596406129918492375830787083151401871023758974465084411850239626446962174575107400988819296023960696989236422276415823017324851560559010045046815990856492076650668311467742625045230388244699574456693965243233806542824546146432472437379298613923214342602428900402505549500013490434096388114936080162561784131404892046826068122104413314603072802975143306113408681186752064970162415652782804529361936034676310431357845212562010870268017093952711129032070378809394635293313411415317586488269919540485641750122204258043014156646309642233642429559525143899801672931539077292820714253854825547193384395492162438892851827107126308945132676184204367992400150686006111558105288634309398766452452736617865264511642676398636173931337908964895074612812307234139584644441280584661045135085656898506730119144578040833733949321839095590827537388608249494378694300717826228857205369217583427123230566448841873287105494086177028624135437493423204929549084596095561024150216227309583615334715707892355386848649347001253238648952498208615471048921783457993345958524138951060262289906540402737625696920939201193133236042516420588485387873509585965355533230839387928035778124188253413046505086647799127723148516886308348470476642628760897298776232593814110483582821439671494476273231083678549679160952913311581875854112723158770897098296857678484323929464343867435632419771310004048018689581686935335219161542153621681437224505841735752582150549075557720477699050205343714839304223687847527961036775871569859968827667423535970212626537285500777590258608348701202923534136811473024891613469937016785064385669250692247835941954697807471439683229844099809482476544516723435589990647370056165380235444243465715950591875563361816495376188886910839871918973565388534839761444775758730102701477266382678945949209510443093940906484182743508344619912902505486781441997410386016217260331895715065817458268425442531298418317359604838907073472478689326028115465077279884218420416878969644696126322542460185528639137839158090530439046617349333992747622690409443813015604598781468118572731074037903920576232037623657467447107942519198270225652244482058910438494752821399459607292112284307970311340878594957932177737807127426044007877917260968683145074406835654198920906787046173780861628441479915577379579974664646515591683499106688676006654030467758008933857797286930444056400402628107884678158464519661075747898522242749345000854442757850335293037278570410936265534862449828486568513427418296498998683616673643971678250236041105662840410942387062256897203176552258566151417458009934109679246675383517338483987635114280918452299757996013708108161644659822422267030118326249802731859275925961473727176516394768834671197277920122083876193261804786786038108025980558848745003551601104587120073783003688327310783049481850328991093950495815498819007135158935572039099657828624233322102674638230136787090980287212258870707158155059754002081119644446315063795742364266439726602247628213837088459881547127117016530930618805751084643592113421661240854676416679405982161009679388985730071987188712075389741526069742624223053267076361396727911036171823312636581866451841959889630555556123460806935311030542607111935705145149096281163392543336524374700287393732961281181098154496920662899076294884481438423800055899581830882579276654857296679586406206196116648631108594360373563652270734502999179542580396201329722916089140821223448271738629694905681322741560025639809334864647442717752122839878739302525526701824751390273880006549486633342989669791372391373006640847710398377238471886820315169095402311390220449177937563120099977814990101186049052217282952404537346886853874232332512678331032486622274784419248978174506353691309363309514485360470256698025315588956751939064839105536348395398351468378049579926414118439697736143292743837420488343158254649273937435194751300171352844615622904124013551500930354586830566218845399128387000481422988405400487180305272727259403304597290592616717394843486214746860508170612288653105256614646076263044310327189529227481258247759082208103300277999387965288952325094650795672747876493696427764324065128990816135375675871666525982136157628992652872894872484436072586791932482449521218799098472961058005174882627775728520369996265711805463953081769749845182740765033571840069532423920799938186459934975912702776952963075007674828769558210991611367446922875602116097834315956334497489907274102504220480684219580822109186536054259915043737987124185213412309500228392551914179650625201973520352469412229477514328322456418472693179809194213625244655389491118663383374346650417630567249369656117252119182404050971146488153277562073456146891413769500920675508059470266523110891693067012882021604747244183641199664819625480282347133435412207490183702572977238443670616589830801164973576770433899992254060203299312168815919543253070057388109412695525779287262086359356713474644506771112404688244912830488204829189965413686893333196054714258017783629303197070232322474409322751933523661483898471407577487342760670244500534460333651957438464277765742599881424217845987307293202213949426374964761068447407320043708927651159285701786870197633758687395955131774798864653027076896140479635284865052207623222217932679581869482542126817463934925628216760584591960828317042112692948233797791033930928108490298351755692138926607176299203937334336531445210216093666270082860504009136979518726975416018165455273494568387646333279701964009385486752858785838137241374334640755289294041521892339642519617098734346166461267075262941427211465983387075939643558156435137153079929714577242508884778178879939605250628604487780355502701519591015441088638745278477427045853746937964219064279459360126598038497383315028915439167335030810840366693977915683232862248455541230658849366578889359994182110163587526929570957909749737463227061683224519821181077585640738530494569489500337509357513657736677570748705574104123027735349843328668563005920802997707774442826247830514961535514740854576113637552384145306152689455211597051450461822238947944800520961018441708029910205804174715189497705625888496999564366130097051475221868106385023602124519947518257566727607035864416239702235399971181605880256996146632616253078156048725455626462073629945768011410712860840572188310992707747941235578112078572599164791781995123573509332540740511214233661054969376282748626236390565001664075680297760584687436023393749746731742094666030152818092822510893031135621284923491158968390244511255853028188839213718000115023018224931036194320010388398125647135684177588206596177241901392115361296171665117288972299623223786834692882875058256775505918836816526042045973819550482982700670947815169065736828825085643932922765284770697822346242240346292047320377571366492125052774865320042341626106164041647965540120595898501275050305516191948594539662613592655257250572657066463096506302224187910880218039458261045025859907364707769963160733451189412345233301692291452404464821409525295667294714707584657803621827526803598299776617854804391742195749242056445787685739023092785508824566827709361180900717503717650178456742751883685708379092593244523488827132937480502458336736113840113990122311425342741881158043051592597684007573930287740772520801590532335818082478590155172872719555489025291703664434103722682531898050542860152438698038881913241782406361451763615857865099042972045126668709547786392815304847308832717851801443192144703633521728232308812534002124737449034775577842363046235057616966176688327386618816961916973849716878384839413555655772846726205540849226901106913211606368556591222310131385033174821559440141294149881218820251888280588948657947292347176150212984152958876981400320481837112736337907630021135329862943357534552644607228949519298493787440936474190051521624264426786550974499127465902948099703447155182638032412993430796270378110485477689718631906482258977078080077313557416823598545683024308831043314709445542980380415046760197514103688403068741593921761221090684403560225904188604473987656445545804625265278427560929016027367011372178297467746194755477924418475126302375651172425987417772577746714853047013764711222128286164545975509649096321836190246784298966820356365495933235139243889261752495075522431430921679750205697566360282686950617166068320330199107422973805817521827215646122149639458831112306728443958923425000769699732374735429729537925290855258662515198399205311664134468671133981629199402895307173839206455732919011082131301632386362708546585539877858194314029812560872913761291043671385790996911493197443184271822936752889808161284060321025043586558268563686992674384528081903103722303144893767796246182349213592035391202814935154509878718201006099937405019179212910207037782234619739655358057844739766059044266536922991384674617624581017401567792493697730864606093071055128492490264615648937451215058050659280927750919142185011867342165678073841570920536047608200082104193036685677782767965976388752258334138344026930391471148945871335308620946092097353065771209098460456110987866873664616853962452419253255586968876587598904368102669780163970440038826760294818826309516316004844454010317831027502738765725219846267165029423058198803360373443156809141156381339933692112924383246609341791472204741439812446683455101729826984491596058789694040042424218887237734413464444260658592432325348081573848525406701671848375863734043806946198905909002630866111355878131068580844297805366690600676322537205957967441815941947130406419591594766329342945997383575852798996568933598599105766589428552389056126857866308608771703747307071328446886888488163168546391105656468881414873032126166148506936622293640317908298602892276720436267440275994950823235870868166845150286120468898591357191065374644071211034575186001493638781031661727524448966002073954959855797241675879631801954383680937249185707276774610915842124704508079774953976303251953868609308075327386862145720117907567488409014718871098214938621301477565139425102885147768432752973513554200209738261398639304081309310447035716192545891232252916729796234357695557953201739837684350756365775203394551596879709581582538989077746874001391273566826781367246154004183107817481409235394488372299781320802393815682779942525049387525195631307132601570231694641386228770320118833026707238311790001354759892122694074562063017884862357863517423791405286848502479867461185226455781819294026797363845694688033462391721640070392884004899805115958346763097816868111019689978635982051247111561914971536576481715688215685027145585401011967617109983545516823030931995629850089328883786719867176772638401861312143795996760365034674266082014290453268893817579017953675497403977517246942778449445267784930390792637502812518971196401770320460910864405181311240531911834834402638480258728495894089730311398578105270620300174408121527783900437335740808949703203572992347180209050413685774402062895104148138295203881782598288474205641030161511182947601589702848193472895124515129150272734747635263156791582585565321547456374968744122867461261804525706366413002492062363411193755063170975256757462314150205000958505580466905156716495642980842379355645942332457627138736073159963276601724215002844527165815832486373537151862984330621959835008473120141324920064163096203459475320233758099174501722238688791880541662085691946495059985393173525218123075507995238684490396492328113289743523239342547382920158740351281387637830505052345883775884349634637937821591185646331854793388264022996345047387060180489445250419930236933557078660696331602293059340098222275909069715315821863914802815322221203384536698373879128837813577539785761819287941369919516455339649817581946648566297981265581531862420461066402745455418943725343427688318219327215437755510944483842987365714825709301927247913987342125847951464579848757970030124413268134359300206555916952216006681257827605517151777153853137003356904359235543543717427212289381346564354840435193986548028125116992630366414092977290562328462809900437635974280580725124869058685868531093900659809858229860339768989170020842191929738947897105036531857171713597281320326038663131374921919554434610392584881511957787436981113941004125417816349483059305823081075581590955406117602035385944925583310015713994046168426570296972301815115279575664922180477203360156481276918446238419315403536292766408721791137820221458189251209425583783697837435490161839003927260041355583909367157679474558336291787502403502730293981757765446591813686126704015925145483990730766448873971453433306754273561890883134592970812867292707849285856765668971873343793390724311164538749102709960053218280146979650038904613469411246493549180281504462022933927774500677643976687687526412565060491928310487118770529595872952986741807557236258900868482242168341817371295293296686857517827247063801339156118402758501302432643491397157218165868068396579868173397985869855262045018541031747709159850129137969501192905366159166228181233860087046932066396271060535022655955431957260827504173858568324898506296740658114801149365021175461193621745972168834301344532968334090329798417055427382193551292389031157705296246433487818337099489682453388804270437285845509111750098274009651979874495740110563554918586983971342654660224412549780981370415342760928886002378401884736357773705855945521592198153232277133808905278481406003253952690850423161676116480640705620218914641247792876613430014367775383985776912962556153891831919771356261788194457217898915961412547833424026149635548997132564933789000281117158908562957923161813062705881538464720925871470582451196571570006760095654710317021535954906776311399307021864861524175213368512900693886820707683910992753732351619490366560102678761639759617708410524211986856575353230002579935926663814201474053915353784963863849762926006225866649723342909797401356777080775717351393914362602028362895769775106977744222686993709320382328661183773480094786232964413419642441920481366170253900215531858669855859402401571742503503780484600151699678688533787847055421480114633425639388990066506378403296841800872502564658728579942949156507943630253025593614974614556424593358861983764958047166232400614026462858181973065973280706911840592300891598278353495055378040135469591181957510490348847306634516594542300859163250872521022676649300225470237068028156940008305310835361112613304130961700436427101922461145982913450079810560751264216787954054272713483449267078102360013420326281848204602545653325516501848192132567894045307332408770581609885963751120130521994394709089903880877140474978032739603777184771026307122468164636024278261423244017665672834601484910026305650520158917503535660932998767516859281306582436558368272282734352922880830325488086563914865723769353036138507301875566965172442560789646653786817629140036373815091495173893152235396334536956481537565967312659029187379256157416893529466764394192854558400430789983562181273595971402576866802862125534426048284925789183276042890937691767965069105359446908119976995602089346669087134769318524470794830723313388742016920660245326865770252582255740578971824118688327599098004838008749549135222502085615557909061785847018724451610294406233756506251769174043266309854603522380800031076448058200549590414726917831842195525828054376349285004633873346449536401064817218833965308359166011796720552821848616152072643622208243028895752771434695671093349892965514192487909448800194927307244660565014303182990119896254499229254126226313145092111273932052775525087708622462351961576863992309620304641596787741310165068423707375177495980155922679165869347911401683754671955740408006193135852087138503935695784816777298123525032651726353122558069810939571867346401543215760188544486803172589127009423372043274539385957984831213866514551080158072309796847111584903326793735331008275119122849576891560125596947453732441434171900793761957292299080799886636738190070654706540775907424334318153246580171012274221442836008081973095373071509885589655298634515012192152223113569425647766846098224990869467443381786794827961635136324121880952098835527822411138031619824177061829143719652108887122846301265715813501035240048598384024890700364748291779724425189497612529676702545272585326282779517072646675141191783844028796035222868647955202000197400066449878240354620827707917517666727556575200996722589350345767265876818140190453598649263733583433529305574412066494635267066381335780292597581386309180775257061729272813065207450112595464815523319797925120633958256669985602966516648530419031512840238184235732978580519861833855936869451850253485928330349262702082379090735319213586075632438357996877791087147658816180180018724640460885380961554858418759758557956512390433871947795645957041748839571847795783549391608770689649231831316333522816304539073912026066735049495852272057856800886930234629107436363037993312589426599320896816527808001487791026785890524548708045786846981721273395882048288265841328342730654200544859307845962911288520776517125239104039346023974847879399220695243811036357814866105084822893805224130697731424397572897056595082679583963386324937453886798036111056602895708620810154813042033068570469894508500652473709644470726625045471905375158185389567921613557189761607085867605465705513199857600605467040809685061155900328406046428270512557671776784842342764590418225572788837441084148247121063125927086683610267248692229202140735944209879788654225342916523715357201580404481864358339983250527321334759770784092086253677847609120215501936666318000363680374851745332120926266624185073175843697811502627481099016151555950345690925479076554385636607301403508588646642589005670114188563786947584698273329988304045115121281735536186815744104093242740806428437549482824745722846173578470138306168791291214250135818739303039097612861476521097955508823715985402036678896552871514031638788796916451377239342105336212581933387891312255146163789243149487487633426702596260978493575238501013143426699951820535219879654389545982644118503262894282072339758302818625645089930674001701258571154605278377272749607447698593833268484047097883620985981144679164039467422004134697730673603291120079801241014682820762535364818947959965706263579098351582568650369922516728486303836076160978418335931210522252581172277214220905461268704946065965166691675903080329022012045232485355176577969051256880803259430433003168983860002348592288180396623911953810000267463110305820028270875780585106170412596036029313049470278484428715062049671353657955083496703861599094538074718704388445961747243597241904235426550351868220052284857958297242932917357477643938558498924198042979685350595293718936654622210908417166163388335862646368308585811198406343457829939778688492779753907200131155522549097728920492206039598008171743624474397425524111917496974583736771961389690709555519072759988317203801928736974104233996433745056631309890711505233032186437734978989796148288505395513786671380117825767092685941976462547461042315609850092771775679590479515556535384560910851388158931412141496005933729994011621799363426620397272766137600158632921039923129501620065209282316559820076901462078742903901236267474945601306383809509336073541474886970198025195237583425248328514767113148553567721639701804860648417736172464011818537837640752662746139310716925353414872246342597663755291723769462597790397227770035641573740849752902008065318482884989626636911928255943758499200754193720920997895831443088462586456446521881387918100756069810316913994769918497362100576271738764257889210455103795797444132541651688378364080667989261994629357550931415286003629143924801085959761770865404701149836078366173839523662332370307255145310909739563358836597652562176248894386081179057739919922296322814265089598131366769918525241912820441519247161327772025762596393825066007498268752541901162550119756423357827962137511889271923198815690310245714849843392445241160198913325198300510663632301221602678894659100034001144084213786997433849501441042480386589532089740045923465976334996104790167132790948770448923013010362518341899981253768949892707590704226779137993476673073366783994260503253959266011692174876068883708731591327774761887712574876681978415445578990911720187700428473986386420890399120706151403629031496619552572797883004914108043488042694920058067725557910560159023861880761524369455301571002952191931418319760974681186616275088537396240111294199154634089791857526622158327885409272303677250284103133864682907100477442869234059578858669391750948769928731031024804291531505891918296312167763157579383161609918957000867538503332907560874726635402540185260753030641655130923947277875712121377206318168038265655229786410980002588491435596881174464229772947347527481592873374524534670367496301469143307900984788736253040772740071407202340342179213455596447647554153339718083597638842103947314956620947076670324019112504018893149629221842683048147363949539998432288731412105490316679234159423931368825716011933110670900970678935529143378545123669586244313421110693606005582030473701393097543854846984579091069785089587101441131410117439700492031484070506005496547534383092260293468099247218160953625803636572035476249653464000065372464532750848905558516463916215746154676685687288192696118192666400907971761450828617865778235927681727033534642442953787842470811655823366883154367734739778537976655933632480670073050515517900364729616851701784636324909170537100092990604851174088387519741573870682101976624854137162290066752528327572167237026772439914904639815688726680387321986778360966843603292500232690567504902315844202685493804932214743484278243717906582641903429837666669681326470478113535779960139544763581370501170005299989669489769889175037253941049320758674557778101071022268781096509487130298226885698582104123008599117876577813765096848552887344090043278468997870504059998770618896802102061232538362407514244977284068474047789401268850307498799782842185218577817303737588832605546327045018380445745753593296258094560860872442863763907329987326811609563895247479834301609902867969150510344706052584486340329575363808727140828492120376753064425545576232553278168644874003167943997417040853239038256007573404955011876826966465572431283623028650117893861536794417724890888003702513875695915422048973284256760313404732941185041055993398966978643019462103180787758292427788550074403094370638668425928662262154813629170850938999549091509239138131293999774308772374127160726648111901655003068597526248972243823530134067768003922842233661834434291946669073975431974141351680487948914808321900674831646833413043476477187559938603484599672517575472832644080525696726155629123217069028472160159668511310224844243890839759470259904884379942150023313762285710858192057868400150629168175666529794934239848295729649160778061689611437827107313182859794387070380524999755831110036417763093906995715414685317754248424755395986118368307807776145341917816456062155404914156582309016073836094285964976722305043915304372107596257364773324487226972627438410126834912597800988671913188233148471280604559425926535186983471179324013992568071218468194882363694204979992460772206169261342100256845367102199945789905394559651542877963323405565541559738037927707429080629515792274164640628472072191974432578648254503406729444561818672942423490501476928518291899673210032408962596502118040106189170603510030048104422137404205391632146272896716958466900587111506127454765221589302484731409423375981250328572565670058081906572081973754385440270634741962174095676071185963747227112596805464205996304785267170555873830213012532108568881483595779010707200431515896776047489946197872614252659609358167797654226724812554349797300985552059893588970563944319728102664642034111143089973330286815371906688300424794572165382298163532276927964306588644031971761800481568139954625010371550087230821737092033868326760490400109492838537690328838996519068830547246369230851860161395163426838508027348564344320275687270075099111701949556458236147269399936351891080918395645381957463664964477323353503961775763644122363419002290377922548931322434004778304311084852163281229807347943180768437023370441679938425608803027415354599589267933695456075229831573585183376485364447943516450661565564229455434084972918493478922130039283178963244504183504923476722688563365355328888090941821240927627209603653077865651521446123539704834559149841811646230439439067237233655332254419074449326706009655614921170031608367529231724316926230824592527638520498258285897019109633454164252440005076930638190210277881600702675763979685901198688852533137931890867820623025896707458322670183798849510197785591546852515775207619753638703721703222467622965738092338112620422122883618064221069872259148668768092607092753547309346621809198540766361926176256034279154431900981774883466544686498377287313684060391611937577574777403512827424680772908663206063429526885126377899070602165688144287302285985661451849743779091012400784377032323815810838952027390767693536063253903479800864751820557521946330805806209717039903941382868969825493478064707378637904095388819722931170719167569070560084275995576909216063760615723071406639674952938526052485551900881962363147690516595868901494516261248240000341908724918382232247120146514649774592515088193869767306388786093489540758684185421416742651677336360955028227274306551628615132890242820153838640196103343704902160251609607971800570922299030626516095476046750489451719411918587808866684345557650213183873782490922943652915869254746716782471155237644670924366024879867393840564069539912303043467160051008124331126786104492171370701616817225977956324906599037610623381907558930141260405220084136371424569134031617881321156534853875078073741132611730579978685851081879179175628702880328135657747804260710386601733320516370696498282240157283236435186600116764947393621452890633010642468485106375983519104885934869446399125199602063100435630617524002693728191774958909953337056777802523424560565754534318149344836104799619578667749162485933768081118014089889564411036489830832106021329360668475328727456794023663095277943174423920214291784462630658407372334255352122900282457507003639391660038493809356676154875705786202669205070054508209584236157262928606728279484704878569121391452497490390723507523121355146066871801411967462879452483359905399256556248156851694498752870726847489900213386028149410227687635772135521651919921394730231312878934821003020091901915225437542099546536661621726308053778963863540710376265492611431535803690784194489031552349673350555609764949724780870816006913373530799017915038231638236055020598731274556709466335176027175918364756086326696304989103840113602179720885813777875149020580472495945008927371910055918258297830566060969086549375591698519725904504359615487508516785242344143379303202867877817963450221578384417588308198327686346228191102067592901949836543289042676720056154184112967312548957187761870898163711154143443444319552665168893160507068136341418057348659407697636942476849615105117411802524219659427453659864005683017540338822601587405298818754789041482757419215278863836678895926646391420847388698485513717311058784880894569734248954573523289372789423416161348450644782505843233136333502526309828800995653295824987268126109802801395447980553107359170318275462085211307760666074836736389197249356003039665109860927682332807287693865002830577223173487270926485929522692458128071867779566186780919654393518416866095083635068617661175450774196522382703954172236454450678114807863756989121148345707867145949318315425071755287586605827796386111596650534633603848093557991011052395029428589846621741726017111386505445024373073058635222680162717034700936109215429969424369263773892747778605849109032997136277478018557979623150774116958300825622889883490265815942287107547124102047295340179106996321213417555321455241794814066569472586414910155089717858349688306037196949383637514352383178594733060469845769626720273880939628142453453629404353803805600413802245021528260768916815130665404077567842313893809158676085833231175231485126163791076677411574717622347167699625475962619981349349863501234411527758199944713714371713603057105463753806088331337052141078765767853677602650356544131529373339629100182882810090618110707828876379917649793971710556356306766106935153239227033052711574266056023501799497352142617396520823204295213090057165076765822382170773804242267134567360142543368853118372012098092338086119205268285225986784733209494553434293204748131990910644945234206287320168540465084734210657240974071413359899924323987773878808033996572090765850282705664441687412889112929888986873648547019701453559175402049946133250771796890999902605449952233852814280930087799556110724993962074430652519961638966408124449641582419571398717689104779820228146437565662225178519819242798340019547502669257633752933965315062040253265672335035622500579428069195874278525332883322359611861216810961338711775811510740301486678074395694740009132199687338411202829425667538727128368909627195130862936595905572865224450240365857560684191594896868411950569222133738859103185250096266793930269873602982611653526864797108744944567428397195204512546447572992639491849958844940282463535759950529051348324820387808798315552606460668902188142660972679959529143917917250794116162415042823331157679993782589046583453259916955387472411159122293289874548048018567721666198059166501477432125536350369304834887131352658323958272203960439964522787759437072896189822497418049723471152378914832781705511801660358732117190767023668633713829619318068405423473696669306261911040214912499285172602319517250460727039144706134389239905227829249484843314616073825882429990407009394735483498395486377052881897692356310029798900505224122696241518863990535125563808847256821600783512428954975849429251981640831629145026617573337398792162389969185134731216399051487085637819109561422306158230101865665692706224243347195747006878151355172278512144873752288494192318370661382545758107954209977910552747303489496530219246681180988877803206394629949857323100646848023893638438084861472024070509612740989771835205217093796597708758494130423597469577285673962943478480913595936080351182549233978519464918532207002644821290513242969961022996630694397927485941949314409506743549781272978003813044703084226630629889007805404157318307817880455463616999090307371089197652327435455325153102637966766002815174695933750264618286190308561839505540079081168774386342515520532581619049849160393172792176881218933786157820248810185201790513910469974921391617803160996104477901602502718664366361185103784433606077202275885435421212696669443334351611476909398940132801846428678620927112692720348406629938848883648951297412856415534803421909106256955570356008762847144447526692305369981936426910418648729151844570500269002759055706720585262797311897370075211025099888510953561509339576166226409014222500014017104342362974320766971433498631038515816658497812711277370026003971672296905357302679837665832453615718091714720139126327254076813619918346644052318686509370358459971046671505927829756554742165963668815020983419175744697071937433316512700526141774101253178149388903468901048742670159894775998421306944070434714782103048329566317405796726756482347856692331730711443863306211360662519821113995647461632425446539445464905623699416663546583982294519048798399087352929176092692678677147967568227826240064341553889572741793615835594588382308925404522679953310869705712953790179860879068602688113490370117758588445152587456513171253833405423905942791653129481367223855829966308031161098522455423719312808037230517671788717672896203797244240336986347076253990867823012829755853976163113025871093302725321743878776021891367957046341202535419871955806994795502849473409258937860052313806777211553769764362807674141038147162823637018173572990567861182089825296139782684598402011488685327433978597461337252792703600186629658453790698175977114548078819217863280286985878785614518043341335216422562970089169339126260921701424522687808425451809328023514509583721296975095887031819185493217838996006826252459979375035230573866433526227439205270232133400759364129360270035030737816962339912699199845970330569549949303891656102862974935121665197981645587180466948940590385399609471114506980608959404574705142529142407768327160518001392629574004165623571741662485812502704704913378023489812298943406367204903715471622777810137770679774837101849334600026340373392470361528340898291493790217210143496153808811180939617548071877574082456610478401623526274498555081602929875880384694943522616396869194569290596588040999787606298909327196677855833673925250952682816118559004142056255321242031623709449048679002151591717626237592193989848122092739250534939864600046785022956764166905144130446714266162081448827311996500447482150295177733220603386408531566742938447691375844204696964430191868719140325663017919016931340858707969335360757805932838455414726612786222509425530136549231501712860139464710281846300790000324392970838082592342460196156020643626146419439219726904332665875569322037190805062173347013637313448732374291316643160604525769367296181697667816216009618227001792872312795129050913025726496998249576655022372059776741623118649180459860077076341441022882443614998840551510225321462188404183301907390895956635681628489662054520870658484984015507071580497621616415367564028125616208480068474168609050776017353093357507157644888555141443376166656073974021254796755920908355643896771885023384184867250574796372977693016503598633140519336110767848443182178976745718392714661686864671213013799185771795773476127111309717707325773716283626287832167004170268976406548242904592360012045512178885660540332671561411851167423358603115785578852893621850309474956890734833934388244700639028526511870383309580984736768301543293935394134690039962707220785211169044507488963268028262733747611937042585165909676743656063927004267679983685177791400782329055301018247645603299618320985768696300580936743920293575482037349342263273613484747963994646032939835073423479035142879633821867934921308384289052624523799431456463472420097475644466021779373231362282735652912944639276478855624572114206720871294716086409858809578784393228042510065036022847797577140994602074708420437967431610672908753326788820152008705907048256497637663794264585873662658489983501651462937560188978984096415843443009732293413823851380936647698317988572100848301453936178657267126776034318248721195096997816668117085427723511649807657691044195029139233377061619364115195543062434697474211999848192960899659474860649219863414640267885989916482121623540643980684107505138500235644264355881716514262452892715946783861201676196887383017987131899015272656468701055117135661777217844020578115557065408805009095307503640172154220304292849286524638723541540137837231299801039193151045648384506804026164040956104852060354235793735381402589371733969212616503335177553863022469770135955376657514573195860455485674555598062354586345219458916505426944168285534412092858460747083883274376546321268739147332807821575579802420838481288915818747474225562265679569696851442236448551522729765202780124918018878152493393447486916117688195756499005749641370758740892534734617490003010941784760731360601217473674530594630680859883443460554793506645028390099508533597215646963613242748779335899365287952969226201773555192148789836742078222733315727453607752781210122498444890727178169463244282202108804529826516502867388298531478052478377390235215331721564640121245787735566345560578316114375202357608107223970727477697417676193238719494606626616512145923456789337586231457406971369496948738980430897720037073289200809603142424427363173454016481556412123931424605371022289127683042679305296047833243087433946022411986389613678695124941758522475850826264302601551527504813453190943318244692179126213503213506128204132769119786416158921079733323490570358000203905698619963560338024774154354524129073461163879317111651856633214346206425868999554766722462603498549923504295340616352362013417366840432021577996901983722743074734551628010474088918873709791869525132185011280164663432069340362176641015991277757713086926255958502776402272873191600604086704263477777767294962267322105542456760260742451739208134625235057255864387296141399271893143637023960099531317131019893221038765167286032546722373424048380885026837321520643904666156159190675630258176932103379456619008678184662345487972125659259627598921522878507921946648634866200915567307514659855726162700273838981655864281420915970907864883176874535294763086402529860802087867183481993105265764335758289520699145188427539935778129478044834110217258137304806650450233069429283544454982046963104386990268129707024424001842011462900071475289850694350704730057184312618029374001495125993566907548297570848319696774194671931137459800012227596493012066705466625930554768551597417918223109664082500586803176615727160382671259459561353285783067280432399542925026301950267670485780143694094430031695812520104652812086178370624481756584427005374485918100812254827756624407067394588742677763167450324450197110589856383545585127800337471884527833783126384408326257636663106814272311217644987706753445976421203684451505975183578453907275144874236085042660623406696001599690390251086058646529609340375347546891405543137474022555772665268240772841634663753320868886655212112860257293408981905055922898801358704627513635408915791891123882521071325995988408230804791365659128568356182109145538099222170939036896114891375010129220140850598974289121021297706362059567908218601452482026217317154111075658304695171842293211852390892596035845435826530586431974209073815247691804069861973835288830646004134260971269838161622227239032588013799785609730280683635607276522289218174149652720388259299176204932468819299770809338917896414333631202055640385322717191585949137174810231650672188107873579443466254254247690369600370905653631486850065900135853541825281001236229313282012037634896875317210091640598334573913342498194226841084398641155601120788491848707233716474007298622482597765479527880690995844715703271448178930592346398062797681485765089318955770116762624096794513454299011309006742577113276192866607435695163695846874016195225050327839327437642094375491070464737882970007253391102443398753399519634933656717271845238697832767654199605679672593696398625146972174151618682653733259686582586738355960250993774743820014223707261198869391536216527454221181460947023516467542234054998648597367447630259898366230036718806608692963583435569900035352508562126436440165516200658786018475477966268503761025317118453972597981590551527314628225783221687616219077042434508159287346545181198278973671438409745664292475216538229055991710385599406292097751075020939268343566774718280982670535098400535571659301691786342041949201096554606771955840782427057655020803322339843552965587351782201263891851819760559936059096500773931091459910016688736964835374399881231290250731001691373960144198334306930077209911189538314830563839800089120372638402997819167965133614942025198721205391861221831858188700299785241799139916729587907846683840924381949563528305967460223395374427326977935390677336715099973169827181746388157850115100696968533086914163956751293103509571704211184201181196927807095711002494932556328501570568796539297080115675450220786862899289176240155884279210364935316218910886851471646401653440473357990250593413221610985906064597570848565748111693267904197977350111145856598495813067125476414168114547595357207829335314195619222774210786639733766074642557344749263140412178354339165884757031966936463626501599441711302565577368822798291604270418660068778286115616945561183292903252572900970242834499118721754867310182162068863478522975307747009762146901625112161269627490194338394394333769540994716594356222054513806924359866761810824937779314001953526884503624641897730674135140083355789406738483959059960990218355204027213751098036272704771866313644950394440443380694020018483007186716481734799378883729294929880495829557737338952944164488087501984899417120482905575196064376833990522371716508384968351929503927264572692776004380960070038957695422009720463842252935590872118470950288341311517308476247080334603765162771102314125072327209306207458951688153350822030065158298949346774540562570684672917514763346297990811403223092364300924353627093853033236567508996196831035471641017288580439657502221589224483178340449784876384193093446407373741003275876568657552732106932969662697352892782783147152312949069088394548365627002673893883442672138239487709587837521316276884729153773889371773330176875918525085170456192412151349177377620333267039855446984213575840840371659330794469712323361130681303708487647567727193731536477231255933693113006405224655422403959385355747545062564381983693539534262640939159990307137194719941256221538871619532790463957935451812037987049449907517434976441010020965123263143523524390937573773512974490102597291758315101055249983438175884384547610980654287567605365488551344864229606353621891867809740928594849933650003577629256648767735911810972546696334373140464734855479085851187999877698618633202951629640622748688029800811362416077321579799894089343758997830667848272315885182169780260456076456946179781742232005841557021200801217953727003088049750941339298163156194119921785084906538409679151280359371999187333250735908960541823011201385391391826167967042214622580272206429872046812816385106239010189299453101635594047699292316557532988617024732275438533879291482368436464520215593357703358325676620139678238999690423541240429192890107220030067918847404780628647573303734815283595811572963149925946978121191154217868002585083265724066505991130929768299881361978948836715287945391866240597392728676593517384988761419566213306430519069959971815236570363467717522850617639066732216742427316760302856907715393249762900074888615758467963680351894412821797950158418934208568018290265383407841469120593771036106780871927332646876044415575861821658566875795632874592985110681576907587189719675506972684966097572752441800707529733568752352817436141589622232622265832658101735077897698789136649151462924062555311350271348527959897119543779950705982511111224433424769012572242503848391773474012195573919670957846840081825942320536739321519957147077688687683772665455354101344420742058765181457333555755707161532896525121029268957303839302227698087081136573155076556374141461045714866964178233086751493111940533652181275228176312224438574211766874859715932914361272021978891807245623996153846133742857068997422796692707259707969654471026982777713885322794508048163877147072108615521864977608777970023630903051408604644615953190276893182338297428821617743986097230066175268003155740541732873670159744661142373906452454873148323875736448364752416632019587966757865838016229730980770572176414176563562085106110269259920933505522617859543468081481023119150505825657201514892662868304771965515058797009031204391067174384295709825101911869972650424451160455885487238859637304343596212881682328481028420858670922160325261298151719091155529243230516115678015875438080220379392887093699935850522372769886711658749148867024377108941899760072281321193926497081527115569998301479862542997163866895738725718994300387596017174305394208487818243395757761676331707152027537523455552468392277597415654413686538035658160432526893658044635377255430591236244579879984416442562914527228185287381354391898740290559355437975696159299607538807977763576735768418963140846643284967108022763577823973350047959241075031357028747118456206549427030821600994767907958307424004569322835978131832245554536624149509971969094426415962421824112753014877845563348113572850522706715716023693712300008466854117387853965214787714955884191161680931347426450868476304329757563177564734091138403544393594054136509159896743502463410156670491866053736380695438984214812917169402980797459868676045023100502240300278710221717137718331224285286210645031826460241618600807604504276326679967428466067121191756182650457325468967212078057744579053626818870222897391021709163838505154738021647339963099982323367570968106044085897106439875593434752765887919544898002755062242458505518689649593901512424560614969173096298039579765574826953812417656092884261452963853078362444899469692246102558423215709413014441950171157226173442281288170909682706892370913095127291612912924176173145756586681160839964893986520424418941827146991937433416072920713535845277646456776668488604574000951310302407417506330322107548012377084291496894539648119071011144045324225983992689141466441594566745120731413303916352712939039385468212158706364942142055798963316582461909876785298350437880976952713592362596011978630723499430496821066436929218102983859753836106132379368307600466291058946590718861205969867560307064591494722915560970153839348248940979649844476434530471988833439029108450401714450726243575745719923306448762584284398859766245682266261634020312833545224537050914048500623581719068767335939694381139744466245981674113552618027015775879490865042298098501114542774365063433847481286469009360923853597757449637780768450772421839259639003947366989345963307986920735637037212765335181046312334780229910451514160887989016327542962491590066318984628146221783785224468669344216945858497878498197624985413143631321998094432506319554148878401562964264292356920601385793574055971512253668468198184616122685458058875156838865964950538704038717246970751111133667131321059758499842064820315197606324294661714897882608974948502158034736443456784448612415599595288164254845887422015335227928420255422686444068362621421396608215900397500693086061660206836794772390616307165423057772489034867508941765687621160056322291350085254688623857678584526180651055162991314911279762146570524822276689806165173675325605305243554251971950914686389005881670973946326952199567625671104478507382514853903098778536506880079952142590296557883354020919439896058934326129740331335167368987420883462149289163966839725814161507253257115109163089172684100149601440107417550182819366180475906770895748736648421143747712370951857922853666448982499771923092195784878549843924446848096228925039132520443912786329871374522337312138931203624660551231074822845278013976650911985869624957812608328740064786443831456122338342216313610985988440685226057418916501676805920470832408543676062018388382221671359759079312215368218579810653409864527934829782736635236799173118461707569144932409956262088625616326447763321603992918802012093330502750980799882215798805936014139150988134809707101966819238785241709019478838869828008069265800254889120609324304184671490366494585254031402467575673342770882489558820357431242210780032999788225739519574622467821204462268246681885893686776555189013722551473883815107091934519856815744870566245494332472854048406057748588273726505567024155425095330742336053506129397443545112044614077771986686838394295554810405679397152729278813806914051048420833479421158305445569445909074532123327347683734794297639300227338545340875737828690341706285597730290912748963533850016984930501106551702134621367183385936502406152566893676677913339882361222996760918926658816926287915060974803037296947727983536113526174907986520356845810377815075996701187097638451913801904447833326005693696013894311270571836379902573793359572885648694713248385838247018105962191346969877099803453662004264172903289799068406011701543043247432927060465035194883209892290313554055814672785806106594218262796095146565906914945196820861232920934491391899487498961587648440545914633689324041862765131202752914035298881888809495233321530963925774690246759566396930790713621743594242496732198520870907347028134637606444187222139388720750323541093455717972911553525569415667986079418198128592158443359576818049386139321627862710940450495981348802960266299488996961585786318656951024869077605357288801923957388497818628687832513727653187556824461248618624499627168874800200664887072112217877105605636920959810976102248754543233208983035221678530858099614452444344590458838837871843129528310280067524238534483691073949859574253097468216849851566870156580449971132954021679098188418564343276056523939023991872254808213850530496075673739367772126006246549167608705339306740598014687793244193950551650672050471985109785550359658401274493782180026395291493752795308698594782272012011009925464419287878539042357142117231119585130512040775723174264756523315905069247604721474472145942009222210467703486108435534124954275533125920327229978658056445560389791949819344825131996349032608499779464787185986960287666088167852898864692068690689667169865848126944154846195947355463531732946689135383925996893233330707672401408992639642843799329506672270108868817173850950667750098330150452079135843728670182437027146758467579202004327591296604839493940919621926284882956337542871518609098621661852159294528060399587275306783561184712620536290288421746652213989221165782551936846813901410945464843199699313062753674333258169790175094598769723484252063391341034009430255370773644333039945723298895935545042098335596658989112630861451228145744241703564861354751470251995713324652401558604925711130805537664499921160671111746095036854623442998878894613959366881371410293304545689332672617845416433289744799100097167500300584141654602773831781869948959127860329126318580225354227621364221982326402522392793582072773904840481924242872370669803682851601028907957049854276582862837000692697838632570443986836756265509606075622763387908488340153251912041588322165350239676036028132636401486215799953978701492817414267115369801465763345740436358461748910304383994904230283970275406346208246888869128712445816548316490001017537140228528413304961516411120367887855111060509800009237869660419165090906021705287097138223468935372362218943222528200055231129098796075747635428362654061545413245609499145840052049867190606793201676740212513449672748986244483983724960933097938864145338932599507121032436616635208910882880729480091466066749588335095277907870620936912960184455403078463162832020838674967959517788457949779900344152833128029710726035502100408834343617882300097533634476667530951435016540454126010078025284112987318488562662154406572729207733523652488284426666225366936716147514946108487122404244615247362290347170328910623154975686789338469374942827867678696689299357166383106157329818481225424640021274165620760386780376715128197263619716994403503750753083853310473125832250707227474448762961729615734141504451482180099867821123340642277795483494881505439406749864323784439984848579779513319572566741541398865932630838044411435861667210903997967677326800365041540588161122581315699679444160493760071045285214617336753757698478283080109650236351139759977505850005232696200468348928634113796242242784849136269805862704394702589140921851491173352296884938342982600597321226291908321501270975148025482995676061293783224718568458984114694434498255733057932886876546709775314059332499231309999184112817536574547868593140465431427926809772857336592139169243384901793688745162959813549649121742565952801055550383768015584914811224024094989028575030988967432056674378396790990971294409394187013841490709670387498184223638696785843486405819894634666338078001394556603205256829836097720831222763685379241030850918808668908086938647118570017825842167011568772050463188426782874903671269891239727605617047941639860249041792259957322460534579735962884968063739739273043807374090366417677611790224855470750381736125811139837494964748514960591484139070511629117108377380210633532064575556702265570287479789377495253896749686840006604697601000103657882041440549180598959873752446156253536374791828543075414559077271317896111951350133007663571200898038204155943627267239260926052670567873231093423601113210457652969114660180887622291795001587980725140099809639289425281795602703089901720404622740329639073935979505901136416419679237909464582814147141880467902559322832631952734366308464355873250353304790062761959562016875443237567873127259784993543529277256750817755320726831356803317815411982876376133645576968836137447459455212554798348836030102347122432733259648061531126879154432199849304529438974177036144008285296530027004582966435886157219176113664243160543375170870732228369855001168269644024068388826421140376588636316252537774157382627862210411773038798508608868705176504490771047428174691654926953528515964600193916042183532786121016005482867847237678979237462979844097893412632507483023362596449372781274241451693590439550442829505324525305729000989892155636606127606128654837767125767205072127366234570568371661893743417300925876368187910987283049368741571915294119179826610043216610680858045729176679592713810271726247278397386032227172018579892887384096585347615664122266295464933221168564693290792214234159338058029616074533095666677586331227143495959012276226725425933701494137607601657628999179454405365892659478494572488400904547022254010625001864445247214888219130857126434081786413706586687278234614017574909665355408260575888341081909867058320560342980138337511628337541405824283727099749840541593766447689667535861669547336830437823605667130224086445395428282519802669056931019720637586805434017651566293528254080155501857439548671470580123085095638742336458186708344143914650361443675487566652556484299703627931137122130467259237364031397366364093839937243296586044170297795613797804776636127124488524699227013924394720444621630350730854138844950211865551312182018240898941294175740571595295097186656336767139866070688765146151697423660259427558770692535369612745337151506871587246213274011149362913540879649147767291658906937683848041952668244765892724938391404689028201982243466481394810593954650791178490852214936958757504220713438224765091839381257665971439917547778905256590388118677922076371944712644003413509644151370099886925995991053461057131064182118093252233924327110205694453796676648307044248491654272828654848190134577869844723230771094669913108238872876709034779062070907467261493176000383205312842602341703161214295454935782491586631217203203543896915359904087570545335145197485688790508163477418679521260888069887543073396750694979761742860517406209950168926124756725236397158351218310322835844179947289112348438741135958166941201450082686812851640819807750374232859908049730040850896532809022287136897068101054539960895519554530501124350769874310085746359871748789154587280925531786608805454701591471576977748511881582487254613881539181920522154508578381323190761809357910226309040075886596829839877870727728299170056373660481001702086888918119502646927248245951270601999859597778564996262290408360332042321819968093054364644432265235915213065402306687336299699267247719421146038252942961300056219286491805413937113704074129495373350578011730948566657044337907858674431711897679013089150609233859013961168130599309651526374982134852879710477307354787202715383192076118303495321664826178338182895347514458582635638479538369745601023379649465540990462822948249425961909502497424961357578581448708165194351456455344927907734711803174588090988014251960784745832905024306093352565975022232314373609242707152036605784451556824321327918904494469966523500164755930202930600261867914109729636280986227301705241202755619650784804709310903153121790105537744748546816886258637014689922462274638678195601540432330845087866756950192350197792105171886821233038241364796329347140845630965936852457926066972244893152442329887307362153106304739356172439697238119227129865307202993447061701053532154643358982860614520185881456359289510946531181041937810728955564558290498269824194261323991046362804664499684343972239889356705154152678772030332906165051631079387873823594919031601121708122989524372267786918192499797285669762458664376461516360288825006597163951245457319900627959294427527827738203573481879156474530748292110545585948743767285117926055327622468513259962778246988659204438253642180214821548519383820352014473154094318532407721043849999938671334928180110081632778586092799932399799919251247299204973957024520633095536353478645953593183315558732649918015223654395430449890324857221930034029316719240653308348049598172496669417475590551805952000346268716744516190398526652381643829062577793287347884667614616131734604693102805864307930732277191455598748870301416491036268789849217094217618222116849869968753540582264826035230019551763009995948792735925107737619877986300192909169480714828490635465553507137300859930926514716354799956983210769715365083847548725371128370010814703546118144100829579332385756906742292561128892789003749944220136445602438370432059903747744776644856540331977267511050487895147001793441600397674389668489061434545981831273946114365450506115604200804385889229502213308527035813556138570444848253623635790948012669655441760590434082550973481915045598313805822778996429514835053565534908601344734502743196269579619634865268459823936392789306653282472331442018925488756407264814447661896059405116934755928039523855746639025050958785092501960480336356492296180229338845850663641811915751033181852065445177863883543104088273046496450950332530833966732199083106595238375849935523693924562751286163075891935585120169237361850754388810645907873330368727703235730272602294980523232593477584837259591378199998360879295013298050120313401796071227801860918998592938865548319944104128502581925878658041689254632656843722290160654356500456748102860592699119921787581541919053543021952936351435263393431130229939627103047258050904366801425854262113372249181812312006547428456345960494463351359377352427072248061535541306500983367956811356246733324661820226866938799186953551998979674239540282817334403291594625120744213349332832814469249602642004967638070273951568701465187046005683279614554531339486466454017117517298380832795728968913913499330329913539974913791636559441523759066309447858236391794304270980921566568985087944479319122731291970905672930366565208354969026987050950864418119223002944919646452096543050850653274798788510551513712457508526577086453720649002557670143343610073523175760846684999512953236384319510643256087743878033738190344454023020102494058651702427217228778720531930019381494969559481680240984883187279891985694620276865882431107617799668643255217678190872016913642265120377469730069201102766500288198160297751450676773254376657573175228388184944777979283738778316295452621472269872920064360189267855381535913773639684177651700275655272896365304455990013515301537319421512348906676045134246041044277277387220463270954874004522484578284963079153739930825270513520602262166732459297037821105875436037373930927035173908098761313342391386961512707801560158447889392237954697045774846646803063358319191048612396899051213563781231511683752365535486380416653488643435639782934692616970499952938495895829620223626014747563419398763637310950558658281572373741614870598058613902214903343547368003340074770276576078441304826798282710005051929946181921890479867900185687287105104269403753070632755216603314155610085025440978849909386483899450018427527961715033505486955306013500004094979225565879592468787337698531542025748094061546337985478657674878236951259181770319096380664310932777719738409247834258139709857988359887464289452192894603911494734986237355656046986937071004556986901408356372831892212849135957120768859238107482950975440309273029226048000159991365167907349998321898991774778196434253710398080135924927177838261456022208607457684814781157085584175129838006032448628226125089233042030945851975258311331477547475065349233637424706327767887862394099388245454770323698641464143363453078347431265420711506138577293969534306948735703990031699911405972617833429347493486564462275048144703164440043582773431906648773573483433982356527339424692981531833639685117741412694095117447305792881424918579728039953825367900270113744232542504032579807641775780482497249986739167352146132326828126907821577471702852977506939064573718731385635450152414777787582711696041203286484598525893567854214287747165969605340726545814217435882842365223939343682922442259626514933708341526139590855864978709998934720782534374541473196381595102091186027274899302821880547085755845455814943306959393531759114367117908548382744953117678093539242846210979247153028596672461738368334946556467617819623742746572518382992202679149381932956972337176925827188238972470217135850186934710936508862812693330742176838301997225430705223356502108514683300425265254183449073441286706405608899693601301154033135777835508317543252002833059048654778371075473652731248611864342316980460089945108122066635287236563629564041698426780478649661503643451336219704834836221375554853101417067123637519931608353083547990859457404490975517673192766935939547815032271365071611047565624344513037584103384089547076594054057305192012310583923115049652857712383891915071819182956451454843021977669286470657204488030683189607247492320948069222182720788518481166179096832700684940246156543935487211160374384425068691302274372341533223054711474136264420513198905041112291792394926118387276662532151411561981424900877981496541351129432413787346342754660375398686700357509308774562406329398721312559306345275456547103286364333147643348065597158946887268280546643741558417267364781437418187501058790608640671306688205865850797159582409307007893405278191363641509094949592619803048825576255562810147191071216875806454322997402137164495356261796361851265934085263959742334287947896519457948904838066974532053213410051931247159354663056343028606558477639887390392389817018475077468879211232980530226467106238118172993334594886197258600495158603368446179431892318582591903054081856397479189386567225948363309538295325913886046220349681942764818145859747010121182411925640577692946040931439867385420120331596016143954140036685003002423765178977243907770695872363548754941347305258374717863844340268233061420836185839051822454788572817078227352277484957164842290191459767459460927248989966114236737866286346111593784807646863174283701708037943926769933889480804723571218660322635867946786292755682597224634047388982545776803137887660977811682258727468966637269025320605951273368211029578781810472220815400376518423728348269343188950010643383879161859210280258964051667204151364105177723558892844316037565965351631176763777989361149170880582033554093611453228434788098647800809514764471282516753339447669151363033768639174031784512070565177543888427884902003250165308478085337894385103087126695362527771297366583802205547329873962461469864619037695862441618836012209353176499686754836573189350846135455373106918802085468576512215584238091125418854525138464718016742437630502245565773420431824622743246084372630219009678727685016296051658214846734939124006071022954825316862340966892758757061654487598588878121950075698185636564917754036857512842761390571570446634533963911520519599681782019127847481326534639217211050735256422088886848807618723500769682075158529432973488195475343260309532034151391512095304588859372608234640870230152064927515870101112749564274393462809923801213353720093039822504351962943358368501869379305865365748834397822113232049948046451534627498078011889448915512387394544952015392783275136868015548379054511005686284932065392930313238002038310656428614514725627716833729669063531623561077102024846312179803100574400899977450442770682700800227755462766734407620077262845252980842609208659947609958007858054676605818953599998169626523902592071669979316017475232030899549985290754739345278408303375435635269834473420921744438583056709243490699503800471564599515197160700980968062408147423201795361890603677071687791981810794625940091624497849707277412183889319001341841596076900515462904034355922521473567406596014416307968256116676574898208728413218629683458094830932364051224173026426009946549131776601642481979866067244243545167796857245397592127257059673138408776612491216292899591550464177424357058361511840805346388748782717035930398054630049636229899287176511356367648253744686167553671977535753172287641990595417909702923386013679259698691117760583497397805942140652305436586194021895117769569286025619179067387336214354428559181395338575282087291591307969013027551413071695121477314103809763234649590816386947300963519669895294991742129608424153653162449046087369821380046586024092331319350065082910389310892910286598215478470154542585818647924471445190737873906684663415136632377907155548836782598659243537284619903333068185638677306924052433493436863788273367238311758857104267325218349588990650817325593309888334351254736332292051204032510784824294728042889212616654307497745697975073912748538844035044945976989859394029779051747367249974480357871644141003107164963632929693886173460338370592658786923280839209672676144072398108384605133717148980097459474494222978027697535847300789740888954916521190215259850099764519347874109241388804266399439170875832389155488403290434245393245568058172941036304877846958905592078938685978809242914486571856286727217084471007321303833555032627353097091994983789235119694287646859292094995933573858679367708846083001366032343179280565441521319437197681622733273437409561468778160896267050547436947418806174039637795760305898892409886884437502120636286842453594947922683660744937859311046730232694479255214086371694466940898583371116407235067005358980184708661396073067264078374521685391931980381969104263962759204667083341540272954664813264961199608170590870948824866235840034725015033226301158560090227315199904092645277585754808148954051321001708126376637218657586687776789106050984993243936314206092298726284814723760279110502286041590688082226017546847818362418355352215880108801853837414710959545331927142612708571829241369018997635092887636305619965273663545235247088783829804330061461930438485663340096121957031455629832744760051323365862797062952549018594963226921476358186482649867450495734029019399278057294495186183891557555929036579891931862242360039070735445891663699884035581841942227252906589478477398016466529717038426984736474380706168749096942200305992575127937814570190317134096623892711676338242275398188239532679274490786730136117278943513797228704766967841152184287179996273773417621439472260074200861398124378354458750347735079868627355217937847476800632936080999502609877550748836887853768224139384903491639289013924834318306831689548819896564682351019758423712888141840784045069957126012053741605000819771360240378272254584880901801105077777529305274390933172842244437544820668989375324737205809652158583156913926595651736485678176384037527628775112383791127364686325867682184663534965129804759167840447502315097105274727688563245699084549338371040157629420599605276188224154626213870465568175303578301017650579263235628714835490863844966473177242474309791148426791215483531470257173845723425593672079897902929602853817920980555089817941459144059875009534359200671177723077571561654936142798996653500701079842902776042951871384730652029319727152072250691807582070970743602723315932901150673510756822598500554422839141219344290750742554279018402239694794905763095798391088824312997843698225789343296468185569609779165366656069468488158048331793076704527461916034886944940779015473604351853160549239299304268703960222808806766316709764210962707899457874457369512653069585233056825054618602500502968496289445081730983016900610870545320898499596367830536803386109421761452227783391895133385406996493135889158404794985804100835439000739261838974779313385945437960530961010504966712405694840387849736383464846238444816548154995441878867591404108209514746520104342225122160740506709726151541105461326355069710587933142904096332276509420103464323154977775052817001117108213050144793031540567188494475048216994515908636550705323039503404543047710964584912643277607472281666022710691417069527772366090064686187639996002650848821032747806232555426027670476387170889369839286519944140267045154932977699705599914820565184147235382203087634862986745103306029944540193829375288408927461651966487759317274028473934197420988323487133978532197810273622360213089948662307132785997876901170671689120527189759728971396665958207646126523066070326156955521837269980570022293564773298032921800019702734310630327728962550842749322127586986576609753645110349786172379726043774222468877218120779425249284889761299893050102701669166487527220759023388132412119183767451858290584638590348228883886711695047453758153342385871033647323085830070946151364504571353861744878928457194901469420222911811757003229971630777219992232718473199376217937059879292219829921199482563703378865911202684729395248750873528237493069357591296554296887105274690597860607622744363410729406014547839110735665260664312312548828871062637843080052728759149825668712191029487853199147446779573886304487137628622558051861762452127746000574481879592924070802342377238878763241157079276208181567689325184065278547150161925460877204203256222745253851108584030174625747356361946877907735164810433139675897752760509903175621672281964865889344444464066045665220410422298511738242946821760525711830661305465679062277112490630138763060982117232062294629823082437837371234341406547479659607247958207866258743937264475975417946714214854760370547026890260812770254709410622931442637905737862553042400382911498714535780593470459836097141565255457771414328230581551692587872224001270518984050036986022884391517318000445900848378026317583567314091568159793418390908875566076875169234793653130833770049537572071295661432183827611699406742536851452108487890331529839405843324994695717448033555177147075859473979380688450477323873443569279597094149669256141456714935665258891086401060684922134240144592779257722115632183880774436704747804429606826519627554011575632231677931956340730228319203248267842075664592297620556425438087984071830654778606681524676470341510166692051166495257123496045939384927275892293983623687944920627116064970582338726382341673586576150907698302460979082967364008802153033583528954016639437716841083710085604574302620573291995585278300767648482215650122541384681208618507686696442667024323447405704066378223509341866185373631653977157845954340769490810338803603972842479201552817786742415171949770360806366624181294761369097523006963948804929342995873598177347357948234643770442667436325038604219742501687514372290830117975546968604143045726542043682090226586942902661081278598326037968298199973339042679313881540502924809667747066362257454446230239384815415692696993315380835754700582607181410503124339443039044367350557832246169696602664552625729705856466879516602950486180250617785082846366716967959440941392913162008802781263328204053232729654344881867808430727682876919779141942412551670197490927768930552958339411258778384318386970315179173519798047866780631367992189072751716383028866511829490657533692526364434320754090382399945088485717108140203715855331217675566286125365178602020115542859494265914174604072091896309214633736278006503017557328337170174360806880118911767662499412934585626214166052775230519957309815516836143010065227131513447931341089446617569749990652929543638179431533282681393621514744295896775576452504744668860764068292024832259872818358234227237828159860910638755673234253526922040103783631350286400;