348232299554260244394954190677077627628328034409599940617441609799605948418184307515235825923553676290353416538721613915313986505675876765773358327525728553331749232586788425532891722914819041566712398366241289869615815544484317363465607283042057083737178268698929588118466526208937073034573237978092083301728007798709035453449777588489252748202337366616455738305738581379112052773323153596876306698044476409694416913429988427212077996795891556112847339561758688394763337410148598457204659371038226240156469291551478852753206792198927282423154914707796632397916272113312371534238464120256219016780673367698442534711099270742732364023533896076323989748321187291898078469290290671046893241769795182303544792411844388653040590810239554775872788190961750508322907785115422949912138421804832907192159566858639351032416568337835022680748575257629477830873401218770396019124571084498668435367105448010025801168302671047520306738235334593567069448945650678928120555219879335822914957122322661366559513830598415090766618089979111042122306769984165285328564935725251907506211899746259891324831946940851719520167140047098950328246574293244066567889440128495254436786418448852221955339753363614742497547927173221534342198712957531988633950025651605784682559375117962955322832398963931367112114935018698549999420751775222880301957246065184657128989084081948515815654914816844718232680818061541651069428324527972674079928952504230267960636832517906386196418145497589577207888474288327616353248936682837981967774267031186486186739869235938104749182694666654448298416995294832479853718665641113859442790384866051091742861758180152828815668684920082264169866082190552161425473661249211231547143596964712390828545524708895183127406943777368276336143450655181537860438867927539586791365191900511722233005461770843827488803115649035638762236967421139673819187794245542095094286696879686814496458992773946914522756134232021236832618797547144885841383387185335018111332740086433798627238930156443995073535734883574339014028631978817901624130213861032067132331453910976987671622291167140107623121798042769506945174184743434182131653815021038079118667144734134093160292296411617712604783999047403766898392757362246217635838177862629815752789916648180189092746525763695584497364796039356049614673195087210967036142401741657918211810231317770617210533938936750588684722751526717499524533666519652061126115598491590007331857126978454882615649239615796755247522942961408577046329165387781941703823165757998330924076268759197491175772011437739008681029903455610572046003282728696104872832465632117146182478959196432985455180329589178513466695874789033732955734258594707193525312629981712026486531918734055610149370477343798195823190249192771875752587836736884872224366644023805234200238703603227361360297602266834346020413556234211376236529175569296540247269565558527949198746660344064899355351672074422801071979656008157979065985539193519168115288645185383379534366951252217079590878009544486148968742428040165967389569114791169782681125289622923300925520671887659227978675437222423748084703787634474299966545810396680157230628930721259432393455399215246577151526825480630469740635194489279882341562155494420109002680377872295221651339089589098957709790736553026441740354534928297060705264577039602969261233864466544412399295978887443394633470285065221567957699732673439520011000277496428343950789557124538188739108849830376531293086408512448835481780181559566102702146549342862148746376498318976616775792543652584743947387814480174718532540787076551639497637115618572327880973006473373625798192234484804498870645284741250557850953813548411242611446101135629251441034280360162206338659744975406838222558296562328335952836057975332922909797111542102591931415419469666858827440343586145618633283714238074566537253045066009100861069653751415636129030653781357278168200704439322271125827718511305996676321440174142127509954286988220226062036855515293701852128909467048460174729583069597962021056526711686768812791612102395559745762299210894358214539532609885807878893633821244673161115971107729322992647529354489495977762921909271740059624701551145649149170428770269533668931826090778884999105719528255599447434870434689026233044813655233482194034315785701188288261983684328146587940665515637493175353965690687449022213174416459867745952596043999387795686237035496603362621629168667939512428623728342779919708572783039611679198453025619463989395722391771635391433132381659832667921296898601900111822283473945411410477091730435006523772592220208385316299421781798248676355254564787913232787639572418377291324834473788442229948249129175051538224781156963365489251548506898188620975768166010124916260939573594409518673958517561955535148856874601731673901085780790222139663556364791346470142852466283215684125211113349046109643529705565119229114324492958995751718775474542183535682798446906235641146447293304861962469591399075461175399477152422891445082487967382053999273229259277408071793566207279327812185723011240371830697449522450255804657785562484379111759339911250409923276648224291417783865233397852675639467252109092517164734540644841492573681214893731637759065027182461043569091800390449763254662408900751963737308195104875053992667790536159619450798542506386592344530539297175892521846014059925119423391169597521971789086978223687785549274466689879489168160580865785512518625069754477677324472574206196229320975276903406407096212730213714418805404253437835080941733682847241065988105157222131860696731554271552551455799067099347751856508655402888218362003316210481084962183142367414773567041417131187169409927141688646739137332947313974342274871464785872189099955168878219136664719668571417323312550799623281504006620055288263405295849457744437292359662987207831131733312604891967297654216795659585501338819161673507926048703945625497031884661186991832893017730