 n = 100000

 n! =
2824229407960347874293421578024535518477494926091224850578918086542977950901063018098919842730614719778221760614521852378923188666949455146422550098913884010158460429743262984820938630418408502803719043561149635447945264874241520561614189476096850278508695031479978966551195488166735269385915809205683883196439320526269235204458324025467188443772834357614406191173100922576892290853447756014134500619786663925576565820057952307625884388228499119108460906682622912409346407189206760958746326979687803573148358558881640951056119747387654709014639997405253306929732223767422997371631559679243548605582053826794044807186580421706922934941733809769808180353954202598142624539656957978484192290207332112198801382551057636834058181738424708553570525652379485939935986479956587707639141462207903499707327640646668981929703979543469540785795303445017327250087972635834705961017019302184607954193659138342195852545263099850674402846772336982968483914905359041838683175178768675688851426568167304592257135105610348386616801812899366787715129905652232540435869988473788283162112074170415312764929072220541344587137869085377812364920645597108486492162648735928778528893902742884656538543100325372417655060328601708983016758397061938024053275372910954342886774240190252352164831621579642375651579621117086761211618810367989373501912288383213923249559009029968820555082763994999327861447509564265004278434449349658200155468100517646431740914635113006596998768229223138518340556079285552057508902439310169411268864372890959145488047103589930144861190238187489641757486534006101666234254440887579713796033608123485544215479205827909697633890524914843425742995129400614697943398287873960124164578792534005426591609419063069168411255072159977770078501668481051144009855805195738468749807745235877234547843785091892387823441366285248668005904127752012185013795436236871772461503155552880707980853576163548941088261002913856195650001810696766521223645862713771809829203019372198499729402788532672599331581582395652151078235855221922374633624369076035140717662040008873376556012345005457807100186110921601906973799440804881684799585514677944855405913644208787061075971380918976195293166191395248178091859012110467379844950839618244293871868185844325416689783547761460077388112327255198558718298229369960381864597902425925624340589824212531650506380329533151768985682672041350835878962196872183213911006623845864257236570923604195311579611737305252373890159539543922451626465734249674391612869457147067854319037911140262751118696508364576674231540988166768390557010629384970210388061007675729913464730431712261657170120975859480792381660713011523592687359578098109493791532823860615859825896085462488250604712918873652698175510947514376923363786547587902264933770277211393792378538489441701080568936003481506454390871606343497202828668867557125101175562874672891922120740795541084833944691635967302485577020597370421874442095232754282869138945115401025385337159223866481727726621953654613735796132674620351417986572381946705074367665345225351499399756977170900277504912783478909206712694543312655546735759343149051160493856688995614739181118738388244654680556278004792954059854635983240322086175749903617135046634916902220737364842757252022244155217792390935050218279734223203863543349399511809087880664568872901550539101417262283221851008485906702485053983023946130882306426880928132654377752694841559107100173429739740734526373872396376201287644748330237152157546095480629589470648544116635222066494147532336655448783308900326791085113231691307170421045322179276995133806108723243807992956017844876792050082594076327562366962980444145215383998083620986585074360389486235279522273670853344045695550205261762947363136701521115139293326558878394511703603567835018872118355402262354118344886652107798575992954796829694927401521161853687403220883500026307844074182389907350746504245120204272738533224120151107543626495873929730961392308258238924618430026378267900277526073610142404228790225934504474516199554165900563102990640285880247941031382708112337530667070883539638629860156127511258930430210507102210524630196998575802371027324761475366751468446701503950984441275712949196405641575622942894502307845712462680678714368010362466910102418424057499833717426442098849040783869656536548351769114376244766393206403335131517687145840504735174377619016436098330223414375932598384113392707707604984588827877184134595548761285652972690529536182548342033040124327363904309007825188648464524992166293343563395465498459330852888416360269656288583439580113145450113748341976461536896371187019800364809420379298857523260178131818625371694704043556356813333937968738607772754983503195618502146898310862940491920117769122800858117712100904731558975709966240191736590265401295886705777101963844404222055736720196504088904613758269346194291098496257589870959523439930411516577792586243449553874257009300679664681465132502291662401367063842551672013896027283020267392105885416452511385462342529806744801259746685351804298893319449767589686724393095708636879496645170610132275367431171924223099697485906435335097443075238679356429267306812007621557456463298139236352553984474471770614266630362806716179916491413676115858855244970213405703301951855902164331586713782472335426791863951754611788707070481475313399922919229459530935103054379950457871271755787148313127055103613594041132124194726820291871818428118040653889963412568512522282694132045057821379305157595533363595771620101769679733471292056888962757669691544510628944557964612724773925656814326004140509384744013567713677782363035205034420117205230304677411030410670992182418600717987202829341159029591262900574057582017575236217840857194438945344181410174209390212274158350082315079638324815861770197486133263647415301724680083510496474247271310772489737618985461313677798457175471789058007421847266211923671569072193246323239540074587740977705834963152224199147629441186341952027337339771942951840826041664765356807534642210078582311854201047948484081957447656755451436407651749928546737687867410689897566289624161292207751607819812215620599997986050718238012066602380912191462539200006069385453236240639064434263920479752954406211240703795781055128368231132703372848387839136005989252852470704198408841072179924364042405680285087889092097479479662896050154017869823856935398661127392928694060821126767711083686627196445026957424372857312780229530790904881561838654744005005505911098418612432343354897250328504736850859358572148995580569211632059847666404262427173023769700065235277381360428205835058988528584288962355703506119864323777002380722784395413145219772329651935712307886458648179625456621844435879655287033565240313628588704768467065121610850457735244539446304172142462094017351139812938529098306960447298177747428838293068785162868692732926473334269103493508894928071614611691001780380318517971219064850022609588850954306462373543207955762137481138351542666754463055836095043840179848762598318261705622631457558205544292801834732801898108986933416746498797313036991993873458184949169422024171579039166121049822785640704435468444587612669805234111581605290651208509205264648410154689113052321887954882379077865029932291179325938666000380069725317294832484373302120278993627481106935911687518747167125186355995562607395895304448591865891520678857557081731163672296882435564023915475345945907491711015205532555866099132719668770574648630877516047251280101347124855310557463530404392787645900975368082573321390619749740824503875908635337612574466496550782743213098838606476258757234897432641255242190789430197789705536462930879077214278984988228243681851970873643871172569489428665187705893014634534815268182846111319053786155725468403214222036527077078828361195449165561553056389749323886986161193517453317431268571673930412434822192471408634435108843987504115070337614222197840068163357912542769731654295947826348404856909037525487533528661339140881200291730099560308437006835830276129251049149938912923629867306535445986053713294830195315490032457373032066150806433877309990892207876356856503336694029814362828679063116222940537152910390736006811630025602676959487174739831364465726580489024644144028256149109844551809820653649613244670776455241045343836979795464161983072200859354033885050182663294609198545895616945162988132001664808460776173294346433939672714126563144310822571443560234084453461984680022277902981791392529633781124258371652700090771939770367502304944807031008897277712355755458974937503416072012088847937366315142286148361917744237956326646681118914958304512673815823285858947076818792903874576174192825245865616496904886057300983210194773878510104075379146556956947537181721624705253017813531156663956901050679442366243893694297907687917489841047613999087385264073964457916759025866265129444350995308764909118103253020008046177150226387427271625733217270748140393363629139194265790693222122417637617720699592045291202655369197864431915201552213475643469926899524779670614588198205556995059903352863971226337262850135533197367875376552910566565276249965738946715958857859371493420858380564954664894214076483517333034399053883330052386659183640528155957476258365640303579395790456585844452278354689028868386347276527981267134365534348071810683740077983507003116122130103977535143334510876052114100601902462591846589098140032029652526141364937821060720872246725815454509572259701639448930001764698857401387362490094435545211636966929686415183959345441630701653906190032262665857254761268365481441052466872099927921975124210210063245942297763533402612206494851207961689007915558734282944293775952862566556887445453942932513674162671445093125739405708764653352544699360153825853795916774889600474816631216015738269093237579135177326912028382168394737447898453264609488531529267186945587519159227173476218454575554437855130672812616910798585615538150256437642655747816854308774576155405312338190398184369380516075326118236904109782703357774048740820318245252875899229566917820633592782694510529146898919855571762830725407702040069061901425074892252552761365522958632777688729338511846275421414513237862087220159651407969733086898163302015319267519079166332202103295160198426076374826564945151410889552582590044567379566039399721043641759887494576138875565478914635352571943468740480368366998648860524176558847500468265308888806172060983093527281254608505526912349807538460183902108773331453879535329389215987290045453630887395180497654791008371287239536619758706593515397744691612541547935093904317764563589433361868141355309423617130269339690778950570223311871731385095895090337838116889385213659850137854541458000640201941114149165007106224062580511235286432827270880654520976266205095408721766524853050629275700666498200901781444991751462841291771799036066994923136690285025277742693100166874737516239635730908851379296547679947318040254847194687786761437810564813080452873543642843213202697127648326050613084500556483047817207140713792512564921679766062894671615669490471942338945473159978978402006645466016737153498207917225598878353562673385235359473333157249239769441828372101551164345452847140188919348366777178920502253683979716765567239370544670374461448321008430467518863887743494654046065586538248551142630534384895236646130701186489178977585983144587811674401397288849343218692732237657102263005042238615175526055482828230586179183401433141595759098743302452411908165277732596029172239837901146600166092425216278055719553574060711546948043319677076488867042383586622699841785971249533911560267801625696973893992703503861296573507099458533966924613132833553668833070145089009801109474661284142421161029873942009715834307231767037707726691343472730503903802366068028814052255523663014389134723275554285871339009540078534972991864374914689604654228848385410373741176050320132455803149193782678063909887094923093909746946075013851207520473368161020248855830802783220884989736424153522579859967272573835338961834852802614488372307759397788586425316452214565199009636975023868750658337327109094832615525648380238143531447464446496538258551680142693135706736102312221864960097870297526246609828061086782309275280150491090080036812472424578355092851382133120902131702342119394435221897425066979153877511218482045598263465807378891405517252113096331747155662014123622487254942205077512713676946764634177104519593572282442012466137583084442382733012906100523546537989081606436184368032736140846651542464670565281299752746736054673780703160411655167131959696839714701018711961723309379560463953907639524819040175941655420056400673207426306515416023467129857958008290748766425890055722536105787587353845030807159547829202875528031998173070054853505049947839726394027632186082652489645139167722006561238479662885313847927875890094923147885835155952658619998139866303498877986562034125781814165512913383225893036602114292254948704597583015656062646608025227897019253796716549989069344630621834026867098137909573828108538955057595976240587483412615152990376993488740166487949613946455314951467113869821223537960639877950518330431834239176974018596137263190123699496973549521681541649409343014400837422805335630477498024357285654752215358418860782079828331782870199810165101012903562240121128443118565061875313061241816765317698935748045897433029562757320906101885534992868487539207721362676345219810967740032349086042561766158005881595181081448731641870448090054824328214823685047526637490110191898794505048449430148350035753868846151409827978897389297906308399182214531629246282179875937825869031084771599296868832955504078525992093489131532160476687565631982817809207153794633394553962342247092868312952006503519814188732540033922283036684055834043469911439705681583830933903888538197776320951578620446017170481295704507498996667373677615148088028718340170782543271265567933829487781582245089088911081389658610028530441823635077548493055090776187811990556474282779475296141268358546727851682183434269417586573744964445994963741350126506298568455726620279698567406561507483817375722373155205151945423174723720576936695773573700762880865762279096188054670068669443138773522572556256732452164078345378300600821525490257786766390425585178334301993584753485092944693856462962637776670872607851234671124512345373094484826973040857797243743769905182947217648988728412970460292151109634668586214728434473543156893777631326662655094737298984156290868997740873578556026471530144431197866303593881609511620679636525073523354377855760781770569634023208366165660145601123228810310678775283051257180100783552142461101706373768921569263504352439835894219723977572661084462015938810228242000233132266927946508561829889801401346003010304429841023244968751790175039222908314224489448005987536595091124788616239072757709878692922472705752576105421659532590166206156988161656506653693322398375719112945041646350104986452803629161938478264866872844975070741334732863226036768599408167729340329836991197179338090223183625469201268749473787368520830835447452536040861508992693433620866217977352021807171153875834875313072345177210549532048160453691468527743565096546998914744321487432921011427189435482248613415110183098222172090336644431914528352409831667579885215940282436276409143848088325306808966077733758404960184579394933126138098362789452117166388053038514503834387476404318459467522109269584277827064492581243893580784512373141258711820058302020839986724399109974700264885277479763464538443462725747474682531148588944731014944763577946829622888397968525806630976664603429732283999232029103536761355865025241475363591574659194236062501969490486546619818247266087886161605536020362235339170051327407865377692153563337237247767846780942167164335206517280013731535030961748965341100833187387106516299197897918167397929731415536479302339722405638626211907307351351848340549282600320138645190272178870264652106321107589551424043924461036261076559409903232851833985218902728386172017520107700210507256963732422225502933389397788030780256136797068820402276450961119650746116596202465525846409381916751406426883077609243576737645837316561485667023581953080774631528784399689030769116587159148647845213670727011754216163220192616257003878967550534415339722813910484105008640023769938277986164515497836974335778900631610634284168893602817633979147137305639979891750514892513632920323445994596484715440800935644980711091582860907049797652353153230175230881055987435186635687297037522337162301228813296711899382683879088852910770293886170779055599410729208681705261709910963189901373994802090472443961378937201932901977716614095022245178513291111816113689125740337445571352119284052305452703959232057281852024236406736710248645628522417669941877368654088896426457028301867470677746424511731799137874024263515880640853718924759604412782918719143180237935233651408509420005816995781664574920735585335777881453285921121313020514274260510662535683565061599266465065109007625935924490500458624393543830767878587996185893867318218513989940044828935934930459498500852668643944215313961888141230484862236299837299134589710103652585779199969505165165110073762155926553027587310889784554162565584127351088589496090824024457496061713993641685634463165025398937135446485997203274704619191233405742552734354820934504414096419498257114954634444435075166425059648018644193073706878998679734207959334903508792799646914108817538575967947170778070712377532351151699996588400454939702329334244064641821912254202078130538300609183023660373484221819184842989950942982278968876243678885002094725734527113753595247536588668223011980227438440719518056994685255162345899918707525230516471004559697470903502987388120592291713000551160887271906274148695054187587942571401617690089302030554769712840519979409238702578902339833499992285598772928937248842742786134606970415856117050544110132187071068085922888791487694217267422374140119567252908237070514672961757872166941904439270779280247379365679946742643658815323815093667651672468838707204041982043419599513636934994555990577242623548328010773030058062084860516537709200070189205676916905475986654030580913622803953787779771349053640983205588431606862173637132868762902136170984327686714015352186081903931049025129415008839006201563618984834533374933478997489383276974876852239604197209564327652084749046388551416084661883696547432457163753395356959582008376392527170419074433198922399103913091041856711686565902579054778746971378431463335306539959677682031834914204745324506749841194768262146131654862798300819855861527320848205679708492754330231323632331417147124299155249876068755814536551450316945471772191753325108374733206292549794140726632927216793448411560803839125346782558278821592808117230251829890464173602099802092932929418153397891207196416420223389148610671408255936511593108027027611893872813974380014178664348370130927964407286453796552149347825376843297694087061538594730447949800026592993682625863137905819715181534521165266532632095170731208390804888373952615437766657501127395809079373971654179561762329090718345969775453952048716458348055100289513630734818729471558928489441368434066948820194060086996749834927087709664943441418059756308670309380830913008199626865584984045455498679609384622497177792750445606590560178462701799836788057084248875319095470373565839218058731511287850627359936798455694778681173280743558197475818950136375084664256947002123736424566939260788397728278809660609721353132195902196322258743535003206078912669683440431343986760235694640019774988393613834347310569295275709926499130769918085265877045095590938767356799811998941491834592381098137771724147160606145613820761938296816034838020391015326124640816648058895292025925796799408581217862359163158941503733347245186457842761667492353079332422517342067856735817963935369568212590144707709872829548812847197762535943612277065502498874307708898119655778848345602241071230447510744514580669547046263046691252328228945646136984598317371077472213350583646883996408522066437268809022324763266601178141659508692096365705947962470652167407062069602513878847668770237459378954114082642622488521315270629688356863737934335295583660707355274962634410277503428508505410963482207914954324988725199353672423614677514994694836580120872192228996372627031704425780378447140148300485709057615977318559537469297539012451054818751470539851506603940930902810624139521752295992674829450072986632479267657966705263794576819244532086718439645386143708881982297949259446896261447645031305760714727586413792758878919235650132980604081197013407107266819250107347778289255879566740136007644664846354138188260401591273685388017184224017839917946115587630682356226360139976541542765538046899498596355614839959680914914976921924667606161422896578101090749575237280741018709913610265605201189854285843214081906578442783880550959505294097683587116587512533409727018361453677265006743275158731782572591776128512890233148149299795654336568818334591465997170660834353068906811520615933767877366867657002031620034416757628012735774529551357571968499380629169150321013459360336211818912499921789334457590833814337389311377521226036124971907652584981421549716028347538062346777612660436504362572361484478717621428854362806372498915529831780548944755290635417486279098453902999277340744689356425043402542533569457886202926422962983629623056898595547016697968250528038878853523157049599113628632868736783154118440135363007238545088971295465239835489446067398798078180289482810733700474193198336403489059534908044328939602728436802475054742536642930400789428384297832200826171731420012804212546999289429593502607666243613172774759274769016302882847782786597376538961108793936098167207364135932081170352151225693369475160260414490598641614833798316617034586995217350606509711024559628130060923410190723608311449959816962388260598079064078133836087275013765752461035425245324047630117552922120037172729726674233992814194977185209994069133209141404106149139652310127235067403285158727989601369281354743926696833127632932242579433767050223996546818829425646641770382174675409557968506502359990414510625844913565955291303847143665661899595882761280404221042517057427727661736396552625761043317087776968094461170972935784330224846615365976588420670111350030434292695319606060788066970465179862702305778756279879854332092529748497374756586053643750227376622101501630827136307899035788913967750068186909762319102472681582491348314340132453487125064877823509795899551555052939229577501264832271777624790704363883912015630377786665821471941173520381175247782733136310880211929169989704539424900560785675320677361655751494554146049166437868877057667465267511332427747798282138156292135219935258678440895345321551941366008323707875096549884030939297790698859016250813143257353739905646176299958210255033989056496248169861746990092677122872173459614194674781489266552459775236003291885595914525561707564179474412306917101000701263079114849616720628217129070797512286618116612994887519014804395444782883465115215820961336910805971174229776499953288431538052914091365375951886864717573981055442579159231244586385419288913784212507754284862983825838067822117578148770529087506747465885059327675164532980450772247071458305911473592212791776351982078012702097024075045990639813066790165887332830526790589530767117606394972660618185347562980681894116754724890994371051062670676563832083104333079984467721477856015335316999887750633425221044621960916124301472739835671565086918427533465658225554148215810420131879568672569581904618941063667248720828847864639790915302715005381767566904018228493909027589270726700514684358629584299826725389652086516914371394059946240996647967435197249768089456552159598331653384843814365653247623613848206067484015673493520258301064846782472803785785760498004289302650946950486705486940832526497081026808575362063041760864423070002121275272120261164739141601511533207735815456314790703144244426772719828725573338377576450486472498480929043107033723009668130057009726145834781607903487657138731191374433243261724774195251085952794685925079050462287612435847143282598228834660958906799629321134433010268170992914570457077186846155320055928320694878434316122797572904657129852387947902466431667385297888487519600534999826959498786497884142709248337629236019821620123645670441627721520989630474849861753405935195062897535136204773491211489144080759203982600412647543614078714467784665081944713581661325316071595258972803843166962296429448408665446418467137014250339928769580488787856004583047278931308781231437261494988576852881397953907643076311132167760940910038882724658113928931882722979760086897505668071241858118059068776334804844651363031719259198778990530984425311321430785842331793271553710890446781292966448368671636325771087825738099268528079763454645199111264551658753386289302024552481183952860261353024100901769556166522070426426986568199471621373193244801186259849627048374134481711110716803006692256676075273354936487520844700592084277590095828547568524008736184774146101792605025009287894584487520795132856041150382833273719165857991964346385583040007579695133910551710628403011336153501231781365462968627817729949196138696890338839006071334236413182893030112532620344745623127933101750257138122016232938061612095604014326049367957009130784202906875453409420190998378046751768380547506780167208584059726510582641338954282659356096078366180027239967155437373410509083847175163724641811221576737475694487270282002895838043020639908745042558815700711554212837765535911482194810374068389680300392350552664999616310689068020852077685866881511401180197530377765830042923543592148322320608918086698661503209191170250908093321057618350447238048542412673478437869128761780567703915641432128120472208224159166338814779437096567221200258532468578357776336150216337708942208239698761888318180050713918638075435192150328820459207917402967149436195125249025213656651604014967536489945389423096304441729078545969827088653647961313968586730141235796241688629977385111265971919857384882185917544692262903707427371929081550431193294257307562513218724235000145125402935957705601480754671320755689160816131805486689728484443191318648625447938226748758221713414293967954637782213918539627560761021164960530545978587977728327819367275440635171804173440447311264770721006098870204981890990036075265876784822935770113718825642961524308172642729058925003992272428420825271651036345380593020277725426731537429802037652016919875737302589605897509045906275803135991814115292622629132729647002487052510883710399429438420418742234184088660353366716648341902831682990572339485310371203430251646239771256630239507727303765268469590702360216190802769931734169828316976006379554321234040894405771415464209951693030393499231934858923987516796777079434689536248223390393526257608221864273278543323101566805322250027973036750933365568497576960636198237487150270582768652498976119116664372908473035127642604620448166716106362120951112982134103586037656633926804400577081347420132187094096626846838997899918177768818870085571296695853905883496289213479452506819458775460586096436797156329807153272402298652499796166715425300078294113226601177502331416578860036023285127675207543848662708578937978430496507654923804874113544583776167292517682818644724627653723360523730302395795583878075138351873758664633065565917771505654790573464407986278584637751525109491103746140018679636685345021647992479451452784674786880362159906777214574044726114757237362645103216207224959106229412022485298299255775718042986627334456094062443054587602037364412504870325195915411767232242950002341946907242958760669556786637415226866588611258271986667567104231309234660082060244581837521157439062852888669302822413245894966918403027693868287818248363690982882737329212654346047196155963048402260843501192265149023052894968972743597997260021840104949900313240276264806176698620655913614707234843045166903209418511241028110695926286490237758165426123139714015538588316261164856584600396764960189420621395338601441971810582800794970331312367161675895089622305619307469349640242884218581204471150481659131885276792160202395690335618972164169852349748260718294626153774663402444027449379272540944796389960313255370480387460619669054352535927956084540151220150063679439141689366915219195009831923880950283546396874956583473622303239911238769314620802031749477956659379294463038925237428052140946831094786499239373722452829904083270848196074746765706082663982869692200134067821157100873044828826371863571164608710990115252007864441205029889019423921697000121747034036511332961206311836090289576228473600042980567466207519235803010352629308113771232708720349373337750738149461238368136026482199866838024578065301844756563644025596333206813729832461699983660071326581038703205734465652980267846448161122378963066629044148575215083056498115238851995345279327478255738433607756219060985335234533039342805766075719539562590572940425790929089437142484004951352433525491732273643846607295952940449101216600592573031985083847909820719476128847187013558957082159698883685148782238084592460922584100735344031418035476491227435710355760424359035782619138137672591658985491836409460470101721271994737564984973191920185347335764736773007643714928229101346376849994764144770517736985253173680454604176321597727981445344771243611505371461501797048548581022022068909896086551775534012238227861496927421923223308135614751761105934311524868897710583690879876384962784191422069720982863658448458896264129622345879684045846935084856440098930280611707865691818053703585944415477062188414507129522676219314058794275087375118530612966465750844046275655715355968755119257972958309491573463044421441468620687884306783335110676081356880323309629204869885459607947980309210858205290478680333114389106486222781516833560072742697106658989227927200394611012955725361592246161671064808327436202970558481298480206735035252965768785747066361494941203632476268555608432148416008195680897365920768991982732849857973312246044342051913868792655477430919761932593805807043523735606449198831180420129509398328296912611302861222067832347468629755539840289286931270715015929768732658457794238561261869068394709196697284003203607037383427878760488029166257489467185821003214345169047098742420654338226228947390867574587387280115729816983481150067186617110883225593476569033635694312333826283703724693928111171718347200981548348524809513621759333556937813462708564471433719731542262632833470820162069106598967804391262641795424997088732736249551789846815350055623038266785314922007827149658001931033758921117034186661082202767265180410835542401420431770108854724349824928465941077065500006196086326189569486618436199100805475449056125738190135355521216914581556793739227173541238883981356405578367058674358374304953944741067795317921086030499134860396269008617083479527214920012648730561201786665299289006575877329532043093394710999245987190043473859577170669579460725885554001675591788702309075747369174248520015791603530854890812254557660887149571203391897999124191474415240355764014985728016197305384975818569675249887743932024186525948638853097542955581586818340034547822741721960581297832173194365877795323546218696339646516756350366401330032160555657242743426877146484751366049942192519730789044487034515080850374350037103637884862631946244951771198401831987927738025778085700247229546483765934636939314522090859049066109602213586700958958468933641523710200420481626839333496152971919060925846341588299271577065932383989653805786074878729014763778369971259921209351489504431891826906026769473502852795129725982453769137042971436358815205062623035077572532246204793093639746033116465415300712121131401299474594106627907223189795793789314499423419395931827204010843950235120384748464255432720160748788721617241867194422054701512944797145896697117002838652935801040213261844074221318016330527603123214818927642100052590335122051853120539441549839732051567400575780750320641291099610772533433946974686215640255654974105988521600723083202876257711874249774809917914352387007033882798901463611540199164274205646642895700483028904974083274066707752739987214575267099645870233520275011594557788566280351214630490393031442792433539067158250939344698961121379529425657110561356744049167286177688049150550647438064669924289399861137455461811710236505505710427424538027719774447138693067519669322272093299121207350094896769464115401856710341034121897809235849295750140185354342095210106231709739765352127343997044038301062456087605332825671010295340250944318982475629321924395993007331398751658774905111338624797264415347207339176372107802983688022311437982826109820331969075660292015721136818686485017968262312162205286809890487204806008978124316406923522839989482907580875375034327326220622070174039012056372236606425069644775616883315456387100042222774661874734886781284083429692662852315766460592226577182643419791919907878018707975681056732582236333751172476746596314006182428071173052309608597452084715069007238061033420755310899520151932118545133360357904874019392763337263358087414409172390050089648425975199450949199549013087399263006914412396486895603564043289371585322188210445251462081562071965897399511013493067500441171931005260471293168415106140566651339530292020022431822312532281927888537132575154432921067551094886537436189071511597452805235248047054346396077364703784665711014410359188224771838880784921266529792956869038904741661499649014288885468759976863155264002445803425655480840680449375135966088131860966822988119633984275007029846206296425005494800110926144655910220561552961292257628794051721008577623956391027637894089429915100671166482367532600960661669603669481545953197642656379394217154915955784811503117531462845067826199759774359004259731330663469187471690332103678774567244244619895803276124634354714913117347190160213636336458602674459848725392286279703210421653930857713132943125148684386568285184642967384499751661687101209844660254460590288541639447646501607516830486253414787363718840403448853697150072058573530346704998789433661027242023193450392569650355779007598644106212887307102617746841294468411255591552132685490934053963513751651052748527365174813895984092008454384578339536688105179419010178558779121351859103464476186033418315385113900608129366782678867379909236978322100891276054622631585771163003584066029156176152786993565008772994309971039827076788596119837748466839315788679145509350562016280631176146453590478206815681711395514731225070278835298483589247518942009969460243085620080721029594644012085418599679231319733243608065494101600373906147493773618322697144823781177026573593533001095714112740092845745204671506998763292229719120797848794868525100378038932450464929700703230698240509433232644083783863023467832097610743478650050814374272273831238286880501763175258064964659868790058315250307917379030519600182449704009110143527662768307364985225644772140526253181431803860360933302169165420441108935485330180262374613014805033879294096838610878391968329609371126901998036674976816317457753861425514831969283003625596944218077369619481965644412697058111895933381244135475220646984336696067501126133577660162380397089471921959648244687461344754172441628614621013456168716990240058989359329829884082368928905169928148752575114542627293291026038715893773784499716199177204777067217242982474352062984192824130581631677337495699910500380296233096127875099011821362353273267982735349027802334536428169419825778212316198546299556523349162109745107965679657716948753353536057089277144621720098559423973002043089656277385513882731787698946082856227600286645954101497151347502689641660559684690290539664165041470736282537264602917102907580497047219259872862874130449487321978566814781808044888127625101952032795394292002478461956814705838869402724306042850455344740343729374587086063780877206002371319341883474092045880056158820732189729360367619922119682569199079927887218175657290120234332971789971063886778219765352604616734517940748097424405837630288159486707552191173389038753437573127647521737179641981405049757112379260535838713366537603167944898324721533370733495749427568670256776368980631827798913940260325651085919598515522685627557342526676953418228372219999557647268424713461968108765661760417602738578319003967730308412227865198882972648436125870114914808177653513909390118039006778785685466499109491035420795343311918896374573470062669456868720470491634913193675340422846556444979383454839805860730534445772994230389617720461517272457943013282584822507160624894387697857541958397698544511615711891704740684591301953024019797822706967034438728250711799916584026167871531436266861285188360329925604890067212737214921875089162488199806112416854529846801822715557518722086455727863569335971555783839971669645653063141754868368842551694300094663996034773157214562264661294618364002868271058832253756079502865340071037691587961817560365135351927593701625767159854929060242551539140660127149561452128395279923802603901104077639871473994560631820493952597367083935769693690170424099858069658265255716869203264645512551735140810205042238091524652260113989741256882400710372440847015041159505657482674699450833206428676171607093154042864113372453025848064188918774668385943995684110310687281135559218805092902931417445735516341729181136330494830805652058118532425847625243527718565560903708197267604821216206876610089895897983098062530524779258837363960225440058446381385086019404915576390828415148022302307528152174716244308399695804374045961671603123942308965418639947006225934579857244076282917640236651025664073315607592121520291004996266392770492901695440315781134523294027046028688616208725946753120271474446803533220478878219577314471216348758499054522759013805620753382860079360987704113757762556298376887206596835622566750599342507897147955929841369431455821117160493459657983271356848486111638303220258170639021114428059079798000420026683796873067126606520870663050367571961972214704017199032771187582134671276252263681696436745598572318142985962740048399605224361168219984977038358641350325737419574664113872009658087973955619515528169625900294634413804140333067797462638329783934246035788595995349373699576893936568752476326630138642378688708430402656599066282644553813022449860446759241888993315571706351084245700256063321032977506457721473557220188572872468391743722204292357468069074652966717209675645744588078785702441246318380802332742754993511470322451573567006232413819777778944594180960151320772028892680591117303716858425037660688683090167564262052058238480070483407426921376400220840132245786143878104560731237320745157928318869175493650494325785864357560304913288045744220466492104708084337828330721278085932050740830293940212629176541055042192763406193088699975766928173658351750179748134533089856805359606570098257236420544933717467984120657438793717004614638088882336855803727283145350230431496894812521490865467832253118261851056425616943967121607808260156528264003705407827543504863213009348971668977488926002191510213514381095737803298129138224105972732175157321875085804555192407203136431470613928202151371808026574701066200414917459772256475126421112665315430327130283332824006179374572019929849668500035251657756204924933527914153245253908517285348552175199073984837738052698673176400244692957016806477436576014601586486441430757406586540087023096525658353306219801174770653971590250255478905796553688435162416003183705860439104438293186404503999546975258844402553173982124635290783759924508646506588403447726219684815089036824476014050749555136077385535740876074455279648955135958329073885398257155351815281580672657270699652929134482652549358124694425656461851178238347827935611202623274499696082442988901236668878503078687904614224432694859865810906092934937814119732527550082215438924809239899872644376939582570459519420157603277319304556095873327742586986996602612289078778484963615537826214333190061671018053077182778751567338459008703393854465806256419310125212154499913905436380307975037704646671062445633142514710888458051797298357295725308419533443088524373738530659775827706735446939355941723960795749771381142860276372572901555592128371061906487740741640306341240860685486589655088486562475463877057425263126413820355502747199947781498146486571403825689583180772244696499268683760692201158513412893645180187217653463433054693216472687523167696142172898059863564769577361618406149816827992587866186813563572559601656771389307274074837000618134707903557510133361048966865050713873807111424863985427920289444512478863021766922348179969446152693236491406954721854367508560176544267696898722616314792920707053695200065027660652798241707658671647231168166867399285979931791372372774094396145590440478293794448852627858805772709490132107729132409206528892609002582372507828043364020688220094053227813698796735331231612679249345538423796051411496291674062428253611302151978491315764860040277017807894619826773327974250357176687136168576021433878244751834606603715963402420714645774861949248998703749473331816484580134620405847046737536071685941644292325579645284532042991329554499756542999232649056386585449691879536371864180549154315292539069884684333781663161198438959269679325505177841642910817420276836429487679399588584538184950023015399604108949233404382757483899896277410674378834100205637024586736117814199536758337003288578163862261577676755694447162991729438522693523294332930635680373227778590971548786647192262269167740636959870951562077535471430194747510109355203740248320377049582223701740204838217369063360945885803215505122784166776283738017861872365608320313983155542992087898253144614267429995992545843560369610392875805399419344525504689532578048998684318442525534266891290102582979960590517974478360146841519966536814437822779748458457185367323568823524009974729535289998222224011463067187528179255213282573785505913748263532384900083577742596348196969999046359562222672101193881993906956639681453829049865487107844241114008652518660119339928484469734544529679920178994636086667375424894817473849856445928053939236615444096700411629992547808786678627342142053595117178063470391617181446121506457354247698109106412401242474862578232616043771304366104181943713012137284551814007392869431939588901169982730790832224557414639029252273554198929942429076120165465378768275142492810883732299002221845019886787273851854320298229130352449201846059350202287981602925698071908984303266398334676347567289843623053966729272939081427514186668549803531236120954037165117888480815742083765207352532418927003854804473906979591564474787983716661222255195053006446499503106112917200007999259613236946386401304940693388924217604551290430985111817636775560879030278512019155299239690685197013075043495325561266615518247392931515122363937279095635479396667965408873979664291628395040688609893396167848734795893340386797742187541126523613068481126102399244091392361867016776560988491063249332926907762398881886791230819599781764032657456371936490639258553970115239615580433131642623820331246946094109218216867521464595076349651182049729912602050915989943745572329786502046502905281808458431247747377192783149487368779528844116653384416521561789809883169110492260546785234751329201507560230650525983942029915785410353778203461675074234070723930106357605286230261230756715011014474417829940790204157695039322140364834555689076445341564149597147419095613439723875286038426177319801282782959937297211645854480068115907729383984705674816784581185218286665743307448524317090420511816882938010649153548540337308436481609969246496208481279143586580084863513773823513662146335212574898276403859390040292540377455918401588423191521710269725438045388922765259133103550200378535955536600264529786625284557505479884864820168058624417780767573642540574398549555557097320739921494940804724993338406541874990340796676983200305543619307718056048360059319724227524783045868080949955984481259853891984394243742792096011099173229281913321056587071319889573058141592433569387718107315789580134118657727483182220761797436762237599075713936739241355376166585711098264580582827892674844613224574098429363802759594845863811849034549031400070828148743634500454295493358788724987005818528610941792866610335877973155834835041357698597754610624172445165629016982593115713457017303164196320303668947864282956296912108563862886484673878642347330268463624869093661593383483931626548387788099499240832639141565429977932593589152657602698418279137185642905355810477394366290400440085712512916544663755193919095714909581655313149890329616490308750680772240629647916986356102786812559108455103708016934948904884614761844996549930636500017532259499191154016314667967754404708325638422923303229492056675154687976754899700856301119961220792287292980133348668058282175437206618178241235910948366821492386490014620345942517965851902762117005548372579493956899694469797306674060306684045826164129653617680675062801551373980108723156776198904870842115346514944416818668486911155017092500028702865901630608364666565378617656263910804356998412125024943744088306039994658629075848855504488495245908894967745020946191130218799541221822631323762952942510226767024251089141702469265995337501297087895702154909921716001412470011625331806521081560703312289893063734641033566936161156679696259072214691497035997468924644641411019483626371857225475671191392399678202051965036258517447188778690505930956946846605430414913472935669680980161198463180748146288883270778581591114391938853954340631231226535167736560812681922274698492296105400815904808107214589872358991290478986226410475890897997439557836326606404949931147351757390556412256260391718970722743982288952863657021293635547922286061949742799779938792842368589844877763264760201327361850344824444020780999590835859822934374445530946163697699889948270772552664627748388466031514670351982816300408261857384655414375021117993942338079610757032560092336228343792632941886208846670097200550005544728197369543074425899194882607288764370299178834626473211777339190565073138631910912909341105699614255139959149473817147412710965215002079385911984887727359197865223995234683609443396258064175083107979007621569771740057196364061413588939694685472008207030712779974850478438339326691421373662320288500634468076510237107304342134686786587617750202448417729586106860185134162648958436346306189553240096097471262986475981160445699408956605645892828427627575303439891679811289681384122900313123710291590715325948500294142775978079767180675043792767211661882964654189769507172539821284860865695694209571786325042856317524702977170278699903615958036195097249913063463822293104246971404203024668629891549294844449439863244856897877775706019977039478366893363596424078993559697408542956519550438607071935198104275559147086485364633853703425134032671027180830323792501859573026900845708442246119049979205981763268859601026914108031117822326251929305833657906014386992556946487021208917536437248810419968856546757528116096569722059122449857078471545134309444200009126265656907617442483153352015644596730581491617613521159968194311014206571514161172569001236695562572206196655126649143569805414990518236354254271101834427509895379281748379968983654437329388364117657926449543989077082151110534315680671099630374646072960997750333765796821987435153141888340905327511155811217325816501749928426976315510181001195057374542539203147693230581489987080752140596596049587587325871181131651642650090600022102973457083040894646836136560097837033210659738485698240371319120373584894345911362463167783788682247777802766561321551754139315573888466128145288678486229489578928383324208225485010545270319297523551494809420802372688564528718941067235151599011340023843045037399082214008583877992489758619988666207752531279706708463813518372690330402631170995071605260827598199247529529085062981497635053475550554293343270334460577638050326790318740017424784753268896210233683630258594365894183646507381133428642530960643496885000854360250218033472924502586486613540378263253927117311764547974680923573486688865382347428106407153361644891083148698752749068214569515198767768316893784230688296124916120289050064068380238326840782057886940258843411792003985542860037051284373883947882523683293046460684336035283069949264226377309563599106423506241865188629716532098818136606557284850966667505317548039426541985980366156622862623311852974634933846204504923571370935456259507353726814869549014246396419211237693687224629774450295284630232708715789247042453300691685803161128535671392860492487913974087258217820386611947011254388725871222726192154386547231784255639736517993389546102051235969485565624611736888398340506727718836593430403070688850376552786618544886358111416880142700673034712347189947459835393074376963081055006089736414789865666383243533979204612430388177209054764418283809749183609260025463443185773521535230256957465477734059859194959894253356778785394566357763936443416632332984052815802761598032701620596523784722677487566187954864648716148173083222335726115848436892881965283038569026243638439157214671158845527866328704966553771832505298463301852175808873922396420662611824346096523482717178397402704657159559482407811402970620883541175928779046164249241058462501267572680651954102016366602433935889439735370973814261936382347229420310114619218956677192175878802120841758563712125126114073148476506364093851022199191986981321647594221606099361968012595547018059586548404071392171456494670235706757906655757221386645310314264041222543055403546519334722065453677073238209915396904433205524256418837090401944308536760904677482832938819176543806411543034850413156254611383805645306509588813933761136879377517752417662504209024959969741404462304291379892587230993011113247703430157744956895922519494612723865310609909439632794368956141987691765071201725763149746069239080659379577201375668071803999523207921799232970519182567342290629781792498621145468279899876752853935815835951228114934384492739100546146579963102377944764474537337712727216520916077611934829957094210828815675354081872350271641643501261770556051241278357782925349899132724006707783384289282288554315079849417088365890634052483304037287740549351843077705822716218160074058761371155701343850266691208806913485280707679984116009491589954403800468537168117220865369960347567600055513811765799966408180440370027224314756487996358224846994644152648626714597738897073711920125675736878550019331473861031775884561306521626395700801235143419394366715694729755833611869711971022541973473402467201830953289294592680796011641242066613084564114923027464284530677568411129379128503976034253640821545850193442252315561416833349341015752872280530146587650020379212973712879245227581898558953059495191629959880074776740693053143852414868473868483688411852499048581631857815701748873564876066732587919268306015959756589422375493441687483348015304160208135204332465971073352897171315326157741965617217980668592988702148307869490962912360162639209939701332097387593223321194846315608202231547562480685387306600537305769907045038626550619772714435673475502173011919795878565012281578456551068845262686664161920705551442756077767992560330330761461439734941689738718164093901130248109906881676297782272102939767641811637361168444501992071433417744529467848791618658037231558125268940113083704695389288069280940461995806362839647073234243175968768670201271140551611901109105404054595872161580747474772944268664172251429874191555624058315881671482267764272364974414183612456351700067101260908674887423733398351132315388163946497634983286188638827906878012644479121423136577357007203126915371772669633334470734346295739513470669688254580293401880864291523634485370686904553316061607726055997302561521843343660683518004164220288386037777871291672444416835205394720788818765777269191456555237676956376408876375581576767391463230729487029807835130373026071110210654447497445057301921346548149183343560334769239153715851426755203430156500687870815905078989102693962680741109471748338256119677282215302687271837189805513333295932061917856810586050592426777614910508136101446320005765819939400985646465304274296596474013046301906691560262631100274563743199360401258717707322416038478213520641562386421671339173781603236754628419741822030106988144562395187884915854594567796459476789453306640356878852331105359396939643843800814371915634110580942281338677925989458691054762589971090597042821754541782646296771905655853835863350417630704265132274788958056131653372612956278048186892375421452551868478042613177380685962220393506228368077628324454032047421770929829338596618530213729917873107602727621841299745788919503196243317844173085948711917458541234147857238520316574356483973175716367547241571499991687683255133517883120714283129039707996337293330159830539771891852276412398446094515342871492499282686031337916962734880519208971617601118161923627874018959179184284122372011525962827242980258854621823334471605737051107468027837064429690930752883242183552236188033496385900579460594532069519805492708772921011748901330543632596921721497436869544801348383813137845501217876621228769780159521515018467692755635537219162789753497639714078098364815625551188059229902718419308969757361690569738450467555733542528254915093417094576452700279427503734538734001594328439600775558660906253402478476655993853809816153002970934543284124156658849655567937473935427898468844981971196450992024329098823124583325531731827429231302543466827314411057666658009635133767568741133427837689840220135470079567778379958561567847275007968188213145272182774543476881069273835619463469784422503077882287180407022177601809918938382960141687407028036216860594995116156882831665103549485843500711515308972391771694529643687070565757256932084189086873458568374291716208544242646046472764881193605508422097194364992028293049601177916115441957101040555137902182480204886022374734217387679722740294687925942590548095854308345712178790237038991837457029792882435361463201980530796248492133262910079006987953250495590015487769887979322929872544755512288743465378306574317384237024767175367621082599360278899769975275450621147831724565451522857605070321895693458789055930106669513382345832419635439380927539156822976687913420096913107411226974507100433542464055012913390181815042362136395324175918414832261394232257608093136741612142022807240387549570622849698839307909878565937165476725307016373223169120396004890499511352653023230955867718136209500176640361311967330098182709034424662240373087405827656025228348303735628028698089984443051542339015574186066609892118413864474425050931696554183227863628250438210365111465283576886365751392257684706645458643217587069998321401463050887315531635469080905248518723874540811758578224223508310170307881044678027650399779130797197750504728049570959232457245605082844215998217847305908156540527958675674646192692267176985835963445151256548631229282660177295603247010117934945679124488439916537184758419424707682680447004583119558241443434054947047059394170078198794495526943111898470993941066536815385041779983211337730185027808207857070417098492390551522771494157519226839891626440065260646262665356686099725144948313185602147635675848514347546742312364419275247240086281553977715200257803307715542409485662306272054196842210545747760213521990473021159783874892693341408402625767843652107003593565141858228543474413189800029409490460019823122042367656279098539435350850374603589618932776296643687904468882371155693266744740166782062646832663791996908331060632380047596698454109855495127454293609094230846152789466587964662474936993499073038352189301961476599438698818057350031318453927588285125599704313208765191834115454013193431702859169114126730377142957631161718449495890127903721263662438315175543457191302293604764541281217544802670014703414564724815889688374131540622939390995371204238468290514415890714135499538723018068032431405328607127456851970304542838384723766308782842836505863245441608443121273948339112095853184675242651883847579201751986902457992033002676253767684043204826203802952113252597523711299227871074435122294356639154843245825588395344076692189797306062345105023366613492213721415302226501520032160877663121819151579617001588607566376837215081485348764658005994277350911765690891632307077544693156519049619342720292897917013965600068112070770415265426090282109563214996503817281652207469882448211965464700078917328591556160781139815005486472933733973290032742929029133605891823488689364725326890691577187378118508301402553700366846861007873245585751465305292446541011747702485992987196672488380603670624286443474515359850467301198520356484145478015918183509543614437911689607486645124732256948027833760316882436501486491270940113119173250919638634714713558517552729621129814220496563990199886339784335068248326201991594802976214621664871643590359349835359469146423516547704383548640136832363191347913740366851988458411862191119072411775221158339652675307126739891018567749100636652632544855410559608210284405153921712364088761979252883196392917929153590849307912475256327555358785591948834545594188836349213781605327437663273491005690066368523963596123063803054451860904712814401697830461044538707351809437503739925455850878362616546742688311616138402381602892425480116711751603899609420782540978801723847694159732997561464537008616731484515706721313521079643012538997068701200472618598662780967600689035075941068607144707504100675486879861055453793461873088199950628143069519135124989553329956675787162083605634409766732679947241456528175364241476659807005128763600511878783910405101457086994471197340610543812880743789426958123364819342846620552693674687922153773393175054631367936596971939870247181389364707090524936744998737087545873819073587975381977411262348290775441309656151394255862154633299294868418776335821547224334257228363242396526679760652725342809242792077065927250486275190093559818210563327321965990288877173914132326446480599451790225207972409411077597442064116876771590088320235534187646556784071667010664022871723901499432658752468534920243479226167639772824859887417222038101758405427738094027325248995249454378097059058432656166389321591285022969919515441725791240194811082119681710561482543983890616681955416998845168019628093211782055016397475397792480266540219586484022143139323227066971496452622429113133044240205931315152649315216701660790881838903863047004209457898866575131699996137590942691531142573108061198034494163974024424076852943087726144686548155160973506374125787695882846652815031629965764705604202322194572758627058218221682161453206939632441994666359253940693856651602049208317942109504374606766878297369064983997667938139005194469761179231764078312320042796562481840724509287610256538301475462351042305165686687947624321179781958787553171944607333663552931388047469578939176560154018979046055381727863123350307906942176218355053036129910079481142342264194068917220555551737841997874031078138274047185037736987776948308339899151987842672283990005433824880264139891622657901548055156216907841064579482096715673349698355048556550338944176660507185212716070400567772559485093752926404464680863101830068934007547628116771874774759093305221532441410615145292397001307508159756132758688492606390049765487146603108706078188184159116894903285795492051755314539928444630579148787160335791865730831477334331368952204269048536014765710922303885675488176646005069267105557910436765498989368762286581020842321649865822999120928032330631675707097470770677357898301457971203875523009652823131017968094720043017319188640540257484656801474505160879982893995849039084432339847827933957151279728396574596191236924154650472976368837902620659406590787554170244139706536168196046311831301389513062000973673813451420321575252253028564479617226722616977457317253174631199553620879401660669469285039345399871013297295086217609115654639927830388543368608640254678650302316385646541456202007833231211675013677746958648406384381772492217830903074571700000869808236299967190084558166439246735630299002965207411265681833319642129161035052320328562568707705549111837587750268316977975916602592482167531596428489626706618173053819030420494860281041865861130943143193399378653569110412565867597265533166879178096051437738266279882689120822432382935235964871102269352460097258400153249463492852404110542738202320861725244287667228355247740206828832792838250426697246506550771798987004262517962574614667660140556619086611558345438517484504568961989690241495103049350085968583795981072199179977505122221489278281944358480760921553107019493949449326038735785697878249628128605393738280136523116745934085925666716775391546520839006499975916751078371640612093961618892054031471322686206184398929642519385640178518384289676381319885504322868322153508130539350586723583757688678572699628800028930543764392296167193933749850514742532391227162966373982871555685369593008530072725419769873710005362611611346068711525702870053679571591237462944378701766569624575386561776771380188385477364641077086715793968249690239418332844806272395739175611632104065847423171874092593607195680084107346656950690572153605816479441003508982341532637426669119827187865312694943387111999429227622097348452083772227426328486027027222662002566169807040480155211097078535517279794937133612381581591839515616717505663061743312065992710884304987271307868224281696514133617365576282837840658509898518604702860593162412145766706318207027856226341857136227310728743922699039970288750837342118158483372429904303224950024320601340487798112354918353128566733225523922834606206718789890942123247142351417130170865697059937554394847200374604339314221778501893729859450536746800676562868392386052275013088654881440762885021799603644801540208260751331107110103851991534251734858504331540132202355192307045094184965093434333734554696102020116796038502796355324469055595995692763676618134098492635235824423786633067670886137548957467848193626240223914014462966954150092415532186080519672752532072034477473695763679210249354131818105299856502748883106486737505102255072966014210270505501733888096066979564423808467076263464030534432119663745646290128092395651122967756919607495640314222126805759612507840967560073365637828493607012123161916097234738561211464187389069557932919405652589966215131565948571887743994028546188801712878092587719683578581178859210682604659946739929841852163114607238711691356184663098397796093136956078567956426364914304305194907285487327356053002739209899937461355237809374940184126320071580196452133976479863653887940082736198038874390552807816739640735833859358099874848656138183497936883517792007713304387204407890836360385875434872361056927946839848736404295090846224826132869229341979035842348588139909812511110306564890530962145774548657336387170379390856172539713890068905117148932862488232631018081058931542014243364093078263624445983397811424990540700559637648287537409766134734146393174588212771523015539429686893090697199803633272911541086545673975432107779618970601676937293730329960279386376947687251333174087853025934656278463073409358674882806309756058410227179047634121850097324092831795291785778725082859849039420140360340512058615247124845882455763826476224038208365679319147808330619696081072109088615681683612607228708727638484555646155937124377667742692112002008362379202671747808606333605370511417969217714415751057025468450782119871336723994766812700390823299662916616072278210656899540122150769485985368569896579498786114978068685516004738609078700094334045960364918171242616802634801901765251515502214930179483948197076614569943413086375799769554119771982422127111824621955008800903204309300979147396446967280411773131551891563525014562424999616909621378164364820458305286634118529798134144835176249331930752646754458069061115289320363370435438721228387355089036678158696579061800893546020716795624686157775994010866308220024537525045991900164842006170662695019634196980179224805217225789005087380743765186478901122126466067750027904058387696542868994452696638196989555553332712381277708343439441295167077424800528377327695317184639834490276024535533117221062343324754845131581257994272061486790750184365591641578186225952833253269921143750046532671299028644697742408261114305428177253474776292739825498350471293443702717915050917166895701816921167791832037227625870380062599092740661224229373689779891236894922713955995524150886142037650365100630412207815369101891452824192764237259713543122636028063246814813390902308886837701928628518579920536564481625789585762433751150573756641221184221783994570889540962793236255167924399511990926050772339784733892780836050176441882927864634056688652587618376419413341162838720202950369665221438902488563462148335986674778299920960240936177678210705659225348919716169485743955256778933803059021884092009057931831137940734774637173555638134069277365577113886492795798497266009412451460912451977137451933114328840985384469497838996964436921181939296051297517863708394665872484094135713581739471107262824660641401572902801738858482880943208745042519911833099007415872991576780596234179743259091360654749995503025576271065657940481144590372485831068028487300896889496634583206391192960483455912679616685210477027036843347024837169666164945619812793426294716630978695824123072154031299027582940211616251209776552112531148400126898033558611016600246375543156316116115835704853965407070870425300111333374750926533708062963946269215340750784857674254427500372020919623508567724369716487197441115150207787260661183298921112217755842043377576242743839570188819098174099512386290024389156829505520394151720617048875802922489338977860338021080937759216475496630784874440637533177549149895734883326307057218602123588276399303767639304233059674598637886530115183454397753676140006525692854874823312479344519596838188268508653035875634894292711963596113571480845045363741419555790396681900757349438623640292776056561143919038363088342059931256713205024336896677116700967299129453998759567914889290970955617821239072004253340322879457596389518680303990338193907262338122726158930669912057080177565885369265936451846560318220343575748891783742598640379284987971420556104867634531044431430089832756943649298104549753229606146696047183524776535146041912347050915624506469634558805873903188614710704084195890321834186963729284232761288567661745833157462075343168866279388862195370253605982449414825110840002163600695542245882460535798239028932122171339883869950411181347013672760880380962609655306658831989733336710338889846310184052976530284138693029648862126374096572162778876782378686322395501983351642392682176528168792522110681902686996148004304781940514554869453146107820934875689706352282751739554092101971147265528063288057529790169777537185344542402079924545797592406583068928387536907338709007754152297510491262481637157896821668308297495397268320122796667632611041971361042553111321793697511444915078750769725667595881510421547387209443548529620095490327449409447823956773748547676794020737850580521312644756562182880872157572431261444284097836493053519884997360108872666102653332178794785690265792866161754685432210347632312698826825091191866810531220927163000760525687356737368224524031986514203782485886962950947971790633792637883885571558793697505742323813488971124728719456217231596317046002339058708233718464070785578461581638221067260877912775330415968586710104877412294296814575332206340355605330161735278687617577455717078055269414268246563772090852011011102893556751898750974493266001501907166105731736816827070420577146079598172754899791397360274338665572633101732980619887441340508346746125872828232703405538863927976566986134904178133097417130171099377082542456954936696021872754784124982263949155737399874599008583150649330334424170795645739829781986229219993580772492959765258590606092416399505758135355690027055756598828385549076418621418833462654457057322794224252591195612387761358011042071413820587617221888889731294199572908712097598302038680755635732042258394562541611486717774649345721086870148351858944572398859006460192858215217339683673401521434926819457301778822924784381088562453250954605065561478872929568124616909933297500077655773965656994429663810521475736947908966288563902108917900371668172479161779926969145283684150519699408149802436669697343839321249011848460795688880351884292463734661041830884051957547385406818233932873065247739139435840431365322287729754092642946053474653405979448594262302286905447725776993481880910754021217317921795794794278867656241801941494326400469912388608463796361041011252863922514402409196000425517722931819916211838039777314116140527665524090709945012469003384437995942138009815418063997233596587618179439369766844618491496700419578674101241732657706879410233423827705694429814363245605683021672145236970467918190492350805502973188810449308826950807090293879810105553020425618451966866585786967741564393001741943974401925201119710829895933735629037953664945634610692972861389760612053280945694806236378814799995262836939645481087595945467847047804363032717941841472221394612036602346272216178242414319158528356994079466659351397711670027950029706186034317514963656930286329508292818069726833500620895966032782773242271902177058530556046034964216763125579721428733196884423449142621990183338646238705546304457777425690027016189983219980369208764450088830452305153740906445511695025574705850895371958170793544336223711162573689001280036074903009963344694546176613229521828275426869048445692217247975777400886757553930232459670504542628968017249901538682449692137205151940273540717280618971781568660740972060992317525108271876099613230888024696056958388299475232230766252657570129873403166434183975890513222276995205640652901795267195620296898709626277484689974922773289144415194858334249290219406390519676046199674131787843420910105636471688507993032254361284757682684883334430463942901687538993246708166168825497374314654570643004241575401467238796199635956546003499067408068806543226790595842676118123508442514208556687640779781184003192264745441045831193553557817458844205609076799036012084345694033593226797567303878469560276933283400928800964072341248604343993333115078208082786654675892478030651553041852344015032603069336555118797015099836833032418944776151175764464492211101669976835095597144562463566379308031177026635930500801240686395651555925434149192393436626176986217100630925645569606138455904649127382356123697657443787560958486587856512428326304884627083318996746643472084960881544677101734371865570304866794347192289954229939944805777112517375645945113523480249293884423606572964225511532132589625302784144426244345657012723750453967347288759168915547991309265935915621838913699479259903302989309794215462956707938709827523316597110596322817743652853776832405970773509688784377884784806831907309713573719797382536507770391555581126234098240824311365420200228543183784816091338436868326403785982307753902292625924954514190628699391612540638710072440002504001609511836756604792120234117877252745078923390648573624240108652818978850391899687538878370075718983200346671731629669911635300265539825330117845601575318285699597820980114420015750344963592067449338227684155804807177468831971015216044684771223654519605886740455811925254297206404582166036832650750421272328484206150156374923296735940386664769464146005225164548417234587372626708792181506554279272803144794478485821732229496236404286025279868148110243567435328458571370080448263860332410807516715716572199257473122743318254657646127011333445755339963602217062481354523243345259417182027128880252074154022534632135331064506467595885473827306389499758370342149870832957752860768053914648815627435021357147354858709678663950574377223704854401399815647030175472518634480020413716283416653145391771655362645437600618961698934625109227041997046032076703651804728616772067933450839680293761392151339228283544383041345345446962970720910244050191412737962140411678484514974971852094969589150348075903284818358552309514003363622908742719619704856356569364483679925325796015548024645859049793378154225431515774010340167874620537965839512679806576453877249370069811458109553920500542240260219933365054365443206630449248863763942297511555658837187662399286748415170858026562498750502043499467826871710070469293961084391695811208057283871648456669564837626791168879349065530025594838718940953847706479456374930819644644517970739438585357257793313434189710602960370101061201978598082616475813778032937382464002514905051260575702069404121312940933165815685461650984401704643242863748224482767260174290212037108500803341177836015722974383168100988124584832501923514552593629236478867535930008381453634793790509901949490573197615137964655081672818324919758221866781587991955437377540250624018668615304522214589102043126360421953041571240572090633020299499647936673765827086520070433933002105421731275769909570218998901996955335106898640538050792113915410006085452743562342380402442861659837807684547618179435543771785640015736718759208181525448149223813893102168260244430283622779206620235719667641162269438004378258808009543397237876097421306776991875497078529346951984049106091760548229486969235230130068601672797856103803999222818584635737605523635116744963920832013561283654221483860769890779592952115730120933571565341192293692679598197246302264621310858817247039311622708155583977800666810605349801862726973423981102355552268872017874008498945569053893834849216477292814444850679874730528593395005188943400462570727023434553157296599234761509789919879552969648777193307660458096165229064194160738132754180120766386059857937568613976046866667293073980211175925302612768215990385973824155541140854542430821693979311447265766707659856182119553345604483536673061932016831938247834441531046310952066754588795018242040282569668463297760026965135931417058394303232686824887419095063934140817410544328774343571864797971206345169982358953957147263530951159524210566538944222340891632246360043902026302227640278930696277040787893637718155058293863324349836807286739347558937866851679317924989516807803140067228631995613257510718009586054119671656377425886709785816936904501643599955200970115061290288107492684404106889090094787657246217598378332531074869915489423384123623806139136341986784262621198590873941230334519674770186311868615716490525893019009136349446783295727526160137184920717572138871287183359416410600027335430692556984202082215400428079087795912636158003837661650947367960910837958159592054066586591088410157297279677586601842184090737504092351662456508270434978138815282896382122449822292837707551367545736118273709936604640094477178768832212104404753642288668481069531915508050437056100475605463262315236182019755835868192120037785793297753139921735705285638691069721836454995116689161337187879100469869071159948922487671078012241638418249959781435735578569370262155834599250547434858406627381112747790852712355386800209540600830633216793969359769798135086959811495448188600685480485030448867437582919605433467591127341010372087835536411556242841571190495291347506692108306187041729914654848489980582454088694558977315366543670256498673654694898443647842130214914205589280805253905769460023250700956046522031645689922185209797814517373888540573159061135754626103358998882725619291499146661138933706817412834838209210023981084483755862854742785241270508575856823326615255068174074426717558789905962471260804732312224750296616052513693744710562984852119633429512654501621757363957736552528006306415273739616769965131950494445185577578173183476994365563491551359386607610079993602051773645438769644280372673598004877364746032003809418617571763617701065057005658579250588703252881216633227119979339126153038703099541620821679873915588342916777336163951487581068222288837898675137957278213833962496588405716823133127201113921540478027311694920276954003911120831254100519449220100210971919135325155251878106895579272152010528882562439502561867801032206136183587878651801502119339298314682151650410789635060730721990850856661046808177896741421742189214689505836933584599670922120687750183694501578664473302775939751003045499774909628277959270919562857631979543215346120028002952117849967503938537463745951947152578701910154458261829715760401914010199456056854775447538383007147608246633749670360529683062828951504772654215266349777815089871043667570637609270522354800558391651187934255294937060540226713958804838255141597479197093607278849151965061824167926283382220365021687293833064456938561544590874627081485121093602730759544768071776365827704121623438846071495023124260422942386287909215600089173617677090558999877297049589588096720646191750260494127927600338505807202980461155533198190558861686908254930280746750205353519059465863465996685703909643516940215501888747943073208820639298456161938052143494553637848703363310612165203058069454827918571888792386788792977240333052353538653781975116980045058248025136767042593607982046823659304938357649255628543099986590120470643686793593206591558966324566305971288987423848582575830166553843878491873685269893035443453301467710945682042847085485720804184486061996262747653116450404536263848146854082155628736633973494741933310030530072769654781266599012909783971758486174048490672303096366145125975409645268122849588823552594423842338101613328968587625618657886873126314942067171305482195557119553351339150037521063572433908434214599825656712930249869800211503932291557732549714522549590897392745767501872993890224656928524420685491910465524294259564858366358656476125807621331012645044602698771871628441932666551008228891567883667707296328172086215488828337530207937183242525586696794022551779276093353422309467996207767342359317486761310285370373849637355151796358946231216891389392087387512230089689084289199792555162761930679514904646383035588917341168718349286697142459055338828132279142471492576024742719296011837804701497186583429379655590223868670376397712343876035805424169809999390159342321834619594713415380054683342984417317832105667306479201331265773668967051602440319420368665614047750402479307715347353938553086279440649664811371706699750510728803535757114313579644750565481528311891068210260601973394061031567395391570537047625883006270018398326497408072414755817092154858339871507578299740176431736646449587313161065860828850427083065952342020566013619387424222397334420179206896674396011740582925810577790382973445740903272612109703140421861235604266177572786193684534226727050950391087227087580948372575705163513325638959729315819584330320594191804588203995172943174572866469066178198926913964033039175022805012696299167991066168423238724596134068917383216165078602687287746056621827859116947336878292185619450546071109468690344054153210128263071222943066286848212245334690535072012906104237833700131326545034560382640157772126787956130417698979696313179582869971500624967432775961337684169510792904929309167106983721709460905112065659489090629864221071005033257540115480351622096030267018772638467200081740132519972307060513605832226537642879361701653349489980476244780033563578090348316623263447996321997664220866607391666633994134830093402353140963978744690372446145846147801597524049427722448384962808682695527561094667107512479777368716750555748129450721010533760556555082902068185778133135620509758491381662837235702664391782957424958732756028170624711823210767562377400637930128515395264727401390863849282348420219052351353382908730388239883760740029018942838858075128765592868286535801136067750628184718527131621980736020183265643888599387981274232235396155859354786738981120058075014282572430227434601965465236772698501525585802120276182351768029674272320578092036850747167460177100628276809175392179415194319918058922954793707426090261161448221723714432722536544620317213610914106258340550628664150988869529315900898876344029648260791346044926372580390804201838785561198663641425118262623358244924622267102360054866407605741669841781759797318061507727290019731926957020567265666945284094151779575510209209371370239456589059498787693954889100893518590128721742123506164746984157726896342661978012024603816587751545232448815042414320461825699089008392145047977184720384211112503608665171014441671707412647768413131272880121176540085677103275412157596865507472833735705333599185185342660281912667942651887391563899449033786064467898264358285832697473241437512240643135386240134726133151870984086961827526227105930717961686459604104192510569870215842771524477601282046420324585234043556175457428259744104302774977589660377888407520951280193436027397323606307449950951894318304460357283497536607236282135082229209438420520765496393606944560255342056455285417744384272655967048494328110359436844850779225379039505453943505736068845822340102614580034730739386348858280640690612293644855796387821873699590838729393555403893937511145558373501940667390876162005377941131507375574943030564870062304088904053860278775897305781300018631520143055100686869070645087074517562902713662749428796195431736673085357305215186092712929367712457053853023476075477406594118199739710557131117998090687831271311870159204376284080263207098365609438430343631168164441045169704635396033717225404447023254507470873547544660762652789491238221464793384390304960383416122937297798149990758587261748036621008740973487439692994813581504031400508112656142437204409249414850713806506266134919085498430901322113065881592568783379353849251543326636687479806470212622102687882690586431595591712923621212148016043705912708319713788728386665543664808254726719879944507000513725080228372620504449877887689056117230438596500197284218563272575829037639384378149637452173723987345671915574140057106996968759514902985215326429642551205574316245378835763087848524382617285168829621332469955654539087853221817307655827786415049841475839764150387014674209658211849063897640605202993780008060771463737047129815319037346772481701656532406213434628694174652063645976906026524758357110395098352335690822659345847868729526616220327395141404144513868744476753427393420216088526904835499237890192654938545484040215634563251535539031850552461047751754866612105565197355142891968272821801670796732881684612960786063082003186056421664644830362205619784415485418035741154821641323552390684605765160665755288739467349682602168918414670916442278612221033413221605005231851830752859135040591555638261436792500618241560861317365278563057600753501538497965253701446135984933232478844027713456239649281482510382982215084165905606123585585982144536960355654680939610274060029741536643875333187639657986606036583353020445479694535717287293690071172621299210690662264525892020431526276671124803006992683784674794837283109798559636905558083631367732511664237032135562575074639951917687333310011874805908713705437048659033119268784940304687977970192798897994640069559041792234240912806973636417377417128804204009685933747037826887709043118057960235790393715483092474551935266259668182197375740505080014307577775698497586493066466965416086787126089148550269707672504913813841709035525544485236686650378224671066425351891712815798159355519666794907705122492938333463371694732633108970258120779115175550347938593809733614659705150007783513047575689669079632728590279481782306241548202585903934842763846787613016723597566733467638262843083058841075258214309045204144184487799190945936615462706364950008850094739622541697295772938298989662035606763365215235698240219740978177750113981737879903637341204870454801620369295608824045211249388469597462586951957117833732568672942984374748203218820703620471946883786526174523726180445989625311078529258187183094136876809127227909466941871893164035335830158025592020603683493327601769980536980282894289318627225002870194773657422099365193734973178222598726603998893707478285445221556755034616223725499920374862941679323224831924688487840568936749309411682721548549673689883836247965480038574998898528758875795336988730861850313817348484753136751148449378987632396040677753782579763310623940485139951763922712638033098609697756951564590771921293743409936613002519634907710790152304084365149748390953130037418536674357725803307800239129191264045887193591055062649838243465389174694075994362288011214275288199540966462641508095866347780791028827152423628541538223314213862479161703857549801917627858327902355964826403816632923954554277183960408315814154669199062789234877421709660099853305328145387905295132381929711336529765526288433385114140512191464842718011112891209942459187702945259651556618536596464593728071046740601722043638022640692551107815136920863434972334469077045972932534242454714215835616137873116377294570699881185331903396368277080871571206173847692238108679722797237918310290139730287452791210090859182989452373932390244070648171895679656896339964018050086172521977868969375367829816533311756565406765085286356849050465670667466908844005586966565591765648961362896660105202040922206402409292062407558389453758295513351616998837447892006262544394052829473581381661077809287377937714284200802172912422506500785067300148251404512438950599106336405015163643390959667064233661104627744898840905446148263492526374983126521671375533720226889864582366083323394524869813378516644185579618388463582169919554703582415454213617599021755391092708336467767879073231512167102060713981179479892936793248628023924132099188116845143348888181732044238334303878858471411073558657440554757602917565855677487130764999364684758713712802506842380579962338486844928764692248121170848901896784683354733121627817092413317364541491007811099624641815129049420379298406417430204536760706835912520797063436941669271296550423767161587115295424518910339269665356878885579387854903804186193560423171566381544505957534751855472385982819763216512355110966599393137736448219448317497405351397568965882140632934619838635477071609647655375648568175538542712952433367591103995206962466178489996826840310654153960141999407933510001337254219016817052438240768322072730995584632909720627601356505118066088772671262214653118626224805614696074632759313435223130510877901197508326946028966558151796761920781065295702932319609108854796673053633791941842450722616078128748241132694330500880012887024939507412173291881034578828841065603020500395804498299134408957575122348480392335508621247117867760333610909571396109540759523361846336291235931299228604099990967511379773006285080376304951142995264473699524520012922685935195956838429705060192213050353479396902002629548240342548973004090627448384327729973278568713362557798552743222000751858682770233151205726599221831371328987518078071228079766959959634188493664962292236104551467891117596754447401317230001845296614911030306333161252206513567237620781168820121547800660352259355005624521393115313040268025462075310645069045775210708941641234819716787750794618126135052196795125721721722194837297970841973956527596948272038958621830143188486899605070272334920778614253525078223634402512311061071172288475867371446616604460512683103649816177774890236906368516922346094821752531797560571956139597639820552584135560077526258100040241912360651696976924249966085617535226976772806585321090237320277704469685362498825639630703021928185222402470364268726052125114555985485225821387622075139692685242530650336272429628893730632250791786219629305462376572211806731690626759693578313030010135740259437236722067721144461716919071323608870623950389497781362915672509227983288077059290728361116067712013705464839934904782335652906616339394420766284681355289461122343540699216227500935121359026468906030093419670594377278620474149489356513056260226368793531105815423628515373273262261812794995492017030270895574853455985505267173936519871594066682435277677653414349689044126253413339482474734101233074363734150053808017284990194310295414698416805008912150935987065982106051250543131878051829124524806220228546263004048711470516556175932568278799093757051394978403744716070745663398422854665648563569315519630904429197210317931951169673473328788800949926385049003613745188433725704333750511898285539204257586444099948460615065881110351660833722815410233106695534626435118182011422507825271042499701703941118993380791304451129220295710247911709006843137405987260393198623858460962937194771491972227295253769310984870795391682477127653625405251983705325920564885746974736257007312889962440681060054781094570196229958259874506049221271682076807898252993557652560554965074959895211188751215571975003901875364744235356231748660748124759908458196384420615995674723035805549371807366493190724783928688504250672764066377395119473984831594727767845474291041317298455209469123585227043477579472208084115339764256479428932853183693574153669625085976893789618043919255195769795386047256680884518141485507749016020721936647258877543124149231563816823228060102946895397313908085152184383485467723411782522222919776855914036255486366325440318112765157130237273430688037533042133070468539658848852888280428700290992802097212305635902972593133109493772298999599912902059952682369751225246504368593942184083037034752306719640333195732708517074572291049034564786190940584514891430989637149063803880473192486612031613126873914345260794408350976314258718557584579496650430089340388552769877481575296360724956651679019111114223175459140020039145693157835784997316844185120692604279293991826817813779351698364180011174067426121141782401357961973310926189998166245866881958960147599400223549190264714721343801123557625820017115714893264125254563798282216782925557468075886146391559331192046384847044328789745780181458875984775322248070686546664749973808934999288440815917958574741915493108118320344689660611882745962619302717301321584779486724188107571771454446076099936340701926876590447185057706372815316808729102936928906718042596761867746230353366764214949898882427959447055480194928490302555586717734732011142650145167651218980745595225150284611949417109147490296079319668002941628900541096572881276152495975836842140373982854913066694555157135215915840680883518423698947327899310000936183779476587966918070418986858165361397053118774498899519376946606143817752550160388725552304758265722013823762204826469618130995419078225103432012163748399585623756742120351533295212812656414774334105141521127542322019270270011382160737245335465357353895963169711788338433134378687318671294999699061448381987565506411032077932984937695346224669168573512631845969212091725725235939682241959974122119927383427247531903588779253644341141734118127598583415367050536799716476028834329976648561361440999616808828633225755793706292200159629919388304723570600309082355382231928600103184554862542749709812500483229648025006657432859126108866429423936164011880644539829263192496880411000914870306118297942041231041492079823317099543371043980846157352478232161851749885119607546801733056363393157384386003779153162644063035929743477637503044701363998170142961479371411275114395680477496259446240679462791252035084672728648938753834263287997574004402570578116662433803242605049796522010781377408129222006946469024963696649217416705103750202067519468260905351776050354157819454950391070880907175853804115164043825672713634541690800400470451108082297463730184093191286090250142167318661698150085692316501536710678839214333590326940429989019260023989409028381196936274873236320914853099532693604622005735330144222949975324764116926659411473727314519670538469179115425452928947513741633819431819600820271876419032063585242400820608324765720438050712108951156562401319247564835029801922012398075620680913676611685608065164463619332210203601973270516754746246104338493889927993040833990569188772598523105483373827662519886052660059810191056885153390284571877698697015444269666504166917310134432329092118115516890148746448183460531785800170449724529048824913764420043332409960142277603173617478612746251936221498982377915787948373749867698736507525551101472085551879209415433766983606930217270758651054227515863723787521138100275014564355180058633869511394189764876832290194702911387334906312510199156314617276920733637732267562504150025966485480544530934930508406666680027843251826302254855261374446559911864497714458621866408482374321462816554475042345246390675472559992953213751124667862944290412773085239329976180369753935626706071671184884623687211632489268560471055057552447013593396008004108059237657191345729346891829579881403675120139931608586252685984730297941852011471890336609608623446262370638112926629647033442142886490389468978747782987202143586409499862501758397023118486123017452806664312348878968392580777932615287998032263285513104687765928761255359920025689397069695201972399735396191496916148057577339299475819902293287223558164960369785008637160816421702348128870540265710914743489688134490321248954498491910018153881475265832120236315972783220543004110775255656323090371965002196762180162368681866980573841058823752319817786580687288971449889473238320654370555406044325469240844764863094632471836928245958923769030251371861371558365926499092890732019861513293391144592676185013148672063568128801595965920704058844213620417212474800405986775232304111141863637154483523473723365799203382034694802292851682871569070367047896238123789284257480563499449447672240416746379041280472846251118057166505523232625443912874425035676509375756207726436414599383006285108532620137785817506046980220206683672790865338912613268000647990064960913199139063939615862673366505831749267150479123755927492960864133559956022615381562455932721397526446471669007575248098145985747417753948965285381846407686787852584592486888037525225164745852561376975830490254641488426366670675926206853696921905882439455115190742402695659635510779776907010351524502422321107656978658293674165227435618815717227780964364314208176308306580338491492026744518186516313725293418647704500472553240264728422459329891961605455924436474377131417225546381204192912924240330076254361256090090399226798606478846585692610222423248659477473464071812780825900064570372103449325556865359207472996250102496350757839966565282873852253801351506913359191033532633598521395513426349772884920283272653857162013816603950805424771916826842472670478684473405687051794604475143991446257772977772568912501233953831102275343940082434130909780187632479947139483343229874341565394240393076421854068472645886152570187944990382423727666394426476049551761352625218807898135685671900051916194004058440730414385794497504367554431331829552263685335398586778017005137406480326663089254984863711749165291608625946022487330893311331077705276263395961065124617009035180100366775993303486519087107832037509718578570347869751339090493688174432026691858660737260912707708744279537550907918850731437819775947401183395340846845776622439069059110471680934504032749931605840858340811051656928494611916224892211120336906531887159814831845928737334283921178311739108456119445234987694073488135269209389254865622200679791882487306265714847767065122866861656144954524975541180990853854984282605251358113482031393970461393566240804478374943575931748970856182824062773387889558843118390238364020705662820375798529294993249380951403598990465764917162597250975236304656915180587424299994032909029702039570429054055699974173698754388287861408126032366269280266720574261451256742225211315178372535127945599145136611585114463286410008972286024016170399623113759778717749733169667461623074620337142467235307163076549323855453657600619859375395969840954779304576498216092541258577838837375021489473341800415091697276536990365361554093263162121379809560744674729360901757255719422515405432439288593266170910480916865171042778040977173270207251502931852862966788719765168201377857487966789949180045397923186150987029711944340534213998173455534287716988767106513979892667981156972635241196911533689000748108044787859028661559184912904322889454428058280553931771234314854185732328498651280150408991518006282362594073050957352230755362974779511275731744663467947262730756821319912341943157630587092237162536618169677994438032526895098683290866453204341254077443651055164189280735499494958799645631845158431313834496636795820053505729077535447490341229427721287848141752145540588935442946067649624507086091527934231471479014498088778040501127092208423062745982266249037569318317387350025766134457969126687510790774311395749754128303420212546445858781611547134752380445191837273863924422606438957063144066350762338674028095256389567611834181686339318424198280846177577638508912195519835769908648285399376713871130400815229533400742551326415612195013072861216486817932855371149796772122711869140855444351021396879513593054012964152492276543534743899436258298528453842721467455834329920493856744867028504944651097816444753846433532753089736395053219078896603398802608280079955014825727266580258372428665425538886539869281185422634492272941560070261698102637745446264354935029098024799833455549680698873291915757828227028076167234371757632108804847344538540638876693619271475025025930560519340488999713681687496093391753143743492437335429771433640965324453461920396939830788152105042661400771181804750992629129252283434022421693978513654773394037283272005548919981079472940306812407876285227837701859819761295411692941330386537125295471960373472216553311964057551883144143614567583877042383000020746709434749123402117007701898736525558546689134219637621804165980399471135289748854025419516762107811792368960936510917950945867163630536188192609939250446005390570773781995633756631923795343314463192660315728336306779259906040332113074054806132264064276125698812178935980121379366119898975762383375802040938721267720730668002395229350502395283831085433244531046299700450305835162106135681126960339119239016525943446677701459709404865190755418167770258003996540713456783394687715677194567436979311087423224439666894715796932717793967646039570564513182476627897257083076083709388473424930375019376377296754128854088693750005057532019790087457929844111404217178935114184797721091223645831255128338410695214755719725716936433403071596096155463621728985187594558594491066290230065294512810834906197464024483158072205101829694534615111940944379967860329258058133829835126160743532251578364610053492434331635660955962443849143347483054319995027146935444448613511887259884086368172767104510615162842617603189272583486721320441283380064824653069497151868965237155692310610055353353488853780473082157932581107585366937434252409115786388788970664316129204113695292270203543172467583126297063948496820526642602617359654696012412743805265801380206416645905956957827918951738322343917469055735733963455684081490356934395352155203456122122934278657886921475300820829573807334326577948061458072567118768168884154184843147012153451255409374702220701237368059795243521855463294355573973818582279219558087420238093260803356514892984740834160906922205851551136920176102310678733153820063025425930054363194187623420470861217663030269008433567657792180945547019687923836961965873242221572088836226724439789672176645341587119479833138857557026259821384789846694797120478452844592875999667105867282470202756046188903436824606932825799163330301552720589924469787700847245789510476265970931937561585520677368614759520760892126024328731579658147912554590884517698892984068469997523511162861994722562237659753942017797293094947861565309568945579668920903644984408691244449776264018756580351352602066722899423285761164197735170653865898486020355807217684806589561093563595887093848161052424627023017233374098699547271797081511271464444026374423492181283961870408389632986405569169900544759444048763075743131856242147896058347292663688134377147307179232594052804957147054553028012269443659519438834224662541086657020832005302867050552805900957460226450065697477896414786515477937652915012174488824218605349445678478190140842551061060655409236407517423034201679644868436865036940115035132643032120056085860963334283345228663670145015199161022645443228509259057822342896820066552530732815858154299225168976368777739525351449469794209736801508729543914738021085159240619179855325006352118685488228038999385929633846793072613722433433579003252946097578665767591753777200872812017929948080742359389535109444031694664586936884714789888167102844719982252438101829263472122944135694513549866619207688932864523528825836294159008058417827072572196691254411416165599982753225769826846106181731940070502911479672172232041505038387835051356025605637441936814029399572220870099672130212875985541318927750720225379576815983107956957992410081726201537853436403280286074609726043684945709200289250000283367154467307056505416156765013956863665673665850731755454985185518047770206892826159244809391235673093721966968648906430686076241453909518303621204985618922085674590006706630507057513162290233085455655429662336034448650168717918977937162397617115286935501551314283752611871201375149864550415732650733876409891074213518419998226219939772937952106771320668860572807114266371123284281548820469728142710299731555827255978743971597823900454429908304351283343808583703214816762829538065143004354882056324184241103160445343258618054689476147272944500011420195059159614352904759033132749318072468932919838875090993238237754877800724960081632520706478759370753742630578585699332073401747541605614760609580149852167685286589912138734866763804807452671350957667881275652615220170745761711991493528923807067365726521713520072664907479790188950190158501033274476983821257809279417278043702617798777369727537495937054688998316857462649305031428060410485687304042046162929327480379291523284805498612352394304479694158333146187444191197471181421338870224685968589798596456698298701793860931702639353661006023586179881613976594005305535150780129506043541739272736723615539184902588771234862141431854805546054551784657166550268289502219562936155213551996654873144998375248489966449761498950807911802681288039872994864822592804735242381899360667482950359228455163758943891943458172049789426862652805457966815586777439216939989915011191238431689884389859847114868556057106623058777542081878342083038974309421231412291305614353416409785460110959358771193689230074181024002125432371098100585694590078686474267490606368534692131606432148140384003553705844094213280036688124373441382546370725200037529043876137224052799568589470388015401668632596056899018948162844769620539609522906014203368245492512437893772357748319298770894436432530257878912400766927039359956558679723757329917717241062240727926433736006083341543026274542197739371271139451961382152497328815921719371087873777309520097957550244673228531273749840354544444337449835092661209073172102822478882217727762158690867278699248743714532393144226210932393688447856316822143396611863424192680905902765764731235699048739762162028991626672309816374620769892069781312489972256401540479520032637146143601198820469074808261760530297187128944461367237222443951207837660100816884883592069942511389385269640993056888909022610807286409711404240468264934727568591889553352190263081924879637141058639211864190711821984543391661533959812860126226896473739746918034214310518625618934619778078885935049249658350365179008474602650887926927624500842143777305168228635466724045102043271255135717100193158799657664336046392490271413992620797011583652206917823776031333408563745987415481878169604617639434241486600705446871774617573605272214388367383701415996176100898985558167471888770437476173048649723516218996081843049671289443505600556895844400591430949428205933788414621439297462086420519176220827376662074870255710383589027478536831579467466499123854228470419756807040159111685403261282778707412954298877861581949860116491848821827395344688456053136829705090420058462250829860865699558210836967358934463166421197131966765156851270237566676556396723828799173740572094558290345732742889885450980390697645612080578405282128350260002631336910584800320532570389735315844350554467080846850545426507620289583131451213167181940359631167036652201671941593846859120264317801834759371631577429932213763836712707968086806589245388417589990582358568351090382255559149366397919758055604424824261574632447407811636729103226601065990621192505348211370254069197744170035292182461695210494253526220248168159399302541244978543592572450426946157923266550777799329746193937535350680280463826660922708445574712667801291587932705014925641041037216799818398768513386140374926916714432169753619219913491735696548307397127449051107179554313650108947032629401185342641297111250575382500151082884012042470455693922659597839292847305295267383390998106710330008978371226541644654521116662195166037277423840409027141162402344208098392073335762871117251931839446141703507650091976909763442187672114134961713934742860535772450271308150602782021595351797161199550930054127900211760450121950485917462989477490255972160649078710708207103295968836677364316217772628592462773010593660066047046771614237975474052695344849516559721015464398730451903826333821690378978442934857032148028772936002796249966225493818364268107788272594105074436216845078071326717775487282821649884611260946004859941955268928694214109607250891394499678103128172210997897777193128471518039790276395356390033932350164136186229606163026105502708960019230513251183874834560875806799767825398937747263199968452454447114909983977148873223862731468579298262464107133963818332671153515465495567213181937399302589303542262219394498119550929809117667709585752082191229713945983724220670469254759606577649450615133596959738785241434892617508303610627474612308428954178916507708803779983156486648105921827669261567533307034014285190945402944194977836221023404997362136704612674628234593611615169247795930378803249402586865809155882837035659458675329905461822942855877588630019963412720612527855519667118134294534361599153237354411385990538855275751674175387735994039029914911943402536299317718513791558914182502574207201379550192844996315351094885661132964443487989360952801336822847640054589611064350901703958264691851900067798443191143998953295731282898484564457796306309910292470577232609757959740272004826018280331995717836015774675255288968355107631922851321927486804997549827323757444355328607513882785243997817098250193183952160090194760767346367663550533138992522321107755220841575676575265545770194796745905012613808325921709516318244901589492138188931082866561421001141256999885449797576152425151706307110761041734610824409130357493114933368602965842923302499456232940644670516462565462156343177428219180423358194774835923280510012669730392283007987737733097669314468447729493583877638026524859221409391391038482989916466222868762227909293393370981124464219738111131911477578449948945571031858397361766319449108342849468451692025201542362701185268044440212539300409916993291869625880129793136204102960786301551896791929249283535523500497041616272126742812016762258499059533963890988875730524398915194223296150123829255698572223015802135373626121917092282375486369229547033319211297686020666982506403646415718069439992893621459069970484956309246577539626867099128172385406998761804521821195261953066307624338336191180133813435242881854627239683937567912948727608177311011423021882392579319778123985815208346647692051388334289108334399162831605650512964056696426934508021133483605316590788249351178147768026530109431558013259211537659901716854155626742932081189370027576792262556418254918184745163666213270881322860511508471024609496332386541604501391863810271606628795941554539134299004178356316514800941092725665642916807843457967101179700819319183319033193641483635214669625737107160307142977617287273347143560793341967128493334440480983031886878828392571403062618183433509933919231001115721496072980633274945541073755436482643243269643482125252833549768060860320195149983175009961828057931973880565818339408217939344574817708952885709480315315644223576898050233645921954979865818919261191943743531741275117184939050443951326175060808343182087345154908983137588710267917984518296744804999354835917943265528218072622627379581374619962120731864456167866396395714342416364985294710472839209177668656413946309093514318249304548834575603616709588297271645339209902757133192293790771347686525764094865893063208165692770783884995972626196661356508871481851706026852158490714989119711917854341525062432766179723850587430207795284447503253658225770150851270434992682416206562528150495773854884359697931605263240277107275627895281209812941202465467704670175073820285146822935434029880879725807908565608555144617471614769320993834906674335840363967670463568067278918037530305902810098187268083475169102500556467250667806282415697179307797650953993978172292540609674890253858199140270064931732182656435915873570907524013721437275781892736878218057539934584397963959829404348561678039317122459665710758565179547216762506612327110759202173905582317949638808376541569646476460809817852126823123388675631694649912043841026572312509110124952250776064890761818475768381357613805729624096929674696802737563984588195826679646608974668090388540043990194705386052857767318002611591886864122317495057166054681159541323489108482616893432423035562488017584944828378514584370775263024499239516922622729645672260632110425961718669927409773194038213050429491214727905104115397681804645811321845514619591281436567867818449706020201161776859956387489590210890439125811370769327727666421360286260987997446342974895882297031999628958227602557084602618188910665161522552457454126208028504397924293664806473702923064404322870970367459774668392390104387600829205572176432292778228942006926461202826134152807793476349663267969333119249971773285615841219201607050352980248261895867154385873004072404188126716783642289531013596480990924144867622188134096005259956674669531838661497172170217238943110121825113438314587039942164380509415541660598616964704458377251008094092186314608516144930283002366788382696869315453848166761175104212677326848808194959951887918623983320616956567476525958121192291685947037694788322695006381290869397083976997073235985728665946400129288014237581437227103895709044003770454717821460949957885442652610747035234769224634244192176987304163411762495169861308035366474091880383821671158759232023199038109865534839826367025725889660192218879465570133150728796980058195504899877660997106226941404504788202223971605133116552179799525766058373955372761970007462852555014627414832419614303030636898450717710789621036597355265724645632133583283884169039463590566711341571411762292532230681853374439783946484193280695726329222297958045993942246167540685826350356432321763691659824999979810846447703952435127728793363785451241738284149815604615628419188721261718679728572068024333925227925321739075051152310691536031654689842681382813263097301912696539576877145233425930217548472707607171231678496942015617332637114776778239497222076009926079487341579340084051687933021616619013652567100652454798744430318821115957853820374796911491166107885381600593553018179896662483441718083306169271284761009217911219647917704766973288176970042538178179984211663875017072683290970953229748355608851294914606157732996613336287416874608708339918657426630742225070454124682170047388524999896069705602141668477350677699028790943913911027328112299093271484398996625442625737704222975708972270736327130479388107443932725266632897995803201551864156748889213092813026722310468731672137827341891231034164960252358263796825786745166118458649738582698212162396427183453325953310484603831504693249244118880105370465234071200720813284342699414777404082598838574460037153728145501859083138638151583670785170006005669912079800888333392971677547993151600765141354285327316999195870546694135995932268728571654530198366381926667617269319319454307327341880565215751211858855247755256861566327765690823403359104007752072183489253353534586464043311620052197548825601130300636351325760611649518416317256575957910695423266697746600370182340564072474905360888324706027925625947357062026861711708234493384646595943361132943027162274871265972903576735462486747382629002138196933218053160123765564163344260058516065887123954876096938560897912468535786331008470739226500481508025549674432314038199660207909707578266673171189282357775429707943610568363584657373661008132995698806110415976491869671388674769103820900607147679386686477036239521475707507220394795977800203956191392223384953701860799715016307717347085950820748954889727667927675573530627206932199539411467102799171355663290880854780016577873301131956230333946999961783824887412583254105982236839161808867777247779305628954825380685291883476769870148883921944863137211177451831815111985242563409781414164755777547519238532943768346870891617472303592883342271038196205217853443943537142482542354377551736384076830387964667537150745711870762228444339290422911630985502642192148048250008014425264610912218138292626682405055086350907105638963976522551137988788812647622440353712189544405205242403665709463346966030262418501185185113924054660619052797930095076112881322697742892172041099116419699107376206626292040896974704196312980143403942905338595071870818961255923222215368000220503999913712886203582188197406831266309098527732489337814218950131806695823051121077204002187583381776154231669444146393521557916944919644457884450380640377291170424745273666607514865835561441452195210654670980092171417903539008065168136430782009129587109520729636451370724508225454868429608583330223599789220973871064817723480716818092757653028941531448500735707995584194000293944758665511331273111619208832416704124541467331847008267188400740964792309044248628347913392484870359356984386657922495166136667795518590043389200847876773588379512927577305965994681697096468939099964535199103629611906045074391852076630074668170666386322123525640855950010886935740198188787473815238694696014612319148873122381591205105340027062567155614125442850119387194231490132447258988144097686029662538975800099305798094948378938078936045677740548377373384733449375725417912830072075500049623078868359360055944564035799766595981609236054049832257918111926850256693376247871403783351153153062309070662676997206098935897117129991454645926779032270629023152026521571050322409104583712644494811278122986080228200971373518362180737737063099585328160501327763813990847427377044457491510540716474020376665628129486327620764295418948492626144744610375875200192906381602357108170132204283714666439386593169388478041272736989197678595587736428316268458833900938231609355299595018603083018731710714113429094053400316722414004085838676063099944399826564949287100385820335419124074445435905765420155564056240880690408963384561573817104459095651663407862414661296904359916232238971294087606510952337788442096939738586060615291994522470225314555955524578877966733398853958499236685800864936505806433716231611494213573410648678916315023945505181015589468704539257729685208470703483355576663049333984322378221962613799935913476013275507665803028622011971481113337133216655059101270872726345179366530263566815340682102894226573259878926751608492916880862106746248963883224909655932251959064808839829450663395441570276953201711313441991439110415514144398298922568441230021106301756615268686542801590949188346134150149257451850921061023235025484262477865984463498844488111082518351043755733339688936923722264473524668243081586372092411819849978570761955562996473682743106479413333939759029006343927151009738377065880517366639790448439345256079197277802304216137039597382840689152680426967899680710535449577576030557406754934144090748563924781921857576411528194681048887803958656743511750210086041587194688579023738828880521583190429222167753756025382930214962293245879776281589445272302648788788981862313803772966522612979949847913891232537290273935723278024916371282208871962751877690080138768348940745170808123744965930743573577621582153513315400617862119637053200949018215788649244039218923545725550190891279626537181537934895037088296843080596609313513240688241019357960046221313404746737905800718415145735363937745841626293549034878418321082367144296273699791613284684496060595410368691702142543361187955858261111308722159761346714098136101394137393555778352604188080375896084420780968805113108745094326587536218789058830411364244028262977791614219936839906288670911636588481621247592951530822605764653628957615279010450172961608474710515726154130031654491791119792830432688152361447276038958185798103344869902082084388112893436573251633579959198277939921602715003255292414596185328145686391540975259736802271483167669599556523067801491023684773004990772085134915776110536726112502252660633351661381345733699020778388737082215480133288524916169643742392796136422993569570791997085912205639807931235144944809577307505430688411066317602167892240893813972720037814308740997225361204446987494346589842089143493176566646134013223992445735598204606520650618488381748595908752309933038312797700842591523142864082542343734314624530994379425962164542479664742704272858452605718188995989314698897819474505422186150995759813843288575182768626987785078846297290675040287801943834127220046963314248751483495454783615314662772279461220428325021709882842763240001141714072285867048546120470140694748408007465073638877186213747693840950326174084330389927479206613321237854446572906152416915667966266833809769604419219617679472983216959402625613315165543261335488481426896755281122775972768578759439750656974599214241796463823989597872212751595459762777111222125192703939504758373741063004039313022942760982769071487561232674561936843793365260716123259248641026504872491097414132740285023011463009989749598643042041123741461745837557229871443986958098411946223214689291035999828984798038364072046527294388179797411032142255818170228453539199865214950917155721179074345380095128422253275402804036303125475507452321858895545605013973642166707424810470942107189360941368457627321418956577210153491943678346745261120072757323420170083584335039111669747235358457405236841554325671830671150106997239940955127139012809245723691791567190294497083633547633806342364648832837161115883031102260560169646414554851803143178976176041268170792063040314836322377356567418576405820482044087221094749310073167405941069418502690612360498800634384660565190112600201743672797866072819280849450368365111522314741567619124988853875367878104086849589364178696947812099252436627686776960507435302280196079083390605294888230134330693120278788509481982444729973265724688711015441548156746477339876284176899579459409286445629930290319360834260095724720155858084552631991023365463258104552544696404472711139511149492014743478765087125390667125495286417614370473436013158236135000264805022043134045145472318517330953861638390564947844691847249067218758487980921200584691799849754830953138086570334083069043157206184846579873886392978476442224275868802191042279297139975301760003159919076469575798261792052457592146340195229192495454941978029517749043365368252767062324288194964717276285733934476567761110804049412006072520060199348905425283299421343286512321599394742355278489415975810698772112274577299468910961488655542075187232145028121864599886788201505020492550406446395017401192489228122537973928152441370959980816660361126177535567507701019609961905562724826516968678718456256442708001326422083716564895297418955955648344983085741515471901423256081929239498685028069272575105005250605171697939426874298231295260311071532709519431348643266857637020905641295268482893681425268031354776065163832782532883155771878076584205134904377263947804455734427046192514288610002331678146937324537069727355649756342574240644175615298961439859757487151777168909670241776025590258898909513772646471071133017073102586021502644993021902120762717227878109836498417056404217146067758583654734789394502858329628151339524952404050003134373903303482487377063178710210184982111953132475970298224031406272043483660689672930155735636658940567207578178077943068841587003230516344889049582563923272984251884813625097906431027175531496114263878328701016621656400204909486409145764713786041499885969236156324048980167964097040723060729963912294125835729433395653951502761445860396827393408169912112107934695117894365995324862712688443178129913672470079772157514640171057642578983790025429592482354732850892561772160764384436009391043110957152741518786980902140990268105724696909362486981886927024402971548079897520991904468702825810899384223814076096437760984424041414241617726287172989545727434184659095071108312854329353793009651326001289012317292077361452283114057032463813557516291963583697232355325151157872486482521302862284707723383754865691022504005991816364778221659378117661898796326779453104821286626122396141188945039637355944358671171547102320973133206939244820778050153079847099966003053558379992072459197327733854109225123619416882781305731063138646409613804283141292154395305719449724390568745233038092261704258399704086919217285753064435772375300386150431329396963368181877393245252187744661730273642365062386011261801842694440104809927391552349594767199589477881775881225582483382347864399098401852812431823592201716976942189943966545053196923161510212392268583616720139885230804176462405054350884284163910967827647476710199934045059422090347708671078755617409981945591696392264240451539383364244961719981437199960182526585950249143283560453730589361001063926892474591282044977919403543131661747194447910543314913862009159463615308990877500632087319691625911506414307857789993394286415538477584485350014858182393229656645230168249003288392710127301220384082334680353808902984657734899422227720911678485423157975861711228476624829134439355671582531249999004861674371891604326625172265768473022852080630009470001828599358162431342419822865696032156602251869278503676383365289545687897334299221209611093377318287734387368518108991881666221076727167279208196409825770772857127400021004530350275394384088932027039797410363051949022954288700775639298387418667769430787156089626590372679550862774559336226269789351749056715365825347132810657561590226451488306285888878173534923062358896270905308217231551011438710186147775442151493922128882598972491024165453412959451689545506078504993071395390842017654629728248835087057122521560796262236590863350479247960081074906890352711484314282536202659417066098320851402023890935879253543280276083027183448890067994266324484484941639770564800982683939193074594603267620029349690817159913441127052524084737067335522803408639081247762881536864979285374947150302466862224859347077644829006341726557914019958783712474513062842197716683896877771550142972080684922218651537035903176564513333911291977179888743793855807026920518915897285708522536180484468262315824686632063282775413515081995180466692030244526463384694728012882601344473972406041565447715993931513575247368428903538175307372248913364044990467755236078255550304238825274473893768775157629317364755627304124396863956871569782971390414053661843857369626865784990000353604046871373708622699029311222021196333779197383654608822589445072904108906860407504533648622272353326896426567217462753088289537000707203396415784486001069814350734120914505091740953680929613093680814360658140420167543220443778660556645224186954228024412916524894821783628961050654793186913824489100227255835447241534227662334421304153599455681557630567963109910571770936465918232139806366759681536470448373674207936820877106298900376249979432528227882377998029509114425085280206454729013348630246174870968531234898727917249016008525246831772088336808302080398747260680593997943668406800395510347376442160804180041241294151483162636666088514834406180325298666288970347312045160915188371652004253710532446075970647473256071387577844498244062325635719951911985992434887605192768769505342113492947446477692171480082918661560652998114456682610711579141645784835783779173338314143417993727689721272568219863118830758182166199877627150751940352196020556070540056789762363760137324810124018728067370991340368226591531735353608788270250455583196890158743417338553695576869385370195620224765066561376588483180936038279771239415957142269270277754149602560104544617872923090660733812991225704489549247204546183457821616826181960899087877322958342830057312293028215453664572859347899656778832645537576519799591155170309578137507184081001915136979327443566056289939683135506414963022753979398393940700824503978472658049495331078178935719580432722052913160975746787708654134916060295846529742979883784196882444792421247574447593520324080308598730879423412254228215803444343389753030142051710864661732191960098170674093575530501657379279391212694822935547784105885410945677221982268582678325024806140316092146569293663313611449250180571553024900619544648414263551340856680069617440028752144796979778197232869757824245919529850674353356919645368805034791158462115414830805031112661135876677617233547095078994248687478085453190395507774154166945393506308421788448559686273684929535713806537005362474057692468818331961500755123949699740501239970194521325943529084553115595265625392363940458097191662761882270919165958161626489993986538005535895272429705688585480328074582570542030124011223788276800347662202437281442315913251718003749329637721574250180141902107648213521265790760072486365661776331242217076880068912777693365744671357570697354786992121572710212126735511920995968125293095212392804330007012246756613439562622432004882392184892395503245828271065125478327805572268700018697053896390815799602166320587426699581226199997800965683054391345202735769040297126986485316247309452878523947542351778898714714772989354038441343098993659922311719347176259198934910523954407917607808399015417681811677197170923314235643691834789582581021993275521638659376141523749645076121712907262261870276933173210601204107004969988869059525689174430846835091215301650592980376215506964294330857941796268031041491535557840523139017115863694232213663789881492114748508182988565164209197755967809963499009001729529752488376642875018893732588116018844501324267087619138489723899843319638755445702624844803971823845078105694831682328501110504435348286780927078324470021488733882823041522059796385102532691181516559462996796717678919853673952445237498441411762690950028390994075147355471473650225005221626118242723546050572532395016515507583753919629681389964408461515213153767276185180748415314218125576315912848143707465285338215476138236764578647470559229818205762035414051336991602606188321435338143721877922457178280755351141213861252670888264241114102329296323183220380480533820997771720840440827567512349178545967116919009200096495030564473778306276432592709275439678776022561608506971155838049548886415087813360976678753418455615492757088692937747422554867907510522204827144881546809578397837613680522172043210393903295501169319752454165714510958074867471313446900388179324775797822508257170316574519184834663235787179728795596398876214428641135506292215528145674992305315125173388975131943319926249292078298906597758674032580945162063148580720843334353867392704807574319436294186026812850778087035521757780698264518371533929175080726276758941262740392953075076457764520685837105815091258944618543058590258682492876070565165825894003496588854679462253104749333286226179307115681718499515904175940561887860292629130541289204219442324306167825254983945820102417573985541995735787373765078097108506856367834818211161781448812017138959145339867732918090371254693680568242631669548947337147283490959785639153792860958519743806624802183474005386346990935902882011896028938608075934609680130535612296035182739643129537146235677424763330596960569061957672241768319334671398429080352054394351774180259162758650479365173988154544062271348503507781498681474094087743920926172427778532958150104633558121377201785048608509467143825688430294456498818456279063391745379409657125347087235648399594227591851687573118258142013101422337880049480555702677597568399246471514516288818965590785617336044220622162695180474395495779115314955531786870970258568710051185710075990726874185991282848390314025324867961867770433315650644844983033406257089562685024183056959876691684624811266318035341601787033892335300179162719365444676309975393866993438417129279302003399584365020162042847811694518150475462172113505742307692529024354588987216922102659659408581894600087402164724620370826946096316990041351075755337770557772697931682199108103801964589924492787851373048617387693992241048449660664431837898725235270929761095155543081599664040287679796558366839615449560222523455553503337257132129808386546659760762037725115117330197404861709897255085052094074959151311625015414993218385618110816223484386021011192377977829964052672136636346081303207979952206031311515261673443116404378495594736859202509023550450507089775894554016217668387734124682102722056868739432276154146468913436532393529498388009692067054059557005868639207829956467581852155609545372901116312794540296858387893898967694735111274231976373153683698986282546908260911853401140773906550008790004464115900404868836503761590040385943368653232833631290734704785620228757687969067010124964494912754743354318375765435563870824501118446640297512340080022834069626980189799741231515351187008517388050559146088577595862295961548132365536157578283985113095230197662710191114071681922516038154055025056575611667831676099178777333677976376084667684199667650011646488545889315762774286802671793645631627843718711722946571664557112158916273581800300827892361676833761656478982022098432758352567840454876218998937490025283267772849087544180505390251573040733582542675120886826600941663484189556835908123207285592180525685333286627928154094830932473134106847914874222986989042753783833229044429756135290904286978043213691908082877784974368339946094607497949411240113896416684149129060419694236726421753563132836599624681794941165242228061871094844842296184174325350012869283441223364899846817244460311316585342644210891198606409583157224921002609366928717954677533540290483176070990370292618519654398282913968957033180304387219499922558194845966259314927362417807649435554058125886114174389768845806631557736622341135985568529221111050194216110917390993308635878768972819420827830862720635629377319737242304372477844739687277650450063464105337331947673568714905422994771966298419030950390371631475618743613482656817852128243047950940680256162285305690498734085368790041055923200623381153676428782791898263977724120918749560130599421355235835231285278058406277557715355559336663275944618912793728740972077637969066254629496361919455285544193060178507808182198968507647179170846160003642483814347209222640166542176182162442975751949952370016735505392568492134052292627649740150017393169983943760303390872678087624457049432112341465889886804466646645086205475484736526264443434565084410670855440333760943562234078845954813808570882222757552020448483765455716082253661002951873570391303472921141437639530300412153799376294187778293916654039722613381274733330542085132678019120672008256788472515191197621097724457407277963820880457928670803197783764357781348963795283506478426014002713691675041101858531966477760564956532834400368487035800564942799797384037210943959983277848380645749400720666534838258550344124904041253896467932992060487940543272821834200115832236412361982867885438258955987216223031749535809632539106911883602225068835143660212013049875203350362840159763466306435367468355234948784667394929514884566293023746503097270036879127555125148393950461395878091344244064980655805039261117593159972624191313201440606663925916693866041451914502350994917618869239388873373511327832714018130062898600462740586178477669853684918485933236004831965348943516779774290625909836269306420006061389441508487673274546704192786154434963733286799366933529103350834608284939596822934482217336905005787505951519877393160831981677575615972857869695349298954821583513959142275544644673919261555272825293473391576485450920587058530786271402314721818013081051412000510716410659039167149201594452982671581856312925209870637880498489951434863213306854703473619898180668625402431641670054897121459878804988928776275064116309657993669838016195201385695279946582795400684815913026130498599794386075380509600754454254819277837095681940494216862169508789770409546565810007263810926720247097144964222763949566511392746841144779906339810309817421973555973101013464313369685369901618241470440676627630853285293408739784821096394491671789510762789799397040576453596743733211480328784933618746607421019091462883169682095472856558626988597655016280068417091611474231492676474137022638863843102985226749189835321335602289694685983483557638939285288956396043236189760036928955520900584394831178495200896038523919840709207789170049332169406194960254620201510492907409262174708865143739552100190240314288337979688489564457256486162962429755095724460512656294401392892097032137171616872148041300836234179553984454703863997725306171183596443994810571112484238073260668812429429903203096940558822357866134906112120674164831010148354495057159704359001195968732474311449990584249826282583996826581994195437886675041468847719136036666254113995622056281380011078790614135038761235076887651906959523351652994976203010454411725303103425805417730071190684805022373648699686221443630897793710047448873205415287533673390553241435637457172532503522379268240484794467244388400345571320625969931318401297073908143146395107735729148656965636337920415780838890230526863003071381524272401479854623216625653238048744143884397075495543717445883237434012078345761861904646947172792938364995443210644191856623365868479903404713916234198455384597833390123110112820554784955306636240929905113190189273889549228398029023560345498660370209174978117240166914195438683493995404557308778410137519343853098820949030775425481033593004731769273593862896813628244906161161399241381383499660444865657333189267724399111023056975508337451257130503703300883352533769357901794882725065019836745923846862611390278996979453632191897340023595731570515720472951306890113914723506114133741529268891077223206206410408680075617100100159445807393453060174013752239709442666228428811421453154209407030907698214350818520882851653528849203733499873289253996457411002576499702329191118470741371554819942217940002602021694944514937136508988686666058216732452844950938237400510934950099135386751705972812153379546803458485044237869638539021137285621588202291698526582131513550833859527456958380312183121114752335971025199164377407349071129867302175044693391991459638757229778263374726007790522841938498786265663684850808921635923076181725869466816331669428106210907125064640759322963445257671362415991569129535379295726240745733302661017894030197532086706468749229240140234634101461559233733893627423634864209268763955909128289214135809881526152620841870603864200534509995346448699014796144452030637125499976812068395520484176881251521586019744661194170297988987435760040005745162764010184341614152731450697822311906047517130677260678744059846954981557605340532724566160076870143420534224694758563486819093220519370063046385547933556361734135921061372306765677981386922228628763954593442756849793969673278654713288389858842105177844050696901513235014479661879265879334061697437128772872653967774541807675365726388480637958742069410289239869618555334673676240461363660056227379727583542603721077382566365326003031600777495591749084371193208967168651498529326710418378656659403241810904555147164109504482770674682458469871454711989830089899150757355640010571660996275841040196986683091298294316184397089952110411902901387414886173859054347343501755214168950779815918184411139014158625348931039600991800777720327901263986263140189156498154141616830196242979417388529260165978319567694211108605567327907043003781999139261704335071131351908754596954020808720504951654036742260462530990699242253498423827165504763640168020896834299998111695810178285111056611895947050806936371454330091428434073473117955183825035331093921174314671047285569268313286433572220222632112826635514643695696975002965910875401361258077834656328364588491612508764903976964727704401722210076310040629170794721415229691037439201551542212271230789460845373309677644390177893454069031956795175388692024857990784338861537452651123415461815566545770458042835493721633040706752655106103475972102560750185242839255448118400673157747737114198522662887346034980872157599731165713724785376950075106553914733891824567867585488484385476911856369879099967243816629883189843132707217067101747440595426757183036892424478836087313311307405192708814090398450327099001099990966234036700055842115937220788780020880389659719362419143374057004748057266601857596946327181320432418829608356628422199812728595970998708904923597451331555751681009957262111038664012524983405869443621249551215330839566907661415911926881585440438367115397844193841806313790138617887354949067080989164215472187532770482437398259793555131867904430677656866730833426368022174540391309957502869170880516181399833334581208148912267164651522451461986008559088684627006078151067649695739699065416695554807676350097641134777424029128990607668787827468574649250831260256538250436094491938125433479505744067263769554996694194122025983530313306062216511707300717788881030420563331978093114653077858891856665005865170772978919645960774177968207083349193868533866269405566438716266161956613370621356717456505787960125060871332926829768314306611657184583394473484029973151275075006217691916554373217332289378416914783113574998316467540105784485859651545172757326388030074404254373523474364962391914001413605228021630493662109657437868191731241439464237364975683674320035429485075128593120892865774667089151288154514493486602732277020343641618564028638278129027328304821206824095136701991970103970186389408552812520725929067406537538902907092243132155920866545342733932488200266297118897187970522088372076689027079236800686760030863531741154137812491923506766255243685129620447068771317190512841548471683960113382889239695814897850370431635071603831026984886429707063201890363887133533333548909869657898484833691310673400703659715150714347747090761981929188427147290480568617161449177756803327228065510183138607542244043037323633264869895885004797414019552538214536960054904083397177184033673052921722015176996576028668301477397561977515652397463118786886868774302967033335369782065476876717324219684147475713528035465886238871617055712172496012379999992592103516480249118584417443820952260217562370651157540178590938895913970733815569699265378851161869952045794983659576239488965323640822978780205881844633614521852358750936897186793256305131987552258480879444842194874003581575744735453850783017261160097563635654247609565597378503172326105998432939071059972558834135933721506927377754166722758195351659441037554164519375667267012858477566767199606308340501374155113608294238315960789480628010921646587257744385531725778210775173705731700493300571368728801796194627191158491047764645985158904798079577828005429231864163919161239619476420676843543843674865753238739502723300548779527677553095017855315906434601628308136111378999221838395555457457613026883161228596120628396260613038883079610923914579973117975922528016706082231317533876405656907599477086741879119813167730155346882079886923751512095733521838745769677422336235895015239233240284282896533541352791659929874906448293519410574790646782874862267000103866760628905229041195576216142069701146551792333200698096950078359235161420536084344556779271367147568815027991567065161705252424529508236860612165718348350601584267517996974691872411321637151549376258657817805502574355530171122577565754159899412264631431335551615690124632525033281610629304623974644976412422392589625731716050490634423467774621467913757314405154343674670382349850244702745585060480329428199319485904100883160300147426202386807120055256980397893061661795117550798853723752092049043202891144964042018925871328096340603051586784860815166496618625690509869852655340255197781881691518149198008457930259550481481502348970135700791252501904470029921753025311267795604444921297985221079533350463930229949317760040334203694558450945552945289866165765327091249213135128726313477466288662073480884324743734426370472039298234724170157974467623330129434678300671879834363006631602704602487950668413783523185883615323359463908240825251094307880473176803267060566395374080211114798347367638881125447910217151705297011765030534203987333543790714198346408855088436283631868922815223737242074046248561840541270109772085948988838719181120651749399833488953259927641240016008941658797598042939340001204584655103017774561646863035296420232104214565300828795466268870141658966356767115321038574049781346953160868090253852595220608764720028220925935258127232616961378502971664638234485690390794557226403026641400011044252702708528449239278978825868684581446118738684201452610989831770166699635719333860364821625649312817553973558742863176527520056765198698460678087703332545911439607877409449765060618888963397327019377644821273749091721582039952909138623888983083586949953959212927945004404870009296785382432595596389399452126340111348959365252097670151502494359707815205973207245469694500837915364836718602300831417467932657131486979638385932692711636780082232280926574177464912944936304333362377978914478296452779205071915941442739686711366854089864624733672999695770737837890067416425559576136837754190347355914492247772865856432380371772978184966008465615812822584458325397469208598806519039996190150727835612889051075210589708600717579144217917043231710946982443881811623542501823224811093608588434817352295674113904078784463760184142696948438589725168277916129924105642506716312962891150525996597975928012281317175410399567466178957164155342112321987600734841371829009087858648899719042412451840182653456523889655944001515550531476838654905449108657795389152901247262233875628895291843087521948214202223193952862971469801225520699644955332276530950018193964909078894562925386136002327889469480108021409240069424474166621019627792367969430504631586524148660128152638590560491429405122269444641413334024039590628863783304650239764096568463446493808490877480240451331432239542499769095568203643729648681029234634154931484184578693226211283028342186545559383634967892848084863678620934754079291385785509195642898845492022008128183415801969747431996445627811722006877665892436527066795178801424846597091880054740646441312547030265925831526537374606196924665445232008291083886820437567258174559361046298762575180055621625146617206331044586234521390774270316107412234224004787274674763289138509153558574732995181069974490726179842227265614549873118175917453850082639093016230402859411433650102781676959674097185788274268582388839745906826867078834552449429693122905196537132386559651744116700735842481480623904440680690976732341061188573436777086459290855085143571790756359981043334679580910788096460870188400437792005754324309338933673376659926607792170292536539313202866407878713765043009526579248942472995108033741881321570721150941059138042339931887553279730878010762599768272858644484061558540612288093520975023730157669410490292571898813799027588679459409622711056571730093859936479076990234797169706882701036128961039866618243395539697165737239257992771481415216022485945461601291740345068510235769335162458723655832152620229391316039471600814651235928009705798808129389521708133907554954601622846105755610274157974950183299203284691248243929496515966673115016553734419946573866389983491691925713669308669556708062883420619507233615637699097909269623968923236326004330372744617866023642388710244824242647114307547920445351091603393405517381182209320123654342510720468557808528194372197520304756707766821233223999809433096462301888354655840074332294677009595662426904679283217363594103563317661989879402851143987019481316335754892408701186176425289895734703979092047084238689146824581069029122082083614720993999622709439484492260949585559771722056034640864892667723459453060190644487009992665520685707176923852563710126954644877611181647230023651515979618833463648077980852073310546084698695261912211617149037193166720514814934596565930668608763150804494669192497860711970976538582936004334389343698544520445988336252144786290567437193950956015189214442395655911790235446451683225901491167454875690104091800558507276655516506753399237149830186918902856183169838349327652999391755775974989691615468939063047983502092127329541448722783993730405294091583847421588096240855031665916247244075931489206698141022791461506408335153503717462970965842804240501843627645532066982985829870945565976958705642925405870017048241110666445827940780315874777644397647159212535239604788525333775268641458332756987123766185118008210007179329637424675495621590464000425417094810806439770910017516857421261874609691739160060277185974901826691675200789022097642989198558823570677992911817607363065529595521537301451612442875296305602286890797291802819220361457232103382273559633416331927961207925288714908802057224267162664732821190627886900414136333082792282157721915811447142341388848761840177730794065928383791121932957842003091860752431605784138098453485569872366259535306347669983707449399541095147618740097332682043344844255163613570791477033375830194333177879477728727160261788395065655386483215628529180176072187531032810938459294777481231730110496792018665902909364240174796398461516705968041502146378580097498410354443592251894227056136278756112003633184453086823149027245908396098536405280455549642831918336031733876155538351664187727439030680065318741809848441194983590916863905064755673847127403671616926334307403206137057353856810640830284882885224456987432677560220330055443580284783565294674722042854941100972915505345004306098831413056780303334869259738878126462225490022484281459742793752838081190556726449918153583792029707394123304307862388342744675856960886175496434949412879560006807421840444355458553885878587490918815778238922300369827508348075294608015844051073885526596049434748935246895283182907818650981748526680712384306573918981956343352866695994100970431021963433318914282206245845936161836540381701514118572927322373224410617663459312660735159514968643378337813911821343163110037801609983833687598783562221824960809358471082578478165465960299231408021150741791860771804639056362526721709417548434519058877257015638145391012074607088089743450640051457443132871248957370122066996360263842350396913936183611815452493446914313180605033586546639630762360818487702496861583470154251106665284951517989431167106052991222480648498491943125309941350377417142832521187297255754209859120414644441102682632004933815317000455722543705585546118566870965675003446689766977581026132558073652095975822770187047617860419669336190571914768571486388520452493027802796183603481080671155489599348088337014611514466085418319441015875651502099981606764898606767845744452899707082061342210217049849904035871702339590162195251949102621449188467890003735684508636822230711586459021047275576597217625382628967630488400236348639959591885073356466420218098894170569772264299019025029594855451981425114632812076571845415715716075660536571037607850207604859592294741335838623967976990284985181203915768992079237677016641880499815267123192805495315118824410382001890495155007836405955217187749510611007960029253549157241633249219210306464289405455746300958389635720435358772910698082223282858163559816703538888950030203488757289449288972996553029033164430470583114641861931180560289105037398786175825122932955631108207551918731048303174391123611050475957878384986846099584106183306601387778471902554103473980809042759471353985105910281612625780112862924692042173197710943084096395679273566293480296873210150523535145572475901650061632713041863858441381750974114105240620255787404466349071119724022115796011714230981735161953887057951453897187412514703896924662168005191459562263384824111418869418939677968260662432612887619700810670850593582566946145719220162392235970211169265790230178735581372954704125362281425769997906533404447178593234703832061808036220823305353541515549354274450111326681189531566331619767476620158859635807189560496977011866628953555460346404682420660442863522107248750593250382841777042831575893853410589252693738315149736214689671458304540825353511499954161818348121631911937134752995761267553406965742339032077863004473793719147551802550166682686032284622242772350425114483602293874541728861623045152525546512729859676638178439514031817475452104418385396837458792382970709570218398803845192603341976018870492346073136370534570506940728468719564148460649987361168907571343342641592499364229645855076033393536596494774523457360570220934277312600601506358204732970808288713435803248996385713347921798447408326317573556668720916794066760623229763825507279630847596501195282151363132505182896528633784504714527706220487562827765526897101689360578554049806209434162537377390484920734524601100593419649287294118993483500610993414363083019999219001475359985475204597261832416749106988297550073160772743505103660905226880278907550683333607427833008201986328703692537006222343552215847004274789598272866875992156657012418487582199750602624320528067346730974849778836864818672464321060496593330363447506053701922739109086432585349450388685636925662861844113530571701215420623384277861319462079660810568693539729098226582040085442070711377478461006166164833923684203288453194159624128022740196574160742249016251938604134450330988015247661326638252538475404882942232225484611915417297521224214160350821566772954592741423494654449918554375771016959882257909933592765765198321026365622262806874484682762182512097449660318057757801956468158991331950372366370226932217052953876290738406404022140258101155718345740658123143289746184790911330817221939640214660300341569202352603842369956352975852429904896346998926757787353334562948709672363274898756277688166832471561059060656388678897763556826492126586551314610520566996376409617312779900022803782219300620742513764853215042421674357321083227168321768355697246398653943139495702476000764603228672856343129556599543378081524916748516962198844678365931372358319810757297428692222891336263496475167169349885345738013595850479330675499721259555883895847616921136692882435873048868908132444491827879460420246112167763712336832748910070469893737834400671050738457790964384554305491321923931677130759548922301682414457338581247892336066226737060650989116304768789127377287941608001681531290808896381134525714406739096361411361829845729605611504574451878692198445646366968369624682777925124035681760103719557202857945577285095187511359892031846560139940478264215154749778054215799729217530420455667658393780237795327799301898778129617452282421955385999281667758694406691018786152590625659229678957209361751819997732087300696905103085427695051163451006842872580912705939924084891512765218752960225529096760497587878064558855991906236462119561301332509172546012711912952812954211627922146105378771109324997245311402068876084632236994809229148278167743413027800964889468846568432128790406185798103390606128281979818023678385218250752926776549721135986245826969237549495666978387657950476802931545183947426150383523811674321638980026695906148918902487470804567291413441821572462743068459414124327688038612463164975352780480782503036767735558616595692972376295467617406296792693652881343738110809533873589918989052457734573134616406636666995112830238726605963792402519713622827208331267463507871623436466428492837463164220774857082435655343588570143171262923628088559080076868358156140782508436698349953015290251558303835580122135451907612863554581591757979474776112198859251025591788646386512354180563215081823015269001055883959894607748594250927268486774896104129033738818081641532943276461779320657234726347618988415156203817953412362364376404472620437174537657815556470549896231707677112078677756534527961959858657708213232293577819178418410976130531181521412895401711550193462785683834956341254481408732411554722725102161229110748127558399300626183496498267281413522741035314408075208632746325348205769308538487484228558034960483594458836432837842618634609081460705247709901287381734395254411345107877653624542080769157067258141818684810959755485865524922901117706966953841915767810197218568246766628192147521392356446527242002961556586941238202935315141788736603543180891432290294172916849412040135551414519235485120774210552392458028994928056792528212111699787138345622747326867349366788226440214978317761009748986907211314660865067586795241875652373945394602026932851134112904757323955042340006558477333357351480813590053219114730933338757184027561580075517318279576735125866777341236378012828628567003056527246054555822419985292600381804428127896873896215459983398724825547234832331750714785560985068454647415093074412558201359981041607750389628363059438805005903745373355434640392757585015859336222380480285727467665081598804296509304272402886701236255000073328351529019399348900042761043522820365737173658704838356479276207856451798526124470891079652809401526785846525124471602262814039454871348752071968768487505702642230948236089336666211111252853473074616527646297879832009578126599370593494859619200087705815627005827391159760935100054417616676859614721821364730170954799095621999750989996078438890820725453442688500651246572245845504946186818655219333465337542900512185374771192599943294339946606585633536739964603013677622199370617385367817732746940656096636119095527475067542262472729933194160927461020493126031951481026028552025243747034798411366849301744555276492663998139434264736080087824155166507387079205306254118870064825218058124985196155750809334974443421999160672005266308345699079526860041571072128858375833244504636166502492062744632744949394569927517059136061297899100362197973751588584856149335133210610018752250857108029754288659835910294491503843018473626771703299247721667417193649146104856871798681938947050030475048046207090647593012959004431075464408412912822133777715603225437836878105795499973064913304898898195472603535878071012141134440475822429015371632742763899156007959487237704376769213575232260541044089894054532976797337892353458748268230574574786628695227689945908770319423178255377868846326628615883947325836802745667499067385307206376504122512102624209809576495724935314870732685972083893250329457007581231120598126024539039018828752868635976729848269773920016516193364650758676373640853609174163584991157489668842856396236054908121635486431391423285273419351545872829983268296210923237554720989556022117316051041644073221782635074084996000817099927280446329021363853251505348970601998914334187384478568960724348135423215186290379725400564342103654381279489168730357570109363401799505227496861845981305018142713415194449259921530722757936974321517537202137012981116792231461382674669315474269841033329657400218360582542515007352721265802959219248895761280832852968703901416862946870700280867949837885783557761153472911846311409377263632946822686558978571106589091197767190119006745954374552176422780970363434493801574375629821604783232308911836912645628154233260304364839433294705718475433632825313313649810762536950513650101273948948893620476703192313046834562599545100079710863085491341593041110776379137458026973787713277730111332690549185146295115047638157765819594991508563099057983050037299005396692679630865891811092473216812065702560685686472294752792693332758484339442545066601626710702797247719380667507851489331225723887667930307220733790079328287267805359192243524769908435254372582064202152179621029488459628248519960455435367801867887571247268905311778032756863168335238565257537949342772067201260542936759304229448637760658775250691353047216564766755293763809705408674381404769473484744455001577951794426213539514316280252898317356145067080452124439245852145795378784322285386997800042998246201214893075576587896958957147674164399313772487426309064111598554796791885530662632777826645292089277764203249936128596346425696631837056106831802912025987732880564814731337961183086447055686588811793400525890276870123494885919003576108818029616777967784203210049664802965011819612506735474716399956787793575263084500178823654415383121691042733419518763620356384486934639006612218736060969979652257335640147662811189499229501559724250984703325822112062657522981162994520210474880605772497552765390611493501575809649250061407766740878011881064882226580324472591260047162592642632233003798177238728408510025848739056620542070727741957098693237693940294427050750099862605025685918008073240207037987282827390127311957284702742879926676002258200293758045121490106497292929778363816010620886206195140384314769080565612833096583792790409947531797019004090497091975634200893570634165645058528204043697012747654962646526513693325193354794789262160090713943307963378604626402729940912948031769328088942789263598339450789567643001302090958364532057659202965666682116757765367942607564268355146889638723611189249680850024965284848057266362040672542164099956641872555610799835094999717350000820366873844816830973336041107299959775840480450676479327445368049810107991614229497814827027990780063391531733777424748567734732001167020543843110611066281052920125723958153362835587950149684969708710803054591966971843160310120970127960782567584439925674359474047879024936896025897612180335813841091504083577106275174212987099789131068063368898292550727954859361526826798495505805926934272671612689819567754076157748898754086647165519857578467513904947608530386062463262035191991434898458062485601472368181051518265441193314118954524945784438653943630129863709143186726885993017558968111821140150563415754527438150808935019053619831008274221037436101891520061173772752881093368363765569094752128630074831663326872583493745538620638932173118508264763741286576428266451527113245285562989918746620395718957864660660474395963850314640413666888667722443891443798210063541746117654430354196994284257384280446235909685541632320998551514638332588605371035474017311007426740645655083848791353066331610532630796872143545491626610539234995036080468685149227764003757428408587759511455234229372296024757386365034497383752506700063430474179739841766144261421772747447383798185523169940462773543118937565538291615292132055602962711531676283041001322044944506512743046308415573623119470943815332032422836855312454856884436686032659483596273113359899811428487811803290089542183615190171238230801873855522775775830281279272886089544493212070803439000093844075197933224841907492988370037721333029082148734382757871176706395063691468370750122759744878833362491473140273287206629177317499193627616956112669808965199481078250436633526042998123004707660683298445202979236325140618748961585228327210092023803302011298824388434788374303349660522238949777249121429629419029743060953459602415756909574770612799186947249246658499672040653034049590245382054352876505235904969087243667905557994344479681031477208207199003388155267087628574232224990423777658847135974616173254218979550537504284660462489259305833969105490477786617381561253813952720973187869048136291477026646698632057081863969552106102611875997278710422469731729380343750680437650073839917545605739954292586005543133805839917426757678335318811677458908756335729110881597560940076669904978548365260642037512284171243447831117443892671429103116578102024242772627907378870340587005543374575903299147731229618591131359964449160586324243689676228961339336857037543145578458136149244131949513799214990069404340857279551709297634484762216962005260218505904494500823177485900733360438271648913506615472697986126574511669177319760427010333940320047746736404037017290357830822528782428613685234613116015370695987356741929738082274477112217324808393313077731251467419612839775979928519833931085122636059996529093370056033815668575871087517383901566408799010813799379453812409702516943861552753138772248886778589352419949336068074204313667303609072687042258959353435254992738732054398405793943792806646912392186432891680533379281854922282449934681172492852128121624348424326665662400355737783823644998918545531124773113382912948109027812105555955535594250971373332783353212960248679103917576179500411361288015486165981795005697075583665136378003018510257105367360622411661670335109332637831292394840423470572635400506733390905599814795355226461599664654105764043750735133950270354780998881838498181619686799423496327345854382048662068490052434631679244376114343657102639984876311842184043503652249261287902091925117737671328869380721287978530142621551085925059182288669235799144296579271114430453503161361069969104864362042845251437829216739900398556592117976415921456533181167948790583541190684139071202742719828167124873075238499222389647170330550809450014364734477170457307391277712374378607634987879624248151620926012837361986432493413660435677081399651005011530689847181137134716739037976852710604591872384212292955019736673988677806232013141709418880703448646004837325687204670664854336442764573479561741620934828548961417119394297902329472950785118235327534080544123883973574579560073480788674774156817799148409846200495032813568126897492344105688437070247680905796982296017707672569917281998282879670608349393655061140070499875128652511806434786387479194454166163620037092604821128320423848420949472202348955550252835329225623976225182877591628866586759258367895599671139997456924544240074583350819638872761453486934137030973713264102467608437390901100877686743435633919801211569535080146586280883280337996232842733505400931747797116931996585907087479944361402005838803638852536038768423883591816017605698296370184702872267164492516674995881505619054318267463348298345146685845155499662300009069832838739308777825249777918213842785166333612728085030400654422307185516141898340138666852627998568946069313651960438851538553422578817739032366327433549429245778181765509666182748092759110987684803835460607040632442535063153116613003195455793035221914107247853849045208977137430682624086493970468484758310058892515126988941443464686360865451396461229547438404374142720233616390767258237049465040435295963656573720501370570898491835005131866430924167043259952787090181170475577000872706085788727085415924575697309962752487974937792673365701865438094301874700938694263688231957966557196175100794375865087627304103217768270200291525683051390993028854423337964133830187098557280763126521243169552606200082225811459090406491756689778033489245178741156825049457408453245708190042122357216710600066631345691253491787398407825576590922374245306877895121827067716298752702070576972447820290967258847612607772571575231463741300279517048271232510273191424419427866912900622148609227195833600760263219506452598886704064632497660018246307065424531042830369659849211406057758343571436834852842887576946046002880942436943934349720079620757628556585331255716566002754755703633761729227023683418979677910095729244988080819796829900401546129285738168923696838012808324840235232316355478121956473724454922009520126508490775639781282207335802563517402874309305656373197707244806245745682128660433001667220431333464169064402729186988008425737139578210996472531399469966010937572940498613252928086118626971690991608933230031511976869198303134841207706210375270544881526873167425257053542962119118227596500041428450918692327961952630376465717779424291283775170219763196945400517303499498145919752831327056960017484233573248416347728538304918081279469249696333440913042250081952114794658464165302891036871492046379484718850174733649879218076930469221344709904186539126960109067613229945191928984007922785895060470788971482061927051879318305678224895249107182613499179800707186791487866596883303018151290970147040452160767470320209386768802987347600811078013657756058363914023874053001523868422158463971789637953475799572172816924717201260195913388352486752303516121974022138289887321514662834408662495513347319221526307716590452730828617435184018026769734856934434781285153807205517939173930286646371614817744596472943668903351280033728795260692226745536325823036646120854228840423831703153502877300467789988623759693204280012766261168481090159865733276647991917958510950438429630035633837026388272812085738956026665372829921163075734719081329175639856592811099176737599590751406736144412112741632846977565568134998731414902725960782562185159314484339537589835315657998488490741812811934831761635390840887513696825474408883319128311370450606565185749636530774015429303216501795006748147832876310306536066552431324623034880150265813816680858491161776453905369363693837594961694181829493806756318616252782225658906661079648784913262583557230482508784636666388341912810434796929210752725811367305804401857595680838503084430538045964133590997858817314894055668977510006774387560505991832645992785552879534675083599980272398293858511234551843189601863030377691527657417894351287191581172129282244513658989907932186458205821003061545634014899087495738137048969011715989345419233470198375943101352907832427922651075241642282788732454105821100844346967499597590321482189393463448563359689375518066837269328527811537139674763399170121900382269861794770870852187531457895921999631994443845823846034591837480522183914985071514129462879243254765173305049887126120526023858402796503125919572763680257772075267820628850230492558937193736718408785862106189794879162584210354375578583614719664432965458207805059472517955025285549650188167432120586232383426579262791708171456004200707207123544373503218418040088359221611854005850044003475466123714776098973665001640443873811086867382576402501438152542903624094310600086282542001118120781073592726478708518469787172616809929174631725504020159528300918819330246085949039438218562900238117004237244905510573975150155040632560155352965555440327172172334880686411620422062143958623337780249980759216386822825228257135075877443120074398531665694755017127742981963474074235428723115544834014675484235155215382406442226857859639373355150010679998453387261096570868826235012516030873368846834250038045382331486610870323769035610545265711772844311828265907902302580162034234479472769781353274865926432480133604241081068283411272388857989052048492713431950335705132221094311383176446412252642486210781413348641691071160313122954388262424572428399596080144982153495091350530070268807360038952227578188098446344951546144082519208195944569916630435491751595741004500096254095906250263611572950058761851366892650901582627890315278561835609989618613122207939812466623062040542274641722343995816758331450093972112946495080000303131886802377704008613036675675716883343069937267521314007002500045183747778575567446990502648034748618080775732395478864520316444291667711697848980923836907208028080939162620854496782739085744161615993701350661529947836727373675425702398327248459045571121295878484867704001653352808393114892886074495338618036235392413062772083957318278849396586336392180018338577821651991464728443138358441630364472595194499175434305190088827896787031615661373065250491941982249682968709525765095053518684931944863299528198478520920057755759326446198565354282804357200753828525177214523180893497062147808320878957666507604405853939219106186861403661125870605084104371052608677948876903200300701769343143846024757182458148282390035203633091520326434782014314813567323684452799453452020419043130194374925048935048335836299662079841105355167778466925086359268426174790271386837513805313884380860586527517731318389512203721032185722881381534309952483324029811263898642429260885162849069463240796744691522391563476301374185476576888681060669001602241028371242022202856076511489298407331113917433064899759296958583060753226819644586525877727244666629563197546279950532191178495236076890149825700881468640089134640065146559650092509115878189496721217300397202540492138956281772177724137250236211387503898557278685927240704533343074108137142215818991824257106774501819973301761516472817065785954304588360527578215470315209277604868242298165368217484516428015601203488665908324955282840396115575024600881507496401718711677276501518140033303663098602569047689704183974066972962950544368673346247601285916063588009888290373476465918001602790647138711952450505387291213541802833166696909772956417592767459081245899626449040363692586649813655363864139018056645834030435526671585889965307313674182502532551380606770583101415333346986132403413813928256697548459216143614482927401926779468136242987083551032302346391014787512619396989608755175720558769084055858102457108782595744985116278101897418920928577117659663812506401375759926946170966237458546818302552916080161147229672182163976692417074186554932404385687163307416824036427243853514768535660219294544617229893460886240501430881999640900687897705767626865494812921993033204462351013953035944084432096878321790820448869659753625437047928859522430125930610022091988545619444983459807095167037525773818245693421851826747758589719027619895756930578949140122489106675002488559572005342113647529254784275093808902948542854517184696303606464704648026243982090422394626255419987196480888823430350764019935503675298039104572232034796591817187987837136087863877604427280334720474917986894005157895113743068318698902483868686032027504702657086881666568722271091141289328365341570834976401476655372219250247393531668120515726968873235176234791900753860446656223880152934283712434321020408516792880990973059707880450830774143598054927706312164271343833244930436418972741487316289441663613353917257282720777462616189214499578983793172941591618962539660402056273328274068206583629504323463597628759338948518154114778971777269821232789908196608570720454903794846162230488731424780239370947363118751941816078084147254588652170022312362380373565449721977664067518808141518400910606343090884496541669960696573738354502359102540574095591829086608389169219891311206126286087844346048303797419579451033849519351811782100609546739751865838271312558329260288952261342269007369046125929813665010272576643822309408457650247681158483965440737839003420079993799987548815652848644488961208505946861023679160184105236079991221142365417196648001756738886560080638542202606093920771985312353022510895747211450430308516745038197719790350908573056335292422846554333258436926111990647499899647850692892330657653957241201920488127648664172812469748374760906327050727313994744291255859756256477068569383979520656063918080071388909075975664092497602259930334446538692989617305818015611075194350610488785934639201254611969281865693978237808583782865745425786901509325605894572125462815775342443767568756234700453711457237585612934555089467981540011917513657152616955648960600559780430436369910797142421770947818220022578596170380118415591005398110333743399581842798505542750425687283543315608857457321097724023476988827306624426913173355057376281379560523880423675378176253527435353654582269509495469690727487277346065032207255870644698000081123044912769569608807587484596749463032945701038962996078869509719539691148797349326503520258700903737330364378173147520889957109607700312250432740581239701923421985127825537439096090339657067858807991029407919840593377533900747377420314868256853959831145307996663366952239652101822725784108694045520912953634138670670421328850849960839383492130108349911595960814624047283836756844523791025444892966285945691768988295643930646069769722962726644910637731741096773296435965746198629585433697328443165545634686162415762896728396745933071297465581774355452967416720546198910612303739060797682954730044978565214808607853694628610859267995626326385894087245257202941799869350961089557275674325444105509142148576707370179259429927223962540715806427282753473152690350640960004824426282192983640203619196652780326445879168731928285729448998641461870164545469017890434809701255431147134893356428718181291255858290319602952170297745359868485674662479429963499330126037949633070326469718487383760478913676031741800538482525310560566340144421336904581697283370535962744471426955945282533444778852594561858390093287878171606169094940428719169587812868715964655799067327051726990111270907081144570357494758292559241465823370408115375957179260772444650115523355794717114954350275596724499713675894213650115127551890299018249760662035111557582574917854510685707324020883961450371032739404030798500914422575613768406844351169041008252899485148454361679570275249678094370178393243768210618830875196224184430164844816349044112564653703521522801804167096574921497054478005236060407418728799315209553207889256460150491383443760046596077704528865641796038826861434961362699169563839855513730301929666756326682997762850131168073601472972079838577226604364856545271216296927913484314540571889791808934421650953007308823403239152104734222917289152338692151877888090302625280927053656448230148547201677052110982474747941334353040212353497905035829342971274410153582552039712398806340463993960242014652979160772878971570419535930024730010637603773282110646724417616215617134402406990511848949467821693645083486038100619780478248116939754971516601083125900993632942821360085620787862401096452959892301084094104382574824370014053202584415471534588538380256087764843409206941358004192923273785943856779474173601813669275811426839133419018484936107111301171690036907480634491989894320585485057491184914691757237046106305951725205896976102886298500955399362989847905681085843350682478351201586166507135310789772000463023318497721190442740980614203868065252974729424493633701803037463496615320301212893231589889210118306979498007301880461322499093615961130104519329702894236183909730448598822079170691815536241332668088661249060859984554201947540785820600142169876786489707693074446858789112769412130099560708292908706745586461067014346070612540750067207024897741108858043550307200526427071904949327475921317264134871676097082310988823635773752277951045203405819224756726000126195223133097362661987089140292661750816494270670132550111909943168062233731736590799952493678896157763485423866308123344090878494809282104282731540893422560858403483773351643107019746233787684308038576348795886733807046571669431842540142254230339473317273849033499552678256635397844711468846272844092048884941083633326262867072204561342188845350569033426378254361410495213760027827145668212442403404163183305884496383587109675986860504252002065066721815245536271703178088594280218679697384010190544061503647949447821464086783347471208304491845968340692766888174364398271014638841930226922023469323457217613578376038690275857069828256853516525868822325162875158693975230551961804540930247780870301651636279640680248732175165715582100150788608843654187283739631198433704665629184735690014598084524162885776822399374116837910938797874382196421086042534776130909918084237804844871826856273929239108925427942925721464941303263689080540146264871168018743183220979920957631451000837832507647026915887748278315845517268113962246678354244382171247015315267697427448801516038623147681425842128132317184431797416128223274765085667503537749635999079286427445085000438852452835892945188759542184373268586747092702981649373189568622023614420999243976446500759820157325411106756912506985707807538802691004479644660310421572045510208087716664723133449516691146613009089753346324384195945259994248842580741801819564679996593666398291895807110914819469872393878166946838442754942914169689438184056400127397651808775210164346264613973809940914915888571047547497545539737331560892607572891196036651344974939044310653634984620802218212443866540316997616480045502866117088407177581922527917077510605574632125065929086504912854575049866256290715540054052826592856501349188583737165767312358001256342135753592636474102226127600360520087668155188537556944883849804772991490687355943264982242760110888340907049596595131176443640658854098748018684591120414875818613208778958023945520915254793871870367233925063894220381999553438824477828243382305694320382822731509026124684311194441069928306774200618202523583675201899678948303648884976119105363672113796946302326224095037222215377478745679842006784120032444514411500821558564466029523384116501298295135529649446166510082031075570700790598251681749710210619894898517636783207081413192398284620551803046463866213032315077088469813033195102255283128097645475740108297764212933143466824258874008588959075203245492391381296832059851137460946885126726886272672778529765006410065355602105310556472644108780782804377893858624039266975890909359551303237052898983587061330016965449149241569101940751649539828689618649362610311783243443519378964139409705538466691154127889468222285890290315204598312243921744684803492770607487259059415784948062846285307302440526921330140784543413172794042671323145073939370187453136052186091097325859200316162594030202357246856230523938716870098322230057349979344151312869597010272569975022999456741674323225511653492648863753579390954223885160114390822588740181209061072992507923780985244174711584260394690481866060662952325375633535437323068417313081504627138038086724363876451224254183273353486129657788995359161425422387141739371803280603913675021064428202713774873339971814214172079576924173153287092787381634804548347517104358253154675425497957474335373515474651245221268790523344461188287114243542502808347018637365143364074182302467403744186258260076916632250181469531344846255053477727764948768069422842733720233378897163731225375658293578302172466870877623117210774939094743819826529119182741434291182024691954902717901439739104485584169915931725661454811883203713769080805876031200064380072821442142381058183252395620132848664938650359999070761711887518231327662969011767303084793898522912882449836799582677457496734145981410743234873813702837679630456548143255124071928654541894956929990407198570193489981749268275383444532202281375560356555709234367723584597612100458333058762173903566488461786413830909787229000576232473102019017468291406781733589654008004598648176272378672300178641141668677539059398298779001748772151301101146423802552149800881903824726557618333066755455003201553149203180204104104587888130373735777814047896993515181248954006608882729790687627790224652738746795578584496330420589347366869810260671621603141161923307526550899820752861412569074551497830472322019122178963734790015622706479684099539790370503386644332403919484748454322119343002140312698012256710455074203861514455409891692025407504475642677626678735720736524924240745658434807333004545082690485180791060849982469067686744617650640194112155977209496197253067670065967211796154216987189368817968232941373637161535167528604966280720005658426988457099156665717336317976611338824625936369191917758369731643352246250198025167024679413538133339818585768068533228360302279766818775950696196351977456204430822911356373989724837196055625160411931058498917724550397993882416741779522202063633143912225087484887305194703534025564340191149829184665037522639197100500060459121614154873830294216393133276472924775259987212605475388886097199171462198410793638932922235833421798823596930903830881871236344609994019406904619976735678108773251836257938763139247703794368360072043986483473295367954977444849675468319791248302703804082575841964339691824242610598797551508279016450967863721916650774328486159756165664771160233899577152474665067617711580674802167555166164388097762827773080013904788501391433296770513545290957752381293078756634561023744506029270393918271960088680274066562147214975810008656020960931884618969696977450053110570464861905041058780346244028220171054042847299809384506697525783841331750948888303872972720115932423202930146961174593632000454512124643360183321577033313411573465496438981578083405731129231772694085547951650399395200618692353989209122376646402836931950348235019106410527588201320435302546609301498136918970416862173700166514479747327606058197836932749907517547098761751154250475335407407128439201115245032689028449279063955917600967821431163431617342616019950639468219189496250547906788772652792593705304079983066609648161771724680706417917116307577417212009004599962979988330216578953332999401973302521763930377569187624099752221493296556194381911700700000172873779546886921610146989385564824391943485616276410079613704348689424631566657699849301614966366512620457661142434246346028071353933928513692678468189525311169227469161085050335573651923049456974755061572705913011715974374251725642865552976173945961892525690856723614748800444851412626742557599017419756064375292307850584730001658871817476486910134221477149076729851120745873222338611488642612093072912259970925382365105622567904405711574938073012526879370068367793119152746103515190507924812066231244953842931003063586125324797445802795335040525613764059601831185038500695982119654715877588323018345513583475318772413142250703501706250865972419912634463671112082538235645953795053278139723437052781399560421716033218372889142242475677440854119320134199432357824287317847775818597383216819810818005425837433440117985417971002747250662876381072045720729866522008095495507205481362434315629792228501871090290234542792611954610490137710732834527277079777176430389636085917278993724562565880983980974032531884188645032560343924226746935265158641732477601064142557260299619543550051750746896727368156814720849864460326411315883359556994050151518554132324390141103542416812471388782617715570934723295971518037033525423840916738112641028259025785204381669369054023761064994556987327964867567716884330004291988137409527168356578543575186904442132528816300241770178666751771350680100241773228332679153136879477450815310456315271840750167472082185190117275971370974395741087108552972121325122227614019297660937172585995133306771175879659613144666093705361974051961599557241257309997873669454295292275394942368046403487681954124166969832356122181271639003811957430476449627878932659350851594761550704426042539073811178795704616189761340741886018402897925363719958708444138403149980547073010013521055200175894754972625438788295164035682240596216349467497780951780721931713960670523182500909043813509645051835248625783332403543082970657722018425873868999227397771454033389305967479003888250377277435474518748214232103477558582148514051666539030083893583566877311140322246979979639889464588794978759044600947473999371217519553697763856105725434284200733046033208313580087557066683885531666638178366009884745548672151850914890321102815571473147166226852682681681087228329626602721684803230048281177078376152096379109013364148147838989296867073929124525202535392545298209833865150819864188777410162386753392411807434126283622957578081612866787768591592164618719469491590984936090926727839766464988342155755053815949798348825641311266387038675966420527921757486059541200535603137110764898330355487934996085306745631822183277473155107670327123072393883396255910219474819893428865147533122393618925151566158572078258376422410111648188233975525124036425787506765449060048469180840584574491870002205917594127888113458064197799080176736851052862743490057588163408493303004437926356018117280495307137357316008124239037633714148726452071034029976713914766613906562935228463215815914083105886795565010847206032840533488874933053214809789566051861769523448649982044547937452442518735995238068423103634931234204885506016459376632377744930669868383914441748364480074850885342944815295602255004425296236489401322779954020355369431616389584516179770443590178950446332010455412738877489484255820297822601478404552589541123479093730456711383051655741862664644296424642450962632270938443532710128025202205327123817916762506619613471351238373136465916670521337359034440901064377988557305602340085971672274770437439988664564303760798162524317207169266824908963538709786227600110698406355882568454419698892752865119386102322370644797985567900678505664758869905315460298658673653084279396315883922997905644508452126691146322352086047830269482993381599718089004225252109175667635524047686027379320658791790355690606514684357853110264282158017792973095313280465607758659183054382894912695831929590152779442569715080519940096636048300449435169752806966107728797917967383960069602416502666540846097251992409092406033134950861118019709827075774540598420142661936902052312020536682853591858236194330786502168925774936887539858893161927181656848757332200380878461532449467707715303100712198988149857925942210325414239646913175399341721667266955765096106437263684485027616148726932516874969459906386651426087351914217974732249423448551151128709299591975995795570416036190846769898090697346224914236473604139209565852602438929855755938701952060067332269100505977637506893440780073347213935336807463288549248898326404090172791212683088172912003524272702850271478340544364019065685608993428134281000822489474202808932320789761724008779370495501958652558266519175397974838579457557293417454594909779913431359846800075619131193743398630100924352738870555750657616510551936562195449296050857581947292286925054237779326010695470424966276121479362371286861203226536090675609808902114461848110893295579725718550448125466020876805239118456916779196936199995773689644308856763052839803188930647159142992689584935376473099344374028779760303369876255134187618580505001888171695228756986400616609404054366709014985456897777730363284467935048840545034811116541522300385934331972608199438306891597343732625242650144398988622403040967324003368797134384067786893522099201315537301956334765518011490075364536304613907151552605731561504166074636940883996927438237383478796032255009852335170519180708665691573181299348351294039451191011149349101790604256948526680841765134588570216089359522700714596743976604849074526908805952298105531740397785268354563093342800661861684049266087542280507336313816964593624491280114643037569638034988975375226443745154031520071389123635448284416055065810965804874168822673940046656259636456272682652759309706440109814719591367389500292107448313834251712941052346708937224521271794753153009147459367537233521201557722005763703672874748422974734527020022499786314840928892842180140387751944784588270044689263071683477835245984631129833970075640878752103688666115167979403634126877117346417760139211020741072176669593238925877253732474630016177077446721298648353884514917836806501400298527104069274898315513485573022958689207932941592436648605388057430324254804701206995863448184893043425150669315591322905836431321242703671525369202755201730896259281501577766356508955098058510025927827129026998844688276753511250897400459911479158798461513416497943393811844581543406768214260788069469698418569190940129496928620510677079275825122647296651501259119609157902509603886897438770332279063007795079677208849863846397383443951249930623465973863707184438189534313368603786633990955952363495384731283467304455621821549702283308742464489794183631797846922469032689876086933437091073559884188650576322175509076707933826069577803731413725001165565157279362528668785878140379263777339305245845990894305891040904119094838919236388310042988731489711543586423655217885365034221314260105927142752581190488323995389950563017187593750535757877774622664940268386576580610913079433084985349487352185027390481164722308919617248170038714838077929244471956230906925551650664771538217298343662070367566827611990479256990056503092458205020137825002890053870865637308564470214333791906836541727385766826234883937601176925236653470345242994056298716561441017806302214932632939037133603348977219951918706372629648937117818862532609983369890596229342935178719727396199136291550836148658308758677680541508164498832103895735154356132281718070145906204311647478044529148489480382394212365371448597874677614861541707031059658238034848801977617029502475713057047567974237755987754163727457487602493893172968638003131375579051766372359954831786448060228010682423732877624982653510572414905827901420750107370717847985186404479364459284146551949740272962434515863738032491806874886135200143488980019156275782670278803291466228886029838666557802670117000019586809253575859882952712675747487847678333445148446984042162982165466177801726163177798153713304516847338357186883463427603337451948217080193363472369872847843642195792635754550825724600349235995841857997441171231806495263101917784465519934656572795052288792982644703424710472513130278603836493133630258901333410791395191960226251877952713067119326758448306787811370933152223955426970669215584477363334328618790871525427703704016566368969663411118572997166264044265340961938077333289058231082852597134992110249543448313194837039682815150214684044158067831411094365759529893877162026722448725125493887487574248972101968503653809218025227222321395439417683774010114700695058118698076963927163852584560992326227409816427706793506163768938190431664468916108494142251137024031382610121430498837495334035884897011238049858559771576884758847610151346544396093247175037715140256040997805638397547894715604116649795455529258201759944437836072365269031668863154245037113366281966018962677572339828706037978364989834503142963541997719051641249205206390932855527447669993052819810889806450575356332841928964038788479842652999442032363974958316216703869676981809573598644219824915567347059058250094103694531003387772866035177647139362749167747891795541094155722309650199953448433535983502379811280801803582124516978921275913241899856004360274015491321066072420329698268996462658762416474543139452311758098514457455340994346784940297756831202117399848448022122243060390328202297609148876714536817582203223874305970215964490096331952024339358472439529775457383279029871121126445406712246601273371980878950256530390145514971908589706313470190297953080764721799281018681708510241433378522444811385791490248318637801359736732511138174678705490553179956424676883698309845021110255483448116954795296481130839954433581653220670057316756794938406498964773350574102147979849800230254496312385389798063706439949039626165959719398784470085486509596637264234807207695971000534700629389670793962792683709096620968338011611045991608150078507443605236263393942402281724208336610358813724204734548980898069518413380495436122947060747115836338312401982242330151001761105037636469077977492799105792456603782803637479687001421744430172003496788022457768896882629919818001468359946512899850552057818435559388299240202731049308493817906671796055852051020998547006939082297560843951738849495295299227760633485609125014463660086235436094389052096396753725663647623530451221531952300961545859216313661152182048839262857075495520506717341527282183289847460446428532228806589175857523411031625599805412238644657380238525300728407692405217925223638660360507506307635584501656381843837455546883412993643097968534561035954591872056185204107368909724417674246337365031539765330371164996620925805734603356161652911114556276652161239511720555045647059103232235830351089685683744824776479408443616964573202992990259806184698392299981435076601178765417482486214539214960161902405817858276349730787698708517399067723643429507918552252692917887307390019413959739607045992837826995422360262294512901769612370781478995325883438402238355926264621824835105844126613597274593009488393928302092161220829945881842646464778831973751684549390357722642685721729514726409358293797313684670593473698304082524674507171229035632153333463587757492613136197850729058926302995297429173766147264718405316047460736738207257993340709958401444643923235071842186486275879747460628886874752386216515862756117510488770502101170031305923756893708708137638199402771083655400532234026975584405641100423725208288023999927013895078120782124996140525015283684892352698281340242171513974748594108344745680268115955710112562013738002488743243636718641289698791223451660449159137266992694168824334538785206839405237394785182048031240731219265047255371283713088595954454465946643302066582792876391697984609548286568164205157094705696382611407799246942006703453656141583204859640874698317852071391386313337016121231805161490252887457733878671975806773419437473899597764535982815029793679713290710131377141069491496116501868067501580539012484389144962272387180277498466555319401145111354926438444154117090860143353028193044880779744316413745335875287664326372578012700890690349097939575624954203498205811194809146421708868221539179425335346674280144782908914394856361840039008216664606838927936795524098836673114062066233654087790103772726581661368057086479673519300461416502676578498216960933617018150842217547000322509588619144041664704328977122333048000569421951898940997953453116644470707922885336288801604716562695106586014166179996877069005785654501426767244574054059033364755564833150491284615557374820236314265549972509848341916546657985434360689026657762514047645836844940948559590304925247898500573825303190067671084398064959556319116629412181303278676141895235237963941362104706527782428677765423347295210726389187971481926696884500125784441346498391500627665491311680958605232993797953967567958540260217592255482965691295170650073321505070669959669695754160032317637801339594327249778125718324945779676485786021206610661459499311136207510938723849052350778969004979010237268510975337990106458008545999676508615950489498885617943097255602599511033594674726651857605622817574666062395181736646152475924347112212875603716923706097897959970910042983017460707732664967371185827882179072728078277392939007906077390680766397876932296506409132435151954817784360249247871358501160767352417065175557865637149595876805276946301585423806957556695541254694230906639136443886686358627695357090273536611595365261352857540596728533338240287219636766253179371442875033586323485885675498989631927518852565752173615546423590139585665356490334749424521122534916687423566952397339574763779592258494299786627770775305780146619821749905298499566945341796666015385309952616217151363620640625830983681678129691974803910531001594303868000883291297455757654343461072657421101014893572676079281790324567235674133071661835807167126582522840842276325995241054813758039690286590965805475724131487942416213489837778005590892598140722202807487597171418116126059869743718879404133417245897707229355288642891705998598795797201454154553389727604426131986142219477388565671711212786597522291695448268135822369836663188629974887144357014978023359875434372364362244103959056120813658140782870138104493445403638224690889066411713066890193246494296169643242264605445902630211072459872310908894678201332339020086473152238159255053078226775442902621980627744917431675945645568696546678370894730806021879076577126526650950361318110110060156092121155927031190995867201662082650324424071619866955096986473256099602594318613364124679521593996120217383698311862953074196267834730813689172178984670261948486350142479860991579770065214946034918877896016399683320655992987820116227342329870553089704662980496036345580994134648757451867396654071414747054096276349636627781789976929874851688155151951104026125305200642096163852183208986915247151461208665574620795993377710506574477960828321714474100711637224873280140264439361835131043017900115591288801722353612078150270861004872310738033621866925598851296797882179964210825713905429693101708977877690740094379753999734612610768961073064575067049225981374321359062082674089238322978402368338973196003936080571490032049464845817110954622961533084782962875468064949714662065228649354629614533004066675931254121178130226685751854045517071978158373190694457719351250373842927731376351605252446346779183250293400668640147145108991366630228800630635693248620355969216500009135832025253568018763268274782048793432067523852591661923169581406595288658393117343871336937298729997224623621640760296209036442893406485448974489821426188487681968858735532914635932300311968887878713235228882107024719243592758738607073515466753670320175694491150367882992354912076798383348310184177794873778134509976564810355884251503244496435907428854867768688761576173008487147283243883901510643098107334811092020510097978125494864645000136375127252558255840681640826281010691811581376675066291619698513300520809879203593325947038952905798036988945278237490720084380033624794826907339504023318027242398124312474697904767433392862130908921582325143733659765926607492033570322668007530875603426953902923875265781812770276969756425935498474607513575941263350513695331375174949223230020946476488496235520020553869608339426495053485607873893325510292482832576231076327972261945825303852245139370894953176966582192612891310337945846856574747554988342575603660205510530136054176718185588795055708505064395628064492875340365236952014110638474133880338626046027869188527426814775525001378088299240598149904807459497055107671157817678350965961046985111878057787935168744670116853453254731980906765279036342443841983351297729181601841490498599289089060558081207135638934817024414099688577444503469437895884520460435274276192860008286361852774474126007658264476040564489153554134635980458542110029037459400944097427329434183397275444518540182230348335402269706360400958242898052968775915254010835347871297627737620019774765224333437299759824459772414857629277609114402294938535194367970709674424227901700689696805253811793362094966114240812118557190725158513206331260657934481976698503760863772255638625480146844027735748248952052884282728415432843183386508259576029509466826808603564724142881881319501951267656311260986820718565509282249270063139103450367246298454130247163638845329681464164614040730808938397237335263275374257337765129822885377497493295272791418231372543198863023130170082439830368202224951333318986871951089430464037208955709833553971491191786286839256106815563878249793076298353331646059171122162759278611569560846213835948167119925062344523470201236926661590613673851816567522268324459794535147776414341649479110032013637520672775950555430567046857582448124482366708508789054961346128512268437671065576177034987636455649066001419244793194474720551076653716776881580348363256706390865754285894584747965960280266752658290485193537121608200586070958317970312143903915498526488315007772005021564852008602013399542125837640223994561180888238680536587307180525397336517214885139744497520165732796408117931638261798486875307549104582795728373639483528424413511436780410189882895730987498892543847782650119077556479039223170945061486845301469741542917410693878722353150074420179798814643882876278068617512446819101162300226523734257178603316369061207561842684111732239892121051065894910988867594109625524732490423428111567367263232556199292718920483157954535297151227427400827072144257083994519105592468599152020906246281999366512606761834449136410539169490788770913073584970774903646751491680209550152041278090137438034084647340325554550294361475850604462939572187974980028474870247421690332303547377213184242055571509688418610479353598357325042905313451018139024218246929185658942682488247868145937084746917054218454230727603061294275753546415177240209807665506517129838865129190657963565099818255419851739652798933895272417366532892954636346345629879449033364933204495069854363947033638109016735286407919034545893169963920694904621578011275172475532284496156125287950031826176991266171767838776997848869732784798643799973616235560478942798063014443035510658883674152380014698473034658503326533386297872603447775342992285789950984578339309902031088774890275183769976954290359275116336754667848783494365311682896539101843871045933499237750999841268512587493511652163365124106088680716989958844254266258168823758152957438452666648729607094536432371221216143778373600849932688285651517611294701463481267789172396375889615017411191736057332272832895135587489581256881560752342780853538924207779331116394286943079182438273812722634449046282477038209871456700879424197602027920714997659949496710472060128157043105298773471504804039586934353590557413496180216593822181325635671093843924281020243828345642090110039622304623615895572003337752299764428906967277919643194037792812997236366361547921832538864990661905011410380130754867759989185816883097958939842313410301021719039162676078727505319577384666446863616510643982013522568156517309255783316553353772058410928852971327857995476326418251774846554661823258951421219157866564222165729552478551252648560087225780231507273040079090693267419578015668438323824591797503095270206608937411881891708446505612564645126722912692873700043824908825163171572755307483772881497289110647777916010115634545282422873427256937422745610175592996509729310417713308431375130635556093613594429185108385833367435317484041588869908293704683761664719487910346748663924887052645361706407252567005225685466050874614333391345727108450776986861389937084222282908069262735422442738379161640727332801203307531734560690365168341346889050896505790163208468350035774935328979705158548123970409147663631020485424864693167413190186937806726487068934476516197647997396168025568384812838316578967367789083594482935902632533472814207692275171299490022711689573288158905059624733914025654037603865062742140524309734325944414005112556840531613121399430586953985681744267009536977246546489203104189431251410488562284609118035311187551668407833334812114500644284415986697894888443822005771562774651043660360603026333035930623459155339632972099760836309040840210800256794435624960609440801528825424972923660996761902790602699478890073986228489838214163747611158341867521815556212403111317770557560228796819327996530751705723028818194683092004194217809425555423816763273549865363387298916738026671376382737536979640387708294832046264132831740821129241768484560336513176765686336336476057955921356599216292445538319560749448318884247508254044950543697937466757829423275300945413040604535035345132378699970959177923250629320955668626172076808248109908755307380497274421422678043337197749295393330351967609361949090694240816228017289519299792679294885993409474565476780795738354915721387623039255042933971506499124829717786961556143992654272664068640038631837362085018207073410136954447751958831182821936359806354731813975609365321010879382384474083198078029341198204515584072313671735739154170795702317610061879134992931996437353158109911315487191252256387857083639172257121367421248024372368584279089305429088828332432118060260024182713103882496281612199797358232001124644546424002312150531816521729243382439021386954174051539735097153530946489550038118630796251122981001635193211130413224051770426790801639859855177150086233975483005179785006897896583854205896831554121238231194472423285314609468143297255293107231030301663424358269752037414854688527098513436425012966137262400928615669230314898547315492787340350261889715398381625525010384253601839781788588130485179459812752181655628717751389031506246159169252245295517656193403037231403376698326245996556893384705085007801878894153222406853617097098197435296657461783899404861693821700055412895354351924574990692758212263801415996046520737753062906026955924312943698403919719075216794043089861090926972404845453885685315823604691438958468584727156489710493299859297943232730928749427897625364741051873892000765085252187178378730582625113392492361359951949769593400568367057560118334301407493319010070883228054226135066612983264897216915077198142410964663732605341580617959807647806082511428924856470478360079031377912493653957805986646269996170580761430519958902610778151602803324845021960928478308208800949356536531591709076253996206678238507390815028001566426277738485301643937727263637535243480549650220537074735165221504048071883592581873735819412861572175181156947734350228755134256055650962718969611694548429673596414201133578702956661807003565448350985283146079911036670237503992715732055760463320940423341020274775850737887531171573849052941330428120755055860397354053408974416279676855468019099869248791073957737740773495549736917383069207384565707474824804453012653767945404418944882266835167173792115242948633802567285590634271677495133974221318884494607282156260364036414405094110808380646699310071149479078054194327723152015915059149189158293574586235888684225926208868974748904754041940645866349152397503655787144237412091157336366125983230627456143203094283357982719994297466043304914505752451266222034324820951726589419315889144476765037477867614593347321494786302409181256363421334858043058065442986397486457645134480887749537177456650985062885074478244828377870687235852411394422828497685586784857220079394097713013964449372498623668290602816401619538458204270726649332650595258643232224872612006439981136749686423943955277968340156440865216131503918930405001274027498646104384673400667923093638855600592241098618163643332548114993042027570715094668666117183570109165370282690009579843201203531777219546478505468392721917178220093914288774410745265716151743733393269767118139963911195612770032894857432592653933893272491839887416171178087027493640044432263296519768077023480423985067786961185986763384631501532774449846228816664033617014318109396139755340849578676506614230974140432457293587541455584919826716176471236535184403265209764661016616783626171525114139290701417304510340082219221631744950908494661868318540513945518718606641814168725944028914413816136608320677613634090596214799353636505325377024940748164344295951334000758096833982696199649602273761670098096662576051350723024779166626125912944429653242108005991214488958830926135805370384848159219076709763923907708842200541857616746326624180638751872562812155640241797524270594060162708633812618111499447468923563957875113196925596562503000814610610045176711977358824820960545451867046733929159010139436842183534131373531468577527181586147945265254145113578499452642878764361619029316373646740756409315962542749035403621893067730094082691234651163930844685252740808065329720077944523936698306225816537386081542616848035982827548388680563709403329310550687583893728722139244217238035335837301897703124672668610464056713537263136715832749617195949115499789402636094267598468502059951230811009170707206620819016418441055354602189714878473225918833112421036241617927202497260363854296238739365518086192724274458399591009395181288141613899875771713881375293859248816801165211545382631712953759614023850079090890367331734924978130386096633065632822992892790010984264360018493771898669610581831710483855977922751112951117214287408189683346110503513038106146548873732377220180929074838690709012358528331372343598367836585069940175350872574552419101086138133747504586313058064743242523704224544435232191906288290075712094234551492552823964881451400152854365996227910001517574151881744391646511972869005107007580388057276455533622186577132306935294953352055278092424394816621865856433038338981080229650441754013487943599278659159342173490927311711928637231111633364366730854625389580410753451179380198601463478361410427528432124571876737570807071848774185340618584503662174540454352613577146738425785577819769171231414276396758066282868640524779025076652186142257659434708589477391645266697780567647014338711394326461666496227016291344730873331060591872234445928295293805393470547201079553583643802947898544599191303517701280474924003605216593404888858418583093712693099629900686831751504721435614526419664928548589433692206597701910029821818305687164693841246560596719611790215828673152867496797203778269968708726936961942840735327165070236250919808376574441531133528636223314401004513416951767036085436821229857774660668636320984954855523377481862254785454722218819988545644151218713096345676688793765209344218756723463182534050036868769902956883999755752240158473356570993392242693608617856153991910766962338099063732189836649682373926732641999477174779026022166756382933498730437385918831782041623531257144462934329716630385737226534618217817896287964615581802914663312784777643652280012826338226297790763850709590669277137467786889744001574859467194588327792366310034356931181038701015737926514626517821207200943971114277728642825082276471247322664781813822232649340395156472663522409398881089230798560690036554498208728182330282284205635939800592266093879406100820579976071259146383396545228806021471676755765589276306276182160413601793656781030779921613880914343707250986046636907434237257250335186859562491434508001668951021895304511391459778185869342197441721702919600861979141832364838742279268746160053342649288497943741074489934457701244264677596246584037259369833316881994697222948147440364114820630581862930792159483175285368871792741838241592482940238126601367822022242774698156135869768617108546159507299283210753924070426664478939810439103283906665466593453607520854492298438652426086223714029012747196961584458540895265819796497993068091179909326668326177434881311196440974183221064140811734217603182364153892962772144852824400184685586285719361094752526770061767911549127494247765631671862758513028728390635003438614202659123445765336776552373576489904467162591012378680422017713294390620087672448979635839890060700738849321121906732502021501176435816821319393419311462091578357968122571880994245165866882061058438429993981833113105207066954478002930974488861719881079793385600404021623442671940347061575795567392156351561121792512152322127889802497179432027481662549115883601066166339453444889761635519446329645430719537847165365429098350393947503292311060631301343052185200491757609064085579180547965457509170122637348316964954710152583801589470593605639700181990908680219691102992587135952614939529700737835519457795934605918677559440825572169856429156282935285764562497840186710653738680564110331021587370389084499757076655510257146739999223592897302661607230522016542842990753543121062956698919723762526915062174554686047872935706084055962591785599900226148971882024681251644784412762505069087388192141951984440864363116303353058137673620797528832611885423131173189282072014083441024923230902065564735507691539088981409165446192298688082544960079266908317263718793260142111044901517085314913786910173844240635441063644054382716739190256393249461656508525829629362501622160395111421274362338046282418619155187360174013250579556108786883244716338400241997870067049812364312937353037893483518702092739672600738922187201689727296701460401093637798190439163504738992783124637363750770853524320187259304678832850883398233975298763546524857337554174364137811045798441591191827975989676583462377837267375181151074874263178117255571959539805408741720686581586944439217989900403535821467003267822107715196461545784315609914380271786009571448076958854491649910212000921097795745210529632989244167311524848060355275684366068224916487669372030017743825730258899646648821359475714951860582873005187488394684325494991608055105798113601969769317759784272890589508152683402686125864102084267906498176339715310591827371561690211322805802897982798323783285818846933029921719416134571369728660835713713149091274575413824144651429473387240937224072284931413173664567985448314200923837109855557116532432145293679586086512329074546544179982845421075178882879304131248106963771046492520950282774370614302797371368933314291226848150623351222146760953125597654352328310592219273624335423025802221828302099738927650171263292734413071274704048088240165321100515951349723743924823296436227121599298317180251415307120171753374322138206973240655498153821193240909512674612940664817477557665144798721647769364128813882014332879179165557871756466757987266296653290051228961837737746616636508894261915358116169109290579634883212377077727233881539358032539118130524212233676123876441914782354219972752323249006521847832875799184186382468303897952841360851721399645399788589756245803604614858685980684979392199410399117731755113886100423561748861833952543550836761607621348717059696460777629286962077521174480474563022735763836737924688940057591139864320157511655900267887977046845038148433265603127797576207133193358937565258913940111020602399375701089419905324302241161628186682526809345204814506243477974359300905807286659197821931376294226338000482406102718440679557901066062183124658805934130621666014341939998702725639028123020865157111708702910180108163439651133156623272322130926348055656150877577784530107861893664859419818615583390701963574970395377471949734575070068343617226106679193584348355595276987711286601559082046323411886390047737294645739125198198605855814056775351174587143534604474920691114858735201656331784944291353189399643479121257018997613779980968538061280641896493306093275228557968244791888715645922153896661676809117215275098387055111288060783520500692792659129724328532433132151644524105866741965650140205779139403113990538057312359417976271872407418073148841527099893219670656455515706346406008819849516403559272215570257072072098234086890062244587448387162059251884258311387043959820293053035713006433880069090957385338564329500283062118526724926756702825131284706553072966785955949641274003617265584039081053678235311724086860681918030917702495705586350262838504056465372899001593896047188677047259910132055788051902473299027087598336762519399882872146096095404241995059343330880502369769498077484871605379708200043837585033618925261653423756657681764952535166948497129711496737222556104994579692506049278294328569282033565697269420953145477275306043151963955520393214045895587251898412127355112416620765764392916182750657347811571218569413899554150687999834228223345938312294007369043181694626385626704137171944817542854839479735657346215614419824087480326277609775080229511223725999786856378509305598182601757721261528174740210338712784690470997075038861650839804797547270368943746021629120439539308417636695136145423093359609289435916545885992219801621897451765139547923535043344141771766155250798739246977449687826893335975562979213273602544725899493364532295141721718347796063297886549923782103475273863868537777045151943133576298767438676412829413505383551892571609547600806326193638163665053966931485614863399497171888233526138568519215738896042170311453815284455036115250390454948067669267981053590812755993569251668535574378949615443123280786622862816818960330867096470067078099284920127713712274765314329029382172846315331997429080537439310359745556471366277613518481545777670615890550704760354225628837791230308886030967645297409715703097134651213280330542261162708284569916816882554893490596217525522082085708356471196630874956262007974153062955329714786828982624588136911416940666839138181497646971424945267066688071588104510234702048251134335544775341702194778505495457429095927409672469825286943487655401353635824108672071321806165095199560681699684131601038219892439000994542970462981784187240394547495500717639784956603661794492184297569330596901136877148981510230219716621412605433960471817689613701918875477704418338091097518945968249535205068853377027049564619418154939256098666565284029688196867253759217962832026800647901461416623573296658691576975956776242220099686841901196012777370423616571174680384200761028304889606172346720864326473173951826033987877658557007363467398015079837037866012444424130819939242320728381468465735381615343800221353989098430239317456014286933195439237218406806959721313507273431973162088084564707418204845966176190711637835902459614162531416534313585438212681448572175169813745193500093089201567817109413261127814101661568584490987829522676090468034310356568058471442368495587240737816192160881986743222419870778500487950505366889670727240562412362985995855503742289755450337642926691287926240156965369884165808269234230950406683674313615932285880027811834450906099449091592520956838569032074532743329337194312889024590222229386233920125847716069626822780412932454126746505220102419888590648709403419952696733697640714624424487790214946197619696568927293353537410779170727507536087087737612589854143991695368636095568876737791252341542150499273717687463553202097342272796194857708070188031067405887050443729697753240225191972301524977317815428616348221897705081349101548823298556133223783904993661176903038366847084034506446447675907455533657517314379733941521673847101002865340247480510869246058957675551453650828817937679634717351632204864649726975444522092867538176480999872775322715695965695312710150050913464051043721791015983682339470530943803845477023985675021599022072740052794768206059804812160543615588946711459197689073255570862895553157579632737766953222596087240094338713587572563469780792295773569696346587785999772117478991913054210515251682858468078485592548157065681017249706450438136857601902253716394283414461244657960359018725985156377152081438169298819731573471139969953736612917097130581573723633923681264860279467768446306067779700979215947870322934901688692626848742390013284865780977013873815987092517727235758785790059325307811686063693219617569676949149114954805712688059601274938436089792073554533595559273681892968800375307267318878794233312082788948157197143499460041287753750312456906120517939105795468912959194423501361067577416948292965585838131151253738045265747548722406265583534911236955690700174339595824729117686961809758204369551646422165875872575237624798626757387578731257959069673093053275968317087757175745860866301868838866342697641613964032702126762452195672281977455044875837948758371542916620032429781974203088915651169940470761984859262558478865127624027740129055621768956378632624639421210879304773280396304764539272943019295684147688290123360122181867305605081633081535626550084840587318499120665560525948622327901664446756832741436131602801910843226943908607923127876987088845936186984296107653319617964636151105108398429197196485556117980659213425606571253620019390579866081338879319303312148204296543034962857696205439018400796392875048444367553058062612223254941675845538104286873563832618106280414623815120209169877068168497651507344126714785380707679192312761902508011190863440812362538499358439243403863415024235493116909056521790307610645253220653489120882208221004100301788206116253138603525188304999957712729612862271546984128664438191433587890281037943132552577250075474198246093048969443405757594191162697168567865345069250969034535863921247381868106002869811736667605325162207206999712764469382406384641418209899527315909209136111378937554702421732575191128705953844863811628860278352568932260512841632350898492490723522512256206412018408718184939272009301811257157852427302665048400072929911035105655239559444306577591768796593396343970585630234820692350749342890023249252155027906722791040000458281258962595147342690069869009682452974375940829357327978289884645734189125674436068673375647569782973093806089635249024408708607580949405095083079891438798580149550854697425809594559286217662017534110553475551672900667339388520843494456031517179425236127991339978597509888099847072810905938105792018451198753977166489921562481827968016431077177818968650662743302310763311310411269507207746340345281644976495624693056254462955170468088534750779185612702382798482508506337255602233208277676421478839040032156272758742235982644348170600236684397060646925288312692003573028389720444137867235738454561865136966085302394084130937008496212650555244740230889860612958104791268380000863918248616496617658475277045090562951386507739697399448163101658296030033891305270906885413990713775531281424910258347611125383035298754666174775413370058230818831952880805162642779989064396577116993806498388592808469964028394682481604969039949888507294035448827687576904644101804463093307911606652562991261148064179749977975304993571771806893744061796937676416582195415773877220046763488023999327313502542545550053709414519486947823348384462586161333130622308268799207144422083480449986049409403511458789485321985541230439725218564453604339021756659030790082778513804805547128994159748046889182879959887356558435061048141226595802541077852609877307466967007297540644749475168996417883365533700431037738042632820553918257464739686009311226871739372345553616958847896540375848797098271000009029568814477293277968876767132106406361287214587686020454668150730575172635327002733898559847668637301240057303188299302028072911474310877043489279878592841495555705458709927090253016498469611205505088839917242683835521693183515624757646441991460230182754393345940595142972651337042005728851448646422876258606949300416240738679031847131052369314236933543172418541139586507604352261031648641427642236279787932228328758509844708958228400756421691861353616402895923398122863061048766715354074898027582624894033745386296161330272371108849901891094779963440152573538333719790184787869351322754200016657097859929413757832432948100110922449352048348879020906452250718351200639538684148171449799524984629346888651727766379877153015939022790208340493111664076834375257688885751060068791016430414364070346757161703468121614185509621640831294258938514008331077760907877935783158245855071184564678632662437791212357051571482247147380833222114541236558135624210803094089115104898585127670882149017711651300739602465457982950455552461308268547485012926072125090145718396462235781273373952048822659716947961570481646159665439542086545240697081700685515776353167743858861168967900798973859022714548686312634721375592533440839541697772741030630515717426811384239929450772379980832520427098851672133072803451339103836409143454271046740168635100027705057729227666594097937351338167320360681601699911191084298343064390046187159089037916765058172465086940531494294397577054459968881790307940749082928362876960016847646761919169403343999351777842058113115869998059159953092893827600837193965508247453706496609418158815005921611465035489324750561984617515878960394811121765932629756638135096197575806622866622264771066766041031215118055236212785386558112781610949726785498502788693970892948034474569149546868766339739766087823382383405316688295954839931599538506047566266317523769644718341363724590427926140649037352582559527802555839661207542851169396442912646153642369034125600430426175136019662033359443517100048455668077710494151633485762998679599111403641090900331161051551033963828887861092152159067871802411331477272486977842740648663563644898464462069192532571136503269180726185327246508201060721984444223800928654114245164030567904189928596305313528528324061120927819769770423072229295278350137174779078566159127823076200598777845545589432936143809652982056732562853064033213637166026498366624773622125640618330116567101506920549821940496496626716525296390909414365120555516800235370641884143207533226868551342305124720325221383724203086890990981564871622873281668065705061338074481137657012703528361656659776487539525363073888590242385626872741983244073900508360097619496608346710845033448973955163297247037958291688275289725426214719938347566937845439449467699947411179823491397765401900656885826909260074749777515488244217908759382254733432337453601441349667441785829792799445449370691528568997059405240666484852553824219694348383128337180325456684291483687823118006547197465309088403619994054260682905042367672029790578606223612794988664690005461519731224369480751682854094579262134296454399506400608922024894034670641096982408516278147746004024149107009832100359420427051555675507639355299566885338126755934499185990347947331413351753363137088828288874650701720259867215361588547657372972134413657388877200683604176903338082931286440409330111228217152074534348317170053509979063495214189434093695657864043036056568853809096862061528787366366598235313580794694756765643510096729753638694441500711175572059505628485661351362427695114617403638023121652078799198300498409313859496645654659015647969231445810792809199528287498209215782164171819944487882976207857436942053533512341230188768553848999349430872151355635367489397348021146697648308331883674625646628968739147068991214803980500336775268295874613624587559154115355032650365163539729358075825054356267225283301418526488293396052797108973262356233563323253902255353125221670882014439544913057921194571684580250384697701333679716686643139618546862686630870437883799631798378881367508892247291184327623079481816611936981385006649211888215986352855998890053827941014913916467987582677159412870844507752476855067234298639454952960744362330454191169267736020426233779675375496475236065967344528943093138447345450619771079537491738248029526378849142447723380815696118090649085564862836201899921219482484042293442049341200354066056163000214351891625948633107169873746082726464790014344376595824660221913275654269774954176496861443278105915026160323655369237340533637079849346687850524796491285627332010436133114483863048575142508230744267569943788751084554825311460043097756872122750912485521472048885871391528577768716733843385888920693966360535928213641851628547036008774346050069465665976321833266127539598272717687035328428404491837783964202354160085748785092042596103462535667103404022406375839459128292752428396541872312136231354896623656498669221058674613198088487892105234230545968297948813866009556845758287465364079298526379002454974800866472337698001784392616874560206018481759067172296539147256669053303401242605900628957906700678480368491399862024406142181559153651763687701047767441783045846753243881761638122661640827961383400602336499086658175947935245869058837884253272193462990411517410094923902310283276005373882530957024751932462158181902636132693231077254504576671347666585488658632833916920323972504021733391896715850425285388898617621423595163807566712435435699292283390121790807767595531341666374463767835682997456150579940038603682934303218888833457845618562078037905174209362507623506604006510113003443310590257523862121453790163266865547866202988420460329931106614785754147821344446535825356741013241070894402738642707145137181773900041612928501554501333709955430281182070109303112774607001156458548839489397551367809206678297553500202970201139183735889673848968976627867780129343810823333287869732749780846008141144093707537261692462363708688206567647140358596486576403739455755124371044566942290233174036546697874962763311103269114646057077216193916162569358990421893884027424027407867307818818675785894995317124501458192911026649317915331302069517819156793127240685411049334538856048371314059602120983040333967903492472418051190737171528445349814184499051344995303359118448552644686013705712905902495517331916902358138727632877959400503876168970035355083773904767463837090232516000536600206470993139169206605338775256281474168437437183891392557620121625381296849263255380477037093770539869596990989435419554329921097688520086867189217777131084536848217597705034260561151149820181139230849049754083429162872666720810294708349619823318769176003158536157775754643994142136434709788192645433274958461596175867106172720123356745923010870662789859662772448096668698774770263443015441656667708576962831395872977404415648779101587367879424850321097540663870501832015435378221042085326283845384583800043327216839035154856458430487095287160012232037309832830567199791504529369182882085381543948401449347701709520738967599598640220294726559524918205928661725469418171163452519464794159380451645851976759409982828837548954195571175326914251306863908872450106453753743299887664264853723187754230874240696261062546459926705294327297411172570045965551327464077131320841491371690704562409162789425558889704999626201395057021505032318165710321703058432699198503870441134896638793984742887719045760628138612053757271517958379824611617248775327051523654449968829429024052809339964707012556865156621286482041880073053543249017100307594201349911427629499583460952343702745859718652188908583211209976286430982668362372524302248341326841569586226036605438527960903567570327383276874639959729071518700790063415048834961729681828889532361724161245886085703167237390215157348840831020973784171626567337281019131473241432958290208080915747515545886991205452778000585738224752459413804149485826497688464616408601060243770833803276046361182668358245660327403949632171420097719920555315000178950017836173389380664263074706519359323356699628391954722042445104807661870414172372281083304659620969778480370818518034373682883347353521203024422360067425210590506715407038439650933527563207333968744412078695679850362714421485859730666436626758941508319637594246786632877286430113130695505456510268815348424192553344904475276220576033573882485797772356190897184890536431401984146070156967812932689209627533727301517402202543312211525035800652438024666926875544856878220169240623685561726645088536473434149540048399466971741051429500576350899703043315798967746266564562215185845129172751640632668343052271429791974245566484856124914546115458498647813509573823878538297748141201723101006504399917146662777433430112314388299460155843091863208572625887073409660347269902883137780122024155032891076927592043818478245463171912826139866081673315036713062166998449020292656760564134563529659142212067912357226377379777933500446735782786602274362514558985689571147282185366696646916849579521835019847757951531534876520826413599858925457675143799226598764672456760696359299508680406721654739217126651020662171874970494024484763313496856171815332627588921802047768988086945866744243864667515983234050709984407987784896992623564666878082198796682440892529998904390771320881352968311863315766696774717022335257691947685893158843450205011914461515734128066846373862724375579609095920069068019348944485019021948065293127865750058414338709099819322688896440209454911593957440244107974924590783590367003009808536954576906154564181047980546083108948589720484423884921459981039546398930536564670248546861489257370434982834670234422893459403218152588011804666234966728215909053374293910993881321002463134646838414417357382648785893853411070237917782379476167494951760244334399111205646730505087570918956049046666096495517218762787331780956202379260899239652578388555106906635958600628761368805606406420157282843264694353931761713965799965629648949212715469232408670445438744167453978111605477522728808561545471940356316463831828254921177515331571422712804994351356785502392697617810406039214756509094557853854911214485547024242784614469018411024548966875887263868330850407520375618916921659188505467059896540650654025841359721374331299031925219681186879871103188051612634102187484310219332815358153445209748730207179521549867776601833056790380338030879200696684817267274767540047374064980865211456175067451855831148089374161049329316897777878047189785290657248757084002074164819753356950202076729190761045202158161263200813413647315363555911611329636736888223106215500230882747864798336542866164151156024862142996261561374725017861603644269900817123865005465987750364363119684143016736744983238476024300518768721310050163380916487503543936874321917230955139861677000013050407975842235059583629287846730779144170177875580924604110016868952359212882032008989804577361864269990615438280395347338896052311948224826595981021016981422959339826077144870405948821348379992227033422252775093855081066947705641866303752606378216546846534657380758562098399034888899267869397192197920141476784046638405747259065637428248357763281806572489981654786476772622878967158079359908375625149020363780803114300548202930995601021789305953803747434644053407990762595717092645764887502701433398342180462353207877996622930607890667018842879156919130956081532076199534049385390980751209538647779235082301837409640735755908726576032472940623736295138908952635295836847198654705048729039198790453549178443271898487180260646884627633906294660048321262418764021885871817580788164453640873677004792564905090909901329120347334177999420053194880571075300350556561897519268037067946932711101211441517408654272330915913287345667389819602282362428162255470515679561416909071014606005441247482790440842755578342362520553202427247239658147597835144379697377317200789451105508705004597675679620013555689312830761807825555579585087028260349945504835113844614129438895323222748294270021667237065315341378523204611357578071714082244745012618589403625593210375163243199016002117674725554885702649905168750768243075169656373889492707091090071219447085822433376801225954304834820328166075612284309607257536517650825780377675896750932961350731679138998693541809825040100645338489527480281134096765884145412863191389082969272074733023864740904151972171205460932935563248188608885333898026943516709686039915524250333403715390532915095201926149308601679698837705782142292443640373818188211547202695321668385516001837893112391165478058380374003460887063122860237161869320504944912263427034781358214789994739719766361413332746309397882317074551237719986480990297322434129182180032596786222277438439631397595504947167995547081178859164293309336052511095187985236841076023817972021562539599014165213783814255883427463846957673169543141247812541748786656391602884800133278747228627325864913830564823780968156874405099763074845611390321275007475696643375247584589406577210389241268167652958710701564065973965649819924732140643608795866348249820383772082658863040059539970836921469810438445041891430798391920689609374192552917100593395717270743436431319458630651318254883231044697214642810610582457134305970460410646314198580335827107556707462065820128112915699459402168311692469790719834208524302981302445661978334800482978685544614199076003006971282911475435360345049160870293369938904502793749835441302083286784637362705633840269077208312611571688617477128861212148861581438032087246976130181962852010436848016035352604747880903938617766867182448833194922823614939099512616646338186837068867170143043137042917604049757800885151588636375203770146688963134389150694819965311692529056383582415127371804957224364579144558648795036028759724817633242555748985728164690500866075137305092176619971925169040169302476599513277670056647484508951371854219980315708128337045090864578211232776369685957846060402829651097854639065330449974253898253866495974658212890287159899737604712190094642094932424342465611042201397972372422863048850634696072952677979182830918613193149185188164889657691597249779887311325523762564689386283912160468228348870165502927345312457008264394336931787481163200883839469590474610013795605357292082426987129141940919053078939600665971623852665038146380312056063251295800639306677055960082218433438617193695159294497731693627855146840978114838833494454924511598123142082323577315002677961687904476914714090182632422822830902107956318970168849519653521229542813105262372062398506766546239691613074599216217238217059734308882350013820481999663893630557058736379344891969234408591634069133623771568758672535589605120449887159025990322447835135637525463731503371845211012214058913108550361368365506923389130496094830095823217338986907343888103517994879679488664862190559300933511166393803927401159942480723115764767342375489461094345171813771488430785465797189952863552694258199465558618413450465157176445562586632487617199569552058319937241469893418553649945407872396256193212469952914789515424448315386437115227097592763001493593140025988030661844428895192743564793266282505412537514932580832063660953262794960065884887268087468037915183495692839191044397195604347246127137369823324621167772960040321758696621221358292870214644740690196957153585526501064667333230952163268247700687588432866381733715844883710653792267648749446900844012298386504198402826929195629469703572694238732629310747627124881166469145456695722343173601527143347250794656527562927577122965080287687395393964305019869449141399978139488406717699601569563770759755523977858561565081043270967737419474290024061556257136568261023388717743682394205400237282732163873204189080937292264639103417491188250543923092852857708053896202199370612639746100787837686801842549641381038602061277899536041487994915743025417185357803761505988712212071880898129511173120860797587941209731964212977495324504197616110529633073079007013019740124026462087264740189997469354517693637407417999950700787892465964105394544884447022265189445094196485183795367397155249199853240100703508236277348627085055829109270815540553919647424898411410298574938973217867197385816301076354584880412469116657425995699030059847148272986369828152093946888573025379089768733713499795863032325082982840525116594926738639748400428566977056774816795245939758949864721656068558123197317937435979276633672122751931616994270624420567039184568849998871218503772496961970016744914300909627611018341361974138101377052496933748167060949215013697351117235949988171880574549235305261750799494745323752687811404585619576168186470212812554662183609803077786026368636057782563490769057829356926645907624686719363640952600065350093717942094289536734195981978256874074750866780153916363788148660656240259821305500356364235316569872406724625271189912815364243793317620515415403498692074043065258396880949243819586229863693783783624125679106078944001084486381641169570198982483251540832783125041389679264882882267971939293645107671500167571989665344825453765287655525936697401607644557861125229221575602047081681057141902113634373903136221762835792332767936204174782876198736114737241217875894253443976197988997792952789327135665576332970470359784228657166315527094811542457741207063999189942509982797863045160244024707857409821196757883905603782315955644324752985663915070526320470491266178635880604920882752496569636919077601802205384666465980532850039918231708446689848060369150688058000228047030974223005999361504913098806387163822313123683686207568894782354741685054804345794949452049619491667027161796419292777119065488160928490977302642044626036906955543422090373762324194125017460580451105241943728721175614194649278229663547888964366394790348860774025647248316817563784146171854050691201599767654976810987076981346235921901788169916610649512778950079268939757232184347553215789903281455068524209842980941703682686555625428516945297066937634494834639703983528874491200421908559240305445786728471550354423353573706039152758500473990539174330365256150358440651155952643887598763994532535369764486921944703915802670223338498079881223281617793836087325853805168463296293050313703588976414777183407355628114576796506657582603992985536694995503028756532299110436706747269480682129722092016529082494129394735134647559852659812013392815781733057809715472348922365815770181473146544881985958410629411245396343916362889178928370152412678030755929021170206104683594770262748320871174385234755014266116030364571282624062558419444883144049352632569668247223333081531186982638084725614748173422918789994543760072032497365123678922168852575869875620758166088554053425408766363133666994758410928896018289366068014037018943096742191534417825959715932169336439367885025688416496057817789689877407247543909299888756156142451183488505594965103044283183915110048057682503037401095614340309762848414722564843821818365093551924833958779643971122665810303185880798173296613753222301802999194339023355008091813404244959074688383805045579500657707229332984810935153114634643029590666345318346989478505766602506657127777578626088474181903053153051248166699187525706721708324513298832778921176191365145499313819552145489383734484080280947631385965575990280238116807881626178222718073696326466710969039634443773939419235957280826560437823598666811669811553381489243273385355055382619499590417912364174607085540714640368288163306970352601429036456433048012621980133922671931472069775852127725204055516417345618911545148450990984657722254875403985903990184770397913979456917347933752744418240590388144380145448996685244781094900117542685206538750791561871374333683058376854940103823120133877004914034567846364972084490483175013765984796619304342518767870051653302749796051668569722917669165341867227521495892951921007225165227554703739584985157274508819433157886804545892369105828421586677254715903763443926815228923723191763622468866959898503091858082145721558637911874941525050143996320953865501001829077301014382541305277807709587591061631288439743904382380272171485798125981637454179767098038015234471070714768859790972699480182259636859256994958810230261884843301827297838679088517908340475306478391637304376980382606105577810090733044169493980421720787893276995363395853973787092614033521241139041463067683989204554400217464536253669105204968061549980843500854340583179521356833006323853120124196646202538323478545784671197474834023964609683177197174244532938792838357745653012270766598229342293612686234897477160965818344270272313982668909420016855367492793175776495346195756097873153585909603505193945760681873780207219884137666084635224280677815839675681075953525284084732434173509119787961535628444335547380149071179521624036317972138748808575308427259273813834407639023920490451029212112203843359367308132076726305107278686557584762597516435824160808970312012478123156909597837578362534976662442443565986133623134616120386366583725573806439779553420519285552433890232383170917392042671437576843011448686101421749587580634060059027203009700778572612535732113103160744679237868922886976482925141666801457806984860244998293715417083191760692708532479465489711173635639755634582123991019706958182861386289933939983371303475324537145360352136625100926764857411288011475135439627170063954730348072989647615288631126675329294557683174291688329185585289455275681302596184963859530176291658460162438892377463912652625463669741975487912835442957802275694055911747677385006511082785161166875624958486885742263588032156148229000421244839269504805650403046728316210801473140114337534827533914170610622547741725953315418659377248147879835495229465424402719290567804938640195061925222924877240143642840327836616968542434125189016049835828150362930725799130969981483622143464307139936420372275928275494185280628276632145083867243616156772959487735715252853063121495723450871291710300701879178460079463328638431303423323425250796619191356327245035576153082666540732337468555334560706717073590218573219835819120106776788046803036201891741708513790219231584190333039136823815012142900153092269093553433078342851982045554962766922813140659980878065388278411451273941036606239270753577081220499735423060509866396867143097174386387128127491953455440171013162299484599826631510211257265525281802885444864431716401671499815571297688489452421183929030336337955982941517707536060695413628126840410601963978205641623062854489685282523868437484369366533341773787461159538730728460384026681614478600749827469979932563282703075601610271752229044511242101110078104634104476890457305014905234064179935952394883373588148053941780441217844668665489349494610918562928367209774741325377581553736992691587577418069961987579725563511551358113079452634820502025941976147799189445630679755506154853378503090188478885328619322800787805148928224408980758169599311272029179167009909580955179009475416514271557756246854029508519182168059796281189497341471089599735999404674150767045646372031503233726288666072419340216565573166970165715592430784033023903139957246568659587580711090781467904444948043167415799771435098363068488680945138486234539182218022346268701048730314813544956049295399231629930467045752072129054448683952252037699919913432286747149391977254479709021346529019791801961626936543572772564763951797444310652415630217429543876681792108156946136367375303920260422338405414082190427875251438726290079088179950426684777388808223858654828217141411293250720888685001175227312087544078922455485290518960254808590792358164957444625719257791652040854245358546901365579580925904489988932867922516922329797166779172240141900140173137296595705372176629084940236438640594714850038998401061476674733388853165678999947929041149224505078661602945589560166839157473640343214562854802835429514398538899374775142980081034417469855105761601694129158582649704897026378201071916536514409705543588238175593427314456736089116206719194984685648706367802506419886359780194522345118363380655013413223126960743129673717372897489155908278149861288534231808749667002924450092314149538645595307452096510845335791804791467987413713054840590955264125967296675650705644820922813410205035983109255201279555356703042855135466920073582221268291727441709692940686250236104558163233855253780137529717170986954354490160929298922884420290368325716524515711818126085841419687959068196724273984456907178213500749570583058157534886915646719376490912270323155302211423217563019407352112238436735236219771245468491747393276859932944096887561171764625369019360631777736413512085535177092315843073633267954694293228179002076386804465239065044574385714387449962579345167878830508351332813729358722624537859825710487982815130887252962628711615927137921697746771056935489927652891043025575358879646780399714763192561832490545796690601090435756229861075538338780400652075477168636318650213398349004246554951488023323272255621535938338589061808628228981634759955052066933206303331996907402962181651715690804356282629352198079383289502364972327048437815580725464989421830084899879696545976070967121323172786649117956169187116758471387088306961347406095534411638262820241608313457349503738434240377106608881827697941666217242887937956972551694755439523653167714592034870030596030214477359092217003062620550709231289849436212484384149019269555847665666349609643315262580965414750217798948728599552455489096728958841634812161771059007160891815602965767622585930345904030066831590612380047557760818570271636270617537151852234041351814197675325433206353542120722660619378678080616762151777582537200426572092175750695311240652088429182592997416403549179444899009671314154722452763957249517463312476555900348823770923440690227042545993479882630048219895067068922200470049020020998180991965966547733792130683891524858123762441751467638317965389242163485681160761350565982962910617369433154746199570196194443799513115478724605246662484440248521222036927678539558002483149585272145525244826281072645264542029428695897375068958398243699847232370724254170341761999670533098183065299642219884687641902854029467992932879306309629710797875577118157046898428905773539661185768648915036856997661195174789974878847773340750594077337095739760373369264561448380822463355510436082314722089735219474677067798199359689819695265780721656913155014240674491678992026317990505780218001558412712099444039743830946236949750684696299906388093724731275229578762497948055375997733769391777768325664237435079503142221330626121227374444621898095091824644950302220666279770189587312233320258924447254799662642146226839640880785963773981574952979384462913955773537023186169816923148322176702737527954799356475237472018314499905549413569055975246860264412671789919767211471243526795507537620562074220683438504457622420148625523764630228520100618533057473411839483308747646997690601333515561513444207797634931275291856231850576646852471260716243551871782414036963617705399837549628778647919273648095249234509744400487872597715312500321565229427479480657661690466090249024859812568696936408248760030463916833833408477896628768181930592426484197128291567052877953552438242730360599084364518316590555986638212154340646611529672339733415615589166241847313083993781818970673353369757838672273348177999366444813556996077258359220378741080575540573812873483184928872811277485078752695378338783056803693825907041989543923788902523894170147131831319104714972382478256089638581625441897579483037513957522152934795305318639894099051523610120865300952111195785461809937762631003362450484782830101586893874947035657473941871970232438432658479369799840837439584430277257400507001795520900824009439969215995705619340640196951212405390708452907204234521849653207407079821792224505366827542050162376461297774340317507895507096654860115101732548632262658769471917708592135826780199920479340299004010364391001117188622812058746208115731891951441383091059952643570103112572808007101379926755179952110613079618391128997775248052118145487062362451836462541579983040195437843404810373720934534463342074340231480102022699966823734616325196626324944472173105508911340579005367909845322891867526163331449827916498642458162839057375624206454980606232633570856750693679903217920104206037527468750470955695228217403548806676596699110181894316151976506668950484596866247576047691436116829010195883113298933821454078472569923855877222934025075688092615356389260603484175565462943788505484025030773694599228202607997161723612593293384080185248037056661824495661513373020828129254547010964531191279432289120065060817121131269970828493981212867856185529520159450389063045955411686001043381777954545336039214563281387472760213750532323145526312643374148688707530078460910072517055744769401202529231391346141639051014624150622861274193319888345570553419310992449884846011353524845275024037704961743922088212086607625567441113120864846939926117454728363209821738647791986574544668370496843938258080613087789591543285876613897161178530083917837642365983276162362927342281341493014072088106874587111567619021182870045129695678115820734408550532028710833851159484958263570623073341673202532811747929939997362498287079357810707468998278480047610216972610812385175954488050374440205945497061600895507333928912402790762988596016519746023055636036680901398902741013236352199815335942228650940005491308991493460911294197701843903447411445103368844765574277101325682644469775730372921159584211434376812656495749665621219378772409217006315188064923905501130706285545599710317814460190096141294069164339918433493722338522474162685197819368893007387521205308200557465486714148046649614559152935415203707592971235510434670063931006808559665436516171441628863151340381838703675700908320046332937323848413166997212388186709902165679578844551111072828361538143638476915596368695896303278256500788030248759427309940124944347155355783920570399349083262229482079786166793256563385732361560940445506581008793191283288219418463104731593366172312157237730310554697951953640581646520663509460489759825137491263342391842489840099075872793252960228638990436134746371996861222210440489160585763534525359027428160354747573045102529377499175080627704729191850218889956727462006107288784542916760884137070177808657611570797523475101038786784531291686732969974281017918369318132476728442612374267902302022068231564930911021326898717094167606361955447005119255879689334683151779510886183282101864629423478642785786182751776563301861972449595817604781433557215241017579630000946450097529163477624626232682258435304034421948621611042400810701424021286996910818133762199712501422580463049969356294114506271370429438736141256003003725736447258916589766564379520785778606583845948596666060518925569687842056751643009537820899827250378614743205700828782106487917757052042912686440812527001605891719185962419171557202447906607362677898877048095040158394309144845928961684800724737216548921483481631439706091930119392898595334499442715575939930141513809366397982925099477637026269959260542533376937298485134908384603379480081969236055565229251241177814332639974746894291573876899316905925689210207854222123887689904120412868177622796753285217189036830402522124663432752188951844392067116229587006893218383961011571629610058272740592231836296180660629499075095694208995418278650538033862347548980136922851958462425828591262955729068119926885626478108389229965720606389051046631131463622634843545035805610175386330286349830882105277910428914355311688741095482779851994544038859408158702937871494756658697281574499847354149316132051909285040883313867934912561288168077302525285156760895353343904520640667546361163171025043386085717848522499545463676604856500202174106872532422706998579826392290752804205174574082153233038274411275787201131981657565754127165990649241154644097885318015914808332170564299611970998128221958222158168786855868053058594003397346031080587192589795711152674909848154236896707882927548405919696951440875281386503113650514509500312183973166860531938264351640500463501190859767872806167066574878436139648260463162449670846268106502072530188845357557321853981645898076376437397777183668875551774652901382831353148684852426224015924030997480499226246286147344310531849130972760161918889525075382248781039963321283183726489236415769811152682467054038218313379143955781393708764959537404020862169825637762291351836662995065189617427026377720122059689057078486169513047127719881171529032800761031358774800704211983434661783688595543960057483449265947772915921959916495099028289242305571523967694042479545367060719899324550777602557635245555331698316185811736736786470726074506064264116225168138620684457813281501296163398774853335527212536004784244747249018102422619233404700004365093909073756423624084536418460888660195170141936259529910633830919560724486261829096798312086154100555168746029268372411218346155167973159427307168889664057173281084192520635554608777514700596768527966908122757362427401721494810679037597209737505963255329870973881554880173090313480719071199569136656864062926813497741811106642808452643897996578330026562485577491943176991661097647883793204996179156394432027938824982808769641025898750158731833542875393876610672826082071975741031947849941667813934797635431451524345887336309600153023226687068008862301564178537837653386466558628095151113365311453922117317732941773814178732058995222564798310571809273679144756951400835671692989811083414641472746636792282024884688355012961243903141376508529127487003180049457754797035789792793462893370813455143675734507901939860754532390391991824341245287180508108797018421368185904118669794587836281590610321207635642063970934920092727594964635020468575067993027192112949156065205644648180670153345519266464259921460014548144774914721647267945960985880579156961540558825866964113942152777482423473207479122325182832404899109223894744078498655643244627207758696508036566405949722286565698561203927093004199754032671689001498504643362022179572932022557363500453183124741697835960739569461668433306571154455316169399443649887834678631289259130759928910508375716080102577196880771268111219540752887598804555589725777875556453292224255256203491453434940971637203139450054282003580630320790946508526246875214461674718233675960203962752215211962052637134852296076725775938461653801518054535274962521660397233051693058438273746169972873573003173978349931391518404195018558686085471199840220727884534468587459434035598050418321119443418158031705674148020082771614725816398960642116106124649209124768721172117553445223979133945331455528395745579481661595327062469390749276683168520736348749959802747120277981186710494544971852160503334242461471574512511472013587905339030397575997189265127913313748855664659023303944335522935997560263126412368900622918173111625213162507993040104180475003673979829240231085763936147753438189193356742735115307182047279704817515275687065980804767120131072135437718843752502968521326111748873780700796534340934390090411711517527238290518005101326931263277762719687607423933745061621168202420690266512743390830398036672891219037815371056870100380808813125563183685428076664148410083195377159765064165899454757079137356818106522032610618901723563869542228328658439375527068721693117229170490612949933144397185377324028950593219888064986527561113314902096973707083497292596640374872224062453560436646475875047105487307000309430715902204161905517537642762103558334424542557228029772659923685799809673264220177337850071047460116877573673703100571707144488838820940497810922442718112531882943448293223190024393447558053192976875890903685265227630806412951035829344793056440171072905575192196590853307812778196376028261596222997052882249565001479841612794315798691138963615019107646474498698817159668737487202595802877121909891785083471502074444206373953706421894846454569447570047248366808554860457797123478827834712092341130709482454519701025005699095427399818108339717121735428590047788087809531285131055395415434093565018886177800951766781434154015785472219702307200250073177798020266201971628437084520035302910145243575929117093641219849445986243430251008463329577711838437925400336327301752248534218751528264507907442689966541157071173425872798526393550047652018909129292818760563188746486243136351832323935225213946434381305674787259647980644936970681087955591312243849187237597090306783012274808250347930343119046924036586211404134305642891363680372816647069336751338147658837925787046925444338558331142260909043926271292775624910309805574361283674269663375815282299213906250827665044328357998561556497420588725453292158895076439626044303974406758612985514334759730022048861362659523142481579272273776281901845903038265361761622724601751333246741192116716573836436533853470759972051110765919510000284720601917953368678772950650582996012695982289056175931949469845780804537287147568754214577074533940777298682807201409044160348923289354761229395803329535625710576853862201443385602518056599920969156982220067330009307208922627564134184350333714054630495409561114787762711389581893874638769688779041191344495422301795682858345931365946239340827691987231922287233136657964828519623328948326607846638953957517564043747549632314361454046087492865573160856868200433092383686730630984504203602688570424315999145579168940815214523747251054522531868240174473519352695537137272795130187555102917364148065418309996044739456788290654018588166280255647467582989705984941926176873095102580543521897044902297260077805441767404400329186314054669456784681534358380454437412375384743725052868467749629131454537974013285025241184793349830063029150906754731616020433321133733423525216508340644305333044602731840170593330866039452205629882989866527579752959935338306541565849106592494269615833192440172600327197069025312349075697872556071684608547746885555056808409827021218925010686050129400761322179453926752101708470786763384969277454780477387740505960736812724261322625168997020356027958085680302308934626855503668765874856299542157126012560475425226577191837572948259339813891855349797753175820932136648472254237552192267414220286838485879936073579360853817238665315192666517844825264818787111828749979810773692370017133051758762523879561040083606572652808286648221150888039274891040800815042717622262192452868751812867712310671153558785410246171180282232159362557949995467163058799710019405726166285536408121590121475254824544900833763184328541743121993297892995567219576170678530021645980896319918273137235165233753445293962545420211287942610521906088828162511975855446217318721918520994348962301426108654877819505015705172646963867459836352236038441156105050113732150135294648130842576083268790872805737233139110795945222851070165296261010427462139189953672221617042820148179513174562241104180521877110685959310230786549625943811832957971806667542032486947100698515529261463333611076459565443916774318033498012552201411944725603730175357570799949709624010019727581126750016749289618573711845844403627073333877076773236540843980143615722542454650207360954483434609832478057817755354699726882001784993317651124075291756423943257459227560929686634872865764834612137959125016824937865969001504502903210433030554038762813203297775398241593024410126940237217104020283359158564791529973220506354534378422813274609582319265439357017591167861601431080638681350054865990346171802156497922326629590848316472634027868183172782319842450547136479114218199379879003011357835162162007388297076811669210820027873192892525511476489298509671855783899177951420867080743852463154541282082407425397886692127282514288252914245082459551883892893386231979310054512556432324358125920181887404598331605982548084807312440893695990081833274413304015663610705914805626815410974640184688187802195292827329469608987915226456729854734151337234130301513555628940354760394184065848634247738431316193418022935019433292455916939386819317697711207699417859250730087299512405630339248434247811231188759778966912385153446042120562408409048928290954039902661176209999449291564594589596071051783917921210588896235345354291029158499651390210734675328446166610528286803849008790100856829735112627445043196199227465906441353971339261656905246555872102471334967431652918637746184540109041663506633000304936596442017919042951952149791455939263744401803728260220698039590969096431641543420559967337965499704226038700447419545916326072642753258753254390887173165110355684748708227024803205362757137226277127221388692978772374011793082371546378193285704876862510569778798105164919583708546980178184969835600313827672341501586932130234399686619637276896676516678279120863499574706897782415843919843416855186786670834790833115131967980366773739281819489962279023063025927042769520969574642839442985505805597194502699813316752854477710456124738914675811311043940709522930528017416744959376717537031024963892073236272246411654870655945932865029621070823542618592812636851189936565933843007532383359002919045178623783107331467204013706926135090433452372102970875551754883005830566708688270044458003161298489856299497483604443914152244892092259912399254501532419743975358514466259303592390093312158569620615804118911322004896200748426704687592319929665227683024976858816382595135380673988123497387508223169337929591438340625091214065710868339244107529649800960661784565288525235108916965122630816791517954592233609629425973184553094366650363696155302479213854256981551430972182217906178235491502795663853310513890007781031302301523565494095712991569143617078350850058290209808639267856895483821714546253001335258718820761992176748710301223831920677962853935197814844790276862140142447228792726856210843106364107701682843045530680403732973437376812721417814412976553683839861095918273854897607480344897778179651604258386756654559032020656825651956626410957959132507331000083221017807257358699153044479225379808601161986136459388700447463684920334818155329917156301917388168109330451954439959508911493523774940086823096567492017402956305544763114543474860064303197475840549704577856844665074081883090672884296965010441534239544265649230868981229171707639149302601870313865079232587353289129433831628499622900575252428155924327686895690604492876903148880383650316165984098247324931002884138485461241669050867866708421902353602438896744687407525688393410789480879482848832933530018720272648448410834782807953321985200383593771968228937755239988699340214498110663952774888929004198805352860018987760492837361717796975351415199676468580165456613845070499220652802499242233960087431568977148213509008516047427808563431070958081391496988732214274139211230720267431747973109929289613272095993363650728509179679095631298846402100906337449515992022667756614213419682787780349736074502170182185581826633256890136575367312923539264385508849939841673711831177710445614015731560240475863489112606728531591113041160209782839842342736641184350035581299627205533653091518213247818492135386509052399489946059605215910273007945863602265716919147921515243226397092228071150928777394621077996995295360475232180128269549237526208758263515719772433299182119631216352024336993892075674893980738892282447054300376134497411044781833477496879701501529356732696035752301834699542746809262186283209066421180643663039626987732468021442039425417378612672538184998130683923927203639348374594675139084846920902106765098472861425176373049567092732451364117445911415045765537235722541147058115113324618740741285950412425848518460154999172246886964042290925422494933334489815870259874346186151768293566082589607608536317329497757966939434763415772065574072220796327407140763507857440676054894499324605474627980772266430987113020476625017783707013295504022098537279316694526201755899865159197760289496677293441322895723614042762801235847708994397511939221138237715511419026270695465871103853633007961524668610794663254078675676153441013872366206448855727543070626619970967868756430089086582633439206501760126281994038462516141263502734069217410263543882798206187057063721449515224979246617265146110308939921663221515383847598318075607181150474760175422318516978795573863068578447606785729690600601315075697685293180208014798489510094027341150025024726468697490291196942315848149015899517740630603010556803450443046459911566379275405407553341725063647242411858882836239332858300350443226869374115079780560803062587336165058797122863853275789775144783851484657254185503420296330683498281266067763638938457875541298682959885475762692167269947629677181407527200793982214912765656632054396419563273981756452860343160817558582142162969415872485169570644453535974457303714632173232576146561412032976299040295202920734869037849183537368088546895883888000918140736856007135908797297718243696023566676667367270219414872552654087113253958317339042555015188747156309607669719115732009013084488132003123366827051520625586391154542866711053227358064679967321584177239111879179024752150306251473766339073078825214472884463458186221593691137417086921131670771415755438779186530189905545137163923304985927429014448749566607058169012864567258128680533480690437219882668544571802228643257514448919142326118877444226486525064899494595608111652749570873186650336357038958754134294029236624308916447159668072250493055588826260369016558727229992605695096204300548810456404398608840989714677727325248358829701916659023924861170595075473163166089028038538666086901938135333108846815875979095910735355027089294157807953513973007484539508646769383379823333584434368445007917927082594886508528194086658585618566903367713086635075532523536087718191217417713189827101783692908758441505925375588733974438344732098319339529883685477012209174318825353636682348101702553271320306896647474448325300898293653151372154702129456507880233901370752728204069138732916247164250537498339747880427438638758311348853151606160415049614137024702416961020956164621383817632740725023752223230395300796626595180717924238438439108476084283837764811308120030622498509372624177934859659826286590574221671837742799875158412864846764767351849514857954422119180551643294306645697234678351287003555356383494603840202454928943178459008464310367993911790300145482398697591232653403568716622783634515357791225235770978403256908352793075136990993580259793272430557560945034097455229296163664181741686995036127113673279330562136364382504834947901014279316054905756013593720686046267133506059812394384527266298111201075369321293070064824155018267272593196441525742868896193298421438782686521272262418656278435032081860310223148722968038316173434576389286919610899281957577246618933244899372654520016458833791207882600343083841214072422657151971630426467031759155592302016195954248833318136022436252778734779948788977644181411683775999167000807536311071282930014435348562071869496314998454704591566440455357281468684771931500407977091006337372244757471920920304857076657540058190435933297669883081014580960063176579325595773995475084755009406880015364154135524182654141188414720896163282059549636100562129528111995887780300614860650500400543426846875977442180255151409880710457553356818042688100379797420092297119484085802384161438650846709837856790731609327729157130991488480807842833970715976125912414662773335774590695952992538440427607762666435857639073518304935872836338555226035783310451521411050072870975877764265871701192766236077095645344745941952089015469162453968498397037682972887998814675755286489109207478455995692715352944000958473670793516740875218655366334256528232303997998238078144954779795248421429306320609138226160927888090861108331417660368062257066330496038147791951053890089054223461321578490450781659822849119690740565439376126626929557341883519480610698199685064156943672686480253593615359298528956429244351204611767632144453592965545022877829639175475506479589856647532412617117202493996484956873970321649937831425867400931943537623980224082580248433884029430173522622185633414748577010610183591547878636701885366948389390294724596458164218385227075779402016989869000428537364627140443037211414185706002324463637602809866494142727683354455059513808157279544998615746468553851108344774294647559647745560135131042123444855763589831939932061797470430004126007612676901460578894716142337576945819205227882223107176344797643886987067283424012106478980232506174669628089863965284705217045913745866663266731652562033712654107783287346736378167636523317359777558641903510628906390026368416412512572444972837314972859697659792842112495038974963149368936140540108599975492286796671842385908107620180435859758812323239175040994188224455997911308907687167506954936532082495879556540577728048088185193602640800536001775209324985229990958824216656736467924836967315211203065113694427532209360512688104318034656953692004577672109027682051719734844668764188828650922598383186425361452927844135737581241947048112294180436635946371216943407362456387063233709922056073016984371601556093121205877446202306128937623171154182609520865051345095798721121918920208971719650683993122706541621464450157694338248587037880859713266888103435129045003053228865626131094278484167540417527120675479552013060127800583010185082098409661862996713857980370280640171630944200408008447434379697387663075592128725082864586968864434545482790164218475144533824461685819041587699916463257919219772793742055752051203361410222669589204695865842961472466631512324043880075053039685916935697809830608640557955894508948429829550895358332706450440494132712564646191913919274096908577395712561873852500795700976084193323332645361061949113660829443865340479185106825962472997476654526716313618805091837664709832424239711174640186787096963764024437397611487659205121126565159065307367971110606773416959483230887576836575878345549992756351732517515467204311956803987066831799009839739234435959668823758549390573570254887589008100836580252247440747411671227151498747088516210864380214810787398817805119217900661304798796025551479140805703665250314219388130399116539408564116962182783734615857618199261187868561402364419832536794173990268369663998541971698821186829705658691392847578809377113273193899160469726071267202075971400910489982921605534440370974686263801787348200028074446552506810270727693100949857291388388399885940902950263831848467169761744629941672373680873155608776792862293787878610293937191098475795732191958114390304634643946038126620986882454990712772938607408481252322801168246396765101785115028966124928162352170473369235680328274127953742811395566749572559362868828884440970777700336718062049232158346034563521143952147336877161462001093890475917418543503047012511429579164909238491537411557967690327892762390512799878499254049142921027863718716105938966616217958482576876321847369307171986145175149255395277818017761741880650465064236371300724847884311518479053379823888435787825975547314055254871621695847110811875949518691791206593218534380158105015284779528395972929567636698464185575986607026070421958516096855206132942395374802830203818326708234486716287243194794861086855100680667032843875091918436235645772746715404478441320022845481493590327302427357795463878420902564533156845149844795369989912526187015945983779643999468684334857791332818269881268630267842523600280213743031392547488996735141105860436448517481064724791266657441435705384045834909855592112413090273251279919109995535322021384899163513426601933638111024131405900539435576618105337818302235966413137198304234798046456807272693766223927656376446157693568199921712441307944833783270731962575466874720475716931644691317517733374770256565689082262889444803964991949926960095970411224470782042299441000486668856161232639047283470698401261959037027412216662555773562441086471470959676166342035382065904457150863595272818941873426511691205682112382176828179333869211096749413552604920398213471633473747754256730398653160520772470113525072785219120108595064269353367475540601076028435137514020877914892540665048828189949952262950458121423344269056137443057808413112238191254515923316333454889032375731723457131046887181440030067187595345171433101895524993237529512704141189206231791812274692923680311646834572321437395981542565875294082974513152711701430162449332113415487330328764652278554381564974792390869120009560366951903877510275583318608761349044983235436329250808519637487346418859336182078082779387079141055482999595769677336755238330499426815807484219810707944589740084946097845517620646661259833616347106654174274899420687503342800133797963028626752679421108883483444313526729291703361036452951373703616491884386302243680213150323290429073240350141462254069733265790697735253879046605098507474644030432042017249107834956563642469118636807817834816492696920052393158521215770078663678342946344322754231150375432624933221450172840090839502765368704257772645360813157981132380583342863149817489144478067414227005853710527828982217433804287339417963920090376889655414293057576501060813360307586144470340086365193374382459252221148150910068050786479284087063295227446409943119801616209541263663676248123885712765265779654889766124890516099073627878936866291997152442757858010756616231616059790419655120802859279360396033083498679758266730566346881354279998901396973175966091081582063211006230169127063221896684359787242838254233343583678734868231623571142513406613493798239682353293931905408645762651807392055651625355449479872111538319745702557119395534288471021752243605936310613618013573182402593501960210807979579823685059491416297636904009437219210471271109981745978380999388641516094456346906118401036376924958480555911736939662134204720577420022279551979803923555956582121301848667526587223449749519255884650370351205762561012234284607452763749120887515822134180312227586055999721064779117897129541734878780377963209899038692133330250138957179194953451290482545526724011582742431798582367912137508571873425292346803836250152443590121203168500860529998545004573257580024325351981648666755385678756525984189269746493541820765464604162514144166592752864609415210187989004615397269076297130791943935457883505804664878343978978286094210387408780482785542194462125138530341109303129994399056477390249490794181041935082388874989940338650848747264732794646801768982810914009253020830600156487232733178078548858463443259668910955927635994342021479863918295867115063522815880869861887909087351846290474538291439224735637406869786858245317309542911050054409370054905139232674802536527903186099750561529008605385860166793294359391874044353137879802439715741707230658322507390835496377521467440911948671198589100193806952844018135918301218993738368563553202759358493487380548838774330565407185102873674897869718131208057873202829252430560320942864911871859504865035818721619907821661421221082326099738946988306688001739645698249708726322774425665789533568356951462448689553280094775402566178457752067859131773660382686753927762786391898893342587233993436004554245223949279392626002651278904367507131395904036454180183665547076038074045320671928287479206455337980600425246559910903693051088248297913187946969874909694474516576284351002459420485454602693190650499660042803452385035019679471110591875750658884339695538139556958914694190941951026668852677142345525350842209946377418458368088934735973987436811193925623781688260599531514436804928284629335654672223240584294831923127287688873034190426378914356266779546152316877240293308636370578507440615929124841765690708936864691910740028182571138160897571745292459888120721648838010567519634429131615880330677198057245029694107926562137262470957021820679282390124604703913292902385290621505097785026471226624169526286843642965804514434051889684144865256856488350898065520061509675832622579965436108043046902467669289294877915220999951495641831362478983361091318277418495661634922109352548236335379992555420462898827519051152103600241306105344406529888836737000003259747463639318293334278331662915825863644831136506725362017268504949328297167064793565586955862812187340672436450250444264871375137375698842584472104577082992867961660596631562980955970218535544845104074699676129105757916165043121518950596489412084204005734407265000623150214269589911905448678092639173986151315800355744320198147163235620305337140032370829984432818546092765153668640415234447103230219958528590088111792969770425924668306957850336386738898984811284769668217203381121580680695972849597308199076000869364854824189130249158226289473318971147211477653527407993728457730303909443511283082859191021853341714794750661813078157830721769744554312748984190312636819409893124015989816345749891200724474354931749596431184950102831136220127130377469878769676963841399456049166635690443981834420916695325761529681171367926721261132377481750239786405514977712915506742711708661047220969670281348833625151767872509032041779664853515747120340472286814255176278598041411650296287055363189049004571241144780951537892860028909611989025010707708264157731942538304269562649084860976618519651262702760516805416927587872817824675927616944719740053712187594929186565304932446375807827422063514881917374933167268990747523866181439953922954758151271029928833747720189020344243018716453246955095348280714221282881303481780615016449339356575200664073882554969715291057887932931217651706620790501686099775205353448927419714513404836341066056624491254572074813704396120517505115514724927505701144685269082214282345395918572668804950933934936776749281741219917725552641696775186669022758305994613012698701728039645208871765901010682792319986644598321082599365555350706386775111893899093372327244045292179167325013510818239701063681565213566471125665614181516289140824227739563040373562562546280201610260262064675930575940809036304889411909838917226932216145652982181832304650083017367995496045983894295026265533663703954522421174021189404683928900546412234678990734579635285684871657192519033197403394762021717634348264473742639856006644540054715138659769354415592785637229670568905583125386782240207356526564291939298808987446165784805894356057198940589548819610224409961078579875593116725011722486844803934413560715157682578302416333104279535068368760418208740202115065248134781273521830634168891865816291134187547850404304079614497545238820668219401820755614342979022380169834306965693647474524274599085312450929724236547029407494302245992593297348437684010937812826318155125235001851744398635122487829448424867800793976779828971429485711043007350583247252604765501776705682307171847122282595462157733118459263536415430353655625147941721000571666571227152864764310521357537614583554121805413280735760749660433570875118395271844273246556562004479514767385855525017947118170350762987155988505101635408550050136819157068017931684783711702825501528980969884736055717951751162207516168434065650052892223599871006197527079575013403126354852836453851377329029893471964394065684734619309082421352531164762620770109417866726327133678433966513126480579424992698488372958751734640955741954301081504972345739472930029195017707445876879809285910973981914407719768777466296475817457382577903716524799242470083233613926329096778904982241989925979065239677166522820123422551790801654956210376854287640164165901207121333215239628913167513372669569586293904333859139898606888402871177150417365487571593328040133438988602113809700963414129388207932064922285952654006801430007839575310018850520134113719195908487429450985546204258616655507239361826300321320815674428669944159824725453167012254736580360269788735507021666858823891596794735859047082362363156952738560259783713141128863850171199417869131747357498376226108455980074738775967977406387363460603219764191675413610876004730760506628371278221182976001984149787250910121128395972406707076750232154436452049476801965105454982461089012738006391866578599903870184006990141048453639372902807114990873129090220634710412343544796681536378144810795218430600662315073397085408490157899721518657530256185387614872070213990315699138933647985462160905882640971363176422809628994046354805083987346267627809830417415299136940911501841281083906243015318123800662531259790968680723631848437504072060856694192537662898891808929700033999287639701659523042185746375094423933558647889971874966865151442904899271391452565013214324392852358315281751945985443874881897866779610352228195757734610297797795187596711136749887776268790419266352760496307066869497591295148529021764913271722178986642125901426511179494605259586190889032646352272401471059193452969405055550731177384182536716922054216551157245395557183309152741107638776176578746888798005314168710153551168761093741261088109050938371128580460939562117106309633587769084894457097251660195937069211093620116574677090670487719319279022041953829041598938856478271853937959211414552975314006380366011302007383898528658323996951671993813129355425247008129388509765227616037166597730238224862236343979647911754583944508645696586637790022378233906662958655366402910858090944486656218522194729250354455366905536032925217765390172050011049039166818551670062688276473338931663254047149561451093410766666793526189132467495661121277825186356415451921567204497534094711151011703374461644587654083903310765584834901280115399457199867265647384172092086292142532511463553959338857553328777834296462026456146720195690955499510328214473755670734465790577688364826194480280288792749215593202151288260559519621593870623545066817186827916183522345937293932272660079916686978253671929682589848416452386331800878820069130221814214269397949772287512787450251360767980633327139352342183017587043216535563742965748495434261735174114067787521892921325149899240205965751679920028602964900597776657005678808899759431879000279162157052168445586153385586102084245318643517068131887551218309448502179532620864159261261521686467612600351086520052165694918854426642494154655845930581977833800932571019905765024799445286432299513177934866241755537110007358729429283515174097400019056400807508962497333804570694770631891814296936963345207744322518149854896509829985771103602538422157231755501200748272840332505167703728223803889703961306775939401789742095460693875407524819696964129498811648513721655270520866090999300163967217760664894318334911919205893302766302355058886712301470209051566728080632836453813923040119671767954329553913948427145978441497929790616107039979775132769691885609152788784884614805310246054419100095110197553966679369646396093475768980829959005265722781088881057189889870109217253740814606571718151036915978247348009651998435621331888468186739522323184285934311906110227586037397234849671995140540325961398012906838269248248920721270379905123952876003268324841001995857830019837784513864248088712882448472836120973170735393810347201901368285378922259074780098622378293423885780348299833180773174063031279795651496700757134384828802280451785123122176689683587883402814856555062152434395661724038124335475154009949236658359372524403535935502387813969588391793744736872349312527130813131618697292290654878013926278578222434893812579660340175743914231453788425492970711075247736477912507087871442984848160726906476277370129728573401919900631940949726134106555683344831677754813216674411385471835093940248505434691937336834758663785025431921841196636852969603133763576477190974986125317746318952019879004977277373086296694171547101481614393454972532791537250653410184844748356262340348185306649524000855577805586123502186728567209004850373849631268672837110625146981298005449256147167886633827049439529357332727124400292285763557368951781192200058661859384301656227742567411321345637475868193092994657433061104986516177517906482592405904871973213462079819657713756176439365021724563445923682367833435957433278862937619262490894342125926069949927281350092123618815771262439257623006668189163326910989212578799658247760925936019490461219310273005132948692788825725007686371877569907493964398812400522960923201190843403195409035610546173950288684923664622135097874341992252022871887856895189461887206725286878246110638741943686176311712316674784385021827596167896609042303954623384648624496124559869036913555186352508233471169143359629217241845111624677516955304816338291101418574501622988269862598222215307851996666849260349032949681262170182433865069450321624114054482551894476262901438405411985075835449854215689428734415335524903836823334202324252238768617824375012657094388352339201055750800791004727687237069433481550136821597209075538159224039228445630249534043065808859546132616038572869611726017666955761960295514914639296709596203470375838622134370940167026770722583180418234417761595068762425959519379730814380506296944669421368175528588018680653121618582978996707087517414908154726846099347563499700515976787598400148042832808042629927552110107771832882683969158083330627131867285648089062482904979834587383443451726698495243772925155507597820667387979274698292354506540888104477478481615600039880272026270942597705947996789172886478909600040435045608338625213338489812483659933226025815421786427139999965155702957414194095621668185145023538838059158107198447293697977167833411576948951313003108669597944753341671991139302595244486539488962137971607395060452581064107422455963213696082089527743090880783777889600039494982435023423221940478342380603920171041421453257310142357049416089693729139348925992082549339195786553249023448781351553679460092893928311649125108748996910445037810547152460596817094971958710964906758801435514612139887455237768266946426460795859194802248241007629747389660194309856585178333059538683968246211409697155325398796524252624689911123229561995518298444330289657608996642406991321827340985172172087539514587762679829902054089152749069967411714542593246363217233560637176246513625628573636609659882739951392269523673952061448263789102929658623974709748574855352783721807386328404439749992553939291668477989337800614384051172453380074321074486089731655575194391221572831154595037291577931373107392516016745374003335683114033331442130074417849903522976862217860922211225498431597185503111541253720123147101792528641211464913577033746382282387895095556898731121914511428045829706345139349291580847593059701909156406193430364108539344183330008450302988230752500921242606048006095656472176343926054963636370941818915645778491925880052436347020785956166716124885521009205756044492370755478740344858768551446012129833080568748133481206532457091557424102443324054153881415655358374050895764385508520455779285240765612046170395829551041709706461633931876636740653171739497472608500430849577593713218461033901707267987193104020991623807143531545929561637473410990997581183495399620082181472703264612585064616764083900367459257653047907905203817657042785563643418432086615354747900602519925008672388705568963838951255864316346268132105302321919186895541164097899861236434161741596012218804815253103956988250560855989640469946647761911283086073321211677155997303040839849896394392390598464452366275838818997530434473647853557098971559818311210328588849545789203819367858519973740233054273604059879710587318423969593621924785419449910096667871956925455517899132709194096626945182453164572052111979164613106177858500781247941328191279084669255046755938608479535140527161810950145057018726584800902812765789753597850450625855494680419170156858253846518240120751202159354841139024658051706060778492808696590338947942806610373410264802822146436150275328270328909807509688387598739012027739426538657691042282941670892570262952820702587657703700525293810561097102479353875850206982212664591096388010939157351566501594661139936536327171592007084199660228204849938316233881003915627122650532256959491793393848724575721369298012508409055781552256952229506881968675022361586799376810137232785105171476902216547906305125168818642952940435287603660070961842114803803725761867597394013935424202275810742737358093016307019257340865339905692555091176285851752181477920202897763632851186879134571260173101463054937712365506102315332489895364413863289177194748281649402212787909410342182212802947934617714539779275238027150181057928253682874334826091663997800480480034209536425118870084893291247492211726879009471945144313786835164247781642198443953265856890405247217019149702125628063949994771662337288619747767376816029422729333855510680500157664747820061008381377455392181314548822038647125115607524207308626003692402615334666965791070782074331478918395573166530963052679073256696188216693486796991708762141274525581743248386199198216874642996817062925999919272932778800419037751943398823261848929728696424290132784453078288728610038748583097500468067692183982268529633940336733436550701500517050298880949642959041195948329456257414860736898206398074512522256219781426599138834473247333189275180435465361025767384647998108331575374973519558248957697673324101768501329462234405766959831341273910454262235847882646781642576335526741775201487101731654761904561460561106512266838413631446985711655132529754545933489654477846879463602258498965199648371500220657789156808018072176230759920118273192237300563099082197517069460864962685571378572460036699010288760517027212507115929664784099436720665891704962150056363470165096238591908445250823272568521010068037195372394142254432552906562474070953408241808782407434455081776912710338142943650173703644232349085348128120636382084589040150361364433504735205425319322203017347861751307058900824808511604166930017457162564785868565705568366919666642979722750226469375465377506029514454578320677872617871459605997149985813783864434110016224715541476255351163669934989509545031469782370579931133414185062124203696875183603183592575278340842441166439380132958104156677629869350903214021106539709367660743135317873554324748911573883932520892303772733895147758587995912880811191691281250587133529062411441078763863791487831791768232198028936670545931329076621935025775341948536772019932204241257455317330943013778426825157264355198298911169799938919616407281239298529375865013538391765487381059738488176309933495282267599905786244023209080396111248297931034213124962796589500632994188654921277648305780956866686916865662850398039818903724591408502587046041379919394181013035549950136103008896061279194301861737589277485852740969537868072628919585932082310189612122112332363339133949382842243020222461837920779972832314140523361990626466951754386444717445741694272949835347108850802289273885725781474558894720204040677424500884983992228311578336882084134568405003121511453947003506883826048856603550020975029771339901565420713719471899891975125476783004388712819687024918501834692873275501953207513740613571265647804581994058822639555289589659565090753569630317853675140104415199035494950013066002579675843480223972852041276554383864077768222266321540398431038294319040395723344841348246964444345581815348305207864802224406034737408862207545139074756474516784171866977660720202104203635684427682134493685690121524743639727684943949189464611143247039694346442368342436611969901876427459765161777576790235861615041215739171969454622417462012216518460917390051475584309590666536535903818551055912946124613270130291542134051738929419217253712531377960522685085860543561611198182439839550914325484041016019738758429883076719222584300319107301332645185952535260001624902490875137131727895333954106064846632841408496701223138078451798198186449737508451321836630510112055289135074024155493712056192693501172476011394447973118912729593330797195279940669247257095650691185575826139478608786370064748976140958170397213739098466735780599686985784622522688116456531364097789532449659194300979323434250065729155079539957440987652213512017160989678736487227592485621657288192102649004366013115088989052486186947609084127311692434814276593217148095015725407256194722074384762271755331108606336265021012080992102842311231330791743100097005491208941692358076444626681144677901236104046373001930836320861923853791726911596194254308624824228511230927592900723792113428424338162888345398256578030840142654530109197359302840907613082586015924775801352083042562420062379168408365015276601361524103421231569046474246844571818266056438268111890369137123455866580430977193173030795091607392207340573376146182252617310250390593309054677365247932065451505612977108570697124404343792260039226042878850386487626185215520173861762702487683199523610752471125419457023804480757383200515603959387343004686355592016668917119775924924394162991061208368537701067993762525156445610140323390381337698042943978562294287424868975920547725093796719258630845602367960876489869149706425343573349829009213902005946452723459363262711840403674586517268418138410005940589347590420472690929894350761097298557631093265124010520864884845056287783853796978574517244255859310302445216915465837496213284553644654205407298000395225861358378783043306291220766564475454581700529139139515046832698586108511813998280175131452738210711237081218305732537002764513003721845735655726452413806311200374200955306912585817786444624158786162501350713104432382499766410544623384388814361672298919094512507070776060704248012497964409594423565978013544207094402350442345590977175788484527845339239896699708077117614207759510774663179569994122185820030852308449440496356472378611145212510980661884428937454459178436985012577598741064237164452708451333668762427250435454616045950646904978985868230239360537301751938942211880629724363583523439263957097614136936323233259749608163667920339138311328801635511256241953197075948291992938226664422078426111197789707580600967450214780487455152484344103285812765000293637678471346321994651760710974123711097750342024541859572568508217581540421745515464138775736839784239376959265845401798944746515987394089954254621313717656824576491383167463071683378328222543128892372869635291559430306439554604815457282450187961481893622279784345103476342820868215140933419736356411677144351974478125950536805974015077678355671619594132740350453402052668355657353932985677187818284947700418618966139377952636302131869904222542517048225888434593209109704220333868869824722577524556617123410320315027203959502928996569159622973031176194552229151772575483242406087835520018227767988616891757611558736253057898275168880932337367773865710096028145385184388230388435326878616417982162903052366683951870820573481363563817342949267161138459534439953686650220878693283732420310590970962269249408739458552373472297459498528348162334508284893451936149893149347799341973592776441603498218042465295400813476528650785514730567385044498151362517609839791704581359075454724494302904618436480022850443600496991959903180793706424316927794251419832727432659171520096632943263538274000920187074156382599629498094827054492452455332291559270395393354436000499585435737027574861488870572659960884735605921291193073955138668280940860300925154558725170753498376983531532432776618678994694980175942199115948291914389058641389834564741339928727433044744502724708267268054710796407223475115788548628767151629097901118299851553104266780156781583584538170902271084873633000468069249709437245956331329402405051111510790109215634728167327116218467725599395378482521464322439273446457191896339378573708744958205354774405129703707813984003460675184202068615475899661551210808526826663980445676359993556609332419394435664619487240626891923373232009499612657577941500983370261099056049959793626832620477320030312308691378379968817219658778408743809816159277654984164710365028779186845159662356683481016627766155792242923215514110042920931956357935139600087014380519660421301540268646472974699044755866916953662947922314289010126564986673855707587871783904644297647453079762832191511821749277552149463653589687989009045489580789895926740529771731179842861050995384491385256282571784555032625703949055238719840591406044471158304207582560887503604610024961486867077942249228478622118968636578089712354351575366283105590469331281311954651818257771998629087145478867454189681977962334126201364299162924329982034968732160685561390656396601706032981729289596666698516819171336655764771362309387440035251759115595246925792239080763696916945052137482946803187537757074965233875556440660319099392510124762282955304159606963580960190553677919426968097326517199727924636328219080301895690520128253207405605872701539746070784415896857493193456857287255819306304765790233747765520383740642838814078082507795036590198468973190617817761455421332770757946930288650819021415395901818434437665123233083300976536866897008076337832202271422062834776201896406537016327518103339248665597897913679526603729499093412568705476611951457054615452586881077523319767140266998770968723776555217000180618489896245676616589865780619504803351253326916449339105458365187137478808593797034841158141843131578076500149683652514110987225435141137738600755507981922659841640703472277223055965306877092867797617648189117031873322948932361646874939752947747388396639173415819674925431937950583050168003219299616711887740444211615645742972587362900808480234884966659465955067061838435499752079035079772658289637868617219933528933699299941346392264629963890033186538873702843548240994753864292474668978839458254410212285341390549167443366007268502292270169045359990894270283447084446580460139966458807764136937859260777372515658780064241329068055178507115352431333663871443130894371286429859135810619879370637882304809825156778515116724706167479532364376182896985115436483719147446311259153491203849416996381215963321484194083106218382040877701610733949152042066152158118473326294236729121680563249710413466152183370803432094594779606552362528248263308209392961810930962032268891491456541662467320881806037188462623708803986815333353791845103347041283713839842219669853475099587647775864974562593755207254649964950316622707761859047300903184873707240446041995336660791059712773525576839505880472688080840813133446178388823407536272718344191810715090207376430857561045350923644328846722495400378252534034706358695538831216210344767283668956877676034395711551095473071977100398294936292370218082509408607378498294050534177761732279172342066582757112577856099243227631510568645901134071225386835469941863967698041242921270657712999700729016200982451150764581778717467318499824841535763458204231246278817945878634017229200084231359614715077936445219790437242123588295190895026880297407254601132353763118929072284943438835904967969012712730984851818303109426925585559374811519048476132757043906370842218401225531661754719976257609587378533081841459770373335324997132994641167297714839875785727437436031073724452083620904128957949074181682465030270204657468143098187639082642177689126661815874701364352842364887412743556000851621736522777667829346262547957462207419863266993417312238399802413195394448322625246552853330316804026019702073071952094738854534898023756402409991226280413669504671199488399856259189791089476293436860198573662246092137932610694963327450988994768881474867205994912713253339068295600918473496765858805948823294675091724047232001817136950826654804065529188515424407662202561973994371860212814078262379362081834349779624323502740264204544950235332074821982502588156349654142409450000224193977580426254252493905067681816606391506756629779492404500947476185138185944764583875349475115368302392812182144966586090284066227204265401277191190440072296341440443510925211146277296606508719177349787981117303535615948839718396267387951619386459793259680691350393383113260710064331439374445256689162609450525756389527718976411001687457358829848927458902659077899953183706031602290880607462440633053571071680773820209039135777443128786058960340156580421684750394632223545419820134565281007435642955305940543110103539288964393996413006733429006567315845554199873288774721544337722575606047987360317863931734282131571997161746386403984709698421414082330994282114365855506425517068905344660589692665776898187863821467375118248835608385090897846969514137629228133279190056797568027881756495720402063807814779199928211750969262513662663510033567303336185749380205061147690272021772108357687965246615613441254835375704075036442920710056804726780938805001386481096228205068627334395679370973920839413135235331852138714172576448857103896337150691816974992454132216749404810509778918919156038563979461104905169530473764553258259266767874289817567591747566644231234502539119008889453042599511552097071947137743967659441655661843222625681330205136238317804343862736037070893128653808538062340478677850307663118020888450247272338578127198321851850232625520681897151106454741075960071338615544425693134661649757012589437182375352965472359671407136616462390796581629019612532637836790437170207499717355405749724090947422889221339149334577803881939642241532376595305303260062958576284155391160407491768966148060198647032729608248375633531943456940188984470391800931863822039086253761568956775211295690826545900197241820541378479622987230333848904157147242613133350959971156755685935011843148901906819549174256182876038725886388369043467625652193344500804164581810703217107739167731608125453190794509783605721481702976181231644145046914202550499337521993328448831823026186591227747003679149986347777814322074073649688842341164158613968368736686643809564975832368029835168151729740574034037820745399319607924200892643429287753958012564198661217645282974833488368629875597642864665434820727088858968658708085324833291569667982374291954081229388651015232590431363539286164767099411308103760769582779922242596339923549599989204541763960308080736973191102904047689182699362950015415345148031160550918712357474427229196375980470182623752960516498522188016557351147662755035709160416808536316613852130517504141849408402736810211971429544698846154738153517347845037303257184710731315007656106368617678977536968517762549540077956191261837261456941450018660965288342535980325506059586639210818347591718798143349805023631817479247351562048104533716205399798907890952770398976847505716723155656239164977763860832697670248091999534527738978539409900328877262838477916395429440162751221798064660924980919050377773250092050084170375600801050262628853487926071579538033013220366245518215389445524816426590930717444819655420919708769304639272221830578394166216638050830907139153408101104276029424204031336662479890523403482594904066163440927431484968084400886402976081990242711123998646181582055458533363566509940594840833415018042122477574585618107986189773599421935307894922333106391149534437479938061856538557784068316677823177910479724096138900187549710745318729131340707586512193496407629368355227205076112185521562697980794160161585157881867222175560170716419594334703523834066572549450911196082335925255920513365139427401839139767012262307953264396529819579102556700713579458593204984560273395571157885097753295134116469557167196087078873359975792071376418399837564506191677121303441698987809828826509388156360586718345322171397827777144714268436226940301758893031122648328566993480325383965857338976301283580807902030538446679338242977152219556890057665959356869604789572105610924794465166791963235775226681773770405684100092960489740796841802169230425240187338810954104461077976743035003385576066452806784616700045259001228661860253286543505024434732427700338812965154496658656258528402814920709708852116388013968986982877789967564465498311682736783620034556896511261954774105782601845115739475163327128907644528386142720215844486787764148256016177338910503199401583235530654232003382906623191217720282652429172004268430768950892788537691113271098419135631408088148038688652289329923574057744399524986113887799003023141761005905343301489609845164453978352501336989957004592292755260828824097856434591793574326153021214571940507262537083538270166442679359179639563978522242206902223993452782100978459780986078817726708447961809969891792408913796731646685331954476944545276752313625825837278859203689682328531096811794288669998194678646119742422458358923526279953740228709116626306505350837158546900752632219324160898052314574085694157049866091033997026499169574606570452866313961393509479017227308273894533061809751376935782056544131779565891943814356381235623769726185942805180213957627527912092113100721490178503857385930159146536936528129271147254035881426883025555974449354982974136836006601904028572278387215068442153799129465402428393897995735134017600889195427153787762257821804554880225961867949029614454853903394213756384996653441737840949409266904800469571241253401180787406545535200937440998572998708187736118469915019110377598554223516059447845608394676161387275513446731003096116290860045190464563517982168227735837823117677853675239288039964638774960811735037240548260921514552473179390437994060506207698066499911472629811865944266957173668045749994270191764423393370725447859008515005011613533668783310643460489617426952474982860281636956199642375956289573789449129765892093685366673473613747571665337107279927355917460655343494007277646178303156949984274867306177404227246859287459937468250629556425866665654557644513100679688275706158072392774486489284441423180713464245018298833681218114116204476033258040506820171626536643596422570390534610680562982438682821378200058378307736742391705186141279809433123436038431911400286342995267734226928952209619925185737766275625393538508635808776656350184681367666563163607413640947229351904657688759783551732481122322486071551880733561853325794454933543119263304810982720684006099201637996244069685404935460846294906538374418530160550111724192694005617291058967606475166713287013103520146726641777916494722434972805663743102362732794831429009242921041561489111285717162055606767273975964697743467774174063873191193451543028838845704554918128867638184696650639359256610228618970076881748540545825824864137783310678066443118752605655061880535512498937315254367492381278481080488778374208503415532703129032268397441339919344363381243998608960136680697434060313755182075772455746028446799141769228696958466154249151627404736735944052389902624603332605378172317332820949785348797617529755681756961642103358367360153915761921555250864076324069061651205642929462855765980285602543575549945992441652789270492707622204671677406738488059649643434946388838225556090998803666922556956219910939484631182716901000480753154346617791342074212407153524278713718263475151243538163239675476226585379021797089290064799144955758325870473587990227167246052509768278130418675312070228948851771933420443078492970931954738585012882437271589997086947181168027194034246795927695310671999575934943699412925785380145880745947284224927384565475322600553908956789384464776055384718485695354564493872837141893570940270517942286591254661434302052741730309381668048907934640840792908632440632231252082266772987160885292140656948103664839081353666568639017954193142401439200428833786787793711790152178612911142669633319709848078264589048005624948344283299069065980770527164794065550996298065215563759087858532913509208713114432392351697685788244877067132972048108359412020885970879844054419890554648277862915120239532692215596428668315037822556329836102457010875355279215941580620114772687293111126477878418808154029357101019715828439230290533929443342768323068908948017264972694150982922628875361015865111288375925677674762705884950694926115828283034823324983858437831074971932053445728341884224772941432379805401851943660851262084896988863835674693789791364855743214593162732463424217939902917965333443499659843658424638705402251518789241898094918210829443666300213269719862260167195785927575406145799691878592852198261254327997726584862548566603237763953141042617394134984762785398032881805317267910454016946063923133337953663076016283213830454830304327811329923317745573771301083315696744132600414959036436747548473294903242386770668958533464198957204016850660177005455277879183452507493832141420521242967573523552896743321465458827564602965993397304868853292848208947131544653785359715010945757872296201635168792421162330664574351594780439029546797699692002452261427920347788165509750654217843654817966269321177134675264739632899239396342166762513895307370952699395024192368934170319154844773262899295309357250059817925536924637714390180944046666163550257659693469197279250116095163716794889092331048719876905639724524021308489645546700982683842078334149138560386361884246478206923674263800885028466465705152605909048329532974560391997496160819410900727141770366213142494324038537980864630732683093482725721760907517994637877964484148418025133555788178771771936955980163119664983279238632771285278779848865308733390108828217907792251960144573523542552118936188678600521294648392444840747512237174613484604810113170390167896249644923336125159436912990842917964831343108589911554719103736898829394981804475586212819573976340667305797532457163717222110900979836088215791587378826691427617357147882249160239318110832741267848641973193018531681683064388153341074179632491800782222784087843276123506732336443794306293881286905207858205804334616554771862339752660031843354116140249413102254505719386213305878022997918089171307492041637237947720696317048815567802485011066919351543608583285107331118593687917336645298323162875564037565576184352683906010892787144019221252855254036435827843436589679673919747549166073420461478475940802661009329348171090971601452800758806220507871264316677967115187778027404296250318432897632528745153258892735901810456928791692603696358558925419855279999035290081670369842451797364857682493217944170052527877841799231738392128633032984257572122853560053453137719965178060343932313637505982458232524751060361371356629865314903304378034010235518126816504658513248790557251270115778805777706762564267529739338556181538808501906373468043501787113802040493873063717573590546313033890926821327971102908893071201921145829848045850631871580092997423814736692331575342630477977338907227420954999177738683307590675829902106093146986956811849004363906983771851848525523106586330574622587876486645106515185389199667242429223996164190869278213699422117404376265066315915621524392604113145512800361141396179502883806098380323266879983379216296609441650615466210562045301998564657701131449649446165717308397135123742115235259783679189702017480271613607278231805519187640845844454078223890918772066986198106737342992448364858190834305813963593676498983020817560224777845893681320878804040418674470524529773899241882290242253995992960874827506647332483667678611466682832057697787502796338085435254924621885217950295719339548706144639045418973267352690926088578695288019930823066131178488131341481655711816747679160828020805193840804180513275267396225806380652069899242598312313046042276702361335808460010909087320344490534023582288567780910833821419402908864746337019293736352205352382543895199723716426782326291863102060215836618249169106565070309614295500615510247233176621927007767433283778635314336878441334300831649800588690875502796549205884624806099127945450174107267472680918262781841352656206322149868185363053317340925193926280876206246999565714139867906117440854186842016910991267232017713191858927678150129628509887023182696997215071501744547286629541215602250669565011344053779871771568863529849026555767126872422517347781851590365795675747290349537781451009955443823020751863108149064503609100770631199165598504142409504063442230438747487548334459134261798846334598931469196207562619809455889212493678980681969054212229303011892882849331047282415536404459201960126850877004687781104333827551877269642303703466993218382779883448168330479375312977845334697120907754218984513769743497230195919183230629487480211273415099964022848071036104712142629771669275643422510780160065905884859666194667247064905047559961897336398486309773843934029652605648413718506970910193346302382118373181777130749944485260775561614301697597155223925299170242474106365417801717660355539223197682397955086680181637155994065120127108370516063892665688732215725385883255702786753441321027180776693340989129932660133000550435147037169180384193383109270182195463916380752015323164472018424922272609869249175624410514086725483038514817059386974574012236118278588659636758343706530514742675762697606261049894123631244766544698046085845144588783237663690773766111080615886958312528144216623401129734266916848996317227259718302561366163318900067824300141337949893814975422724272078646495180888249978607918364598069790081550600180248497773861129114612130455833321142282649572249145195810508791769548144086936965154863328079377990819255926521492138155355355784846592495082729607834827344511881565052509920398891496006633996148025428750007088023561227910461483105038214709464003634414964541662646148008207706395239706510278021277149703799696400004414238975840514133816290802773161362475497434157535250611587177575504686112557398180145336542089173917287102489184698847622214926594914933163669807827043859289898604417773235276805710928174838424965004788942294048969162785811525314737987578619061421382681551965381312118915139803034121235747322258196825056753262755971652156537764372864712451181752904503007439310761215223073537372268964096311053201005471338745346525865193063806755882570864133942012248361198815230958338628499809682204980467098435036186146145772305813445218860349171293520586562542811120106270631813112863145740193532629231733077450518691909649809579616073390108662738030929633246181722466873147302702053989242485132058050044011646657989436717007199830313965209813988677801021504573886492827230210160394585832987332659289020089996389983438897313577508948606359246307436623093408649310783300802501273999409332454542895509963701154252105382483889611913576073510009254067078038813873030771577600626863424348494084101589924937872250895215987392655471148712928767105871955749275709001936888232635571238171718009366667451666002671411548174395199503183669798886014722610689385052785177994147503324981290328847074641422352559002398989995794689869164104362105457793733844803628507168416378947427135808661057393009012509459689795478254180786819578142081932117923711654161224818901115087659921816721568207569917006074081734164302331960804412990026840999712288747518758619554236749183748583789742342343944600907139279562879612926496445444558736733113307621664871121760434540090199073644721618433804357081884731819450754188395258867478832459925872515050493287570967223704329702869419173502783871707645129848152446374707854745468360418880958629979704611926502288498303335027871166920902165045199478892323237215555197281522603109507900569569829390627353325686291361923718197921372448252569525783454529614130798164905372234666153912550994778124948939047175112710225916961112138651771889910189583467051695134206754513493122959747752993477629352815894662218812279763159475116448533989272630228597313977304176323893155299747578318806962495716177541598786980009414763091659804239738603047832446501005120805870548668061689732769086559197607835366201769082748046477883551782750612071845388261527337523642390499106145179669969995803691154351511380049467646375953014924293020004891723560708739701516913913192411782275601897165751095731811981626486093037543467724494897336468391334474140851056642955331492914765352175636891443023727430749689095106515958134467527324782737952260392919762363695712829672407869158061561721252333049613846524215960567869783489006905523218506497758491231482960787110731760248350660758026542996187238576927238865115969645483984674446753244209914355888848591455137757049004627641068533924435449832958245433602054591162644064265376004171910858220002615138660784898934437189099381463492946461492866183484629491433608015728540004387223382437029719896867527653499791400404649062245511436357284727430990606153222041595223946265148240003652085948702711568830376840073877851026570215329413938095804369320731848795032364774008408036136700278461794900690960622066836626898967237489403296520899703874742000480965930196531876159139818948565069843993190991169483173075836027622616961012893037115730428438561608374057279223808832986518928258926932553494079862556975467586280262969807603288806805409231643000359490566461742482046973089968663017477674230331977927001097570221283727992990127477198275211024351529118959535232356790992391500312352628165893920463978668305974030215472399711797496590530822575864103426685359493785475970389488022447355340651444659117926048749557570290857094872973265911911439087052777560264686899320686284877520893615635231488096315949660977117947692158821347775926583531941544249437155466293227442821120093715645784532045253982970687891063729433964744615950285622123997242515261293035112766027721974886601304821240282503148242315313974965175901234587148140328573290384547722576149155955792813682281095431177322629642855778644469054210813231432545067754422412773991708425617261862828930781901528865287755167369438333030519771442065053899229535752021812919589186457174035811135495548073173874363307622405351134310576642781258442802324717535330052004586471103726439087105192772473388854791666250962889529074516905547790271469964791985988341335220460872476043461015295039385460688206481085529104360964190180041574872085957095198008654885260646844058666554164335637740087507601442817442113944561270059679183527120995252693342603628423924584113758388014939397764394694753697401476425268359652468230693405045348866632613662452641107677345065484412566337458288857448290086251737047706668961246099389677006473488003127252162114300092737171840219082341575636127485033769920079453903783381799244578289937461893873299621548565178781250034717802081930487131980788445628851651781355796997232272916217047197628532093349007707505866569256882596035270901872388868350738526635045756713661780976644645938761041344987465187538819442307197027140663530153048996619542956612363231014422391162227859701115373193940549136172307497104624314273743393451614484411855586605628696961514099238950675646291967214775566871184064444623804726483128460746029969204869551427532593375334381292827810100066793465522237846937664746200385742479713847939707948580181648960127137558170398843884352534260552456499374021693168810449306845606919884441589768254347645221224363386655002181645190294705849400668402395871391964840754689572396109709771572669056831479113451533344791160480273080671452439561308443379870515037925323109699590408793791615124107123845237820017135617509430227192303054758683070188699655057288209637000452007400309365500793300181329980860263420040973638345417080615722608188058730240225524693967582075482586512204135988389900184571448707096396905379718455753501452152558153224899178400031098945806972972764901560115204376217894292524697742932093636355524198534261481263000851782815961229243853792333585205576905510683366938034801557621246274218814702255150004843513977789058723658671747087021434614630813226120221956009348600919200013380883654291601521849850827127764951580765058111272218980503893264107995469440780517105352288163120813798169937053927042188303943719456129373474307836335625781554765553558018037494178380963702523086602790590569978697547384730589650918109718460556799489597810898438125271883395182272533698334455365375134126506717991440582033183621750077825324612353804342282650296290971727327525656132495873460277214376806082951469308879329926953481242931874485126653198762548741635737755373961384682145866366240088408503913443160622736125306006330742071586733628091572041724215051097521975436392974526850878623555510662104107429135634078523434278087582159860218771983634698955339291291192518048520603050031124674069032582511019182380145764238796623072040996490668621160766389708721877691686100923408569253689835130789665652804590636914396676761229926413720802578481402273980950694450283586478585267510567917562427857157392555013375862671739312389477379294878048921519377354438059185059685584330844021897910503047126203383667734491913155686762546011487429554410073849541638475731212525287336490380006252973243822127997680766554269510364364747981503505302479564651644887194846412429492186717659167911446395509768319116927414168213308195631105082342371875686293380586514105482631695311287682826539994003572769630956264377509903806029172621901251813572150575808168490277718960782966656296091931255678978658075672136786985221344474745771827483309113935740354828569201769962147559082418611509615596691428371941313293705737057472876983325295734356962660787263834066788324037017786074436292014670251816867223921539957000935724472328337101301241307682271502270730481920545412013795077377507441475003477821928688587432328384853742167399618497463828460783594504845968090080317014086214024231838475371905493695005574342105183774414129601212048083482146327935992878375437746664918185889616137735051332557834249781511160106296905181355974114406926771559344086989257985845500208457069213901051861829944425852653221586935769738648266060208409517494988447550703452775555090157499239857955820886827561093324936023827083826863234364208275956154850901238087382836477489218728355927717196711334698443796607135873185573103282294936450071228256938949820203523503365349679655036407686824738615041273107794787621563934324447415502441305362146697433592534740825877894764284400121515880551146923987458577005955480164328240154445768150678117361414397920359967890832820224233283919727840796663942369923071809537530762020994697820470300982764043644317673087145246342241544216157606885574640371096892928766616534363672056308354460045721408031234803139629674074794035942078799756257688902817884502039100920551356053675704147426131335414704540532463400806562244309462002218814240610033250867953137659883843824367860360766958204313039175428192850864239915518897405766028177616958623413207486856901780307023472950872304467372825590107959855009369106563514200905843120448323688699821384177219798562539338941348205155978393214201302061145177312575818244137079141761363087989814444678584663928790036071018317350182516638681877900172287580963993312150217640358666877448650696548692321820345289592399243622583550711124056662665667603442562136328562355863557640253887170052930929908276327306234971910343121998150947524261853401492086426453746573919881239629567036425928784673064175823555664229461658618870898730310389715572370294420386269558181050874621482761618905477160762489851439563418111541600379132646690829909926159073837037656970430502087129813445351911648047441996363460202821377102320587155088980561522666470682980592049487690232311841758769892231190338594986143114906494989492166513956132344929234343188361557960953907364261183715008223835947515093718571307540625235922378962165466980735906749381487292811430066014113980317333148791896084195378733628652312157104724822184992773023139339743006109724654173953794242472354429293488474132707163702449555439390485857740523016628190457194283083681602530017472072047506567719701038638385945028497199544788661182598467596791771094475164598018775974745022284061893247909352085532144057531707011309908994733574723086142181595161344794146410911078716196712365636527679506408391178737632832679782452062233280002990125926466012889971804068094914662632025521608069961038041983252603589399611598245942224458041634526072132697627463602986901500734735430415423366348193992694838360659772779875663381801700864230087291149276434555761122354218574168310164892592084879452753813065383595626692441316778341640677625482411147260104382470042279296690131497530559152060335147641868766469729412660769858450359770613427928162879385787146323660006737091313661722345184629348908569743017204432083112009207635563557975199978795320400140756332963591260410358490533092858427254609234828879237877191566043350512280332997982456595008550889501831071974279337519970489119582127914561594717438572726056540783557594912216209121582130520726990201239947933305531750387024653426413331097351389571220298110095197580874002798246047029011662498883195505609371600525455832245159709106216161381428311876797603792653032088306566697824127847592267749063800286384594865800515397833327353477787378697984463574856722404698186712481211544000942269158565094537809981923715697152072719382202119503988115890065919908817586054032444814701694354661950138006884169407999291830127557764586941784159460093824776723653343098002390631976581211848631565585243244244871137741960267988507909115508401976131195129348848027137232878621843129441273136621266758016002863417800929173840986558297476719535901129088861623511588146092928577683745657352721261560363676742969745619631527134864083957769243460268936890846484990639070533053556107045601404670828245937202459785381015084709003350583212071466073714808345955820052193532277664557125680197698333850576927677391362203374374444830504221142862658292429295545617028784814636820523004942539038644144548845433894542236018675478385501146941313317394378893929542277815642985051708691778582735309187251013428542732308288870425587928187221497730464189769682590906493463191450141210899445826486858551092729950868325100223499155740201150159414556493790297275121627820868109694921816174452196547217896875509957950142258465742850594686799391743479940939140713876985608621147816439922082917919768318632866790354126667686487425504367734391351736104961209990585033611650252326366671932741033268122428561392226598479879419094722334654735748456995149494571969208737170398726819503016401382633945789942850389928900062734322545632271362316095012520028472667800198933377583969872852935710001162912406382694609609420282393129647381558404552479054587442990639384918816531494943894748005965385404230014600188322208448022431498120284155874474867373073652396530991641570856396832950307325769993828609208385485415595422784668094045752172490854947815587216076210269647945857253368919156648140729433626181447632591460589450618811442536779739847414572654133344354703114743884513398735622964130552984320299607827747022520114214484263483378530374348122634318133035888599313094407122560430059986745654363281366154344754959394270525136553705715821632231341494612469568950420413879000081043388807600234833941665344720869325930358766993993932831754122323339282769101138693622059885994553103785962502386301342355292539022180731338580614673205281782896152658562781812251233606552999366119834993919367997926779643991594131583466875495679142053597812091075966792339965181099171470749842751893369478938815697191973648030030744532681640363654596326878430261608803695558986888175232034505729390597208539369490846665966036280447582286688185949260744280341870805867356448260572050688821976499954968009846666212209681118277935216402766428502286958951174505133303969341727813311731090765855152191106959251987247672378511597704750138880109829073043426121680017237095853541200241188657897693744015358520796650646261323033248509532981050080295007607801025066865871744689340832117298019585441150622054286010140119105879120687840978483576924307513675618001155849325397395715442866666383851194880870711776908461185635832949507493080693440294134233425189808727404311185313814433335718662656965013472650286991129830754321294917882965278147301979633560189309045966219182771484046857321910657164209040884621904355640883658124286873012289575051829245801572115082171928021177545835033385163787732299226288131744951533380480167455824238510354000479627310351447960657385556448463627461028138643569944542818141704018366353429264941696141980550863127396611787928466079787133942799716498497896543084447603305048224725882168748030729236191559833609688700739465328517814985560352817983597213648702563290710758147730210481256178063683037890511530603338588390725907497619340002888108487023624314394551596902153493709806022829498154511655771414439401032507016331376936016840974609815919849067469318576192041174020666414683480089909784892254168970020059433521112011690264727535196253393666955266578014735783360117728486762505906116204770255619091924350260452232618796966024427585026014453938738577759224856678953919625556670770605477807228269768065319988748790480162925959166386660601017780220684893080278651182326922088798990255685127816075848301467305894716265308706022221576984360468213808125209677929303792530023429386641859308519335395381165030245008002063724919646028215930835220115991449197496727511099381327542072094322703264537314427359028071463731275640025569646560030877981929565498101277047297702317815658987320942765942648386645221831512481606570177186509417410094919674551040903267461291497644441709284986888678628521190872448856244760262791399395625395235459060653268290324054185020386322682455166780417938498299120251864392231746932001897668833138161393482133723631889788626330596268554200835117986129866666284952647106203324948324182406468441994342931711753335251116835504774367368711363778755716471762846078696210781081266982352795687915066867147355984349278043872104833815030524540126336381866683135181062787820902766155075117627378450516532323705423005149693934100596507844950201465088129305507310534335966986486217687836341035742638772654691695710898485487267108646156448823212318993802942728192122225252516523620377276824781894664580340597155208387578622160611933268906862377437793117740792103070334232108315530606511335546988957697019381072006509425361327442044289272124134663427774882101357726512219076077645743022945318379021907858802583568219250799641274019429265175519518024113190778267150806770318179293206494273796718809491413417083424828040228870776825831369852483589609765499063536291261120659599427366363091705319863567305028303386209501849434593517780853892564381874195049124503419911394357563510220822708236142816225800043037815629751168883141951649505926536716448812112780955347414781725678667511411240201296482692357089847201543837760397229429926268383859978659696913372074724660631081349489480523690131061713059525373276163224241834258600563976395253318284112548457021949594339752874686862204649758037354936034711141923253043516970331807249689531473744896575589839190562970553042589406012128271204645824534854592551054430983006400663438810477424946022754813017216680392332094207603406435937616434086950582792573549117481972328541183586899978842276880517021509120545728144568504395383444470133300178189962403127769461136416885746618488220983541218587650129712476363589688475145874866624101712893280682921792556150615320148174589082326691706681807172086946070785067111624287444622349136526894038234332086517873781037406898136828917883702177907099809434789899568163745303551243394074562168920113495692215341678138031772797527102869266534619070417881383565760225719618205910905409022548016359133659315402286347632608683205952587646696225040951231765653427354297544651941484382016417940840100676552021423421066276853091175245272234828367306146911063798945880894767310057569167210586243186709856881319179666416648973742587766545894776012971233809199575674111483963853535303978617598332461474341909020580471200927539032252028988209358027233716639800248415584869306746362749738434298347840973631009917458255089020518659067370877107300688083643208190002550898527664476033524791185283954190834478264036031404849149146002945280725019903545919931957751976882713186557335943602419811179763960501585456861143458349712629360779516674542470239121296799603710365200378355066190592447550630055709825566575532373631525374942909534575764446449262033754121009677737548065995207172158031324401679589592851236437093089615857892744000009249106090843333010780378906805474374972693255511271411788715538573599816333974026089497470806361066106098379058211340035058060725252412384106061017501695179425742723857439486237428480653716182740286113194143418487156071550473672943807237605666478543892960084959443303177810039640920198406651321322897585884467959570074284182901280980518685043880337345619030793263628369988790159790841392252025911746698003607226275146238839917972132480464109572247883893025377296917204939746128471144332073426208908482307413527538095826261930776290915840031242443894985418212034459845214349834157132145285687411562142778882884129912136568113901702213430954733613156220782733121923839493384623613280097193123022832495042487262159467735891476142960646201047675602820242004255074047458866392413032853959243019638411356165593312550817002169329270288078599330604519337826045999344095917806706014980431028758442361779716110442876072320967183207523170470139376130583468638090325370614967307030942380641788030218821623846871381049803997329363485491408879634938445078810580658937334386108927656237716808075389868018287739652903102062511598171922922254120173015472711170816741872039194721048820636596026763211434167779334629702107218332772404116921041129638036632757855809515416928696246564515784963498458342115632561620135930767086770955885793494799424062581261237626474886351816882105753535762505714163906049667759568843680303020401669630743516454229100651012783587071261395849905743360001866651076061735378044770556101711273847763960748045499124768088268775373629181709942953887392603750352605682430115839932392401396515098991281178958031983705209967059066971200559502439136561558047233164502441214984509102271230990090815918518990959706631815893300445331763946499376765050113848089991780855307294108308204426204207361256349682727957972745753661768904850657352362297693931449327872427023729935568928541505452777854772148077284551683802837411438266708542106509741940035644557073875514358825529778111400319264986089478757389294859438510498393552212146475909692157584269845343441725425018661568470259624855375155028585436575526088312252457596543734564187740260267782601236553749938587854795551076155942172774813524411037092686800099746471309878046804007160263087682634202529290486697432031888503288557406880416156402901898352833956528226483813282005752606642879126191670601328414744994419420326535796740927156675907707007439743647306561880649016072967048763963874955878131859777835083590848797256012323311235710427419486161496297046906421191969938587401006951586810662913631341752523257232983115845037642747436050401123205603317481509706217460436458527251799734305937394166670178942382122934033094264406592480735904650493955282387467066841751571796325023331056461465940056021278628261195757725824591653298681773024893079482151872345214960649447637666694408340066287533258192671705570626997855093113378387712659528676581798760122089895119461580306905924611608981780410880974787365665894306386933207747050323345358436770217714935366150813256177594174781636364635270991523278800837485275569105229700864234180605030678035164044704329341496221672900070908909865489777954258654378760123181711544301534910941159154343630632767883632190849279352296996282488633944920882145618843893655816589230364601825859635256113869862427131887374846703815051972250588174669821313487050744533242222688279646460980603853297052397069465904024407259761217992405253922823688066490688793639841316545869105704835674505162968368373436232347733974239091017878773402903630207506748091004464273368771992886183424935213770006598439678243130001503524434037916646098821928131496565622380559239871749661835486215512065114236945447485072353806144404644491225869919511944458015742299757814986012528956242280621482415440340431334414669919213697258340338453270911358317128851312051216220017163758892275384036639568934994350146989129066145930122511894381226914240053399520728094692959367072718633178137092763003293599066778615613901791568456379588153486774248307904095278581084215363209817521594394611910575182174581520324375524530892435367974323319011458342001544449024726446306616319741308885523326760336260244876987391576565311519260169230254514910641806082178759296017282879705297326464868990992653583913216792366482543139828197947528224858498829398409378946917331767466971992690790901890043606616028760085878300279497532796173548234209708787562504907199601035613117534904293852083303026483371785930256734305262766567606898188350300561243516554806874108132924399787158389134390197475384571414110063444773341117975978687180875339080815079025485483703476361378235733511683751389445314628528442195699451897741419012179053674332765690391404488822512963314191841024318989013315352940493226838899349580293493155268368460322355400711364558562715654115460430756414685635579514247889893697805636372057386726853899665976318086510425908811889863928869427694167756962923425128356735956899781629433293381012215603425087451815214634476055147925027012840123379343641712233447916919451094107658919424940019298001992738441940277359053559842217247027697676052018638615870900847498822209337416388667408201049159103372202430294108644741243997398152278654891528344440615202942402860104951845630433056232578414979248407503241320560407398584449588959732549147885971666490846954272309183150551223897393650203625999072336963237727858271096058354282204426052315565914680752630706570401379820476220340424702618507578593389130960256010787045601097057445655953790990444790666643100329346791078961055956504600853765575882574294578883354375357002006259317200502771574656087370375902841041468471764955023158124619547243910282014341503235906316544558401656764300215461934554387126905166182269719019924829759079117453976791834935080606737117951356688574481034767278771507637705198278209816584272451690112538776241841148388748627692338504908789875835534373662228651593250865884124256136801438533015764928857406727665624472106918958627025710125400917201801029075250327291657776694648234172277765610839005733704656286248971441034977508988723842835563274799601913941580920238109860091677775378521312682545535202425888664110283205788695284059289058591071766992098909022885041993399753078104660928972063346240289732494251569953940649223318039677521504467300166369717047878380103683211846802493973576670090669600201650539113665376046298359510354774260142363222456435063098643969889223774822368895121479572925348381340012485748681171799801267257975193611626741973265333022673359421943349095779685776434519145824978938105038337474772364068708966241231981224596789911274968496375394065043623440771151271845229716473079226086249736253527298573495263522145724148863289351148113918972530272384785650326912359892559417630373603999235117166003775226072509418332997146644847721713920525328109217366019263579333628167333333290550033269437887698785178558306346440618966095300613552647719520654398037751419615390287904981466919104684926652479639381260589167989444963831030721778060872878022398129419434958105137928555595549072374867105360493374359387680326094593883258803471879435396258988654041050436601196021377931641126014223747016587142172776256743647067455447399464083412167151117662987730626673949091443575647479031246888225078138425242520014452119161744678831921114407311557891780178679511545644726860838858902592330251734335999534236622683598025292765894273029217516566830931572195131810339315275131192886067386036513269096737027548299656815059454801912342018995947927434744625874239837176094724233106651778824191266818327585173094353347270341482850531320390952533505222133541602579488535291715214256818901379327257814525325418307456600096762769714459334866674633299039716200645277306950852217531807207123710472015981630260575205181605910743733446701247295691341684285469402582466261781291691280534708022088015643223712857988022257553580219669622025773888462309999457870008154123817136259867029288088712501864549657863137045881977146662225818080902593828242244120755344498568779207440154687859915641608460430109912537280622051265876289382917218943489752860187896894482307150172605174710702000181212766399210197281846268101295295953218349721917077826447108250902718579939914814991839564928803299017642942830532508538661976665476042202884485509431742862523011888756443963340443874100665409465532157707756010699606542612342393286179648372614845107951392419404594088326190114691033185633035425628105691175505838561442119180576406774139901364168600713841099301564157423587353456094625622918914135987633185209116201666516058946557516432141994899358404217860577048547577864547793654914711053598503067048020084428547985653299479678129837259711852374962594008593816548781564076993174823577231302710865480361071473011293702345857352293282373614653306147995697084467762646036640781290671721759911525846713249839706040895839407090442585462706041893896580701276376847902673902760702306831005760867823598500895856847869846840221467379789614388482831392300862939581072417574004890499269804618051275431402329784569984945824006402438101999423578462011535966851597728004882901442965508283711351488927602611718203992750481111281828404866992227303251278054335330496909041810038287025448588898845438389732340379465205383833128548356173049738274406992803490955407524210647592434870692000987069304611632073252922581365767601776686396232103338924597101353073499205910408770857363818324059321087147649565727455646184427118140076607605703842394277629500768953846285141395127295395604423675656245679352938302024180566449663028180808601806194685045285553712256882065399934542073690474071162496305906597075101421254201899452329953397704017892975989829008663649284346740501062506563706584039498774702863178371044480999085353838696570263849056620982028552465106735485773897730331584998718949732012974581345638543234106246467700119142968252400735953847164039104803270520830786843525051978446151879999955559764099044572417308628049736193737439522968357675552653701759032147410980404338863599299990422906355329903794692457143738916605316947803857872310965279957857248987261554888853171253969512814001087611416923283927204377243949588766983516066496451690770693818631347789940477976610835057836596858357491450751633714570883241477614738019740566607708864992339838210333565736792968148562221514565194812419736609886334347941415416696476862466270566593351652916785890818437580996049250948640199399030363385766373723986688317632551110761527333771940433947793066889517897851129302864067751704754642373798008218025702884308213852159934657380307655906450967540882700842776827266422830984149569771367404667972054403811716585303835798201557576076929377984643078430906121296558095151208606926057901773783947195306313913714646715942253008105184798421100540569316891700939314471281062094344261464914521424375635303952188255402743605068166506618253047613741549693434338027800886009379566250460019254094815382503902114362218932117492617242712794690493384892237744576109506225232915216528153979976245900296506563925472203148634225096296027739556656386593961732643184348317486086631615097929362536874179341393824105662624532105825206725365073575404339906943268904185821502941604256457825574835846975895364597346755783700309377395937940555616631489308927794460869013806773965497584175996167589745858060234818696598694264868084067437900664534145673162426127504128536072919584204395384789282180236331268771891851916570795074343439168723448563574700545854818884791664124373746014756532076816852569082792904577496967958067926631187319250053823274020870379427287315735431093319808302496301552721802289650730153571687215815224977688373735118365859368391589219125856898182194036201673000202166456210838234869507764955490747813786657543561993548647009950383343887167067803595673092802166473006848722353746782985786413777938608655829179427713985337136509410499748606150944309538562433614399032414579306026193815882836332551510151339257104044678376729714640019066299856056217839489026404832584373617327034524850881488445408463586811944190831387965195069706143421216906572877176015682827007556637255753752690416892864789340450613829402797917902156646076930949479077679521933551924337003398038381441409358760334481514259548050807962370962346818705308744736042049495387577803724633273749253628991442047565544183231631020961882613722958243853904770349029839122530559578279171428647929417050470501181205640816992876918758550509907385400313527596926668635842661578220213211756387228287696400863949638706080376331318480596245586571560765766590550799668123491369163109890416374149044253612123460949485976281315431487651016066376667846627532749166604383526749458410647789645810164959174464828774299287819683746171466921516989697786618268923508233947231791103091388710120022312720065131320710761185052196518356503555088625470289469907538538152200269265245721200793894589867426491241949573216875909644913741891485251945538647307021157590098967861522418190929626429668756158444216334901872132438704850822797481933371170140841321960709802924448416898268323212326889422226920441813032016089591836515554581802028091350411670332903224714151342020348154065241157018607071103746849807620902987617986991651618837206914225642295028133320512202810182785093907516428621788825918239002091109669547644797233675300691911109956307681052423666974578745823158511334047370437823107631244323057654121464447791677829709432182273294334380325942317981181226985882049882515824132090076754015263928832538267484053441902052125084462039123325507737604336563194289296317005830514124817637729871308801748826189466387082797572038089279717753369461037313264806637305266313820217754525935389248623091257659859650225683367884096554403960967370270176725502208185555659004972268309731567629324312738691239886979767103937140541652410762032671907144626494605584585203127374636716190382252739670821233383653827369785670085067351856180018469102046252056706220708203606534047268453289797248617628696952212997709207770458593667820062382385047515151897885960600532188745108013773769899177080163803590415348292985147487923600491398112068388426896603773854611865421803259022539041240362327635324524205663361688419315850058764140505000728862660616864127467525246743588774922873383295070599405128742932725286619614663829580379117316360718450414125905263857376147386545944182018650406570289018944071014878090408157321777131835127718940330889562356637548063521364428582565009124745513593366933918813200310544759302422123188894856913672965935424855466366472372100052455206820345362831209284910670898120502897825217770046851581717724164419591793533542604733365945229439343558023017538617221014751392040893301656452125729349020743131604941653796487233212681175829607733451672026502313630822787697017488970268621509946777503719131981526746519131758552453069009841442667793621787994173914280183853514106974215114210151925653849920359169971195926853808487621798471882495492628620804371978259950717478437480085576360325310543499459812945213513768824584070695230785150396806301803288403312711670906937203712905172144213041460641810663587680835414726496791730490541241903260437456707427192074663042619905955551626335830498722824614288519582325190562627125722010551762061223594660320823398294762043227220394044782570827220495147569371514095718641062881658717967176455061936210259943797639903789207360176303857067154023897236487984894627739883675286333605999641884778903705233506680366132539757153908182569567350749546457025946800664240655347292155668610549404451026122392400269169106828548914739648436334806580931950543326253153223202692621829661829526931748353401588087580702297599725189552854491573284049360206496596841149677414856190941521783270105132728352914841963492000452581857379852685685344686987302449947908098710084851986682145415707373249186700583553791080334107017876770158973008654184734532354859663971210356339392805188292967279890442789205240340229084557329896804215465007614425212648936074326490436809357784174407096500512829353003109991900973408355987249836866447038926678695785248816283979962774646710045048347642244025314740798891040803779443993320253748171538439192541493419534153001506331913746298552415457317172537362844193481004277182923787839552034910318958272586860870521295193900129675128403269197103344992042489053023546608901275740917468287421342517256833711433864076272011873544040951772587628476759407582189567767187946110052516533282198688362200953333016754819813163671514626301389349015107895807394227444761604762172882432411448549414072901378409578845772752139129096452819576820272994363319910020049510729823314597888391891245830558175559700107446932444539549678864503129675262878860469502443644154173734974546228928797454266027530529552848625230337377011968785473359468360855636122077716740865538714407517321772833798147841379481901016987957702541075129882415094678120999641246706664732080194608625901850098373634312887892285423920300800356741260499295763068201764894925734840576314881944212840296557898075408215718735839415431346236747665741289540583481241518774023936899060083898781350832101566294246854979950157079199344810984484386580334572628919869015741177761280254248529200035374081868448175662586850098012138798515930406732651213417924058246007310742241573933266585710813710473683433376251137397662501798578651423729218839544963762749889066848714567785390526386740639712751596984473651869641914066470218492382536186278706273686187410318754776482084432216688061655507133400686321463394043576879267717883558211177877507814297174537898591225076139347350448548869754325979620603964626195969706150514635766664490993637842270805024465852702792246758418644342236961081773146675114226468850571692228367506665704380867779399856237463877944440966445652168342150783510020621886425842862156687613314981001563240795798411565528767186879574357945708465188593897684581345872129661135229990065758745738326710855626245054004585366540977351159029923083537695551607006874452617221347016628418867702454016167011604430099371919287394581683079458785559021218362776523363441314369289926852877833408084033034585497824024415575690546251037233406882719252710601158025112302222861653414347822065723448668935849985301511038224479360133735929311142804427477792409595309095727025994529589927737025326157629895825008880977047617886448182360094082881425161731874140433441705812626825944463261091345763979100935140871439942502838063365076334799631611005636067041541751873843163403412899425792429263933424131550500531337319541425952048242132203975521721335827416864114391418867106931972935262013458597192557059756783556117358674300576825600424042594422003068536611456912289134839717051220294643858087827914363140958278504822327457856801941774439795091066101715079975274503567948597894347186862005999082490660749071986058178453088102111306449752205552434265129042043264489096729866039096878180224119687036577741268074063406745808358377813112524980215416500419255800175593097120831115129007812131256448164412502496919887087874746640868120023263427659107432972253131404876714507371593524399164974230113931086997021882147784652213851553744653682608494083272340169702558332398371681063429846567115164777870148658222636880282660606721615574878414769589235485598989608662496481250392369515344008064395701169710399558844230662385389012084446775165398232102582201625272514719306088145257854719920660091545003615265050397353487310365593264267157136689782260859744408555728011276914485442688002229808573752330092542641446653951768463334517415413685669906882749464155310928585379451257884122172141292196366049064847264977692394472985172906685834281126048414032820933034228960292091256240518746913745835989687668875061749666894630056386628423438751007864178963256573332059642074993905361752367510238216175945025966749213700402374149653286652157328963089602407934827556142500909839455852960849154706109463377373411732797356845045399629727339444850720927966007227620304290579009569826392330766354605447454335425345266525236258199896536674297239786218565202158169008336134778954552258202950068181745653774839464195010287437779517507908167514756263122597242477972294927576398501739731321971630194148938644819166990208360296381461651767883282549671307140311309481069786823757561980912217030875821605701797317805855972231533670143014999758289840713376588550333724828706206403730525129583456904455976421067133731366919235210727293562535129237826582262787425956856515841095151029283715774349243269515172280364920548912711381875802099542140767059846868860794756323789835184600795279763804861867742911308120508887517117663189649510500169008208745381974845451733230515557372990450325291326160956518709198990918104778077596640758359554685389866624184824453033853293260805681823089519927854893747674015871446428912705714795229408072834205026791938632630778370757309414286115933262466634785883816750620682120078036876539618162893168179199983193284226816327175458263259189489312470842676088732336890694026575053520184355588573508518268693799697477977153480916838442961215157681456383324624565832010955859880025893207947075255074638790200147979236629877102090399557044613114952941232065918470201104671591012986399362033228128134199913350829502477632241747777200953839577464568144096384518638911379994750758265408484120442598899625578075319608526512795384502863478755763618651938228041279071540224372135356551573960783387989591727663566013159867419467477377992425190826893562938339435332617706603360548747979670632122695307833537450405446082527880933891215499630271747067766178093812882330597793266698662586049451725208039009383870079228492167527456075857014687127885429152061778272144222033511863013518671269311603468727639536353358132995585107122291073000456252144053181138856424006668315497351065275427380223378408251826672702146532646608784265563762749020714770539036863394470954249809126846010038681265806605991880475935137058604757824651296015761768741479957394781689179528624071805222798809617006422774121413502473880495814047927345818314696565814856296442747006752419459485328662862365644143103666143105445729828225844752011332612395518970031815646126142611707893022032013537218995820707956146601831077920369061344662073307247377348711744251131677896091333311055312782589667179235060973146246100120111725986832923697333702735398778292091477345656680127544840187482246719791577806858864883428582304900932514481778945905498453191879378508735504480999008511299154673078476489799690632300639405395460455629835619374240346695608181339245375483358298568901110480380692720014547007492456863778951482660815909496201492497296604180963822303409951876077980170109328634858431287200246746961713215696019766965536161516649098090893767043716745725569374345506928557656799758451024742865432742653534624617951184579982086479359490271585824333435665440334075022050443599663674090638897498166989188640018300606797326873306305302816227808772848856586394694043143251961865783718935508816675918779757913079448418739150478411688205155970685067090230981017261741675178117160936068914120849580033944091263492329473627285561528934258774874982575032913206113532699413350882688383083651161831964680071741787815771215336329180427893748899008231110636423658933899874417795394702814026056545866261951645303121999913463616253875921476757268867321359049708166522626154994756247395024529422566317518364469246420842213868188198702197628749720718520407274632263965608849720885630477923720099340422228137235941570947655876901558816352737546027713122486851911671722326339337051382230730093185448714647390495792935853044826937469280149591151018543130022148061285372796211300469762475394172315227738503716616853266271165009650175323217764580811283445184195895408545348998167733852932906081753459166757735666261041267220798431357124782602577665241036612185959405013822167153572557442308397587830002169658646705667579795375838680520260460809932736464363241354399354603778552216992655333688060654424575545465714804629660198512455864094774964935534389605992357245516061546408117873515831612175640827152769307696192580199643843799813233459952443570930263657190047420770360446370042538921254452861114624290332946272756667083833374636020402175455267148674527434870228979012959197094383197547602869311710869548439085067980469770673256560226489458258688521408826911492306366917466739269450691414782150089984016069001388537147386758032801514845234486329627830796135823474032603814598579040630104228888733835611137251454303942346093146527386521618609888933350012140927213922752022317698742002292872088353335685729465772807228055531744405618840008070979720238979393602336552377401832786185420741703731797068900446161318931940569196635854184146070094718244520420635214346296887606951154785821075855004168042572415096888898665926072197328422963502918199707481768701316384677446249879368157659642566879679782500210088719564506755623111682980164520066022280798049269805079626025961982365831049717246253308449351902326942144253589805397576263645089299583504398957287759021744095884332135741984711733460141062190514080832883889444774755530101419673677179335095876268430799013729762332828680677689759083275263837857752924539920575874430725063126881771571669490552514699545497100412214303620720606015096029912132753798654414745180136029910797804719482604541226627470309778072214210042786313614770043352517568446678109214707935896594778865375085151547157658294899327583867615892766523603351761598635160850779932736159846339907720413230024695159372897026703219904794110999048784342179518558531772431550459199376411242601032706804173517443957973978792349169591540759523621021317258494690197389610897906180068928011498625714192537129243935577450730294198533637460951776318764498665481617924749433061759448310151080793764317012949628664640464124401146616167212503727733314173555819956898862482012959350202461634527738850155194030327759881245502781780776883136347280242577186488356745162999857626103554438225381705398404180418724663965714134951960550091727554536699254653917047014169020455042710357809876672570769466950969630552652996919349950816337476040339387510591367725369875864336918175366584980797818015498586695306197253483565393502260814250894574125417048186172979029479974869376435794681129629716850777832889421147849790886527010171010718935648910742426633581765476974780769878379184610514769443697439690524999841829314038510031473350132819741952241794242234240907165646222475375338435473369800106633528962785726877771516655338995220932772759227907587437872073821578765614251437925786935692350870602333154186371300904589266384427497874343589642647121125562357981589556228500475744375570103720520446646521442793442151645101894155629604025479215197429209139102836420258237747834239326423742894488103155677781768541175315980578958453151349165279940313351111841463411569640815840022683895979460805920820903316135193222416213001260369107552902274443416682057849018419495432910263118039544355967546566720022100882395353957766115838288930171635784456560203898409119592872912714219952259991231121079098392081535607356174476885492276968091846932122828367798208495321061640787546428822103886141103538506185828121379867487437932840575161991896997204211272032208896977891216388126315443770838332156340053483255060457229049505506089107878830155628964396669543556131967014192032049498856767639538787722112932693730487654827242942100928645935795719084734665610696370439632222769943212551043874599661339899762825560149990179364899272959134977547856684097869273698545681559746496553316814787576946803488978469080105374997509552463118859408560826313396811491515627596224155555036010686803851135486277802761205163405045417178830504357636895896353236361331301848858415371900313440094228368998202006736368936410990295611691753943645972152092189784010530364748243518105956832800188544321215587590131541201805219011397272606662569123693056485464303737396728935726392272660356448851829813378841377236892960873434766586272836062448281279410253670125524373991436024046670712062985162712702117313959086703023605141156246597306671659182584724260316586682650841861499328734254848011834889715920226797050938594686319410739604656304537910974565139792912303712374715035530798118015315047288977381917400980102343124389378495417719654049228762273743392288846957710370033610850270054335768267120687101023155795558721762077099395025148276806880888502429124930053104668664832681289990856856140916743620833108195886922494121820420452021793679664339575148807793466912951482080825130302629355347418502158774396133321258060005559078136240592169260231914864607421862254736830176185245760367253233269981132244731767333824564747332129212218698555794237928785260066527649628586655252250916027959558656159888757057154763799575267986306083217297172712239351201389461075877695488042510802630297297899947162094129343916911166906156501187571100827913593035750269843809092529141642985065538935854505572998358889129069766763197551359353432897213765625471361276493593473620930226200572876848937541376206084092079462402776774566467948508499106386828833405269969012047673964346233406442715338621966144507033888957552429225336318288261645494729544925673673214035424894608695983352095454336402686650932809962454716224362129661595971019500385387408431770980904962514028866273812859576623297507859736018973978389579035849055575870975103408710717706446508827206964302511170228906583724195712418218972488027505993606416896472293315661068058813031850913469235369814233687091067774550362965978700978132614447321938894392166686198464110292962102755094186011936268853458139345155298893141788131564181862420595135491022362990570462781349826820583844864583699572090703927845077178205015590674301984708306328390992091656616981369400767041351800470652393067516738602514373053266340673613373342670470704186273403155292647733086001173365542845451456820105687518405696101685304195016470758252409471886770004946008712056586395877760093210392836470843940553563476786554346207839561890261824723503990350254360049393908825402746525607926380711772079699453080631792549788813582200327609324617559573056682304816384975148212473426372194011634055163457550055550268950918208321856759897350437857779490023732817181786885481333134729027222507801615642962740777554680265153710776036442250241206403987402806048767744469543524257439740899159789661820249126327300641667777302447509330823246744590895287748583249988713786480402867736801998578425041595649744068079142509105266120742790297067466961208987268211426428736530368106185959406773781259082122291625613302342390930262084622897621320431901941476661894208995246415591673099012768972101390211123732446451295045391478921178531070298632558729107158224449637055870362308136062826258827496983285190867933803603800367024725358494614416016946828319102895860021217907319260863575568600404517567798284987890774410167411837787742447726131845102023885285739721394192277966993315827555316944782071837339342216446220269289887639487299717342597351336757878533068943161257574742652392517765426539481202566309945299453563457243970499316512744458400043319104348267622027895233564963370529473535279942288449162164524971535099884813108659418531942535044692162092468141574420687371800577493488691233084343935062000447917301914109574089283707693381859216505100169826081753261299757000880681022729913504875341045617991924709746077831760396857456715417465047812499967567540858609064552866977354744357122132902282063076268813822424961656873922968811262803474262745917341280718429172558548062197066652293458247976543151869362280338671257919334519620026706499421286570104745881473960607527612836216468474582132443668205425143555999640294994057206618272527689510540346895900968851483401660923310091948231485857592527316368303176853539041579712975387246019647699813767103471849476938962372786036425151374028684849199519024336895247257080490722331150898787198576225131815304580774379658149014129205643910487413047981657995410942352961455418726693425754265663999152918169106236803382290238555878823779664119276905837330888687424103041691265879952695760757522573524665018922738270116686346465048159948360165304534856590634376531083763680759184240196606934757087281023555591632977276827986803866140268311592530287593001816441469588486371926257515343178847565618457032447020274753537579711018826392287905851512234375591153033657940234032745659417263549972092093796244385538476149937394282421127314083363620126979146740973921439618543896166583403010545366084879918469891808731092021788482339503092945237627900373377594014961101042563426253681945929111485720516844059060643230553802641578017299237944954792730975987859959104020950735814530647211021176416754929316059002632302828316155026988360370616879115424670631006284188458723979810706576753681464676103973788849202154699959384088856409454044550728901254328743788356158336545434381842165940400432796539045429230284786323973087803779600257126191711360573922367268829251990446642392276920887618571538290076117822586712283892988152853028232637526733004116230536402133998479875373410254477372467315677791254513266824872594000253349507759043695253396944890928759049427790392954453268228554667833850277504338446995186972969484037011031886724132828591282055376118317049257607376571086302562972019949637440481302626331476222983736279150091796996813383287433386717099793211240855386837066729045738627375472480032528709223171183603486344781392380055579519411113958525476795671412772585109681550925439888674230621823342704535539785800525986837642859509386079999711640154375041939966296271801933135580699439080076557588563444655390749155926111811439484966703011674182522945399186302671813160067526249395764773531939959493590170065227425151546329288226011826280642981902130343414425819147970404869518112006415156635567377565301272922926857448146500080653936350261838427727733827004367280996132396452842021790768335581857765406394086463247764046371706099490850200423687442379114157136047890635155575983011090893308237296598164507969115868098368800120552523502561165970715442250675112612213329990008941118449691142563791996860539852270601606172797715765578182434828363128385058826012678851129239512111929001196546968902529111104717919452497964726756950879042869407030325668194867295811417605297584051136829781919141876115648954312841892511860076646758016945748053705257063231791746787375417183899299870547356069466647200099275018915113967541772365707423044969578551259110428228266254512505719175814244910432583074048186138031734170367497152748201895624372594890442265926539918417268199106255789173508355322775175406766681513213627689750309428430715807391758009559521921565024476316937010690259674250580241868239903137357811163086923871706704015800067724245647774491383300060095483688628853956163052434059106117801328106361884717242153014060947909895733734723278768785244207652916799805674586748877489104001856408604050087902843722480698831774724066105715899027952216022435022938958714466583944741229597848306178566286244529234439133772886174858354848302263447529641584869821499575456467611974104861394979628740141976170740315166525076447208741463771043109637368824395668307032948949976554126458819870513399814963824523319769385860732346813665870614280484590530918881354808818031526530185918752210200045500238967914693226743254680822425501854600362661823059712101500321018522128650695557219541848092633969144111993817541991623314250543094570720742157812904041957484021808611378443677481270657180571714795837263614375564642518697455057844377677387379056161230106033073573875002610740517083015089202005902612352726355711273144762723966676429547659672396244101683572588056867088919260095730784667527795830900599281136726267872307134124195907161068528052819594286783125617819029461312779644216829354052677091086013616168357640342643764885738153009804913353897010483938176470757763430570398858513974021668813005832535449365956775861733726454897429010602262625437674777659069950885161161714447437764728020254929518368361969893780517905587025594029955767980248949671219025028166257703333544616645402312003686654811195193166616055436948877572461116343115545876485686378278600440001426089476705920582820063520797226316565725748848695670489787566302413701468962389031379825449978172595022851301875195859580949566332091986537336057618933728646007179615432433115957304896473914644836841193534727892754565238451370184442262100795908080171127017369171989421044862179266551337207973273988448844964378302422059956761626363909232398408089752432068273433975636861826807273228725335722907443678771996081557230518600932404158384392793776997222118255029451006454972346549624442851756609181197971187073667602950543704247243019533740083305979089042179866871582583203290376531744186349628668736635658627700486926713160731770312061960710100584370090320880389505828807174906291383116046046930289631806576837966125151054970826402514569212355692811918702736218873001633801932728703055541153424312573276313304643529185626452285590751351434679228132302370244039518027211334453157114964600076998681157530659486526594721604423923047874483693564023312271886532445180937496875150662534667457655778661516376948349727608194366420653572455656549172657408482974428106543771801854988169192817677606075597999354727473680867154746431427745237087077759737246868872051042108446385551208799359163014859225933063070617527527782349739144569080339018950015386421259095207108094079717308329194342470535578087047393365580139035516921313070893426262240004682427068126138556984883381105844799694911885187798460635090359014644348786887012115132213084673427530433296345162943929154546271600510467446719578185791438130896599212055552413615992196905788520068951837913339883913496391426837151076957944244446520979361015872925869555412372826404644196767897700443256145039598209469975044361902873287339370689366558579547731924128714592172997189805161437343720174130107488238747073099694590539466639843423447251345956789743054075930561842531037403758537777982353118995515695451875287059886357693988589456275727148515022558764975270428079656783482189111956475659012824022708932084395172557395019398888015168251541242331447534740883229923611148235659581587257647079707341124397806720290254731452770349057535532266659103376875586717986917666641416931628886503683571974457331927218475297269247695176308543093932273883907483674440922814132567748722429071288289573615796228384814765056344796250965719357577165945350811716489617597846498792783973174401705809107605096510231411456626399371300157423494150490063046578290720394557314353869570098766788246702090348046319308428396361261673117685509955211944336919051532814809401797159063105794029757870175440587050850654865208828839101181142160751364281338471755071202338243726689115374561046847777433678298707404280473407178464465870347035828121624411182988335362037384553098694238616331403135194305488233057693994950740106230547893397001679129214117953682979867327215612204793489073787518827148616479163339228436690197958043693052127408052511661758988964401469865699351575254020502628778054034839297244110049160654472818884680832270683338955695824207163712029710604627057335126259524185317293625837415087367443706373304230658743229640734230255727200125455566043444854898289253415351404648359422774293091028932013725038217836514326959196673677607968585736531130989020406727466399525302606888203936532322125429949048146964375961822303055632039556676358038500918566945702503401886177934728061873552558944688943369138924935498085488285490932889463386002261543502547604099806632817345895689206635778803098636403384389142091919186818936826186637476449232536145029242603295712029871463295103371180238573298848351714928999066624434878764304711543680909783736479493556349079438682380030202281424226332970154340155744117573791375473821114627829217890442953067901393898192489337337472887961236196298845485875817560107281033798655482277681630144544343479000782059352173320095088635674599863900430252770314289971276865954572718586124844447919670268319165690260545989287452114666222424892253570018028125322071258825612025789425521905267469347806217977451941494649505217153744307790144683190782588193275359066474097894068543722259071136267221884547132033797100102506942239534621562593851084249279132933130652680242537693344466225728004200988767513075114407535192895800595840721996474787003166642999739631705460157933951906144029217367234050729691857512712809798960949244931977249757845627833049011354549002707186833855945070393979996192742446420286876972869522887355866937661300153986165303187455543319031924662547678641329217609252927290672221682178369884550072458925182689614323744475463823239565806493201615519017472702226551896816788642347761372149216656880974554717042442158827643117291431000253328601016737229268976076451052633755489413068031279795929790130368958339061881472475197429453691054820868855175200036541315174846967729402545360280867811969715238993239271371966339584818880176664649079633151973222066878165152644762692342764724580153330491553739367575142132853971725033582190151487169052659916573370779888381964656181662248846170654883573958784280484003061961595883716377436591471470401521573026081388692168373363993265780154206348935941580330142921991790210896498113541232360614307848819098958806167844849488634969539905005715806591667063093110912009180620099796162089998402670260083050109950194095968475399260664409382398077038941042533651502144278088029598989293569791012668410320905381696872595489822090108402403597653717220493831820745639708684437056067656596830097758625543004464939950176932447310575782736009038698052570345544952450778494751198427359384129122609094714036705481894199781108696153267269012844159684493545745232676054157670851484442256400089031881595748450647998176778485180532822532763854562385998165403187213208103814942907565498235989001732864287311561648475202794147713905717058100364095411606537033075139701176431950661577481475237828854684134175855456692884273890548731788865282049058284058597331974519176538885773832213333096271430136012855981621381848659093477670274306814608310836901346969194661891623748186606003576786530690530091792322156648632572325100255004192535566569344665836870594611403067576694137182012913505503544750141670822234277594295066743596970165962581056796372462640843104180373801769425885889717917834562033114020507325727128493176330016122862370311728930527882494457535337719272792177711489307439121172253157478668559654649952402511788386806279067807465647888358976600144731289009946926257586383793725822110953428549828472210182967670343639324457965217519263722048368420849496936757313235404157307645472921369813090773430104119249578117810748833834613313993819095694308999903178793092100046908049017095038601073229667014309603083312150883545410743879699050366661891479901582283020824534570626096735432122988778924104134082528598631168367250671879129005455734701743704219970190967284265145193797009188263009179906773762496312836658577331132502718751522553356486323281294193963890896916732129183846668368820524260159654148639113596086914297083732494668423894043411324364264722080322366494818586309725728967384735483981751400684483909683391145564394624965990994180354113640621276348664302185978552330089251114916258019318695437792486528539722091789553777103743824341614441433364294942575296657021011576640185414449561768291605379211965916355589977088667616283313357501091312837123711854119394168491119609664817084157074916718065709066124139235709217367931490261719542835263355203323113820208332578650741855695191123695485130251182902953586536905228923653126390762759253887176558721111769233190667590475844872344122924524930722226483600775870041234083454603602991365047979525200300691873644797181198560338297157339205756274120481019435364741010958533428949837931309205507485553011666820061708322737936780288315799972071860423828660429138749394876148309063574877300862861525694443669578736846170297624263482956490164858224598535856787417962049113363571046472708403086337522827795537918555727879795633908893945813152829043629704067798244080048017130728493948273191514746582829622984408744587958539721549242205831692668502624979125025168996414757113151370275991408382103946458636293685316768276417988402710793808681846479447833033545877468272138445766674270364043400875642482299983182480803337161355958634833731857244313947473417386540815442512306181658844861600764904927567806769031920563415830301249221324234280223004609909346166036208933939687321454991042420718958323447880970442325730565089911472735061282304930011403939484111619856676304539782611134520228897177892780562480241738975171876482460755266669132509155408346171700374918145516164002960902061853175663756023603047275691533556269430901119377598630176771762594165310614578034680771075685808960732384131625236769522491791450020199466650581816119120341795889155650002537503831655874479264534885636495307445699470698645339196685608624125376576831020185428172305883894061133039036224492823423805976152168352846294173132946088802121961549334453486549281081185083025279022215699145225421579369877613380512525621192551301813345767029594589792987090443050212641147403626970998576313302357825218488559492860030756300081475126932214701711253923684499924974085130710678955394103197976563354495994255044942538089815645242117135999534972468748092678344449890663919199997770948125683911826285863711707937238348899045599116061120844205920482818355089025183677924385219094668997715383637740812719404181860530138852991501655331692336582059877052089157873572886742013157183626154077468703642030055303954432583557648290028265213581221567111206362949431686251353416367406190402976945851787570113679950820908474427977210448180604948390249152119790464349603990176532360687652841449455675276496054870832947273799198945508747957827990972959564956612677628848351190545855219354198032279578370833472483687335547559644697530843204819396935539303181016057172911953497424830721411786660372082592898152201929606345701332325522285682093069160526344579913521598122989714785392890782213738379262568697073835198351430517892967883839803875314598789973088583764213453669203882859368368265982168004622573235479552894867150287145212834582662012572590784297822435772998424554457263185097438205487618524840140192327864012226838422222104561906761041012718445894660024150984170729803644783935975700723985421629243758165524139166177183717178204657410027479788310481531519180092070029589525286938939445226978414786001359230248859976838494992485505654192517161158472408243379886034798286881499856902469219179766300790784917195196004572476498360375201321310293777748751187326692355832125854498198683110954311919186880310596332394064360662510757865026094442577218980395497398664546258611272128138377940931649012353287316598949731881697842602623774285701074454238071717651539812939178178733073709308685522357257914033218515258441010459766375609043231902662488147061537037815982353542870171354672966610127805876319293841061486408536575159902715903952279648713476245362951792594860067172353190668883545989805388216849797287837283198352762958082163994388576786248684130501907099219367486383657670229660979480564382072510064026236085792994153389723188723810653706667752693011672199855525577678619112248363492576193914463960199971057307502210871960957197600820430506191704549200178499904776829193567934619048501176280279211093047265401017259891259100607277262439275741384268800909965890294433290619208610854709511008279232623141788877734133551704586649240311108370917940421765022154116002355338450313075182320284016342562718756362153026324898355033201846880641591941757479695877752232602381877447793660328629736236839898571691002826379216695231037166398923085271787685635739443708576399517056562131035994938276798998621718989825044638250479116544719929787715546687603498308454531233680294034549473298803425089044496022809579997403503505326610537665002698086942464363904854031513906060779045821532913303170303806272212598009939551890084471115013115354564291696409337453663745829590074346775047543701232307452141633107074367015894970974845073795787225130568926412397075269078401334768863022902235234519448814562410877954207248722187695259889650207521195958678956768609346503930857576350921820051692326248097496741303028255802196407009641067933319122341549810218366701093383484919845243481847388422615802499139040088148075198929916241089586093659885376090279621838837437774670666886887227191639010773287354391535765378333800820552519666070890775700722399585630534653815793369564547043066021475964725982703734705395657680057757201583416598394938936301843784967731662513012707149845599325741329025927574800293098786220065516321112082407617259623279032763542793318892752112798908336986046591027653136724232724802667832861638212293195807197601741420666442459148074527238647503060305930620652074758116464918950385056926535710582504514435875129350560778404399249133915656326762124117616891639680939770504576804148717641843423924930622680242065513388955937605468273097903884767688372354209597457816777270343000205080422273767651254141918899707135897021783629210366860638763744382136428613704022626325249596991527941120807957795279422245138877771575477028676795893189114312504888562607108037176627130450849237402710008921482704828335051593672405103595482989346036443491548543099936473994530526021594116152125418057593853832573499367606117278487253394153160125357590087825255262475591170159936170128486918134771223472669240652739638556828514798928651732381217853212901982481240318976785881858130471026247633217276257120828522034078489929590368001601604197348819484050395191402755864336140147678361806301059980113985151966762680245918086899187703533703920600276463964134299899193374717203843458901874370391435549372338930703639908971580560028675081187073165082398505442066203571199571477470246797681105328082261135809024367535103226750501798038723211235158402544880289565199457428135390728243483216124605235228270383701789610813697364035626765534714609126990872523615713963205937034581189483062066780402492089444887170160648975209538921484120599993060172293827681480031405450735601628676882203321617001865478042427234278861988532218051298503769745831541085758553635417001701805556377136727129666908007485980104490490556025453234260467895293091721738351651195524272410790579656431174354040213049625945798798348802622477804794232742570243692695243766883215591684497611816925403451651138347410675109770806762770099290838556587330265204964762421794077958643347203037821278549668537761452237230947750321523952789598756247430233511298294352229065116442522278953477600685560292165389546819863519734209611906985408204543407225900342032413616434387614019026136479621603833504073391699363958246660550153682833012605071174541190862762986660166929492710418021295733424980296400195484315992249226925826927842318527983552590962521107638096785971536980611571030562248570165169749582960680663719121488281684946439729879991501728114115878196682306647821520207735060337083693245416172370703160851714258832709090398725525515676560844943319263934896079775376187825046257461629732658289500645534502382811998983969137313110425461189132854307459455615768435714580372230695207349951325730258605874892638478815348146240356116355038942952707900617721352440371599753245002817315505379611234070971761075952482709270250803399780338569864687761280564173032383900302077703779831028797953385901455721164420381440251394008400766171701081884363601913335513567614806663515037884245793404763955332818730951111331145696430916587576747081825418926338349020723046110820360432219527515708914115970763923404830494626716970308548608702292495264166991014824223438197384162775081081377356650073757117815593614479761491020363488937149750986119845816185762737172872010789165317876083068293531336424548375772133751501776532566689361215508728651649775978669463964458568708917338885233476151272031474642242855143674783099106829925578571332480453161925087372872291282838727804248815407431437568092957677596132113262559243829168511682312887724507793134946889748715540554663734186212776058567063660085383348259150897948611412498624229454638775951327126587357872458986192291882731238293073266507712577954278468370219929294067662330462415733826275989280454815008108006400832348903646958684414504933102669939544948458203639778688756378510714144656695915469301461423047330113599882926733301764509120883961375124187166019236255197898212237564230673458640105122213594849533754147701930302684770595947122808116938462761413245620380010825731281796468156977596957548765511377435179632557523093259256930392033697569919061846655424705577604943473839107776643490052877860028928383462615964417087495935020751423957300892622697472462273033756533245744001714983423824046387167633398635626371816208191888237909016178150886587225629030814777453325437413908371274216490086657404091973764434759709154272570358021341830847327076832461543647348382973725789849030100335687171249147135678965239909624072045312120393402244044322219333830745822372904496555129747658302536745567770576273689269151884844896038834759000798230866016942859420387870560877671288458816012399545062204096460611260579581736709872003334036741667783280586617357497315908946452092700815591103953270747313410528610383168939878695418993122073213191256844077558815030047576274133126850405923448565407573436514340222330456697120209470877870843451362652648953885499320720482876379091559979223137808441917402027948738957724131055757291895961768669024757137474936081846140433403542367472012144725893840068930566125489441378927308989821881629138944506953312175039104886647037498218920697304902821934412559887125263572098513903498044776355839542134539748933536102289832893855498035775399550080341830449531009148241347021860029938214428059220529994040210450653258369421674406527152983133039497343605584922168677942701118494191753430857639474970275439546553123519080913936222579413781293102221897626288618681653280163050901564253142739337042089284129742200054170767876768332231154776242786681912140605062978950061982941241186095821294728497870161677341017537662161239975883277937455230330589065093342932529840144085384685001665507466720421803000081781984855146657461050581101516048805826773493136663378980192389272388038166444231376855311365675868908607853446965881350372219969043783534505625142209580811795754692423995035277134993937465692416195356045294101786323812918021124550301785354183951718808098460381247992276898680426026840197435835959593848153444115251470505191407637508243838268385855279148434696642311925975970916286633492027953607827768660116838706773416318261469663045664789677326447851610538328260332266789912826347893686162773979440158342142959048833851785315136112369145208194272366714551132484383507660835484101995157144125960522117342553553183437324476572342188853244022114676057631030109227780141902658924657833962718852198410096685291365548773919080316790464675420672779511276943050408782178616978480043871440047117637326827476954980601453793262483705756335332176620812545281927892295661867036679585063693824686309759270297724185285282406850929157728196443243897063849189264753647530992256977434898952952507607289897083895722956779599521621401737157777472554540623317653688151741791657689415337145546343395433290795487996310042695678887135432666642239768173663364005647634850989410682294128362936447693236476226129287388221122759921927852291779195502231548976154613141785325601974821893222656067628250508027210473269701770288983967600806335306318493391678515209849467020561877498236354127626612942627373834913164140441599514068882869525051034052271921329317782302229172794616537247657160408402879688376571853274331819482402552124436366989441529025503066106848297031350011765159925008426983737682235746248649317998448688911959006851080869412565136347993698323996810824112602339956319855054194046918017407661415271216301015415630200346486066103112580825968418566053983787630261887624020377486967459867170371604230796795943088424372831939296097493768530522582353827167703988912534491869498480589686513611309676734191031789120660021844688975385507845687572695220583253048944263291236632202371457519727363788759803928691224268420111774798790078733839166381137214297147240381768920057169323331868676642371863842741547411122542603093781163411004631830762576719708769964588180255403619655399336850028357962787216456119046815236305923980864225785254719832957528896623053462546730324813028388590112802828364876516537650973772195412592163039951959025684059790826538252079997299448032871570061353325499247121510235124531208279612883939848422137649440874985660125598215278833394712106459863289700094890076161615922155804577964828419001937806221689711575953989632907875185378192682971467333337261812102285750947028162392690931540827741888461500472918660994701928387650496161136313335520059351190003133477680353635682818759772694739012058122677259195363146830214356558598599177295290022408560720056190408204525981093794717158949624325386549516436772491677035919207813816688264520753720350272316019831738714620900465068850291892154736463095604439117654751516400437304971764557626621498114025111816858399383283759660870031175709861319417528900631836300911968255273849228975426297946412255745358372237836229106423318216390860956389777282787004315626021898914116887341793101487961771219306230230299735448538906061983669254145709150245232883576764509627143082931800721439028754269823710113134938589809529583568845156847948637488062116431352091811662179532785132086220079393299207850025650107748962597526769070528022290246970306436194509804467829065911728171329344327027439415272373900663030782010079541091809693742534960191924619331778065354826075963182729347282098654735588567308522867035350059373548117309335702339556128429305959589295086312474563042992111217197555813291504483033911635490665728474447586894440902639774539702358749675753326560859193905317294407375168068312141120101546965689132862423668797475108929844814462120241793677363178387118233489882432971860038810379741975869990236757918356623368915944256278595227443906775650917711669086753621294370227741907862121372318130162646354383500373266008194810049789934032687500715242704182735574711780428642176076748495274174794901854973709734855215281197819617071344911143954106577454666999308891023934141009742453355242130867963731467747026444773657533234363938059702173976657082205086633289331375316086664270211191332745291996079793993555312055429068253980803296394374182722145186272186818526159225036351549650226786585489919071358470471170027280359578191003799130715898328890557903005953467718898134902120006522478073046807563736864062136505202222029918206805052289931107813351691761387191725047784228940593242140407925881875781526112539589024422570566423363621517626946984287051832941820435993361396089906842026278553074578466113352429124662583280302122052272671437892671171561239686330097863854181985182638053673149884744039883635549306617061455621316155339888493189074106942101476637100243695825830106748245857573260272046292487084789929555723388241488715910031865730934897744000444771659915009337681719624642462672334117785607394044722980971044027406310457068386283247786449372759799039100292029404431558651956389684545685490732021763654963877614247225425934089834012195487087661621907679029836850533348478750138834581978932818986690273568272165016572097741486387241080332027599745984261408258400594895388149205233658478268446549968950963670987805780042123676770071045723225938615325291111221759235972029032505198226839599866283266658572492688884442823025508746399320207466586875767281923318504653026562922814248492713922905129225165079590192485334415907083409875208771633013584439489079471024446105287674300805208172641688615017811929805361557772243555110827931513306137818033785890632739947525753511445305508824309592244969007801254569714663689124406619783900464376437662646839717514002644943992707045100633770554692261343430428630703802242874865932674014651140524935376046360844233129655631053192254371649312303076627401319748641430735542656068998502069679951206252298995293285624972208894412894963528541103550121364675428384426971948326259571563411741426010892480581590547735182517662238141750838915662659803862415047325713512994622040070328294795360424953888816490228712791637618992630296365144282400029192213665151613868367940692249349370786606299146643171115678552166029503906644761610508317642968218863478342928244746515856928437017291737317239861956231430161249735456258346683825169064596629449504979392198949086520801473589002175677802169396673278718875539285913248842700316207865379386348588094699526128632392258827458969145259619401982590831996224131406779682713203337949354592468979150114746462637008770583102042129923051185757022746135212063213040037148273880124755849024676896012437604792994477436737727030668720094961170571076388546583030497097726339732965817425067871980222343268408944150695016006415995781044046216721340342596614241174894180343259984816147247559428962681547407011431557699701223019532770797819664957719555993755970198498345827622443182915715725667877570109943922843041390328929971509248923050956375986157044351643813526941050904049308619741121841256180473691853021023728285427428038681749702569129892075445490205907041260425005308680671269700546570589454419410786836892501967687385411154696635911208482894636113230691894083240670619666695757784514916046957037326684997490526840920084310523999568550003643890364873167056703770475022166948434101215076748514311869370885143065653236428390491518649968275881903812341789432991623924428734510915271256832676602689112344813837678812733850593630020656474274868081326972672920814653241158735072329169913710992112595847495079525596960282973931842151854969237529755458552199656730265918239187623676575324395234180682771818870604735821106730924769063086651705827459045005291630682523752587067629985351153672389661446550319902612762844649277374699243205633022234482648921004647402658313534017818006553312393396128946981964021360854295128768886083273575930258257382414704350559017007325546155614057722187191682520309224451960683563109300770018517778275156274818782859878311423183912101629796654153912730183674300434677821308470905039484938335744638245755381353952093857963569163229179799464732604014811418796170822105109645013704777099081071959562990596939437118561408255938067986890749146035127490964629281898142712025596967282016310196325214059616074425518455238188386536460471295619963629531356368595274534363799156109829483052603051323315890965769385833693081892871181594948782934616532031645599046820877752928491437796216841656096037911586123836044456815437024706856575005011539089063112051916305968446215227765390030207390082626023669160795644530802089743007044871298606243405861983815874964056757972974688645003184536831861362174138337135233442690093764884933580219766990882017268703346249044541933140738012885165834473699743812750627399688832848895587288354263107716533312528626643995026182803068856022335998358361460078107340441967822912991780700074128012987969036345667164745739692785737844301215327653971575502861596306516706810522197406233906889232669954041159676646512060182653650242975276007971843246010521105279881490013192233262029164895224660651633024889241472424705830849844957306356317587571820186858604465189582904540598877127066570653821042168807826384688722657747940166521678034846608606121921903796475343768355852589322148573456929063069968035129803224266470616254880845704540163997667005144564426827860811590841572274131811948950705707120406638232127205909540694130201071615716403201953352754845005715273080336179236849457189533980587508558368813264871027045140295622175597054647091805910444178062284513229517758574352907895715886272300185963364121163097338438618985012335451172580169374194277216225065740444813834705167527549824814223180651271091604077497253682063618118387440905894022756725645692843616173103071596525250751308862225187157478312257603327402750107265306686959440562530925644264878996597611415941458615251802122641241611055941016654197121981195231047834877560278901331970821180730261225245920558698439504410970794375706652699205872117697632771432243364654836292415422557185258556565205119525660529962984715315755027125003222401340954287431121852471673563140928644933850157854841420544192462127478441941815174865036757782270124176566271016718557990035322310759026935268934881809199034356845249294996012571276227143411457674034378785757303958485065506336442952003823439055689087687912428603818514903361531282422540260349872398925864662211747348895585076600052782521166218838179890902429469674509298570802310739686321063949672157939088639961460545369601768117532555690054829955390806715305715826786006523384849022699702064467748888349502301491240414757699823739923340543534616592986212608660255927128463435814435019736041884336556213868486011941876767803735251203564733243727177115940705987709521899618244200319233073807917865307134949925245524151254811279187711084692475785357437671865254254931267213599752738264329991698030955415961612930362079265345391706943583687622409975294823425496367428135720875345252685752208154790755565223323824693879936441677618923922001857497992418632641190776918779234446233853599886692457011406426616537604892346985491075576525919956124692702749680873606532607144886270937760812115659625965243222656994089113966162148123840284697970680184678647700307074901512332094423309230820876407516465256004269585126833955477230334315266284923601005463355891238428393473200148013804742510633314971626115681063546254950591333981330130792980590745348254256938460426373939307174289646422064971515036813108274562551034510983842617251172686992175411652671451202566633843857356659860530460676583426630764568310746984188582328859326470384644797658804185296918494767661630344140981277972355776010167273797626707382484584222663271825906696703695849384074699160382474722390647982088579981551484329569079118800956570898892554202468997576796741086516881389611102594280615463391747058901001869852435699490365874778172532837316011119370316867753670100059808099384975824273035262222072057285038053826199881840380909407242603061539124870894544882493277925178684329212495259719433857890828169759367379328303837210791086488742775835528679211381179570844866978344841863398195103430588037081722463367305437781570638814673261109939628493946347246993041768657589394386115488960930140723059828991667665002662118088081535482336733317826767637086789461527430138326440132178128015678934062560118120290377098330051761582388065309818633528120909610006589146167388147198849406419020238919345286210185088315400363798399377883096388442434891261518645926979841305086528320340409583788073707233630008660371625280394687211347614415362988751821169786034956212543580583591229738201447999812089519996741628441064175747014394054285585285498146767138593560129466785635827892025499402848396686787736959387954551856976827032939615983483507492767339246963443546118474804994670577086355895963392869482906822337989267875158233673529708058783758659869686967800001031288446895328455331618259005704628431652067191452918696932253544431098656724448755001165443869560796530605401643068289430269864674683172912712284660791503083738732322525689605521568765350154558244491779312540715790844504867387085353748648460653651533207054606944867287005628542758710819576547359494036607461201826469452014169056252751416157438498557906650073611389368472711419234848486117299913244289108518870323489605967882814448384391657692373595649525757698656617211991681384566540169213924108179241257353800559401938200880978727188925213080801385770066558368358031524693816447436439906804027021224762278785481238268830928379971771044830329682037785371386465809665806285575796828289212991760888109015816053913211637988678966557209205904914400498905879012847671595899678034528320795414453542548626701946498704687373717818025557242646774107861202491942703691865257048097458971899517742093258800421024045770044146644519332319939614288403508283395824421989349619756742068809526273343099694288654110359509496473674304403287495581784126075998324529187805721481576278592467650257496216617780723889227320068469370751755253809285837113536727498839023942851610938046289806711618419301842392264999070701134525098241176972006885462192877597992997419500818902251995009596854875556575116635243808285840078677425508568671817880652742786602673251014866306077913822280250106709821813575837343676069412286087293862801474114052723269514641929145902175545229828481058991174578599180015555936789780702466919448927750178885232761271989083161841993023351167420331165492273115340741375435932681822278901074338600685859077087448894824061784333318355410073551913012034313705603989614416400983379674860880595746994192133189657345320773005423124634584266528094857079412385578213240779896617509668864072789627682568269313779181899918670480753064006304464234817831856167557761273218227014484747692904976946492803405308243546440191178217846684569181546295555174757787474594501024845226239396131425522013559142670321821654628459995989232376567240092401766434350235931106142244645333452717497013990581780365729901946156684188353008453053492777112715833567393172319616408524377672547779930582566780153178758758945126045113030799437417318540340463033366499237644531891775894370600115105979467626648577948391031879002542157515826175255039006157554103576634238149759781756412477116603058889458064137332951113570523305380305216618950636760729894912306480319803327683948134736467229768157069735663505696854593247843283017832357406508039197695696159749537163113259121115659612720626754629379772479220551445059777574197189968513027625865683349703741347615221879910585316909273723059595473501856050436144425569317349558687874809572469434572717643318857698501954060007738686266380194498705729990858129943448240562884037161628369366917179019599526913481680326395588320581182764332207661953348270172074116823921804502172797820739199878323774811194010120810904725364814257770831955558821038580575925430517313222594870803817150405789770017084083944044449455025652706445468941481453336253821453255476837186037874463584475227636602906877146401210772693939736610122878690752236315966652797807290253416419835542189099769896972322339370060761079103894051092522135402051526262978407146427482406679125481375108096703582428702724695066745217163845496560672901435930889815526767935827196198910817793618056151272801574818965049141035938985138151889399065589325350092365196721669243138413375645626905718395256753998572733115401901963572089697418555248493910109563830012505527259909355139816964106344382750999287931570737763448249097017567714046922641241485436401055832913331344879163920694420152716788430620258427866529316019143725983929399606865505240859818996663464801276903942222868447607341245078016028854457565727032907230599820638200297911356930460313470001916453474735288411869923465341171634710543327619147743185814104713108780777050574462664561491693384641895907265819630248205928522679904081467437952060730656209644062485404645961047649166654997907164374996918162878792171931316639487450031050361718841620223893513538931257576282319862403506484654818364514994885397710409699611421954694722942419325019338141985855284020133040069939713875931987924708720019206678732410202121613520138809121446389285798442111023556458871697062398783877453409310572634163338145935739411072473725698732476114825219360606829707219552884446054100160845147140631061677055535316301793767151925669621794642341594174953138863927976784290082022898772301801155834793053489463750957640197624913006259776369207027626399980817071885822387828400659820117975123873966932138975325874671634341109681673258710789933508306959396380882528485143243216891241865570765983085709039844120278488747833959531713402356938238080869764070473690405135381158298544326693541658088747470329578428084961620253209607811843517952046958419099726716318511750819182836225123027678516308580538562474759099944463659727731588757354323324212296077020332613226600712283904396179829511315387841969387054540012476380506205848302667389603847696381070345994006258271794897999981530337835296886986152911444010526165010698130481446105381495011783583489142299369569062096558088348565912393681608951733914350350132070488767676366502333790925568344406823527709091762729534125994783164426452517678723848258474456254305049173731735426698548845814309853957981803938006236781148488227280842496564653906084293019991552972033777458956344270669210032116451361994127374506709272958110846564803131157751229623917052296983660054023019862694484680272157241626143899629218524903246666414428427868884469326603985210916087993632435092034729052424716704000657303954199848942479707087940116761966452966843171797503021531938602319761946489468055423339089129398047644747934517863175933124165234334481216293761899157894660495307048226687163482619050653773933008342621513047025514819327811762117380893441127222548926199609665843188414177971835613595460418503976112982509447179826542928470615993830950473758668984997638586992869370796503187841409808390923754797694089932159730009505618318850916518229170648518740815040849493680561386216967152406280011134828300994341233471066766743412452332249230086438012797993404438720857727891488695295107528929061398963831759024402518650411182777651938545688584408286392898276068687588307946458371000712143194449415009034688726916224818791336635974833949226645692087771408629458611961384144210125404064107286097237114735922650082492223529986325578276915709099950935865648083747171571785528741147688695728001565434120421812311953525936630819393325814244117369054491147551659595124084751256360814897222532764378605444554637518070676670369394398918233392863657095315016955361818533790932387442339623167866742570112518092957415134789338208637771197324873580803633687833566238494204648278381378400888407100786281692033961723733738509841760615525193044499077023914354561857670785545878836499980157747309594012957632811571733955095476035615835377136892120506535257073877816607475616615610432773234020605110688682309979211636089318144932201976035439003222324246500266044709519601963657251856219068602849563750027520666490999962265106880848071504521092474991587966159415433249879205406610505432297367991697402529928970262893245675433232687229473222191815820730654513575038034010957077548622162981022719013875627749666157419338164202438997013882654173487521918200378155478837977976737228536538901042985042496440870524413938319312412432468488527047593099870128487708495008631641707225006507109737388596706046368645894217270470622057817605945120835000230278328172389713684162888003737557539013774108767601151170093738302041490189765769256558204484499412220552269778034394248304189748274648330277305745697700279008001129224689389945737152201911708021468203810700153690024885385388011729097572857199277666258435724879247811275096822303296876636869312402941503417359209270619328344702874977367668945579318848371762882529094409442187210006637046998012573095032055089532132151322075170877555380038317705448634130245716375589565043219038389711840255317147745288046254859362821389829092231858505205728632914591318090458829634531662172762403788084264291806950891331747024585948007943956093167361185951701900283162557532242688485780917571702645843008363633179127611074049094276192539138367166994364072024640784174147382073102496544823291386147057096239875081053895598784024073380868895241080544426172283924203826150864903308011554354417540584107494589776754723890659496426507958760948925404869005980347858767017902653796164421322629600182842630332101698081351420240474269705190427725247258815656435981285265771949061291103722806256757106704752074532125898648192450438991253163914031597870704185729152105707083313425403991657029206995510648339151966577920714862449650225089672840638771531454257736728897128022369564353396188152988184967147648512760134879421284246173132849175217674241602561977603345857981873809369002349998741887258568876609754252407069055127795139557224579910023735505058025889332865862723171313509127214455778817843427294845911816497270964243889660179012503952045541244516565715734670761621208614173124021779857721959810640125569281584782547063679430929623998042967432118923137852756632964004975481242581504698329489593418873785125619630626969127175408398374594634852573579250652317214334862174395545578337312863268519712883167598095243699052308022157046127936601425859146411688935897075686131667469353153997659068128093174978339396888208788882075661689092779463994161663828257356792571452963630323828440029643081236717452180190321035402133750181781939021000636418398953164916778787995352915898374884854154082537290086831592407108716062269869646987339613713513148480351583009710130643939587788116944845171165330980116606929889598477419104425372907554149499097379582091120921227230093274135197765638508266306868841678094770158535997615984691557519372126275302857803567886556637966973041304991671637291449957909725706668391430478658163896006598446719240964358939720496472103163257787553086171799811606551239268295440788688197237353404443334868092865015056386880819948057434768211493672464171933267427900296804667206985029490893840107827336229268669231542037167961957252990822740071934719621486594962051054329334213719089039948909652648738570521069062261689238365920745773388252948414662730545001060819936977566735164753531582566464146978836519835038966032249125713947247192912877666440336289942850610452346862163853850920243944205732613645638161748960771365036628173542085475953285981867255450304701858553980353823926420720940474652199487905386897226430415687454276037021565891789218639996921424547284271070370920006381454554101469779561566535159721821665494011299210510841872768868130143354062521393908485051005290700486426653418235360839000074154508863365840564055037473883601440709967810153088304384611868911449131352982439187301222819404359703479809202311855570982747008842467533204886799346593838386079715026371812779496573264121750422042179129962120208817035689844463860521162323397181155136831453557937694753471014244133897886271425204770284110101848873422497990429599029988862314444412399006227911172619013843642473205142824895085220866358163897606309697476471355483725801966413071192684675909780185634031859234617818457965012633354070162027572500294405829336808700137812245057592248203445415208610716919249912335335691246060850226156153997594933041241393424979551186859416524865291545241061366040492113308299979192434924885972697472198273936873682998998831814587283335046005245926210671096167044229427085976466270685019879182549930536591680032878287938144058693515919627407799008794906696303292585417651712873636999740560352685417498821213773803073623044379546667607222320597498629043661198765350370299557195174950792103100552345697657133657014528810703408092144421028611567671701379915457363964707773116820933083878919993395013451654795596629335920345866449394814633533509442709141712742787522509504051644450319020667901892666844454242102450021032887512548311303979466629569269804656563616351285730485241428813324596707385128695997293964125924276176347050781026042630428329388785249006686071588187999844995647184845585161435616055375819244417633845752066715738463425315838056410892662694724873815124628070202062919312329688755415397614137639614139346678358253346487058733379143612247174276860542298579035489884290214852032821992609400439446412075311850279341007050111701443226191055568264680168378936782894999261629257163997842588336877165130366751201509180800596902798469708402968459700830667889288654358990283753167660883290914629268629593598197604857399004509003907124110320077806533232798778827593703669001725418834154718204423364419958086588328015712324509029377860165772993024956826844684949132581455025457461250612638283386321883201449027186407266213085980948771534752717304695813831369939675087513348429715523854033998372318928224734924677329464050335142862241060167106054556005287962988425612862936247234775311133471593923888754615812215000696872597175175788055238087706336023357055747381612853354855515031579254502773908839611674668702221367689649287812051609954180423674771361896832772121865040088041557969928821781455714803264248179167793569124586644893149900216535707453620117898289505900333233118448822442602729384097727976512067333854029821536607003556596436145591882145304283505288418641417073846855230536289076932725287108468184025451344341676341462591913446130072395645215136981642387012506896291114653828474330879288330850830698653894800114698245079256409441597972608775812228297440797747600606155598757980553678942731984040907096654164647398508395691676715449652458541100260220499729140660293159117960837651771062424362048219980223866601204382804100588088019882308937495553370165807558508472301682676212784539005506777748258839668219909867177026462089436654079580492538589243459658152938064619088620528865099277468596408123700659216516262044282652046176340825519565905340633795744524955480058938920337450191322585800000043352909064786904560372231966315193040939762054654280561568081719546897275333258512842706337062977404706558597808966951548995467505267480241562793452852705234803824600334937320812904653703846909828331665148929843313608013576952387840784214986573495818587114387701092615243275232513573481397659500482091551264999722388091800110643058863713570994470473892812609391262398026344894932143466328958337917524835735987615495173907914136590897592089398596306263892606251111806278531215789887863676140733724227891936278542711029885053891143566309441746849072811772661003618201127782665475625608547211699983637609558658290491249102918432779285280995808736587162223968676052681093798936693957490701255151532402400630075571229914264332142986874843805830979807234648081026518695333434842564428609398251506323738467195129066858351603716222034291543842111267830719318994915238868649125085729854732653938075794800470898610218744023703944858756191776416942250168997090709610489713796308786064964693133959731240358438137804899726114789066213851748287425786074090592808810313316645078727298251696520543851091012887981284687297752440123512204269597211212235839308936411615896619868434972251884799060890377962965052290707346148661043205135225574980049859167886674489596186891965818865018928209318288190514467947387815988656079717690563215201211504283260450281413793089435338602803196808439778726063106635156711550770120200439453186646910359941898079014816312566811206531718602679750315734308084987974516172118406734609121796462539805301788624152585854979637383628784297962630238643142625151300562068887125693528682440168611299132501731263164006929358755704550551178303934961523457112868023127079927512690308901853202671562771351998502758505265583277190806414605518368430809502362626757017497506494296912267160957183495077423968017084931394686233760406908683802965339204340763372089361507748191078187308256688712158586200286584864132389547423113305186128886765170105412396221546317720395608148745602753613561425136046353460958802850966623054885974567444016298549916216163965635948720194131311072636312528514683800475234945544288210798140598900854831565405543134264973518824719952097533398312870336173649646037874614865115958878562226526669058248891939471059411389982880258588579291274905269974124400104008393759042124001214786479288838646073978984692734369786279737630215222429593924803435495115905356565311335484110027382612312086103938540956479782249855898585305174788563743960529154158122575578698941548038783683620409781439372089628482227164182052046148939952993888093619534707061282366526892378764084718902681617983961118359606100026424652378720212815637762597292400574388974451718437535978881392219531527620812058484695424605055611399178814218253957182798546420925059806092925355004553930283555858986909963644584713723435614261838344054664835435727388029653136353995821915105208756890431692994902078815896170328180299857770209252348644167467101578683737526973666105957307846283189422019087267193822588206427826281294939178526012998355645705072120078549149047614410623298768733319553878073337555741363802127319207299283239638425076885098752871598150987469667104656527080486031247379071630114631778916528642197546690759902627988082540055228550425611794359859122125399472706861476354642594460022909586617447167122236100638876326559635261318451009501622219539757980869562457612237745210339760228922217983639052745050750540805123866818360227530189753159171453301800809547725501579265853579157382798207237826578219275634090007343453967406391158504679756765915817796967828376834142862669243075332804067280579129635629084867039163169631088118371366127728283576334152992724368817056978289499084936821238396189185994164550146162716703677621886622587926139195019173633725854604274466162884787135170538607603650158491471440357845673027781586698612559607181033097706391305879777557049664966837443476601396569100562132823420454241348028063316488487499663623470396576864890944228944655237297254150465171081165914857657867133511566969612755072647520087342657632649163863796538736052027219690560610695294063011394502612115422811983621437412337713857131771018297458058433961288827700204966846283396106836267587498700528952125324763771150335772040386055117558697362238790321230024295623611196986769914724275934624907150696019390276518620682714795157448855963007846109200862298978870297170116495770180583395476843056342210482278773896140000756635123856750903361205703654337494248716454986915276392626175501256948805966669964848579948480754791316249687211333575648289804070364595490786062556051064671929691110710123209352249514719362360422255792434681279410918159542308372045004537153622292870741571131999108007512794609534746519435846520825781451008903768243086461071735931195633375234409918807950125548522520465303090807683410512198051849152777154033737699339025539828371172768182296153711824847952252556903603606919243017316275700072896572400211587211848525981405981244192390997876077821037100700602977743017596908897723351066672672260919686411036130848350671251272530385021477774726491791715289321437953824378045382127395630887220913894892983544812407328647118326182349084413330155324056572593410436148043867721440126697627626103561965856064683612794747048336584485678966925878119863679124947458757831477258797330407056578409203185798647955403936829057345726481963079562325649488577642182057741035970727812656983368022981352350924869405620767551083361557222652940837930666851869531079858472702389982942165474384018650951955436749204878413287242861904967359229693610651571065214955275171172448962714023715271034320403643821548329590716127514949954691028786041617411628792907498875903519966433459540630605259417455143904561360631834388054971204999659020155383182591365210612668515777791085345559260033008811359437361230772339815887595188027582648991340603948098602734386212777752822398227316369301050241594552806220997586592134099811965707392860242266829712884271730752747584063429616545069498279008794275195714363412423487348323739589589580285017848514154323890631474875033341918058335426707421255873292189453545107157301468177753859515786593446831443325196734049908316050861661074841848440110586831581568953677062886820925425934364875821169110823675196292090265305743379411137830118258526174389417087296997417079437545869787431492619087869584276178365962056774290642907679068923174045189611259763871313491867005638029632269764933120936936564508593191359339405163044411418712823209943564223793702091152305360510372311229535713005156566840212968303554306906043331852769901458163229911076884414641358752431626799386245595582907630535174541549350634299526297941649709982418476131582847483969529812016365629957839321227830401343419439107612625069925669987227639892207632204544305698807892748934601116934585342571837185015646526798360126515407853993047770274873824277835431635573541838461202360973117643730287199715871679641285944909983611963838825490013134087649123574754975641742727748770653172780706719293927224927663401049910296582890964973058723488209869636892121665917634589007001332325477239256227716143509488488787679944518743534572319513747835300437937383232821120640412239885880556516281618773590243872623870655588001083487737369488699860920939930042480092418063540947004498734945296335271832627915402058967709700715161623321454802130986400268552036636234801752803314376844654199672673537148755705354284759567612978656716516264377759793592903368079918943440724458133587280949614078816726734121999508140189745557218872731437459148549903572915666600245478177797758193393032294058462431319855008264326721075288881929977209006725833267475416609364281956321001565644720963336400193645849407460835644341301246922281602443210700285176411083015000729355224546675346893507351754897978875970568767818509202168504657470489943591981230627726411069193023469449468976963052512427575440747928870137949381883377790499801989421734692063771371047258571257319842075520597463170355303727821866078545147004951239963115091665448707800340812619536944808426086805430002174418626891796213691055655243557757084432681492602938252256535721189368959377095593882015304991698590611403344039838088969036226536939902175434480091481095882408537328036972489797175300153764509085273137893283461290111459780588990683858114273045509363678589799468668154307652757864044831479936082335233040037480189751973454276408807590753462670523593464398943858068341478216934504221284109954750123435069137143877795374386964193251272026186455468636308034669011692209341525886336861975675212609966975966941284994450620708655932710674025482577705078385293287263866381412789204505004933708518408152115415000594461829363518049480685283840794865728259251381925667552121383220769021312515395857365254934111101378876708010248519715076229755727002353047120741293727704499642446945085948252424269587272155074254736049931204190030806042204176851173446918501253261961671167879582236568924420738435295146802496660848663171663177615740743861113018040759505484418613437327487920685082438227463950677068548182444622521922660562249894808609424629480016086545380917961413167910080618451283370318954500110056369430795697050755991435402983162114013390881181823392117589330676732492003439018707977658879169714471320530663744866826333030471306770801925821461071878290001342548477472218073458523024727368645908461127185414743437927553077764300264339227689507338536299138689247630992823525312203672468752943556377958254317592566648545880651889338269356482849757075562894337692404074907971098952605135578564945933152662035841348712457490363098291068442315761120049914740415464390565826562881120140468511292647588932081200656828429412414339019806037751031088429997663697603363513522984885971532132686220252336230055922841242166211372239846936656272427938067391435002989123056712480988590732966659139512644453666203478583035113137543708592817038912226807604412889234505308716939115752435407960756923599619014965685149689258352390669662504602774497451184852174027302279603837039231308715082413641345607357607474127956144797886728298266754419398376938981224697843398922542780821611119213584985583531891648077761081849572089282919860532875798725119144512100783740170448638627123167080060563303880839862278765976917352944955199064331371565815699457579043539217798385716352133686841252461032002639039697743477950167138925633344384014230509056021753772608332504205115427409786399971891417687123485359260608630573018078533085244306220115631104630691305738828790763375822953596584559002995884398459608012771957234658952370593363667404909889426220007764084978486317979386972158763102077364048292283554977014158606224444974193309560379650883603213276571029577886131178222455153920023644639395523978801949952342322418368439313663799121804657908634093422854764712350905331560599955128048372886631566061792802614059138042084010252644172198687138602809518928294275992796010679244308867161473565648034605251159573113361428735812073264372175134586324164545676434192816482218867307410775631449936308940858370878970486495329710654268045233378258974858618828638062349633769507546935914818852480968709057528765325940783948987773881537368718282623015235605548204839474898508006481482238958115895248628386307385541181967388121905023118379825323072111372022961762206512170114398633312350086379431959900333321652930856665004945402018774421238136888712464735676627088421720970174807183531935921924408785778777053730846670883926604101163547091351783878967539264144419312894755622155334940320564102284241582648843323674118900453017429963855189325425443012904173482026866788742400318136927611151214619103766692930052539264711915379069293824851577098482029321974864177840631606428957996754665342008272625476760756306384373271747209485821150530968498672338880055165969734248663324285391907811226715752279513400477386884182044275694047127289559098113516126155856129047320752041879496652365947675932613876317214711838701430749276826702291768270083529550888394401503907886858777327890131038354487174061645507876225529387607897833913628563192467779011838780130058098888888633555426609974796151032612696449311245923961922117377749792825893549283357295231434368326140937594606940127213321964729575491715365751107164513210546753676172252194596697605162894349451257941283733983758848271498041934620887796853427996372291513689984801340349033865692409592663833850927116230418016232078099661688383044877823706334247177272364712024991693363908374909190148503718214748376511585945985537063647719188472053429398992786842985507414980787211452511016631430489360537265949346630995678272784962701121311591540527747571322820526055239530964200149635399216088380492535194981157938892561716805871329870790770741025673600854671566512295764348608307480480642997268586510812343661995632212057896032374166864439246876700856402349647062564131826277660174646190361086336232648612199322166107056093787296382976928638608836265637166065215212880863551533069424556096355948396110651905332160194000755670338646048198562568498273627420963550459504941039246952004914425793548712979144798703586935856395439031985316550615461763337379197432648577975035849450116125029289940459286023457322564601474836072230084568700410598152600410711530988002587648572236270033753001880556965882190833158657142565089546444720476492122953671300755025440016920508528057896466848948785768757402498151907791047412714956361316111022640430818558897565622135731156657954084511327905138879730763313058704930736662726430382587061623559244100960387470690275550802045690420671819301438696980149298341128120716073048722411325688946006203846978249474065405709159477180683013019163157073955380529424666539330482225124582678575533065770210928662570124201441919249797726023460850861965202469269087962570797302003750085006966275661760385254105654028557124752287060390343023355488929963171962669841514260106198121827374132406340264327407616350677321875077795072053701423207673919555547689553048250609647707697080666501121713214796869472277570932128606207233092702742428930443475828335108655595274736317607505323021936592831314300035684193664858911199767793621916726178633367022293779747682065046695202710894625202952617748104354480647868074879777881666158126978653515380865139694291204299182901521478479740749528769348527901472733152009124277516197882520822084931788969077605327161732381301184346252562142394580583595951836107397232121194052393077356847012549736200965355560235872910912102754982103132567965754869496809898380499329818033477248189831815771802033305594129552159622432633685660021914175158114869431682419935787127415359761056951702542015978096719827314944301808292012864327146976387921373652515866382973030906325395254548399278290635671012770353683010429550873145592315173113918207577488054938964120204011216777318604726029170628030983698797164381287122391613054834721616028522670920908209039522926976423064736423279482435492989608344928116571354478395360620565329625048836469852706861428976151046067929909839411249948177803895806904809652656062045206514180355298692305483073856351548203832818347895608601883510890922706498184362188092349174022877560525724183214911513086400671359931397087281204775850001607691289689598161259519611201826804427564724842837535351924565848789799531270206683103505407692894727650864318639320344848443856371381495984854472431944129398321910849208842617933452496479038717442047916965523191562688887226441364438169123327074200779014498780851682958922394359075424964058731204490031476141468132154420120920124705931356422239295723673197495756086603168729061848342464626422165500216596323358135842130548593531584239577704899123743486775189330829308305588807019218782423706175009618800076650567206563037377318199517437281055858057965113046383564320555888031797960684090584338854392154732753145696731039854031467573500849851733313924791017379728003961706641351331259625876489072858742131865414871308311727796673369929293925740028590809155735180745960154855248640899896258896830593052226705345396097964540068416130407390794011827593334210438901179849887244343981534914934305154760210544414334701841623911987793971482106771731510759895902978836431941422267419476754397483800668032407948509909522023780675096283603431028909608423315125095049053445267940525327177715600735790888739342222941815895268075516618854578953320680938522379339336638533668969489056414484074449211657606554847863153892923501924836690651109286397423520761966716158537290948440668295978283035020812981758678247660200974139696939947275414976083652226409157153421415848470255664274654652399964717896985839634112183490065883542471390865752524212058777369041338377477507699140682614365120120770396971997823950303358650568469741824316671454169471388964812707290963039366907267973501154255674415841089028850571634131068101909778606248795314194670389246288819087573238092336397469837361652562121611617274997736119129603579555993181742491525436921335199204124340458484921895116815603116902953013668158943762998416411174659804822604170534566279940216406079355711978236100642122114198507931465095335015720604845836810129495725448057557784120395318526066660485613315307878689825117960511689322691752228003506236423132769512263813512693807800911321431923200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000


