57214506520863436939443543085832024508634308444702762347421142006521430026210663570259762347025945086343084447027644473283123706634543352163000863576644085735440845435883737881134400411381133735740846326959821352088459820843221381137263372169411344321281134400418108444649117911791179111479195737810844464911791179117911141243442873811344005574068235636408430845434673761363577408443837066345433521635845793379138373440843064463003706634543352163588373455833791383787879358464083735630857383706634543352163583383734408430644630043281908213700339046540663570837356308575478793584864444132838370663454335216358338373440843064463585913444413285935836943088443581833410845436919442143214328190869432140434435638269451374745833838378793584260663453837066345433521635833837344084306446300432819082137003346465437066345433521635478793584404344356382383706634543352163583383734408430644630043281908213700334646548443443563825478793584650652383706634543352163583383734408430644630043281908213700334646546306523308445478793584404344650652383706634543352163583383734408430644635843281908213700334646548443443563825488885859625759836943088443583383837879820843650652250882703859496257144962576269626679891480597984197435436506522508827038594962696266798914598279820843650652383706634543352163583379458373811344005746437635847913465769358440434465065258338301585769358464083735630857584583016308390025088229701958458338576982084365065225088270836908700845583383386306747412440843064463001301134911143863067474787945215219134408650652843837066345433521635876793779578373811344000846437635847945793379137982461913448408726343123537580869358440434465065258768388880869358440434465065258378383733537580869358464083735630857585783888857694521521913440865065284837344084306446300576945215219134408650652845876793783784546766984197435435808698419743543650652250882708312334637698419743543580869841974354365065225088270831237214458134611121302031343766952356358456974086382437679336974086382437683121315158373353758825845491314792311834782583349131479231183837344084306446300237835375882584549131479231183028258334913147923118383734408430644630089237878784408430644630011787937214452134365065238370663454335216358337945837381134400574643763584791379081235375890576935844043446506525833838373440843064463006306747478353758905769358465065258458383734546427845898912084633694408197413450858596284598279545483698419743543585769841974354365065225088270836945216345134358495411547954115479541154795411541483123721445813461112130242121315158373353758592758111583586915831059694308844358084913148383730849131446250882297019691007783537581347458787905859625759836943088443580849131483837308491314465411547878440843064463000869847435450858117942836941213563585479548378791010761384033552087128190838370663454335216358138373440843064463003706634543352163585783733537589013693584722988885783738113440045793379087937461369358440434435638258578301495714385712353758903787879037697408638243768373440843064463006306747478372144580846111208023769740863824376120815158373353758594927628414596943088443583749081483888858454663138135821343214469523552087128190884493749081414838888583346456908631333740857557406823563838888583369631352088787336957088445443519433521638383734408430644630045787878440843064463006306747478787937356357651381557406823563383706634543352163587479087945837381134400414643763584797646630839002508822970195874795435548379574658904169358464083735630857580883878708830159625759381179484645016308390025088229701958457954355483381179134663138135821343214469197406823563847982465454793779337952123721445837461112370213697408638243761237151583735246134937146957088445443519433521638787821233461349371469631352088787821235375858766943088443585283888858905787875769430884435825088229701969740837437521634308704315250882297019694435827643752163430870438383838787587669430884435833838888589057878757694308844358250882297019697408374375216343087043152508822970196944358276437521634308704383838383733537589048878790584869430884435852838787486943088443583383838373440843064463001349371478787844084306446300630674747879820843033552082963133374085755740682356338370663454335216358137937837381134400084643763584793379454663083900250882297019583779543554837957465454123537585833460869761384033552087128190858138383888858334633690863133374085755740682356383888858456943088443583369570884454435194335216387875783878745694308844358336963135208878757838383734408430644630033784408430644630011787982084355740682356326357408090844843521633837066345433521635837793383738113440076464376358479087957798279137945468923123537587669184047078787903787879037698108448435216387879058084676698208436506525837698108448435216383838373440843064463003378353758903383734408430644630008780846766937214452134365065258088312334676693721445213436506525833831257463369841974354358766984197435436506522508827083128246086984197435435876698419743543650652250882708312372144581346111213025769740863824376121315158373353758454789238888134745888857491314904654115483734408430644630033783537588249131490465749131483733537584546468923837345461378353758574913149046541154837344084306446300337878784408430644630008787986611838393563572139698645433581086118334108454379820843866118383706634543352163583383738113440037466306747479577945464376358479131243442873374663083900456986611858338378451343457658578373784408430644630037787945216381084443260663458438370663454335216358828373811344001379767937793346592749621014496210145979574673787945464376358412372144581300356300828373353758336943088443581383837357491314462378783721445813003563005783734344287376461369847435450858078312353758766974086382437647118888908249761483738249761446824913145882831257087408430800824913147878451343457658378373787878793563354340454435194338370663454335216358837381134400454643763584791346631381358213432144790846545954793546136906840844868208634387875454798246136981086357214487875454793346136919741343372144528787545479764613691944215706454387875454124569184046231111123537583383738113440037795746495477356354792379540313455479077954053563067054791779542644080856406454794279543555762163085479072369237954355521575479072369077954355513575479072369177954773563698075295479070769237954773563698003213335740854790707690779545521454808436262848055755479070769177954547923111114123721445837465769740863824376890712374746111237463789078373353758574937148888630839002508822970195857493714795435548369430884435833838373456918404657493715231412334408134878787845694521638108444326066345845845831245693584722946630839002606634543352163585444084306446300541508155480854545662163908580541508155437137484085483588312456981084472294645693584722988885859034072296284805862571562690162578083593583694308844358358301191344840826742113435825088229701969102379231183386306747412456986454335810861296313337408574637137484081235375845693584722983738113440037794146495403847052740769610305307171555479540384705274076964180364214506520863435479540335454421842137436961030564180354795440762145483913810826741384766940762145483913810826741384765479547164757543746971647575437454795440760874746920723008741908445479544045443519433563826964354543352163134428547954395219741328084469214570541412372144583746111237024169740863824376123715158373353758456982084386611858414937148383734569864543358108612963133374085746434406081233440813487878456976081357464569358464083735630857585721450652086343698208432974085208634384562871138265135208830157214506520863436982084329740852086343845628711382651352085854760813575483491114386306747478456935846808454821465859680845482159358369430884435876838888585968084548216284806259628480625759358369430884435835831245698108446808454821464569358468084548210145693721445213436506525858594481628480623862848058496269627962571415835935836943088443583583012508822970196910233854116904548338630674741245693584401337134435465859401337134435628480625962848062575935836943088443583583888858598619197408593583694308844358828312456935847576442152084658597576442152086284806259628480586257496257626914808359358369430884435835831245698108447576442152084645693584757644215208014569372144521343650652582508822970196910238338630674741245693584181908441346585918190844136284804962591401628480586257156269016257808359358369430884435835831245698108441819084413464569358418190844138888585859090844843521636284806259628480586257156269016257808359358369430884435835838787238301191344840826742113435825088229701969102379231183386306747412456913575777356329810863435854742113575479456976136357740844584569440663770537066345847945838378793563354338370663454335216358458373811344003346437635847913794512353758903369358440434435638258458383734408430644630089177835375845697408638243764646238373336982084309084484352163640874355235430844464512440843064463008917784546456943210521390844751384085883694408197413450858596284598279545483121346334945141235375890138787901369820843090844843521638373440843064463008917783369197406823563461312353758903369358464083735630857581369356384431374740857838373136935638443137474085746136981084484352163461369810844843521631146136982084309084484352163642163084663067474121369104633121369197406823563651352084645783369821344331382084637137484081235375833693584722988889033698645433581086129631333740857837335375813904646336941138113837344084306446300890778784408430644630023787937550684763837066345433521635833791383738113440045464376358412353758456935848644441328581383888858456935842606634558338387875845693584864444132858338388883369740863824376471188884569358426066345583349111483838383731369190684765833837878794513747486444413283837066345433521635833837381134400454643763584791312353758456935848644441328583383837337214458134611121302336974086382437612131515837335375833491314464646630674748373440843064463784569451374745833491314831233491314466306747478787879451374743837066345433521635845837381134400334643763584791346336935848644441328584583014569740863824376388923123537581347118888336935842606634558454911148383734549111458337913472301454923143811791347070145490714381179134717014549171438118378087484087335375833693584260663455845838373455833837878787982084309084484352163640874355235430844385479547910108208430908448435216338370663454335216358138373440843064463003706634543352163588279577945837381134400084613693563354358828379377933797612353758080211837344084306446300630674747812374613691974068235631235375837698208430908448435216364216308904623837337698208430908448435216358630674747957794583123537583769820843090844843521636421630846464663067474837337698208430908448435216364216308462378781369457408136306195883123346583769810844843521638787376981084484352163118312334633013369440819741345085813698419743543650652250882707913698208430908448435216364087435523543084483383312440843064463003378787945740813630619383706634543352163588373811344001346437635841235375813698213443313820888881369358464083735630857583935635721396975217474084543681344331382088383733935635721396975217474084543681344331382085883787879135757773563298108634338370663454335216358577945837381134400084643763584791346393563572139793312353758086935842606634558458383733537581369135757298108634305358443086308448373136913575729810863430535844308630844585779457937137484088378087484087335375813691343431345762981086343837313691343431345762981086343585421635415577945837808748408733346134954216354155714121349542163541557144608693935633013635774084458457933837878787879393563301363577408443837066345433521635857794583734408430644630037066345433521635883735758831235375843281908213700454646543706634543352163548373455883787878797705370663458411384914797705370663458438491479440663770537066345843837066345433521635813837313693935630521135708574643440608121369451374748644441328581369770537066345841183121369451374748644441328581369770537066345848312353758136921636421630829521943286435818373136921636421630829521943286435815883787879393563052113570857383713748408791010216377356357213905211357085738370663454335216358138373440843064463003706634543352163583383733537581369393563052113570857837313694513747458338378087484087313693755068476583379136977053706634584837878787957358138630674747957358177355743763853117919740682356340356708382379085219432864358138370663454335216358837381134400454643763584791379087933795746111235375845695735818888456957358169457635745765215708848373372144581346456957358169457635745765215708846974086382437689231213474611121389898373334645695735816945763574576521570884491314123537583388883369457635745765215708848373353758574646118373372144580846336945763574576521570884697408638243768923120847461112088989837333694408522181087576357457583369457635745765215708844908148378456957358169440852218108757635745758338378087484087378787878787964186529370663458438491479216364216308295219432864358138370663454335216358837381134400454643763584791379331235375890456939356305211357085783734408430644637835375845697705370663458488884569770537066345846974086382437688884569770537066345844945697705370663458469740863824376892314904646630674748373440843064463783721445813003563004583733346454913141235375833888833693706634584837335375833691871264646178373440843064463783537583369370663458469740863824376888833693706634584493369370663458469740863824376892314904646630674748373440843064463787878372144581346111213024569641865293706634584697408638243761213151583734569451374748644441328584569641865293706634584837845690852194328643581588378798208437735574376383706634543352163584583733537584583738113440013464569844544217474773557437687874569213737840843773557437679334643763584123537583369358465065258138383734408430644630013787844084306446300892378798208437113824043134306843837066345433521635852798279137933837381134400454643763584793779484652698419136379744645698208437735574376584883797646136984191363794146456982084377355743765876837957468269841913637935464569820843773557437658578312353758904887879076878790578787904569820843641803213341585283837344084306446300890778353758410235878774021187874102118787350211878735024645691974068235634035670887874569197406823563403567080223837344084306446300117835375874474635837344084306446300892378434428733537587446464569197406823563403567088888589045693584722987874569820843641803213341585283694408135728404313430846464283837335375890526939356305211357085788884569393563052113570857837344084306446300237835375852693935630521135708578888456935846506525833838373353758904569358465065258526945210663438383735269452106634346337835375833895269452106634347462311837344084306446300237878787845134345765837837378440843064463001178798208436418032133413837066345433521635882791383738113440037795746437635847945468201826984191363381179334645888845693735448443757635745701233811124344287335375833888813837345693735448443757635745769372145068458837878451343457658378373784408430644630033014569373544844375763574573863067474787984084340432874083837066345433521635833798283738113440037463369844328740879137957794546437635841235375837888882837337214458134611121302826974086382437612134613150783734344287337498249131414468249131523147845134345765857837378787878793563840844436435817263562157283837066345433521635835837381134400827957464376358479764654195717170404171704045479454663067474793746572145065208634379334654025479134658376982084329740852086343845628711382651352085854332157285483491114878737693321572883123537589013837343442873376939443543085833153257358100355746543215761532544721321533155459573581475483124546376982084329740852086343562872575876837845134345765882837378781346583769820843297408520863438456287113826513520858543321572854834911148787376933215728831235375813837335375813693735448443757635745788885769358464083735630857581369356384084443560837214408838373136935638408444356083721440858357913693735448443757635745783780874840873136913191908635775763574575835837835375845837313694408522181087576357457584583787808748408737878793563840844433071030538370663454335216358827933797679137948837381134400747952465721450652086343794146437635847960792146526945440813430829740852086343585484191363548379637935793746540254128113440045464954210643743563084043287408547954632163085479543321445708444043287408547954632163085479541913575735638254795411197054795452134482356354795411197054795481358435333574354328547954813584353374085414123537589041693584640837356308575813838373134654547835375841693584404344356382588283888858594927628414598369430884435882838373604637158215320039355743764654321541691974068235634035670815325400760835827643465432154169197406823563403567081532540032123721445863461112630233697408638243761263466315078373353758594927628414596943088443583349631523148383736015463349631415324654321533496315231415325400327878601546544754123721445863461112630276697408638243761263466315078373353758594927628414596943088443587649631523148383736015463715321913441352006313520846543215764963141532540081137406084654321576496315231415325400594732787860154613153715545954158215544754780874840873604613783537589041695735818373416957358146526945440813430829740852086343585457358154831235465269820843297408520863435628725758541974068235635708430845435483123537583583734169573581463578087484087341695735816935574654197406823563570843084543541241693563840844436435817263562157285841695735818378416984084340432874085841695735817945694521634513435849543935574376547941695735817735574376155419705479547608358276435479584169197406823563403567081517831554197054795437216343403567085479584169197406823563403567081517831554197054795474356308300835827643547958416919740682356340356708151783155419705479548108444335451374867435826354795433138408743563085479545735841974132854795433742145485414838312353758903583734169840843404328740858416957358179495419218435433521635479541333842174064308547954443582764354795411197054795443211954795411197054148378783537584169573581888841695735816919134408634365215708837341695735816913191908635775763574575821831241698408434043287408582179456945216345134358495437216343403567085479584169197406823563403567081517831554197054795474356308300835827643547958416919740682356340356708151783155419705479548108444335451374867435826354795433138408743563085479545735841974132854795435637435630854148383124344287335375821888821691913440863436521570883732169372145068458837878451343457658748373784344287321693563630844307103054660784513434576587483737835375821694576357457652157088469740863824376464623888890584169358468084548218888416945215219134408650652845841698108446808454821795423795379117911548302118383734169840843404328740858216937354484437576357457794569452163451343584954573584197413285479543563743563085414838378440843064463738419136338217939356305211357085738416939356305211357085779431382651352083858416935844043443563825882830182385454837878440843064463738419136338630674747939356305211357085738416939356305211357085779431382651352083854547878794113811338735235520871281908384954131919743545134335216359708941138113891319197408435479541319197435451343352163597089411381138981525479541319197435451343352163597089411381138933081363541479523552087128190822557238541319197435451343352163597089411381138913191974084312411935898108448435216346547945741384847264385445748435573831866404753142118911424229892323642389561729048911113111532642040464041754796471514574138484726438544574843557387586262929268675896429751689111111118911111111898656756429262629647556865479647151523552087128190838495413191974354513433521635941138113895708197421285208634389432121744835435479541319197435451343352163596319440663433552088984454435194313337408891974068235631264081974212852086343712121744835435414793721444508090844353728711382384914794113443849147929631333740857386313813582134321446941138113296313337408575883790929656418254038495440066300033545442184288443085284007263456954795486191974080075215219064308447900726345695414791871263863067474798674746681084484352163843849147952355208712819082255724408840674433854547922138113557406823563668108448435216384384914792213811309084484352163843849492379047907791711147949237931790779171114794923791679077917111479492379367923791711147949237953792379171114794923794279077917111479492379177923791711141479840813444576221381135574068235638661183837066345433521635883738113440076466306747479134643763584794546136910798246491479414649237953791179234214793546492379367911790714793746492379177923791114790846492379427907791114795746492379537911791614793346371374840812353758904569864543358108612963133374085783734408430644630063067474781235375845698108447229474613695235637229810844837382461369840813444576221381138661185835793579338312353758826974086382437647118888338373824613698408134445762213811386611858417941793383787808748408733537588269740863824376464611837382461369840813444576221381138661185837790879371374840883787835375882697408638243764711837376468249111478136922138113557406823563668108448435216384464914694521634513435882831244084306446300767879840813444576221381138661183837066345433521635874793579528373811344006379377976464376358469107960794879137908798279417933794446491412353758766945215219134408650652845874694121356358547954837935694121356358547954838347118373354674783546766937214452134365065258356941213563585479548383128113440021795746542379427907791154794546542213811355740682356369541574491114155454157449231415545415744907141554541558744917144711015854665415587449171402231101541154385454831574491714833854548312372144586346111263024376358469221381130908448435216384697408638243761263151583733746437635846922138113090844843521638449631412604654221381135574068235636954153749111415545415374923141282463749111415546954153749231415546954123721445813463749071412134746111213898983733346542213811377083340431344436935847263844313747408576954158215131554691154123537587669452152191344086506528458374911141554795415374923141554795415131554791154793583474611888890766982084386611858338383734521634335630608782146766945215219134408650652845837491114155479541537492314155479541513155479115479578302110143440608383713748408123721445808463749171412084746111208898983734846131554665415580802231101541154150838088312414660154812353758766982084386611858418388885821878776698208438661185833838383734469190684765882154883123537589052837344084306446300447878353758414646458373440843064463004478783537587669820843866118586015138388885821878776698208438661185833838383734469190684765882151383123537589052837344084306446300447878353758601513464645837344084306446300447878784408430644630044787952356372298108443816798208430335520822557281084484352163383706634543352163588373811344007679134643763584795746136910794546630839002508822970195854585415136952355208712819082255721554835862625769808354795435548379484663083900250882297019585422138113547954355483790879417937465454793546737879824611793312372144587646111276026313813582134321446952355208712819088469740863824376127615158373414663138135821343214469523552087128190884497614123537584569430884435841694328190883888858084641690863133374085755740682356383888858414625088229701969100783888858486943088443580869570884454435194335216387873783878748694308844358086963135208878737838383733549541354155769372144521343650652584183144641787833465411791179117911541237214458760035630035837382151512084676698474354508582383123537585769452152191344086506528458087933834711837333460878781369523552087128190822557244088406744346824711011369523552087128190822557215354954135415331438545412440843064463008247110133386306747478798208430908448435216338370663454335216358527957797483738113440037794546437635847908464569107976464569651871267933464569131919740843794146456981084435372879354681086357214446810844843521632963133374085746630674741235375845698208430908448435216364216308464646630674748373456918712646111245695235520818334146086976138403355208712819085845695235520871281908831245695708197421287151691046081245695708197421287151691913440863436521570846451233691046081233691913440863436521570846451235375876837376691046081276691913440863436521570846457835375841837341691913440863436521570846451241691046081241693563354358837878811344004812353758086935848644441328587483837337214458484611124802336913747421390857697408638243761248151583733537580869358465065258744948148383733369137474213908574948144674494814787878372144584846111248024569372144450809084435372871138269740863824376124815158373336913747421390857494814464569372144450809084435372871138249481478353758086935844043443563825857838373456941134469190684765857837835375845698208430908448435216364216308464611837335375890456981084484352163878733694513637144288663285883837337463369356384084443307103052406084428867474585783123537583749111483734569356384431374740857462312456929635768084309084484352163583749111479374923148378784408430644637881134400824645695708197421287151696006084428588312353758826922252983733546826922252912810863572144464569092965641825404911147835375890086935847229837381134400607963791379211221465845695235520818334188884569296313337408578301434406083837137484081235375890358888583746456982084303355208225572810844843521635883839046466306747483733546377835375890358888456952355208183341837337465422138113492762625714805574068289356354121346086937356357651381557406823563583783123537581383733746630839002508822970195837795435548312604637694308844358136957088445443519433521638787545483010869820843650652581369570884454435194335216383386306747412634637694308844358136963135208878754548301086982084365065258136963135208833863067474123537586088886383733546580869452152191344086506528458086937214452134365065258608379086937214452134365065258638383474611830160386378087484087335466087876378787835375890358888456952355208183341888808693584401337134435888808691840464607837313460869373563576513815574068235635854221381136980626257698055740682893563698075214521135479118312353758138373604608698208436506525813695708844544351943352163831235375860837335466078787835375835837345698108448435216311463512353758456929631333740857837381084484352163296313337408574635787878087484087335375890358888826984431343068446461183733546456984081344457622138113557406823563866118588312353758358373810863572144464569092965641825404911147878353758358373456981084484352163114635123537584569296313337408578888086986454335810861296313337408578373810844843521632963133374085746357878783537589081084484352163296313337408578787336945136371442886632858838373374633693563840844433071030524060844288674745857831235375837491114837381084484352163296313337408574637491114128108635721444637492314787835375890810844843521632963133374085788885837464569600608442877354376210643861919740843845883834911148373456981084484352163114681084484352163296313337408574637491114128108635721444637492314123537584569356384431374740857464689116953837345693563844313747408574611695378783537580869358440133713443588880869184046460783733537589081084484352163296313337408578888218373353758456935638443137474085746464663067474837345693563844313747408574611780874840873353758456935638443137474085746468911695383734569356384431374740857461169537878787835375845694144086435841333740857588383738108448435216329631333740857466306747478123537584569356384431374740857464646630674748373456935638443137474085746810844843521632963133374085701233858350189116907388923837845692963576808430908448435216358810844843521632963133374085779810863572144837879296357680843090844843521633837066345433521635833795783738113440013464376358479454613691012353758136981084484352163118373136981084484352163114645693721445213436506525845698208436506525813698108448435216311838378353758338373136981084484352163464569372144521343650652584569820843650652583383831213698108635721444658456935844043443563825857830157385454837835375813698208430908448435216364216308904623837313698208430908448435216364216308461178787941440864358413337408573837066345433521635883738113440033464376358479574633691079454633695708197421287151696006084428588369222529791312353758458888576918404646238373353758585769358468084548218888576945215219134408650652845857698108446808454821795423790479077911548347461188885769452152191344086506528458457954237936791179230754830211838787585769358475764421520888885769452152191344086506528458457954237936791179230754830211838373440843064463002378781235375857693584181908441388885769810844181908441347460488889033692963133374085788889033695235520818334188889033696006084428773543762106438619197408438458834911148373440843064463002378353758585769358468084548218787576935847576442152088388889033695235520818334188889033696006084428773543762106438619197408438458834911148373440843064463002378440843064463001178795708197421287151387384431343068438630674747922252913747438491479222529386306747479307103053863067474796006084428383706634543352163588373811344003746437635847976463769107945463769191344086343652157087935791379337982467408634663067474123537583769844313430684904646630674748373440843064463003778376984431343068446111235375858766935846808454821888876694521521913440865065284587669810844680845482179766937214452134365065258542369365483830246118387877669358440133713443587877669358475764421520887875876693584722988889076698645433581086129631333740857838373440843064463003778353758766935847229888876698108447229474636837337693071030546766935638408444330710305585421334108454354794914794914831282467669820843641803213341583769307103058378087484087335375890766935847229888858334676697613840335520871281908584569647151523552087128190883838888336943281908837337693071030546766935638408444330710305585421334108454354794954432819085479336943281908147949148312824676698208436418032133415837693071030583787835375882837335375876693584722988887669810844722947463683734344287382694574138484355746456964715145741384847264784513434576583583737878124344287381134400574682694181528412353758578373740863465769820843050863824376588312353758766935846506525874086383837337698443134306844674086347110123388923123721445813461112130274086312131515837333467669820843650652585769820843587408638923891383698108448435216383123537583383733769222529137474491314463378787878784513434576583583737878353758376922252913747469740863824376471183733769222529467669372144521343650652583769222529137474491114837844084306446300377878796006084428773543762106438619197408438411113837066345433521635845791383738113440033463935635721396941138113795712434428733537583388883369741363828888336974136382694028844308528373136981137406084649336974136382694028844308526982084355442119084443285854411381136981084484352163548315540054793369741363826940288443085269820843554421190844432858544113811369810863572144548315540054147878451343457658578373787879600608442877354376210643861919740843843837066345433521635883738113440045464376358479374645691079827913464569600608442877354376210643861919740843841235375890136981137406088373136981137406084649630674747963067474141235375890376935847229888839356357213969411381138373353758376918404646078888376935841819084413888837698108441819084413020469078888376981084418190844134746048373780874840873353758376935846808454821888837694521521913440865065284583769810844680845482179542379047911791154830211888837694521521913440865065284583769810844680845482179542379317911791154834746118373780874840873353758376935846808454821837381134400357933797646572145065208634312353758766945440813430829740852086343888876694544081343082981086343837343442873354676694544081343082974085208634358545735815483793346766945440813430829810863435854307103052981086343845483123369356335432981086343585445761363820854793713748408793713748408831235691357572981086343053584430863084458544576136382085479376976136357740844584569600608442877354376210643861919740843841111793779138379371374840883123569573584191343457629810863435833837845134345765882837378787808748408734569600608442877354376210643861919740843841111583779138378787878784408430644630013698113740608787913191974084338734408840674438438494963067474796306747414794963067474796306747414794963067474796306747414147930710305384911791179111479134543358108384911791179111479137474213908573849077907790714796406525228183341711382307103053811796406525228401913637113823071030538117982084325088406744338370663454335216358837381134400454643763584694408840674438479137933123721445813461112130245697408638243761213151583733346454913141235375833491114837333440813487878440843064463491469452163451343583383787945136371442838370663454335216358578373811344003346437635847945463369107913463369191344086343652157081235375833691374742139085749571446461783734408430644630043440608783537589013698108448435216311878790136929631333740857878758456935847229888890456986454335810861296313337408578383733537583369137474213908574957144646078373440843064463004344060878353758336913747421390857495714464623888890336982084325088406744358834911148373440843064463004344060878784408430644630037137484087879451363714428866328383706634543352163588373811344003346437635847913123721445813461112130233691374742139085769740863824376121315158373353758336945136371442858138383734408430644630043440608787844084306446300371374840878794513632084088619197408437113823837066345433521635883738113440033464376358479454633691079134633691913440863436521570812440843064463589045693584722987871369296313337408578378794513632084081833410845437113823837066345433521635883738113440013464376358479334613691012440843064463589033693584722987873369864543358108612963133374085783787960060844287176358438370663454335216358768373811344008279454643763584793346456919134408634365215708793746336910791346810863572144466306747479574637698208436418032133415845693071030549761479434406088312353758578373434428731346576982084309084484352163588315540054128108635721444657698208430908635721445883155400541257698443134306843313445837693935630521135708570154005438540054837845134345765882837378353758376935844043446506525813838373456944088406744384497614464913798108635721441478434428733537583769358472298888138888576944081357284043134308904642837337698213443313820846434406081257691913440863436521570869440852218108757635745758578378784513434576588283737878787935638408444330710305240608442886747438370663454335216358088373811344008246437635847963468269191344086343652157087957466369107921468269440884067443847960468269307103057976465488633384191288633384191288633384191288633384191254790646548669457413848454123537589057693584404344356382580883878790585962694113446284801059836943088443580883878758596262598369430884435808838373440843064463496306747479630674741478353758636918712602238373636918712646237835375863694144086435841333740857588383734408430644634963067474796306747414783537586369187126020783736369187126460778811344004546087943465454795212353758585949625914598369430884435808838373524608698419743543585459548312454652495269740863824376892314125249526974086382437689231446545412434652694121356358545954837881134400414649541344457635810854794579544521570854790614797446495452132884454435194354795443440608541479444649548445443519431333740854795443440608541469452163451343587483793746905769358472298888636952355208183341888863695235520818334169432819080163695235520818334169432819083863695235520871281908491114123537589060491114888882694513632084081833410845437113825883888882694513637144285811838373604911144657693584722901576935638408444330710305585421334108454354794954432819085479371469452163451343584183794954452157083313840854794314694521634513435841836945216345134358448379767963833857693563840844433071030558542133410845435479495443281908547937795413444576358108547945795445741384843557547954411381133854150614794954452157083313840854794379541344457635810854794514694521634513435844837976796383122149111446491179111412826960060844287176358458118378353758906049231488888269451363208408861919740843711382588388888269451363714428582383837360492314465769358472290157693563840844433071030558541319197408435479495413744354797614694521634513435874836945216345134358418379495445215708331384085479431469452163451343587483797679638338576935638408444330710305585413191974084354794954452157083313840854794379541374435479761469452163451343587483694521634513435841837949146945216345134358748379767963831221492314464911791114128269600608442871763584582383783537589060490714888882694513632084081833410845437113825883888882694513637144285807838373604907144657693584722901576935638408444330710305585421334108454354794954457413848435575479636945741384847264147949544521570833138408547943146945216345134358418369452163451343584483797679638338576935638408444330710305588312214907144649117911141282696006084428717635845807837835375890826964065252281833417113823071030588888269451363208408183341084543711382588383738269640652522818334171138230710305465769356384084443307103055854213341084543547949147949147976837835375890826964065252284019136371138230710305837382696406525228401913637113823071030546576935638408444330710305585454794914794914797683781281134400487913461112372144584846111248022169740863824376124815158373353758604948148787826945136371442858488383731315157808748408733344081348787835375813464621697408638243768373636982084309084484352163642163084663693721444508090844353728711382697408638243764711011138237844084306446300826982084325088406744358837878791319190863573837066345433521635808795783733721445881134400454611124502576974086382437612451515837308691906847658574945148378787922138113263570383706634543352163588373787879135721330844081357084438735235520871281908385413191974354513433521635919573754796313815574068235631833413863067474791944218272643849548645442155642669556426547954556426695557377543447454147945741384847264385445748435573875863186041631118907311164892323752689860742648942424253531753421111111154797265407186050529643873787919740682356330138403355208712819083837066345433521635857794579378373811344003346437635847908463369107913123721445813003563005783733537585749131488885749131469432819088888574913146943281908464645837344084306446300237878353758086982084303355208296313337408575574068235635845793783837344084306446300237844084306446300117879820843090844843521633837066345433521635835794183738113440037464376358479454637691079767957794879524619466306747479824663067474797446630674747913793312414658456935844043443563825841838888416974086382437683014169440819741345085859628459795454836943210521390844751384085883383769523552087128190812353758456935846408373563085758376972654071860505296449411483837337693563844313747408574637697265407186050529644941141244084306446378353758904569358472298373134654865721330869805564266980557406828901356387865721330869808645442133134369805574068289013563878657213308698025081357084469805574068289013563541235375837698208430908448435216364216308904646118373376982084309084484352163642163084611121946456982084303355208296313337408575574068235635837695235520871281908791383123537589019888845697613840335520871281908583769523552087128190883837319464569373563576513815574068235635813791183783537581983733769631381557406823563183341461912824645698208436506525819695708844544351943352163838787456982084365065258196963135208831282464569820843557406823563263574080908448435216358197982831235375890828888456918404646238373353758376919740682356330138403355208712819085819795413191974354513433521635981635769135721330869195737705274547913838373824654045478087484087335375837691974068235633013840335520871281908581979541319197435451343352163598163576913572133086970895213448454791383837382465431547878787878087484087382463769810844843521637852464569820843033552082963133374085755740682356358417913831237693563844313747408574652888882012338585201113858376963138155740682356318334101891169073889238383780874840873194645698208438661185837691944218272644911148387874569820843866118583769194421827264492314831233465946628480584962576269141583598212434428735746581987874569820843641803213341584569356384084443307103055854213341084543547949544574138484355754793769457413848472641479495484444554795454147954547937838383696808430908448435216384588312372144584846111248025312481515837335375833694308844358578388885890828787250882297019691023478283837382462508822970196910237878784513434576587683737837693563844313747408574682012338581901113889238378353758903769810844843521638373376981084484352163464569372144521343650652588283783769726540718605052964494114463769356384431374740857787879676738117812557406823563640843084543693563354340454435194358831255740682356364084308454369820843090844843521635854695483124181084446557406823563640843084543698208430908448435216358542213811354794113811337357408831219573781084446557406823563640843084543698208430908448435216358548657213308250813570844548312784513434576580883737835375843281908213700418108444646328443443563823283734181084446418108446984197435435832693283780874840873418108444649117911791179111478353758432819082137001957378108444646328443443563823283731957378108444619573781084469841974354358326932837808748408731957378108444649117911791179111478370663454335216300841974115883733537585841810844492314464653888841810844491714024607178387875841810844492314464636888841810844491714024623318383735721450652086343693944354308585402131919740843004521570846323306357457400844813545086956063574577574138484694574138484320013444576358108463269598213520884593921445284694113443200393557437646322332007608358276434632233247021913441352006313520846321932008113740608463208111121036464066934371160462437375009602809606064440921082141063117773676313532594702591319197408434754831278841974235883783706634543352163008419742358837335375841810844492314464636888841810844491714024607178373811344004344353744465721450652086343694544081343082974085208634358327226258603293283124344353744698408438643434435330643085832393557437632792383124344353744698408438643434435330643085832760835827643327923831243443537446984084386434344353306430858328444453279326959821352088459411381136643440684436919761901374623363283125721450652086343693321572869131919086357757635745758434435374483788419740758837837066345433521630084197407588373353758418108444923144646368888418108444917144746231188884181084449171402462304837337066345433521630074418458457435578373434428738113440082764333465721450652086343694544081343082974085208634358541856222975715483128276433369457413848435574654457484355738541545743557128276433369741306634576585476434319380089228941134400892262626262045369233617693131690711316262190633626263083969138135000076434319385959373544844345741384840469456769454559486919761901374623368808460700632163085483784513434576580883737878744184585475862629292686758964297516891111111189111111118986567564292626296475568654831274418458543186640475314211891142422989232364238956172904891111311153264204046404175483127884197417588378370663454335216300841974175883733537584181084449231446463688884181084449171447462304888841810844491714024607238373811344008474353744465721450652086343694544081343082974085208634358327226258603293283128474353744698408438643434435330643085832393557437632792383128474353744698408438643434435330643085832760835827643327923831284743537446984084386434344353306430858328444453279326959821352088459411381136684482874356308691976190137462336328312572145065208634369332157286913191908635775763574575884743537448378841974425883783706634543352163008419744258837381134400441342465469595969695959135721330806195713430869087008547944131746572145065208634369454408134308297408520863435854213341084543548312441317698408438643434435330643085854355754794413178312441317698408438643434435330643085854457413848435575479544574843557385664043675535336893653861789232364118904311786891111751142267507042917365483124344287381134400441311464413176975440813430818334108454358541357215733698443440813525479545483794413234644131769754408134308183341084543585440760874746986191974354513433521635479545483794413074644131769754408134308183341084543585452847052740769610305307171555479545483124344287344130769211908635854682971547954764343193859593735448443457413848404694567694545594869197619013746233688084642547937137484088312441307698408635758831244131169432819084623124413116921190863588312441311697744354308584413076944088419216384085621572883124413116940138108712126357408584413427907831244131169757421840858831278451343457658088373784344287344132369847608747408700845064308584413428312784513434576580883737878451343457658088373788419745358837837066345433521630084762139661957375884444583738113440019353744465721450652086343694544081343082974085208634358327226258603293283121935374469840843864343443533064308583239355743763279238312193537446984084386434344353306430858327608358276433279238312193537446984084386434344353306430858328444453279844445831257214506520863436933215728691319190863577576357457581935374483783706634543352163008419745358837335375819573781084449111447118888195737810844491114023183738476213966195737583269598213520884592337571969197619013746233632837808748408003537585819573781084449111446463183878758195737810844491114464604888819573781084449231402461783837384762139661957375832695982135208845907375719691976190137462336328378841974365883783706634543352163008419743658837381134400524657214506520863436945440813430829740852086343583272262586032932831252698408438643434435330643085832844445327932764519385959840844813545088459840813444576016006084428461363284376356382884321193545467645193859598428844308525984288435633721598428843563372152133563697643523486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486343486696934537569693453758428843563372152133563697643523406111117378481444602844544321532351943005708370844470881137458250663584043443563826937442152757613447521570858040479231104792311117917077942167904047917077923112379040479231142792323237917077936367936237917427923113179423679232331790431792323537917427953317931167923115379232336792311427917077936167923234279231123790416792323367923112379160479043179231136792311237904047923233679421179174279161679311779313179161679163679531179423679313179161679163679160779314279314279311179174279422379533179423679232323792323077923112379232311791707791742791623793604793142791742794242791742792311427923233679232336792323077953317942167942167923110779231153792323427923235379232336790404792311317904167923235379232353795316794236790404792307077942367904047904047942167923111779041679231104792311237923235379421679231142790404792323077904537923233179043179232353794236792323077923114279232307793617792311077936237942047953427917427942427923110779041679231131792323537923112379533179423679232353792311237923231179231111794211794223795331793117792311237923233679170779365379170779362379170779361679232342792311237904167923233679231123791604790431792311367923112379040479232336794211791742793117790404792323427923115379232307792323367923115379232311792311177942367916117923115379231131792311237931177923072379232353792323367923112379231104791604790431792311367923112379040479232336791742794223795331793117792311237923233679170779363179362379365379423679361679232342792311237904167923233679231123793142792311237923071179232336791611792311537923113179231123794211793653794236791623792311237923233679311779232307792311237904047923115379041679231131791611792323237923113179231111792311237923234279421179531179422379170779421779170779174279040779174279170779421779170779363679422379533179363179423679311679232342792311537923233679231123791636792311537923231179231123791707794236792323427923112379232353792323077923232379232311792323537923112379314279231123792307117923233679533179360479232311792311117917077931167923115379232336792311427953317936317942367936167923113179232323792323537923112379533179361679232342792311237904167923233679231123791604790431792311367923112379040479232336794211791742793116793117790404792323427923115379232307792323367942367931177923114279231123792311317923113179174279422379423679310779232316792323117917077936537942367916237923112379232336793117792323077923112379040479231153790416792311317916117923232379231131792311117923112379232342794211795311794223791707794217791707791742790407791742791707794217791707793636791707793607791707791716793142793604791616793111791716790407790407792311317942367923233179043179232353791707791731791731791707791716793142793604791616793111791716790407790407792311317942367923233179043179232353791707791731791731791707792323367904167923235379231116792311167923115379231131792311317917077942167916117917077942167916177916167917077923114279231123792311317923230779040479232336792323427942367923112379230711792311238383831202598445443215323519434732831252698408438643434435330643085832393557437632791183125269840843864343443533064308583276083582764332791183125721450652086343693321572869131919086357757635745758528312840843713552082106435808635766440857354408454379361111118378841974115883